/* ==========================================================================
   Veridian — base component & layout styles (scaffold).
   Uses tokens from tokens.css exclusively: no raw hex values in this file.
   ========================================================================== */

/* --- Reset-ish --- */
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: var(--leading-body);
	color: var(--color-text);
	background: var(--color-surface);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--color-primary); }
h1, h2, h3, h4 { line-height: var(--leading-tight); color: var(--color-primary); }

.container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(0 0 0 0);
}
.skip-link:focus {
	position: fixed; top: 8px; left: 8px;
	width: auto; height: auto; clip: auto;
	background: var(--color-surface); color: var(--color-primary);
	padding: var(--space-2) var(--space-4); z-index: 999;
}

/* --- Buttons --- */
.btn {
	display: inline-block;
	padding: 0.8em 1.6em;
	border-radius: var(--radius-pill);
	font-weight: 600;
	font-size: var(--text-sm);
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}
.btn--olive { background: var(--color-accent); color: var(--color-text-invert); }
.btn--olive:hover { background: var(--color-accent-hover); }
.btn--green { background: var(--color-primary); color: var(--color-text-invert); }
.btn--green:hover { background: var(--color-primary-hover); }
.btn--ghost {
	border: 1.5px solid currentColor;
	color: var(--color-text-invert);
}
.btn--ghost:hover { background: rgba(255, 255, 255, 0.12); }

/* --- Top strip --- */
.top-strip {
	background: var(--v-green-900);
	color: var(--color-text-invert);
	font-size: var(--text-xs);
}
.top-strip__inner {
	display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6);
	justify-content: space-between;
	padding-block: var(--space-2);
}
.top-strip a { color: var(--color-text-invert); text-decoration: none; }
.top-strip__contact { display: flex; gap: var(--space-6); }

/* --- Header --- */
.site-header {
	background: var(--color-primary);
	position: sticky; top: 0; z-index: 50;
}
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: var(--space-6);
	padding-block: var(--space-3);
}
.site-header .brand img { width: 132px; height: auto; display: block; }
.site-nav { display: flex; align-items: center; gap: var(--space-6); }
.nav-menu {
	display: flex; gap: var(--space-6);
	list-style: none; margin: 0; padding: 0;
}
.nav-menu a {
	color: var(--color-text-invert);
	text-decoration: none;
	font-size: var(--text-sm);
	font-weight: 500;
}
.nav-menu a:hover { color: var(--v-olive-300); }

.nav-toggle { display: none; }

@media (max-width: 860px) {
	.nav-toggle {
		display: inline-flex; flex-direction: column; gap: 5px;
		background: none; border: 0; padding: var(--space-2); cursor: pointer;
	}
	.nav-toggle__bar { width: 24px; height: 2px; background: var(--color-text-invert); }
	.site-nav {
		display: none;
		position: absolute; inset-inline: 0; top: 100%;
		background: var(--color-primary);
		flex-direction: column; align-items: flex-start;
		padding: var(--space-4) var(--container-pad) var(--space-6);
	}
	.site-nav.is-open { display: flex; }
	.nav-menu { flex-direction: column; gap: var(--space-3); }
}

/* --- Hero --- */
.hero {
	background: var(--color-primary);
	color: var(--color-text-invert);
	text-align: center;
	padding-block: var(--space-24) var(--space-16);
}
.hero__kicker {
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
	color: var(--v-olive-300);
	margin: 0 0 var(--space-4);
}
.hero__title {
	font-family: var(--font-display);
	font-size: clamp(var(--text-3xl), 6vw, var(--text-4xl));
	color: var(--color-text-invert);
	margin: 0 0 var(--space-6);
}
.hero__title span { color: var(--v-olive-300); }
.hero__lead { max-width: 44rem; margin: 0 auto var(--space-8); }
.hero__actions { display: flex; gap: var(--space-4); justify-content: center; flex-wrap: wrap; }

/* --- Page hero (inner pages) --- */
.page-hero {
	background: var(--color-primary);
	color: var(--color-text-invert);
	padding-block: var(--space-12);
	margin-bottom: var(--space-12);
}
.page-hero__kicker {
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
	color: var(--v-olive-300);
	margin: 0 0 var(--space-2);
}
.page-hero__title {
	font-family: var(--font-display);
	color: var(--color-text-invert);
	font-size: clamp(var(--text-2xl), 4.5vw, var(--text-3xl));
	margin: 0;
}

/* --- Sections / services grid --- */
.section-title {
	font-family: var(--font-display);
	font-size: var(--text-2xl);
	text-align: center;
	margin-block: 0 var(--space-8);
}
.services { padding-block: var(--space-16); }
.services__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: var(--space-4);
}
.service-card {
	display: flex; align-items: center; justify-content: space-between;
	gap: var(--space-3);
	padding: var(--space-4) var(--space-6);
	border: 1px solid var(--v-olive-300);
	border-radius: var(--radius-md);
	text-decoration: none;
	color: var(--color-primary);
	font-weight: 600;
	background: var(--color-surface);
	box-shadow: var(--shadow-card);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.service-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-card-hover); }
.service-card__more { color: var(--color-accent); }

/* --- Why us / partner --- */
.why-us { background: var(--color-surface-alt); padding-block: var(--space-16); }
.why-us__inner {
	display: grid; gap: var(--space-6);
	grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
}
.why-us__panel {
	background: var(--color-primary); color: var(--color-text-invert);
	border-radius: var(--radius-md); padding: var(--space-8);
}
.why-us__panel h2 { color: var(--v-olive-300); margin-top: 0; }
.why-us__panel ul { margin: 0; padding-left: 1.2em; }
.why-us__partner {
	background: var(--color-surface);
	border: 1px solid var(--v-olive-300);
	border-radius: var(--radius-md); padding: var(--space-8);
}
.why-us__partner h2 { margin-top: 0; }

/* --- Service page layout --- */
.service-layout {
	display: grid; gap: var(--space-8);
	grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
	margin-bottom: var(--space-16);
}
@media (max-width: 860px) { .service-layout { grid-template-columns: 1fr; } }
.contact-card {
	position: sticky; top: 6rem;
	background: var(--color-surface-alt);
	border-radius: var(--radius-md);
	padding: var(--space-6);
	display: grid; gap: var(--space-3);
	justify-items: start;
}
.contact-card h2 { margin: 0; font-size: var(--text-lg); }
.contact-card__email { word-break: break-all; }

/* --- Entry content --- */
.entry { max-width: 46rem; margin-bottom: var(--space-16); }
.entry--page, .entry--post { margin-inline: auto; }
.entry__hero-image { margin: 0 0 var(--space-8); }
.entry__hero-image img { border-radius: var(--radius-md); }

/* --- Archive cards --- */
.archive-list { display: grid; gap: var(--space-8); margin-bottom: var(--space-16); }
.archive-card {
	display: grid; gap: var(--space-4);
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	align-items: start;
}
@media (max-width: 640px) { .archive-card { grid-template-columns: 1fr; } }
.archive-card__media img { border-radius: var(--radius-md); }
.archive-card__title { margin: 0; }
.archive-card__title a { text-decoration: none; }
.archive-card__meta { color: var(--color-text-soft); font-size: var(--text-sm); }

/* --- Footer CTA band --- */
.footer-cta {
	background: var(--color-accent);
	color: var(--color-text-invert);
	text-align: center;
	padding-block: var(--space-12);
}
.footer-cta__title {
	font-family: var(--font-display);
	color: var(--color-text-invert);
	font-size: var(--text-2xl);
	margin: 0 0 var(--space-2);
}
.footer-cta__actions {
	display: flex; gap: var(--space-4); justify-content: center; flex-wrap: wrap;
	margin-top: var(--space-6);
}
.footer-cta .btn--olive { background: var(--color-primary); }
.footer-cta .btn--olive:hover { background: var(--v-green-900); }

/* --- Footer --- */
.site-footer { background: var(--v-green-900); color: var(--color-text-invert); }
.site-footer__grid {
	display: grid; gap: var(--space-8);
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	padding-block: var(--space-16);
}
.site-footer h3 {
	color: var(--v-olive-300);
	font-size: var(--text-sm);
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
}
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.site-footer a { color: var(--color-text-invert); text-decoration: none; }
.site-footer a:hover { color: var(--v-olive-300); }
.site-footer__legal {
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: var(--text-xs);
}
.site-footer__legal-inner {
	display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6);
	justify-content: space-between;
	padding-block: var(--space-4);
}
.legal-menu { display: flex; flex-wrap: wrap; gap: var(--space-4); list-style: none; margin: 0; padding: 0; }

/* ==========================================================================
   Section head (kicker + title + optional sub/link)
   ========================================================================== */
.section-head { margin-bottom: var(--space-8); position: relative; }
.section-head--center { text-align: center; max-width: 44rem; margin-inline: auto; }
.section-head__kicker {
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
	color: var(--v-olive-600);
	font-weight: 600;
	margin: 0 0 var(--space-2);
}
.section-head__title {
	font-family: var(--font-display);
	font-size: clamp(var(--text-xl), 4vw, var(--text-2xl));
	margin: 0 0 var(--space-3);
}
.section-head__sub { color: var(--color-text-soft); margin: 0; }
.section-head__link { font-weight: 600; text-decoration: none; white-space: nowrap; }
@media (min-width: 700px) {
	.section-head:not(.section-head--center) { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: var(--space-4); }
	.section-head:not(.section-head--center) .section-head__link { grid-column: 2; grid-row: 1 / span 2; }
	.section-head:not(.section-head--center) .section-head__kicker,
	.section-head:not(.section-head--center) .section-head__title { grid-column: 1; }
}

/* ==========================================================================
   Hero (split variant)
   ========================================================================== */
.hero--split { text-align: left; padding-block: var(--space-12); }
.hero--split .hero__inner { display: grid; gap: var(--space-8); align-items: center; }
.hero--split .hero__lead { margin-inline: 0; }
.hero--split .hero__actions { justify-content: flex-start; }
.hero__phone { margin-top: var(--space-6); font-size: var(--text-sm); }
.hero__phone a {
	color: var(--v-olive-300);
	font-weight: 700;
	font-size: var(--text-lg);
	text-decoration: none;
	margin-left: var(--space-2);
}
.hero__media { position: relative; max-width: 34rem; }
.hero__media img {
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card-hover);
	display: block;
}
.hero__badge {
	position: absolute; left: var(--space-4); bottom: var(--space-4);
	margin: 0;
	background: var(--color-surface);
	color: var(--color-primary);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	font-size: var(--text-sm);
	line-height: 1.3;
	box-shadow: var(--shadow-card);
	display: grid;
}
.hero__badge strong { font-size: var(--text-lg); font-family: var(--font-display); }
@media (min-width: 860px) {
	.hero--split .hero__inner { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}
@media (max-width: 859px) {
	.hero__media { margin-inline: auto; }
}

/* ==========================================================================
   Trust strip
   ========================================================================== */
.trust-strip { background: var(--v-green-900); color: var(--color-text-invert); }
.trust-strip__inner {
	display: flex; flex-wrap: wrap;
	gap: var(--space-2) var(--space-8);
	justify-content: center;
	padding-block: var(--space-4);
}
.trust-strip p { margin: 0; font-size: var(--text-sm); }
.trust-strip span { color: var(--v-olive-300); font-weight: 700; margin-right: var(--space-1); }

/* ==========================================================================
   Service cards (richer: icon + name + description)
   ========================================================================== */
.service-card { align-items: flex-start; }
.service-card__icon {
	flex: 0 0 auto;
	display: grid; place-items: center;
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--v-green-100);
	color: var(--color-primary);
}
.service-card__icon .icon { width: 24px; height: 24px; }
.service-card__body { display: grid; gap: var(--space-1); flex: 1 1 auto; }
.service-card__desc { font-weight: 400; font-size: var(--text-sm); color: var(--color-text-soft); }
.service-card__more { align-self: center; }
.service-card:hover .service-card__icon { background: var(--color-accent); color: var(--color-text-invert); }

/* ==========================================================================
   About band (media + copy)
   ========================================================================== */
.about-band { padding-block: var(--space-16); background: var(--color-surface-alt); }
.about-band__inner { display: grid; gap: var(--space-8); align-items: center; }
.about-band__media img { border-radius: var(--radius-md); box-shadow: var(--shadow-card); display: block; }
.about-band__copy > p { color: var(--color-text-soft); }
.about-band__values { list-style: none; margin: var(--space-6) 0; padding: 0; display: grid; gap: var(--space-2); }
.about-band__values strong { color: var(--color-primary); }
@media (min-width: 860px) {
	.about-band__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}

/* ==========================================================================
   Steps (how it works)
   ========================================================================== */
.steps { padding-block: var(--space-16); }
.steps--tinted { background: var(--v-green-100); }
.steps__grid {
	display: grid; gap: var(--space-6);
	list-style: none; margin: 0; padding: 0;
	counter-reset: step;
}
.step {
	background: var(--color-surface);
	border: 1px solid var(--v-olive-300);
	border-radius: var(--radius-md);
	padding: var(--space-6);
	box-shadow: var(--shadow-card);
}
.step__num {
	display: grid; place-items: center;
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--color-accent);
	color: var(--color-text-invert);
	font-weight: 700;
	font-size: var(--text-lg);
	font-family: var(--font-display);
	margin-bottom: var(--space-3);
}
.step__title { margin: 0 0 var(--space-2); font-size: var(--text-lg); }
.step p { margin: 0; color: var(--color-text-soft); font-size: var(--text-sm); }
@media (min-width: 700px) {
	.steps__grid { grid-template-columns: repeat(3, 1fr); }
}
.steps__grid--inline { margin-block: var(--space-6) var(--space-8); }

/* ==========================================================================
   Why-us extras
   ========================================================================== */
.why-us__panel ul { display: grid; gap: var(--space-2); }
.why-us__phone { margin: var(--space-6) 0 0; }
.why-us__phone a {
	color: var(--v-olive-300);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 600;
	text-decoration: none;
}

/* ==========================================================================
   FAQ accordion
   ========================================================================== */
.faq-band { padding-block: var(--space-16); background: var(--color-surface-alt); }
.faq-band__inner { display: grid; gap: var(--space-8); align-items: start; }
.faq-band__intro p { color: var(--color-text-soft); }
.faq-band__intro .btn { margin-top: var(--space-2); }
@media (min-width: 860px) {
	.faq-band__inner { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
}
.faq-list { display: grid; gap: var(--space-3); }
.faq-item {
	background: var(--color-surface);
	border: 1px solid var(--v-olive-300);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	overflow: hidden;
}
.faq-item__q {
	display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
	padding: var(--space-4) var(--space-6);
	font-weight: 600;
	color: var(--color-primary);
	cursor: pointer;
	list-style: none;
}
.faq-item__q::-webkit-details-marker { display: none; }
.faq-item__marker {
	flex: 0 0 auto;
	width: 12px; height: 12px;
	border-right: 2px solid var(--color-accent);
	border-bottom: 2px solid var(--color-accent);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	margin-top: -4px;
}
.faq-item[open] .faq-item__marker { transform: rotate(225deg); margin-top: 4px; }
.faq-item__a { padding: 0 var(--space-6) var(--space-4); }
.faq-item__a p { margin: 0; color: var(--color-text-soft); }
.faq-page { max-width: 52rem; margin-bottom: var(--space-16); }
.faq-page h2 { font-family: var(--font-display); margin-top: var(--space-12); }

/* ==========================================================================
   News strip + cards
   ========================================================================== */
.news-strip { padding-block: var(--space-16); }
.news-strip__grid { display: grid; gap: var(--space-6); }
@media (min-width: 700px) {
	.news-strip__grid { grid-template-columns: repeat(3, 1fr); }
}
.news-card {
	background: var(--color-surface);
	border: 1px solid var(--v-olive-300);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	display: flex; flex-direction: column;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.news-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-card-hover); }
.news-card__media img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.news-card__body { padding: var(--space-6); display: grid; gap: var(--space-2); align-content: start; }
.news-card__meta { margin: 0; font-size: var(--text-xs); color: var(--color-text-soft); text-transform: uppercase; letter-spacing: var(--tracking-caps); }
.news-card__title { margin: 0; font-size: var(--text-lg); }
.news-card__title a { text-decoration: none; }
.news-card__title a:hover { color: var(--color-accent-hover); }
.news-card__excerpt { margin: 0; font-size: var(--text-sm); color: var(--color-text-soft); }
.news-card__more { font-weight: 600; font-size: var(--text-sm); text-decoration: none; }

/* ==========================================================================
   Page hero extras
   ========================================================================== */
.page-hero__kicker a { color: inherit; text-decoration: none; }
.page-hero__kicker a:hover { text-decoration: underline; }
.page-hero__lead { max-width: 44rem; margin: var(--space-4) 0 0; color: var(--v-cream); }
.page-hero--tall { padding-block: var(--space-16); }
.page-hero--tall .hero__actions { margin-top: var(--space-6); justify-content: flex-start; }

/* ==========================================================================
   Service page content
   ========================================================================== */
.service-content { min-width: 0; }
.service-content__image { margin: 0 0 var(--space-8); }
.service-content__image img { border-radius: var(--radius-md); display: block; width: 100%; aspect-ratio: 12 / 7; object-fit: cover; }
.service-content__intro { font-size: var(--text-lg); color: var(--color-text-soft); }
.service-content h2 { font-family: var(--font-display); font-size: var(--text-xl); margin-top: var(--space-12); }
.help-grid { display: grid; gap: var(--space-4); margin-block: var(--space-6); }
@media (min-width: 700px) {
	.help-grid { grid-template-columns: 1fr 1fr; }
}
.help-card {
	background: var(--color-surface-alt);
	border-radius: var(--radius-md);
	padding: var(--space-6);
	border-left: 4px solid var(--color-accent);
}
.help-card__title { margin: 0 0 var(--space-2); font-size: var(--text-base); }
.help-card p { margin: 0; font-size: var(--text-sm); color: var(--color-text-soft); }
.check-list { list-style: none; margin: var(--space-4) 0 var(--space-8); padding: 0; display: grid; gap: var(--space-3); }
.check-list li { padding-left: var(--space-8); position: relative; }
.check-list li::before {
	content: "";
	position: absolute; left: 0; top: 0.28em;
	width: 14px; height: 8px;
	border-left: 3px solid var(--color-accent);
	border-bottom: 3px solid var(--color-accent);
	transform: rotate(-45deg);
}
.related-services { margin-top: var(--space-12); }

/* ==========================================================================
   Chips
   ========================================================================== */
.chip-list { list-style: none; margin: var(--space-4) 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.chip-list--center { justify-content: center; }
.chip {
	display: inline-block;
	padding: 0.55em 1.2em;
	border-radius: var(--radius-pill);
	border: 1px solid var(--v-olive-500);
	color: var(--color-primary);
	background: var(--color-surface);
	text-decoration: none;
	font-size: var(--text-sm);
	font-weight: 500;
}
a.chip:hover { background: var(--color-accent); color: var(--color-text-invert); }
.chip--static { cursor: default; }

/* ==========================================================================
   Services hub
   ========================================================================== */
.hub-grid { display: grid; gap: var(--space-6); margin-bottom: var(--space-16); }
@media (min-width: 700px) { .hub-grid { grid-template-columns: 1fr 1fr; } }
.hub-card {
	display: flex; flex-direction: column;
	background: var(--color-surface);
	border: 1px solid var(--v-olive-300);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	text-decoration: none;
	color: var(--color-text);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.hub-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-card-hover); }
.hub-card__media img { display: block; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
.hub-card__body { padding: var(--space-6); display: grid; gap: var(--space-2); position: relative; }
.hub-card__icon {
	position: absolute; top: calc(-1 * var(--space-6)); right: var(--space-6);
	display: grid; place-items: center;
	width: 52px; height: 52px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-text-invert);
	box-shadow: var(--shadow-card);
}
.hub-card__icon .icon { width: 26px; height: 26px; }
.hub-card__name { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-primary); font-weight: 600; }
.hub-card__desc { color: var(--color-text-soft); font-size: var(--text-sm); }
.hub-card__more { color: var(--v-olive-600); font-weight: 600; font-size: var(--text-sm); }

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact-layout { display: grid; gap: var(--space-8); margin-bottom: var(--space-16); }
@media (min-width: 860px) {
	.contact-layout { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}
.contact-layout__form h2 { font-family: var(--font-display); margin-top: 0; }
.contact-layout__info { display: grid; gap: var(--space-4); align-content: start; }
.info-card {
	background: var(--color-surface-alt);
	border-radius: var(--radius-md);
	padding: var(--space-6);
}
.info-card h3 {
	margin: 0 0 var(--space-2);
	font-size: var(--text-xs);
	letter-spacing: var(--tracking-caps);
	text-transform: uppercase;
	color: var(--v-olive-600);
}
.info-card p { margin: 0 0 var(--space-2); }
.info-card__big { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; text-decoration: none; }
.info-card__note { color: var(--color-text-soft); font-size: var(--text-sm); }

/* ==========================================================================
   Benefits (partner / about values)
   ========================================================================== */
.benefits { padding-block: var(--space-16); }
.benefits__grid { display: grid; gap: var(--space-4); }
@media (min-width: 700px) { .benefits__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .benefits__grid { grid-template-columns: repeat(4, 1fr); } }
.benefit {
	background: var(--color-surface);
	border: 1px solid var(--v-olive-300);
	border-radius: var(--radius-md);
	padding: var(--space-6);
	box-shadow: var(--shadow-card);
}
.benefit h3 { margin: 0 0 var(--space-2); font-size: var(--text-base); }
.benefit p { margin: 0; font-size: var(--text-sm); color: var(--color-text-soft); }
.who-partners { padding-block: 0 var(--space-16); }

/* ==========================================================================
   Partner form band
   ========================================================================== */
.partner-form-band { background: var(--color-primary); color: var(--color-text-invert); padding-block: var(--space-16); }
.partner-form-band__inner { display: grid; gap: var(--space-8); align-items: start; }
@media (min-width: 860px) {
	.partner-form-band__inner { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
}
.partner-form-band .section-head__kicker { color: var(--v-olive-300); }
.partner-form-band .section-head__title { color: var(--color-text-invert); }
.partner-form-band__intro p { color: var(--v-cream); }
.partner-form-band__phone {
	color: var(--v-olive-300);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 600;
	text-decoration: none;
}
.partner-form-band__form {
	background: var(--color-surface);
	color: var(--color-text);
	border-radius: var(--radius-md);
	padding: var(--space-8);
	box-shadow: var(--shadow-card-hover);
}

/* ==========================================================================
   Forms
   ========================================================================== */
.enquiry-form { display: grid; gap: var(--space-4); }
.form-row { display: grid; gap: var(--space-4); }
@media (min-width: 700px) { .form-row { grid-template-columns: 1fr 1fr; } }
.form-field { margin: 0; display: grid; gap: var(--space-1); }
.form-field label { font-weight: 600; font-size: var(--text-sm); color: var(--color-primary); }
.form-field .req { color: var(--color-accent-hover); }
.form-field input:not([type="checkbox"]),
.form-field select,
.form-field textarea {
	width: 100%;
	font: inherit;
	color: var(--color-text);
	background: var(--color-surface);
	border: 1px solid var(--v-olive-500);
	border-radius: var(--radius-sm);
	padding: 0.65em 0.9em;
}
.form-field input:focus-visible,
.form-field select:focus-visible,
.form-field textarea:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 1px;
}
.form-field textarea { resize: vertical; }
.form-field--consent label { display: flex; gap: var(--space-3); align-items: flex-start; font-weight: 400; color: var(--color-text-soft); font-size: var(--text-sm); }
.form-field--consent input { margin-top: 0.3em; }
.form-submit { margin: 0; display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
.form-submit .btn { border: 0; cursor: pointer; font-family: inherit; }
.form-privacy { font-size: var(--text-xs); color: var(--color-text-soft); letter-spacing: var(--tracking-caps); text-transform: uppercase; }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; margin: 0; }
.form-notice { border-radius: var(--radius-sm); padding: var(--space-4); font-size: var(--text-sm); }
.form-notice--ok { background: var(--v-green-100); border-left: 4px solid var(--color-primary); }
.form-notice--error { background: var(--v-cream); border-left: 4px solid var(--color-accent-hover); }

/* Mini form in the service side-card */
.enquiry-form--mini .form-privacy { display: none; }
.contact-card__rule { width: 100%; border: 0; border-top: 1px solid var(--v-olive-300); margin: var(--space-2) 0; }
.contact-card__form-title { margin: 0; font-size: var(--text-base); }
.contact-card { max-height: none; }
@media (max-width: 859px) { .contact-card { position: static; } }

/* ==========================================================================
   MD intro quote (about)
   ========================================================================== */
.md-intro { padding-block: var(--space-16); background: var(--color-primary); }
.md-intro__quote { margin: 0 auto; max-width: 46rem; text-align: center; }
.md-intro__quote p {
	font-family: var(--font-display);
	font-size: clamp(var(--text-lg), 3vw, var(--text-xl));
	color: var(--color-text-invert);
	margin: 0 0 var(--space-6);
}
.md-intro__quote footer { display: grid; gap: var(--space-1); }
.md-intro__quote strong { color: var(--v-olive-300); font-size: var(--text-base); }
.md-intro__quote span { color: var(--v-cream); font-size: var(--text-xs); letter-spacing: var(--tracking-caps); text-transform: uppercase; }

/* ==========================================================================
   Entry typography + pagination
   ========================================================================== */
.entry h2 { font-family: var(--font-display); }
.entry a { color: var(--color-accent-hover); }
.pagination-wrap { margin-bottom: var(--space-16); }
.pagination-wrap .nav-links { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.pagination-wrap .page-numbers {
	display: inline-block;
	padding: 0.4em 0.9em;
	border: 1px solid var(--v-olive-500);
	border-radius: var(--radius-sm);
	text-decoration: none;
}
.pagination-wrap .page-numbers.current { background: var(--color-primary); color: var(--color-text-invert); border-color: var(--color-primary); }

/* ==========================================================================
   Small-screen safety net
   ========================================================================== */
@media (max-width: 480px) {
	.hero--split { padding-block: var(--space-8); }
	.btn { width: 100%; text-align: center; }
	.hero__actions .btn, .footer-cta__actions .btn { width: auto; flex: 1 1 auto; }
	.top-strip__inner { justify-content: center; text-align: center; }
}
