/* ==========================================================================
   Zauber-Hand — Blueprint theme
   ========================================================================== */

:root {
	--bg: #0E0F12;
	--bg-2: #131519;
	--surface: #1A1D24;
	--line: rgba(255, 255, 255, .08);
	--line-2: rgba(255, 255, 255, .16);
	--text: #F3F4F7;
	--muted: #9AA0AB;
	--accent: #86A877;
	--accent-h: #9DBD8C;
	--accent-ink: #0C1707;
	--maxw: 1320px;
	--space-section: clamp(72px, 11vw, 132px);
	--header-h: 80px;
	--mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	--sans: 'Archivo', system-ui, -apple-system, Segoe UI, sans-serif;
}

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	min-height: 100vh;
	min-height: 100dvh;
	background-color: var(--bg);
	color: var(--text);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.5;
	overflow-x: hidden;
	display: flex;
	flex-direction: column;
}

/* Blueprint grid on its own fixed, GPU-composited layer — NOT a body background.
   Kept separate so the parallax can move it with transform: translate: the
   gradient is rasterized once and just re-composited, so the faint 1px lines
   never re-sample and drop out ("every other line") the way an animated
   background-position makes them. --grid-y is driven by JS on desktop; with no
   JS (or on touch) it stays 0 and the grid is simply static. */
body::before {
	content: "";
	position: fixed;
	top: -48px;
	left: 0;
	right: 0;
	bottom: -48px;
	z-index: -1;
	pointer-events: none;
	background-image:
		repeating-linear-gradient(0deg, transparent 0 39px, rgba(134, 168, 119, .045) 39px 40px),
		repeating-linear-gradient(90deg, transparent 0 39px, rgba(134, 168, 119, .045) 39px 40px);
	/* translate3d already promotes this to its own compositor layer, so the
	   parallax stays smooth without a permanent will-change hint holding a
	   viewport-sized backing store on mobile / no-JS where it never moves. */
	transform: translate3d(0, var(--grid-y, 0px), 0);
	backface-visibility: hidden;
}

/* Touch devices: a position:fixed layer stutters against the mobile address bar
   and momentum scrolling, and there is no parallax there anyway (the JS gates it
   on pointer:fine). Drop the fixed layer and paint the grid as an ordinary body
   background that scrolls with the page — rock-solid on mobile. Keyed on
   pointer:coarse to mirror the JS gate exactly (all touch, not a width guess). */
@media (pointer: coarse) {
	body::before { display: none; }
	body {
		background-image:
			repeating-linear-gradient(0deg, transparent 0 39px, rgba(134, 168, 119, .045) 39px 40px),
			repeating-linear-gradient(90deg, transparent 0 39px, rgba(134, 168, 119, .045) 39px 40px);
	}
}

body.zh-no-scroll { overflow: hidden; }

img { max-width: 100%; display: block; }
a { color: inherit; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }

.zh-wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; width: 100%; }

/* Long German words must wrap instead of overflowing (especially on mobile). */
h1, h2, h3, h4 { overflow-wrap: break-word; word-break: normal; }

/* ---------------------------------------------------------------- Shared */
.zh-kicker {
	font: 500 12px var(--mono);
	letter-spacing: 3px;
	color: var(--accent);
	margin: 0 0 16px;
}
.zh-kicker--muted { color: var(--muted); }

.zh-section { padding-top: var(--space-section); padding-bottom: var(--space-section); scroll-margin-top: var(--header-h); }

.zh-head { margin: 0 0 56px; }
.zh-head__title {
	font: 800 clamp(26px, 4vw, 48px)/1.04 var(--sans);
	text-transform: uppercase;
	letter-spacing: -1px;
	color: var(--text);
	margin: 0;
	max-width: 20ch;
}
.zh-head__rule {
	display: block;
	height: 1px;
	background: var(--accent);
	max-width: 280px;
	margin: 22px 0 0;
}

/* ---------------------------------------------------------------- Buttons */
.zh-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font: 700 13px var(--mono);
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 18px 32px;
	border-radius: 8px;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.zh-btn--accent { background: var(--accent); color: var(--accent-ink); }
.zh-btn--accent:hover { background: var(--accent-h); }
.zh-btn--ghost { border-color: var(--line-2); color: var(--text); background: none; }
.zh-btn--ghost:hover { border-color: var(--accent); color: var(--accent); }
.zh-btn--block { width: 100%; padding: 16px; }

/* ---------------------------------------------------------------- Progress / readout */
.zh-progress {
	position: fixed; top: 0; left: 0; width: 100%; height: 2px;
	background: var(--accent);
	transform: scaleX(0); transform-origin: 0 0;
	z-index: 200;
	box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 70%, transparent);
}
/* ---------------------------------------------------------------- Header */
.zh-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	background: linear-gradient(to bottom, rgba(14, 15, 18, .96) 20%, rgba(14, 15, 18, 0));
	padding: 20px 24px 40px;
}
.zh-header__inner {
	max-width: var(--maxw); margin: 0 auto;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.zh-brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.zh-brand__mark { width: 32px; height: 32px; object-fit: contain; }
.zh-brand__copy { display: flex; flex-direction: column; line-height: 1; }
.zh-brand__name { font: 800 17px var(--sans); color: var(--text); letter-spacing: -.2px; }
.zh-brand__tag { font: 500 9.5px var(--mono); letter-spacing: 2px; color: var(--muted); margin-top: 3px; }

.zh-header__actions { display: flex; align-items: center; gap: 18px; }
.zh-lang { display: flex; align-items: center; gap: 12px; }
.zh-lang__item {
	font: 600 11px var(--mono); letter-spacing: 1.5px;
	color: var(--muted); text-decoration: none; transition: color .15s ease;
}
a.zh-lang__item:hover { color: var(--text); }
.zh-lang__item.is-active { color: var(--accent); }

.zh-index {
	display: flex; align-items: center; gap: 10px;
	background: none; border: 1px solid var(--line-2); border-radius: 8px;
	padding: 11px 16px; cursor: pointer; color: var(--text);
	font: 600 12px var(--mono); letter-spacing: 2px;
	transition: border-color .15s ease, color .15s ease;
}
.zh-index:hover { border-color: var(--accent); color: var(--accent); }
.zh-index__lines { position: relative; width: 14px; height: 10px; display: block; }
.zh-index__lines span { position: absolute; left: 0; width: 100%; height: 1.5px; background: currentColor; }
.zh-index__lines span:nth-child(1) { top: 0; }
.zh-index__lines span:nth-child(2) { top: 4.5px; }
.zh-index__lines span:nth-child(3) { top: 9px; }

/* ---------------------------------------------------------------- Nav overlay */
.zh-nav {
	position: fixed; inset: 0; background: var(--bg); z-index: 300;
	display: flex; flex-direction: column; padding: 24px;
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity .25s ease, visibility .25s ease;
}
.zh-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.zh-nav__bar { display: flex; align-items: center; justify-content: space-between; }
.zh-nav__bar .zh-brand__name { font-size: 16px; }
.zh-nav__close {
	width: 46px; height: 46px; border: 1px solid var(--line-2); border-radius: 8px;
	background: none; color: var(--text); font-size: 18px; cursor: pointer;
	display: grid; place-items: center;
	transition: border-color .15s ease, color .15s ease;
}
.zh-nav__close:hover { border-color: var(--accent); color: var(--accent); }
.zh-nav__menu {
	flex: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 14px;
}
.zh-nav__link { display: flex; align-items: baseline; gap: 18px; text-decoration: none; color: var(--text); transition: color .15s ease; }
.zh-nav__link:hover { color: var(--accent); }
.zh-nav__num { font: 500 14px var(--mono); color: var(--accent); }
.zh-nav__text { font: 800 clamp(30px, 7vw, 58px)/1.05 var(--sans); text-transform: uppercase; letter-spacing: -1px; }
.zh-nav__foot {
	display: flex; flex-wrap: wrap; gap: 20px; padding-top: 18px; border-top: 1px solid var(--line);
	font: 500 13px var(--mono); color: var(--muted);
}
.zh-nav__foot a { color: var(--muted); text-decoration: none; transition: color .15s ease; }
.zh-nav__foot a:hover { color: var(--accent); }

/* ---------------------------------------------------------------- Hero */
.zh-hero {
	position: relative; overflow: hidden; scroll-margin-top: var(--header-h);
	padding: clamp(120px, 18vw, 158px) 0 clamp(72px, 12vw, 110px);
}
.zh-hero__glow {
	position: absolute; right: -160px; top: -120px; width: 560px; height: 560px; border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--accent) 26%, transparent) 0%, transparent 70%);
	pointer-events: none;
}
.zh-hero__enso {
	position: absolute; top: 50%; right: clamp(-90px, -4.5vw, -30px);
	/* --enso-y is a JS-driven scroll parallax (desktop only) tuned to the SAME
	   apparent speed as the grid, so the mark and the background drift together
	   behind the text. Chained after the centering translate so -50% is
	   preserved. */
	transform: translateY(-50%) translateY(var(--enso-y, 0px));
	pointer-events: none; z-index: 0;
}
.zh-hero__enso-svg { display: block; width: min(512px, 48vw); height: auto; opacity: .4; overflow: visible; }
/* The reveal is a stroke drawn around a masked disc; ONLY the mask front is
   roughened (brush wet edge) — the enso image itself stays crisp. */
.zh-hero__enso-arc {
	stroke-dasharray: 360;
	stroke-dashoffset: 360;
	animation: zh-enso-draw 0.9s cubic-bezier(0.76, 0, 0.24, 1) 1s both;
}
@keyframes zh-enso-draw {
	to { stroke-dashoffset: 0; }
}
.zh-hero__inner { position: relative; z-index: 1; }
.zh-hero__kicker { margin-bottom: 30px; max-width: 860px; }
.zh-hero__title {
	font: 900 clamp(22px, 3.4vw, 44px)/1.05 var(--sans);
	text-transform: uppercase; letter-spacing: -1px; color: var(--text);
	max-width: 22ch; margin: 0 0 28px;
}
.zh-hero__rule { display: flex; align-items: center; gap: 14px; max-width: 560px; margin: 8px 0 32px; }
.zh-hero__rule-tick { width: 7px; height: 7px; border-left: 1px solid var(--accent); border-bottom: 1px solid var(--accent); flex: 0 0 auto; }
.zh-hero__rule-line { flex: 1; height: 1px; background: var(--line-2); }
.zh-hero__rule-text { font: 500 11px var(--mono); letter-spacing: 1.5px; color: var(--muted); }
.zh-hero__text { font-size: 18px; line-height: 1.7; color: var(--muted); max-width: 860px; margin: 0 0 40px; }
.zh-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------------------------------------------------------------- Stats */
.zh-stats { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.zh-stats__grid {
	padding: 48px 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 32px;
}
.zh-stat__tick { display: block; width: 22px; height: 3px; background: var(--accent); margin: 0 0 18px; }
.zh-stat__num { font: 800 clamp(40px, 5vw, 64px)/1 var(--sans); color: var(--text); letter-spacing: -1px; }
.zh-stat__suffix { color: var(--accent); }
.zh-stat__label { font: 500 11px var(--mono); letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); margin: 12px 0 0; }

/* ---------------------------------------------------------------- Services */
.zh-services__list { border-top: 1px solid var(--line); }
.zh-srv {
	display: grid; grid-template-columns: 72px 1fr; gap: 20px; align-items: baseline;
	padding: 30px 22px; border-bottom: 1px solid var(--line); border-left: 2px solid transparent;
	transition: background .2s ease, border-color .2s ease;
}
.zh-srv:hover { background: var(--bg-2); border-left-color: var(--accent); }
.zh-srv__num { font: 600 14px var(--mono); color: var(--accent); }
.zh-srv__title { font: 800 clamp(20px, 2.4vw, 28px) var(--sans); text-transform: uppercase; letter-spacing: -.3px; color: var(--text); margin: 0 0 8px; }
.zh-srv__text { font-size: 15px; line-height: 1.6; color: var(--muted); margin: 0; max-width: 580px; }
.zh-services__note {
	margin-top: 28px; padding: 24px 22px;
	border: 1px solid var(--line); border-left: 2px solid var(--accent);
	background: var(--bg-2);
}
.zh-services__note-title { font: 600 14px var(--mono); letter-spacing: 1px; color: var(--accent); margin: 0 0 10px; }
.zh-services__note-text { font-size: 15px; line-height: 1.6; color: var(--muted); margin: 0; max-width: 720px; }
.zh-services { padding-bottom: calc(var(--space-section) * .5); }
.zh-portfolio { padding-top: calc(var(--space-section) * .5); }

/* ---------------------------------------------------------------- Portfolio */
.zh-portfolio { overflow: hidden; }
.zh-portfolio__head {
	display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-end; justify-content: space-between; margin: 0 0 44px;
}
.zh-portfolio__head .zh-kicker { margin-bottom: 16px; }
.zh-portfolio__nav { display: flex; gap: 10px; }
.zh-arrow {
	width: 48px; height: 48px; border: 1px solid var(--line-2); border-radius: 8px; background: none; color: var(--text);
	cursor: pointer; display: grid; place-items: center; padding: 0;
	transition: border-color .15s ease, color .15s ease;
}
.zh-arrow svg { width: 20px; height: 20px; display: block; }
.zh-arrow:hover { border-color: var(--accent); color: var(--accent); }
.zh-portfolio__swiper {
	overflow: hidden; padding-bottom: 4px;
	-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 80px), transparent);
	mask-image: linear-gradient(to right, #000 calc(100% - 80px), transparent);
}
.zh-portfolio__swiper .swiper-slide { height: auto; }
.zh-arrow.swiper-button-disabled { opacity: .35; cursor: default; }
.zh-project { height: auto; }
.zh-project__media {
	display: block; width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--line); border-radius: 12px;
	overflow: hidden; background: var(--bg-2); text-decoration: none;
}
.zh-project__media img { width: 100%; height: 100%; object-fit: cover; }
a.zh-project__media { cursor: zoom-in; }
a.zh-project__media img { transition: transform .4s ease; }
a.zh-project__media:hover img { transform: scale(1.04); }
.zh-project__placeholder {
	display: block; width: 100%; height: 100%;
	background: repeating-linear-gradient(135deg, rgba(134, 168, 119, .08) 0 10px, transparent 10px 20px);
}
.zh-project__meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 16px 2px 0; }
.zh-project__num { font: 500 11px var(--mono); letter-spacing: 1.5px; color: var(--accent); }
.zh-project__title { font: 800 18px var(--sans); text-transform: uppercase; letter-spacing: -.3px; color: var(--text); margin: 6px 0 0; }
.zh-project__loc { font: 500 11px var(--mono); color: var(--muted); white-space: nowrap; }

/* ---------------------------------------------------------------- Manifest */
.zh-manifest { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.zh-manifest .zh-wrap { padding-top: var(--space-section); padding-bottom: var(--space-section); }
.zh-manifest__title {
	font: 900 clamp(28px, 6vw, 84px)/1.0 var(--sans); text-transform: uppercase; letter-spacing: -2px; color: var(--text); margin: 0;
}
.zh-manifest__accent { color: var(--accent); }
.zh-manifest__cap { display: flex; align-items: center; gap: 14px; margin: 36px 0 0; max-width: 420px; }
.zh-manifest__cap-line { flex: 1; height: 1px; background: var(--accent); }
.zh-manifest__cap-text { font: 500 11px var(--mono); letter-spacing: 1.5px; color: var(--muted); white-space: nowrap; }

/* ---------------------------------------------------------------- Process */
.zh-process__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 32px; }
.zh-step { position: relative; }
.zh-step__dot { display: block; width: 16px; height: 16px; border-radius: 50%; background: var(--accent); margin: 0 0 26px; position: relative; z-index: 1; }
.zh-step__num { font: 500 12px var(--mono); letter-spacing: 1px; color: var(--accent); }
.zh-step__title { font: 800 20px var(--sans); text-transform: uppercase; letter-spacing: -.3px; color: var(--text); margin: 10px 0 8px; }
.zh-step__text { font-size: 14.5px; line-height: 1.6; color: var(--muted); margin: 0; }

/* ---------------------------------------------------------------- Contact */
.zh-contact { background: var(--bg-2); border-top: 1px solid var(--line); }
.zh-contact__inner { display: flex; flex-wrap: wrap; gap: 64px; }
.zh-contact__info { flex: 1 1 380px; }
.zh-contact__text { font-size: 17px; line-height: 1.7; color: var(--muted); max-width: 420px; margin: 22px 0 32px; }
.zh-contact__links { display: flex; flex-direction: column; gap: 10px; font: 500 15px var(--mono); }
.zh-contact__links a { color: var(--muted); text-decoration: none; transition: color .15s ease; }
.zh-contact__links a:hover { color: var(--accent); }
.zh-contact__card { flex: 1 1 380px; background: var(--bg); border: 1px solid var(--line); border-radius: 14px; padding: 36px; }

.zh-form { display: flex; flex-direction: column; gap: 18px; }
/* The [hidden] attribute must win over the flex/inline-flex display above. */
.zh-form[hidden], .zh-form__again[hidden] { display: none; }
.zh-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.zh-field { display: flex; flex-direction: column; gap: 8px; }
.zh-field__label { font: 500 11px var(--mono); text-transform: uppercase; letter-spacing: 1.5px; color: var(--muted); }
.zh-field input, .zh-field textarea {
	background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px;
	color: var(--text); font: 15px var(--sans); width: 100%;
	transition: border-color .15s ease;
}
.zh-field textarea { resize: vertical; }
.zh-field input:focus, .zh-field textarea:focus { outline: none; border-color: var(--accent); }
.zh-field input::placeholder, .zh-field textarea::placeholder { color: color-mix(in srgb, var(--muted) 70%, transparent); }

.zh-note { margin: 0 0 18px; padding: 12px 16px; border-radius: 8px; font: 500 13px var(--mono); }
.zh-note--ok { background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent-h); border: 1px solid color-mix(in srgb, var(--accent) 40%, transparent); }
.zh-note--err { background: rgba(220, 90, 90, .12); color: #e58a8a; border: 1px solid rgba(220, 90, 90, .35); }

/* ---------------------------------------------------------------- Footer */
.zh-footer { padding: 40px 0; border-top: 1px solid var(--line); margin-top: auto; }
.zh-footer__inner {
	display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between;
	font: 500 12px var(--mono); letter-spacing: 1px; color: var(--muted);
}
.zh-footer__brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--text); }
.zh-footer__brand span { font: 800 14px var(--sans); letter-spacing: -.2px; }
.zh-footer__note { color: var(--muted); }
.zh-footer__nav { flex: 1 1 auto; }
.zh-footer__menu { list-style: none; display: flex; flex-wrap: wrap; gap: 18px; margin: 0; padding: 0; justify-content: center; }
.zh-footer__menu a { color: var(--muted); text-decoration: none; transition: color .15s ease; }
.zh-footer__menu a:hover { color: var(--accent); }

/* ---------------------------------------------------------------- Scroll toggle */
.zh-scroll-toggle {
	position: fixed; right: 18px; bottom: 18px; z-index: 90;
	width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid var(--line-2); background: rgba(19, 21, 25, .8); backdrop-filter: blur(4px);
	color: var(--muted); display: grid; place-items: center; cursor: pointer;
	opacity: 0; transform: translateY(8px) scale(.9); pointer-events: none;
	transition: opacity .2s ease, transform .2s ease, border-color .15s ease, color .15s ease;
}
.zh-scroll-toggle.is-ready { opacity: 1; transform: none; pointer-events: auto; }
.zh-scroll-toggle:hover { border-color: var(--accent); color: var(--accent); }
.zh-scroll-toggle svg { width: 22px; height: 22px; fill: currentColor; transition: transform .25s ease; }
.zh-scroll-toggle.is-up svg { transform: rotate(180deg); }

/* ---------------------------------------------------------------- Generic pages (page.php / index.php / 404) */
.zh-page { padding: calc(var(--header-h) + 40px) 0 var(--space-section); }
.zh-page__head { margin: 0 0 32px; }
.zh-richtext { color: var(--muted); line-height: 1.7; max-width: 70ch; }
.zh-richtext a { color: var(--accent); }
.zh-richtext h2, .zh-richtext h3 { color: var(--text); }
.zh-empty { color: var(--muted); }

/* ---------------------------------------------------------------- Leads GUI (/anfragen) */
.zh-admin-top { border-bottom: 1px solid var(--line); padding: 18px 0; }
.zh-admin-top__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.zh-admin-top__actions { display: flex; flex-wrap: wrap; gap: 8px 18px; font: 500 12px var(--mono); letter-spacing: 1px; text-transform: uppercase; }
.zh-admin-top__actions a { color: var(--muted); text-decoration: none; transition: color .15s ease; }
.zh-admin-top__actions a:hover { color: var(--accent); }
.zh-admin-main { flex: 1 0 auto; padding: 48px 0 80px; }
.zh-leads__head { display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-end; justify-content: space-between; margin: 0 0 32px; }
.zh-leads__meta { display: flex; align-items: center; gap: 18px; font: 500 12px var(--mono); letter-spacing: 1px; color: var(--muted); }
.zh-leads__count strong { color: var(--accent); }
.zh-leads__logout { color: var(--muted); text-decoration: none; border: 1px solid var(--line-2); border-radius: 8px; padding: 8px 14px; transition: border-color .15s ease, color .15s ease; }
.zh-leads__logout:hover { border-color: var(--accent); color: var(--accent); }
.zh-leads__bulk { margin: 0 0 22px; }
.zh-leads__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }
.zh-lead { background: var(--bg-2); border: 1px solid var(--line); border-left: 2px solid transparent; border-radius: 12px; padding: 22px; }
.zh-lead.is-new { border-left-color: var(--accent); }
.zh-lead__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.zh-lead__date { font: 500 11px var(--mono); letter-spacing: 1px; color: var(--muted); }
.zh-lead__badge { font: 600 10px var(--mono); letter-spacing: 1.5px; color: var(--accent-ink); background: var(--accent); border-radius: 4px; padding: 3px 7px; }
.zh-lead__name { font: 800 19px var(--sans); letter-spacing: -.2px; color: var(--text); margin: 0 0 6px; }
.zh-lead__phone { display: inline-block; font: 500 13px var(--mono); color: var(--accent); text-decoration: none; margin: 0 0 12px; }
.zh-lead__msg { font-size: 14.5px; line-height: 1.6; color: var(--muted); margin: 6px 0 16px; white-space: pre-wrap; }
.zh-lead__actions { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--line); padding-top: 14px; }
.zh-lead__actions form { margin: 0; }
.zh-lead__actions button { font: 500 11px var(--mono); letter-spacing: .5px; text-transform: uppercase; color: var(--muted); background: none; border: 1px solid var(--line-2); border-radius: 7px; padding: 8px 12px; cursor: pointer; transition: border-color .15s ease, color .15s ease; }
.zh-lead__actions button:hover { border-color: var(--accent); color: var(--accent); }
.zh-lead__actions .zh-lead__del:hover { border-color: #e58a8a; color: #e58a8a; }

/* ---------------------------------------------------------------- Lightbox (GLightbox) */
.glightbox-clean .gslide-description { background: var(--bg-2); }
.glightbox-clean .gslide-title { font-family: var(--sans); font-weight: 800; text-transform: uppercase; letter-spacing: -.3px; color: var(--text); }
.glightbox-clean .gslide-desc { font: 500 12px var(--mono); letter-spacing: 1.5px; color: var(--muted); }
.glightbox-clean .gnext, .glightbox-clean .gprev, .glightbox-clean .gclose { background: rgba(19, 21, 25, .7); border-radius: 8px; }
.glightbox-clean .gnext svg, .glightbox-clean .gprev svg, .glightbox-clean .gclose svg { fill: var(--text); }

/* ---------------------------------------------------------------- Reveal */
[data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; transition-delay: var(--reveal-delay, 0ms); }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* ---------------------------------------------------------------- Responsive */
@media (max-width: 760px) {
	.zh-header { padding: 16px 18px 32px; }
	.zh-brand__mark { width: 28px; height: 28px; }
	.zh-brand__name { font-size: 15px; }
	.zh-wrap { padding: 0 18px; }
	.zh-hero__enso {
		display: block;
		top: 44%; left: 50%; right: auto;
		transform: translate(-50%, -50%);
	}
	.zh-hero__enso-svg { width: min(460px, 92vw); opacity: .1; }
	.zh-hero__enso-arc { animation: none; stroke-dashoffset: 0; }
	.zh-stats__grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; padding: 60px 18px; }
	.zh-head { margin-bottom: 40px; }
	.zh-srv { grid-template-columns: 48px 1fr; gap: 14px; padding: 24px 12px; }
	.zh-contact__inner { gap: 36px; }
	.zh-contact__card { padding: 24px; }
	.zh-manifest__cap { flex-wrap: wrap; }
	.zh-manifest__cap-text { white-space: normal; }
	.zh-scroll-toggle { display: none; }
}

@media (max-width: 360px) {
	.zh-stats__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	[data-reveal] { transition: none; opacity: 1; transform: none; }
	.zh-scroll-toggle { transition: none; }
	.zh-hero__enso-arc { animation: none; stroke-dashoffset: 0; }
}

/* --------------------------------------------------------------- Footer legal */
.zh-footer__legal { display: flex; gap: 18px; }
.zh-footer__legal a { color: var(--muted); text-decoration: none; font: 500 12px var(--mono); letter-spacing: .3px; transition: color .15s ease; }
.zh-footer__legal a:hover { color: var(--accent); }

/* ---------------------------------------------------------------- Legal pages */
.zh-legal { padding: calc(var(--header-h) + 64px) 0 var(--space-section); }
.zh-legal__inner { max-width: 760px; }
.zh-legal__title { font: 800 clamp(34px, 6vw, 56px)/1.02 var(--sans); text-transform: uppercase; letter-spacing: -1px; margin: 10px 0 14px; color: var(--text); }
.zh-legal__lead { color: var(--muted); font-size: 16px; line-height: 1.6; margin: 0 0 8px; max-width: 620px; }
.zh-legal__body h2 { font: 700 15px var(--mono); text-transform: uppercase; letter-spacing: 1px; color: var(--text); margin: 40px 0 12px; }
.zh-legal__body p { color: var(--muted); line-height: 1.75; font-size: 15px; margin: 0 0 14px; }
.zh-legal__body ul { margin: 0 0 14px; padding-left: 20px; }
.zh-legal__body li { color: var(--muted); line-height: 1.7; font-size: 15px; margin: 0 0 6px; }
.zh-legal__body strong { color: var(--text); font-weight: 600; }
.zh-legal__body a { color: var(--accent); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .15s ease; }
.zh-legal__body a:hover { border-bottom-color: var(--accent); }
.zh-legal__meta { margin-top: 44px; padding-top: 20px; border-top: 1px solid var(--line); font: 500 13px var(--mono); }
