/*
 * careers.css
 * Recreation of Figma node 106:15933 ("CareerPath") — two screens:
 *   - careers.php        → "Career Path Intro" (106:7706)
 *   - career-detail.php  → job "Detail Page"  (106:7823)
 * Self-contained .cp-* classes (does not depend on homePage_design.css).
 * Shared header.php / footer.php chrome keeps its own storefront styling.
 *
 * Figma tokens (shared with new/homepage.css):
 *   Blue_Main #2DA7FA · Blue_Subtle #EDF7FF · Text #333536 · Muted #737A82
 *   Title/Display 36/44 · Title/Title 24/30 · Body/Lead 16/22 · Body-B 14
 */

.cp-main {
	--cp-blue: #2da7fa;
	--cp-blue-subtle: #edf7ff;
	--cp-text: #333536;
	--cp-muted: #737a82;
	--cp-border: #e4e4e4;
	/* Content block follows THIS page's Figma: the intro / why / jobs frames sit
	 * at x=400, width=1120 on the 1920 design (gutter 400 = 20.83%/side) — a
	 * wider gutter than the 1320/300 used on other pages. Kept faithful to Figma
	 * 106:7706 rather than normalized to 1320. */
	--cp-shell: min(1120px, 100% - 48px);
	color: var(--cp-text);
	font-family: "Montserrat", sans-serif;
}

.cp-main *,
.cp-main *::before,
.cp-main *::after {
	box-sizing: border-box;
}

.cp-shell {
	width: var(--cp-shell);
	margin-inline: auto;
}

/* ---- Sections ---- */
.cp-section {
	padding: 80px 0;
}

.cp-section--why {
	background: #f7f7f9;
}

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

/* ---- Headings ---- */
.cp-heading {
	display: grid;
	gap: 8px;
}

.cp-heading--center {
	justify-items: center;
	text-align: center;
}

.cp-eyebrow {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--cp-text);
}

.cp-title {
	margin: 0;
	font-size: 24px;
	line-height: 30px;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-accent {
	color: var(--cp-blue);
}

.cp-lead {
	margin: 0;
	font-size: 16px;
	line-height: 22px;
	font-weight: 500;
	color: var(--cp-muted);
}

/* ---- Buttons ---- */
.cp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 12px 32px;
	border: 1.5px solid transparent;
	border-radius: 8px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
}

.cp-btn--primary {
	background: var(--cp-blue);
	color: #f6f6f6;
}

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

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

/* ---- 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 ---- */
.cp-intro__body {
	display: grid;
	gap: 22px;
	margin-top: 24px;
}

.cp-intro__body p {
	margin: 0;
	font-size: 16px;
	line-height: 22px;
	font-weight: 500;
	color: var(--cp-muted);
}

/* ---- Why Join section ---- */
.cp-why__head {
	max-width: none;
	margin: 0 auto;
}

.cp-why__head .cp-lead {
	margin-top: 16px;
}

.cp-divider {
	height: 1px;
	margin: 32px 0;
	background: var(--cp-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(--cp-blue);
}

.cp-perk h3 {
	margin: 20px 0 12px;
	font-size: 16px;
	font-weight: 600;
	color: var(--cp-text);
}

.cp-perk p {
	margin: 0;
	font-size: 16px;
	line-height: 22px;
	font-weight: 500;
	color: var(--cp-muted);
}

/* ---- 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(--cp-blue-subtle);
	color: var(--cp-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(--cp-muted);
}

.cp-meta__row i {
	font-size: 16px;
	color: var(--cp-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(--cp-muted);
}

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

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

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

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

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

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

.cp-detail__badge {
	margin-bottom: 16px;
}

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

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

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

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

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

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

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

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

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

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

.cp-apply__head p {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	color: var(--cp-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(--cp-text);
}

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

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

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

.cp-field input:focus {
	outline: none;
	border-color: var(--cp-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(--cp-muted);
}

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

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

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

/* ---- Responsive ----
 * CSS-only reflow, same convention as modupro / charlie / licensure /
 * accessory / onescreen: 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). The hero is a full-bleed banner with centered text
 * (no copy/media split column), so the homepage hero-collapse fix is N/A.
 */
@media (max-width: 880px) {
	/* Perks (3) + job cards (3) → uniform 2-col band; the odd third wraps to
	 * row 2 (left-aligned, per 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) {
	.cp-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. */
@media (max-width: 449px) {
	.cp-perks,
	.cp-cards {
		grid-template-columns: 1fr;
		max-width: 420px;
		margin-inline: auto;
	}

	.cp-perks {
		gap: 32px;
	}

	.cp-main {
		--cp-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);
	}
}

/* ---- Footer (match new/homepage.css Figma layout) ----
 * Brand pinned far left, the four link columns clustered on the right. */
@media (min-width: 991px) {
	body.cp-page .shop-footer__grid {
		grid-template-columns: 1fr repeat(4, minmax(0, max-content));
		gap: 100px;
		align-items: start;
	}

	body.cp-page .shop-footer__brand {
		max-width: 370px;
	}
}

@media (max-width: 680px) {
	body.cp-page .shop-footer__grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 28px 16px;
		align-items: start;
	}

	body.cp-page .shop-footer__brand {
		grid-column: 1 / -1;
		margin-bottom: 4px;
	}
}

/* ============================================================
 * 4K / ultra-wide — scale the desktop layout up a faithful 2× of the 1920
 * Figma base (NOT ~2.2x), matching the shared header (homePage_design.css
 * widens --shop-shell at this same breakpoint). Mirrors new/homepage.css and
 * new/accessory.css. Content block = 2240 (1120 base × 2) → 800px (20.83%)
 * gutter at 3840, faithfully ×2 of Figma's 400/1920 section gutter.
 * ============================================================ */
@media (min-width: 3000px) {
	.cp-main {
		--cp-shell: min(2240px, 100% - 180px);
	}

	.cp-section {
		padding: 160px 0;
	}

	/* Headings / type (×2 of 1920 base) */
	.cp-eyebrow {
		font-size: 28px;
	}

	.cp-title {
		font-size: 48px;
		line-height: 60px;
	}

	.cp-heading {
		gap: 16px;
	}

	.cp-lead {
		font-size: 32px;
		line-height: 44px;
	}

	/* Buttons (×2) */
	.cp-btn {
		gap: 32px;
		padding: 24px 64px;
		border-radius: 16px;
		font-size: 32px;
	}

	/* Hero band (×2) — full-bleed band, centered text at 1256 × 2 = 2512 */
	.cp-hero {
		min-height: 960px;
		padding: 128px 48px;
	}

	.cp-hero__copy {
		max-width: 2512px;
		font-size: 48px;
	}

	/* Intro (×2) */
	.cp-intro__body {
		gap: 44px;
		margin-top: 48px;
	}

	.cp-intro__body p {
		font-size: 32px;
		line-height: 44px;
	}

	/* Why Join (×2) */
	.cp-why__head {
		max-width: none;
	}

	.cp-why__head .cp-lead {
		margin-top: 32px;
	}

	.cp-divider {
		margin: 64px 0;
	}

	.cp-perks {
		gap: 120px;
		max-width: 2080px;
	}

	.cp-perk__icon {
		font-size: 80px;
	}

	.cp-perk h3 {
		margin: 40px 0 24px;
		font-size: 32px;
	}

	.cp-perk p {
		font-size: 32px;
		line-height: 44px;
	}

	/* Current Opportunities (×2) */
	.cp-jobs__head {
		margin-bottom: 48px;
	}

	.cp-cards {
		gap: 48px;
	}

	.cp-card {
		gap: 48px;
		padding: 64px;
		border-width: 3px;
		border-radius: 32px;
	}

	.cp-card__top {
		gap: 24px;
	}

	.cp-card__title {
		font-size: 40px;
	}

	.cp-badge {
		padding: 10px 12px;
		font-size: 24px;
	}

	.cp-meta {
		gap: 16px;
	}

	.cp-meta__row {
		gap: 12px;
		font-size: 28px;
	}

	.cp-meta__row i {
		font-size: 32px;
	}

	.cp-money {
		width: 32px;
		font-size: 30px;
	}

	.cp-card__desc {
		font-size: 28px;
		line-height: 36px;
	}

	/* ---- Detail page (×2 of 1920 base) ----
	 * Reading column = 880 × 2 = 1760 (Figma 106:7850 sits at x=520/w=880 on the
	 * 1920 frame); 180px side padding matches the listing shell above. Shared
	 * cp-btn / cp-badge / cp-meta / cp-divider are already scaled above. */
	.cp-detail {
		padding: 112px 0 160px;
	}

	.cp-detail__wrap {
		width: min(1760px, 100% - 180px);
	}

	.cp-back {
		gap: 12px;
		margin-bottom: 56px;
		font-size: 28px;
	}

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

	.cp-detail__badge {
		margin-bottom: 32px;
	}

	.cp-detail__title {
		margin: 0 0 36px;
		font-size: 60px;
	}

	.cp-detail__meta {
		gap: 64px;
	}

	.cp-detail__body {
		margin-top: 64px;
		gap: 56px;
	}

	.cp-block h2 {
		margin: 0 0 24px;
		font-size: 36px;
	}

	.cp-block p {
		font-size: 30px;
		line-height: 48px;
	}

	.cp-list {
		padding-left: 40px;
		gap: 16px;
	}

	.cp-list li {
		font-size: 30px;
		line-height: 44px;
	}

	/* Apply form (×2) */
	.cp-apply {
		margin-top: 96px;
		padding: 80px;
		border-width: 2px;
		border-radius: 32px;
		box-shadow: 0 48px 120px rgba(20, 33, 50, 0.06);
	}

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

	.cp-apply__head h2 {
		margin: 0 0 12px;
		font-size: 44px;
	}

	.cp-apply__head p {
		font-size: 28px;
	}

	.cp-form {
		gap: 48px;
	}

	.cp-form__row {
		gap: 32px;
	}

	.cp-field {
		gap: 16px;
	}

	.cp-field label {
		font-size: 28px;
	}

	.cp-field input {
		padding: 26px 32px;
		font-size: 28px;
		border-width: 2px;
		border-radius: 16px;
	}

	.cp-upload {
		gap: 16px;
		padding: 80px 32px;
		border-width: 3px;
		border-radius: 20px;
	}

	.cp-upload__icon {
		font-size: 48px;
	}

	.cp-upload__main {
		font-size: 28px;
	}

	.cp-upload__hint {
		font-size: 24px;
	}
}

/* ---- 4K / ultra-wide: shared header + footer ----
 * The header (header.css) only scales ~1.25x at 4K and the footer (footer.css)
 * not at all, so on a 3840px screen both bars look tiny next to this page's
 * 2x-scaled content. Scale them up here to match. Scoped to body.cp-page so
 * ONLY this page is affected — the shared chrome keeps its default 4K sizing on
 * every other storefront page. The bars sit on --shop-shell: 3320px, so their
 * inner content still lines up edge-to-edge with the page content. Ported from
 * new/homepage.css's body.ft-page block (the canonical 4K chrome convention).
 */
@media (min-width: 3000px) {
	body.cp-page {
		--shop-header-height: 210px;
	}

	/* Header */
	body.cp-page .shop-header__brand img {
		width: 388px;
	}

	body.cp-page .shop-nav__link {
		gap: 18px;
		padding: 20px 26px;
		font-size: 33px;
	}

	body.cp-page .shop-nav__caret {
		font-size: 31px;
	}

	body.cp-page .shop-header__actions {
		gap: 31px;
	}

	body.cp-page .shop-header__actions a,
	body.cp-page .shop-header__icon-btn,
	body.cp-page .shop-header__search-trigger {
		width: 88px;
		height: 88px;
		font-size: 44px;
	}

	body.cp-page .shop-desktop-search {
		width: 88px;
		height: 106px;
	}

	body.cp-page .shop-desktop-search input {
		font-size: 40px;
	}

	/* Footer */
	body.cp-page .shop-footer__main {
		padding: 158px 0;
	}

	body.cp-page .shop-footer__grid {
		gap: 220px;
	}

	body.cp-page .shop-footer__brand {
		max-width: 810px;
	}

	body.cp-page .shop-footer__brand img {
		width: 360px;
		margin-bottom: 35px;
	}

	body.cp-page .shop-footer__brand p,
	body.cp-page .shop-footer__column a {
		font-size: 35px;
	}

	body.cp-page .shop-footer__column h3 {
		margin-bottom: 26px;
		font-size: 40px;
	}

	body.cp-page .shop-footer__bar-inner {
		gap: 53px;
		padding: 62px 0;
	}

	body.cp-page .shop-footer__policies {
		gap: 106px;
	}

	body.cp-page .shop-footer__policies a {
		font-size: 35px;
	}

	body.cp-page .shop-footer__youtube img {
		height: 62px;
	}
}
