/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
	--color-lime: #c8e327;
	--color-navy: #112b44;
	--color-grey-100: #e9e9e9;
	--color-grey-900: #0d1722;
	--color-white: #ffffff;
	--color-border: rgba(17, 43, 68, 0.14);
	--gradient-brand: linear-gradient(90deg, #050615 0%, #1B4A6B 54.81%, #177262 100%);
	--font-heading: "Kepler Std", "Iowan Old Style", "Palatino Linotype", serif;
	--font-body: "Raleway", sans-serif;
	--radius-sm: 0.4rem;
	--radius-md: 0.8rem;
	--radius-lg: 10px;
	--shadow-soft: 0 12px 40px rgba(7, 20, 31, 0.08);
	--shell-wide: 1600px;
	--shell-narrow: 1100px;
	--type-body: clamp(18px, calc(0.556vw + 11.33px), 22px);
	--type-body-lg: clamp(1.125rem, 0.95rem + 0.7vw, 1.375rem);
	--type-heading: clamp(2.25rem, 2rem + 1.4vw, 3.25rem);
	--type-hero: clamp(2.75rem, 4vw, 4.5rem);
	--type-display: clamp(3.5rem, 6vw, 7rem);
	--radius-button: 10px;
}


/* ============================================================
   RESET & BASE
   ============================================================ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	color: var(--color-navy);
	background: var(--color-white);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
}

body,
input,
select,
textarea,
button {
	font-family: var(--font-body);
	font-size: var(--type-body);
	font-weight: 500;
	line-height: 1.45;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 1rem;
	font-family: var(--font-heading);
	font-weight: 300;
	line-height: 1.08;
}

h2 {
	margin-bottom: 2rem;
}

h1 {
	color: inherit;
	font-family: var(--font-heading);
	font-size: clamp(36px, calc(36px + (72 - 36) * ((100vw - 320px) / (1920 - 320))), 72px);
	font-style: normal;
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0;
}

h2,
h3 {
	font-family: var(--font-heading);
	font-size: var(--type-heading);
	font-style: normal;
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0;
}

/* Global text width reset */
h2,
h3,
h4,
h5,
p {
	max-width: none;
}

p {
	margin: 0 0 1rem;
}

p,
li,
blockquote {
	font-size: var(--type-body);
	font-weight: 500;
	line-height: 1.45;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}


/* ============================================================
   LAYOUT SHELLS
   ============================================================ */
.shell {
	width: min(100% - 9rem, var(--shell-wide));
	margin-inline: auto;
}

.shell--wide {
	width: min(100% - 9rem, var(--shell-wide));
}

.shell--narrow {
	width: min(100% - 9rem, var(--shell-narrow));
}

.site-shell {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.site-main {
	flex: 1;
}

@media (max-width: 900px) {
	.shell,
	.shell--wide {
		width: min(100% - 4rem, var(--shell-wide));
	}

	.shell--narrow {
		width: min(100% - 4rem, var(--shell-narrow));
	}
}

@media (max-width: 640px) {
	.shell,
	.shell--wide {
		width: min(100% - 2rem, var(--shell-wide));
	}

	.shell--narrow {
		width: min(100% - 2rem, var(--shell-narrow));
	}
}


/* ============================================================
   BUTTONS
   ============================================================ */
.button,
.wp-element-button,
button,
input[type='submit'],
input[type='button'],
input[type='reset'],
.button--primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* min-height: 2.9rem; */
	padding: 0.8rem 1.1rem;
	border-radius: var(--radius-button);
	font-family: var(--font-body);
	font-size: var(--type-body);
	font-style: normal;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
	background: var(--color-lime);
	color: var(--color-navy);
	border: 2px solid var(--color-lime);
	box-shadow: none;
	transition: background-color 0.22s ease, color 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}

.button:hover,
.wp-element-button:hover,
button:hover,
input[type='submit']:hover,
input[type='button']:hover,
input[type='reset']:hover,
.button--primary:hover,
.button:focus-visible,
.wp-element-button:focus-visible,
button:focus-visible,
input[type='submit']:focus-visible,
input[type='button']:focus-visible,
input[type='reset']:focus-visible,
.button--primary:focus-visible {
	background: #d5ee38;
	border-color: #d5ee38;
	color: var(--color-navy);
	transform: translateY(-1px);
}

.button--secondary,
.button--outline-dark {
	background: transparent;
	border: 1px solid currentColor;
	box-shadow: none;
}

.button--secondary {
	color: var(--color-lime) !important;
	border: 1px solid var(--color-lime);
}

.button--secondary:hover {
	color: var(--color-navy) !important;
}

.button--outline-dark {
	color: var(--color-navy);
	border-color: var(--color-navy) !important;
}

/* ============================================================
   STANDARD / LEGAL PAGES + 404
   ============================================================ */
.hero--page-standard,
.hero--404 {
	background: var(--gradient-brand);
}

.hero__content--page-standard,
.hero__content--404 {
	max-width: min(100%, 58rem);
}

.section--page-standard,
.section--404 {
	padding: clamp(3rem, 5vw, 5rem) 0 clamp(4rem, 6vw, 6rem);
}

.entry-card--page-standard,
.entry-card--404 {
	/* padding: clamp(2rem, 3vw, 3rem); */
}

.entry-content--page-standard > :last-child,
.entry-content--404 > :last-child {
	margin-bottom: 0;
}

.entry-content--page-standard h2,
.entry-content--page-standard h3,
.entry-content--page-standard h4 {
	margin-top: 2.5rem;
	margin-bottom: 1rem;
	color: var(--color-navy);
}

.entry-content--page-standard p,
.entry-content--page-standard li,
.entry-content--404 p {
	color: var(--color-navy);
}

.entry-content--page-standard ul,
.entry-content--page-standard ol {
	padding-left: 1.5rem;
	margin: 0 0 1.25rem;
}

.entry-content--page-standard a {
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.entry-card--404 h2 {
	margin-bottom: 1.25rem;
}

.page-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2rem;
}

@media (max-width: 640px) {
	.section--page-standard,
	.section--404 {
		padding-top: 2rem;
		padding-bottom: 3rem;
	}

	.entry-card--page-standard,
	.entry-card--404 {
		padding: 1.4rem;
	}
}


/* ============================================================
   SITE HEADER
   ============================================================ */
.site-header {
	position: absolute;
	width: 100%;
	background: transparent;
	color: var(--color-white);
	z-index: 30;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.45rem 0;
	gap: 1rem;
}

.site-brand {
	display: inline-flex;
	align-items: center;
	max-width: 260px;
	position: relative;
	z-index: 2;
}

.site-brand__logo {
	width: 100%;
	height: auto;
}

.site-brand__mark {
	font-family: var(--font-heading);
	font-size: clamp(1.8rem, 2vw, 2.4rem);
}

.site-header__meta {
	display: flex;
	align-items: center;
	gap: 4rem;
	padding-left: 1rem;
}

.site-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	white-space: nowrap;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
}

.site-header__phone-label {
	color: var(--color-lime);
}

.site-header__phone-number {
	color: var(--color-white);
}

.site-header__toggle {
	display: inline-grid;
	gap: 0.75rem;
	padding: 0.25rem 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	position: relative;
	z-index: 46;
}

.site-header__toggle > span:not(.screen-reader-text) {
	display: block;
	width: 40px;
	height: 3px;
	border-radius: 999px;
	background: var(--color-lime);
	transform-origin: 4px 50%;
	transition: transform 0.4s cubic-bezier(0.77, 0.2, 0.05, 1), opacity 0.24s ease, background 0.24s ease;
	will-change: transform, opacity;
}

.site-header__toggle > span:nth-child(1) { transform-origin: 0 0; }
.site-header__toggle > span:nth-child(3) { transform-origin: 0 100%; }

.site-header__toggle[aria-expanded='true'] > span:nth-child(1) {
	transform: rotate(45deg) translate(2px, -2px);
}
.site-header__toggle[aria-expanded='true'] > span:nth-child(2) {
	opacity: 0;
	transform: scaleX(0.2);
}
.site-header__toggle[aria-expanded='true'] > span:nth-child(3) {
	transform: rotate(-45deg) translate(2px, 2px);
}

.site-header__toggle:hover,
.site-header__toggle:active,
.site-header__toggle:focus,
.site-header__toggle:focus-visible {
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	outline: none;
	transform: none !important;
}

@media (max-width: 782px) {
	.site-header__inner {
		align-items: flex-start;
	}

	.site-header__meta {
		gap: 1rem;
	}
}

@media (max-width: 640px) {
	.site-header__inner {
		padding: 1.15rem 0;
	}

	.site-brand__logo {
		height: 1.8rem;
	}

	.site-header__phone {
		display: none;
	}
}


/* ============================================================
   SITE MENU (DRAWER)
   ============================================================ */
.site-menu {
	position: fixed;
	inset: 0;
	z-index: 45;
	visibility: hidden;
	pointer-events: none;
}

.site-menu.is-open {
	visibility: visible;
	pointer-events: auto;
}

.site-menu__overlay {
	position: absolute;
	inset: 0;
	border: 0;
	background: transparent;
	opacity: 0;
	cursor: pointer;
	transition: opacity 0.28s ease;
}

.site-menu.is-open .site-menu__overlay {
	opacity: 0;
}

.site-menu__drawer {
	position: absolute;
	top: 0;
	right: 0;
	width: min(100%, 450px);
	min-width: 0;
	max-width: 450px;
	height: 100dvh;
	background: #f5f5f2;
	box-shadow: -12px 0 28px rgba(5, 15, 22, 0.12);
	transform: translate3d(100%, 0, 0);
	transition: transform 0.45s cubic-bezier(0.77, 0.2, 0.05, 1);
}

.site-menu.is-open .site-menu__drawer {
	transform: translateX(0);
}

.site-menu__drawer-inner {
	min-height: 100%;
	display: flex;
	flex-direction: column;
	padding: 2rem 2rem 2rem 4rem;
}

.site-menu__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: nowrap;
}

.site-menu__brand {
	display: inline-flex;
	align-items: center;
	flex: 1 1 auto;
	min-width: 0;
}

.site-menu__brand-logo {
	display: block;
	width: auto;
	height: 2.1rem;
	max-width: 100%;
}

.site-menu__close {
	align-self: auto;
	border: 0;
	background: transparent;
	color: var(--color-navy);
	font-size: 3rem;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
	padding: 0;
	flex: 0 0 auto;
	margin-left: auto;
}

.site-menu__close:hover {
	background: none;
}

.site-menu__close span[aria-hidden='true'] {
	display: inline-block;
	transform-origin: 50% 50%;
	will-change: transform;
}

.site-menu__close.is-animating span[aria-hidden='true'] {
	animation: menuCloseSpin 0.18s cubic-bezier(0.77, 0.2, 0.05, 1) forwards;
}

.site-menu__nav {
	margin-top: 6rem;
}

.site-menu__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0;
}

.site-menu__list li {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid rgba(17, 43, 68, 0.14);
	opacity: 0;
	transform: translate3d(28px, 0, 0);
	transition: transform 0.45s cubic-bezier(0.77, 0.2, 0.05, 1), opacity 0.28s ease;
}

.site-menu__list a {
	display: block;
	padding: 1rem 0;
	font-family: var(--font-heading);
	font-size: clamp(1.15rem, 0.55vw + 1rem, 1.55rem);
	font-weight: 400;
	line-height: 1.1;
	color: var(--color-navy);
	transition: color 0.2s ease, transform 0.2s ease;
}

.site-menu__list a:hover,
.site-menu__list a:focus-visible,
.site-menu__list .current-menu-item > a,
.site-menu__list .current_page_item > a {
	color: var(--color-navy);
}

.site-menu__list li:last-child {
	border-bottom: none;
}

.site-menu.is-open .site-menu__list li {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.site-menu.is-open .site-menu__list li:nth-child(1)  { transition-delay: 0.06s; }
.site-menu.is-open .site-menu__list li:nth-child(2)  { transition-delay: 0.10s; }
.site-menu.is-open .site-menu__list li:nth-child(3)  { transition-delay: 0.14s; }
.site-menu.is-open .site-menu__list li:nth-child(4)  { transition-delay: 0.18s; }
.site-menu.is-open .site-menu__list li:nth-child(5)  { transition-delay: 0.22s; }
.site-menu.is-open .site-menu__list li:nth-child(6)  { transition-delay: 0.26s; }
.site-menu.is-open .site-menu__list li:nth-child(7)  { transition-delay: 0.30s; }
.site-menu.is-open .site-menu__list li:nth-child(8)  { transition-delay: 0.34s; }
.site-menu.is-open .site-menu__list li:nth-child(9)  { transition-delay: 0.38s; }

.site-menu__footer {
	margin-top: auto;
	padding-top: 1.8rem;
}

.site-menu__phone-wrap {
	display: none;
}

.site-menu__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-weight: 500;
	color: var(--color-navy);
}

.site-menu__phone-label  { color: var(--color-lime); }
.site-menu__phone-number { color: var(--color-navy); }

.site-menu__linkedin {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	width: auto;
	height: auto;
	color: var(--color-navy);
}

.site-menu__linkedin-icon {
	display: block;
	width: 1.85rem;
	height: 1.85rem;
	flex: 0 0 auto;
}

.site-menu__linkedin-label {
	font-size: 0.95rem;
	line-height: 1.3;
	color: var(--color-navy);
}

body.menu-open {
	overflow: hidden;
}

/* Drawer responsive sizing */
@media (max-width: 1700px) {
	.site-menu__nav { margin-top: 2.4rem; }
}

@media (max-width: 1500px) {
	.site-menu__drawer         { width: min(100%, 420px); max-width: 420px; }
	.site-menu__drawer-inner   { padding: 1.6rem 1.6rem 1.35rem 2.2rem; }
	.site-menu__brand-logo     { height: 1.9rem; }
	.site-menu__close          { font-size: 2.55rem; }
	.site-menu__nav            { margin-top: 2.4rem; }
	.site-menu__list a         { padding: 0.78rem 0; font-size: 1.3rem; line-height: 1.04; }
	.site-menu__footer         { padding-top: 1rem; }
	.site-menu__linkedin       { gap: 0.75rem; }
	.site-menu__linkedin-icon  { width: 1.65rem; height: 1.65rem; }
	.site-menu__linkedin-label { font-size: 0.9rem; }
}

@media (max-width: 1200px) {
	.site-menu__drawer         { width: min(100%, 380px); max-width: 380px; }
	.site-menu__drawer-inner   { padding: 1.35rem 1.35rem 1.1rem 1.6rem; }
	.site-menu__brand-logo     { height: 1.75rem; }
	.site-menu__close          { font-size: 2.2rem; }
	.site-menu__nav            { margin-top: 1.2rem; }
	.site-menu__footer         { padding-top: 0.7rem; }
	.site-menu__linkedin       { gap: 0.65rem; }
	.site-menu__linkedin-icon  { width: 1.45rem; height: 1.45rem; }
	.site-menu__linkedin-label { font-size: 0.82rem; }
}

@media (max-width: 900px) {
	.site-menu__drawer         { width: min(100%, 320px); min-width: 0; }
	.site-menu__drawer-inner   { padding: 1.35rem 1.35rem 1.2rem; }
	.site-menu__nav            { margin-top: 1.15rem; }
	.site-menu__list a         { padding: 0.72rem 0; font-size: 1.28rem; line-height: 1.04; }
	.site-menu__footer         { padding-top: 1rem; }
	.site-menu__linkedin-icon  { width: 1.35rem; height: 1.35rem; }
	.site-menu__linkedin-label { font-size: 0.78rem; }
}

@media (max-width: 640px) {
	.site-menu__drawer         { width: 100%; min-width: 0; max-width: 100%; }
	.site-menu__drawer-inner   { padding: 1.05rem 1.05rem 0.95rem; }
	.site-menu__brand-logo     { height: 1.8rem; }
	.site-menu__close          { font-size: 1.8rem; }
	.site-menu__nav            { margin-top: 1.9rem; }
	.site-menu__list           { gap: 0.8rem; }
	.site-menu__list a         { padding: 0.58rem 0; font-size: 1.12rem; }
	.site-menu__footer         { padding-top: 0.75rem; }
	.site-menu__linkedin-icon  { width: 1.6rem; height: 1.6rem; }
	.site-menu__linkedin-label { font-size: 0.88rem; }
	.site-menu__phone-wrap     { display: block; padding-top: 0.65rem; }
}

@keyframes menuCloseSpin {
	from { transform: rotate(0deg) scale(1); }
	to   { transform: rotate(-90deg) scale(0.88); }
}


/* ============================================================
   HERO (GENERIC)
   ============================================================ */
.hero {
	background: url('../images/lime-page-banner.webp') center / cover no-repeat;
	color: var(--color-white);
	padding: 4rem 0;
	height: clamp(375px, 7.8125vw + 350px, 500px);
}

.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 720px);
}

/* Shared archive/single/article hero */
.hero--archive,
.hero--single,
.hero--article {
	display: flex;
	align-items: stretch;
	height: 500px;
	padding-top: 0;
	padding-bottom: 0;
}

.hero--archive > .shell,
.hero--single > .shell,
.hero--article > .shell {
	width: min(100% - 9rem, var(--shell-wide));
	margin-inline: auto;
	display: grid;
}

.hero--archive .hero__inner,
.hero--single .hero__inner,
.hero--article .hero__inner {
	min-height: 100%;
	padding-top: clamp(3rem, 4.6vw, 4.75rem);
	padding-bottom: clamp(2.3rem, 3.8vw, 3.6rem);
	align-content: end;
	align-items: end;
}

.hero--archive .hero__content,
.hero--single .hero__content,
.hero--article .hero__content {
	display: grid;
	gap: 0.8rem;
	max-width: min(100%, 48rem);
}

.hero--archive .hero__content h1,
.hero--single .hero__content h1,
.hero--article .hero__content h1 {
	margin-bottom: 0;
}

@media (max-width: 900px) {
	.hero--archive > .shell,
	.hero--single > .shell,
	.hero--article > .shell {
		width: min(100% - 4rem, var(--shell-wide));
	}
}

@media (max-width: 640px) {
	.hero--archive > .shell,
	.hero--single > .shell,
	.hero--article > .shell {
		width: min(100% - 2rem, var(--shell-wide));
	}
}

.eyebrow {
	color: var(--color-lime);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.75rem 0 0;
	font-size: 0.92rem;
	color: rgba(255, 255, 255, 0.82);
}

.breadcrumb__item a  { color: rgba(255, 255, 255, 0.92); }
.breadcrumb__item a:hover { color: var(--color-lime); }
.breadcrumb__sep    { color: rgba(255, 255, 255, 0.55); }


/* ============================================================
   GENERIC SECTIONS / LAYOUT
   ============================================================ */
.section {
	padding: 4rem 0;
}

.section--light {}

.section--dark {
	background: linear-gradient(90deg, #050615 0%, #1B4A6B 54.81%, #177262 100%);
	color: var(--color-white);
}

.split-panel {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
	align-items: center;
}

.split-panel--intro {
	padding: 0.5rem 0;
}

.media-card {
	min-height: 320px;
	border-radius: var(--radius-lg);
	background: linear-gradient(135deg, rgba(200, 227, 39, 0.95), rgba(23, 114, 98, 0.9));
	box-shadow: var(--shadow-soft);
}

.media-card--soft {
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.92), rgba(23, 114, 98, 0.82));
}

.media-frame {
	min-height: 400px;
	border-radius: 0.5rem;
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	background: #edf2f6;
}

.media-frame img,
.home-promo__media img,
.home-story__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.media-frame--placeholder,
.home-story__image--placeholder,
.home-promo__media--placeholder {
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.92), rgba(23, 114, 98, 0.78));
}

.entry-card,
.archive-header {
	/* padding: 2rem 0; */
}

.entry-card + .entry-card {
	border-top: 1px solid var(--color-border);
}

.entry-title {
	font-size: clamp(2rem, 3vw, 3rem);
}

.archive-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 2rem;
}

.section-heading {
	margin-bottom: 1.5rem;
}

.section-heading--split {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1.5rem;
}

.section-heading--light h2,
.section-heading--light p {
	color: var(--color-white);
}

.section-heading--light p {
	max-width: 44rem;
	color: rgba(255, 255, 255, 0.82);
}

.card-grid,
.portfolio-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

.feature-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

.feature-card {
	padding: 2rem;
	border-radius: var(--radius-lg);
	background: rgba(255, 255, 255, 0.06);
}

.feature-card--portfolio {
	background: rgba(255, 255, 255, 0.08);
}

.rich-text p:last-child { margin-bottom: 0; }
.rich-text p a          { text-decoration: underline; }

.section-kicker {
	font-family: var(--font-heading);
	margin: 0 0 0.6rem;
	font-size: clamp(36px, calc(36px + (72 - 36) * ((100vw - 320px) / (1920 - 320))), 72px);
	font-weight: 400;
	line-height: 72.222%;
	letter-spacing: 0.06em;
	color: var(--color-navy);
}

.section-kicker--light { color: var(--color-lime); }
.section-kicker--dark  { color: rgba(17, 43, 68, 0.74); }

@media (max-width: 782px) {
	.hero {
		padding: 3rem 0 4rem;
	}

	.split-panel,
	.archive-grid,
	.site-footer__grid {
		grid-template-columns: 1fr;
	}

	.site-menu__list {
		flex-direction: column;
		gap: 0.75rem;
	}

	.card-grid,
	.portfolio-grid,
	.feature-grid {
		grid-template-columns: 1fr;
	}

	.section-heading--split {
		flex-direction: column;
		align-items: flex-start;
	}
}


/* ============================================================
   CONTENT CARDS
   ============================================================ */
.content-card {
	position: relative;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--color-navy);
	box-shadow: var(--shadow-soft);
}

.content-card__link {
	display: block;
	height: 100%;
}

.content-card__media {
	min-height: 240px;
	background-size: cover;
	background-position: center;
}

.content-card__media--placeholder {
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.92), rgba(23, 114, 98, 0.78));
}

.content-card__body {
	padding: 1.25rem;
	background: linear-gradient(180deg, rgba(9, 20, 31, 0.02), rgba(9, 20, 31, 0.76));
	color: var(--color-white);
}

.content-card__body h3 {
	font-size: clamp(1.4rem, 2vw, 2rem);
	margin-bottom: 0.4rem;
}

.content-card__body p {
	font-size: 0.98rem;
	line-height: 1.5;
	opacity: 0.9;
}

.content-card__meta {
	display: inline-block;
	margin-top: 0.5rem;
	color: var(--color-lime);
	font-weight: 600;
}

/* Arrow icon on cards */
.content-card__arrow img {
	transition: transform 0.22s ease;
	transform-origin: center;
}

.content-card:hover .content-card__arrow img,
.content-card:focus-within .content-card__arrow img {
	transform: rotate(45deg);
}


/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.faq-list {
	display: grid;
	gap: 0;
	width: 100%;
	border-top: 1px solid rgba(17, 43, 68, 0.12);
}

.faq-item {
	padding: 1.25rem 0;
	border-bottom: 1px solid rgba(17, 43, 68, 0.12);
}

.faq-item h3 {
	font-size: 1.4rem;
	margin-bottom: 0.5rem;
}

.faq-item__trigger {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 1.25rem;
	width: 100%;
	padding: clamp(0.95rem, 1.4vw, 1.15rem) 0;
	border: 0;
	background: transparent;
	color: var(--color-navy);
	text-align: left;
	cursor: pointer;
}

.faq-item__trigger:hover {
	background: transparent !important;
	border-color: transparent !important;
}

.faq-item__trigger:focus-visible {
	outline: none;
}

.faq-item__trigger:hover .faq-item__question,
.faq-item__trigger:focus-visible .faq-item__question,
.faq-item__trigger:hover .faq-item__icon,
.faq-item__trigger:focus-visible .faq-item__icon {
	color: var(--color-navy);
}

.faq-item__question {
	flex: 1 1 auto;
	font-family: var(--font-body);
	font-size: clamp(1rem, 1.02vw, 1.125rem);
	font-weight: 500;
	line-height: 1.45;
}

.faq-item__icon {
	order: -1;
	position: relative;
	flex: 0 0 auto;
	width: 1rem;
	height: 1rem;
	color: var(--color-navy);
	font-size: 0;
	line-height: 0;
}

.faq-item__icon::before,
.faq-item__icon::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.75rem;
	height: 1.5px;
	background: currentColor;
	transform: translate(-50%, -50%);
	transition: transform 220ms ease, opacity 220ms ease, background-color 220ms ease;
}

.faq-item__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item.is-open .faq-item__icon::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(90deg) scaleX(0.35);
}

.faq-item__panel {
	padding: 0 0 clamp(1rem, 1.5vw, 1.35rem);
}

.faq-item__answer {
	max-width: min(64rem, 100%);
	font-size: clamp(1rem, 1.02vw, 1.08rem);
	line-height: 1.6;
	color: rgba(17, 43, 68, 0.88);
}

.faq-item__answer p:last-child {
	margin-bottom: 0;
}

@media (max-width: 640px) {
	.faq-item__trigger {
		padding: 0.9rem 0;
		gap: 0.85rem;
	}
}


/* ============================================================
   SITE FOOTER
   ============================================================ */
.site-footer {
	margin-top: 4rem;
	background: #0b2135;
	color: var(--color-white);
	padding-top: clamp(2.5rem, 3.8vw, 3.4rem);
	padding-bottom: clamp(1.6rem, 2.4vw, 2rem);
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(14rem, 0.65fr);
	gap: clamp(2rem, 5vw, 8rem);
	align-items: start;
}

.site-footer__contact-head {
	display: flex;
	align-items: flex-start;
	gap: 1.6rem;
	margin-bottom: 1rem;
}

.site-footer__logo {
	width: 64px;
	height: 64px;
	flex: 0 0 2.7rem;
	object-fit: contain;
}

.site-footer__title {
	margin: 0;
	font-size: clamp(2rem, 1vw + 1.35rem, 2.4rem);
	line-height: 1.05;
	color: var(--color-white);
}

.site-footer__details {
	padding-left: calc(64px + 1.6rem);
}

.site-footer__column p {
	margin: 0 0 1rem;
	color: rgba(255, 255, 255, 0.94);
}

.site-footer__column strong {
	color: var(--color-lime);
	font-weight: 600;
}

.site-footer__column a,
.site-footer__menu a {
	color: rgba(255, 255, 255, 0.94);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.site-footer__column a:hover,
.site-footer__menu a:hover,
.site-footer__column a:focus-visible,
.site-footer__menu a:focus-visible {
	color: var(--color-white);
}

.site-footer__column--menu .site-footer__title {
	margin-bottom: 2rem;
}

.site-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.95rem;
}

.site-footer__menu a {
	text-decoration: none;
}

.site-footer__subfooter {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.28);
	margin-top: clamp(2rem, 3vw, 3rem);
	padding-top: clamp(1.2rem, 1.8vw, 1.4rem);
	font-size: 0.95rem;
	line-height: 1.4;
}

.site-footer__legal,
.site-footer__credit {
	margin: 0;
	color: rgba(255, 255, 255, 0.94);
}

.site-footer__credit {
	font-size: var(--type-body);
}

@media (max-width: 900px) {
	.site-footer__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.site-footer__details {
		padding-left: 0;
	}

	.site-footer__subfooter {
		flex-direction: column;
		align-items: flex-start;
	}
}


/* ============================================================
   ABOUT PAGE
   ============================================================ */
.section--about-intro {
	padding: clamp(3.5rem, 5vw, 6rem) 0 0;
}

.about-intro__copy {
	max-width: 48rem;
	font-size: clamp(1.05rem, 1.15vw, 1.375rem);
	line-height: 1.55;
}

.section--about-story {
	padding: clamp(2.5rem, 4vw, 4.5rem) 0 0;
}

.about-story {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.about-story--today {
	margin-top: clamp(0.75rem, 1.2vw, 1.5rem);
}

.about-story__media {
	min-height: clamp(22rem, 28vw, 34.875rem);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.about-story__media--placeholder {
	background: rgba(17, 43, 68, 0.12);
}

.about-story__panel {
	padding: clamp(2.5rem, 3.2vw, 3.75rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.about-story__panel h2 { margin-bottom: 1.75rem; }

.about-story__panel .rich-text {
	font-size: clamp(1rem, 1vw, 1.375rem);
	line-height: 1.55;
}

.about-story__panel--navy {
	background: var(--color-navy);
	color: var(--color-white);
}

.about-story__panel--lime {
	background: var(--color-lime);
	color: var(--color-navy);
}

.section--about-team {
	padding: clamp(4rem, 5vw, 5.5rem) 0 0;
}

.about-team h2 {
	margin-bottom: clamp(2rem, 2.5vw, 3rem);
}

.about-team__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(2rem, 3vw, 4.5rem);
	row-gap: clamp(2.5rem, 3.2vw, 4rem);
}

.about-team__card {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-items: start;
	padding-right: clamp(3.5rem, 5vw, 5.75rem);
	position: relative;
}

.about-team__avatar-wrap {
	width: 14.375rem;
	margin-bottom: 1.6rem;
}

.about-team__avatar {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.about-team__card-body {
	display: flex;
	flex-direction: column;
	gap: 0;
	position: relative;
}

.about-team__card-body h3 {
	margin-bottom: 0.45rem;
	font-size: clamp(1.6rem, 1.5vw, 2rem);
	line-height: 1;
}

.about-team__role {
	margin: 0 0 1.5rem;
	font-size: clamp(1rem, 1vw, 1.375rem);
	font-weight: 600;
	line-height: 1.25;
}

.about-team__linkedin {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	position: absolute;
	right: 0;
	top: 0.15rem;
}

.about-team__linkedin img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.about-team__bio {
	font-size: clamp(0.96rem, 0.95vw, 1.375rem);
	line-height: 1.5;
	max-width: 100%;
}

.section--about-contact {
	padding: clamp(4.5rem, 6vw, 7rem) 0 clamp(4rem, 5vw, 6rem);
}

.about-contact       { text-align: center; }
.about-contact h2    { margin-bottom: 1.5rem; }

.about-contact__body {
	font-size: clamp(1rem, 1vw, 1.375rem);
	line-height: 1.6;
}

.about-contact__body p:last-child { margin-bottom: 0; }

@media (max-width: 1199px) {
	.about-story {
		grid-template-columns: minmax(0, 1fr);
	}

	.about-story--today .about-story__panel { order: 1; }
	.about-story--today .about-story__media { order: 2; }

	.about-team__card        { padding-right: 3.5rem; }
	.about-team__avatar-wrap { width: 12rem; }
}

@media (max-width: 900px) {
	.about-team__grid        { grid-template-columns: minmax(0, 1fr); }
	.about-team__card        { padding-right: 3rem; }
	.about-team__avatar-wrap { width: 9rem; }
}

@media (max-width: 640px) {
	.about-team__avatar-wrap { width: min(100%, 11rem); }
	.about-team__card        { padding-right: 0; }

	.about-team__linkedin {
		top: auto;
		bottom: 100%;
		margin-bottom: 0.85rem;
	}

	.about-team__role { margin-bottom: 1.1rem; }
}


/* ============================================================
   HOMEPAGE
   ============================================================ */
.hero--home {
	min-height: calc(100vh - 3rem);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.9rem 0 6rem;
	background-image:
		linear-gradient(90deg, rgba(5, 15, 22, 0.9) 0%, rgba(27, 75, 107, 0.76) 52%, rgba(23, 114, 98, 0.68) 100%),
		url('../images/lime-talent-bg.webp');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.hero__inner--home {
	flex: 1;
	display: grid;
	align-items: stretch;
	grid-template-columns: minmax(0, 800px);
}

.hero__content--home {
	min-height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0;
}

.hero__lead {
	margin-bottom: 2.2rem;
	color: rgba(255, 255, 255, 0.84);
}

/* Logo strip — 7 columns (final value) */
.logo-strip--home {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 2.8rem;
	align-items: end;
	padding-top: 1.6rem;
}

.logo-strip__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	opacity: 0.78;
}

.logo-strip__item--text { text-align: center; }

.logo-strip__item img {
	max-height: 42px;
	width: auto;
	object-fit: contain;
	filter: grayscale(1) brightness(1.75);
}

.logo-strip__wordmark {
	display: inline-block;
	color: rgba(255, 255, 255, 0.86);
	line-height: 1;
	white-space: nowrap;
}

.logo-strip__wordmark--kraft  { font-family: var(--font-body); font-size: 1.2rem;  font-weight: 800; letter-spacing: -0.04em; }
.logo-strip__wordmark--tonys  { font-family: var(--font-heading); font-size: 1.22rem; text-transform: uppercase; letter-spacing: -0.01em; }
.logo-strip__wordmark--jde    { font-family: var(--font-heading); font-size: 1.26rem; }
.logo-strip__wordmark--oatly  { font-family: var(--font-body); font-size: 1.34rem;  font-weight: 800; letter-spacing: -0.05em; }
.logo-strip__wordmark--danone,
.logo-strip__wordmark--loreal { font-family: var(--font-body); font-size: 1.18rem;  font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.logo-strip__wordmark--itsu   { font-family: var(--font-body); font-size: 1.28rem;  font-style: italic; font-weight: 600; text-transform: lowercase; }

/* Home intro section */
.section--home-intro {
	position: relative;
	z-index: 2;
	padding-top: clamp(3.5rem, 5.4vw, 6.5rem);
	padding-bottom: clamp(2rem, 3vw, 3.25rem);
}

.section--home-intro .shell {
	max-width: 1620px;
}

.section--home-intro .section-kicker {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(2.75rem, 4.9vw, 4.5rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.02em;
	text-transform: none;
	color: var(--color-navy);
}

.split-panel--intro-home {
	grid-template-columns: minmax(0, 773px) minmax(0, 683px);
	justify-content: space-between;
	align-items: start;
	gap: clamp(2rem, 5vw, 10.1875rem);
	position: relative;
}

.home-intro__content {
	padding-top: clamp(0.25rem, 0.9vw, 0.8rem);
}

.home-intro__content .dot {
	color: var(--color-lime);
}

.home-intro__content .rich-text {
	width: 100%;
	font-size: clamp(1rem, 1.18vw, 1.375rem);
	font-weight: 500;
	line-height: 1.52;
	color: var(--color-navy);
	margin-bottom: clamp(1.5rem, 2.3vw, 2.2rem);
}

.home-intro__content .rich-text p + p {
	margin-top: 1em;
}

.home-intro__content .button {
	min-width: 264px;
	padding-inline: 1.25rem;
}

.home-intro__media {
	aspect-ratio: 683 / 737;
	border-radius: 10px;
	overflow: hidden;
	justify-self: end;
	position: absolute;
	top: -6rem;
	right: 0;
	width: clamp(21rem, 35.6vw, 42.6875rem) !important;
	z-index: 3;
	box-shadow: 0 24px 50px rgba(8, 20, 31, 0.14);
	transform: translateY(clamp(6rem, 8vw, 10rem));
}

.home-intro__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 62% center;
	display: block;
}

/* Expertise section */
.section--home-expertise {
	position: relative;
	z-index: 1;
	padding-top: clamp(6rem, 14vw, 8rem);
	padding-bottom: clamp(3rem, 5vw, 6rem);
}

.section--home-expertise .section-heading--split {
	margin-bottom: 4rem;
}

.section--home-expertise .section-heading--split h2 {
	max-width: 50%;
}

.section-heading--home-portfolio h2,
.section-heading--split h2 {
	font-size: clamp(2.05rem, 3.1vw, 3rem);
	line-height: 1;
}

.section-heading--split > div {
	inline-size: min(100%, clamp(18rem, 48vw, 48rem));
}

.section-heading--light p {
	max-width: none;
	inline-size: min(100%, clamp(18rem, 48vw, 48rem));
}

/* Expertise card grid (homepage + shared) */
.card-grid--functions-home,
.industry-archive__grid,
.function-archive__grid,
.service-archive__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.card-grid--functions-home .content-card,
.industry-archive__grid .content-card,
.function-archive__grid .content-card,
.service-archive__grid .content-card {
	border-radius: 0.625rem;
	overflow: hidden;
}

.card-grid--functions-home .content-card__media,
.industry-archive__grid .content-card__media,
.function-archive__grid .content-card__media,
.service-archive__grid .content-card__media {
	min-height: clamp(11rem, 14vw, 15.9375rem);
}

.card-grid--functions-home .content-card__body,
.industry-archive__grid .content-card__body,
.function-archive__grid .content-card__body,
.service-archive__grid .content-card__body {
	position: absolute;
	inset: auto 0 0;
	padding: clamp(1rem, 1.2vw, 2rem);
}

.card-grid--functions-home .content-card__title-row,
.industry-archive__grid .content-card__title-row,
.function-archive__grid .content-card__title-row,
.service-archive__grid .content-card__title-row {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: nowrap;
	gap: 0.6rem;
}

.card-grid--functions-home .content-card__body h3,
.industry-archive__grid .content-card__body h3,
.function-archive__grid .content-card__body h3,
.service-archive__grid .content-card__body h3 {
	margin: 0;
	flex: 0 1 auto;
	min-width: 0;
	max-width: none;
	font-size: clamp(1.65rem, 2vw, 2.45rem);
	line-height: 1;
}

.card-grid--functions-home .content-card__body p,
.industry-archive__grid .content-card__body p,
.function-archive__grid .content-card__body p,
.service-archive__grid .content-card__body p {
	display: none;
}

.industry-archive__grid .content-card__arrow,
.function-archive__grid .content-card__arrow,
.service-archive__grid .content-card__arrow {
	flex: 0 0 auto;
	align-self: center;
	margin: 0 0 0 1rem;
}

/* Arrow button (shared across card grids) */
.card-grid--functions-home .content-card__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4375rem;
	height: 2.4375rem;
	padding: 0;
	border: 0;
	background: transparent;
	flex: 0 0 auto;
	align-self: center;
	margin: 0 0 0 1rem;
}

.card-grid--functions-home .content-card__arrow img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.card-grid--functions-home .content-card__arrow-core {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.6875rem;
	height: 1.6875rem;
	border-radius: 0.25rem;
	background: rgba(17, 43, 68, 0.96);
	color: var(--color-white);
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
	transition: transform 0.2s ease;
}

.card-grid--functions-home .content-card__link:hover .content-card__arrow-core,
.card-grid--functions-home .content-card__link:focus-visible .content-card__arrow-core {
	transform: translate3d(1px, -1px, 0);
}

/* Portfolio teasers */
.portfolio-grid--home-teasers {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	margin-top: 1.9rem;
	margin-bottom: 4rem;
}

.portfolio-grid--home-teasers .content-card {
	border-radius: 0.625rem;
}

.portfolio-grid--home-teasers .content-card__media {
	min-height: clamp(12rem, 22vw, 24.375rem);
}

.portfolio-grid--home-teasers .content-card__body {
	display: none;
}

/* Home testimonials slider */
.home-testimonials {
	display: grid;
	grid-template-columns: minmax(0, 0.98fr) minmax(0, 1fr);
	gap: 0;
	border-radius: 10px;
	overflow: hidden;
}

.home-testimonials__media {
	min-height: clamp(24rem, 38vw, 46.125rem);
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.92), rgba(23, 114, 98, 0.78));
}

.home-testimonials__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-testimonials__content {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 100%;
	padding: clamp(2rem, 4.8vw, 5.6875rem) clamp(1.75rem, 4vw, 4.5rem) clamp(1.75rem, 3.6vw, 3.5rem);
	background: var(--color-navy);
	color: var(--color-white);
}

.home-testimonials__content h3 {
	margin: 0 0 clamp(1.5rem, 2vw, 2.5rem);
	font-size: clamp(2rem, 2.2vw, 2.625rem);
	line-height: 1;
	color: var(--color-lime);
}

.home-testimonials__viewport {
	position: relative;
	flex: 1;
	margin-bottom: clamp(1.5rem, 2vw, 2.5rem);
}

.home-testimonials__slide { display: none; }

.home-testimonials__slide.is-active {
	display: block;
	animation: fadeIn 0.22s ease;
}

.home-testimonials__slide .rich-text {
	font-size: clamp(1rem, 1.05vw, 1.375rem);
	line-height: 1.48;
	color: rgba(255, 255, 255, 0.92);
}

.home-testimonials__slide .rich-text p { margin-bottom: 0; }

.home-testimonials__attribution {
	display: grid;
	gap: 0.15rem;
	margin: clamp(1.5rem, 2vw, 2rem) 0 0;
	font-size: clamp(1rem, 1.08vw, 1.375rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--color-lime);
}

.home-testimonials__footer {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 1.5rem;
}

.home-testimonials__controls {
	display: inline-flex;
	gap: 0.85rem;
	align-items: center;
}

.home-testimonials__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.8125rem;
	height: 2.8125rem;
	border: 2px solid var(--color-lime);
	border-radius: 999px;
	background: transparent;
	color: var(--color-lime);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.home-testimonials__arrow:hover,
.home-testimonials__arrow:focus-visible {
	background: var(--color-lime);
	color: var(--color-navy);
	transform: translateY(-1px);
}

.home-testimonials__meta {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-left: auto;
}

.home-testimonials__dots {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.home-testimonials__dot {
	width: 0.8125rem;
	height: 0.8125rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.84);
	cursor: pointer;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.home-testimonials__dot.is-active {
	background: var(--color-lime);
	transform: scale(1.08);
}

.home-testimonials__meta .button { min-width: 252px; }

/* Home story */
.home-story {
	display: grid;
	grid-template-columns: minmax(clamp(18rem, 43vw, 50rem), 0.98fr) minmax(clamp(18rem, 43vw, 51rem), 1fr);
	gap: 0;
	align-items: stretch;
	border-radius: 0.625rem;
}

.home-story__gallery,
.home-story__image {
	height: 100%;
	border-radius: 0.625rem 0 0 0.625rem;
	overflow: hidden;
}

.home-story__content {
	padding: clamp(1.5rem, 4vw, 5rem) clamp(1.5rem, 3.4vw, 4.25rem) clamp(1.5rem, 3vw, 4rem);
	border-radius: 0 0.625rem 0.625rem 0;
	background: var(--color-navy);
	color: var(--color-white);
	box-shadow: var(--shadow-soft);
}

.home-story__content h3 {
	color: var(--color-lime);
	font-size: clamp(2rem, 2.4vw, 2.65rem);
	margin-bottom: 2rem;
	inline-size: min(100%, clamp(16rem, 34vw, 34rem));
}

.home-story__content .rich-text {
	color: rgba(255, 255, 255, 0.86);
	margin-bottom: 1.25rem;
	font-size: 1rem;
	line-height: 1.5;
	inline-size: min(100%, clamp(18rem, 36vw, 34rem));
}

.home-story__attribution {
	margin-top: 1.25rem;
	margin-bottom: 2rem;
	font-size: 0.95rem;
	color: var(--color-lime);
}

/* Home promos */
.section--home-promos {
	padding-top: 0;
	padding-bottom: 5rem;
}

.section--home-promos .shell {
	display: grid;
	gap: 4rem;
}

.home-promo {
	display: grid;
	grid-template-columns: repeat(2, minmax(clamp(18rem, 39vw, 49rem), 1fr));
	gap: 0;
	min-height: clamp(15rem, 26vw, 30.125rem);
	border-radius: 0.625rem;
	overflow: hidden;
	box-shadow: var(--shadow-soft);
}

.home-promo--reverse {
	grid-template-columns: repeat(2, minmax(clamp(18rem, 39vw, 49rem), 1fr));
}

.home-promo__content {
	padding: clamp(1.5rem, 3.2vw, 3.75rem);
}

.home-promo__content h2 {
	font-size: clamp(2.4rem, 3.2vw, 3.3rem);
	line-height: 1;
	margin-bottom: 1.5rem;
}

.home-promo__content p {
	max-width: 32rem;
}

.home-promo__media {
	min-height: clamp(15rem, 26vw, 30.125rem);
}

.home-promo--lime { background: var(--color-lime); color: var(--color-navy); }
.home-promo--navy { background: var(--color-navy); color: var(--color-white); }

/* Home page-class specifics */
.home-page .hero__lead { max-width: 100%; }

.home-page .button--cta-dark {
	background: var(--color-lime);
	color: var(--color-navy);
	border: 2px solid var(--color-lime);
}

.home-page .button--primary,
.home-page .button--secondary,
.home-page .button--outline-dark,
.home-page .button--cta-dark {
	min-height: 3.5rem;
	padding: 1rem;
	border-radius: 0.625rem;
	font-size: var(--type-body);
	width: fit-content;
}

.home-page .home-intro__content h2 {
	font-size: clamp(56px, calc(56px + (112 - 56) * ((100vw - 320px) / (1920 - 320))), 112px);
	line-height: 0.92;
	margin-bottom: 1.25rem;
	color: var(--color-navy);
}

.dot {
	color: var(--Green, #C8E327);
	font-family: var(--font-heading);
	font-size: clamp(56px, calc(56px + (112 - 56) * ((100vw - 320px) / (1920 - 320))), 112px);
	font-style: normal;
	font-weight: 400;
	line-height: 0.8;
}

/* Homepage responsive */
@media (max-width: 1600px) {
	.section--home-expertise .section-heading--split h2 {
		max-width: 75%;
	}
}

@media (max-width: 1200px) {
	.logo-strip--home {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.portfolio-grid--home-teasers .content-card__media {
		min-height: 280px;
	}

	.split-panel--intro-home {
		grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.9fr);
		gap: clamp(1.5rem, 3vw, 3rem);
	}

	.home-intro__content .button { min-width: 0; }
}

@media (min-width: 901px) {
	.home-page .split-panel--intro-home {
		position: relative !important;
	}

	.home-page .home-intro__media {
		position: absolute !important;
		top: -6rem !important;
		right: 0 !important;
		width: clamp(21rem, 35.6vw, 42.6875rem) !important;
		transform: translateY(clamp(6rem, 8vw, 10rem)) !important;
		z-index: 3 !important;
		margin-bottom: 0 !important;
	}
}

@media (max-width: 900px) {
	.split-panel--intro-home {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding-bottom: 0;
	}

	.home-intro__media {
		position: relative;
		top: auto;
		right: auto;
		width: 100%;
		max-width: 42rem;
		transform: none;
		margin-bottom: 0;
		box-shadow: none;
		justify-self: stretch;
	}

	.section--home-intro {
		padding-bottom: clamp(3rem, 6vw, 4rem);
	}

	.section--home-expertise {
		margin-top: 0;
		padding-top: clamp(3.5rem, 6vw, 5rem);
	}

	.home-story,
	.home-promo,
	.home-promo--reverse {
		grid-template-columns: 1fr;
	}

	.home-story__content,
	.home-promo__content {
		padding: 2rem 1.5rem;
		border-radius: 0 0 0.625rem 0.625rem;
	}

	.home-story__gallery,
	.home-story__image {
		border-radius: 0.625rem 0.625rem 0 0;
	}

	.home-page .home-intro__content h2,
	.home-page .section-heading--split h2,
	.home-page .home-story__content h3,
	.home-page .home-promo__content h2 {
		max-width: 100%;
	}

	.section-heading--split > div,
	.section-heading--light p {
		width: 100%;
	}

	.hero__title { width: 70%; }
}

@media (max-width: 991px) {
	.home-testimonials__content { order: 1; }
	.home-testimonials__media   { order: 2; }
}

@media (max-width: 1100px) {
	.home-testimonials {
		grid-template-columns: 1fr;
	}

	.home-testimonials__media {
		display: none;
	}

	.home-testimonials__footer {
		align-items: flex-start;
		flex-direction: column;
	}

	.home-testimonials__meta {
		width: 100%;
		justify-content: space-between;
		margin-left: 0;
	}
}

@media (max-width: 782px) {
	.logo-strip--home,
	.card-grid--functions-home,
	.portfolio-grid--home-teasers {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.logo-strip--home {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 1.5rem 1.25rem;
		padding-top: 1.25rem;
	}

	.logo-strip--home .logo-strip__item {
		flex: 0 1 calc(25% - 1rem);
		min-width: 4.75rem;
		justify-content: center;
	}

	.logo-strip--home .logo-strip__item--text { text-align: center; }

	.logo-strip--home .logo-strip__item img {
		max-height: 2rem;
		width: auto;
	}

	.home-testimonials {
		grid-template-columns: 1fr;
	}

	.home-testimonials__media {
		display: none;
	}

	.home-testimonials__content {
		padding: 1.75rem 1.35rem 1.5rem;
		order: 1;
	}

	.home-testimonials__meta {
		flex-direction: column;
		align-items: flex-start;
	}

	.home-testimonials__meta .button {
		min-width: 0;
		width: 100%;
	}

	.card-grid--functions-home,
	.industry-archive__grid,
	.function-archive__grid,
	.service-archive__grid,
	.single-expertise__related-grid,
	.single-expertise--industry .single-expertise__related-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.logo-strip--home,
	.card-grid--functions-home,
	.portfolio-grid--home-teasers {
		grid-template-columns: 1fr;
	}

	.hero--home { padding-top: 2rem; }

	.home-promo,
	.home-promo--reverse {
		grid-template-columns: 1fr;
	}

	.home-promo__content,
	.home-promo--reverse .home-promo__content {
		order: 1;
		inline-size: 100%;
	}

	.home-promo__media,
	.home-promo--reverse .home-promo__media {
		order: 2;
		inline-size: 100%;
		min-height: clamp(16rem, 60vw, 24rem);
	}

	.hero__title { width: 100%; }
}

/* Homepage large-screen composition lock */
@media (min-width: 1200px) and (max-width: 1920px) {
	.home-page .hero--home {
		min-height: clamp(46rem, 52vw, 60rem);
		padding-top: clamp(1.9rem, 2vw, 2.4rem);
		padding-bottom: clamp(4.5rem, 5vw, 6rem);
	}

	.home-page .logo-strip--home {
		grid-template-columns: repeat(7, minmax(0, 1fr));
		gap: clamp(1.5rem, 2vw, 2.8rem);
		padding-top: clamp(1.1rem, 1.5vw, 1.6rem);
	}

	.home-page .section--home-intro {
		padding-top: clamp(4.6rem, 5vw, 5.75rem);
		padding-bottom: clamp(4.2rem, 4.7vw, 5.25rem);
	}

	.home-page .section--home-expertise {
		padding-top: clamp(4.2rem, 4.6vw, 5rem);
		padding-bottom: clamp(3rem, 5vw, 6rem);
	}

	.home-page .section--home-expertise .section-heading--split h2 {
		max-width: 50%;
	}

	.home-page .home-testimonials__media {
		min-height: clamp(30rem, 38vw, 46.125rem);
	}

	.home-page .section--home-promos {
		padding-bottom: clamp(4.25rem, 4.8vw, 5rem);
	}

	.home-page .home-promo,
	.home-page .home-promo--reverse {
		min-height: clamp(24rem, 25vw, 30.125rem);
	}

	.home-page .home-promo__content {
		padding: clamp(2rem, 3vw, 3.75rem);
	}

	.home-page .home-promo__media {
		min-height: clamp(24rem, 25vw, 30.125rem);
	}
}

/* Entrance animations */
.js-ready .reveal {
	opacity: 0;
	filter: blur(10px);
	transition:
		opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
		filter 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--reveal-delay, 0s);
	will-change: opacity, transform, filter;
}

.js-ready .reveal--up    { transform: translate3d(0, 36px, 0); }
.js-ready .reveal--right { transform: translate3d(42px, 0, 0); }
.js-ready .reveal--scale { transform: translate3d(0, 22px, 0) scale(0.97); }
.js-ready .reveal--hero  { transform: translate3d(0, 48px, 0) scale(0.985); }

.js-ready .reveal.in-view {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0) scale(1);
}

.js-ready .hero__content--home.in-view .hero__title,
.js-ready .hero__content--home.in-view .hero__lead,
.js-ready .hero__content--home.in-view .button {
	animation: heroTextRise 1s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.js-ready .hero__content--home.in-view .hero__lead  { animation-delay: 0.08s; }
.js-ready .hero__content--home.in-view .button       { animation-delay: 0.16s; }

.js-ready .home-testimonials.in-view .home-testimonials__media img,
.js-ready .home-promo.in-view .home-promo__media img,
.js-ready .home-intro__media.in-view img {
	animation: imageSettle 1.2s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.js-ready .home-page .hero__content--home {
	animation: revealHeroLoad 1s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.js-ready .home-page .logo-strip--home .logo-strip__item {
	opacity: 0;
	animation: revealFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.js-ready .home-page .logo-strip--home .logo-strip__item:nth-child(1) { animation-delay: 0.32s; }
.js-ready .home-page .logo-strip--home .logo-strip__item:nth-child(2) { animation-delay: 0.38s; }
.js-ready .home-page .logo-strip--home .logo-strip__item:nth-child(3) { animation-delay: 0.44s; }
.js-ready .home-page .logo-strip--home .logo-strip__item:nth-child(4) { animation-delay: 0.50s; }
.js-ready .home-page .logo-strip--home .logo-strip__item:nth-child(5) { animation-delay: 0.56s; }
.js-ready .home-page .logo-strip--home .logo-strip__item:nth-child(6) { animation-delay: 0.62s; }
.js-ready .home-page .logo-strip--home .logo-strip__item:nth-child(7) { animation-delay: 0.68s; }

.js-ready .home-page .section--home-intro .home-intro__content {
	animation: revealFadeUp 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}

.js-ready .home-page .section--home-intro .home-intro__media {
	animation: revealSlideIn 1.05s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

@keyframes heroTextRise {
	from { opacity: 0; transform: translate3d(0, 28px, 0); }
	to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes imageSettle {
	from { transform: scale(1.05); filter: saturate(0.92) contrast(0.96); }
	to   { transform: scale(1); filter: saturate(1) contrast(1); }
}

@keyframes revealHeroLoad {
	from { opacity: 0; transform: translate3d(0, 44px, 0) scale(0.985); filter: blur(12px); }
	to   { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: blur(0); }
}

@keyframes revealFadeUp {
	from { opacity: 0; transform: translate3d(0, 26px, 0); filter: blur(8px); }
	to   { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}

@keyframes revealSlideIn {
	from { opacity: 0; transform: translate3d(42px, 0, 0) scale(0.985); filter: blur(10px); }
	to   { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: blur(0); }
}

@keyframes fadeIn {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.js-ready .reveal,
	.js-ready .hero__content--home.in-view .hero__title,
	.js-ready .hero__content--home.in-view .hero__lead,
	.js-ready .hero__content--home.in-view .button,
	.js-ready .home-testimonials.in-view .home-testimonials__media img,
	.js-ready .home-promo.in-view .home-promo__media img,
	.js-ready .home-intro__media.in-view img,
	.js-ready .home-page .hero__content--home,
	.js-ready .home-page .logo-strip--home .logo-strip__item,
	.js-ready .home-page .section--home-intro .home-intro__content,
	.js-ready .home-page .section--home-intro .home-intro__media {
		opacity: 1;
		filter: none;
		transform: none;
		transition: none;
		animation: none;
	}
}


/* ============================================================
   INDUSTRY ARCHIVE
   ============================================================ */
.hero--archive-industry {
	padding: clamp(4rem, 6vw, 5.75rem) 0 clamp(3.5rem, 5vw, 4.75rem);
}

.hero__inner--archive-industry {
	grid-template-columns: minmax(0, 48rem);
}

.hero__content--archive-industry h1 { margin-bottom: 0; }

.section--industry-archive-intro {
	padding-top: clamp(3.5rem, 5vw, 4.75rem);
	padding-bottom: clamp(2.5rem, 4vw, 3.5rem);
}

.industry-archive__intro {
	grid-template-columns: minmax(0, 46rem) minmax(20rem, 42rem);
	justify-content: space-between;
	align-items: stretch;
	gap: clamp(2rem, 4vw, 4rem);
}

.industry-archive__intro-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.industry-archive__intro-copy .rich-text {
	font-size: clamp(1rem, 1.15vw, 1.25rem);
	line-height: 1.5;
	color: var(--color-navy);
	margin-bottom: 1.75rem;
}

.industry-archive__intro-copy .rich-text p + p { margin-top: 0.9em; }

.industry-archive__intro-copy .button--primary {
	min-height: 3.5rem;
	padding: 0.9rem 1.25rem;
	border-radius: 0.625rem;
	font-size: 0.96rem;
}

.industry-archive__intro-media {
	min-height: clamp(16rem, 48vw, 21rem);
	align-self: stretch;
	max-height: clamp(18rem, 24vw, 24rem);
	border-radius: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.92), rgba(23, 114, 98, 0.82));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.industry-archive__intro-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.section--industry-archive-grid {
	padding-top: 0.5rem;
	padding-bottom: clamp(4rem, 6vw, 5.5rem);
}

@media (max-width: 1024px) {
	.industry-archive__intro {
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.95fr);
	}
}

@media (max-width: 900px) {
	.industry-archive__intro {
		grid-template-columns: 1fr;
	}

	.industry-archive__intro-media {
		min-height: clamp(16rem, 48vw, 21rem);
		max-height: none;
	}
}

@media (max-width: 900px) {
	.industry-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.industry-archive__grid .content-card__media {
		min-height: 180px;
	}
}

/* Industry single */
.hero--single-industry {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.hero__inner--single-industry {
	padding-top: clamp(3.25rem, 5vw, 5rem);
	padding-bottom: clamp(3rem, 4.4vw, 4.5rem);
}

.hero__content--single-industry {
	max-width: min(100%, 44rem);
}

.hero__content--single-industry p {
	max-width: 42rem;
	color: rgba(255, 255, 255, 0.88);
}

.section--industry-single-intro {
	padding-top: clamp(3.4rem, 5vw, 4.8rem);
	padding-bottom: clamp(2.3rem, 3vw, 3rem);
}

.industry-single__intro {
	display: grid;
	grid-template-columns: minmax(0, 0.98fr) minmax(18rem, 0.72fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
}

.industry-single__intro-copy .rich-text {
	font-size: clamp(1rem, 1vw + 0.56rem, 1.18rem);
	line-height: 1.56;
	margin-bottom: 2rem;
}

.industry-single__intro-copy .button {
	min-height: 3.5rem;
	padding: 0.9rem 1.25rem;
	font-size: 0.96rem;
}

.industry-single__intro-media {
	min-height: clamp(18rem, 28vw, 26rem);
	border-radius: 10px;
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.12), rgba(23, 114, 98, 0.22));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: sticky;
	top: clamp(1.5rem, 2vw, 2.5rem);
	align-self: start;
}

.section--industry-single-grid {
	padding-top: clamp(1.25rem, 2vw, 1.8rem);
}

.single-expertise__related-grid,
.single-expertise--industry .single-expertise__related-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.single-expertise--industry .single-expertise__related-grid > .content-card,
.single-expertise--industry .single-expertise__related-grid > .content-card:last-child:nth-child(odd) {
	grid-column: auto;
}

.single-expertise--industry .single-expertise__related-grid .content-card,
.single-expertise--industry .single-expertise__related-grid .content-card__media {
	min-height: clamp(10rem, 18vw, 14rem);
}

.single-expertise__feature-section {
	padding-top: clamp(2.8rem, 4vw, 4rem);
}

.single-expertise__feature-grid { align-items: stretch; }

.single-expertise__faq-section {
	padding-top: clamp(2.6rem, 3.4vw, 3.6rem);
	padding-bottom: clamp(3.5rem, 5vw, 5rem);
}

.single-expertise__faq-section .section-heading {
	margin-bottom: clamp(1.25rem, 2vw, 1.75rem);
}

.single-expertise__faq-section .section-heading h2 { margin-bottom: 0; }

@media (max-width: 900px) {
	.industry-single__intro {
		grid-template-columns: 1fr;
	}

	.industry-single__intro-media,
	.service-single__intro-media {
		position: static;
		top: auto;
	}

	.single-expertise--industry .single-expertise__related-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.single-expertise__related-grid,
	.single-expertise--industry .single-expertise__related-grid {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   FUNCTION ARCHIVE
   ============================================================ */
.hero__inner--archive-function {
	padding-top: clamp(3.5rem, 5vw, 5rem);
	padding-bottom: clamp(3.25rem, 4.5vw, 4.5rem);
}

.hero__content--archive-function {
	max-width: min(100%, 38rem);
}

.section--function-archive-intro {
	padding-top: clamp(3.5rem, 5vw, 4.8rem);
	padding-bottom: clamp(2.7rem, 3.4vw, 3.4rem);
}

.function-archive__intro {
	display: grid;
	grid-template-columns: minmax(0, 0.96fr) minmax(18rem, 0.76fr);
	gap: clamp(2rem, 4vw, 4.25rem);
	align-items: stretch;
}

.function-archive__intro-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.function-archive__intro-copy .rich-text {
	font-size: clamp(1rem, 1vw + 0.56rem, 1.18rem);
	line-height: 1.56;
	margin-bottom: 2rem;
}

.function-archive__intro-copy .button {
	min-height: 3.5rem;
	padding: 0.9rem 1.25rem;
	font-size: 0.96rem;
}

.function-archive__intro-media {
	min-height: clamp(16rem, 48vw, 21rem);
	max-height: clamp(18rem, 24vw, 24rem);
	align-self: stretch;
	border-radius: 10px;
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.12), rgba(23, 114, 98, 0.22));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.section--function-archive-grid {
	padding-top: clamp(1.25rem, 2vw, 1.8rem);
}

@media (max-width: 1024px) {
	.function-archive__intro {
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.95fr);
	}
}

@media (max-width: 900px) {
	.function-archive__intro,
	.function-archive__grid {
		grid-template-columns: 1fr;
	}

	.function-archive__intro-media {
		min-height: clamp(16rem, 48vw, 21rem);
		max-height: none;
	}
}

@media (max-width: 560px) {
	.function-archive__grid .content-card__media {
		min-height: 180px;
	}
}

/* Function single */
.hero--single-function {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.hero__inner--single-function {
	padding-top: clamp(3.25rem, 5vw, 5rem);
	padding-bottom: clamp(2.2rem, 3.2vw, 2.8rem);
}

.hero__content--single-function {
	max-width: min(100%, 44rem);
}

.hero__content--single-function p {
	max-width: 42rem;
	color: rgba(255, 255, 255, 0.88);
}

.section--function-single-top {
	padding-top: clamp(3rem, 4.5vw, 4.5rem);
	padding-bottom: clamp(2rem, 3vw, 2.8rem);
}

.section-heading--function-top {
	text-align: center;
	margin-bottom: clamp(2rem, 3vw, 2.75rem);
}

.section-heading--function-top h2 {
	margin-inline: auto;
	font-size: clamp(3rem, 5vw, 4.5rem);
	line-height: 0.98;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

.function-single__top-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(18rem, 0.84fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}

.function-single__copy-column {
	font-size: 0.98rem;
	line-height: 1.58;
}

.function-single__intro-copy { margin-bottom: 1.5rem; }

.function-single__why-us h3 {
	font-size: 1.15rem;
	margin-bottom: 0.6rem;
}

.function-single__pill-intro {
	margin-bottom: 0.85rem;
	font-size: 0.95rem;
}

.function-single__pill-list { display: grid; gap: 0.7rem; }

.function-single__pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 2.3rem;
	padding: 0.55rem 1rem;
	border-radius: 0.35rem;
	background: var(--color-lime);
	border: 2px solid var(--color-lime);
	color: var(--color-navy);
	font-size: 0.88rem;
	font-weight: 500;
	text-align: center;
}

.function-single__pill.is-current {
	background: var(--color-navy);
	color: var(--color-white);
	border: 2px solid var(--color-lime);
	pointer-events: none;
}

.section--function-single-story {
	padding-top: 0;
	padding-bottom: clamp(2.4rem, 3.2vw, 3.4rem);
}

.function-single__story {
	display: grid;
	grid-template-columns: minmax(18rem, 0.92fr) minmax(0, 1fr);
	gap: 0;
	border-radius: 0.625rem;
	overflow: hidden;
}

.function-single__story-media,
.function-single__story-media--placeholder {
	min-height: clamp(18rem, 30vw, 28rem);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-color: #d8e0e7;
}

.function-single__story-card {
	display: flex;
	flex-direction: column;
	padding: clamp(1.8rem, 2.6vw, 2.8rem);
	background: var(--color-navy);
	color: var(--color-white);
}

.function-single__story-card h2 {
	color: var(--color-lime);
	margin-bottom: 1.2rem;
}

.function-single__story-slides { flex: 1; }

.function-single__quote {
	margin: 0 0 1.5rem;
	font-size: clamp(1rem, 1vw + 0.55rem, 1.12rem);
	line-height: 1.6;
}

.function-single__quote-name {
	color: var(--color-lime);
	font-weight: 700;
	font-size: 1rem;
	margin-bottom: 0.15rem;
}

.function-single__quote-role {
	color: var(--color-white);
	font-size: 0.98rem;
	margin-top: 0;
	margin-bottom: 0;
}

.function-single__story-controls {
	margin-top: auto;
	padding-top: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.function-single__story-arrows {
	display: inline-flex;
	gap: 0.55rem;
}

.function-single__story-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border-radius: 999px;
	border: 1px solid var(--color-lime);
	background: transparent;
	color: var(--color-lime);
	font-size: 0.95rem;
	line-height: 1;
}

.function-single__story-dots { display: inline-flex; align-items: center; gap: 0.35rem; }

.function-single__story-dot {
	width: 0.45rem;
	height: 0.45rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
}

.function-single__story-dot.is-active { background: var(--color-lime); }

/* Function single: team + form */
.section--function-single-team-form {
	padding-top: 0;
	padding-bottom: clamp(2.8rem, 3.8vw, 4rem);
}

.function-single__team-form {
	display: grid;
	grid-template-columns: minmax(18rem, 0.82fr) minmax(24rem, 1fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}

.function-single__team-block h2,
.function-single__form-block .contact-tabs__panel h2 {
	margin-bottom: 1rem;
}

.function-single__team-card-lite {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.function-single__team-headshot img {
	display: block;
	width: 100%;
	max-width: 287px;
	height: auto;
	object-fit: cover;
	border-radius: 0;
}

.function-single__team-text .rich-text {
	font-size: clamp(0.95rem, 0.96vw, 1rem);
	line-height: 1.5;
	color: var(--color-navy);
}

.function-single__form-block.contact-layout__form { max-width: 54rem; }

.function-single__form-block .contact-tabs__nav { margin-bottom: 1.25rem; }

.function-single__form-block .contact-tabs__button {
	padding: 0.8rem 0.9rem;
	font-size: 0.92rem;
}

.function-single__form-block .contact-tabs__panel h2 {
	font-size: clamp(2.05rem, 2.3vw, 2.6rem);
	line-height: 1.02;
}

.function-single__form-block.contact-layout__form .wpcf7-form { gap: 0.75rem; }
.function-single__form-block.contact-layout__form .form-grid  { gap: 0.75rem; }

.function-single__form-block.contact-layout__form .field .wpcf7-form-control-wrap > input,
.function-single__form-block.contact-layout__form .field .wpcf7-form-control-wrap > textarea,
.function-single__form-block.contact-layout__form .field .wpcf7-form-control-wrap > select,
.function-single__form-block.contact-layout__form .field input,
.function-single__form-block.contact-layout__form .field textarea,
.function-single__form-block.contact-layout__form .field select {
	padding: 0.82rem 0.95rem;
	border-radius: 0.35rem;
	background: #ececec;
	font-size: 0.95rem;
}

.function-single__form-block.contact-layout__form .field textarea,
.function-single__form-block.contact-layout__form .field .wpcf7-form-control-wrap > textarea {
	min-height: 6.8rem;
}

.function-single__form-block.contact-layout__form .acceptance-row { font-size: 0.92rem; }

.function-single__form-block.contact-layout__form .wpcf7-submit {
	padding: 0.72rem 1.2rem;
	font-size: 0.95rem;
	font-weight: 600;
}

/* Function single: portfolio row */
.section--function-single-portfolio { padding-top: 0; }

.function-single__portfolio-header {
	align-items: center;
	margin-bottom: clamp(1rem, 1.8vw, 1.5rem);
}

.function-single__portfolio-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(0.85rem, 1.2vw, 1.25rem);
}

.function-single__portfolio-item { min-width: 0; }

.function-single__portfolio-link {
	display: grid;
	gap: 0.45rem;
	color: var(--color-navy);
	text-decoration: none;
}

.function-single__portfolio-media {
	aspect-ratio: 1 / 1;
	border-radius: 0.35rem;
	overflow: hidden;
	background: #f3f1f1;
}

.function-single__portfolio-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 240ms ease;
}

.function-single__portfolio-media--placeholder {
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.14), rgba(23, 114, 98, 0.12));
}

.function-single__portfolio-title {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(0.9rem, 0.95vw, 1rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--color-navy);
}

.function-single__portfolio-link:hover .function-single__portfolio-media img,
.function-single__portfolio-link:focus-visible .function-single__portfolio-media img {
	transform: scale(1.03);
}

/* Function single: testimonials (mirrors homepage) */
.function-single__testimonials {
	display: grid;
	grid-template-columns: minmax(0, 0.98fr) minmax(0, 1fr);
	gap: 0;
	border-radius: 10px;
	overflow: hidden;
}

.function-single__testimonials .home-testimonials__media {
	position: relative;
	min-height: clamp(24rem, 38vw, 46.125rem);
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.92), rgba(23, 114, 98, 0.78));
	overflow: hidden;
}

.function-single__testimonials .home-testimonials__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.function-single__testimonials .home-testimonials__media [data-testimonial-media-slide] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
}

/* All remaining inner styles inherit from .home-testimonials__* */

@media (max-width: 1100px) {
	.function-single__top-grid,
	.function-single__team-form {
		grid-template-columns: 1fr;
	}

	.function-single__testimonials {
		grid-template-columns: 1fr;
	}

	.function-single__testimonials .home-testimonials__media {
		display: none;
	}

	.function-single__form-block.contact-layout__form {
		max-width: none;
	}

	.function-single__portfolio-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.function-single__story,
	.function-single__team-card-lite,
	.single-expertise--function .single-expertise__related-grid {
		grid-template-columns: 1fr;
	}

	.service-single__intro {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.function-single__portfolio-grid {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   SERVICE ARCHIVE & SINGLE
   ============================================================ */
.hero__inner--archive-service {
	padding-top: clamp(3.5rem, 5vw, 5rem);
	padding-bottom: clamp(3.25rem, 4.5vw, 4.5rem);
}

.section--service-archive-intro {
	padding-top: clamp(3.5rem, 5vw, 4.8rem);
	padding-bottom: clamp(2.7rem, 3.4vw, 3.4rem);
}

.service-archive__intro {
	display: grid;
	grid-template-columns: minmax(0, 0.96fr) minmax(18rem, 0.76fr);
	gap: clamp(2rem, 4vw, 4.25rem);
	align-items: stretch;
}

.service-archive__intro-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.service-archive__intro-copy .rich-text {
	font-size: clamp(1rem, 1vw + 0.56rem, 1.18rem);
	line-height: 1.56;
	margin-bottom: 2rem;
}

.service-archive__intro-copy .button {
	min-height: 3.5rem;
	padding: 0.9rem 1.25rem;
	font-size: 0.96rem;
}

.service-archive__intro-media {
	min-height: clamp(16rem, 48vw, 21rem);
	max-height: clamp(18rem, 24vw, 24rem);
	align-self: stretch;
	border-radius: 10px;
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.12), rgba(23, 114, 98, 0.22));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.section--service-archive-grid {
	padding-top: clamp(1.25rem, 2vw, 1.8rem);
}

.section--service-single-intro {
	padding-top: clamp(3.4rem, 5vw, 4.8rem);
	padding-bottom: clamp(2.3rem, 3vw, 3rem);
}

.service-single__intro {
	display: grid;
	grid-template-columns: minmax(0, 0.98fr) minmax(18rem, 0.72fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
}

.service-single__intro-copy .rich-text {
	font-size: clamp(1rem, 1vw + 0.56rem, 1.18rem);
	line-height: 1.56;
	margin-bottom: 2rem;
}

.service-single__intro-copy .button {
	min-height: 3.5rem;
	padding: 0.9rem 1.25rem;
	font-size: 0.96rem;
}

.service-single__intro-media {
	min-height: clamp(18rem, 28vw, 26rem);
	border-radius: 10px;
	background: linear-gradient(135deg, rgba(17, 43, 68, 0.12), rgba(23, 114, 98, 0.22));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: sticky;
	top: clamp(1.5rem, 2vw, 2.5rem);
	align-self: start;
}

@media (max-width: 1024px) {
	.service-archive__intro {
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.95fr);
	}
}

@media (max-width: 900px) {
	.service-archive__intro,
	.service-archive__grid {
		grid-template-columns: 1fr;
	}

	.service-archive__intro-media,
	.service-single__intro-media {
		min-height: clamp(16rem, 48vw, 21rem);
		max-height: none;
	}
}

@media (max-width: 560px) {
	.service-archive__grid .content-card__media {
		min-height: 180px;
	}
}


/* ============================================================
   PORTFOLIO ARCHIVE
   ============================================================ */
.hero__inner--archive-portfolio {
	padding-top: clamp(3.5rem, 5vw, 5rem);
	padding-bottom: clamp(3.25rem, 4.5vw, 4.5rem);
}

.section--portfolio-archive-grid {
	padding-top: clamp(2.5rem, 4vw, 3.5rem);
	padding-bottom: clamp(4rem, 6vw, 5.5rem);
}

.portfolio-archive__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 1.5vw, 1.35rem);
}

.portfolio-archive__grid .content-card--portfolio {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0;
	border-radius: 10px;
	overflow: hidden;
	background: transparent;
}

.portfolio-archive__grid .content-card__link {
	position: relative;
	display: block;
	border-radius: 10px;
	overflow: hidden;
}

.portfolio-archive__grid .content-card__media {
	aspect-ratio: 1 / 1;
	min-height: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transition: transform 320ms ease, filter 320ms ease;
}

.portfolio-archive__grid .content-card__body {
	display: none;
	margin-top: 0;
	padding: 0;
	background: none;
	color: var(--color-navy);
}

/* Portfolio hover overlay */
.portfolio-card__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(0.95rem, 1.4vw, 1.2rem);
	background: linear-gradient(180deg, rgba(46, 29, 43, 0.94), rgba(38, 24, 35, 0.92));
	color: var(--color-white);
	opacity: 0;
	visibility: hidden;
	transition: opacity 260ms ease, visibility 260ms ease;
	overflow: hidden;
}

.portfolio-card__slides {
	display: flex;
	flex: 1 1 auto;
	max-width: 100%;
	width: 100%;
	min-height: 0;
	overflow: hidden;
}

.portfolio-card__slide {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 0.45rem;
	max-width: 100%;
	min-height: 0;
	flex: 1 1 auto;
	overflow: hidden;
}

.portfolio-card__slide[hidden] { display: none; }

.portfolio-card__overlay-title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.2rem, 1.45vw, 1.7rem);
	line-height: 0.98;
	letter-spacing: -0.02em;
	color: var(--color-white);
}

.portfolio-card__overlay-summary {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.78rem;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.94);
	min-height: 0;
	overflow: auto;
	padding-right: 0.1rem;
}

.portfolio-card__overlay-summary p,
.portfolio-card__overlay-summary ul,
.portfolio-card__overlay-summary ol { margin: 0.28rem 0 0; }

.portfolio-card__overlay-summary p:first-child,
.portfolio-card__overlay-summary ul:first-child,
.portfolio-card__overlay-summary ol:first-child { margin-top: 0; }

.portfolio-card__overlay-summary ul,
.portfolio-card__overlay-summary ol { padding-left: 1rem; }

.portfolio-card__overlay-actions {
	margin-top: auto;
	padding-top: 0.65rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1rem;
}

.portfolio-card__overlay-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.55rem;
	height: 1.55rem;
	padding: 0;
	border: 1px solid var(--color-lime);
	border-radius: 999px;
	background: rgba(17, 43, 68, 0.28);
	color: var(--color-lime);
	font-family: var(--font-body);
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

/* Shared hover behaviour across all portfolio grids */
.portfolio-archive__grid .content-card--portfolio:hover .portfolio-card__overlay,
.portfolio-archive__grid .content-card--portfolio:focus-within .portfolio-card__overlay,
.portfolio-grid--compact .content-card--portfolio:hover .portfolio-card__overlay,
.portfolio-grid--compact .content-card--portfolio:focus-within .portfolio-card__overlay,
.portfolio-grid--home-teasers .content-card--portfolio:hover .portfolio-card__overlay,
.portfolio-grid--home-teasers .content-card--portfolio:focus-within .portfolio-card__overlay {
	opacity: 1;
	visibility: visible;
}

.portfolio-archive__grid .content-card--portfolio:hover .content-card__media,
.portfolio-archive__grid .content-card--portfolio:focus-within .content-card__media,
.portfolio-grid--compact .content-card--portfolio:hover .content-card__media,
.portfolio-grid--compact .content-card--portfolio:focus-within .content-card__media,
.portfolio-grid--home-teasers .content-card--portfolio:hover .content-card__media,
.portfolio-grid--home-teasers .content-card--portfolio:focus-within .content-card__media {
	transform: scale(1.02);
	filter: saturate(0.85) brightness(0.72);
}

@media (max-width: 1200px) {
	.portfolio-archive__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.portfolio-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.portfolio-archive__grid {
		grid-template-columns: 1fr;
	}
}

.portfolio-grid--compact .content-card__media {
	min-height: 180px;
}

.portfolio-grid--archive {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.portfolio-story {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.9fr);
	gap: 1.5rem;
	align-items: start;
}

.portfolio-quote {
	padding: 2rem;
	border-radius: var(--radius-lg);
	background: var(--color-navy);
	color: var(--color-white);
	box-shadow: var(--shadow-soft);
}

.portfolio-quote__text {
	font-family: var(--font-heading);
	font-size: 1.5rem;
	line-height: 1.3;
}

.portfolio-quote__meta {
	margin-top: 1rem;
	color: var(--color-lime);
	font-weight: 600;
}

.case-study-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

.case-study-block {
	background: #f8fafc;
	color: var(--color-navy);
}

.case-study-block--wide { grid-column: 1 / -1; }

.gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.gallery-grid__item img {
	width: 100%;
	height: 100%;
	min-height: 240px;
	object-fit: cover;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
}

@media (max-width: 1024px) {
	.portfolio-grid--archive {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.portfolio-grid--archive,
	.gallery-grid,
	.case-study-grid,
	.portfolio-story {
		grid-template-columns: 1fr;
	}

	.case-study-block--wide { grid-column: auto; }
}


/* ============================================================
   NEWS / INSIGHTS
   ============================================================ */
.hero__inner--archive-news,
.hero__inner--article {
	min-height: clamp(220px, 24vw, 280px);
	align-items: end;
}

.hero__content--archive-news,
.hero__content--article {
	display: grid;
	gap: 0.8rem;
}

.hero__content--archive-news h1,
.hero__content--article h1 {
	color: var(--color-white);
}

.news-single__hero {
	background-color: var(--color-navy);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--color-white);
}

.news-single__meta {
	font-size: 0.95rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.88);
}

.section--news-archive {
	padding: clamp(2rem, 4vw, 2.75rem) 0 clamp(4rem, 6vw, 5rem);
}

.news-archive {
	display: grid;
	gap: clamp(0.8rem, 1.25vw, 1rem);
	--news-card-gap: clamp(0.8rem, 1.25vw, 1rem);
	--news-card-row-height: 290px;
	--news-lead-height: calc((var(--news-card-row-height) * 2) + var(--news-card-gap));
}

.news-archive__lead-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--news-card-gap);
	align-items: stretch;
}

.news-archive__featured,
.news-archive__supporting {
	min-width: 0;
	height: var(--news-lead-height);
}

.news-archive__supporting {
	display: grid;
	grid-template-rows: repeat(2, var(--news-card-row-height));
	gap: var(--news-card-gap);
}

.news-archive__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--news-card-gap);
}

.news-archive__grid .news-card { height: var(--news-card-row-height); }

.news-card {
	position: relative;
	min-width: 0;
	height: 100%;
}

.news-card__link {
	position: relative;
	display: block;
	border-radius: 0;
	overflow: hidden;
	background: transparent;
	min-height: 100%;
	height: 100%;
}

.news-card__media {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border-radius: 0;
	transition: transform 320ms ease;
}

.news-card__media--placeholder {
	background-image: linear-gradient(180deg, rgba(17, 43, 68, 0.96), rgba(17, 43, 68, 0.96));
}

.news-card__overlay {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: clamp(1.2rem, 1.8vw, 1.5rem);
	background: linear-gradient(180deg, rgba(8, 17, 26, 0.16), rgba(8, 17, 26, 0.58));
	border-radius: 0;
	min-height: 100%;
	height: 100%;
}

.news-card__content {
	display: grid;
	justify-items: center;
	gap: 0.75rem;
	height: 100%;
	align-content: center;
}

.news-card__title {
	margin: 0;
	color: var(--color-white);
	font-size: clamp(1.15rem, 1vw + 0.9rem, 2.05rem);
	line-height: 1.12;
	text-wrap: balance;
}

.news-card--featured .news-card__title {
	font-size: clamp(1.45rem, 1.2vw + 1rem, 2.25rem);
}

.news-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.5rem;
	padding: 0.5rem 1rem;
	border-radius: 0.625rem;
	border: 2px solid var(--color-lime);
	background: var(--color-lime);
	color: var(--color-navy);
}

.news-card__link:hover .news-card__media,
.news-card__link:focus-visible .news-card__media {
	transform: scale(1.02);
}

.news-card__link:focus-visible {
	outline: 2px solid var(--color-lime);
	outline-offset: 4px;
}

/* News archive pagination */
.news-archive .pagination,
.news-archive .nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.45rem;
	margin-top: clamp(0.35rem, 1vw, 0.85rem);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-navy);
}

.news-archive .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.6rem;
	height: 1.6rem;
	padding: 0 0.2rem;
	border-radius: 999px;
	color: var(--color-navy);
}

.news-archive .page-numbers.current,
.news-archive .page-numbers:hover,
.news-archive .page-numbers:focus-visible {
	color: #9aac16;
	background: transparent;
}

/* News single */
.hero__inner--article {
	min-height: clamp(250px, 30vw, 340px);
}

.hero__content--article .breadcrumb { margin-top: 0; }

.news-single__article {
	padding: clamp(2.5rem, 4.5vw, 3.75rem) 0 0;
}

.news-single__layout {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1200px);
	justify-content: center;
	column-gap: clamp(1.1rem, 2vw, 1.6rem);
	align-items: start;
}

.news-single__share {
	position: sticky;
	top: 2rem;
	padding-top: 0.35rem;
}

.news-share-list {
	display: grid;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.news-share-list__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 35px;
	height: 35px;
	border-radius: 999px;
	background: var(--color-navy);
	color: var(--color-white);
	font-family: var(--font-body);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;
	transition: transform 180ms ease, background 180ms ease;
}

.news-share-list__link:hover,
.news-share-list__link:focus-visible {
	background: #5d8fd0;
	transform: translateY(-1px);
}

.news-single__body {
	display: grid;
	gap: 1.25rem;
	width: 100%;
}

.news-single__intro {
	font-size: clamp(1rem, 0.32vw + 0.96rem, 1.05rem);
	line-height: 1.75;
	color: var(--color-navy);
}

.news-single__intro p { margin-bottom: 0.85rem; }

.news-single__content {
	font-size: clamp(0.98rem, 0.28vw + 0.94rem, 1.02rem);
	line-height: 1.72;
	color: rgba(17, 43, 68, 0.95);
}

.news-single__content > * + * { margin-top: 0.9rem; }

.news-single__content h2 {
	font-size: clamp(2rem, 1.8vw, 2.65rem);
	line-height: 1.08;
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.news-single__content h3 {
	font-size: clamp(1.55rem, 1.2vw, 2rem);
	line-height: 1.14;
	margin-top: 1.8rem;
	margin-bottom: 0.65rem;
}

.news-single__content h4 {
	font-size: clamp(1.2rem, 0.9vw, 1.45rem);
	line-height: 1.2;
	margin-top: 1.55rem;
	margin-bottom: 0.6rem;
}

.news-single__content blockquote {
	margin: 0 0 1.5rem;
	padding-left: 1.25rem;
	border-left: 3px solid var(--color-lime);
	font-size: clamp(1.05rem, 0.6vw + 0.95rem, 1.18rem);
	line-height: 1.65;
	color: rgba(17, 43, 68, 0.9);
}

.news-single__content img {
	margin: 1.5rem 0;
	border-radius: 10px;
}

.news-single__back { padding-top: 0.5rem; }

@media (max-width: 1100px) {
	.news-archive__lead-grid,
	.news-archive__supporting,
	.news-archive__grid {
		gap: var(--news-card-gap);
	}

	.news-archive__lead-grid {
		grid-template-columns: 1fr;
	}

	.news-archive__supporting,
	.news-archive__grid {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
	}

	.news-archive__featured,
	.news-archive__supporting,
	.news-card,
	.news-card__link,
	.news-card__overlay,
	.news-card__content,
	.news-archive__grid .news-card {
		height: auto;
	}

	.news-archive__supporting {
		grid-template-rows: auto;
	}
}

@media (max-width: 900px) {
	.news-single__layout {
		grid-template-columns: 1fr;
		row-gap: 1rem;
	}

	.news-single__share {
		position: static;
		padding-top: 0;
	}

	.news-share-list {
		grid-auto-flow: column;
		justify-content: start;
	}

	.hero__content--article h1 { max-width: 100%; }
}

@media (max-width: 700px) {
	.news-archive {
		--news-card-row-height: clamp(220px, 58vw, 300px);
	}
}


/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 0.95fr);
	gap: 2rem;
	align-items: start;
}

.contact-layout--tabs {
	grid-template-columns: minmax(0, 0.95fr) minmax(340px, 1.15fr);
	align-items: start;
}

.contact-layout__copy {
	margin: 2rem 0 1.75rem;
}

.contact-layout__copy .map-icon {
	display: inline-block;
	margin-left: 1rem;
}

.contact-layout__copy a { text-decoration: underline; }

.contact-meta {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 3rem;
	display: grid;
	gap: 0.75rem;
}

.contact-meta li strong { color: var(--color-navy); }

.contact-meta--icons li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.contact-meta__icon {
	min-width: 1.25rem;
	font-size: 1rem;
	line-height: 1.4;
	color: var(--color-navy);
}

.contact-meta__icon-image {
	display: block;
	width: 35px;
	height: 35px;
	flex: 0 0 1.25rem;
	object-fit: contain;
	margin-top: 0.12rem;
}

.contact-map iframe {
	width: 100%;
	min-height: 320px;
	border: 0;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
}

/* Contact tabs */
.contact-tabs {
	background: var(--color-white);
	padding: 0;
	border-radius: var(--radius-lg);
}

.contact-tabs__nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	background: #eef2c8;
	border-radius: 0.5rem;
	margin-bottom: 1.5rem;
}

.contact-tabs__button {
	appearance: none;
	border: 0;
	background: transparent;
	color: #36556a;
	padding: 0.85rem 1rem;
	font: inherit;
	font-size: 0.98rem;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	border-radius: 0.35rem;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.contact-tabs__button:hover {
	background: rgba(255, 255, 255, 0.32);
	color: var(--color-navy);
}

.contact-tabs__button.is-active {
	background: var(--color-lime);
	color: var(--color-navy);
	font-weight: 700;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(95, 128, 16, 0.22);
}

.contact-tabs__button:first-child  { border-radius: 10px 0 0 10px; }
.contact-tabs__button:nth-child(2) { border-radius: 0; }
.contact-tabs__button:last-child   { border-radius: 0 10px 10px 0; }

.contact-tabs__panel { padding: 0; }

.contact-tabs__panel.is-active { animation: fadeIn 0.18s ease; }

.contact-tabs__panel h2 {
	margin-bottom: 1rem;
	font-size: clamp(2rem, 2.5vw, 2.8rem);
}

/* Contact form */
.contact-layout__form {
	background: var(--color-white);
	color: var(--color-navy);
}

.contact-layout__form .wpcf7 { display: block; }

.contact-layout__form .wpcf7-form {
	display: grid;
	gap: 0.85rem;
}

.contact-layout__form .wpcf7-form p { margin: 0; }

.contact-layout__form .form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
}

.contact-layout__form .form-grid--single { grid-template-columns: 1fr; }

.contact-layout__form .field,
.contact-layout__form .field textarea,
.contact-layout__form .field input:not([type='checkbox']):not([type='radio']),
.contact-layout__form .field select {
	width: 100%;
}

.contact-layout__form .field input:not([type='checkbox']):not([type='radio']),
.contact-layout__form .field textarea,
.contact-layout__form .field select,
.contact-layout__form .field .wpcf7-form-control-wrap > input:not([type='checkbox']):not([type='radio']),
.contact-layout__form .field .wpcf7-form-control-wrap > textarea,
.contact-layout__form .field .wpcf7-form-control-wrap > select {
	width: 100%;
	padding: 0.9rem 1rem;
	border: 0;
	border-radius: 0.45rem;
	background: #ececec;
	color: var(--color-navy);
	font: inherit;
}

.contact-layout__form .field textarea,
.contact-layout__form .field .wpcf7-form-control-wrap > textarea {
	height: 90px;
	resize: vertical;
}

.contact-layout__form .field:has(select),
.job-single__apply-wrap .job-manager-application-form fieldset:has(select) {
	position: relative;
}

.contact-layout__form .field:has(select)::after,
.job-single__apply-wrap .job-manager-application-form fieldset:has(select)::after {
	content: "";
	position: absolute;
	right: 1rem;
	top: 40%;
	width: 20px;
	height: 20px;
	background: url('../images/select-arrow-down.png') center / contain no-repeat;
	transform: translateY(-50%);
	transform-origin: center;
	transition: transform 0.18s ease;
	pointer-events: none;
	z-index: 1;
}

.contact-layout__form .field:focus-within:has(select)::after,
.job-single__apply-wrap .job-manager-application-form fieldset:focus-within:has(select)::after {
	transform: translateY(-50%) rotate(180deg);
}

.contact-layout__form .field select,
.contact-layout__form .field .wpcf7-form-control-wrap > select,
.job-single__apply-wrap .job-manager-application-form select {
	appearance: none;
	-webkit-appearance: none;
	background-image: none !important;
	padding-right: 2.8rem;
}

.contact-layout__form .field:has(input[type='file']),
.job-single__apply-wrap .job-manager-application-form fieldset:has(input[type='file']) {
	position: relative;
	display: block;
	width: 100%;
	min-height: 3rem;
	cursor: pointer;
}

.contact-layout__form .field:has(input[type='file'])::before,
.job-single__apply-wrap .job-manager-application-form fieldset:has(input[type='file'])::before {
	content: attr(data-upload-label);
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	padding: 0.9rem 1rem 0.9rem 2.8rem;
	border-radius: 0.45rem;
	background: #ececec;
	background-image: url('../images/clip.png');
	background-repeat: no-repeat;
	background-position: 1rem center;
	background-size: 1rem 1rem;
	color: var(--color-navy);
	font: inherit;
	line-height: 1.2;
	pointer-events: none;
	z-index: 1;
}

.contact-layout__form .field.is-file-selected::before,
.job-single__apply-wrap .job-manager-application-form fieldset.is-file-selected::before {
	color: var(--color-navy);
}

.contact-layout__form .field input[type='file'],
.contact-layout__form .field .wpcf7-form-control-wrap > input[type='file'],
.job-single__apply-wrap .job-manager-application-form input[type='file'] {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}

.contact-layout__form .file-help {
	font-size: 0.85rem;
	color: #516678;
}

.contact-layout__form .acceptance-row {
	font-size: 0.92rem;
	color: var(--color-navy);
	line-height: 1.45;
}

.contact-layout__form .acceptance-row .wpcf7-list-item { margin: 0; display: block; }

.contact-layout__form .acceptance-row label {
	display: grid;
	grid-template-columns: 1rem minmax(0, 1fr);
	column-gap: 0.7rem;
	align-items: flex-start;
	max-width: 18rem;
	cursor: pointer;
}

.contact-layout__form .acceptance-row input[type='checkbox'] {
	appearance: none;
	-webkit-appearance: none;
	display: block;
	flex: 0 0 1rem;
	width: 1rem;
	height: 1rem;
	margin: 0.08rem 0 0;
	padding: 0;
	border: 1px solid #c8ced6;
	border-radius: 0.2rem;
	background: #f1f2f4;
	box-shadow: none;
	position: relative;
	cursor: pointer;
}

.contact-layout__form .acceptance-row input[type='checkbox']:checked {
	background: var(--color-lime);
	border-color: var(--color-lime);
}

.contact-layout__form .acceptance-row input[type='checkbox']:checked::after {
	content: "";
	position: absolute;
	left: 0.3rem;
	top: 0.08rem;
	width: 0.22rem;
	height: 0.5rem;
	border: solid var(--color-navy);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.contact-layout__form .acceptance-row input[type='checkbox']:focus-visible {
	outline: 2px solid rgba(200, 227, 39, 0.45);
	outline-offset: 2px;
}

.contact-layout__form .acceptance-row .wpcf7-list-item-label {
	display: block;
	color: var(--color-navy);
	line-height: 1.45;
}

.contact-layout__form .wpcf7-submit {
	padding: 0.8rem 1.35rem;
	border-radius: 0.4rem;
}

.contact-layout__form .wpcf7-not-valid-tip {
	font-size: 0.82rem;
	margin-top: 0.3rem;
}

.contact-layout__form .wpcf7-spinner { margin: 0 0 0 0.5rem; }

.contact-layout__form input[type='submit'],
.contact-layout__form button,
.contact-layout__form .wpcf7-submit {
	color: var(--color-navy);
	border: 0;
	font-weight: 700;
	cursor: pointer;
	border-radius: 10px;
}

@media (max-width: 990px) {
	.page-template-page-contact .contact-layout,
	.page-template-page-contact .contact-layout--tabs {
		grid-template-columns: 1fr;
	}

	.page-template-page-contact .contact-layout__form { order: 1; width: 100%; }
	.page-template-page-contact .contact-layout__info  { order: 2; width: 100%; }
}

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

@media (min-width: 1200px) and (max-width: 1920px) {
	.page-template-page-contact .contact-layout--tabs {
		grid-template-columns: minmax(0, 0.93fr) minmax(clamp(31rem, 36vw, 40rem), 1.07fr);
		gap: clamp(2rem, 2.8vw, 3.5rem);
		align-items: start;
	}

	.page-template-page-contact .contact-meta {
		margin: clamp(1.2rem, 1.8vw, 1.75rem) 0 clamp(2rem, 2.8vw, 3rem);
		gap: clamp(0.75rem, 1vw, 1rem);
	}

	.page-template-page-contact .contact-layout__copy {
		margin: clamp(1.5rem, 2vw, 2rem) 0 clamp(1.5rem, 2vw, 1.85rem);
	}

	.page-template-page-contact .contact-map iframe {
		min-height: clamp(18rem, 23vw, 24rem);
	}

	.page-template-page-contact .contact-tabs__nav {
		margin-bottom: clamp(1.2rem, 1.8vw, 1.5rem);
	}

	.page-template-page-contact .contact-tabs__button {
		padding: clamp(0.8rem, 1vw, 0.95rem) clamp(0.8rem, 1vw, 1rem);
		font-size: clamp(0.9rem, 0.25vw + 0.78rem, 0.98rem);
	}

	.page-template-page-contact .contact-tabs__panel h2 {
		font-size: clamp(2rem, 1.25vw + 1.25rem, 2.55rem);
		line-height: 1.04;
	}
}


/* ============================================================
   CANDIDATES PAGE
   ============================================================ */
.hero__inner--archive-candidates {
	min-height: clamp(220px, 24vw, 280px);
	align-items: end;
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2.5rem, 4.5vw, 3.5rem);
}

.candidates-intro {
	padding: clamp(2.5rem, 4vw, 3.5rem) 0 0;
}

.candidates-intro__copy { max-width: 36rem; }

.candidates-intro__copy h2,
.candidates-split__panel h2,
.candidates-opportunities__block h2,
.candidates-opportunities__form h2,
.candidates-faq h2 {
	font-size: clamp(2.1rem, 2vw + 1.1rem, 3.35rem);
	line-height: 1.02;
	margin-bottom: 1rem;
}

.candidates-intro__copy .rich-text,
.candidates-split__panel .rich-text,
.candidates-coverage__heading .rich-text,
.candidates-opportunities__block .rich-text {
	font-size: clamp(1rem, 0.65vw + 0.9rem, 1.15rem);
	line-height: 1.6;
}

.candidates-intro__copy .button { margin-top: 0.4rem; }

.candidates-split {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
	gap: 0;
	align-items: stretch;
	border-radius: 10px;
	overflow: hidden;
}

.section--candidates-work     { padding-top: clamp(1.5rem, 2vw, 2rem); }
.section--candidates-approach { padding-top: clamp(1rem, 1.8vw, 1.35rem); }

.candidates-split__media {
	min-height: clamp(250px, 30vw, 360px);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.candidates-split__media--placeholder {
	background-image: linear-gradient(135deg, rgba(17, 43, 68, 0.92), rgba(23, 114, 98, 0.88));
}

.candidates-split__panel { padding: clamp(2rem, 2.6vw, 2.8rem); }
.candidates-split__panel--navy { background: var(--color-navy); color: var(--color-white); }
.candidates-split__panel--navy h2,
.candidates-split__panel--navy .rich-text { color: var(--color-white); }
.candidates-split__panel--lime { background: var(--color-lime); color: var(--color-navy); }

.section--candidates-coverage {
	padding-top: clamp(3rem, 4vw, 4rem);
	padding-bottom: clamp(3rem, 4vw, 4.5rem);
}

.candidates-coverage__heading {
	max-width: 34rem;
	margin-bottom: clamp(1.5rem, 2vw, 2rem);
}

.section--candidates-opportunities {
	padding-top: clamp(2.75rem, 4vw, 3.5rem);
	padding-bottom: clamp(2.75rem, 4vw, 3.5rem);
}

.candidates-opportunities {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
}

.candidates-opportunities__copy { display: grid; gap: clamp(1.5rem, 2vw, 2rem); }

.candidates-opportunities__form.contact-layout__form { padding-top: 0; }
.candidates-opportunities__form .contact-tabs__nav { margin-bottom: 1rem; }
.candidates-opportunities__form .contact-tabs__panel {
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.section--candidates-faq {
	padding-top: 0;
	padding-bottom: clamp(4rem, 6vw, 5rem);
}

.candidates-faq { max-width: none; }

.candidates-opportunities__block .button { margin-top: 0.35rem; }

.candidates-form-single { padding-top: 0; }
.candidates-form-single h2 { margin-bottom: 1rem; }

@media (max-width: 1100px) {
	.candidates-split,
	.candidates-opportunities {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   JOBS ARCHIVE
   ============================================================ */
.hero__inner--archive-jobs,
.hero__inner--archive-job-single {
	min-height: 0;
	align-items: end;
	padding-top: clamp(3rem, 5vw, 4rem);
	padding-bottom: clamp(1.6rem, 2.2vw, 2rem);
}

.hero__content--archive-job-single {
	max-width: none;
}

.hero__content--archive-job-single h1 {
	max-width: none;
	font-size: clamp(2.3rem, 2.6vw + 1rem, 3.4rem);
	line-height: 1.02;
	margin-bottom: 0.5rem;
}

.section--jobs-archive {
	padding-top: clamp(2.5rem, 4vw, 3rem);
	padding-bottom: clamp(4rem, 6vw, 5rem);
}

.jobs-archive__layout {
	display: grid;
	grid-template-columns: minmax(240px, 0.3fr) minmax(0, 1fr);
	gap: clamp(2rem, 3vw, 3rem);
	align-items: start;
}

.jobs-archive__filters {
	position: sticky;
	top: 2rem;
	align-self: start;
}

.jobs-filter-panel h2 {
	font-size: clamp(1.55rem, 1.2vw + 0.9rem, 2.1rem);
	margin-bottom: 2.5rem;
}

.jobs-list { display: grid; gap: 0; }

.job-card {
	display: grid;
	gap: 1.25rem;
	padding: 1.6rem 0;
	border-bottom: 1px solid rgba(17, 43, 68, 0.12);
}

.job-card:first-child { padding-top: 0; }

.job-card__title {
	margin: 0 0 2rem;
	font-size: clamp(1.4rem, 1.25vw + 0.9rem, 2rem);
	line-height: 1.1;
}

.job-card__meta,
.job-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1rem;
	margin-bottom: 1.5rem;
	font-size: var(--type-body);
	font-weight: 500;
	color: rgba(17, 43, 68, 0.72);
}

.job-card__meta span,
.job-single__meta span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--color-navy);
	font-size: var(--type-body);
	font-weight: 500;
}

.job-card__meta span:nth-child(1),
.job-single__meta span:nth-child(1) {
	margin-right: 4rem;
}

.job-card__meta span:nth-child(1)::before,
.job-single__meta span:nth-child(1)::before {
	content: "";
	width: 30px;
	height: 30px;
	background: url('../images/salary-p.svg') center / contain no-repeat;
	margin-right: 0.5rem;
}

.job-card__meta span:nth-child(2)::before,
.job-single__meta span:nth-child(2)::before {
	content: "";
	width: 30px;
	height: 30px;
	background: url('../images/region-p.svg') center / contain no-repeat;
	margin-right: 0.5rem;
}

.job-card__excerpt {
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(17, 43, 68, 0.9);
	margin-bottom: 1rem;
}

.job-card__actions { align-self: center; }

/* Jobs archive pagination */
.jobs-archive__results ul.page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.45rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.jobs-archive__results ul.page-numbers li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.jobs-archive__results ul.page-numbers li::marker { content: ''; }

.jobs-archive__results ul.page-numbers .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.1rem;
	height: 2.1rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	color: var(--color-navy);
}

.jobs-archive__results ul.page-numbers .page-numbers.current {
	background: var(--color-lime);
	color: var(--color-navy);
}

.jobs-archive__results ul.page-numbers .page-numbers:hover,
.jobs-archive__results ul.page-numbers .page-numbers:focus-visible {
	background: rgba(200, 227, 39, 0.22);
	color: var(--color-navy);
}

.jobs-archive__results ul.page-numbers .page-numbers.dots {
	min-width: auto;
	height: auto;
	padding: 0 0.1rem;
	background: transparent;
}

/* Jobs filter panel */
.jobs-filter-panel .searchandfilter,
.jobs-filter-panel .searchandfilterwp { width: 100%; }

.jobs-filter-panel .searchandfilter > ul,
.jobs-filter-panel .searchandfilterwp > ul {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.jobs-filter-panel .searchandfilter li,
.jobs-filter-panel .searchandfilterwp li { margin: 0; padding: 0; list-style: none; }

.jobs-filter-panel .searchandfilter h4,
.jobs-filter-panel .searchandfilterwp h4,
.jobs-filter-panel .searchandfilter label,
.jobs-filter-panel .searchandfilterwp label {
	display: block;
	margin: 0 0 0.4rem;
	color: var(--color-navy);
	font-family: 'Raleway', sans-serif;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.35;
}

.jobs-filter-panel .searchandfilter input[type='search'],
.jobs-filter-panel .searchandfilter input[type='text'],
.jobs-filter-panel .searchandfilter input[type='number'],
.jobs-filter-panel .searchandfilter input[type='email'],
.jobs-filter-panel .searchandfilter select,
.jobs-filter-panel .searchandfilter textarea,
.jobs-filter-panel .searchandfilterwp input[type='search'],
.jobs-filter-panel .searchandfilterwp input[type='text'],
.jobs-filter-panel .searchandfilterwp input[type='number'],
.jobs-filter-panel .searchandfilterwp input[type='email'],
.jobs-filter-panel .searchandfilterwp select,
.jobs-filter-panel .searchandfilterwp textarea {
	width: 100%;
	padding: 0.5rem 0;
	border: none;
	border-bottom: 2px solid #C8E327;
	color: var(--color-navy);
	font-size: var(--type-body);
	line-height: 1.4;
	appearance: none;
}

.jobs-filter-panel .searchandfilter select,
.jobs-filter-panel .searchandfilterwp select {
	padding-right: 2.8rem;
	background-image: linear-gradient(45deg, transparent 50%, var(--color-navy) 50%), linear-gradient(135deg, var(--color-navy) 50%, transparent 50%);
	background-position: calc(100% - 20px) calc(50% - 3px), calc(100% - 14px) calc(50% - 3px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}

.jobs-filter-panel .searchandfilter input::placeholder,
.jobs-filter-panel .searchandfilterwp input::placeholder,
.jobs-filter-panel .searchandfilter textarea::placeholder,
.jobs-filter-panel .searchandfilterwp textarea::placeholder {
	color: var(--color-navy);
}

.jobs-filter-panel .searchandfilter input:focus,
.jobs-filter-panel .searchandfilter select:focus,
.jobs-filter-panel .searchandfilter textarea:focus,
.jobs-filter-panel .searchandfilterwp input:focus,
.jobs-filter-panel .searchandfilterwp select:focus,
.jobs-filter-panel .searchandfilterwp textarea:focus {
	outline: none;
	border-color: rgba(200, 227, 39, 0.9);
	box-shadow: 0 0 0 3px rgba(200, 227, 39, 0.18);
}

.jobs-filter-panel .searchandfilter ul ul,
.jobs-filter-panel .searchandfilterwp ul ul {
	display: grid;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.jobs-filter-panel .searchandfilter .sf-field-submit,
.jobs-filter-panel .searchandfilter .sf-field-reset,
.jobs-filter-panel .searchandfilterwp .sf-field-submit,
.jobs-filter-panel .searchandfilterwp .sf-field-reset {
	margin-top: 0.25rem;
}

.jobs-filter-panel .searchandfilter input[type='submit'],
.jobs-filter-panel .searchandfilter input[type='reset'],
.jobs-filter-panel .searchandfilter button,
.jobs-filter-panel .searchandfilterwp input[type='submit'],
.jobs-filter-panel .searchandfilterwp input[type='reset'],
.jobs-filter-panel .searchandfilterwp button {
	width: 100%;
	justify-content: center;
}

.jobs-filter-panel .searchandfilter input[type='checkbox'],
.jobs-filter-panel .searchandfilter input[type='radio'],
.jobs-filter-panel .searchandfilterwp input[type='checkbox'],
.jobs-filter-panel .searchandfilterwp input[type='radio'] {
	margin-right: 0.6rem;
	accent-color: var(--color-lime);
}

.jobs-filter-panel .searchandfilter .sf-field-reset input,
.jobs-filter-panel .searchandfilterwp .sf-field-reset input {
	background: transparent;
	border-color: rgba(17, 43, 68, 0.14);
	color: var(--color-navy);
}

.jobs-filter-panel .searchandfilter .chosen-container,
.jobs-filter-panel .searchandfilterwp .chosen-container,
.jobs-filter-panel .searchandfilter .select2-container,
.jobs-filter-panel .searchandfilterwp .select2-container {
	width: 100% !important;
}

.jobs-filter-panel .searchandfilter .chosen-single,
.jobs-filter-panel .searchandfilterwp .chosen-single,
.jobs-filter-panel .searchandfilter .select2-selection,
.jobs-filter-panel .searchandfilterwp .select2-selection {
	border: none;
	border-radius: 0;
	border-bottom: 2px solid #C8E327;
	background: none;
	padding: 0 0 0.5rem;
}

.jobs-filter-panel .searchandfilter .chosen-single span,
.jobs-filter-panel .searchandfilterwp .chosen-single span,
.jobs-filter-panel .searchandfilter .select2-selection span,
.jobs-filter-panel .searchandfilterwp .select2-selection span {
	font-size: var(--type-body);
	line-height: 1.1;
	color: #112B44;
	font-weight: 500;
}

.jobs-filter-panel .searchandfilter .chosen-container .chosen-drop { padding: 0 0.5rem; }

.jobs-filter-panel .searchandfilter .chosen-container .chosen-drop li {
	font-size: var(--type-body);
	line-height: 1.1;
	color: #112B44;
	font-weight: 500;
}

@media (max-width: 1000px) {
	.jobs-archive__layout,
	.job-card {
		grid-template-columns: 1fr;
	}

	.jobs-archive__filters { position: static; }
}


/* ============================================================
   JOB SINGLE
   ============================================================ */
.site-main--job-single-fallback,
.site-main--job-single {
	padding: 0;
}

.section--job-single {
	padding-top: clamp(4rem, 2vw, 6rem);
	padding-bottom: clamp(4rem, 4vw, 6rem);
}

.job-single__summary { margin-bottom: 2rem; }

.job-single__job-title {
	font-size: clamp(1.9rem, 1.3vw + 1.15rem, 2.7rem);
	line-height: 1.08;
	margin-bottom: 0.55rem;
	text-align: left;
}

.job-single__meta {
	justify-content: flex-start;
	gap: 0.4rem 1.2rem;
}

.job-single__meta span:nth-child(1) { margin-right: 4rem; }

.job-single__meta span:nth-child(1)::before {
	content: "";
	width: 30px;
	height: 30px;
	background: url('../images/salary-p.svg') center / contain no-repeat;
	margin-right: 0.5rem;
}

.job-single__meta span:nth-child(2)::before {
	content: "";
	width: 30px;
	height: 30px;
	background: url('../images/region-p.svg') center / contain no-repeat;
	margin-right: 0.5rem;
}

.job-single__article { padding-top: 0; }

.job-single__content {
	font-size: 0.88rem;
	line-height: 1.5;
}

.job-single__content p { margin: 0 0 0.8rem; }

.job-single__content h2 {
	font-size: clamp(1.55rem, 0.8vw + 1.15rem, 2rem);
	margin-top: 1.55rem;
	margin-bottom: 0.45rem;
}

.job-single__content h3,
.job-single__content h4 {
	font-size: 1rem;
	font-family: 'Raleway', sans-serif;
	font-weight: 700;
	line-height: 1.4;
	margin-top: 1rem;
	margin-bottom: 0.35rem;
}

.job-single__content ul,
.job-single__content ol {
	margin: 0.35rem 0 0.9rem;
	padding-left: 1rem;
}

.job-single__content li { margin: 0.14rem 0; }

.job-single__apply-wrap { margin-top: 1.9rem; }

.job-single__apply-wrap h2 {
	font-size: clamp(1.65rem, 1vw + 1.05rem, 2.2rem);
	margin-bottom: 1rem;
}

.job-single__apply-wrap .job-manager-applications-applied-notice {
	border: 1px solid rgba(17, 43, 68, 0.12);
	border-radius: 10px;
	background: #fff;
	margin: 0 0 1rem;
	padding: 1rem 1.1rem;
	color: var(--color-navy);
}

.job-single__apply-wrap .application.application--inline .application_button { display: none; }
.job-single__apply-wrap .application.application--inline .application_details { display: block !important; padding: 0; }

.job-single__apply-wrap .job-manager-application-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
	align-items: start;
}

.job-single__apply-wrap .job-manager-application-form fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.job-single__apply-wrap .job-manager-application-form fieldset label {
	display: none;
}

.job-single__apply-wrap .job-manager-application-form .field { margin: 0; }

.job-single__apply-wrap .job-manager-application-form input[type='text'],
.job-single__apply-wrap .job-manager-application-form input[type='email'],
.job-single__apply-wrap .job-manager-application-form input[type='tel'],
.job-single__apply-wrap .job-manager-application-form input[type='url'],
.job-single__apply-wrap .job-manager-application-form input[type='number'],
.job-single__apply-wrap .job-manager-application-form select,
.job-single__apply-wrap .job-manager-application-form textarea,
.job-single__apply-wrap .job-manager-application-form .select2-selection,
.job-single__apply-wrap .job-manager-application-form .chosen-single,
.job-single__apply-wrap .job-manager-application-form input[type='file'] {
	width: 100%;
	min-height: 3rem;
	padding: 0.9rem 1rem;
	border: 1px solid transparent;
	border-radius: 0.45rem;
	background: #ececec;
	color: var(--color-navy);
	font-family: 'Raleway', sans-serif;
	font-size: 1rem;
	line-height: 1.2;
	box-shadow: none;
}

.job-single__apply-wrap .job-manager-application-form textarea {
	height: 90px;
	min-height: 90px;
	resize: vertical;
}

.job-single__apply-wrap .job-manager-application-form input::placeholder,
.job-single__apply-wrap .job-manager-application-form textarea::placeholder,
.job-single__apply-wrap .job-manager-application-form select,
.job-single__apply-wrap .job-manager-application-form .select2-selection,
.job-single__apply-wrap .job-manager-application-form .chosen-single {
	color: rgba(17, 43, 68, 0.72);
}

.job-single__apply-wrap .job-manager-application-form fieldset[class*='message'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='cover'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='content'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='attachment'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='resume'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='cv'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='upload'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='consent'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='agree'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='privacy'] {
	grid-column: 1 / -1;
}

.job-single__apply-wrap .job-manager-application-form p { margin: 0; }
.job-single__apply-wrap .job-manager-application-form > p:last-child { grid-column: 1 / -1; margin-top: 0.2rem; }

.job-single__apply-wrap .job-manager-application-form input[type='submit'],
.job-single__apply-wrap .job-manager-application-form .wp_job_manager_send_application_button {
	width: auto;
	min-width: 0;
	justify-self: start;
	padding: 0.8rem 1.35rem;
	border-radius: 0.4rem;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.1;
}

.job-single__apply-wrap .job-manager-application-form .job-manager-info,
.job-single__apply-wrap .job-manager-application-form .job-manager-applications-error {
	grid-column: 1 / -1;
	margin: 0 0 0.25rem;
	padding: 0.9rem 1rem;
	border-radius: 10px;
	background: #fff;
	border: 1px solid rgba(17, 43, 68, 0.12);
}

/* Consent checkboxes in job form */
.job-single__apply-wrap .job-manager-application-form fieldset[class*='consent'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='agree'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='privacy'] {
	font-size: 0.92rem;
	color: var(--color-navy);
}

.job-single__apply-wrap .job-manager-application-form fieldset[class*='consent'] label,
.job-single__apply-wrap .job-manager-application-form fieldset[class*='agree'] label,
.job-single__apply-wrap .job-manager-application-form fieldset[class*='privacy'] label {
	display: grid;
	grid-template-columns: 1rem minmax(0, 1fr);
	column-gap: 0.7rem;
	align-items: start;
	max-width: 18rem;
	cursor: pointer;
}

.job-single__apply-wrap .job-manager-application-form fieldset[class*='consent'] input[type='checkbox'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='agree'] input[type='checkbox'],
.job-single__apply-wrap .job-manager-application-form fieldset[class*='privacy'] input[type='checkbox'] {
	appearance: none;
	-webkit-appearance: none;
	display: block;
	flex: 0 0 1rem;
	width: 1rem;
	height: 1rem;
	margin: 0.08rem 0 0;
	padding: 0;
	border: 1px solid #c8ced6;
	border-radius: 0.2rem;
	background: #f1f2f4;
	position: relative;
	cursor: pointer;
}

.job-single__apply-wrap .job-manager-application-form fieldset[class*='consent'] input[type='checkbox']:checked,
.job-single__apply-wrap .job-manager-application-form fieldset[class*='agree'] input[type='checkbox']:checked,
.job-single__apply-wrap .job-manager-application-form fieldset[class*='privacy'] input[type='checkbox']:checked {
	background: var(--color-lime);
	border-color: var(--color-lime);
}

.job-single__apply-wrap .job-manager-application-form fieldset[class*='consent'] input[type='checkbox']:checked::after,
.job-single__apply-wrap .job-manager-application-form fieldset[class*='agree'] input[type='checkbox']:checked::after,
.job-single__apply-wrap .job-manager-application-form fieldset[class*='privacy'] input[type='checkbox']:checked::after {
	content: "";
	position: absolute;
	left: 0.3rem;
	top: 0.08rem;
	width: 0.22rem;
	height: 0.5rem;
	border: solid var(--color-navy);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.job-manager-form fieldset div.field:not(.full-line-checkbox-field) {
	width: 100%;
}

@media (max-width: 700px) {
	.job-single__apply-wrap .job-manager-application-form {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 1000px) {
	.job-single__apply { position: static; }
}


/* ============================================================
   INDUSTRY ARCHIVE — large-screen overrides
   ============================================================ */
@media (min-width: 1200px) and (max-width: 1920px) {
	.post-type-archive-industry .hero__inner--archive-industry {
		grid-template-columns: minmax(0, clamp(24rem, 32vw, 48rem));
	}

	.post-type-archive-industry .section--industry-archive-intro {
		padding-top: clamp(3.25rem, 4.4vw, 4.75rem);
		padding-bottom: clamp(2.3rem, 3.4vw, 3.5rem);
	}

	.post-type-archive-industry .industry-archive__intro {
		grid-template-columns: minmax(0, clamp(31rem, 43vw, 46rem)) minmax(clamp(23rem, 29vw, 26rem), 1fr);
		gap: clamp(2rem, 3vw, 4rem);
		align-items: start;
	}

	.post-type-archive-industry .industry-archive__intro-copy .rich-text {
		font-size: clamp(1rem, 0.45vw + 0.72rem, 1.25rem);
		line-height: 1.5;
		margin-bottom: clamp(1.4rem, 2vw, 1.75rem);
	}

	.post-type-archive-industry .section--industry-archive-grid {
		padding-top: clamp(1.8rem, 2.6vw, 2.8rem);
	}
}
