/* TQ Haustechnik — zentrales Stylesheet (Design-System-Tokens + Komponenten) */

/* ---------- Tokens ---------- */
:root {
  --blue-950:#0A2244; --blue-900:#0D2C58; --blue-800:#113B76; --blue-700:#14468B;
  --blue-600:#17509E; --blue-500:#2E66B4; --blue-400:#5B8ACB; --blue-200:#B9CDE9;
  --blue-100:#DCE7F5; --blue-50:#EFF4FB;
  --red-700:#B60510; --red-600:#E30613; --red-100:#FBDCDE; --red-50:#FDF0F0;
  --gray-800:#2A3547; --gray-600:#55637A; --gray-500:#71809A; --gray-400:#97A4B8;
  --gray-300:#C2CBD8; --gray-200:#DDE3EC; --gray-100:#ECF0F5; --gray-50:#F6F8FB;
  --success-600:#1E7A46; --success-50:#E9F6EE;
  --font-display:"Barlow Condensed","Arial Narrow",sans-serif;
  --font-body:"Source Sans 3","Segoe UI",Arial,sans-serif;
  --skew:-14deg;
  --radius-md:8px; --radius-lg:16px;
  --shadow-card:0 1px 2px rgba(13,44,88,.06),0 4px 14px rgba(13,44,88,.07);
  --shadow-card-hover:0 2px 4px rgba(13,44,88,.08),0 10px 28px rgba(13,44,88,.13);
  --container:1200px; --pad:24px;
}

/* ---------- Basis ---------- */
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font:400 1.0625rem/1.6 var(--font-body); color:var(--gray-800); background:#fff; overflow-x:hidden; }
h1,h2,h3 { color:var(--blue-900); margin:0; text-wrap:balance; }
h1 { font:600 2.75rem/1.1 var(--font-display); }
h2 { font:600 2.125rem/1.15 var(--font-display); }
h3 { font:600 1.5rem/1.25 var(--font-display); }
a { color:var(--blue-600); }
a:hover { color:var(--blue-800); }
img { max-width:100%; }
:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(23,80,158,.35); }
.container { max-width:var(--container); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }
.eyebrow { font:600 .9375rem/1.2 var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:.12em; color:var(--red-600); }
.eyebrow--light { color:var(--blue-200); }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:none; cursor:pointer;
  font:600 1rem var(--font-body); line-height:1; text-decoration:none; padding:15px 32px;
  transform:skewX(var(--skew)); transition:background .15s, transform .15s; }
.btn > span { display:inline-flex; align-items:center; gap:8px; transform:skewX(calc(var(--skew) * -1)); }
.btn:active { transform:skewX(var(--skew)) scale(.98); }
.btn--primary { background:var(--blue-600); color:#fff; }
.btn--primary:hover { background:var(--blue-700); color:#fff; }
.btn--accent { background:var(--red-600); color:#fff; }
.btn--accent:hover { background:var(--red-700); color:#fff; }
.btn--inverse { background:#fff; color:var(--blue-800); border:1.5px solid var(--blue-200); }
.btn--inverse:hover { background:var(--blue-50); color:var(--blue-900); }
.btn--sm { padding:9px 18px; font-size:.9375rem; }
.btn svg { display:block; }

.badge { display:inline-block; padding:6px 16px; transform:skewX(var(--skew));
  font:600 .875rem var(--font-body); letter-spacing:.04em; text-transform:uppercase; }
.badge > span { display:inline-block; transform:skewX(calc(var(--skew) * -1)); }
.badge--accent { background:var(--red-600); color:#fff; }
.badge--blue { background:var(--blue-100); color:var(--blue-800); }

/* ---------- Header ---------- */
.site-header { position:fixed; top:14px; left:0; right:0; z-index:50; padding:0 16px; pointer-events:none; }
.site-header__bar { pointer-events:auto; max-width:var(--container); margin:0 auto; height:66px;
  display:flex; align-items:stretch; gap:24px; padding:0 12px 0 18px;
  background:rgba(255,255,255,.72); -webkit-backdrop-filter:blur(18px) saturate(1.6); backdrop-filter:blur(18px) saturate(1.6);
  border:1px solid var(--gray-200); box-shadow:var(--shadow-card-hover); }
.site-header__logo { display:flex; align-items:center; min-width:0; }
.site-header__logo img { display:block; height:46px; width:auto; max-width:100%; object-fit:contain; }
.site-nav { display:flex; gap:24px; margin-left:auto; }
.site-nav > li { list-style:none; display:flex; align-items:stretch; position:relative; }
.site-nav { padding:0; margin-top:0; margin-bottom:0; }
.site-nav a.nav-link { position:relative; display:flex; align-items:center; gap:6px; text-decoration:none;
  font:600 1.0625rem var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:.07em; color:var(--gray-600); }
.site-nav a.nav-link:hover { color:var(--blue-600); }
.site-nav a.nav-link[aria-current="page"] { color:var(--blue-900); }
.site-nav a.nav-link::after { content:""; position:absolute; left:0; right:0; bottom:12px; height:3px;
  background:var(--blue-600); transform:skewX(var(--skew)) scaleX(0); transform-origin:left bottom; transition:transform .2s; }
.site-nav a.nav-link:hover::after { transform:skewX(var(--skew)) scaleX(1); }
.site-nav a.nav-link[aria-current="page"]::after { background:var(--red-600); transform:skewX(var(--skew)) scaleX(1); }
.dropdown { position:absolute; top:calc(100% - 6px); left:-18px; width:330px; background:#fff;
  border:1px solid var(--gray-200); box-shadow:0 18px 50px rgba(13,44,88,.22); padding:10px 8px; display:none; }
.site-nav li:hover .dropdown, .site-nav li:focus-within .dropdown { display:grid; }
.dropdown a { display:flex; align-items:baseline; gap:12px; text-decoration:none; padding:9px 14px; }
.dropdown a:hover { background:var(--blue-50); }
.dropdown .num { font:700 .875rem var(--font-display); font-style:italic; color:var(--red-600); }
.dropdown .lbl { font:600 .96875rem var(--font-body); color:var(--blue-900); }
.header-contact { display:flex; align-items:center; gap:16px; }
.header-phone { display:flex; flex-direction:column; justify-content:center; text-decoration:none; line-height:1.15; white-space:nowrap; }
.header-phone .phone-ico { display:none; }
.header-phone .l1 { font:600 .6875rem var(--font-body); color:var(--red-600); text-transform:uppercase; letter-spacing:.08em; }
.header-phone .l2 { font:700 1rem var(--font-body); color:var(--blue-900); }
.burger { display:none; width:44px; height:44px; align-self:center; align-items:center; justify-content:center;
  background:var(--blue-50); color:var(--blue-800); border:none; cursor:pointer; padding:0; }
.mobile-menu { display:none; }

/* ---------- Hero (Startseite) ---------- */
.hero { position:relative; background:var(--blue-900); overflow:hidden; padding-bottom:52px; }
.hero__media { position:absolute; top:0; bottom:0; right:0; width:44%;
  clip-path:polygon(18% 0,100% 0,100% 100%,0 100%); }
.hero__media .layer { position:absolute; inset:0; background-position:center 42%; background-size:cover; background-repeat:no-repeat; opacity:0; transition:opacity .6s; }
.hero__media .layer.is-active { opacity:1; }
.hero__media .fade { position:absolute; inset:0; }
.hero__inner { position:relative; min-height:560px; display:flex; align-items:center; padding-top:150px; padding-bottom:88px;
  padding-left:calc(var(--pad) + 56px); padding-right:calc(var(--pad) + 56px); }
.hero__text { max-width:620px; }
.hero__text h2.headline { font:600 3.5rem/1.05 var(--font-display); color:#fff; margin:22px 0 0; }
.hero__text p.lead { font:400 1.25rem/1.55 var(--font-body); color:var(--blue-200); margin:18px 0 0; max-width:50ch; }
.hero__ctas { display:flex; gap:12px; margin-top:30px; flex-wrap:wrap; }
.hero-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:46px; height:46px;
  display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3); color:#fff; cursor:pointer; border-radius:var(--radius-md);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.hero-arrow:hover { background:rgba(255,255,255,.28); }
.hero-arrow--prev { left:14px; } .hero-arrow--next { right:14px; }

/* Zahlenband mit Schräge + roter Linie */
.stats { background:var(--blue-950); margin-top:-52px; position:relative; z-index:1;
  clip-path:polygon(0 52px,100% 0,100% 100%,0 100%); }
.stats::before { content:""; position:absolute; top:0; left:0; right:0; height:60px;
  clip-path:polygon(0 52px,100% 0,100% 6px,0 58px); background:var(--red-600); }
.stats .container { display:flex; gap:12px 56px; padding-top:62px; padding-bottom:20px; flex-wrap:wrap; justify-content:center; }
.stats .item { display:flex; gap:10px; align-items:baseline; }
.stats strong { font:700 1.625rem var(--font-display); font-style:italic; color:#fff; white-space:nowrap; }
.stats .item > span { font:400 .9375rem var(--font-body); color:var(--blue-400); }
.stats strong span { font:inherit; color:inherit; }

/* Markenzeile */
.brands { border-bottom:1px solid var(--gray-200); }
.brands .container { padding-top:20px; padding-bottom:20px; display:flex; flex-direction:column; gap:10px; }
.brands .title { font:600 .75rem var(--font-body); color:var(--gray-500); text-transform:uppercase; letter-spacing:.1em; text-align:center; }
.brands ul { display:flex; justify-content:center; gap:8px 34px; flex-wrap:wrap; align-items:baseline; margin:0; padding:0; }
.brands li { list-style:none; font:600 1rem var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:.04em; color:var(--gray-400); white-space:nowrap; }

/* ---------- Sektionen ---------- */
.section { padding:72px 0; }
.section--gray { background:var(--gray-50); }
.section--tint { background:var(--blue-50); }
.section-head { max-width:640px; }
.section-head p { color:var(--gray-600); margin:14px 0 0; }

/* Leistungsliste (Startseite) */
.service-row { display:grid; grid-template-columns:72px 1fr 32px; gap:24px; align-items:start;
  text-decoration:none; padding:26px 8px; border-top:1px solid var(--gray-200); transition:background .15s; }
.service-row:last-child { border-bottom:1px solid var(--gray-200); }
.service-row:hover { background:var(--blue-50); }
.service-row .num { font:700 2.25rem/1 var(--font-display); font-style:italic; color:var(--blue-200); }
.service-row:hover .num { color:var(--red-600); }
.service-row h3 { margin:0; }
.service-row p { font:400 .9375rem/1.5 var(--font-body); color:var(--gray-600); margin:6px 0 0; max-width:70ch; }
.service-row .arrow { color:var(--gray-400); margin-top:6px; }

.split-cols { display:grid; grid-template-columns:340px 1fr; gap:64px; align-items:start; }
.split-intro { position:sticky; top:130px; }
.split-intro p { color:var(--gray-600); margin:14px 0 0; }
.service-row h3 .ico { color:var(--blue-600); vertical-align:-3px; margin-left:6px; display:inline-block; }

/* Karten-Raster */
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:36px; }
.card { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card); padding:26px 26px 28px; transition:box-shadow .2s, transform .2s, border-color .2s; }
.card:hover { box-shadow:var(--shadow-card-hover); transform:translateY(-2px); border-color:var(--blue-200); }
.card .num-badge { display:inline-block; background:var(--blue-600); color:#fff; padding:4px 14px;
  transform:skewX(var(--skew)); font:700 1.125rem var(--font-display); font-style:italic; }
.card h3 { font:700 1.125rem var(--font-body); margin-top:14px; }
.card p { font:400 .9375rem/1.5 var(--font-body); color:var(--gray-600); margin:8px 0 0; }
.card .icon { color:var(--blue-600); }

/* FAQ */
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:36px 56px; margin:40px 0 0; }
.faq-grid > div { border-top:3px solid var(--blue-600); padding-top:16px; }
.faq-grid dt { font:700 1.125rem var(--font-body); color:var(--blue-900); }
.faq-grid dd { margin:8px 0 0; font:400 1rem/1.6 var(--font-body); color:var(--gray-800); }

/* Inhaber */
.owner { background:var(--gray-50); }
.owner .container { display:grid; grid-template-columns:380px 1fr; gap:64px; align-items:center; }
.owner__photo { position:relative; }
.owner__photo .img { aspect-ratio:4/5; clip-path:polygon(6% 0,100% 0,94% 100%,0 100%);
  background-position:center top; background-size:cover; background-color:var(--blue-900); }
.owner__photo .name { position:absolute; left:18px; bottom:-16px; background:var(--red-600); color:#fff;
  padding:10px 20px; clip-path:polygon(8% 0,100% 0,92% 100%,0 100%);
  font:700 1.125rem var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:.05em; }
.owner blockquote { margin:0; }
.owner blockquote p { font:600 1.875rem/1.3 var(--font-display); font-style:italic; color:var(--blue-900); margin:0; }

/* Karte */
.map-box { position:relative; z-index:0; isolation:isolate; border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--gray-200); box-shadow:var(--shadow-card); margin-top:32px; }
.map-box .map { aspect-ratio:16/8; width:100%; min-height:320px; background:var(--blue-50); }
.map-box .status { position:absolute; left:12px; bottom:12px; z-index:800; background:rgba(255,255,255,.94);
  border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:8px 12px;
  font:600 .8125rem var(--font-body); color:var(--blue-800); }
.leaflet-interactive { cursor:default !important; }

/* CTA-Band */
.cta-band { position:relative; background:transparent; overflow:hidden; margin-top:-52px; z-index:1; pointer-events:none; }
.cta-band--gray { background:transparent; }
.cta-band a, .cta-band .btns { pointer-events:auto; }
.cta-band__bg { position:absolute; inset:0; background:var(--blue-900); clip-path:polygon(0 52px,100% 0,100% 100%,0 100%); }
.cta-band__bg .skew { position:absolute; inset:0; left:68%; background:var(--blue-700); transform:skewX(var(--skew)); transform-origin:top; }
.cta-band .container { position:relative; padding-top:104px; padding-bottom:64px; display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
.cta-band h2 { color:#fff; }
.cta-band p { color:var(--blue-200); margin:10px 0 0; max-width:56ch; }
.cta-band .grow { flex:1 1 420px; }
.cta-band .btns { display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- Leistungsseiten ---------- */
.page-hero { position:relative; background:var(--blue-900); overflow:hidden; }
.page-hero__media { position:absolute; top:0; bottom:0; right:0; width:40%;
  clip-path:polygon(20% 0,100% 0,100% 100%,0 100%);
  background-position:center 30%; background-size:cover; background-repeat:no-repeat; background-color:var(--blue-900); }
.page-hero__edge { position:absolute; top:0; bottom:0; right:0; width:40%;
  clip-path:polygon(20% 0,100% 0,100% 100%,0 100%); background:var(--red-600); transform:translateX(-10px); }
.page-hero .container { position:relative; padding-top:140px; padding-bottom:80px; }
.breadcrumb { font:400 .9375rem var(--font-body); color:var(--blue-200); margin-bottom:20px; }
.breadcrumb a { color:var(--blue-200); }
.breadcrumb .sep { margin:0 8px; color:var(--red-600); }
.breadcrumb .cur { color:#fff; }
.page-hero .big-num { font:700 4.5rem/1 var(--font-display); font-style:italic; display:block;
  color:transparent; -webkit-text-stroke:2px var(--blue-400); }
.page-hero h1 { color:#fff; margin-top:4px; max-width:600px; }
.page-hero .lead { font:400 1.25rem/1.55 var(--font-body); color:var(--blue-200); margin:16px 0 0; max-width:52ch; }
.page-hero .ctas { display:flex; gap:12px; margin-top:26px; flex-wrap:wrap; }

.content-cols { display:grid; grid-template-columns:260px 1fr; gap:72px; align-items:start; }
.side-nav-wrap { align-self:stretch; }
.side-nav { position:sticky; top:130px; border-left:3px solid var(--blue-100); display:grid; }
.side-nav a { font:400 .9375rem var(--font-body); color:var(--gray-600); text-decoration:none;
  padding:7px 0 7px 18px; margin-left:-3px; border-left:3px solid transparent; }
.side-nav a:hover, .side-nav a.is-active { color:var(--blue-700); border-left-color:var(--red-600); font-weight:600; }
.prose { max-width:720px; }
.prose h2 { margin-top:56px; scroll-margin-top:120px; }
.prose h2:first-child { margin-top:0; }
.prose p { margin:16px 0 0; }
.steps { display:grid; grid-template-columns:repeat(4,1fr); margin-top:32px; border-top:1px solid var(--gray-200); border-bottom:1px solid var(--gray-200); }
.steps > div { padding:20px 18px 22px; border-left:1px solid var(--gray-200); }
.steps > div:first-child { border-left:none; }
.steps .n { font:700 1.625rem var(--font-display); font-style:italic; color:var(--red-600); }
.steps .t { font:700 .9375rem var(--font-body); color:var(--blue-900); margin-top:6px; }
.steps .d { font:400 .8125rem/1.45 var(--font-body); color:var(--gray-600); margin-top:4px; }
.faq-list { margin:24px 0 0; display:grid; gap:28px; }
.faq-list > div { border-left:3px solid var(--blue-600); padding-left:20px; }
.faq-list dt { font:700 1.125rem var(--font-body); color:var(--blue-900); }
.faq-list dd { margin:6px 0 0; }

/* ---------- Formular ---------- */
.form-cols { display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:start; }
.form-card { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-lg); box-shadow:var(--shadow-card); padding:40px; }
.form-grid { display:grid; gap:18px; }
.form-row2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.field label { display:block; font:600 .875rem var(--font-body); color:var(--blue-900); margin-bottom:6px; }
.field .req { color:var(--red-600); }
.field input, .field select, .field textarea { width:100%; padding:11px 14px; font:400 1rem var(--font-body);
  color:var(--gray-800); background:#fff; border:1px solid var(--gray-300); border-radius:var(--radius-md); }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--blue-600); box-shadow:0 0 0 3px rgba(23,80,158,.2); }
.field .hint { font:400 .8125rem var(--font-body); color:var(--gray-500); margin-top:5px; }
.field .error { font:600 .8125rem var(--font-body); color:var(--red-600); margin-top:5px; }
.field.has-error input, .field.has-error textarea { border-color:var(--red-600); }
.radio-row { display:flex; gap:18px; flex-wrap:wrap; }
.radio-row label { display:flex; align-items:center; gap:8px; font:400 1rem var(--font-body); color:var(--gray-800); }
.check label { display:flex; gap:10px; align-items:flex-start; font:400 .9375rem/1.5 var(--font-body); }
.check input { margin-top:3px; }
.hp { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.alert { border-radius:var(--radius-md); padding:14px 18px; font:400 .9375rem/1.5 var(--font-body); }
.alert--error { background:var(--red-50); border:1px solid var(--red-100); color:var(--red-700); }
.alert--success { background:var(--success-50); border:1px solid #CBE8D6; color:var(--success-600); }
.slide-check .label { display:block; font:600 .875rem var(--font-body); color:var(--blue-900); margin-bottom:6px; }
.slide-check .track { position:relative; height:54px; background:var(--blue-50); border:1px solid var(--gray-200);
  border-radius:var(--radius-md); overflow:hidden; user-select:none; touch-action:none; }
.slide-check .track.is-done { background:var(--success-50); border-color:var(--success-600); }
.slide-check .msg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font:600 .875rem var(--font-body); color:var(--gray-500); pointer-events:none; }
.slide-check .is-done .msg { color:var(--success-600); }
.slide-check .handle { position:absolute; top:4px; left:4px; width:64px; height:44px; background:var(--red-600);
  clip-path:polygon(14% 0,100% 0,86% 100%,0 100%); display:flex; align-items:center; justify-content:center;
  color:#fff; cursor:grab; transition:left .2s; }
.slide-check .is-done .handle { background:var(--success-600); cursor:default; }
.info-card { background:var(--blue-900); border-radius:var(--radius-lg); padding:32px; color:#fff; position:relative; overflow:hidden; }
.info-card .skew { position:absolute; inset:0; left:70%; background:var(--red-600); transform:skewX(var(--skew)); transform-origin:top; opacity:.9; }
.info-card .inner { position:relative; }
.info-card h3 { color:#fff; margin:14px 0 4px; }
.info-card p { font:400 .9375rem/1.5 var(--font-body); color:var(--blue-200); margin:0 0 16px; }
.info-list { background:var(--gray-50); border-radius:var(--radius-lg); padding:32px; display:grid; gap:14px; margin-top:20px; }
.info-list .row { display:flex; gap:12px; align-items:flex-start; }
.info-list .row svg { color:var(--blue-600); flex:none; margin-top:2px; }
.info-list strong { font:700 .9375rem var(--font-body); color:var(--blue-900); }
.info-list span.sub { font:400 .9375rem/1.5 var(--font-body); color:var(--gray-600); }

/* ---------- Footer ---------- */
.site-footer { background:var(--blue-950); color:var(--blue-100); border-top:1px solid rgba(255,255,255,.16); }
.site-footer .cols { padding:56px var(--pad) 32px; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; max-width:var(--container); margin:0 auto; }
.site-footer .about { font:400 .9375rem/1.5 var(--font-body); margin:16px 0 0; max-width:36ch; }
.site-footer .col-title { font:600 .9375rem var(--font-display); text-transform:uppercase; letter-spacing:.08em; color:#fff; margin-bottom:12px; }
.site-footer a { color:var(--blue-200); text-decoration:none; font:400 .9375rem var(--font-body); display:block; padding:3px 0; }
.site-footer a:hover { color:#fff; }
.site-footer a.strong { color:#fff; font-weight:600; }
.site-footer .bottom { border-top:1px solid rgba(255,255,255,.15); }
.site-footer .bottom .container { padding-top:16px; padding-bottom:16px; font:400 .8125rem var(--font-body); color:var(--blue-400);
  display:flex; justify-content:space-between; align-items:center; gap:8px 24px; flex-wrap:wrap; }
.site-footer .credit { display:flex; align-items:center; gap:10px; color:var(--blue-400); text-decoration:none; font:400 .8125rem var(--font-body); padding:0; }
.site-footer .credit img { height:18px; width:auto; opacity:.85; }

.site-footer .regions { max-width:var(--container); margin:0 auto; padding:16px var(--pad) 18px; border-top:1px solid rgba(255,255,255,.15);
  display:flex; flex-wrap:wrap; align-items:baseline; column-gap:10px; row-gap:4px; }
.site-footer .regions .lbl { font:600 .8125rem var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:.08em; color:#fff; margin-right:8px; }
.site-footer .regions a { display:inline; padding:0; font:400 .8125rem var(--font-body); color:var(--blue-300, #7FA3D4); }
.site-footer .regions a:hover { color:#fff; }
.site-footer .regions .dot { color:rgba(255,255,255,.25); font-size:.8125rem; }

/* Footer-Logo (Dunkel-Variante) */
.logo-dark { display:block; }

/* ---------- Rechtliches ---------- */
.legal h2 { margin-top:48px; }
.legal h3 { font:700 1.0625rem var(--font-body); color:var(--blue-900); margin:22px 0 0; }
.legal p { margin:8px 0 0; }
.legal .stand { font:400 .8125rem var(--font-body); color:var(--gray-500); margin-top:24px; }

/* ---------- Scroll-Reveal (nur Desktop, reduced-motion-sicher) ---------- */
@media (prefers-reduced-motion:no-preference) and (min-width:781px) {
  .reveal { opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
  .reveal.is-visible { opacity:1; transform:none; }
}

/* ---------- Mobil ---------- */
@media (max-width:1100px) {
  .site-nav, .header-anfrage { display:none; }
  .burger { display:flex; }
  .mobile-menu.is-open { display:flex; position:fixed; top:92px; left:16px; right:16px; bottom:16px; z-index:60;
    background:#fff; border:1px solid var(--gray-200); box-shadow:0 18px 50px rgba(13,44,88,.25);
    overflow-y:auto; padding:8px 18px 18px; flex-direction:column; }
  .mobile-menu a.top { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:0 6px;
    text-decoration:none; border-bottom:1px solid var(--gray-200);
    font:600 1.3125rem var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:.06em; color:var(--blue-900); }
  .mobile-menu a.top[aria-current="page"] { color:var(--red-600); }
  .mobile-menu .sub { padding:10px 6px 14px; border-bottom:1px solid var(--gray-200); display:grid; gap:2px; }
  .mobile-menu .sub a { display:flex; align-items:baseline; gap:10px; text-decoration:none; min-height:36px; padding:6px 0;
    font:600 .9375rem var(--font-body); color:var(--blue-900); }
  .mobile-menu .sub .num { font:700 .8125rem var(--font-display); font-style:italic; color:var(--red-600); }
  .mobile-menu .cta { margin-top:auto; padding-top:20px; display:grid; gap:10px; }
}
@media (max-width:780px) {
  :root { --pad:20px; }
  h1 { font-size:2.375rem; } h2 { font-size:1.8125rem; }
  .header-phone .l1, .header-phone .l2 { display:none; }
  .header-phone .phone-ico { display:block; }
  .header-phone { width:44px; height:44px; align-self:center; align-items:center; justify-content:center; background:var(--red-50); color:var(--red-600); }
  .site-header__logo img { height:34px; }
  .mobile-menu.is-open { display:flex; position:fixed; top:92px; left:16px; right:16px; bottom:16px; z-index:60;
    background:#fff; border:1px solid var(--gray-200); box-shadow:0 18px 50px rgba(13,44,88,.25);
    overflow-y:auto; padding:8px 18px 18px; flex-direction:column; }
  .mobile-menu a.top { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:0 6px;
    text-decoration:none; border-bottom:1px solid var(--gray-200);
    font:600 1.3125rem var(--font-display); font-style:italic; text-transform:uppercase; letter-spacing:.06em; color:var(--blue-900); }
  .mobile-menu a.top[aria-current="page"] { color:var(--red-600); }
  .mobile-menu .sub { padding:10px 6px 14px; border-bottom:1px solid var(--gray-200); display:grid; gap:2px; }
  .mobile-menu .sub a { display:flex; align-items:baseline; gap:10px; text-decoration:none; min-height:36px; padding:6px 0;
    font:600 .9375rem var(--font-body); color:var(--blue-900); }
  .mobile-menu .sub .num { font:700 .8125rem var(--font-display); font-style:italic; color:var(--red-600); }
  .mobile-menu .cta { margin-top:auto; padding-top:20px; display:grid; gap:10px; }

  .hero__inner { min-height:0; padding:376px 20px 56px; }
  .hero__media { left:0; right:0; width:100%; top:96px; bottom:auto; height:250px;
    clip-path:polygon(0 0,100% 0,100% 100%,0 90%); }
  .hero-arrow { top:200px; transform:none; }
  .hero__text h2.headline { font-size:2.375rem; }
  .page-hero__media { left:0; right:0; width:100%; top:96px; bottom:auto; height:250px;
    clip-path:polygon(0 0,100% 0,100% 100%,0 90%); }
  .page-hero__edge { display:none; }
  .page-hero .container { padding-top:376px; padding-bottom:48px; }
  .page-hero .big-num { font-size:3rem; }

  .content-cols, .form-cols, .owner .container, .card-grid, .faq-grid, .steps, .form-row2, .split-cols { grid-template-columns:1fr; }
  .split-intro { position:static; }
  .content-cols, .form-cols, .owner .container { gap:28px; }
  .side-nav { position:static; }
  .steps { border-top:none; }
  .steps > div { border-left:none; border-top:1px solid var(--gray-200); }
  .cta-band__bg .skew { display:none; }
  .cta-band .btns { justify-content:center; width:100%; }
  .site-footer .cols { grid-template-columns:1fr; gap:28px; }
  .service-row { grid-template-columns:48px 1fr; }
  .service-row .arrow { display:none; }
  .service-row .num { font-size:1.625rem; }
}
