:root {
	--icm-job-navy: #0b2035;
	--icm-job-navy-2: #123f5d;
	--icm-job-blue: #1588c9;
	--icm-job-cyan: #35c9d7;
	--icm-job-ink: #15283b;
	--icm-job-muted: #65778a;
	--icm-job-line: #e4ebf1;
	--icm-job-soft: #f4f7fa;
	--icm-job-white: #fff;
	--icm-job-shadow: 0 18px 48px rgba(14, 42, 66, .1);
}

body.icm-job-ui:not(.home) {
	background: #f6f8fb;
}

body.icm-job-ui.page-template-map-jobs #primary,
body.icm-job-ui.post-type-archive-job_listing #primary {
	max-width: 1240px;
	padding-top: 54px;
	padding-bottom: 80px;
}

/* Maps attached to search results are intentionally disabled on every listing
 * surface, including the home page. Location remains visible on each card. */
body.icm-job-ui:not(.single-job_listing) .gjm-map-wrapper,
body.icm-job-ui:not(.single-job_listing) .map-wrapper.results-map,
body.icm-job-ui:not(.single-job_listing) .results-map,
body.icm-job-ui:not(.single-job_listing) [id^="gjm-map-wrapper-"],
body.icm-job-ui:not(.single-job_listing) [id^="gjm-map-"] {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Search experience */
body.icm-job-ui .job_filters {
	overflow: hidden;
	margin-bottom: 32px;
	border: 1px solid rgba(15, 53, 78, .08);
	border-radius: 24px;
	background: #fff;
	box-shadow: var(--icm-job-shadow);
}

body.icm-job-ui .job_filters .search_jobs {
	display: grid;
	grid-template-columns: 1.05fr 1.05fr 1.7fr auto;
	gap: 12px;
	padding: 28px;
	background:
		radial-gradient(circle at 92% 0, rgba(53, 201, 215, .28), transparent 34%),
		linear-gradient(125deg, var(--icm-job-navy), var(--icm-job-navy-2));
}

/* Jobify's clearfix pseudo-elements otherwise become phantom grid items. */
body.icm-job-ui .job_filters .search_jobs::before,
body.icm-job-ui .job_filters .search_jobs::after,
body.icm-job-ui.single-job_listing .job-meta-top::before,
body.icm-job-ui.single-job_listing .job-meta-top::after {
	display: none !important;
	content: none !important;
}

body.icm-job-ui .job_filters .search_jobs > div {
	float: none;
	width: 100% !important;
	min-width: 0;
	max-width: none;
	padding: 0;
	margin-right: 0;
	margin-left: 0;
	justify-self: stretch;
	box-sizing: border-box;
}

body.icm-job-ui .job_filters .search_jobs input[type="text"],
body.icm-job-ui .job_filters .search_jobs input[type="search"],
body.icm-job-ui .job_filters .search_jobs select,
body.icm-job-ui .job_filters .search_jobs .select2-container,
body.icm-job-ui .job_filters .search_jobs .select2-selection,
body.icm-job-ui .job_filters .search_jobs .search_submit input {
	width: 100% !important;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

body.icm-job-ui .job_filters .search_jobs .select2-selection__rendered {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (min-width: 921px) {
	body.icm-job-ui .job_filters .search_jobs {
		grid-template-columns:
			minmax(190px, 1.1fr)
			minmax(210px, 1.15fr)
			minmax(280px, 1.55fr)
			minmax(145px, .7fr);
	}
}

body.icm-job-ui .job_filters .search_jobs .filter_by_tag {
	display: flex;
	grid-column: 1 / -1;
	margin-top: 2px;
	padding: 15px 17px;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 12px;
	background: rgba(255, 255, 255, .06);
	color: rgba(255, 255, 255, .72);
	font-size: 12px;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

body.icm-job-ui .job_filters .filter_by_tag_cloud {
	display: flex;
	gap: 7px;
	flex-wrap: wrap;
}

body.icm-job-ui .job_filters .filter_by_tag_cloud a,
body.icm-job-ui .job_filters .filter_by_tag_cloud a[style] {
	display: inline-flex;
	padding: 5px 9px;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: 11px !important;
	font-weight: 650;
	line-height: 1.2;
	text-decoration: none;
}

body.icm-job-ui .job_filters .search_jobs input,
body.icm-job-ui .job_filters .search_jobs select,
body.icm-job-ui .job_filters .select2-selection {
	min-height: 50px;
	border: 1px solid rgba(255, 255, 255, .2) !important;
	border-radius: 12px !important;
	background: rgba(255, 255, 255, .97) !important;
	box-shadow: 0 8px 22px rgba(0, 20, 37, .1);
	color: var(--icm-job-ink);
	font-size: 14px;
}

body.icm-job-ui .job_filters .search_jobs .search_submit input,
body.icm-job-ui .job_filters .search_jobs button {
	min-width: 132px;
	border: 0 !important;
	background: linear-gradient(135deg, #85ebf1, var(--icm-job-cyan)) !important;
	box-shadow: 0 10px 25px rgba(32, 189, 205, .25);
	color: #08283a !important;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
}

body.icm-job-ui .job_filters .search_jobs .search_submit input:hover,
body.icm-job-ui .job_filters .search_jobs button:hover {
	transform: translateY(-1px);
	filter: brightness(1.04);
}

body.icm-job-ui .job_filters .job_types {
	display: flex;
	margin: 0;
	padding: 0 18px;
	border: 0;
	background: #fff;
	flex-wrap: wrap;
}

body.icm-job-ui .job_filters .job_types li {
	float: none;
	width: auto;
	padding: 17px 14px;
	border: 0;
}

body.icm-job-ui .job_filters .job_types label {
	color: #405468;
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .025em;
	text-transform: uppercase;
}

body.icm-job-ui .job_filters .showing_jobs {
	padding: 16px 24px;
	border-top: 1px solid var(--icm-job-line);
	background: #fbfcfd;
	color: var(--icm-job-muted);
}

/* Job cards */
body.icm-job-ui ul.job_listings {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.icm-job-ui ul.job_listings > li.job_listing {
	position: relative;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	min-height: 188px;
	margin: 0;
	padding: 24px;
	overflow: hidden;
	border: 1px solid var(--icm-job-line);
	border-radius: 19px;
	background: #fff;
	box-shadow: 0 9px 30px rgba(13, 43, 67, .055);
	align-items: start;
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

body.icm-job-ui ul.job_listings > li.job_listing:hover {
	border-color: rgba(21, 136, 201, .35);
	box-shadow: 0 20px 48px rgba(13, 43, 67, .13);
	transform: translateY(-4px);
}

body.icm-job-ui ul.job_listings > li.job_listing.job_position_featured::before {
	position: absolute;
	top: 15px;
	right: -31px;
	width: 112px;
	padding: 5px 0;
	background: linear-gradient(135deg, #ffd856, #f4b928);
	color: #503700;
	content: "À la une";
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .08em;
	text-align: center;
	text-transform: uppercase;
	transform: rotate(42deg);
}

body.icm-job-ui .job_listing-clickbox {
	z-index: 1;
}

body.icm-job-ui .job_listing-logo {
	float: none;
	width: 58px;
	height: 58px;
	margin: 0;
	padding: 8px;
	border: 1px solid var(--icm-job-line);
	border-radius: 14px;
	background: #fff;
}

body.icm-job-ui .job_listing-logo img.company_logo {
	position: static;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
}

body.icm-job-ui .job_listing-about {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 15px 18px;
	min-width: 0;
	padding: 0;
	align-items: start;
}

body.icm-job-ui .job_listing-position {
	float: none;
	width: auto;
	padding: 0;
}

body.icm-job-ui .job_listing-title {
	margin: 0 26px 7px 0;
	color: var(--icm-job-ink);
	font-size: 18px;
	font-weight: 750;
	letter-spacing: -.015em;
	line-height: 1.32;
}

body.icm-job-ui .job_listing-company {
	color: #3c5368;
	font-size: 13px;
}

body.icm-job-ui .job_listing-company strong {
	font-weight: 700;
}

body.icm-job-ui .job_listing-location {
	float: none;
	width: auto;
	padding: 2px 0 0;
	white-space: nowrap;
}

body.icm-job-ui .job_listing-location a {
	position: relative;
	z-index: 2;
	color: var(--icm-job-muted);
	font-size: 13px;
	text-decoration: none;
}

body.icm-job-ui .job_listing-meta {
	grid-column: 1 / -1;
	display: flex;
	float: none;
	width: auto;
	margin: 4px 0 0;
	padding: 15px 0 0;
	border-top: 1px solid #eef2f5;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
}

body.icm-job-ui .job_listing-meta li {
	margin: 0;
	color: #7b8997;
	font-size: 11px;
}

body.icm-job-ui .job_listing-meta .job_listing-type {
	padding: 6px 10px;
	border-radius: 999px;
	background: #e9f8fa;
	color: #116779;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

body.icm-job-ui .load_more_jobs {
	margin-top: 24px;
	padding: 16px 24px;
	border: 0;
	border-radius: 13px;
	background: var(--icm-job-navy);
	box-shadow: 0 12px 28px rgba(11, 32, 53, .15);
	color: #fff;
	font-weight: 750;
}

/* Individual job */
body.icm-job-ui.single-job_listing .single_job_listing > .page-header {
	position: relative;
	overflow: hidden;
	padding: 70px max(7vw, 30px) 58px;
	border: 0;
	background:
		radial-gradient(circle at 82% 5%, rgba(53, 201, 215, .32), transparent 31%),
		linear-gradient(125deg, #081b2e, #12435f 68%, #126b83);
	box-shadow: 0 18px 50px rgba(10, 35, 55, .16);
	text-align: left;
}

body.icm-job-ui.single-job_listing .single_job_listing > .page-header::after {
	position: absolute;
	right: -90px;
	bottom: -180px;
	width: 390px;
	height: 390px;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 50%;
	box-shadow: 0 0 0 48px rgba(255, 255, 255, .03), 0 0 0 96px rgba(255, 255, 255, .02);
	content: "";
}

body.icm-job-ui.single-job_listing .page-title,
body.icm-job-ui.single-job_listing .page-subtitle {
	position: relative;
	z-index: 1;
	max-width: 1120px;
	margin-right: auto;
	margin-left: auto;
	text-align: left;
}

body.icm-job-ui.single-job_listing .page-title {
	margin-bottom: 22px;
	color: #fff;
	font-size: clamp(34px, 4.3vw, 58px);
	font-weight: 720;
	letter-spacing: -.035em;
	line-height: 1.08;
}

body.icm-job-ui.single-job_listing .job-listing-meta {
	display: flex;
	margin: 0;
	gap: 9px;
	flex-wrap: wrap;
}

body.icm-job-ui.single-job_listing .job-listing-meta li {
	margin: 0;
	padding: 8px 12px;
	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: 999px;
	background: rgba(255, 255, 255, .08);
	color: rgba(255, 255, 255, .78);
	font-size: 12px;
	font-weight: 600;
	backdrop-filter: blur(6px);
}

body.icm-job-ui.single-job_listing .job-listing-meta li a {
	color: #fff;
}

body.icm-job-ui.single-job_listing .job-listing-meta .job-type {
	border-color: transparent;
	background: linear-gradient(135deg, #8aeaf0, #36c8d6);
	color: #08283a;
	font-weight: 850;
}

body.icm-job-ui.single-job_listing #content.container {
	max-width: 1160px;
	padding-top: 48px;
	padding-bottom: 80px;
}

body.icm-job-ui.single-job_listing .job-meta-top {
	display: grid;
	grid-template-columns: 190px minmax(0, 1fr) 370px;
	gap: 22px;
	margin: 0 0 28px;
}

body.icm-job-ui.single-job_listing .job-meta-top > div {
	float: none;
	width: auto;
	padding: 0;
}

/* A listing can display both company details and application actions in the
 * third column. Let that column grow with both cards instead of giving every
 * card 100% of the grid-row height, which caused the application panel to
 * overlap the overview content on wide screens. */
@media (min-width: 921px) {
	body.icm-job-ui.single-job_listing .job-meta-top > div {
		display: flex;
		height: auto;
		min-height: 0;
		gap: 22px;
		flex-direction: column;
	}

	body.icm-job-ui.single-job_listing .job-meta-top > div > .widget--job_listing-top {
		height: auto;
		margin: 0;
	}

	body.icm-job-ui.single-job_listing .job-meta-top > div > .widget--job_listing-top:only-child {
		flex: 1;
	}
}

body.icm-job-ui.single-job_listing .widget--job_listing-top {
	height: 100%;
	margin: 0;
	padding: 25px;
	border: 1px solid var(--icm-job-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 32px rgba(13, 43, 67, .07);
}

body.icm-job-ui.single-job_listing .widget--job_listing-top img.company_logo {
	display: block;
	width: 100%;
	height: 126px;
	object-fit: contain;
}

body.icm-job-ui.single-job_listing .widget-title--job_listing-top {
	margin: 0 0 15px;
	color: var(--icm-job-ink);
	font-size: 12px;
	font-weight: 850;
	letter-spacing: .12em;
	text-transform: uppercase;
}

body.icm-job-ui.single-job_listing .job-category {
	display: inline-block;
	padding: 9px 13px;
	border-radius: 10px;
	background: #edf7fb;
	color: #176d96;
	font-size: 13px;
	font-weight: 650;
	line-height: 1.45;
	text-decoration: none;
}

body.icm-job-ui.single-job_listing .job_application input[type="button"],
body.icm-job-ui.single-job_listing .job_application input[type="submit"],
body.icm-job-ui.single-job_listing .bookmark-notice,
body.icm-job-ui.single-job_listing .submit-bookmark-button {
	display: flex;
	width: 100%;
	min-height: 48px;
	margin: 0 0 10px;
	padding: 12px 18px;
	border: 1px solid #c8dbe7;
	border-radius: 11px;
	background: #fff;
	box-shadow: none;
	color: #17688f;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	align-items: center;
	justify-content: center;
}

body.icm-job-ui.single-job_listing .job_application .application_button {
	border: 0 !important;
	background: linear-gradient(135deg, var(--icm-job-blue), #126a9b) !important;
	box-shadow: 0 10px 24px rgba(21, 136, 201, .22);
	color: #fff !important;
}

body.icm-job-ui.single-job_listing .job-overview-content {
	margin: 0;
	padding: 38px 42px;
	border: 1px solid var(--icm-job-line);
	border-radius: 21px;
	background: #fff;
	box-shadow: var(--icm-job-shadow);
}

body.icm-job-ui.single-job_listing .job-overview-content > div {
	float: none;
	width: 100%;
	padding: 0;
}

body.icm-job-ui.single-job_listing .job-overview-title {
	margin: 6px 0 20px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--icm-job-line);
	color: var(--icm-job-ink);
	font-size: 24px;
	font-weight: 720;
	letter-spacing: -.02em;
	text-transform: none;
}

body.icm-job-ui.single-job_listing .job_listing-description {
	color: #415367;
	font-size: 16px;
	line-height: 1.82;
}

body.icm-job-ui.single-job_listing .job_listing-description p {
	margin-bottom: 22px;
}

body.icm-job-ui.single-job_listing .job_listing-description strong {
	color: var(--icm-job-ink);
	font-weight: 750;
}

body.icm-job-ui.single-job_listing .job-overview-content .job_application {
	max-width: 360px;
	margin: 30px 0;
}

@media (max-width: 920px) {
	body.icm-job-ui .job_filters .search_jobs {
		grid-template-columns: 1fr 1fr;
	}

	body.icm-job-ui ul.job_listings {
		grid-template-columns: 1fr;
	}

	body.icm-job-ui.single-job_listing .job-meta-top {
		grid-template-columns: 150px minmax(0, 1fr);
	}

	body.icm-job-ui.single-job_listing .job-meta-top > div:last-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 620px) {
	body.icm-job-ui.page-template-map-jobs #primary {
		padding-top: 24px;
	}

	body.icm-job-ui .job_filters {
		border-radius: 18px;
	}

	body.icm-job-ui .job_filters .search_jobs {
		grid-template-columns: 1fr;
		padding: 20px;
	}

	body.icm-job-ui .job_filters .search_jobs .filter_by_tag {
		grid-column: auto;
		align-items: flex-start;
		flex-direction: column;
	}

	body.icm-job-ui .job_filters .job_types {
		padding: 8px 12px;
	}

	body.icm-job-ui .job_filters .job_types li {
		width: 50%;
		padding: 9px 7px;
	}

	body.icm-job-ui ul.job_listings > li.job_listing {
		grid-template-columns: 58px minmax(0, 1fr);
		min-height: 0;
		padding: 19px;
		border-radius: 16px;
	}

	body.icm-job-ui .job_listing-logo {
		width: 48px;
		height: 48px;
	}

	body.icm-job-ui .job_listing-about {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	body.icm-job-ui .job_listing-title {
		font-size: 16px;
	}

	body.icm-job-ui .job_listing-location {
		white-space: normal;
	}

	body.icm-job-ui .job_listing-meta {
		justify-content: flex-start;
		flex-wrap: wrap;
	}

	body.icm-job-ui.single-job_listing .single_job_listing > .page-header {
		padding: 45px 22px 38px;
	}

	body.icm-job-ui.single-job_listing .page-title {
		font-size: 32px;
	}

	body.icm-job-ui.single-job_listing #content.container {
		padding-top: 24px;
	}

	body.icm-job-ui.single-job_listing .job-meta-top {
		display: flex !important;
		height: auto !important;
		margin: 0 0 22px !important;
		gap: 14px;
		align-items: stretch;
		flex-direction: column;
	}

	body.icm-job-ui.single-job_listing .job-meta-top > div,
	body.icm-job-ui.single-job_listing .job-meta-top > div:last-child {
		position: static !important;
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		grid-column: auto;
	}

	body.icm-job-ui.single-job_listing .widget--job_listing-top {
		position: static !important;
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 20px;
	}

	body.icm-job-ui.single-job_listing .job-meta-top .job_application,
	body.icm-job-ui.single-job_listing .job-meta-top .job-manager-form,
	body.icm-job-ui.single-job_listing .job-overview-content .job_application {
		position: static !important;
		width: 100% !important;
		height: auto !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	body.icm-job-ui.single-job_listing .widget--job_listing-top img.company_logo {
		height: 90px;
	}

	body.icm-job-ui.single-job_listing .job-overview-content {
		position: relative !important;
		z-index: 1;
		clear: both !important;
		height: auto !important;
		margin: 0 !important;
		padding: 26px 22px;
		border-radius: 17px;
	}

	body.icm-job-ui.single-job_listing .job-overview-title {
		position: static !important;
		clear: both;
		margin: 0 0 18px !important;
	}

	body.icm-job-ui.single-job_listing .job_listing-description {
		font-size: 15px;
		line-height: 1.72;
	}
}
