/* =========================================================
   Heinz Leo Vossen Holzbau-Zimmerei — Industrial Precision
   ========================================================= */

/* ---------- Design tokens ---------- */
:root {
	--primary: #26374A;
	--primary-oklch: oklch(35% 0.055 240);
	--primary-deep: oklch(23% 0.045 240);
	--accent: #C1531F;
	--accent-oklch: oklch(58% 0.14 42);
	--accent-soft-oklch: oklch(58% 0.14 42 / 12%);
	--ink: oklch(21% 0.018 240);
	--ink-soft: oklch(21% 0.018 240 / 70%);
	--ink-faint: oklch(21% 0.018 240 / 45%);
	--bg: oklch(97% 0.004 90);
	--bg-tint: oklch(93.5% 0.006 85);
	--surface: #ffffff;
	--border: oklch(21% 0.018 240 / 12%);
	--border-strong: oklch(21% 0.018 240 / 22%);
	--radius: 2px;
	--font-display: 'Archivo', 'Arial Narrow', sans-serif;
	--font-condensed: 'Archivo Narrow', 'Arial Narrow', sans-serif;
	--font-body: 'Archivo', -apple-system, BlinkMacSystemFont, sans-serif;
	--font-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
	--shadow-sm: 0 1px 2px oklch(21% 0.018 240 / 8%);
	--shadow-md: 0 8px 24px oklch(21% 0.018 240 / 10%);
	--shadow-lg: 0 20px 48px oklch(21% 0.018 240 / 16%);
	--ease-out: cubic-bezier(.16,.84,.44,1);
	--header-h: 92px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, svg, video, iframe { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; text-wrap: pretty; }
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--primary); color: #fff; padding: .8rem 1.2rem;
}
.skip-link:focus { left: 1rem; top: 1rem; }
:focus-visible {
	outline: 2px solid var(--accent-oklch);
	outline-offset: 3px;
}

/* ---------- Icon guardrails (PFLICHT) ---------- */
svg { max-width: 100%; height: auto; }
.icon {
	width: 1.4em;
	height: 1.4em;
	flex: 0 0 auto;
	vertical-align: middle;
	max-width: 32px !important;
	max-height: 32px !important;
}

/* ---------- Typography ---------- */
.h1, .hero__title {
	font-family: var(--font-display);
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.04;
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	color: var(--ink);
}
.h2 {
	font-family: var(--font-display);
	font-weight: 800;
	letter-spacing: -0.008em;
	line-height: 1.1;
	font-size: clamp(1.9rem, 3.4vw, 2.9rem);
	color: var(--ink);
}
.h3 {
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.2;
	font-size: clamp(1.2rem, 1.8vw, 1.5rem);
	color: var(--ink);
}
.eyebrow {
	font-family: var(--font-condensed);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.8rem;
	color: var(--accent-oklch);
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 1rem;
}
.eyebrow::before {
	content: '';
	width: 22px;
	height: 2px;
	background: var(--accent-oklch);
	display: inline-block;
}
.eyebrow--light { color: oklch(97% 0.01 85 / 85%); }
.eyebrow--light::before { background: oklch(97% 0.01 85 / 85%); }

.prose { color: var(--ink-soft); font-size: 1.05rem; line-height: 1.75; }
.prose p { margin: 0 0 1.1em; }
.prose p:last-child { margin-bottom: 0; }
.prose ul { list-style: disc; padding-left: 1.4em; margin-bottom: 1.1em; }
.prose ul li { margin-bottom: .4em; }
.prose h2 { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.5rem,2.4vw,2rem); color: var(--ink); margin: 2em 0 .7em; }
.prose h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.15rem,1.8vw,1.35rem); color: var(--ink); margin: 1.6em 0 .6em; }
.prose--tight { font-size: 0.98rem; line-height: 1.6; }
.prose--tight p { margin-bottom: .6em; }
.prose a { color: var(--primary-oklch); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Layout ---------- */
.container { max-width: 1280px; margin: 0 auto; padding: 0 2rem; }
.container--prose { max-width: 820px; }
.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section--narrow { padding: 3rem 0; }
.section--tint { background: var(--bg-tint); }
.section-head { max-width: 640px; margin: 0 0 3rem; }
.content-block { max-width: 820px; margin: 0 auto; }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .95rem 1.6rem;
	font-family: var(--font-condensed);
	font-weight: 700;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border-radius: var(--radius);
	border: 1px solid transparent;
	transition: transform 200ms var(--ease-out), background-color 200ms var(--ease-out), border-color 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
	min-height: 44px;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}
.btn .icon { width: 1.1em; height: 1.1em; }
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn:active { transform: translateY(0) scale(0.98); }
.btn--accent { background: var(--accent-oklch); color: #fff; }
.btn--accent:hover { background: oklch(53% 0.15 42); }
.btn--ghost { background: transparent; color: var(--ink); border-color: var(--border-strong); }
.btn--ghost:hover { border-color: var(--ink); }
.btn--outline { background: transparent; color: var(--primary-oklch); border-color: var(--primary-oklch); margin-top: 1.6rem; }
.btn--outline:hover { background: var(--primary-oklch); color: #fff; }

/* ---------- Header ---------- */
.site-header {
	position: sticky; top: 0; z-index: 250;
	background: oklch(97% 0.004 90 / 92%);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--border);
	transition: box-shadow 250ms var(--ease-out), padding 250ms var(--ease-out);
}
.site-header.is-condensed { box-shadow: var(--shadow-md); }
.site-header__inner {
	max-width: 1280px; margin: 0 auto; padding: 0 2rem;
	height: var(--header-h);
	display: flex; align-items: center; justify-content: space-between;
	gap: 2rem;
	transition: height 250ms var(--ease-out);
}
.site-header.is-condensed .site-header__inner { height: 64px; }
.site-header__brand { display: flex; align-items: center; gap: .7rem; flex: 1 1 auto; min-width: 0; overflow: hidden; }
.site-header__mark {
	font-family: var(--font-mono); font-weight: 600; font-size: 0.85rem;
	background: var(--primary-oklch); color: #fff; padding: .4rem .55rem;
	letter-spacing: 0.04em;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 5px 100%, 0 calc(100% - 5px));
}
.site-header__name {
	font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; color: var(--ink);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0;
}
.site-header__mark { flex-shrink: 0; }
.custom-logo { display: block; height: auto; max-height: 56px; width: auto; }

.site-nav { display: flex; align-items: center; gap: 2.2rem; flex: 1 1 auto; justify-content: flex-end; }
.site-nav__list { display: flex; align-items: center; gap: 1.9rem; flex-wrap: nowrap; }
.site-nav__list a {
	font-family: var(--font-condensed); font-weight: 600; font-size: 0.95rem;
	color: var(--ink-soft); position: relative; padding: .3rem 0;
	transition: color 200ms var(--ease-out);
}
.site-nav__list a:hover { color: var(--primary-oklch); }
.site-nav__list a::after {
	content: ''; position: absolute; left: 0; bottom: -2px; height: 2px; width: 0;
	background: var(--accent-oklch); transition: width 220ms var(--ease-out);
}
.site-nav__list a:hover::after { width: 100%; }
.site-nav__cta { margin-left: .4rem; padding: .7rem 1.3rem; }

.burger {
	display: none; position: relative; width: 44px; height: 44px; flex: 0 0 44px;
	align-items: center; justify-content: center;
	background: transparent; border: 1px solid var(--border-strong); border-radius: var(--radius);
	color: var(--ink);
}
.burger__icon-close { display: none; }
.burger[aria-expanded="true"] .burger__icon-open { display: none; }
.burger[aria-expanded="true"] .burger__icon-close { display: block; }

.mobile-drawer {
	position: fixed; inset: 0; z-index: 200;
	background: var(--primary-deep);
	color: #fff;
	display: flex; flex-direction: column; justify-content: center;
	padding: 2rem 2rem 3rem;
	transform: translateX(100%);
	transition: transform 320ms var(--ease-out);
	visibility: hidden;
}
.mobile-drawer.is-open { transform: translateX(0); visibility: visible; }
.mobile-drawer__list { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2.5rem; }
.mobile-drawer__list a { font-family: var(--font-display); font-weight: 700; font-size: 1.9rem; color: #fff; }
.mobile-drawer__cta { width: fit-content; }
.mobile-drawer__contact { margin-top: 2rem; }
.mobile-drawer__contact a { display: inline-flex; align-items: center; gap: .6rem; color: oklch(97% 0.01 85 / 85%); font-family: var(--font-condensed); }

/* ---------- Hero ---------- */
.hero { position: relative; color: #fff; overflow: hidden; }
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero__scrim {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, oklch(21% 0.02 240 / 55%) 0%, oklch(21% 0.02 240 / 78%) 65%, oklch(21% 0.018 240 / 94%) 100%);
}
.hero__grid {
	position: absolute; inset: 0; opacity: .12; pointer-events: none;
	background-image: linear-gradient(oklch(97% 0 0 / 60%) 1px, transparent 1px), linear-gradient(90deg, oklch(97% 0 0 / 60%) 1px, transparent 1px);
	background-size: 64px 64px;
}
.hero__inner {
	position: relative; z-index: 1;
	padding: clamp(6rem, 14vw, 9.5rem) 2rem clamp(7rem, 12vw, 8rem);
	max-width: 880px;
}
.hero__eyebrow { opacity: 0; transform: translateY(14px); animation: hlv-fade-up 700ms var(--ease-out) 150ms forwards; }
.hero__title { color: #fff; opacity: 0; transform: translateY(18px); animation: hlv-fade-up 800ms var(--ease-out) 280ms forwards; }
.hero__subtitle {
	margin-top: 1.4rem; font-size: clamp(1.05rem, 1.6vw, 1.25rem); max-width: 640px;
	color: oklch(97% 0.01 85 / 88%); line-height: 1.65;
	opacity: 0; transform: translateY(18px); animation: hlv-fade-up 800ms var(--ease-out) 420ms forwards;
}
.hero__actions {
	margin-top: 2.2rem; display: flex; gap: 1rem; flex-wrap: wrap;
	opacity: 0; transform: translateY(18px); animation: hlv-fade-up 800ms var(--ease-out) 560ms forwards;
}
.hero .btn--ghost { color: #fff; border-color: oklch(97% 0 0 / 35%); }
.hero .btn--ghost:hover { border-color: #fff; }
@keyframes hlv-fade-up { to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
	.hero__eyebrow, .hero__title, .hero__subtitle, .hero__actions { animation: none; opacity: 1; transform: none; }
}

.hero__plate { position: relative; z-index: 1; background: var(--primary-deep); border-top: 1px solid oklch(97% 0 0 / 10%); }
.hero__plate-inner {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
	padding: 2.2rem 2rem;
}
.stat { text-align: left; border-left: 2px solid var(--accent-oklch); padding-left: 1.1rem; }
.stat__value { font-family: var(--font-mono); font-weight: 600; font-size: clamp(1.8rem, 3vw, 2.6rem); color: #fff; display: flex; align-items: baseline; gap: .15rem; }
.stat__suffix { color: var(--accent-oklch); font-size: 0.7em; }
.stat__label { font-family: var(--font-condensed); font-size: 0.85rem; color: oklch(97% 0.01 85 / 72%); margin-top: .3rem; text-transform: uppercase; letter-spacing: 0.04em; }

/* ---------- Slider ---------- */
.slider-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.slider-nav { display: flex; gap: .6rem; }
.slider-nav__btn {
	width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
	background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius);
	color: var(--ink); transition: background-color 200ms var(--ease-out), transform 150ms var(--ease-out), border-color 200ms;
}
.slider-nav__btn:hover { background: var(--primary-oklch); color: #fff; border-color: var(--primary-oklch); }
.slider-nav__btn:active { transform: scale(0.94); }
.slider-nav__icon--prev { transform: rotate(180deg); }

.slider { margin-top: 2.2rem; position: relative; }
.slider__track {
	display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory;
	padding: 0.4rem 2rem 1.2rem; margin: 0 -2rem;
	scrollbar-width: none;
}
.slider__track::-webkit-scrollbar { display: none; }
.slide {
	flex: 0 0 min(420px, 82vw); scroll-snap-align: start;
	background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
	overflow: hidden; box-shadow: var(--shadow-sm);
	transition: box-shadow 250ms var(--ease-out), transform 250ms var(--ease-out);
}
.slide:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
.slide__media { aspect-ratio: 4/3; overflow: hidden; }
.slide__media img { width: 100%; height: 100%; object-fit: cover; }
.slide__caption { padding: 1.4rem 1.5rem 1.6rem; }
.slide__caption .prose { margin-top: .5rem; }
.slider__dots { display: flex; gap: .5rem; justify-content: center; margin-top: 1.4rem; }
.slider__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border-strong); border: none; padding: 0; transition: background-color 200ms, transform 200ms; }
.slider__dot.is-active { background: var(--accent-oklch); transform: scale(1.25); }

/* ---------- Services grid ---------- */
.services-grid {
	display: grid; grid-template-columns: repeat(12, 1fr); gap: 2rem;
}
.services-grid > .service-card { grid-column: span 4; }
.services-grid--full > .service-card { grid-column: span 4; }
.service-card {
	background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
	overflow: hidden; display: flex; flex-direction: column;
	box-shadow: var(--shadow-sm);
	transition: transform 250ms var(--ease-out), box-shadow 250ms var(--ease-out), border-color 250ms;
}
.service-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--border-strong); }
.service-card:active { transform: translateY(-1px) scale(0.99); }
.service-card__media { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms var(--ease-out); }
.service-card:hover .service-card__media img { transform: scale(1.05); }
.service-card__index {
	position: absolute; top: 0; left: 0;
	background: var(--primary-deep); color: var(--accent-oklch);
	font-family: var(--font-mono); font-size: 0.8rem; font-weight: 600;
	padding: .35rem .6rem;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 100%, 8px calc(100% - 8px), 0 100%);
}
.service-card__body { padding: 1.5rem 1.6rem 1.7rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.service-card__body .prose { flex: 1; }
.service-card__link {
	display: inline-flex; align-items: center; gap: .4rem;
	font-family: var(--font-condensed); font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em;
	color: var(--primary-oklch);
}
.service-card__link .icon { width: 1em; height: 1em; transition: transform 200ms var(--ease-out); }
.service-card:hover .service-card__link .icon { transform: translateX(4px); }

/* ---------- About ---------- */
.about-section__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 3rem; align-items: center; }
.about-section__media { grid-column: span 5; }
.about-section__media img { border-radius: var(--radius); box-shadow: var(--shadow-lg); width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.about-section__content { grid-column: span 7; }
.about-section__text { margin-top: 1.2rem; color: var(--ink-soft); font-size: 1.05rem; line-height: 1.75; max-width: 560px; }
.checklist { margin-top: 1.6rem; display: flex; flex-direction: column; gap: .8rem; }
.checklist li { display: flex; align-items: center; gap: .7rem; font-family: var(--font-condensed); font-weight: 600; font-size: 0.98rem; }
.checklist .icon { color: var(--accent-oklch); background: var(--accent-soft-oklch); border-radius: 50%; padding: 4px; box-sizing: content-box; width: 16px; height: 16px; }

/* ---------- CTA band ---------- */
.cta-band { background: var(--primary-deep); color: #fff; padding: clamp(3.5rem, 6vw, 5rem) 0; position: relative; overflow: hidden; }
.cta-band::after {
	content: ''; position: absolute; right: -8%; top: -30%; width: 420px; height: 420px;
	background: var(--accent-oklch); opacity: .14;
	clip-path: polygon(30% 0, 100% 0, 100% 70%, 70% 100%, 0 100%, 0 30%);
}
.cta-band__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.cta-band .h2 { color: #fff; margin-top: .3rem; }
.cta-band__actions { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
.cta-band__phone { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--font-condensed); font-weight: 700; color: #fff; }
.cta-band__phone:hover { color: var(--accent-oklch); }

/* ---------- Page hero (subpages) ---------- */
.page-hero { background: var(--primary-deep); color: #fff; position: relative; overflow: hidden; padding: clamp(5rem, 10vw, 7rem) 0 clamp(3.5rem, 6vw, 5rem); }
.page-hero__grid {
	position: absolute; inset: 0; opacity: .1; pointer-events: none;
	background-image: linear-gradient(oklch(97% 0 0 / 60%) 1px, transparent 1px), linear-gradient(90deg, oklch(97% 0 0 / 60%) 1px, transparent 1px);
	background-size: 56px 56px;
}
.page-hero__inner { position: relative; z-index: 1; max-width: 760px; }
.page-hero .h1 { color: #fff; font-size: clamp(2.2rem, 4.4vw, 3.4rem); }
.page-hero__lede { margin-top: 1rem; font-size: 1.1rem; color: oklch(97% 0.01 85 / 85%); line-height: 1.65; }

/* ---------- Contact page ---------- */
.contact-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 3rem; }
.contact-grid__form { grid-column: span 7; }
.contact-grid__info { grid-column: span 5; }
.contact-info-list { display: flex; flex-direction: column; gap: 1.4rem; margin-bottom: 1.8rem; }
.contact-info-list li { display: flex; align-items: flex-start; gap: .9rem; }
.contact-info-list .icon { color: var(--accent-oklch); margin-top: .15rem; }
.contact-info-list__label { font-family: var(--font-condensed); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.78rem; color: var(--ink-faint); margin-bottom: .15rem; }
.contact-map { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.contact-map iframe { width: 100%; height: 320px; border: 0; display: block; }

/* Contact Form 7 styling */
.wpcf7-form { display: flex; flex-direction: column; gap: 1.2rem; margin-top: 1.6rem; }
.wpcf7-form p { margin: 0; }
.wpcf7-form label { display: flex; flex-direction: column; gap: .4rem; font-family: var(--font-condensed); font-weight: 600; font-size: 0.9rem; color: var(--ink); }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
	font-family: var(--font-body); font-size: 1rem; padding: .85rem 1rem;
	border: 1px solid var(--border-strong); border-radius: var(--radius); background: var(--surface); color: var(--ink);
	transition: border-color 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
	min-height: 44px;
}
.wpcf7-form textarea { min-height: 140px; resize: vertical; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus { border-color: var(--primary-oklch); box-shadow: 0 0 0 3px var(--accent-soft-oklch); outline: none; }
.wpcf7-form input[type="submit"] {
	align-self: flex-start; background: var(--accent-oklch); color: #fff; border: none;
	font-family: var(--font-condensed); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
	padding: .95rem 1.8rem; border-radius: var(--radius); min-height: 44px;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 12px 100%, 0 calc(100% - 12px));
	transition: background-color 200ms var(--ease-out), transform 200ms var(--ease-out);
}
.wpcf7-form input[type="submit"]:hover { background: oklch(53% 0.15 42); transform: translateY(-2px); }
.wpcf7-spinner { margin-left: .8rem; }
.wpcf7-not-valid-tip { color: #b3261e; font-size: 0.85rem; margin-top: .3rem; }
.wpcf7-response-output { border-radius: var(--radius); padding: .9rem 1rem; margin-top: 1rem !important; }

/* ---------- Footer ---------- */
.site-footer { background: var(--primary-deep); color: oklch(97% 0.01 85 / 82%); position: relative; }
.site-footer__inner {
	max-width: 1280px; margin: 0 auto; padding: 4.5rem 2rem 3rem;
	display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem;
}
.site-footer__mark {
	display: inline-flex; font-family: var(--font-mono); font-weight: 600; font-size: 0.85rem;
	background: var(--accent-oklch); color: #fff; padding: .4rem .55rem; letter-spacing: 0.04em; margin-bottom: .9rem;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 5px 100%, 0 calc(100% - 5px));
}
.site-footer__name { font-family: var(--font-display); font-weight: 700; color: #fff; font-size: 1.1rem; }
.site-footer__claim { margin-top: .5rem; font-size: 0.92rem; max-width: 260px; }
.site-footer__heading { font-family: var(--font-condensed); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.8rem; color: oklch(97% 0.01 85 / 55%); margin-bottom: 1.1rem; }
.site-footer__list, .site-footer__contact { display: flex; flex-direction: column; gap: .75rem; }
.site-footer__list a, .site-footer__contact a { font-size: 0.94rem; transition: color 200ms var(--ease-out); }
.site-footer__list a:hover, .site-footer__contact a:hover { color: var(--accent-oklch); }
.site-footer__contact li { display: flex; align-items: flex-start; gap: .6rem; font-size: 0.94rem; }
.site-footer__contact .icon { flex-shrink: 0; margin-top: .1rem; color: var(--accent-oklch); }
.site-footer__bottom { border-top: 1px solid oklch(97% 0 0 / 12%); padding: 1.4rem 2rem; text-align: center; font-size: 0.82rem; }

/* ---------- Scroll reveal (transform-only, never opacity:0 as blocking start state) ---------- */
.reveal {
	transform: translateY(24px);
	transition: transform 650ms var(--ease-out);
	will-change: transform;
}
.reveal.is-visible { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
	.reveal { transform: none; transition: none; }
}
.services-grid .reveal { transition-delay: calc(var(--stagger, 0) * 60ms); }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1200px) {
	.services-grid > .service-card { grid-column: span 6; }
}

@media (max-width: 900px) {
	.site-nav { display: none; }
	.burger { display: flex; }
	.hero__plate-inner { grid-template-columns: 1fr; gap: 1.4rem; }
	.about-section__grid { grid-template-columns: 1fr; gap: 2rem; }
	.about-section__media { grid-column: 1; order: -1; }
	.about-section__content { grid-column: 1; }
	.about-section__media img { aspect-ratio: 16/9; }
	.contact-grid { grid-template-columns: 1fr; gap: 2.4rem; }
	.contact-grid__form, .contact-grid__info { grid-column: 1; }
	.site-footer__inner { grid-template-columns: 1fr 1fr; gap: 2.4rem; }
	.services-grid > .service-card { grid-column: span 6; }
}

@media (max-width: 600px) {
	.container { padding: 0 1.25rem; }
	.hero__inner { padding: 6rem 1.25rem 5.5rem; }
	.hero__plate-inner { padding: 1.8rem 1.25rem; }
	.section { padding: 3rem 0; }
	.services-grid { gap: 1.2rem; }
	.services-grid > .service-card { grid-column: span 12; }
	.slider__track { padding: .4rem 1.25rem 1.2rem; margin: 0 -1.25rem; }
	.slide { flex-basis: 88vw; }
	.site-footer__inner { grid-template-columns: 1fr; padding: 3rem 1.25rem 2rem; }
	.cta-band__inner { flex-direction: column; align-items: flex-start; }
	.slider-section__head { flex-direction: column; align-items: flex-start; gap: 1rem; }
}

@media (max-width: 420px) {
	.hero__plate-inner { grid-template-columns: 1fr; }
}
