/* ============================================================
   SchnellSauber – Gebäudereinigung Leinfelden-Echterdingen
   Gemeinsames Stylesheet aller Seiten · Stand 23.08.2026
   ============================================================ */

@font-face{
  font-family:'Manrope';
  src:url('/fonts/manrope-var.woff2') format('woff2-variations'),
      url('/fonts/manrope-var.woff2') format('woff2');
  font-weight:200 800;font-style:normal;font-display:swap;
}

/* ---------- Farben und Maße ---------- */
:root{
  --brand:#005191;        /* Logo-Blau */
  --brand-700:#00427A;
  --brand-800:#003461;
  --brand-100:#E3EEF8;
  --brand-50:#F2F7FC;
  --ink:#0E1B2A;          /* Haupttext */
  --ink-2:#45586C;        /* Nebentext */
  --ink-3:#66798C;        /* Feinheiten, noch AA auf Weiß */
  --line:#E3E9EF;
  --line-2:#CBD5DF;
  --paper:#FFFFFF;
  --paper-2:#F6F8FA;
  --navy:#0B1E33;
  --navy-2:#12294A;
  --ok:#1E7F55;
  --warn:#B42318;
  --wa:#1B8A4B;
  --r-sm:10px;
  --r:16px;
  --r-lg:24px;
  --sh-1:0 1px 2px rgba(14,27,42,.05),0 2px 8px rgba(14,27,42,.04);
  --sh-2:0 6px 18px rgba(14,27,42,.08),0 20px 44px rgba(14,27,42,.08);
  --sh-3:0 30px 70px rgba(0,81,145,.22);
  --max:1180px;
  --pad:clamp(1.1rem,4vw,2.5rem);
  --kopf:76px;
}
@media(max-width:900px){:root{--kopf:64px;}}

/* ---------- Grundlagen ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-padding-top:calc(var(--kopf) + 1.25rem);}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{
  background:var(--paper);color:var(--ink);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:clamp(16px,15.5px + .15vw,17px);line-height:1.65;
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,81,145,.12);
}
section[id],div[id],h2[id]{scroll-margin-top:calc(var(--kopf) + 1.25rem);}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,select,textarea{font:inherit;color:inherit;}
::selection{background:var(--brand);color:#fff;}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px;}
svg{flex-shrink:0;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip{position:absolute;left:-9999px;top:0;z-index:1500;background:var(--brand);color:#fff;padding:.7rem 1.2rem;font-weight:700;}
.skip:focus{left:0;}

.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad);}
.wrap-schmal{max-width:820px;}

/* ---------- Typografie ---------- */
h1,h2,h3,h4{font-weight:800;line-height:1.1;letter-spacing:-.022em;color:var(--ink);text-wrap:balance;}
h1{font-size:clamp(2.35rem,5vw,3.9rem);line-height:1.04;letter-spacing:-.03em;}
h2{font-size:clamp(1.85rem,3.4vw,2.7rem);}
h3{font-size:clamp(1.15rem,1.6vw,1.35rem);letter-spacing:-.012em;}
h4{font-size:1rem;}
p{text-wrap:pretty;}
h1 em,h2 em{font-style:normal;color:var(--brand);}
.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;padding:.32rem .8rem;border-radius:999px;
  background:var(--brand-100);color:var(--brand);font-size:.76rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.1rem;
}
.eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
.lead{font-size:clamp(1.02rem,1.3vw,1.17rem);color:var(--ink-2);max-width:58ch;line-height:1.6;}
.muted{color:var(--ink-2);}
.fein{color:var(--ink-3);font-size:.9rem;}
.num{font-variant-numeric:tabular-nums;}

/* ---------- Knöpfe ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.85rem 1.45rem;border-radius:var(--r-sm);font-weight:700;font-size:1rem;
  min-height:52px;border:1px solid transparent;white-space:nowrap;text-align:center;
  transition:transform .15s,box-shadow .15s,background .15s,border-color .15s,color .15s;
}
.btn svg{width:18px;height:18px;}
.btn-1{background:var(--brand);color:#fff;box-shadow:0 8px 22px rgba(0,81,145,.24);}
.btn-1:hover{background:var(--brand-700);transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,81,145,.3);}
.btn-2{background:var(--paper);border-color:var(--line-2);color:var(--ink);}
.btn-2:hover{border-color:var(--brand);color:var(--brand);}
.btn-3{background:var(--ink);color:#fff;}
.btn-3:hover{background:#000;}
.btn-wa{background:var(--wa);color:#fff;}
.btn-wa:hover{background:#15703C;}
.btn-hell{background:#fff;color:var(--brand);}
.btn-hell:hover{background:var(--brand-100);}
.btn-rand-hell{border-color:rgba(255,255,255,.35);color:#fff;}
.btn-rand-hell:hover{background:rgba(255,255,255,.1);}
.btn-block{width:100%;}
.btn:disabled{opacity:.6;cursor:default;transform:none;}
.btn-reihe{display:flex;flex-wrap:wrap;gap:.75rem;}

/* ---------- Kopfzeile ---------- */
.kopf{
  position:sticky;top:0;z-index:900;
  background:rgba(255,255,255,.85);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s;
}
.kopf.fest{border-color:var(--line);box-shadow:var(--sh-1);}
.kopf-in{height:var(--kopf);display:flex;align-items:center;gap:1rem;}
.marke{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.25rem;letter-spacing:-.03em;color:var(--brand);flex:none;white-space:nowrap;}
.marke img{height:46px;width:auto;}
@media(max-width:900px){.marke img{height:40px;}.marke{font-size:1.18rem;}}
.nav-haupt{display:flex;gap:.15rem;margin-left:auto;}
.nav-haupt a{padding:.5rem .7rem;border-radius:8px;font-weight:600;font-size:.93rem;color:var(--ink-2);white-space:nowrap;transition:background .15s,color .15s;}
.nav-haupt a:hover,.nav-haupt a.aktiv{color:var(--brand);background:var(--brand-50);}
.kopf-cta{display:flex;align-items:center;gap:.5rem;}
.tel-link{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;color:var(--ink);padding:.55rem .75rem;border-radius:8px;white-space:nowrap;}
.tel-link:hover{color:var(--brand);background:var(--brand-50);}
.tel-link svg{width:18px;height:18px;color:var(--brand);}
.kopf .btn{min-height:44px;padding:.6rem 1.1rem;font-size:.95rem;}
.menu-knopf{display:none;width:44px;height:44px;border-radius:10px;align-items:center;justify-content:center;color:var(--ink);}
.menu-knopf:hover{background:var(--brand-50);}
.menu-knopf svg{width:24px;height:24px;}
.tel-rund{display:none;width:44px;height:44px;border-radius:10px;align-items:center;justify-content:center;background:var(--brand-100);color:var(--brand);}
.tel-rund svg{width:20px;height:20px;}

/* Mobiles Menü */
.mobnav{
  position:fixed;inset:0;z-index:950;background:var(--paper);padding:calc(var(--kopf) + 1rem) var(--pad) 2rem;
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s ease;visibility:hidden;
}
.mobnav.offen{transform:none;visibility:visible;}
.mobnav-liste{display:flex;flex-direction:column;gap:.2rem;flex:1;}
.mobnav-liste a{padding:.95rem .5rem;border-bottom:1px solid var(--line);font-size:1.25rem;font-weight:700;display:flex;justify-content:space-between;align-items:center;}
.mobnav-liste a svg{width:20px;height:20px;color:var(--ink-3);}
.mobnav-fuss{display:flex;flex-direction:column;gap:.6rem;padding-top:1.5rem;}
.mobnav-fuss .btn{min-height:54px;}
.mobnav-info{text-align:center;color:var(--ink-3);font-size:.9rem;margin-top:.35rem;}
body.menu-offen{overflow:hidden;}

@media(max-width:1120px){.kopf-cta .tel-link{display:none;}}
@media(max-width:900px){
  .nav-haupt,.kopf-cta .tel-link,.kopf-cta .btn{display:none;}
  .kopf-cta{margin-left:auto;}
  .menu-knopf,.tel-rund{display:inline-flex;}
}

/* ---------- Abschnitte ---------- */
.abschnitt{padding:clamp(3.5rem,8vw,6.5rem) 0;}
.abschnitt-eng{padding:clamp(2.5rem,5vw,4rem) 0;}
.grau{background:var(--paper-2);}
.dunkel{background:var(--navy);color:#fff;}
.dunkel h2,.dunkel h3{color:#fff;}
.dunkel .lead{color:rgba(255,255,255,.72);}
.dunkel .eyebrow{background:rgba(255,255,255,.1);color:#BFD8F2;}
.abschnitt-kopf{max-width:720px;margin-bottom:clamp(2rem,4vw,3.25rem);}
.abschnitt-kopf h2{margin-bottom:.9rem;}
.abschnitt-kopf.mitte{margin-inline:auto;text-align:center;}
.abschnitt-kopf.mitte .lead{margin-inline:auto;}
.kopf-zeile{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3.25rem);}
.kopf-zeile .abschnitt-kopf{margin-bottom:0;}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(2.5rem,6vw,5.5rem) 0 clamp(2.5rem,5vw,4.5rem);}
.hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(55% 60% at 88% 8%,rgba(0,81,145,.12),transparent 62%),
             radial-gradient(40% 45% at 6% 95%,rgba(0,81,145,.07),transparent 60%);
}
.hero-grid{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.hero h1{margin:0 0 1.2rem;}
.hero .lead{margin-bottom:1.8rem;}
.hero-btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.6rem;}
.hero-liste{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;list-style:none;color:var(--ink-2);font-size:.95rem;font-weight:600;}
.hero-liste li{display:inline-flex;align-items:center;gap:.45rem;}
.hero-liste svg{width:18px;height:18px;color:var(--ok);}
.hero-bild{position:relative;}
.hero-bild img{
  width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-lg);
  box-shadow:var(--sh-3);background:var(--paper-2);
}
.hero-karte{
  position:absolute;left:-1.6rem;bottom:2.2rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:.9rem 1.1rem;box-shadow:var(--sh-2);display:flex;gap:.85rem;align-items:center;max-width:290px;
}
.hero-karte .ico{width:42px;height:42px;border-radius:12px;background:var(--brand-100);color:var(--brand);display:grid;place-items:center;flex:none;}
.hero-karte .ico svg{width:22px;height:22px;}
.hero-karte b{display:block;font-size:.95rem;}
.hero-karte span{font-size:.84rem;color:var(--ink-2);line-height:1.4;display:block;}
.hero-tag{
  position:absolute;right:1rem;top:1rem;background:rgba(14,27,42,.72);color:#fff;backdrop-filter:blur(8px);
  border-radius:999px;padding:.4rem .85rem;font-size:.8rem;font-weight:600;
}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:2.25rem;}
  .hero-bild{max-width:560px;}
  .hero-bild img{aspect-ratio:4/3;}
  .hero-karte{left:1rem;bottom:1rem;}
}
@media(max-width:520px){
  .hero-karte{position:static;margin-top:.9rem;max-width:none;}
}


/* ---------- Foto-Hero (Startseite) ---------- */
.hero2{position:relative;overflow:hidden;background:var(--paper);}
.hero2::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(45% 55% at 8% 95%,rgba(0,81,145,.07),transparent 60%);
}
.hero2-in{position:relative;z-index:2;display:flex;align-items:center;
  min-height:min(74vh,680px);padding-block:clamp(2.5rem,6vw,5rem);}
.hero2-txt{max-width:54%;}
.hero2-txt h1{margin-bottom:1.2rem;}
.hero2-txt .lead{margin-bottom:1.8rem;}
.hero2-foto{position:absolute;top:0;right:0;bottom:0;width:46%;z-index:1;overflow:hidden;}
.hero2-foto img{width:100%;height:100%;object-fit:cover;}
@media(prefers-reduced-motion:no-preference){
  .hero2-foto img{animation:kenburns 28s ease-in-out infinite alternate;}
  @keyframes kenburns{from{transform:scale(1);}to{transform:scale(1.1) translateX(-1.5%);}}
}
.hero2-foto::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--paper) 0,rgba(255,255,255,0) 24%);}
.hero2-foto .hero-tag{z-index:2;}
.hero2-foto .hero-karte{position:absolute;left:1.4rem;bottom:1.6rem;z-index:2;}
@media(max-width:900px){
  .hero2-in{display:block;min-height:0;padding-bottom:0;}
  .hero2-txt{max-width:100%;}
  .hero2-foto{position:relative;width:auto;height:min(58vw,380px);margin:2.2rem var(--pad) 0;
    border-radius:var(--r-lg);box-shadow:var(--sh-2);}
  .hero2-foto::after{display:none;}
  .hero2 + .abschnitt-eng .wrap{padding-top:0;}
}
@media(max-width:520px){
  .hero2-foto .hero-karte{left:.8rem;right:.8rem;bottom:.8rem;max-width:none;}
}

/* ---------- Dunkles Band mit Foto im Hintergrund ---------- */
.band-foto{position:relative;overflow:hidden;}
.band-foto::before{content:'';position:absolute;inset:-24px;z-index:0;
  background:url('/img/hero-haus-620.webp') center 30%/cover no-repeat;
  filter:blur(4px);transform:scale(1.08);}
.band-foto::after{content:'';position:absolute;inset:0;z-index:0;background:rgba(9,26,45,.86);}
.band-foto .wrap{position:relative;z-index:1;}

/* ---------- Fakten-Leiste ---------- */
.fakten{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.fakt{display:flex;gap:.9rem;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.15rem 1.2rem;}
.fakt .ico{width:42px;height:42px;border-radius:12px;background:var(--brand-100);color:var(--brand);display:grid;place-items:center;flex:none;}
.fakt .ico svg{width:21px;height:21px;}
.fakt b{display:block;font-size:.98rem;margin-bottom:.1rem;}
.fakt span{font-size:.88rem;color:var(--ink-2);line-height:1.45;}
@media(max-width:980px){.fakten{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.fakten{grid-template-columns:1fr;}}

/* ---------- Leistungen: Karten ---------- */
.karten{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.karte{
  position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:1.6rem;display:flex;flex-direction:column;gap:.85rem;
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.karte:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:rgba(0,81,145,.25);}
.karte-ico{width:54px;height:54px;border-radius:14px;background:var(--brand-100);color:var(--brand);display:grid;place-items:center;}
.karte-ico svg{width:27px;height:27px;}
.karte h3{font-size:1.28rem;}
.karte p{color:var(--ink-2);font-size:.96rem;flex:1;}
.karte-fuss{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.95rem;border-top:1px solid var(--line);}
.preis-tag{font-weight:800;font-size:1.12rem;white-space:nowrap;}
.preis-tag small{font-weight:500;color:var(--ink-3);font-size:.82rem;margin-left:.3rem;}
.mehr{font-weight:700;color:var(--brand);display:inline-flex;align-items:center;gap:.3rem;font-size:.95rem;}
.mehr svg{width:17px;height:17px;transition:transform .15s;}
.karte:hover .mehr svg{transform:translateX(3px);}
.karte-link::after{content:'';position:absolute;inset:0;border-radius:inherit;}
.karte-cta{background:var(--navy);color:#fff;border-color:var(--navy);justify-content:center;}
.karte-cta h3{color:#fff;}
.karte-cta p{color:rgba(255,255,255,.72);flex:0;}
.karte-cta .karte-ico{background:rgba(255,255,255,.1);color:#fff;}
.karte-cta:hover{border-color:var(--navy);}
@media(max-width:980px){.karten{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.karten{grid-template-columns:1fr;}}

/* ---------- Vorher / Nachher ---------- */
.erg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.erg{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.ba{
  position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-2);
  user-select:none;-webkit-user-select:none;touch-action:pan-y;cursor:ew-resize;
  --x:50%;
}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.ba .ba-n{clip-path:inset(0 0 0 var(--x));}
.ba-linie{position:absolute;top:0;bottom:0;left:var(--x);width:2px;background:#fff;transform:translateX(-1px);box-shadow:0 0 0 1px rgba(0,0,0,.15);}
.ba-griff{
  position:absolute;top:50%;left:var(--x);width:46px;height:46px;border-radius:50%;background:#fff;
  transform:translate(-50%,-50%);display:grid;place-items:center;color:var(--brand);box-shadow:0 4px 14px rgba(0,0,0,.25);
}
.ba-griff svg{width:22px;height:22px;}
.ba-mark{position:absolute;top:.8rem;padding:.3rem .7rem;border-radius:999px;background:rgba(14,27,42,.72);color:#fff;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;backdrop-filter:blur(6px);}
.ba-mark-v{left:.8rem;}
.ba-mark-n{right:.8rem;background:rgba(0,81,145,.85);}
.ba-tipp{position:absolute;bottom:.8rem;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.92);color:var(--ink);padding:.3rem .7rem;border-radius:999px;font-size:.76rem;font-weight:700;transition:opacity .3s;}
.ba.beruehrt .ba-tipp{opacity:0;}
.erg-fuss{padding:1.05rem 1.2rem 1.2rem;}
.erg-fuss h3{font-size:1.08rem;margin-bottom:.2rem;}
.erg-fuss p{color:var(--ink-2);font-size:.92rem;}
.foto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.25rem;}
.foto{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--paper);}
.foto img{aspect-ratio:4/3;object-fit:cover;width:100%;}
.foto figcaption{padding:.8rem 1.1rem;font-size:.9rem;color:var(--ink-2);font-weight:600;}
@media(max-width:980px){.erg-grid,.foto-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.erg-grid,.foto-grid{grid-template-columns:1fr;}}

/* ---------- Zahlen ---------- */
.zahlen{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.zahl{padding:1.5rem 1rem;text-align:center;border-radius:var(--r);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);}
.zahl b{display:block;font-size:clamp(2rem,3.6vw,2.8rem);font-weight:800;letter-spacing:-.03em;line-height:1.05;color:#fff;}
.zahl span{display:block;margin-top:.3rem;color:rgba(255,255,255,.68);font-size:.92rem;font-weight:600;}
@media(max-width:700px){.zahlen{grid-template-columns:repeat(2,1fr);}}

/* ---------- Ablauf ---------- */
.ablauf{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;counter-reset:schritt;}
.schritt{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem 1.4rem 1.5rem;}
.schritt-nr{
  width:46px;height:46px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;
  font-weight:800;font-size:1.05rem;margin-bottom:1.1rem;box-shadow:0 6px 16px rgba(0,81,145,.28);
}
.schritt h3{font-size:1.15rem;margin-bottom:.4rem;}
.schritt p{color:var(--ink-2);font-size:.95rem;}
.schritt::after{
  content:'';position:absolute;top:2.9rem;right:-1.25rem;width:1.25rem;height:2px;background:var(--line-2);
}
.schritt:last-child::after{display:none;}
@media(max-width:980px){.ablauf{grid-template-columns:repeat(2,1fr);}.schritt::after{display:none;}}
@media(max-width:540px){.ablauf{grid-template-columns:1fr;}}

/* ---------- Über mich ---------- */
.ueber{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.ueber-bilder{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.ueber-bilder img{border-radius:var(--r);object-fit:cover;width:100%;background:var(--paper-2);}
.ueber-bilder .gross{grid-column:1/-1;aspect-ratio:4/4.2;box-shadow:var(--sh-2);}
.ueber-bilder .klein{aspect-ratio:16/10;}
.ueber h2{margin:0 0 1rem;}
.zitat{
  margin:1.4rem 0;padding:1.1rem 1.3rem;border-left:3px solid var(--brand);background:var(--brand-50);
  border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:1.05rem;font-weight:500;color:var(--ink);line-height:1.55;
}
.punkte{list-style:none;display:grid;gap:.6rem;margin-top:1.2rem;}
.punkte li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-2);font-size:.97rem;}
.punkte svg{width:20px;height:20px;color:var(--ok);flex:none;margin-top:.15rem;}
@media(max-width:900px){.ueber{grid-template-columns:1fr;}.ueber-bilder{max-width:520px;}}

/* ---------- App-Hinweis ---------- */
.app-band{
  display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;
  background:linear-gradient(135deg,var(--brand-800),var(--brand));color:#fff;border-radius:var(--r-lg);
  padding:clamp(1.8rem,4vw,3rem);overflow:hidden;position:relative;
}
.app-band::after{
  content:'';position:absolute;right:-120px;top:-120px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.14),transparent 65%);pointer-events:none;
}
.app-band h2{color:#fff;font-size:clamp(1.6rem,2.8vw,2.2rem);margin-bottom:.7rem;}
.app-band p{color:rgba(255,255,255,.82);max-width:52ch;}
.app-band .btn-reihe{margin-top:1.4rem;}
.app-punkte{list-style:none;display:grid;gap:.7rem;position:relative;}
.app-punkte li{display:flex;gap:.7rem;align-items:flex-start;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-sm);padding:.8rem 1rem;font-size:.95rem;font-weight:600;}
.app-punkte svg{width:20px;height:20px;flex:none;margin-top:.1rem;color:#BFE3FF;}
@media(max-width:860px){.app-band{grid-template-columns:1fr;}}

/* ---------- Preise ---------- */
.preis-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:start;}
.preis-grid>*,.kontakt-grid>*,.gebiet-grid>*,.zwei-spalten>*,.hero-grid>*,.ueber>*{min-width:0;}
.preis-tab{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.preis-tab th,.preis-tab td{padding:.95rem 1.1rem;text-align:left;border-bottom:1px solid var(--line);}
.preis-tab th{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700;background:var(--paper-2);}
.preis-tab tr:last-child td{border-bottom:none;}
.preis-tab td:last-child,.preis-tab th:last-child{text-align:right;}
.preis-tab td:last-child{font-weight:800;white-space:nowrap;}
.preis-tab td:first-child{font-weight:600;}
.preis-hinweis{font-size:.9rem;color:var(--ink-3);margin-top:1rem;line-height:1.55;}
.einheit-mobil{display:none;}
@media(max-width:560px){
  .preis-tab .muted{display:none;}
  .preis-tab th,.preis-tab td{padding:.8rem .85rem;}
  .einheit-mobil{display:block;font-weight:500;color:var(--ink-3);font-size:.8rem;}
}

.rechner{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2rem);box-shadow:var(--sh-2);}
.rechner h3{font-size:1.35rem;margin-bottom:.3rem;}
.rechner-intro{color:var(--ink-2);font-size:.95rem;margin-bottom:1.2rem;}
.posten{display:grid;gap:.8rem;}
.posten-zeile{border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;transition:border-color .15s,background .15s;}
.posten-zeile.aktiv{border-color:var(--brand);background:var(--brand-50);}
.posten-kopf{display:flex;align-items:center;justify-content:space-between;gap:.8rem;cursor:pointer;}
.posten-kopf label{display:flex;align-items:center;gap:.7rem;font-weight:700;cursor:pointer;}
.posten-kopf input{width:20px;height:20px;accent-color:var(--brand);cursor:pointer;}
.posten-satz{font-size:.85rem;color:var(--ink-3);white-space:nowrap;font-weight:600;}
.posten-body{display:none;margin-top:.9rem;gap:.8rem;flex-direction:column;}
.posten-zeile.aktiv .posten-body{display:flex;}
.typen{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;}
.typen label{
  display:flex;flex-direction:column;gap:.1rem;padding:.6rem .7rem;border:1px solid var(--line-2);border-radius:var(--r-sm);
  cursor:pointer;font-size:.86rem;font-weight:700;background:var(--paper);text-align:center;align-items:center;
}
.typen label span{font-weight:500;color:var(--ink-3);font-size:.8rem;}
.typen input{position:absolute;opacity:0;pointer-events:none;}
.typen label:has(input:checked){border-color:var(--brand);background:var(--brand-100);color:var(--brand);}
.typen label:has(input:checked) span{color:var(--brand);}
.menge-zeile{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;}
.menge-zeile .etikett{font-size:.9rem;color:var(--ink-2);font-weight:600;}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);overflow:hidden;}
.stepper button{width:42px;height:42px;display:grid;place-items:center;color:var(--brand);font-size:1.3rem;font-weight:700;}
.stepper button:hover{background:var(--brand-50);}
.stepper button:disabled{color:var(--line-2);background:none;cursor:default;}
.stepper input{width:64px;height:42px;border:none;border-inline:1px solid var(--line-2);text-align:center;font-weight:800;font-size:1rem;background:var(--paper);-moz-appearance:textfield;}
.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;}
.stepper span{padding:0 .75rem;font-size:.85rem;color:var(--ink-3);font-weight:600;}
.zeile-summe{font-weight:800;font-size:1.05rem;white-space:nowrap;}
.zusaetze{display:grid;gap:.45rem;}
.zusaetze label{display:flex;align-items:center;gap:.6rem;font-size:.92rem;font-weight:600;cursor:pointer;}
.zusaetze input{width:18px;height:18px;accent-color:var(--brand);}
.zusaetze small{color:var(--ink-3);font-weight:500;margin-left:auto;white-space:nowrap;}
.turnus{border:none;margin-top:1.1rem;}
.turnus legend{font-weight:700;font-size:.92rem;margin-bottom:.55rem;}
.turnus-liste{display:flex;flex-wrap:wrap;gap:.45rem;}
.turnus-liste label{position:relative;cursor:pointer;}
.turnus-liste input{position:absolute;opacity:0;pointer-events:none;}
.turnus-liste span{display:inline-block;padding:.45rem .85rem;border:1px solid var(--line-2);border-radius:999px;font-size:.86rem;font-weight:700;background:var(--paper);}
.turnus-liste input:checked + span{border-color:var(--brand);background:var(--brand);color:#fff;}
.turnus-liste input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px;}
.turnus-hinweis{font-size:.86rem;color:var(--ink-2);margin-top:.7rem;padding:.7rem .9rem;background:var(--brand-50);border-radius:var(--r-sm);}
.summe{margin-top:1.2rem;padding:1.1rem 1.2rem;border-radius:var(--r);background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.summe-l{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:700;}
.summe-p{font-size:2rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;}
.summe small{display:block;font-size:.84rem;color:rgba(255,255,255,.7);max-width:100%;}
.rechner-status{font-size:.9rem;margin-top:.7rem;min-height:1.3em;color:var(--ok);font-weight:600;}
.rechner-status.fehler{color:var(--warn);}
@media(max-width:900px){.preis-grid{grid-template-columns:1fr;}}
@media(max-width:520px){.typen{grid-template-columns:1fr;}.typen label{flex-direction:row;justify-content:space-between;}}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:.7rem;max-width:860px;}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.faq details[open]{border-color:rgba(0,81,145,.3);box-shadow:var(--sh-1);}
.faq summary{
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.1rem 1.3rem;font-weight:700;font-size:1.02rem;cursor:pointer;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary svg{width:22px;height:22px;color:var(--brand);transition:transform .2s;flex:none;}
.faq details[open] summary svg{transform:rotate(45deg);}
.faq-a{padding:0 1.3rem 1.2rem;color:var(--ink-2);font-size:.97rem;}
.faq-a p + p{margin-top:.6rem;}

/* ---------- Kundenstimmen ---------- */
.stimmen{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.stimme{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;display:flex;flex-direction:column;gap:.9rem;}
.sterne{display:flex;gap:.15rem;color:#E8A317;}
.sterne svg{width:18px;height:18px;}
.stimme p{font-size:1.02rem;line-height:1.55;flex:1;}
.stimme cite{font-style:normal;font-size:.88rem;color:var(--ink-3);font-weight:600;}
@media(max-width:900px){.stimmen{grid-template-columns:1fr;}}

/* ---------- Arbeitsgebiet ---------- */
.gebiet-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.5rem,4vw,3rem);align-items:start;}
.orte{display:flex;flex-wrap:wrap;gap:.45rem;}
.ort{padding:.4rem .8rem;border-radius:999px;border:1px solid var(--line-2);background:var(--paper);font-size:.86rem;font-weight:600;color:var(--ink-2);}
.ort.haupt{border-color:var(--brand);background:var(--brand-100);color:var(--brand);}
.karte-rahmen{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);}
.karte-platz{padding:2.5rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.7rem;min-height:360px;justify-content:center;background:
  radial-gradient(circle at 50% 50%,rgba(0,81,145,.10) 0,rgba(0,81,145,.10) 120px,transparent 121px),var(--paper-2);}
.karte-platz svg{width:34px;height:34px;color:var(--brand);}
.karte-platz h3{font-size:1.1rem;}
.karte-platz p{color:var(--ink-2);font-size:.92rem;max-width:44ch;}
#karte{display:none;height:400px;}
.karte-legende{display:flex;gap:1.3rem;padding:.8rem 1.1rem;font-size:.86rem;color:var(--ink-2);border-top:1px solid var(--line);flex-wrap:wrap;}
.karte-legende span{display:inline-flex;align-items:center;gap:.45rem;}
.punkt-blau{width:12px;height:12px;border-radius:50%;background:var(--brand);display:inline-block;}
.punkt-kreis{width:12px;height:12px;border-radius:50%;border:2px solid var(--brand);background:rgba(0,81,145,.15);display:inline-block;}
@media(max-width:900px){.gebiet-grid{grid-template-columns:1fr;}}

/* ---------- Kontakt ---------- */
.kontakt-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3rem);align-items:start;}
.formular{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2rem);box-shadow:var(--sh-1);}
.f-reihe{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.feld{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;}
.feld label{font-weight:700;font-size:.9rem;}
.feld label span{color:var(--warn);}
.feld input,.feld select,.feld textarea{
  width:100%;padding:.8rem .95rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);
  min-height:50px;transition:border-color .15s,box-shadow .15s;
}
.feld input:focus,.feld select:focus,.feld textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(0,81,145,.15);}
.feld textarea{min-height:140px;resize:vertical;}
.feld select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2345586C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.6rem;}
.f-hinweis{font-size:.84rem;color:var(--ink-3);}
.falle{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden;}
.f-datenschutz{font-size:.84rem;color:var(--ink-3);margin:.2rem 0 1.1rem;line-height:1.5;}
.f-datenschutz a{color:var(--brand);text-decoration:underline;}
.f-meldung{display:none;margin-top:1rem;padding:.9rem 1.1rem;border-radius:var(--r-sm);font-weight:600;font-size:.95rem;}
.f-meldung.ok{display:block;background:#E6F4EC;color:var(--ok);}
.f-meldung.fehler{display:block;background:#FBEAE8;color:var(--warn);}
.direkt{background:var(--navy);color:#fff;border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2rem);display:flex;flex-direction:column;gap:1.1rem;}
.direkt h3{color:#fff;font-size:1.3rem;}
.direkt-el{display:flex;gap:.9rem;align-items:flex-start;}
.direkt-el .ico{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.1);display:grid;place-items:center;flex:none;}
.direkt-el .ico svg{width:20px;height:20px;color:#BFE3FF;}
.direkt-el b{display:block;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:.1rem;}
.direkt-el a,.direkt-el span{font-weight:600;color:#fff;}
.direkt-el a:hover{text-decoration:underline;}
.wa-box{margin-top:.4rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.12);}
.wa-box p{color:rgba(255,255,255,.75);font-size:.92rem;margin-bottom:.9rem;}
@media(max-width:900px){.kontakt-grid{grid-template-columns:1fr;}}
@media(max-width:560px){.f-reihe{grid-template-columns:1fr;}}

/* ---------- CTA-Band ---------- */
.cta-band{background:var(--brand);color:#fff;border-radius:var(--r-lg);padding:clamp(2rem,5vw,3.5rem);display:grid;grid-template-columns:1.3fr .7fr;gap:2rem;align-items:center;}
.cta-band h2{color:#fff;margin-bottom:.6rem;}
.cta-band p{color:rgba(255,255,255,.85);max-width:50ch;}
.cta-band .btn-reihe{justify-content:flex-end;}
@media(max-width:860px){.cta-band{grid-template-columns:1fr;}.cta-band .btn-reihe{justify-content:flex-start;}}

/* ---------- Fuß ---------- */
footer{background:var(--navy);color:rgba(255,255,255,.72);padding:clamp(3rem,6vw,4.5rem) 0 0;font-size:.93rem;}
.fuss-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;padding-bottom:2.5rem;}
.fuss-marke{display:inline-block;margin-bottom:1.1rem;}
.fuss-marke img{height:78px;width:auto;}
.fuss-grid h4{color:#fff;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.9rem;}
.fuss-grid ul{list-style:none;display:grid;gap:.5rem;}
.fuss-grid a:hover{color:#fff;text-decoration:underline;}
.fuss-grid p{line-height:1.6;}
.fuss-unten{border-top:1px solid rgba(255,255,255,.1);padding:1.3rem 0;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.86rem;color:rgba(255,255,255,.55);}
.fuss-unten a{color:rgba(255,255,255,.75);}
.fuss-unten a:hover{color:#fff;}
@media(max-width:900px){.fuss-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.fuss-grid{grid-template-columns:1fr;}}

/* ---------- Mobile Leiste unten ---------- */
.mobil-leiste{
  position:fixed;left:0;right:0;bottom:0;z-index:850;display:none;gap:.6rem;padding:.6rem var(--pad) calc(.6rem + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-top:1px solid var(--line);
  transition:transform .25s;
}
.mobil-leiste .btn{flex:1;min-height:50px;padding:.6rem .8rem;font-size:.95rem;}
.mobil-leiste.weg{transform:translateY(110%);}
@media(max-width:760px){.mobil-leiste{display:flex;}body{padding-bottom:78px;}}

/* ---------- Cookie-Hinweis ---------- */
.cc{
  position:fixed;left:1rem;bottom:1rem;z-index:1000;max-width:420px;width:calc(100% - 2rem);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-2);padding:1.3rem 1.4rem;
  display:none;
}
.cc.zeigen{display:block;}
.cc h3{font-size:1.05rem;margin-bottom:.4rem;}
.cc p{font-size:.9rem;color:var(--ink-2);margin-bottom:1rem;line-height:1.5;}
.cc p a{color:var(--brand);text-decoration:underline;}
.cc-btns{display:flex;gap:.6rem;flex-wrap:wrap;}
.cc-btns .btn{min-height:44px;padding:.55rem 1rem;font-size:.92rem;flex:1;}
@media(max-width:760px){.cc{bottom:84px;}}

/* ---------- Leistungsseiten ---------- */
.brotkrumen{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;font-size:.86rem;color:var(--ink-3);margin-bottom:1.2rem;font-weight:600;}
.brotkrumen li + li::before{content:'/';margin-right:.4rem;color:var(--line-2);}
.brotkrumen a:hover{color:var(--brand);}
.seite-hero{position:relative;overflow:hidden;padding:clamp(2rem,5vw,4.5rem) 0 clamp(2rem,5vw,4rem);background:var(--paper-2);}
.seite-hero::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(50% 60% at 90% 10%,rgba(0,81,145,.10),transparent 62%);}
.seite-hero .hero-grid{grid-template-columns:1.1fr .9fr;}
.seite-hero h1{font-size:clamp(2.1rem,4.2vw,3.3rem);margin-bottom:1rem;}
.seite-hero .hero-bild img{aspect-ratio:4/3;}
.preis-chip{display:inline-flex;align-items:baseline;gap:.4rem;padding:.55rem 1rem;border-radius:var(--r-sm);background:var(--paper);border:1px solid var(--line);margin-bottom:1.4rem;box-shadow:var(--sh-1);}
.preis-chip b{font-size:1.3rem;font-weight:800;}
.preis-chip span{font-size:.88rem;color:var(--ink-3);font-weight:600;}
.zwei-spalten{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start;}
.liste-haken{list-style:none;display:grid;gap:.7rem;}
.liste-haken li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-2);}
.liste-haken svg{width:20px;height:20px;color:var(--ok);flex:none;margin-top:.2rem;}
.einsatz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;}
.einsatz{display:flex;gap:.8rem;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:.85rem 1rem;font-weight:600;font-size:.95rem;}
.einsatz .ico{width:36px;height:36px;border-radius:10px;background:var(--brand-100);color:var(--brand);display:grid;place-items:center;flex:none;}
.einsatz .ico svg{width:18px;height:18px;}
.preis-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.3rem,3vw,2rem);box-shadow:var(--sh-1);}
.preis-box .preis-tab{border:none;border-radius:0;}
.preis-box .preis-tab th{display:none;}
.preis-box .preis-tab td{padding-inline:0;}
.leist-weitere{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.leist-weitere .karte{padding:1.3rem;}
.leist-weitere .karte-ico{width:46px;height:46px;}
.leist-weitere .karte-ico svg{width:23px;height:23px;}
.leist-weitere h3{font-size:1.1rem;}
.leist-weitere .karte-fuss{flex-direction:column;align-items:flex-start;gap:.45rem;}
@media(max-width:980px){.leist-weitere{grid-template-columns:repeat(2,1fr);}}
@media(max-width:980px) and (min-width:561px){.leist-weitere .karte:last-child{grid-column:span 2;}}
@media(max-width:900px){.zwei-spalten{grid-template-columns:1fr;}.seite-hero .hero-grid{grid-template-columns:1fr;}}
@media(max-width:560px){.einsatz-grid{grid-template-columns:1fr;}.leist-weitere{grid-template-columns:1fr;}}

/* ---------- Rechtstexte ---------- */
.text-seite{padding:clamp(2.5rem,5vw,4rem) 0 clamp(3rem,6vw,5rem);}
.text-seite h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:.5rem;}
.text-seite .stand{color:var(--ink-3);font-size:.92rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line);margin-bottom:2rem;}
.text-seite h2{font-size:1.3rem;margin:2.2rem 0 .7rem;}
.text-seite p,.text-seite li{color:var(--ink-2);line-height:1.7;margin-bottom:.7rem;}
.text-seite ul{padding-left:1.3rem;margin-bottom:.8rem;}
.text-seite a{color:var(--brand);text-decoration:underline;}
.text-seite strong{color:var(--ink);}
.kasten{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.3rem;margin-bottom:1rem;line-height:1.7;color:var(--ink-2);}

/* ---------- Einblenden beim Scrollen ---------- */
@media(prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease;}
  .rv.in{opacity:1;transform:none;}
  .rv-2{transition-delay:.08s;}.rv-3{transition-delay:.16s;}.rv-4{transition-delay:.24s;}.rv-5{transition-delay:.32s;}.rv-6{transition-delay:.4s;}
}
.kein-io .rv{opacity:1;transform:none;}

/* ---------- Druck ---------- */
@media print{
  .kopf,.mobil-leiste,.cc,.mobnav,.karte-rahmen,.hero::before,.skip{display:none!important;}
  body{padding-bottom:0;}
  .rv{opacity:1!important;transform:none!important;}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em;color:#666;}
}
