/*
 * careers.css
 * Recreation of Figma node 106:15933 ("CareerPath") — two screens:
 *   - /careers        → "Career Path Intro" (106:7706)
 *   - /career-detail  → job "Detail Page"  (106:7823)
 * Shared primitives (.ft-main/.ft-shell/.ft-section, heading trio, .ft-lead,
 * buttons) come from the global foundation.css; this sheet keeps the careers-
 * specific rules (.cp-*) plus body.cp-page-scoped deltas from the foundation
 * defaults. Figma tokens are the --ft-* custom properties on :root.
 */

/* ---- Foundation deltas (scoped to this page) ---- */

/* This page's Figma puts content frames at x=400, width=1120 on the 1920
 * design — a narrower cap than foundation's 1480/80 (faithful to 106:7706). */
body.cp-page .ft-main {
	--ft-shell: min(1120px, 100% - 48px);
}

/* Foundation steps .ft-section padding 80 → 64 (≤990) → 48 (≤680); careers
 * holds 80px until 680 then goes 56px (in the 680 block below). Page
 * specificity keeps foundation's media steps from ever applying. */
body.cp-page .ft-section {
	padding: 80px 0;
}

/* Button deltas: 16px content gap (foundation: 12px), hover shade, and a
 * full-width --block modifier foundation doesn't provide. (text-decoration +
 * font inheritance already reset globally in core.css.) */
body.cp-page .ft-btn {
	gap: 16px;
}

body.cp-page .ft-btn--primary:hover {
	background: #1f93e6;
}

body.cp-page .ft-btn--block {
	width: 100%;
}

/* ---- Section backgrounds ---- */
.cp-section--why {
	background: #f7f7f9;
}

.cp-section--intro,
.cp-section--jobs {
	background: #fdfdfd;
}

/* ---- Heading placement ---- */
.cp-heading--center {
	justify-items: center;
	text-align: center;
}

/* ---- Hero banner ---- */
.cp-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 480px;
	padding: 64px 24px;
	background: url(/images/new/careers/careers_hero.jpg) center / cover no-repeat;
	text-align: center;
	overflow: hidden;
}

.cp-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}

.cp-hero__copy {
	position: relative;
	z-index: 1;
	/* Figma (106:7710) centers the band text at 1255px wide; the band itself
	 * is full-bleed (Frame 1000011866 spans past the 1920 frame edges). */
	max-width: 1256px;
	margin: 0;
	font-size: 24px;
	line-height: 1.25;
	font-weight: 700;
	color: #f6f6f6;
}

.cp-hero__copy .cp-hero__lead {
	display: block;
	color: #2da7fa;
}

/* Forced break matches the Figma band's line wrap (after "...models,").
 * Browser Montserrat renders ~1% narrower than Figma, so the second
 * sentence would otherwise keep "immersive" on line 2. Disabled on mobile
 * (≤680px) where the smaller font reflows the text naturally. */
.cp-hero__break {
	display: inline;
}

/* ---- Intro section ---- */
/* Body copy paragraphs are .ft-lead in markup. */
.cp-intro__body {
	display: grid;
	gap: 22px;
	margin-top: 24px;
}

/* ---- Why Join section ---- */
.cp-why__head .ft-lead {
	margin-top: 16px;
}

.cp-divider {
	height: 1px;
	margin: 32px 0;
	background: var(--ft-border);
	border: 0;
}

.cp-perks {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 60px;
	max-width: 1040px;
	margin-inline: auto;
}

.cp-perk__icon {
	display: inline-flex;
	font-size: 40px;
	line-height: 1;
	color: var(--ft-blue);
}

/* Perk descriptions are .ft-lead in markup. */
.cp-perk h3 {
	margin: 20px 0 12px;
	font-size: 16px;
	font-weight: 600;
	color: var(--ft-text);
}

/* ---- Current Opportunities ---- */
.cp-jobs__head {
	margin-bottom: 24px;
}

.cp-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.cp-card {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 32px;
	background: #ffffff;
	border: 1.5px solid #e7e7e7;
	border-radius: 16px;
}

.cp-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.cp-card__title {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	color: #0a0a0a;
	white-space: nowrap;
}

.cp-badge {
	flex: none;
	padding: 5px 6px;
	border-radius: 999px;
	background: var(--ft-blue-subtle);
	color: var(--ft-blue);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

.cp-meta {
	display: grid;
	gap: 8px;
}

.cp-meta__row {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 500;
	color: var(--ft-muted);
}

.cp-meta__row i {
	font-size: 16px;
	color: var(--ft-muted);
}

/* "$" glyph used in place of a dollar icon (not in this Feather build) */
.cp-money {
	display: inline-flex;
	justify-content: center;
	width: 16px;
	font-size: 15px;
	font-weight: 700;
	color: var(--ft-muted);
}

.cp-card__desc {
	margin: 0;
	font-size: 14px;
	line-height: 18px;
	font-weight: 500;
	color: var(--ft-muted);
}

.cp-card .ft-btn {
	margin-top: auto;
}

/* ---- Detail page ---- */
.cp-detail {
	padding: 32px 0 80px;
	background: #fdfdfd;
}

.cp-detail__wrap {
	width: min(880px, 100% - 48px);
	margin-inline: auto;
}

.cp-back {
	display: flex;
	width: fit-content;
	align-items: center;
	gap: 6px;
	margin-bottom: 32px;
	color: var(--ft-blue);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.cp-back i {
	font-size: 15px;
}

.cp-detail__badge {
	display: inline-flex;
	align-items: center;
	margin-bottom: 16px;
}

.cp-detail__title {
	margin: 0 0 32px;
	font-size: 30px;
	line-height: 1.2;
	font-weight: 700;
	color: var(--ft-text);
}

.cp-detail__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
}

.cp-detail__body {
	margin-top: 32px;
	display: grid;
	gap: 24px;
}

.cp-block h2 {
	margin: 0 0 16px;
	font-size: 18px;
	font-weight: 700;
	color: var(--ft-text);
}

.cp-block p {
	margin: 0;
	font-size: 15px;
	line-height: 24px;
	font-weight: 500;
	color: var(--ft-muted);
}

.cp-list {
	margin: 0;
	padding-left: 20px;
	display: grid;
	gap: 10px;
}

.cp-list li {
	font-size: 15px;
	line-height: 22px;
	font-weight: 500;
	color: var(--ft-muted);
}

/* ---- Apply form ---- */
.cp-apply {
	margin-top: 40px;
	padding: 48px;
	background: #ffffff;
	border: 1px solid var(--ft-border);
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba(20, 33, 50, 0.06);
}

.cp-apply__head {
	margin-bottom: 24px;
}

.cp-apply__head h2 {
	margin: 0 0 8px;
	font-size: 22px;
	font-weight: 700;
	color: var(--ft-text);
}

.cp-apply__head p {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	color: var(--ft-muted);
}

.cp-form {
	display: grid;
	gap: 24px;
}

.cp-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.cp-field {
	display: grid;
	gap: 8px;
}

.cp-field label {
	font-size: 14px;
	font-weight: 600;
	color: var(--ft-text);
}

.cp-field label .cp-req {
	color: #e5484d;
}

.cp-field input {
	width: 100%;
	padding: 13px 16px;
	font-family: inherit;
	font-size: 14px;
	color: var(--ft-text);
	background: #fff;
	border: 1px solid var(--ft-border);
	border-radius: 8px;
}

.cp-field input::placeholder {
	color: #aab1b8;
}

.cp-field input:focus {
	outline: none;
	border-color: var(--ft-blue);
}

.cp-upload {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 40px 16px;
	text-align: center;
	border: 1.5px dashed #c7d0d8;
	border-radius: 10px;
	cursor: pointer;
}

.cp-upload input[type="file"] {
	display: none;
}

.cp-upload__icon {
	font-size: 24px;
	color: var(--ft-muted);
}

.cp-upload__main {
	font-size: 14px;
	font-weight: 500;
	color: var(--ft-muted);
}

.cp-upload__main b {
	color: var(--ft-blue);
	font-weight: 600;
}

.cp-upload__hint {
	font-size: 12px;
	font-weight: 500;
	color: var(--ft-blue);
}

/* ---- Responsive ----
 * CSS-only reflow, same convention as the other marketing pages: the 3-col
 * perk + job grids collapse to a uniform 2-col band, then go 1-col below
 * 450px. Min target width 325px (zero horizontal overflow). */
@media (max-width: 880px) {
	/* Odd third item wraps to row 2, left-aligned (convention for odd counts). */
	.cp-perks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 40px;
		max-width: 700px;
	}

	.cp-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 740px;
		margin-inline: auto;
	}

	/* In the narrow 2-col band a nowrap title ("Production Specialist") would
	 * push the card past its track and overflow under overflow:hidden — let it
	 * wrap so the card sizes from its content, not the title's max-content. */
	.cp-card__title {
		white-space: normal;
	}
}

@media (max-width: 680px) {
	body.cp-page .ft-section {
		padding: 56px 0;
	}

	.cp-hero {
		min-height: 320px;
		padding: 48px 20px;
	}

	.cp-hero__copy {
		font-size: 18px;
	}

	.cp-hero__break {
		display: none;
	}

	.cp-detail__title {
		font-size: 26px;
	}

	.cp-detail__meta {
		gap: 8px 24px;
	}

	.cp-form__row {
		grid-template-columns: 1fr;
	}

	.cp-apply {
		padding: 28px 20px;
	}
}

/* Below 450 → single column (convention); narrow the gutter to 16px each side.
 * (Page specificity also keeps foundation's own ≤380 shell step from
 * overriding this — careers holds the 16px gutter all the way down.) */
@media (max-width: 449px) {
	.cp-perks,
	.cp-cards {
		grid-template-columns: 1fr;
		max-width: 420px;
		margin-inline: auto;
	}

	.cp-perks {
		gap: 32px;
	}

	body.cp-page .ft-main {
		--ft-shell: min(1120px, 100% - 32px);
	}

	/* Listing/detail shells follow the same 16px gutter at the smallest sizes. */
	.cp-detail__wrap {
		width: min(880px, 100% - 32px);
	}
}
