/*
 * GX Careers Module
 *
 * Selectors repeat their first class (.gxc-btn.gxc-btn) to lift specificity to
 * 0-2-0. Opinionated themes style bare elements through a wrapper class -- this
 * network's Geoff's Contracting child theme has
 * `.bodyWrapper h1 {color: var(--mainColor)}` at 0-1-1 -- which beats a single
 * class rule and would recolour every heading, link and list here. Doubling
 * changes specificity only, never which elements match, so this file's own
 * cascade order is unchanged.
 *
 * Sizes are in px, not rem, on purpose: host themes move the root font size
 * (the Geoff's Contracting child theme sets html{font-size:10px}), which would
 * silently shrink every rem-based size and max-width in this file.
 * Scoped to .gxc so nothing leaks into the rest of the site.
 * Every colour and font falls through to the active theme's own custom
 * properties first, then to a sensible default, so the module inherits the
 * site it is installed on. Override per site from Careers → Settings.
 */

.gxc.gxc {
	/* Palette — theme variable, then fallback. */
	--gxc-accent: var(--tan, #8b6946);
	--gxc-accent-dark: var(--brown, #4f320c);
	--gxc-accent-soft: var(--lightTan, #b79974);
	--gxc-ink: #1d1a16;
	--gxc-muted: var(--gray, #656363);
	--gxc-line: #e3ddd4;
	--gxc-surface: var(--mainBgColor, #fff);
	--gxc-surface-alt: #f7f4f0;
	--gxc-dark: #17140f;
	--gxc-dark-soft: #221d16;
	--gxc-on-dark: #f4efe8;

	/* Type */
	--gxc-font-heading: var(--headerFont, inherit);
	--gxc-font-body: var(--mainFont, inherit);

	/* Metrics */
	--gxc-container: 1180px;
	--gxc-radius: 4px;
	--gxc-poster-ratio: 1 / 1;
	--gxc-gap: clamp(20px, 3vw, 36px);
	--gxc-band-y: clamp(48px, 7vw, 96px);
	--gxc-shadow: 0 1px 2px rgba(23,20,15,.06), 0 12px 32px -12px rgba(23,20,15,.18);
	--gxc-shadow-lift: 0 2px 4px rgba(23,20,15,.08), 0 26px 50px -20px rgba(23,20,15,.32);

	color: var(--gxc-ink);
	font-family: var(--gxc-font-body);
	font-size: 16px;
	line-height: 1.6;
}

/*
 * Full-bleed bands use viewport units, which include the scrollbar, so the
 * page can gain a few pixels of horizontal scroll. `clip` removes that
 * without creating a scroll container, which would break position: sticky.
 * Scoped to the body classes the module adds, so no other page is touched.
 */
body.gxc-careers-archive.gxc-careers-archive,
body.gxc-single-job.gxc-single-job {
	overflow-x: clip;
}

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

/* ---------------------------------------------------------------------------
   Layout primitives
   ------------------------------------------------------------------------ */

.gxc-wrap.gxc-wrap {
	width: 100%;
	max-width: var(--gxc-container);
	margin-inline: auto;
	padding-inline: clamp(20px, 4vw, 40px);
}

.gxc-band.gxc-band {
	position: relative;
	padding-block: var(--gxc-band-y);
	background: var(--gxc-surface);
}

/*
 * Escapes a theme container so bands read full width either way. The padding
 * puts the inner content back where the container had it, so .gxc-wrap still
 * lines up with the rest of the page.
 */
.gxc-bleed.gxc-bleed {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-left: calc(50vw - 50%);
	padding-right: calc(50vw - 50%);
}

/* Opt out per site if the theme already renders content full width. */
.gxc-no-bleed.gxc-no-bleed .gxc-bleed {
	margin-inline: 0;
	padding-inline: 0;
}

.gxc-band__title.gxc-band__title {
	font-family: var(--gxc-font-heading);
	font-size: clamp(28px, 3.4vw, 41.6px);
	line-height: 1.12;
	letter-spacing: -0.01em;
	margin: 0 0 clamp(24px, 3vw, 36px);
	color: var(--gxc-on-dark);
}

.gxc-band__title--dark.gxc-band__title--dark {
	color: var(--gxc-ink);
}

/* ---------------------------------------------------------------------------
   Eyebrow
   ------------------------------------------------------------------------ */

.gxc-eyebrow.gxc-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	font-family: var(--gxc-font-heading);
	font-size: 11.8px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gxc-accent-soft);
}

.gxc-eyebrow.gxc-eyebrow::before {
	content: "";
	inline-size: 36px;
	block-size: 2px;
	flex: none;
	background: currentColor;
	opacity: .85;
}

.gxc-eyebrow--dark.gxc-eyebrow--dark {
	color: var(--gxc-accent-dark);
}

/* ---------------------------------------------------------------------------
   Hero
   ------------------------------------------------------------------------ */

.gxc-band--hero.gxc-band--hero {
	background:
		radial-gradient(115% 120% at 94% 6%, rgba(139, 105, 70, .34) 0%, transparent 58%),
		linear-gradient(158deg, var(--gxc-dark) 0%, var(--gxc-dark-soft) 100%);
	color: var(--gxc-on-dark);
	padding-block: clamp(56px, 9vw, 120px);
	overflow: hidden;
	isolation: isolate;
}

.gxc-band__media.gxc-band__media {
	position: absolute;
	inset: 0;
	z-index: -2;
	background-size: cover;
	background-position: center;
	transform: scale(1.02);
}

.gxc-band--hero.gxc-band--hero.has-image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(100deg, rgba(23, 20, 15, .94) 0%, rgba(23, 20, 15, .78) 46%, rgba(23, 20, 15, .34) 100%),
		linear-gradient(to top, rgba(23, 20, 15, .7), transparent 55%);
}

.gxc-band__inner.gxc-band__inner {
	position: relative;
}

.gxc-hero__title.gxc-hero__title {
	max-width: 900px;
	font-family: var(--gxc-font-heading);
	font-size: clamp(36px, 6vw, 68px);
	line-height: 1.04;
	letter-spacing: -0.02em;
	margin: 0 0 16px;
	color: #fff;
	text-wrap: balance;
}

.gxc-hero__intro.gxc-hero__intro {
	max-width: 736px;
	font-size: clamp(16.3px, 1.4vw, 19.2px);
	line-height: 1.65;
	color: rgba(244, 239, 232, .84);
}

.gxc-hero__intro.gxc-hero__intro p:last-child {
	margin-bottom: 0;
}

.gxc-hero__count.gxc-hero__count {
	margin: 24px 0 0;
	font-size: 12.8px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gxc-accent-soft);
}

.gxc-hero__actions.gxc-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: clamp(28px, 3vw, 40px);
}


/* Hero split: copy beside the posting's poster image. */

.gxc-hero.gxc-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
	max-width: var(--gxc-container);
}

.gxc-band--hero.gxc-band--hero:not(.has-poster) .gxc-hero {
	grid-template-columns: minmax(0, 1fr);
}

.gxc-hero__copy.gxc-hero__copy {
	min-width: 0;
}

.gxc-hero__poster.gxc-hero__poster {
	position: relative;
	margin: 0;
	aspect-ratio: var(--gxc-poster-ratio);
	overflow: hidden;
	border: 1px solid rgba(244, 239, 232, .16);
	border-radius: var(--gxc-radius);
	box-shadow: 0 40px 80px -34px rgba(0, 0, 0, .85);
	background: var(--gxc-dark-soft);
}

.gxc-hero__poster.gxc-hero__poster img,
.gxc-hero__poster-img.gxc-hero__poster-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gxc-hero.gxc-hero .gxc-hero__intro {
	margin-top: 5.6px;
}

@media (max-width: 900px) {
	.gxc-hero.gxc-hero {
		grid-template-columns: minmax(0, 1fr);
	}

	.gxc-hero__poster.gxc-hero__poster {
		order: -1;
		max-width: 416px;
	}
}

/* ---------------------------------------------------------------------------
   Chips (hero facts)
   ------------------------------------------------------------------------ */

.gxc-chips.gxc-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.gxc-chip.gxc-chip {
	display: flex;
	flex-direction: column;
	gap: 2.4px;
	padding: 9.6px 15.2px;
	border: 1px solid rgba(244, 239, 232, .22);
	border-radius: var(--gxc-radius);
	background: rgba(244, 239, 232, .06);
	backdrop-filter: blur(2px);
}

.gxc-chip__label.gxc-chip__label {
	font-size: 10.6px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gxc-accent-soft);
}

.gxc-chip__value.gxc-chip__value {
	font-size: 15.2px;
	font-weight: 600;
	color: #fff;
}

/* ---------------------------------------------------------------------------
   Buttons
   ------------------------------------------------------------------------ */

.gxc-btn.gxc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14.4px 25.6px;
	border: 2px solid transparent;
	border-radius: var(--gxc-radius);
	font-family: var(--gxc-font-heading);
	font-size: 13.1px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

/*
 * Primary buttons take their tone from the surface they sit on, so the label
 * always clears WCAG AA and the button's own edge clears the 3:1 non-text
 * minimum against the band behind it:
 *   on light surfaces  deep brown on white text  ~11.7:1
 *   on dark bands      light tan on dark ink     ~6.8:1 (and 6.8:1 vs the band)
 * A single mid-tan fill would only reach 4.99:1 on white text and 3.7:1 against
 * the dark hero, which is why it is split.
 */
.gxc-btn--primary.gxc-btn--primary {
	background: var(--gxc-accent-dark);
	border-color: var(--gxc-accent-dark);
	color: #fff;
}

.gxc-btn--primary.gxc-btn--primary:hover,
.gxc-btn--primary.gxc-btn--primary:focus-visible {
	background: var(--gxc-accent);
	border-color: var(--gxc-accent);
	color: #fff;
	transform: translateY(-1px);
}

.gxc-band--hero.gxc-band--hero .gxc-btn--primary,
.gxc-band--video.gxc-band--video .gxc-btn--primary {
	background: var(--gxc-accent-soft);
	border-color: var(--gxc-accent-soft);
	color: var(--gxc-dark);
}

.gxc-band--hero.gxc-band--hero .gxc-btn--primary:hover,
.gxc-band--hero.gxc-band--hero .gxc-btn--primary:focus-visible,
.gxc-band--video.gxc-band--video .gxc-btn--primary:hover,
.gxc-band--video.gxc-band--video .gxc-btn--primary:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--gxc-dark);
}

.gxc-btn--ghost.gxc-btn--ghost {
	border-color: rgba(244, 239, 232, .55);
	color: #fff;
}

.gxc-btn--ghost.gxc-btn--ghost:hover,
.gxc-btn--ghost.gxc-btn--ghost:focus-visible {
	border-color: #fff;
	color: #fff;
}

.gxc-btn--light.gxc-btn--light {
	background: #fff;
	border-color: #fff;
	color: var(--gxc-accent-dark);
}

.gxc-btn--light.gxc-btn--light:hover,
.gxc-btn--light.gxc-btn--light:focus-visible {
	background: var(--gxc-accent-soft);
	border-color: var(--gxc-accent-soft);
	color: #fff;
}

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

.gxc-btn.gxc-btn:focus-visible {
	outline: 3px solid var(--gxc-accent-soft);
	outline-offset: 2px;
}

/* ---------------------------------------------------------------------------
   Filter pills
   ------------------------------------------------------------------------ */

.gxc-band--filters.gxc-band--filters {
	padding-block: clamp(20px, 2.5vw, 32px);
	border-bottom: 1px solid var(--gxc-line);
	background: var(--gxc-surface);
}

.gxc-filters.gxc-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gxc-pill.gxc-pill {
	display: inline-flex;
	align-items: center;
	gap: 7.2px;
	padding: 8px 14.4px;
	border: 1px solid var(--gxc-line);
	border-radius: 999px;
	font-size: 13.1px;
	font-weight: 600;
	text-decoration: none;
	color: var(--gxc-muted);
	background: var(--gxc-surface);
	transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}

.gxc-pill.gxc-pill:hover,
.gxc-pill.gxc-pill:focus-visible {
	border-color: var(--gxc-accent);
	color: var(--gxc-accent-dark);
}

.gxc-pill.gxc-pill.is-active {
	background: var(--gxc-accent);
	border-color: var(--gxc-accent);
	color: #fff;
}

.gxc-pill__count.gxc-pill__count {
	font-size: 11.2px;
	font-weight: 700;
	opacity: .7;
}

/* ---------------------------------------------------------------------------
   Listing
   ------------------------------------------------------------------------ */

.gxc-band--list.gxc-band--list {
	background: var(--gxc-surface-alt);
}

.gxc-grid.gxc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(288px, 1fr));
	grid-auto-rows: 1fr;
	gap: var(--gxc-gap);
	align-items: stretch;
}

.gxc-list--cols-1.gxc-list--cols-1 .gxc-grid { grid-template-columns: 1fr; }
.gxc-list--cols-2.gxc-list--cols-2 .gxc-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.gxc-list--cols-4.gxc-list--cols-4 .gxc-grid { grid-template-columns: repeat(auto-fill, minmax(248px, 1fr)); }

/* ---------------------------------------------------------------------------
   Cards
   ------------------------------------------------------------------------ */

.gxc-card.gxc-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--gxc-line);
	border-radius: var(--gxc-radius);
	background: var(--gxc-surface);
	box-shadow: var(--gxc-shadow);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.gxc-card.gxc-card:hover {
	transform: translateY(-3px);
	border-color: var(--gxc-accent-soft);
	box-shadow: var(--gxc-shadow-lift);
}

.gxc-card__body.gxc-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: clamp(22px, 2.6vw, 34px);
	border-top: 3px solid var(--gxc-accent);
}

.gxc-card__head.gxc-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.gxc-card__body.gxc-card__body .gxc-eyebrow {
	font-size: 11px;
	margin: 0;
}

.gxc-card__body.gxc-card__body .gxc-eyebrow::before {
	inline-size: 20px;
}

.gxc-tag.gxc-tag {
	flex: none;
	padding: 4px 10px;
	border-radius: 2px;
	background: var(--gxc-accent);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.gxc-tag--closed.gxc-tag--closed {
	background: var(--gxc-muted);
}

.gxc-card__title.gxc-card__title {
	color: var(--gxc-ink);
	font-family: var(--gxc-font-heading);
	font-size: clamp(21px, 1.8vw, 25px);
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0 0 10px;
}

.gxc-card__title.gxc-card__title a {
	color: inherit;
	text-decoration: none;
}

.gxc-card__title.gxc-card__title a:hover,
.gxc-card__title.gxc-card__title a:focus-visible {
	color: var(--gxc-accent-dark);
}

.gxc-card__summary.gxc-card__summary {
	margin: 0 0 20px;
	font-size: 15.5px;
	line-height: 1.62;
	color: var(--gxc-muted);
}

.gxc-card__facts.gxc-card__facts {
	margin: 0 0 22px;
	padding-top: 16px;
	border-top: 1px solid var(--gxc-line);
	display: grid;
	gap: 12px;
}

.gxc-card__fact.gxc-card__fact dt {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gxc-accent-dark);
	margin: 0 0 2px;
}

.gxc-card__fact.gxc-card__fact dd {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--gxc-ink);
}

.gxc-card__fact--salary.gxc-card__fact--salary dd {
	color: var(--gxc-accent-dark);
}

.gxc-card__link.gxc-card__link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--gxc-font-heading);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gxc-accent-dark);
}

.gxc-card__arrow.gxc-card__arrow {
	transition: transform .25s ease;
}

.gxc-card__link.gxc-card__link:hover .gxc-card__arrow,
.gxc-card.gxc-card:hover .gxc-card__arrow {
	transform: translateX(4px);
}

.gxc-job--closed.gxc-job--closed .gxc-card__title a {
	color: var(--gxc-muted);
}

/* ---------------------------------------------------------------------------
   Highlights strip
   ------------------------------------------------------------------------ */

.gxc-band--strip.gxc-band--strip {
	padding-block: clamp(24px, 3vw, 40px);
	background: var(--gxc-accent-dark);
	color: #fff;
}

.gxc-strip.gxc-strip {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(208px, 1fr));
	gap: 20px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gxc-strip__item.gxc-strip__item {
	display: flex;
	flex-direction: column;
	gap: 4.8px;
	padding-left: 16px;
	border-left: 2px solid rgba(255, 255, 255, .28);
}

.gxc-strip__label.gxc-strip__label {
	font-size: 10.6px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	/* accent-soft on accent-dark measures 4.36:1 -- under AA for 10.6px text. */
	color: rgba(255, 255, 255, .85);
}

.gxc-strip__value.gxc-strip__value {
	font-size: 15.7px;
	line-height: 1.5;
	color: rgba(255, 255, 255, .94);
}

/* ---------------------------------------------------------------------------
   Single: body layout
   ------------------------------------------------------------------------ */

.gxc-layout.gxc-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 336px;
	gap: clamp(32px, 5vw, 64px);
	align-items: start;
}

.gxc-layout__side.gxc-layout__side {
	position: relative;
}

.gxc-card--sticky.gxc-card--sticky {
	position: sticky;
	top: 32px;
	padding: clamp(24px, 2.6vw, 32px);
	box-shadow: var(--gxc-shadow);
}

.gxc-card--sticky.gxc-card--sticky:hover {
	transform: none;
	box-shadow: var(--gxc-shadow);
	border-color: var(--gxc-line);
}

.gxc-facts.gxc-facts {
	margin: 0 0 20px;
}

.gxc-facts.gxc-facts dt {
	font-size: 10.6px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gxc-accent-dark);
	margin-bottom: 2.4px;
}

.gxc-facts.gxc-facts dd {
	color: var(--gxc-ink);
	margin: 0 0 14.4px;
	padding-bottom: 14.4px;
	border-bottom: 1px solid var(--gxc-line);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
}

.gxc-facts.gxc-facts dd:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}

.gxc-facts__note.gxc-facts__note {
	margin: 0 0 20px;
	font-size: 13.4px;
	line-height: 1.55;
	color: var(--gxc-muted);
}

.gxc-share.gxc-share {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--gxc-line);
}

.gxc-share__label.gxc-share__label {
	display: block;
	margin-bottom: 9.6px;
	font-size: 10.6px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gxc-muted);
}

.gxc-share__list.gxc-share__list {
	display: flex;
	flex-wrap: wrap;
	gap: 6.4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gxc-share__link.gxc-share__link {
	display: inline-block;
	padding: 5.6px 11.2px;
	border: 1px solid var(--gxc-line);
	border-radius: 2px;
	font-size: 12.2px;
	font-weight: 600;
	text-decoration: none;
	color: var(--gxc-muted);
}

.gxc-share__link.gxc-share__link:hover,
.gxc-share__link.gxc-share__link:focus-visible {
	border-color: var(--gxc-accent);
	color: var(--gxc-accent-dark);
}

/* ---------------------------------------------------------------------------
   Prose (job description content)
   ------------------------------------------------------------------------ */

.gxc-prose.gxc-prose {
	font-size: clamp(16px, 1.15vw, 17.3px);
	line-height: 1.72;
	color: #2c2823;
}

.gxc-prose.gxc-prose > *:first-child {
	margin-top: 0;
}

.gxc-prose.gxc-prose h2 {
	font-family: var(--gxc-font-heading);
	font-size: clamp(22.4px, 2.4vw, 30.4px);
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 44px 0 16px;
	padding-bottom: 9.6px;
	border-bottom: 1px solid var(--gxc-line);
	color: var(--gxc-ink);
}

.gxc-prose.gxc-prose h3 {
	font-family: var(--gxc-font-heading);
	font-size: clamp(17.6px, 1.6vw, 20.8px);
	line-height: 1.3;
	margin: 32px 0 12px;
	color: var(--gxc-accent-dark);
}

.gxc-prose.gxc-prose h4 {
	color: var(--gxc-ink);
	font-family: var(--gxc-font-heading);
	font-size: 16.8px;
	margin: 24px 0 8px;
}

.gxc-prose.gxc-prose p {
	margin: 0 0 18.4px;
}

.gxc-prose.gxc-prose strong {
	color: var(--gxc-ink);
}

.gxc-prose.gxc-prose ul,
.gxc-prose.gxc-prose ol {
	margin: 0 0 24px;
	padding-left: 0;
	list-style: none;
}

.gxc-prose.gxc-prose ol {
	counter-reset: gxc-ol;
}

.gxc-prose.gxc-prose ul > li,
.gxc-prose.gxc-prose ol > li {
	position: relative;
	padding-left: 29.6px;
	margin-bottom: 9.6px;
}

.gxc-prose.gxc-prose ul > li::before {
	content: "";
	position: absolute;
	left: 1.6px;
	top: .62em;
	inline-size: 8px;
	block-size: 8px;
	border: 2px solid var(--gxc-accent);
	border-radius: 1px;
	transform: rotate(45deg);
}

.gxc-prose.gxc-prose ol > li::before {
	counter-increment: gxc-ol;
	content: counter(gxc-ol);
	position: absolute;
	left: 0;
	top: .1em;
	inline-size: 20.8px;
	block-size: 20.8px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--gxc-accent);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
}

.gxc-prose.gxc-prose blockquote {
	margin: 28px 0;
	padding: 20px 24px;
	border-left: 3px solid var(--gxc-accent);
	background: var(--gxc-surface-alt);
	font-size: 16.8px;
	font-style: italic;
}

.gxc-prose.gxc-prose blockquote p:last-child {
	margin-bottom: 0;
}

.gxc-prose.gxc-prose a {
	color: var(--gxc-accent-dark);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .16em;
}

.gxc-prose.gxc-prose img {
	max-width: 100%;
	height: auto;
	border-radius: var(--gxc-radius);
}

.gxc-prose.gxc-prose table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 24px;
	font-size: 15.2px;
}

.gxc-prose.gxc-prose th,
.gxc-prose.gxc-prose td {
	padding: 10.4px 13.6px;
	border: 1px solid var(--gxc-line);
	text-align: left;
}

.gxc-prose.gxc-prose th {
	background: var(--gxc-surface-alt);
	font-family: var(--gxc-font-heading);
}

/* ---------------------------------------------------------------------------
   Video band
   ------------------------------------------------------------------------ */

.gxc-band--video.gxc-band--video {
	background: var(--gxc-dark);
	color: var(--gxc-on-dark);
}

.gxc-video__frame.gxc-video__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--gxc-radius);
	box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .8);
	background: #000;
}

.gxc-video__frame.gxc-video__frame iframe,
.gxc-video__frame.gxc-video__frame video,
.gxc-video__frame.gxc-video__frame object,
.gxc-video__frame.gxc-video__frame embed {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ---------------------------------------------------------------------------
   Apply form
   ------------------------------------------------------------------------ */

.gxc-band--apply.gxc-band--apply {
	background: var(--gxc-surface-alt);
	scroll-margin-top: 32px;
}

.gxc-apply.gxc-apply {
	max-width: 736px;
	margin-inline: auto;
}

.gxc-apply.gxc-apply .gxc-eyebrow {
	color: var(--gxc-accent-dark);
}

.gxc-apply__intro.gxc-apply__intro {
	text-align: center;
	margin-bottom: clamp(28px, 3vw, 40px);
}

.gxc-apply__intro.gxc-apply__intro .gxc-eyebrow {
	justify-content: center;
}

.gxc-apply__heading.gxc-apply__heading {
	color: var(--gxc-ink);
	font-family: var(--gxc-font-heading);
	font-size: clamp(24.8px, 3vw, 36.8px);
	line-height: 1.14;
	letter-spacing: -0.01em;
	margin: 0 0 12px;
}

.gxc-apply__note.gxc-apply__note {
	margin: 0;
	font-size: 15.4px;
	line-height: 1.6;
	color: var(--gxc-muted);
}

.gxc-form.gxc-form {
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--gxc-line);
	border-radius: var(--gxc-radius);
	background: var(--gxc-surface);
	box-shadow: var(--gxc-shadow);
}

.gxc-form__row.gxc-form__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px 20px;
}

.gxc-field.gxc-field {
	margin-bottom: 20px;
}

.gxc-field.gxc-field label {
	display: block;
	margin-bottom: 6.4px;
	font-family: var(--gxc-font-heading);
	font-size: 11.8px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gxc-ink);
}

.gxc-req.gxc-req {
	color: #b3261e;
}

.gxc-field.gxc-field input[type="text"],
.gxc-field.gxc-field input[type="email"],
.gxc-field.gxc-field input[type="tel"],
.gxc-field.gxc-field textarea {
	width: 100%;
	padding: 12.8px 15.2px;
	border: 1px solid var(--gxc-line);
	border-radius: var(--gxc-radius);
	background: #fff;
	font-family: inherit;
	font-size: 16px;
	color: var(--gxc-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.gxc-field.gxc-field input:focus,
.gxc-field.gxc-field textarea:focus {
	outline: none;
	border-color: var(--gxc-accent);
	box-shadow: 0 0 0 3px rgba(139, 105, 70, .16);
}

.gxc-field.gxc-field textarea {
	resize: vertical;
	min-height: 128px;
}

.gxc-field.gxc-field.has-error input,
.gxc-field.gxc-field.has-error textarea,
.gxc-field.gxc-field.has-error .gxc-file {
	border-color: #b3261e;
}

.gxc-field__error.gxc-field__error {
	display: block;
	margin-top: 5.6px;
	font-size: 13.1px;
	font-weight: 600;
	color: #b3261e;
}

/* File input */

.gxc-file.gxc-file {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 9.6px 8px 8px;
	border: 1px dashed var(--gxc-line);
	border-radius: var(--gxc-radius);
	background: #fff;
	transition: border-color .2s ease, background-color .2s ease;
}

.gxc-file.gxc-file:hover,
.gxc-file.gxc-file:focus-within {
	border-color: var(--gxc-accent);
	background: rgba(183, 153, 116, .06);
}

.gxc-file.gxc-file input[type="file"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}

.gxc-file__button.gxc-file__button {
	flex: none;
	padding: 8px 14.4px;
	border-radius: 2px;
	background: var(--gxc-ink);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.gxc-file__name.gxc-file__name {
	font-size: 14.1px;
	color: var(--gxc-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gxc-file.gxc-file.has-file .gxc-file__name {
	color: var(--gxc-accent-dark);
	font-weight: 600;
}

.gxc-form__hp.gxc-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.gxc-form__consent.gxc-form__consent {
	margin: 0 0 20px;
	font-size: 13.1px;
	line-height: 1.55;
	color: var(--gxc-muted);
}

.gxc-form__actions.gxc-form__actions {
	display: flex;
	justify-content: flex-start;
}

.gxc-btn--submit.gxc-btn--submit[disabled] {
	opacity: .65;
	cursor: progress;
}

/* Notices */

.gxc-notice.gxc-notice {
	padding: 20px 24px;
	border-left: 3px solid var(--gxc-accent);
	border-radius: var(--gxc-radius);
	background: var(--gxc-surface);
	box-shadow: var(--gxc-shadow);
}

.gxc-notice.gxc-notice p:last-child,
.gxc-notice.gxc-notice ul:last-child {
	margin-bottom: 0;
}

.gxc-notice--success.gxc-notice--success {
	border-left-color: #1f7a4d;
}

.gxc-notice--error.gxc-notice--error {
	border-left-color: #b3261e;
}

.gxc-notice--error.gxc-notice--error ul {
	margin: 8px 0 0;
	padding-left: 19.2px;
}

/* ---------------------------------------------------------------------------
   CTA band
   ------------------------------------------------------------------------ */

.gxc-band--cta.gxc-band--cta {
	background:
		linear-gradient(135deg, var(--gxc-accent-dark) 0%, var(--gxc-accent) 100%);
	color: #fff;
}

.gxc-cta.gxc-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: clamp(24px, 4vw, 48px);
}

.gxc-cta__copy.gxc-cta__copy {
	max-width: 704px;
}

.gxc-cta.gxc-cta .gxc-eyebrow {
	color: rgba(255, 255, 255, .75);
}

.gxc-cta__heading.gxc-cta__heading {
	font-family: var(--gxc-font-heading);
	font-size: clamp(24px, 3vw, 36.8px);
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0;
	color: #fff;
	text-wrap: balance;
}

.gxc-cta__text.gxc-cta__text {
	margin-top: 12px;
	font-size: 16.3px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .88);
}

.gxc-cta__text.gxc-cta__text p:last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------------------------
   Related + empty + pagination
   ------------------------------------------------------------------------ */

.gxc-band--related.gxc-band--related {
	background: var(--gxc-surface);
	border-top: 1px solid var(--gxc-line);
}

.gxc-empty.gxc-empty {
	max-width: 640px;
	margin-inline: auto;
	padding: clamp(32px, 4vw, 48px);
	border: 1px solid var(--gxc-line);
	border-radius: var(--gxc-radius);
	background: var(--gxc-surface);
	text-align: center;
}

.gxc-empty.gxc-empty .gxc-eyebrow {
	justify-content: center;
	color: var(--gxc-accent-dark);
}

.gxc-empty__body.gxc-empty__body {
	font-size: 16.8px;
	line-height: 1.65;
	color: var(--gxc-muted);
}

.gxc-pagination.gxc-pagination {
	margin-top: clamp(32px, 4vw, 48px);
}

.gxc-pagination.gxc-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6.4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gxc-pagination.gxc-pagination a,
.gxc-pagination.gxc-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 40px;
	padding: 8px 12px;
	border: 1px solid var(--gxc-line);
	border-radius: var(--gxc-radius);
	font-size: 14.4px;
	font-weight: 600;
	text-decoration: none;
	color: var(--gxc-muted);
	background: var(--gxc-surface);
}

.gxc-pagination.gxc-pagination a:hover {
	border-color: var(--gxc-accent);
	color: var(--gxc-accent-dark);
}

.gxc-pagination.gxc-pagination .current {
	background: var(--gxc-accent);
	border-color: var(--gxc-accent);
	color: #fff;
}

/* ---------------------------------------------------------------------------
   Breadcrumb
   ------------------------------------------------------------------------ */

.gxc-breadcrumb.gxc-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 24px;
	font-size: 12.8px;
	color: rgba(244, 239, 232, .6);
}

.gxc-breadcrumb.gxc-breadcrumb a {
	color: rgba(244, 239, 232, .78);
	text-decoration: none;
}

.gxc-breadcrumb.gxc-breadcrumb a:hover,
.gxc-breadcrumb.gxc-breadcrumb a:focus-visible {
	color: #fff;
	text-decoration: underline;
}

/* ---------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------ */

@media (max-width: 1024px) {
	.gxc-layout.gxc-layout {
		grid-template-columns: 1fr;
	}

	.gxc-card--sticky.gxc-card--sticky {
		position: static;
	}

	.gxc-layout__side.gxc-layout__side {
		order: -1;
	}
}

@media (max-width: 768px) {
	.gxc-grid.gxc-grid,
	.gxc-list--cols-2.gxc-list--cols-2 .gxc-grid,
	.gxc-list--cols-4.gxc-list--cols-4 .gxc-grid {
		grid-template-columns: 1fr;
	}


	.gxc-cta.gxc-cta {
		flex-direction: column;
		align-items: flex-start;
	}

	.gxc-band--hero.gxc-band--hero {
		padding-block: clamp(44px, 12vw, 64px);
	}
}

@media (max-width: 480px) {
	.gxc-chips.gxc-chips {
		gap: 6.4px;
	}

	.gxc-chip.gxc-chip {
		flex: 1 1 100%;
	}

	.gxc-hero__actions.gxc-hero__actions .gxc-btn {
		width: 100%;
	}

	.gxc-form.gxc-form {
		padding: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gxc.gxc *,
	.gxc.gxc *::before,
	.gxc.gxc *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}

@media print {
	.gxc-band--hero.gxc-band--hero .gxc-band__media,
	.gxc-band--apply.gxc-band--apply,
	.gxc-band--cta.gxc-band--cta,
	.gxc-band--related.gxc-band--related,
	.gxc-band--filters.gxc-band--filters,
	.gxc-share.gxc-share {
		display: none !important;
	}

	.gxc-band.gxc-band {
		padding-block: 16px;
		background: #fff !important;
		color: #000 !important;
	}
}
