/* ==========================================================================
   AquilaEx — main stylesheet
   Tokens are derived from the logo (black field, blue gradient eagle-A).
   Display: Barlow Semi Condensed (DIN 1451 lineage, German road signage;
   condensed width keeps German compounds on one line).
   Body: Figtree (open, round; contrasts with the condensed display face).
   ========================================================================== */

@font-face { font-family: "Aqx Display"; src: url("../fonts/BarlowSemiCondensed-Medium.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Aqx Display"; src: url("../fonts/BarlowSemiCondensed-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Aqx Text"; src: url("../fonts/Figtree-var.woff2") format("woff2"); font-weight: 300 900; font-style: normal; font-display: swap; }

:root {
	/* Colour: one cool temperature throughout */
	--black: #000;
	--ink: #05090f;          /* dark surfaces: the logo's field */
	--ink-2: #0c131c;        /* raised dark surface */
	--ink-line: #1e2a36;     /* rules on dark */
	--blue: #0068c4;         /* the one action colour: 5.6:1 on white */
	--blue-hover: #004a9e;   /* deep stop of the logo gradient */
	--blue-mid: #0090e4;
	--cyan: #00b4fc;         /* on dark only: 8.5:1 on ink, 2.3:1 on white */
	--tint: #e6f3fc;
	--paper: #f3f5f7;
	--white: #fff;
	--text: #0d141c;
	--muted: #4f5d6b;        /* 6.1:1 on paper */
	--line: #d3dae2;         /* decorative rules */
	--field-line: #7a8896;   /* form borders: 3.5:1 on white */
	--on-dark: rgba(255, 255, 255, .92);
	--on-dark-muted: rgba(255, 255, 255, .7);
	--danger: #b3261e;
	--danger-bg: #fdecea;
	--ok: #1d6b43;
	--ok-bg: #e5f3eb;

	/* Type: 1.25 ratio from a 17px body */
	--font-display: "Aqx Display", "Barlow Semi Condensed", "Arial Narrow", sans-serif;
	--font-text: "Aqx Text", "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--t-1: .85rem;
	--t0: 1.0625rem;
	--t1: 1.328rem;
	--t2: 1.66rem;
	--t3: 2.075rem;
	--t4: 2.594rem;
	--t5: 3.242rem;
	--t6: 4.053rem;

	/* Space: 4px base */
	--s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem; --s5: 1.5rem;
	--s6: 2rem; --s7: 3rem; --s8: 4rem; --s9: 6rem; --s10: 8rem;

	/* Radius: square-shouldered, like signage. panel 8 − gap 4 → controls 4 */
	--r-s: 4px;
	--r-m: 8px;

	/* One light source, straight above */
	--shadow-1: 0 1px 2px rgba(5, 9, 15, .08);
	--shadow-2: 0 18px 40px -18px rgba(5, 9, 15, .45), 0 2px 6px rgba(5, 9, 15, .08);

	/* Stacking */
	--z-raise: 1;
	--z-header: 10;
	--z-dropdown: 20;
	--z-actionbar: 30;
	--z-skip: 50;

	/* Geometry from the logo: the A stroke rises at ~57° */
	--chamfer: polygon(0 0, 100% 0, 100% 100%, 24% 100%, 0 70%);
	--gutter: clamp(1rem, 4vw, 2.5rem);
	--wrap: 76rem;
	--topbar-h: 2.25rem;
	--masthead-h: 4.5rem;
	--overlap: 5rem;

	--noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .055 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--masthead-h) + var(--s4)); }
body {
	margin: 0;
	background: var(--paper);
	color: var(--text);
	font-family: var(--font-text);
	font-size: var(--t0);
	line-height: 1.6;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; }
img { height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.08; letter-spacing: -.005em; margin: 0 0 var(--s4); text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
p { margin: 0 0 var(--s4); }
a { color: var(--blue); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--blue-hover); }
strong { font-weight: 600; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: 2px; }
.surface-dark :focus-visible { outline-color: var(--cyan); }
main:focus { outline: none; }
address { font-style: normal; }
button { font: inherit; }

.container { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin-inline: auto; padding-inline: max(var(--gutter), env(safe-area-inset-left, 0px)) max(var(--gutter), env(safe-area-inset-right, 0px)); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: fixed; left: var(--s4); top: var(--s4); z-index: var(--z-skip); background: var(--white); color: var(--text); padding: var(--s3) var(--s4); border-radius: var(--r-s); transform: translateY(-200%); }
.skip-link:focus { transform: none; }

.surface-dark {
	background-color: var(--ink);
	background-image: var(--noise);
	color: var(--on-dark);
}
.surface-dark a:not(.btn) { color: var(--white); }
.surface-dark a:not(.btn):hover { color: var(--cyan); }

.icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: -.2em; }

/* --------------------------------------------------------------------------
   Buttons & links
   -------------------------------------------------------------------------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
	min-height: 3rem; padding: 0 var(--s5);
	border: 2px solid transparent; border-radius: var(--r-s);
	font-family: var(--font-text); font-size: var(--t0); font-weight: 600; line-height: 1.2;
	text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.btn .icon { width: 1.1em; height: 1.1em; transition: transform .15s ease; }
.btn:hover .icon { transform: translateX(3px); }
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--blue); color: var(--white); }
.btn--primary:hover { background: var(--blue-hover); color: var(--white); }
.btn--dark { background: var(--ink); color: var(--white); }
.btn--dark:hover { background: var(--ink-2); color: var(--cyan); }
.surface-dark .btn--dark { background: transparent; border-color: rgba(255,255,255,.35); }
.btn--large { min-height: 3.5rem; padding: 0 var(--s6); }
.btn[disabled], .btn.is-busy { opacity: .75; cursor: progress; }
.btn.is-busy .btn__label::before {
	content: ""; display: inline-block; width: .9em; height: .9em; margin-right: var(--s2); vertical-align: -.1em;
	border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
	animation: aqx-spin .7s linear infinite;
}
@keyframes aqx-spin { to { transform: rotate(360deg); } }

.btn-text, .linklike { background: none; border: 0; padding: var(--s2) 0; color: var(--blue); font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: .18em; }
.surface-dark .linklike { color: var(--on-dark-muted); font-weight: 400; }

.link-arrow { display: inline-flex; align-items: center; gap: var(--s2); font-weight: 600; text-decoration: none; }
.link-arrow .icon { transition: transform .15s ease; }
.link-arrow:hover .icon { transform: translateX(3px); }
.surface-dark .link-arrow { color: var(--cyan); }

.call-link { display: inline-flex; align-items: center; gap: var(--s3); text-decoration: none; color: inherit; }
.call-link .icon { width: 2.75rem; height: 2.75rem; padding: .7rem; border: 1px solid currentColor; border-radius: var(--r-s); }
.call-link span { display: flex; flex-direction: column; font-family: var(--font-display); font-size: var(--t2); font-weight: 600; line-height: 1.05; font-variant-numeric: tabular-nums; }
.call-link small { font-family: var(--font-text); font-size: var(--t-1); font-weight: 500; opacity: .75; margin-bottom: 2px; }
.surface-dark .call-link .icon { color: var(--cyan); border-color: rgba(0, 180, 252, .5); }
.surface-dark .call-link:hover .icon { background: rgba(0, 180, 252, .12); }
.call-link--light { color: var(--text); }
.call-link--light .icon { color: var(--blue); }

.eyebrow { display: flex; align-items: center; gap: var(--s3); font-size: var(--t-1); font-weight: 500; letter-spacing: .02em; color: var(--cyan); margin-bottom: var(--s5); }
.eyebrow::before { content: ""; width: 1.75rem; height: 2px; background: var(--cyan); transform: skewY(-33deg); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header { position: sticky; top: calc(-1 * var(--topbar-h)); z-index: var(--z-header); background: var(--ink); color: var(--on-dark); }
.topbar { background: var(--black); font-size: var(--t-1); height: var(--topbar-h); display: flex; align-items: center; color: var(--on-dark-muted); }
.topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); }
.topbar p { margin: 0; display: flex; align-items: center; gap: var(--s2); }
.topbar__links { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--s5); align-items: center; }
.topbar__links a { color: var(--on-dark); text-decoration: none; display: inline-flex; align-items: center; gap: var(--s2); }
.topbar__links a:hover { color: var(--cyan); }
.topbar .icon { width: 1rem; height: 1rem; color: var(--cyan); }
.topbar__lang ul { display: flex; gap: var(--s2); list-style: none; margin: 0; padding: 0; text-transform: uppercase; }
.topbar__lang .current-lang a { color: var(--cyan); }

.masthead { border-bottom: 1px solid var(--ink-line); }
.masthead__inner { display: flex; align-items: center; gap: var(--s6); min-height: var(--masthead-h); }
.masthead__brand { margin-right: auto; display: flex; align-items: center; }
.custom-logo-link img, .custom-logo { max-height: 2.75rem; width: auto; }
.wordmark { font-family: var(--font-display); font-size: var(--t2); font-weight: 600; letter-spacing: .06em; color: var(--white); text-decoration: none; text-transform: uppercase; white-space: nowrap; }
@media (max-width: 47.99em) { .wordmark { font-size: var(--t1); letter-spacing: .04em; } }
.wordmark:hover { color: var(--white); }

.site-nav { display: flex; align-items: center; gap: var(--s6); }
.site-nav .menu { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--s5); }
.site-nav .menu > li { position: relative; }
.site-nav .menu a { display: inline-flex; align-items: center; min-height: var(--masthead-h); color: var(--on-dark); text-decoration: none; font-weight: 500; position: relative; }
.site-nav .menu a:hover { color: var(--cyan); }
.site-nav .menu > li > a[aria-current="page"]::after,
.site-nav .menu > .current-menu-parent > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--cyan); }
.site-nav .menu-item-has-children > a::after { content: ""; width: .45em; height: .45em; margin-left: .5em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-.15em) rotate(45deg); }
.site-nav .sub-menu { list-style: none; margin: 0; padding: var(--s2) 0; position: absolute; top: 100%; left: calc(-1 * var(--s4)); min-width: 16rem; background: var(--ink-2); border: 1px solid var(--ink-line); border-radius: 0 0 var(--r-m) var(--r-m); box-shadow: var(--shadow-2); z-index: var(--z-dropdown); visibility: hidden; opacity: 0; transform: translateY(-4px); transition: opacity .15s ease, transform .15s ease, visibility 0s .15s; }
.site-nav .menu > li:hover > .sub-menu, .site-nav .menu > li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.site-nav .sub-menu a { min-height: 0; display: block; padding: var(--s3) var(--s4); }
.site-nav .sub-menu a[aria-current="page"] { color: var(--cyan); }
.nav-toggle { display: none; }

@media (max-width: 63.99em) {
	:root { --masthead-h: 4rem; }
	.nav-toggle {
		display: inline-flex; align-items: center; gap: var(--s2); min-height: 2.75rem; padding: 0 var(--s3);
		background: none; border: 1px solid var(--ink-line); border-radius: var(--r-s); color: var(--white); cursor: pointer;
	}
	.nav-toggle__close { display: none; }
	.site-header.is-open .nav-toggle__open { display: none; }
	.site-header.is-open .nav-toggle__close { display: inline; }
	.site-nav { flex-direction: column; align-items: stretch; gap: var(--s5); }
	.js .site-nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--ink); border-bottom: 1px solid var(--ink-line); padding: var(--s4) var(--gutter) var(--s6); max-height: calc(100dvh - var(--masthead-h)); overflow-y: auto; display: none; }
	.js .site-header.is-open .site-nav { display: flex; }
	.no-js .masthead__inner { flex-wrap: wrap; }
	.site-nav .menu { flex-direction: column; gap: 0; }
	.site-nav .menu a { min-height: 3rem; width: 100%; border-bottom: 1px solid var(--ink-line); font-size: var(--t1); font-family: var(--font-display); }
	.site-nav .menu > li > a[aria-current="page"]::after, .site-nav .menu > .current-menu-parent > a::after { top: 25%; bottom: 25%; left: auto; right: 0; width: 3px; height: auto; }
	.site-nav .menu-item-has-children > a::after { display: none; }
	.site-nav .sub-menu { position: static; visibility: visible; opacity: 1; transform: none; background: none; border: 0; box-shadow: none; padding: 0 0 var(--s2) var(--s4); min-width: 0; }
	.site-nav .sub-menu a { font-family: var(--font-text); font-size: var(--t0); padding: var(--s2) 0; min-height: 2.75rem; display: flex; align-items: center; border: 0; color: var(--on-dark-muted); }
	.site-nav__cta { width: 100%; }
	.topbar__hours { display: none !important; }
	.topbar__inner { justify-content: flex-end; }
}

/* --------------------------------------------------------------------------
   Media & placeholders
   -------------------------------------------------------------------------- */
a .media, .media { text-decoration: none; }
.media { margin: 0; aspect-ratio: var(--ratio, 4/3); overflow: hidden; background: var(--ink-2); position: relative; }
.media__img { width: 100%; height: 100%; object-fit: cover; }
.media--empty .ph { background-color: var(--ink-2); background-image: repeating-linear-gradient(-57deg, transparent 0 26px, rgba(0, 180, 252, .06) 26px 27px), var(--noise); }
.ph {
	width: 100%; height: 100%;
	display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s2);
	padding: var(--s5);
	background-color: #18222d;
	background-image: repeating-linear-gradient(-57deg, transparent 0 22px, rgba(255, 255, 255, .045) 22px 23px), var(--noise);
	color: rgba(255, 255, 255, .78);
}
.ph__tag { font-size: var(--t-1); font-weight: 600; color: var(--cyan); }
.ph__label { font-size: var(--t-1); line-height: 1.45; max-width: 32ch; }

/* Editor-only gap markers (functional warning colour, never seen by visitors) */
.aqx-missing { display: inline-block; font-family: var(--font-text); font-size: .8rem; font-weight: 500; line-height: 1.5; letter-spacing: 0; color: #7a3a06; background: #fff4e0; border: 1px dashed #b45309; border-radius: 3px; padding: 0 .45em; vertical-align: middle; }
.aqx-missing::before { content: "⚑ "; }
.aqx-missing-note { font-size: var(--t-1); color: #7a3a06; }
.editor-hint { font-size: var(--t-1); color: #7a3a06; margin: var(--s4) auto; }
.editor-hint--block { display: flex; gap: var(--s3); background: #fff4e0; border: 1px dashed #b45309; border-radius: var(--r-m); padding: var(--s4); margin-bottom: var(--s6); }
.editor-hint--block p { margin: 0; }
.faq__item.is-incomplete { opacity: .75; }

/* --------------------------------------------------------------------------
   Home: hero
   -------------------------------------------------------------------------- */


.quick-quote { background: var(--white); color: var(--text); border-radius: var(--r-m); padding: var(--s5); box-shadow: var(--shadow-2); max-width: 44rem; }
.quick-quote__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--s2) var(--s4); margin-bottom: var(--s4); }
.quick-quote__title { font-size: var(--t2); margin: 0; }
.quick-quote__step { font-size: var(--t-1); color: var(--muted); margin: 0; }
.quick-quote__fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); margin-bottom: var(--s4); }
.qq-field label { display: block; font-size: var(--t-1); font-weight: 600; margin-bottom: var(--s1); }
.quick-quote__submit { width: 100%; }

/* --------------------------------------------------------------------------
   Facts
   -------------------------------------------------------------------------- */
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--s5) var(--s6); margin: 0; }
.facts__item { border-left: 2px solid var(--blue); padding-left: var(--s4); }
.facts dt { font-size: var(--t-1); color: var(--muted); margin-bottom: var(--s1); }
.facts dd { margin: 0; font-family: var(--font-display); font-size: var(--t2); font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.facts--stacked { grid-template-columns: 1fr; }

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.section-title { font-size: clamp(var(--t3), 2.4vw + 1rem, var(--t4)); }
.section-head { max-width: 40rem; margin-bottom: var(--s7); }
.section-lead { font-size: var(--t1); line-height: 1.5; color: var(--muted); }

/* Services: one dominant service + divided rows */
.services { padding: var(--s9) 0; }
.services__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s8); align-items: start; }
.services__rest { padding-top: var(--s2); }
.services__all { margin-top: var(--s6); }

.service-rows { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.service-row { position: relative; display: grid; grid-template-columns: 1fr auto; column-gap: var(--s4); padding: var(--s5) 0; border-top: 1px solid var(--line); }
.service-row__title { grid-column: 1; font-size: var(--t2); margin-bottom: var(--s2); }
.service-row__title a { color: inherit; text-decoration: none; }
.service-row__title a::after { content: ""; position: absolute; inset: 0; }
.service-row__text { grid-column: 1; color: var(--muted); margin-bottom: var(--s2); }
.service-row__meta { grid-column: 1; margin: 0; font-weight: 600; font-size: var(--t-1); }
.service-row__arrow { grid-column: 2; grid-row: 1 / span 3; align-self: center; color: var(--blue); transition: transform .15s ease; }
.service-row:hover .service-row__title a { color: var(--blue); }
.service-row:hover .service-row__arrow { transform: translateX(4px); }
.service-row:focus-within { outline: 3px solid var(--blue); outline-offset: 4px; }
.service-row a:focus-visible { outline: none; }

/* Process: a real sequence, so numbers are earned */
.process { background: var(--white); padding: var(--s9) 0; }
.process__steps { list-style: none; margin: var(--s7) 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s6); position: relative; }
.process__steps::before { content: ""; position: absolute; top: 1.25rem; left: 1rem; right: 0; height: 2px; background: linear-gradient(90deg, var(--ink) 0 70%, transparent); }
.process__step { position: relative; padding-right: var(--s4); }
.process__num { display: inline-grid; place-items: center; width: 2.75rem; height: 2.5rem; margin-bottom: var(--s5); background: var(--ink); color: var(--white); font-family: var(--font-display); font-size: var(--t1); font-weight: 600; clip-path: polygon(24% 0, 100% 0, 76% 100%, 0 100%); }
.process__step:first-child .process__num { background: var(--blue); }
.process__title { font-size: var(--t2); }
.process__step p { color: var(--muted); max-width: 26rem; }

/* Split */

/* Quotes */
.quotes { padding: var(--s9) 0; background: var(--white); }
.quotes__grid { display: grid; gap: var(--s6); grid-template-columns: 1fr; }
.quotes__grid--2, .quotes__grid--3 { grid-template-columns: 2fr 1fr; }
.quote { margin: 0; padding-left: var(--s5); border-left: 2px solid var(--line); }
.quote blockquote { margin: 0 0 var(--s4); }
.quote blockquote p { font-size: var(--t1); line-height: 1.45; }
.quote--lead { grid-row: span 2; border-left-color: var(--blue); }
.quote--lead blockquote p { font-family: var(--font-display); font-size: var(--t3); line-height: 1.15; font-weight: 500; }
.quote figcaption { display: flex; flex-direction: column; font-size: var(--t-1); color: var(--muted); }
.quote figcaption strong { color: var(--text); font-size: var(--t0); }

/* Reach + FAQ */
.reach { padding: var(--s9) 0; border-top: 1px solid var(--line); }
.reach__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s8); }
.zones { margin: var(--s6) 0 0; display: grid; gap: var(--s5); }
.zones__item { position: relative; padding-left: var(--s5); }
.zones__item::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--blue-hover); }
.zones__item--2::before { width: 4px; background: var(--blue); }
.zones__item--3::before { width: 2px; background: var(--muted); }
.zones dt { font-family: var(--font-display); font-size: var(--t2); font-weight: 600; line-height: 1.1; }
.zones dd { margin: var(--s1) 0 0; color: var(--muted); }
.reach__faq .link-arrow { margin-top: var(--s5); }

.faq { border-bottom: 1px solid var(--line); margin-top: var(--s5); }
.faq__item { border-top: 1px solid var(--line); }
.faq__q { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: var(--s4); min-height: 3.5rem; padding: var(--s4) 0; cursor: pointer; font-weight: 600; font-size: var(--t0); }
.faq__q::-webkit-details-marker { display: none; }
.faq__q:hover { color: var(--blue); }
.faq__mark { position: relative; width: 1rem; height: 1rem; flex: none; }
.faq__mark::before, .faq__mark::after { content: ""; position: absolute; top: 50%; left: 0; width: 100%; height: 2px; margin-top: -1px; background: currentColor; transition: transform .15s ease; }
.faq__mark::after { transform: rotate(90deg); }
.faq__item[open] .faq__mark::after { transform: rotate(0deg); }
.faq__a { padding: 0 0 var(--s5); max-width: 44rem; color: var(--muted); }
.faq__a p:last-child { margin-bottom: 0; }

/* Closing band */
.band { padding: var(--s9) 0; }
.band__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s7); align-items: end; }
.band__title { font-size: clamp(var(--t3), 3vw + 1rem, var(--t5)); color: var(--white); max-width: 16ch; }
.band__copy p { color: var(--on-dark-muted); max-width: 36rem; margin: 0; }
.band__actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s5); }

/* --------------------------------------------------------------------------
   Footer & action bar
   -------------------------------------------------------------------------- */
.site-footer { padding: var(--s8) 0 var(--s5); border-top: 1px solid var(--ink-line); font-size: var(--t-1); }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--s7); padding-bottom: var(--s7); }
.footer__line { margin: var(--s4) 0 var(--s2); color: var(--on-dark); font-size: var(--t0); }
.footer__tagline { color: var(--cyan); margin: 0; }
.footer__title { font-family: var(--font-text); font-size: var(--t-1); font-weight: 600; color: var(--on-dark-muted); margin-bottom: var(--s4); letter-spacing: .01em; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.site-footer .menu { display: grid; gap: var(--s3); list-style: none; margin: 0; padding: 0; }
.site-footer a { text-decoration: none; }
.footer__contact a { display: inline-flex; gap: var(--s2); align-items: flex-start; }
.footer__contact .icon { color: var(--cyan); width: 1.1rem; height: 1.1rem; margin-top: .15em; }
.footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s4); padding-top: var(--s5); border-top: 1px solid var(--ink-line); color: var(--on-dark-muted); }
.footer__legal p { margin: 0; }
.footer__legal ul { display: flex; flex-wrap: wrap; gap: var(--s5); }
.footer__legal a { color: var(--on-dark-muted); }
.footer__legal .linklike { padding: 0; font-size: inherit; text-decoration: none; }

.action-bar { display: none; }
@media (max-width: 47.99em) {
	body:has(.action-bar) { padding-bottom: calc(3.5rem + env(safe-area-inset-bottom, 0px)); }
	.action-bar {
		display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-actionbar);
		background: var(--ink); border-top: 1px solid var(--ink-line);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}
	.action-bar a { display: flex; align-items: center; justify-content: center; gap: var(--s2); min-height: 3.5rem; font-weight: 600; text-decoration: none; color: var(--white); }
	.action-bar .icon { color: var(--cyan); }
	.action-bar__quote { background: var(--blue); }
	.action-bar a:focus-visible { outline-color: var(--cyan); outline-offset: -3px; }
}

/* --------------------------------------------------------------------------
   Inner pages
   -------------------------------------------------------------------------- */
.crumbs { font-size: var(--t-1); margin-bottom: var(--s4); }
.crumbs a { color: var(--muted); }
.crumbs { display: flex; flex-wrap: wrap; gap: var(--s2); color: var(--muted); }
.crumbs--dark { color: var(--on-dark-muted); }
.crumbs--dark a { color: var(--on-dark-muted); }
.page-body { padding-bottom: var(--s9); }
.vhero--page + .container, .vhero--page + div, .vhero--page + section:not(.surface-dark):not(.offer) { padding-top: var(--s8); }
.vhero--page + .svc-index > .container > .svc-index__item:first-child { border-top: 0; padding-top: 0; }
.page-body__media { margin-bottom: var(--s7); }
.entry-full { min-height: 40vh; }
.empty-state { color: var(--muted); padding: var(--s7) 0; font-size: var(--t1); }

.prose { max-width: 44rem; }
.prose > * + * { margin-top: var(--s4); }
.prose h2 { font-size: var(--t3); margin-top: var(--s7); }
.prose h3 { font-size: var(--t2); margin-top: var(--s6); }
.prose > :first-child { margin-top: 0; }
.prose ul { padding: 0; list-style: none; }
.prose ul li { position: relative; padding-left: var(--s5); margin-bottom: var(--s2); }
.prose ul li::before { content: ""; position: absolute; left: 0; top: .78em; width: .75rem; height: 2px; background: var(--blue); }
.prose ol { padding-left: var(--s5); }
.prose a { font-weight: 500; }
.prose--legal { font-size: var(--t0); }
.prose--legal h2 { font-size: var(--t2); }

/* Service hero */

.spec { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 0 var(--s6); margin: 0; }
.spec__row { padding: var(--s4) 0; border-bottom: 1px solid var(--line); }
.spec dt { font-size: var(--t-1); color: var(--muted); }
.spec dd { margin: 0; font-family: var(--font-display); font-size: var(--t1); font-weight: 600; line-height: 1.2; }



.svc-faq { padding: var(--s8) 0; background: var(--white); }
.svc-faq__inner { max-width: 52rem; }
.svc-more { padding: var(--s8) 0; }

/* Services index: alternating rows */
.svc-index { padding-bottom: var(--s9); }
.svc-index__item { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s8); align-items: center; padding: var(--s8) 0; border-top: 1px solid var(--line); }
.svc-index__item.is-flipped .svc-index__media { order: 2; }
.svc-index__title { font-size: var(--t4); }
.svc-index__title a { color: inherit; text-decoration: none; }
.svc-index__title a:hover { color: var(--blue); }
.mini-spec:empty { display: none; }
.mini-spec { display: flex; flex-wrap: wrap; gap: var(--s4) var(--s6); margin: var(--s5) 0; }
.mini-spec dt { font-size: var(--t-1); color: var(--muted); }
.mini-spec dd { margin: 0; font-weight: 600; }

/* Quote page */
.quote-layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--s8); padding-bottom: var(--s9); align-items: start; }
.quote-layout__form { background: var(--white); border-radius: var(--r-m); padding: var(--s6); box-shadow: var(--shadow-1); border: 1px solid var(--line); }
.aside-block { border-radius: var(--r-m); padding: var(--s6); display: grid; gap: var(--s5); margin-bottom: var(--s6); }
.aside-block__title { font-size: var(--t2); color: var(--white); margin: 0; }
.aside-block__note { display: flex; gap: var(--s2); align-items: center; margin: 0; color: var(--on-dark-muted); font-size: var(--t-1); }
.aside-block__note .icon { color: var(--cyan); }
.aside-plain__title { font-size: var(--t1); }
.aside-steps { padding-left: var(--s5); color: var(--muted); }
.aside-steps li { margin-bottom: var(--s2); }
.aside-plain__small { font-size: var(--t-1); color: var(--muted); }

/* Contact */
.contact-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--s8); padding-bottom: var(--s9); }
.routes { list-style: none; margin: 0 0 var(--s5); padding: 0; border-bottom: 1px solid var(--line); }
.routes__item a { display: grid; grid-template-columns: auto 1fr; column-gap: var(--s4); align-items: center; padding: var(--s5) 0; border-top: 1px solid var(--line); text-decoration: none; color: var(--text); }
.routes__item .icon { grid-row: span 2; width: 2.75rem; height: 2.75rem; padding: .7rem; color: var(--blue); border: 1px solid var(--line); border-radius: var(--r-s); }
.routes__label { font-size: var(--t-1); color: var(--muted); }
.routes__value { font-family: var(--font-display); font-size: var(--t2); font-weight: 600; line-height: 1.1; overflow-wrap: anywhere; }
.routes__item a:hover .routes__value { color: var(--blue); }
.contact-hours { display: flex; gap: var(--s2); align-items: center; color: var(--muted); }
.contact-hours .icon { color: var(--blue); }
.contact-address { margin-top: var(--s7); }
.contact-address address { margin: var(--s5) 0 var(--s3); }
.form-heading { font-size: var(--t3); }
.form-intro { color: var(--muted); }
.contact-layout__form .form-wrap { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m); padding: var(--s6); }
.contact-extra { margin-top: var(--s6); }

/* Careers */
.careers-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--s8); padding-bottom: var(--s8); align-items: start; }
.careers-apply { background: var(--white); padding: var(--s8) 0 var(--s9); border-top: 1px solid var(--line); }
.careers-apply__inner { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--s8); }
.careers-apply__inner p { color: var(--muted); }

/* About */

/* FAQ page */
.faq-layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--s8); padding-bottom: var(--s9); align-items: start; }
.faq-layout .faq { margin-top: 0; }
.faq-layout__aside { position: sticky; top: calc(var(--masthead-h) + var(--s6)); display: grid; gap: var(--s4); justify-items: start; border-left: 2px solid var(--blue); padding-left: var(--s5); }
.faq-layout__aside p { color: var(--muted); margin: 0; }

.legal { padding-bottom: var(--s9); }
.notfound { list-style: none; padding: 0; display: grid; gap: var(--s4); font-size: var(--t1); }
.post-list { list-style: none; padding: 0; margin: 0; max-width: 44rem; }
.post-list__item { padding: var(--s6) 0; border-top: 1px solid var(--line); }
.post-list__date { font-size: var(--t-1); color: var(--muted); margin-bottom: var(--s2); }
.post-list__title { font-size: var(--t2); }
.post-list__title a { color: inherit; text-decoration: none; }

/* --------------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------------- */
.form { margin: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fields { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--s5) var(--s4); }
.field { grid-column: span 6; display: flex; flex-direction: column; }
.field--half { grid-column: span 3; }
.field--third { grid-column: span 2; }
.field__label { font-size: var(--t-1); font-weight: 600; margin-bottom: var(--s1); }
.req { color: var(--danger); }
.field__hint { font-size: var(--t-1); color: var(--muted); margin-top: var(--s1); }
.field__error { display: flex; gap: var(--s1); align-items: flex-start; font-size: var(--t-1); color: var(--danger); font-weight: 500; margin-top: var(--s1); }
.field__error:empty { display: none; }
.field__error .icon { width: 1rem; height: 1rem; margin-top: .15em; }

input[type="text"], input[type="email"], input[type="tel"], select, textarea {
	width: 100%; min-height: 3rem; padding: var(--s3) var(--s3);
	font: inherit; font-size: var(--t0); color: var(--text);
	background: var(--white); border: 1px solid var(--field-line); border-radius: var(--r-s);
	transition: border-color .15s ease, box-shadow .15s ease;
}
textarea { resize: vertical; min-height: 5rem; line-height: 1.5; }
input::placeholder, textarea::placeholder { color: #6b7886; }
input:hover, select:hover, textarea:hover { border-color: var(--text); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0, 104, 196, .28); }
[aria-invalid="true"] { border-color: var(--danger) !important; background: #fffafa; }
[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(179, 38, 30, .22); }
.select { position: relative; }
.select select { appearance: none; padding-right: 2.5rem; cursor: pointer; }
.select::after { content: ""; position: absolute; right: 1rem; top: 50%; width: .5rem; height: .5rem; border-right: 1.5px solid var(--text); border-bottom: 1.5px solid var(--text); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.check { display: flex; gap: var(--s3); align-items: flex-start; font-size: var(--t-1); line-height: 1.5; cursor: pointer; }
.check input { width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: var(--blue); flex: none; }

.step { border: 0; margin: 0 0 var(--s6); padding: 0; min-width: 0; }
.step__legend { display: flex; align-items: center; gap: var(--s3); font-family: var(--font-display); font-size: var(--t2); font-weight: 600; padding: 0; margin-bottom: var(--s5); }
.step__num { display: inline-grid; place-items: center; width: 2.25rem; height: 2rem; background: var(--ink); color: var(--white); font-size: var(--t0); clip-path: polygon(24% 0, 100% 0, 76% 100%, 0 100%); }
.step__summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s4); margin: calc(-1 * var(--s2)) 0 var(--s5); padding: var(--s3) var(--s4); background: var(--paper); border-radius: var(--r-s); font-weight: 500; font-variant-numeric: tabular-nums; }
.step__summary[hidden] { display: none; }
.step__summary .btn-text { padding: 0; }
.step__nav { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); margin-top: var(--s6); flex-wrap: wrap; }
.step__nav [data-next], .step__nav [data-prev] { display: none; }
.js .form.is-stepped .step__nav [data-next], .js .form.is-stepped .step__nav [data-prev] { display: inline-flex; }
.js .form.is-stepped .step:not(.is-active) { display: none; }
.js .form.is-stepped .step[data-step="1"] .step__nav { justify-content: flex-end; }
.form:not(.is-stepped) .step[data-step="1"] .step__nav { display: none; }
.step[data-step="1"] .step__nav:empty { display: none; }
.form__actions { margin-top: var(--s6); }

.form-status { display: flex; gap: var(--s3); align-items: flex-start; margin-bottom: var(--s5); padding: var(--s4); border-radius: var(--r-s); font-weight: 500; }
.form-status:empty { display: none; }
.form-status.is-error { background: var(--danger-bg); color: var(--danger); border-left: 4px solid var(--danger); }
.form-status.is-info { background: var(--tint); color: var(--blue-hover); border-left: 4px solid var(--blue); }
.form-status .icon { margin-top: .15em; }

.form-success { padding: var(--s6) 0; }
.form-success:focus { outline: none; }
.form-success__icon { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--ok-bg); color: var(--ok); margin-bottom: var(--s4); }
.form-success__title { font-size: var(--t3); }
.form-success__ref { font-family: var(--font-display); font-size: var(--t1); letter-spacing: .03em; font-variant-numeric: tabular-nums; }
.form-success__urgent { font-weight: 600; }

/* --------------------------------------------------------------------------
   Video headers (every page)
   Looped muted video over a poster, shaded for legible white type.
   -------------------------------------------------------------------------- */
.vhero { position: relative; isolation: isolate; color: var(--on-dark); background: none; }
.vhero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; background-color: var(--ink); background-image: var(--noise); }
.vhero__media::before { content: ""; position: absolute; inset: 0 0 0 45%; background-image: repeating-linear-gradient(-57deg, transparent 0 26px, rgba(0, 180, 252, .06) 26px 27px); -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%); mask-image: linear-gradient(90deg, transparent, #000 40%); }
.vhero__poster, .vhero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vhero__video { opacity: 0; transition: opacity .6s ease; }
.vhero__video.is-playing { opacity: 1; }
.vhero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 9, 15, .9) 0%, rgba(5, 9, 15, .66) 42%, rgba(5, 9, 15, .2) 100%), linear-gradient(0deg, rgba(5, 9, 15, .6) 0%, transparent 45%); }
.vhero__inner { position: relative; padding-block: var(--s9) var(--s8); }
.vhero--page { min-height: clamp(22rem, 48vh, 32rem); display: flex; align-items: flex-end; }
.vhero--page .vhero__inner { width: 100%; }
.vhero--service { min-height: clamp(28rem, 62vh, 40rem); }
.vhero__title { font-size: clamp(var(--t4), 3.8vw + 1rem, var(--t6)); line-height: 1.02; color: var(--white); max-width: 22ch; margin-bottom: var(--s4); }
.vhero__lead { font-size: var(--t1); line-height: 1.5; color: var(--on-dark-muted); max-width: 38rem; margin: 0; }
.vhero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s5) var(--s6); margin-top: var(--s6); }
.video-toggle { position: absolute; right: max(var(--gutter), env(safe-area-inset-right, 0px), calc((100% - var(--wrap)) / 2)); top: var(--s5); z-index: var(--z-raise); display: inline-flex; align-items: center; gap: var(--s2); min-height: 2.75rem; padding: 0 var(--s4); background: rgba(5, 9, 15, .6); border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; color: var(--white); font-size: var(--t-1); font-weight: 500; cursor: pointer; }
.video-toggle:hover { border-color: var(--cyan); }
.video-toggle__icon { width: .7rem; height: .8rem; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.video-toggle[aria-pressed="true"] .video-toggle__icon { border: 0; width: 0; height: 0; border-left: .7rem solid currentColor; border-top: .42rem solid transparent; border-bottom: .42rem solid transparent; }

/* Home header */
.vhero--home { --overlap: 4.5rem; }
.vhero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(22rem, 30rem); gap: var(--s8); align-items: end; min-height: min(52rem, 88svh); padding-top: var(--s9); }
.vhero__copy { padding-bottom: var(--s9); }
.vhero__title--home { font-size: clamp(var(--t5), 4.2vw + 1rem, 4.6rem); max-width: 17ch; line-height: .98; margin-bottom: var(--s5); }
.quick-quote { margin-bottom: calc(-1 * var(--overlap)); position: relative; z-index: var(--z-raise); }
.quick-quote__fields { grid-template-columns: 1fr 1fr; }

/* Promises (the client's four-point strip) */
.promises { padding: calc(var(--overlap, 4.5rem) + var(--s7)) 0 var(--s8); border-bottom: 1px solid var(--line); }
.promises__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s6); }
.promises__list li { display: grid; grid-template-columns: auto 1fr; column-gap: var(--s4); align-items: start; }
.promises__list .icon { grid-row: span 2; width: 2rem; height: 2rem; color: var(--blue); margin-top: .1rem; }
.promises__list h2 { font-size: var(--t1); margin: 0 0 var(--s1); }
.promises__list p { margin: 0; color: var(--muted); font-size: var(--t-1); }

/* --------------------------------------------------------------------------
   Photo backgrounds
   -------------------------------------------------------------------------- */
.bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.bg__img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.bg__shade { position: absolute; inset: 0; }
.bg--texture { background-color: var(--ink-2); background-image: repeating-linear-gradient(-57deg, transparent 0 26px, rgba(0, 180, 252, .05) 26px 27px), var(--noise); }
.photo-section, .band, .why, .service-tile { position: relative; isolation: isolate; }
.photo-section { display: flex; align-items: center; min-height: clamp(30rem, 72vh, 44rem); padding: var(--s9) 0; }
.photo-section__inner { width: 100%; }
.photo-section__copy { max-width: 36rem; }
.photo-section--right .photo-section__copy { margin-left: auto; }
.photo-section--left .bg__shade { background: linear-gradient(90deg, rgba(5, 9, 15, .94) 0%, rgba(5, 9, 15, .78) 42%, rgba(5, 9, 15, .15) 100%); }
.photo-section--right .bg__shade { background: linear-gradient(270deg, rgba(5, 9, 15, .94) 0%, rgba(5, 9, 15, .78) 42%, rgba(5, 9, 15, .15) 100%); }
.photo-section__title { font-size: clamp(var(--t4), 3vw + 1rem, var(--t5)); color: var(--white); line-height: 1.04; margin-bottom: var(--s5); }
.photo-section__copy p, .why__text p { color: var(--on-dark-muted); font-size: var(--t1); line-height: 1.55; }
.photo-section__copy .link-arrow { margin-top: var(--s3); }
.band .bg__shade { background: linear-gradient(90deg, rgba(5, 9, 15, .95) 0%, rgba(5, 9, 15, .82) 50%, rgba(5, 9, 15, .55) 100%); }
.band { padding: var(--s10) 0; }
.band__actions .link-arrow { color: var(--cyan); }
.band--light { background: var(--white); color: var(--text); border-bottom: 1px solid var(--line); }
.band--light .band__title { color: var(--text); }
.band--light .band__copy p { color: var(--muted); }
.band--light .band__actions .link-arrow { color: var(--blue); }

/* --------------------------------------------------------------------------
   Home services: one photo tile + rows
   -------------------------------------------------------------------------- */
.service-tile { display: flex; align-items: flex-end; min-height: 34rem; padding: var(--s7) var(--s6); color: var(--white); overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 100%, 3.25rem 100%, 0 calc(100% - 5rem)); }
.service-tile .bg__shade { background: linear-gradient(0deg, rgba(5, 9, 15, .94) 0%, rgba(5, 9, 15, .55) 55%, rgba(5, 9, 15, .15) 100%); }
.service-tile:hover .bg__img { transform: scale(1.04); }
.service-tile__body { max-width: 32rem; }
.service-tile__title { font-size: var(--t4); margin-bottom: var(--s3); }
.service-tile__title a { color: var(--white); text-decoration: none; }
.service-tile__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.service-tile:focus-within { outline: 3px solid var(--cyan); outline-offset: 3px; }
.service-tile p { color: var(--on-dark-muted); }
.service-tile .link-arrow { color: var(--cyan); }
.service-row--static { grid-template-columns: 1fr; }
.service-row--static .service-row__meta a { position: relative; z-index: 1; }
.services__all { margin-top: var(--s6); }

.price-chip { display: inline-block; margin: 0 0 var(--s4); padding: .2rem .75rem; background: var(--blue); color: var(--white); font-family: var(--font-display); font-size: var(--t1); font-weight: 600; line-height: 1.3; border-radius: var(--r-s); font-variant-numeric: tabular-nums; }
.price-chip--hero { margin: 0; background: transparent; border: 1px solid rgba(0, 180, 252, .6); color: var(--cyan); font-size: var(--t2); padding: .35rem .9rem; }
.price-chip--light { background: var(--tint); color: var(--blue-hover); }

.btn--ghost { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .45); }
.btn--ghost:hover { background: rgba(255, 255, 255, .1); border-color: var(--white); color: var(--white); }
.btn--light { background: var(--white); color: var(--blue-hover); }
.btn--light:hover { background: var(--tint); color: var(--blue-hover); }
.kicker { display: flex; align-items: center; gap: var(--s3); font-size: var(--t-1); font-weight: 600; color: var(--blue); margin-bottom: var(--s4); }
.kicker::before { content: ""; width: 1.5rem; height: 2px; background: currentColor; transform: skewY(-33deg); }

/* --------------------------------------------------------------------------
   Offer: the money moment
   -------------------------------------------------------------------------- */
.offer { background: var(--blue); color: var(--white); padding: var(--s8) 0; position: relative; overflow: hidden; }
.offer::before { content: ""; position: absolute; inset: 0; background-image: repeating-linear-gradient(-57deg, transparent 0 30px, rgba(255, 255, 255, .06) 30px 31px); pointer-events: none; }
.offer__inner { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--s7); align-items: center; }
.offer__num { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(5rem, 9vw, 8.5rem); line-height: .85; letter-spacing: -.02em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.offer__kicker { font-size: var(--t-1); font-weight: 600; margin-bottom: var(--s2); opacity: .9; }
.offer__title { font-size: var(--t3); color: var(--white); margin-bottom: var(--s3); }
.offer__copy p:last-child { margin: 0; color: rgba(255, 255, 255, .92); max-width: 40rem; }

/* --------------------------------------------------------------------------
   Service page
   -------------------------------------------------------------------------- */
.benefits { padding: var(--s9) 0 var(--s8); }
.benefits { background: var(--white); }
.benefits__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: var(--s7) var(--s6); }
.benefit { border-top: 2px solid var(--ink); padding-top: var(--s5); }
.benefit__num { display: block; font-family: var(--font-display); font-size: var(--t2); font-weight: 600; color: var(--blue); margin-bottom: var(--s3); }
.benefit__title { font-size: var(--t2); }
.benefit p { color: var(--muted); margin: 0; }
.why { display: flex; align-items: center; min-height: clamp(30rem, 60vh, 40rem); padding: var(--s9) 0; }
.why__media { position: absolute; top: 0; bottom: 0; left: 0; width: 50%; }
.why__media .bg { z-index: 0; }
.why__media .bg__shade { background: linear-gradient(270deg, var(--ink) 0%, rgba(5, 9, 15, 0) 28%); }
.why__inner { width: 100%; position: relative; }
.why__copy { width: calc(50% - var(--s7)); max-width: 36rem; margin-left: auto; }
.why__list { list-style: none; margin: var(--s5) 0 0; padding: 0; display: grid; gap: var(--s2); }
.why__list li { display: flex; gap: var(--s3); align-items: center; font-weight: 500; }
.why__list .icon { color: var(--cyan); }
.book { background: var(--white); padding: var(--s8) 0; border-bottom: 1px solid var(--line); }
.book__inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: var(--s7); align-items: end; }
.book__title { font-size: var(--t3); }
.book__price p { color: var(--muted); max-width: 30rem; }
.book__amount { font-family: var(--font-display); font-size: clamp(var(--t5), 5vw, var(--t6)); font-weight: 600; line-height: 1; color: var(--blue); margin: var(--s4) 0 0 !important; font-variant-numeric: tabular-nums; }
.book .spec { grid-template-columns: 1fr; }
.book__actions { display: flex; flex-direction: column; gap: var(--s3); }
.svc-index__num { font-family: var(--font-display); font-size: var(--t1); font-weight: 600; color: var(--blue); margin-bottom: var(--s2); }

/* --------------------------------------------------------------------------
   About
   -------------------------------------------------------------------------- */
.story { padding: var(--s9) 0; }
.story__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--s8); align-items: start; }
.story__media { position: sticky; top: calc(var(--masthead-h) + var(--s6)); }
.story__media .media { --ratio: 4/5; }
.prose--story h2:first-child { font-size: clamp(var(--t3), 2vw + 1rem, var(--t4)); line-height: 1.1; margin-bottom: var(--s6); }
.prose--story p { font-size: var(--t0); color: var(--text); }
.vision { background: var(--white); padding: var(--s9) 0; }
.vision__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--s8); align-items: start; }
.vision__title { font-size: clamp(var(--t3), 1.8vw + 1rem, var(--t4)); line-height: 1.12; margin-bottom: var(--s5); }
.vision__text { color: var(--muted); max-width: 44rem; }
.vision__sub { font-size: var(--t2); }
.values { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.values li { display: flex; gap: var(--s3); align-items: center; padding: var(--s3) 0; border-top: 1px solid var(--line); font-weight: 500; }
.values .icon { color: var(--blue); }


/* Client logos */
.clients { padding: var(--s6) 0; border-bottom: 1px solid var(--line); }
.clients__inner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4) var(--s7); }
.clients__title { font-family: var(--font-text); font-size: var(--t-1); font-weight: 600; color: var(--muted); margin: 0; }
.clients__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s5) var(--s8); }
.clients__list img { height: 3rem; width: auto; max-width: 12rem; object-fit: contain; }
.clients__list a { display: block; border-radius: var(--r-s); }
.clients--about { background: var(--white); border-top: 1px solid var(--line); }

/* Service scope ("Leistungsumfang") */
.scope { padding: var(--s9) 0 var(--s8); }
.scope__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--s8); border-bottom: 1px solid var(--line); }
.scope__item { padding: var(--s6) 0; border-top: 1px solid var(--line); scroll-margin-top: calc(var(--masthead-h) + var(--s5)); }
.scope__item:target { box-shadow: inset 4px 0 0 var(--blue); padding-left: var(--s5); }
.scope__title { font-size: var(--t2); margin-bottom: var(--s2); }
.scope__item p { color: var(--muted); margin-bottom: var(--s3); }
.scope__item .price-chip { margin: 0; }
.scope-tags { list-style: none; margin: 0 0 var(--s5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2); }
.scope-tags a { display: inline-block; padding: .3rem .7rem; font-size: var(--t-1); font-weight: 500; color: var(--text); background: var(--white); border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.scope-tags a:hover { border-color: var(--blue); color: var(--blue); }

/* Service choice (quote form) */
.choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: var(--s3); }
.choice { position: relative; display: block; cursor: pointer; }
.choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice__box { display: flex; align-items: center; min-height: 3.5rem; padding: var(--s3) var(--s4) var(--s3) 2.75rem; border: 1px solid var(--field-line); border-radius: var(--r-s); background: var(--white); font-weight: 600; line-height: 1.3; transition: border-color .15s ease, background-color .15s ease; position: relative; }
.choice__box::before { content: ""; position: absolute; left: var(--s4); top: 50%; width: 1.1rem; height: 1.1rem; margin-top: -.55rem; border: 2px solid var(--field-line); border-radius: 50%; background: var(--white); }
.choice:hover .choice__box { border-color: var(--text); }
.choice input:checked + .choice__box { border-color: var(--blue); background: var(--tint); }
.choice input:checked + .choice__box::before { border-color: var(--blue); box-shadow: inset 0 0 0 3px var(--white); background: var(--blue); }
.choice input:focus-visible + .choice__box { outline: 3px solid var(--blue); outline-offset: 2px; }
.choice input[aria-invalid="true"] + .choice__box { border-color: var(--danger); }
.field[hidden] { display: none; }
.qq-field--wide { grid-column: 1 / -1; }
/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 63.99em) {
	:root { --overlap: 0rem; }
	.services__grid, .reach__grid, .quote-layout, .contact-layout, .careers-layout, .careers-apply__inner, .faq-layout, .story__grid, .vision__grid, .book__inner, .offer__inner { grid-template-columns: 1fr; gap: var(--s7); }
	.faq-layout__aside { position: static; }
	.footer__grid { grid-template-columns: 1fr 1fr; }
	.footer__brand { grid-column: 1 / -1; }
	.band__inner { grid-template-columns: 1fr; }
	.quotes__grid--2, .quotes__grid--3 { grid-template-columns: 1fr; }
	.quote--lead { grid-row: auto; }
}
@media (max-width: 47.99em) {
	.services, .process, .quotes, .reach, .band, .vision, .story, .scope, .benefits { padding-block: var(--s8); }
	.process__steps { grid-template-columns: 1fr; gap: var(--s6); }
	.process__steps::before { top: 0; bottom: 0; left: 1.35rem; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--ink) 0 70%, transparent); }
	.process__step { display: grid; grid-template-columns: 2.75rem 1fr; column-gap: var(--s4); }
	.process__num { grid-row: span 2; margin-bottom: 0; }
	.svc-index__item { grid-template-columns: 1fr; gap: var(--s5); padding: var(--s7) 0; }
	.svc-index__item.is-flipped .svc-index__media { order: 0; }
	.quick-quote { padding: var(--s4); }
	.quick-quote__fields { gap: var(--s3); }
	.qq-field:nth-child(n+3) { grid-column: span 2; }
	.quote-layout__form, .contact-layout__form .form-wrap { padding: var(--s5) var(--s4); margin-inline: calc(-1 * var(--s2)); }
	.field--half, .field--third { grid-column: span 6; }
	.footer__grid { grid-template-columns: 1fr; gap: var(--s6); }
	.topbar__links { gap: var(--s4); }
}
@media (max-width: 22em) {
	.quick-quote__fields { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
	.btn:hover .icon, .link-arrow:hover .icon, .service-row:hover .service-row__arrow { transform: none; }
}

@media print {
	.site-header, .action-bar, .band, .quick-quote, .site-footer .footer__grid { display: none; }
	.surface-dark { background: none; color: #000; }
}

/* WordPress admin bar (logged-in editors) */
.admin-bar .site-header { top: calc(32px - var(--topbar-h)); }
@media (max-width: 782px) { .admin-bar .site-header { top: calc(46px - var(--topbar-h)); } }
@media (max-width: 600px) { .admin-bar .site-header { top: calc(-1 * var(--topbar-h)); } }
.site-header :focus-visible, .action-bar :focus-visible { outline-color: var(--cyan); }

/* Responsive: headers, photo sections, new blocks */
@media (max-width: 63.99em) {
	.vhero__grid { grid-template-columns: 1fr; min-height: 0; gap: var(--s6); padding-top: var(--s8); }
	.vhero__copy { padding-bottom: 0; }
	.vhero--home { --overlap: 0rem; padding-bottom: var(--s8); }
	.quick-quote { margin-bottom: 0; max-width: none; }
	.promises { padding-top: var(--s7); }
	.promises__list { grid-template-columns: 1fr 1fr; }
	.photo-section--left .bg__shade, .photo-section--right .bg__shade { background: linear-gradient(0deg, rgba(5, 9, 15, .93) 0%, rgba(5, 9, 15, .8) 60%, rgba(5, 9, 15, .55) 100%); }
	.photo-section, .why { min-height: 0; }
	.why { flex-direction: column; align-items: stretch; padding-top: 0; }
	.why__media { position: relative; width: 100%; aspect-ratio: 16/10; margin-bottom: var(--s7); }
	.why__media .bg__shade { background: linear-gradient(0deg, var(--ink) 0%, rgba(5, 9, 15, 0) 35%); }
	.why__copy { width: auto; }
	.photo-section--right .photo-section__copy { margin-left: 0; }
	.service-tile { min-height: 26rem; }
	.benefits__list { grid-template-columns: 1fr; gap: var(--s6); }
	.story__media { position: static; max-width: 26rem; }
	.book__actions { flex-direction: row; flex-wrap: wrap; }
	.offer__inner { justify-items: start; }
}
@media (max-width: 47.99em) {
	.promises__list { grid-template-columns: 1fr; gap: var(--s5); }
	.vhero--page { min-height: 20rem; }
	.vhero__inner { padding-block: var(--s8) var(--s7); }
	.video-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.video-toggle { padding: 0; width: 2.75rem; justify-content: center; top: var(--s4); }
	.band { padding: var(--s8) 0; }
}
@media (prefers-reduced-motion: reduce) {
	.vhero__video { display: none; }
	.bg__img, .service-tile:hover .bg__img { transition: none; transform: none; }
}

/* Legal documents */
.legal-doc h2 { font-size: var(--t2); margin-top: var(--s7); }
.legal-doc h2:first-child { margin-top: 0; }
.legal-doc table { width: 100%; border-collapse: collapse; font-size: var(--t-1); margin: var(--s4) 0; }
.legal-doc th, .legal-doc td { text-align: left; vertical-align: top; padding: var(--s3); border-bottom: 1px solid var(--line); }
.legal-doc th { font-weight: 600; background: var(--white); }
.legal-doc code { font-size: .9em; background: var(--white); padding: 0 .3em; border-radius: 3px; overflow-wrap: anywhere; }
.legal-doc .table-wrap { overflow-x: auto; }
.legal-form { border: 1px solid var(--line); background: var(--white); padding: var(--s5); border-radius: var(--r-m); margin-top: var(--s4); }
.legal-stand { color: var(--muted); font-size: var(--t-1); margin-top: var(--s7); }
.form-note { font-size: var(--t-1); color: var(--muted); margin: var(--s4) 0 0; }

@media (max-width: 47.99em) {
	.scope__list { grid-template-columns: 1fr; }
	.clients__inner { flex-direction: column; align-items: flex-start; }
}
