/* Haustechnik Dorn, Entwurf 3 „Schnitt“. Welt: die Schnittzeichnung aus dem Planordner. Planpapier, blaue Linien, die Inhalt
   ordnen, eine gelbe Markierung, scharfe Ecken, eine Schrift (Host Grotesk, variabel). Fotos als eingesetzte Tafeln. */
@font-face{font-family:"Host Grotesk";font-style:normal;font-weight:300 800;font-display:swap;src:url(fonts/host-grotesk-latin-wght.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Host Grotesk";font-style:normal;font-weight:300 800;font-display:swap;src:url(fonts/host-grotesk-latin-ext-wght.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Host Fallback";src:local("Helvetica Neue"),local("Arial");size-adjust:98%;ascent-override:94%;descent-override:24%}

:root{
  --paper:#F6F7F5; --paper-2:#EBEFF2; --weiss:#FFFFFF;
  --ink:#0B1623; --body:#2E3B49; --mute:#5E6B79;
  --blau:#0E4170; --blau-2:#0A2E52; --linie:rgba(14,65,112,.32); --linie-2:rgba(14,65,112,.62);
  --gelb:#FDC600; --gelb-2:#E9B400;
  --font:"Host Grotesk","Host Fallback",system-ui,sans-serif;
  --r:0; --hh:72px;
  --wide:1280px; --gut:clamp(20px,4vw,48px); --measure:62ch;
  --pad:clamp(80px,9vw,136px);
  --eo:cubic-bezier(.23,1,.32,1); --eio:cubic-bezier(.77,0,.175,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip;scroll-padding-top:calc(var(--hh) + 16px);scrollbar-color:var(--linie-2) transparent}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--body);font-family:var(--font);font-size:17px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-numeric:tabular-nums}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p,figure,dl,dd{margin:0}
h1,h2,h3{color:var(--ink);font-weight:500;letter-spacing:-.025em;line-height:1.06;text-wrap:balance}
strong{font-weight:600}
.nw{white-space:nowrap}
::selection{background:var(--gelb);color:var(--ink)}
::focus-visible{outline:2px solid var(--blau);outline-offset:3px}
input,textarea{caret-color:var(--blau)}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px}
.skip:focus{top:12px}
.wrap{max-width:calc(var(--wide) + 2 * var(--gut));margin:0 auto;padding:0 var(--gut)}
.measure>*{max-width:var(--measure)}
.small{font-size:14.5px;color:var(--mute)}
.lede{font-size:clamp(18px,1.4vw,20px);line-height:1.55;color:var(--body);max-width:56ch;margin-top:18px}
.h-sec{font-size:clamp(30px,3.2vw,46px)}
/* Markierung: der gelbe Strich eines geprüften Plans unter einer Wortgruppe */
.mark{font-style:normal;color:var(--blau)}
.lnk{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--linie-2);color:var(--ink);transition:text-decoration-color .16s ease,color .16s ease}
@media(hover:hover){.lnk:hover{color:var(--blau);text-decoration-color:var(--blau)}}
.ic{width:18px;height:18px;flex:none;transition:transform .18s var(--eo)}

/* Schaltflächen: rechteckig wie ein Feld auf dem Plan. Gelb = Hauptaktion, Kontur = Nebenaktion */
.btn{display:inline-flex;align-items:center;gap:12px;height:54px;padding:0 24px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:15.5px;font-weight:600;letter-spacing:.002em;white-space:nowrap;cursor:pointer;font-family:inherit;transition:background-color .16s ease,color .16s ease,border-color .16s ease,transform .12s ease-out}
.btn:active{transform:scale(.98)}
.btn-gelb,.btn-ink{background:var(--gelb);border-color:var(--gelb);color:var(--ink)}
@media(hover:hover) and (pointer:fine){
  .btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
  .btn:hover .ic{transform:translateX(3px)}
  .btn-gelb:hover,.btn-ink:hover{background:var(--ink);border-color:var(--ink);color:#fff}
}
.tl{display:inline-flex;align-items:center;gap:10px;font-size:15.5px;font-weight:600;color:var(--ink)}
.tl span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:var(--linie-2);transition:text-decoration-color .16s ease}
.tl .ic{width:16px;height:16px}
@media(hover:hover){.tl:hover span{text-decoration-color:var(--blau)}.tl:hover .ic{transform:translateX(3px)}.tl-tel:hover .ic{transform:none}}

/* ---------- Kopf ---------- */
.hdr{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:1px solid var(--blau)}
.hdr-in{max-width:calc(1400px + 2 * var(--gut));margin:0 auto;padding:0 var(--gut);height:var(--hh);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px}
.logo img{height:30px;width:auto}
.nav ul{display:flex;justify-content:center;gap:4px}
.nav-l{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;height:44px;padding:0 14px;background:none;border:0;cursor:pointer;font-family:inherit;font-size:15.5px;font-weight:500;color:var(--ink);box-shadow:inset 0 -2px 0 transparent;transition:box-shadow .16s ease,color .16s ease}
.nav-l .ic{width:14px;height:14px;color:var(--blau)}
.nav-l[aria-expanded=true]{box-shadow:inset 0 -2px 0 var(--gelb)}
.nav-l[aria-expanded=true] .ic{transform:rotate(180deg)}
@media(hover:hover){.nav-l:hover{box-shadow:inset 0 -2px 0 var(--gelb)}}
.hdr-act{display:flex;align-items:center;gap:18px}
.hdr-tel{display:inline-flex;align-items:center;gap:9px;height:44px;font-size:15.5px;font-weight:600;color:var(--ink)}
.hdr-tel .ic{width:17px;height:17px;color:var(--blau)}
@media(hover:hover){.hdr-tel:hover{color:var(--blau)}}
.hdr-cta{height:44px;padding:0 18px;font-size:15px}
.burger{display:none;width:46px;height:46px;border:1px solid var(--blau);background:transparent;color:var(--ink);align-items:center;justify-content:center;cursor:pointer}
.burger .i-x{display:none}
.hdr.menu-open .burger .i-x{display:block}.hdr.menu-open .burger .i-menu{display:none}
/* Aufklapp-Menü als Planblatt */
.dd{position:absolute;left:0;right:0;top:100%;background:var(--weiss);border-bottom:1px solid var(--blau);box-shadow:0 30px 60px -30px rgba(11,22,35,.25);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s ease,transform .2s var(--eo),visibility 0s linear .2s}
.dd.on{opacity:1;visibility:visible;transform:none;transition:opacity .16s ease,transform .2s var(--eo),visibility 0s}
.dd-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);gap:clamp(32px,5vw,80px);padding-top:40px;padding-bottom:44px}
.dd-t{font-size:28px;font-weight:500;letter-spacing:-.025em;color:var(--ink);margin-bottom:10px}
.dd-intro p+p{color:var(--body);max-width:36ch}
.dd-intro .tl{margin-top:20px}
.dd-links{border-top:1px solid var(--blau)}
.dd-links a{display:grid;grid-template-columns:1fr auto;column-gap:16px;padding:14px 0;border-bottom:1px solid var(--linie)}
.dd-links strong{font-weight:600;font-size:17px;color:var(--ink);transition:color .16s ease}
.dd-links span{grid-column:1;font-size:14.5px;color:var(--mute)}
@media(hover:hover){.dd-links a:hover strong{color:var(--blau)}}
.dd-img{margin:0}
.dd-img img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--paper-2);transition:opacity .16s ease}
.dd-img img.wechsel{opacity:0}
.veil{position:fixed;inset:0;z-index:50;background:rgba(11,22,35,.2);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}
.veil.on{opacity:1;visibility:visible;transition:opacity .2s ease,visibility 0s}
.mnav{display:none}

/* ---------- Hero: Planblatt, gestapelt ---------- */
.hero{padding:clamp(28px,3.5vw,52px) 0 0;border-bottom:1px solid var(--blau)}
.hero h1{font-size:clamp(42px,6vw,96px);line-height:.96;letter-spacing:-.04em;max-width:16ch}
.hero h1.lang,.thero h1.lang{font-size:clamp(36px,4.6vw,72px);max-width:20ch}   /* lange Suchbegriffe: zwei Zeilen statt drei */
.hero-r{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,88px);align-items:start;margin-top:clamp(28px,3vw,44px);padding-top:clamp(20px,2.5vw,32px);border-top:1px solid var(--linie)}
.hero .lead{font-size:clamp(17.5px,1.3vw,19.5px);line-height:1.6;color:var(--body);max-width:52ch}
.deck{display:block;font-size:clamp(22px,2vw,30px);line-height:1.2;letter-spacing:-.02em;font-weight:500;color:var(--blau);margin-bottom:14px;text-wrap:balance}
.acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.hero-img{position:relative;overflow:hidden;background:var(--paper-2);margin:clamp(36px,4vw,56px) 0 0}
.hero-img img{width:100%;height:auto}
@media(prefers-reduced-motion:no-preference){
  .js .hero-img img{animation:plotter 1.2s var(--eio) .15s both}
  @keyframes plotter{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
  .js .hero h1,.js .hero .hero-r{animation:auf .7s var(--eo) both}
  .js .hero .hero-r{animation-delay:.1s}
  @keyframes auf{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
/* Schriftfeld wie auf einer Bauzeichnung */
.sf{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3.2fr) minmax(0,2.8fr);border:1px solid var(--blau);margin-top:24px;font-size:14px;line-height:1.4}
.sf>div{padding:12px 14px 14px;border-right:1px solid var(--blau)}
.sf>div:last-child{border-right:0}
.sf dt{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--blau);margin-bottom:6px}
.sf dd{color:var(--ink);font-weight:500}
.sf a{font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--linie-2)}
@media(hover:hover){.sf a:hover{color:var(--blau)}}

/* ---------- Sektionen ---------- */
.sec{padding:var(--pad) 0}
.sec.tint{background:var(--paper-2)}
.crumbs{padding-top:18px;padding-bottom:4px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;font-size:13.5px;color:var(--mute)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--linie-2)}
@media(hover:hover){.crumbs a:hover{color:var(--blau)}}
.crumbs [aria-current]{color:var(--ink)}
.crumbs span{color:var(--mute)}
.crumbs+.sec{padding-top:clamp(56px,6vw,96px)}
.crumbs+.sec.tint,.crumbs+.sec-form{margin-top:18px}

/* Das Haus im Schnitt */
.sec-schnitt{padding-top:clamp(28px,3vw,40px)}
.sec-schnitt .h-sec{margin-bottom:clamp(20px,2.5vw,28px)}
.schnitt{border-top:1px solid var(--blau)}
.sn-e{position:relative;display:grid;grid-template-columns:200px minmax(0,1fr);gap:0 clamp(24px,4vw,56px);padding:clamp(36px,4vw,56px) 0}
.sn-e+.sn-e{border-top:1px solid var(--linie)}
.sn-e::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--blau);transform-origin:top}
.sn-l{position:sticky;top:calc(var(--hh) + 24px);padding-left:30px;font-size:clamp(20px,1.6vw,24px);font-weight:500;letter-spacing:-.02em;color:var(--ink);line-height:1.2}
.sn-l::before{content:"";position:absolute;left:0;top:.55em;width:20px;height:2px;background:var(--blau)}
.sn-k{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--blau);margin-bottom:4px}
.sn-c{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start}
.sn-c .fig img{width:100%;background:var(--paper-2)}
.sn-r li+li{border-top:1px solid var(--linie)}
.sn-r a{display:grid;grid-template-columns:minmax(0,1fr) 24px;grid-template-rows:auto auto;column-gap:20px;padding:20px 0 22px;align-items:start}
.sn-r li:first-child a{padding-top:4px}
.sn-t{font-size:clamp(24px,2.2vw,32px);font-weight:500;letter-spacing:-.025em;color:var(--ink);line-height:1.1;background:linear-gradient(transparent 70%,var(--gelb) 70%,var(--gelb) 94%,transparent 94%) no-repeat 0 0/0% 100%;transition:background-size .28s var(--eo);display:inline;align-self:start;justify-self:start}
.sn-s{grid-column:1;color:var(--body);max-width:44ch;margin-top:8px}
.sn-go{grid-column:2;grid-row:1;width:22px;height:22px;color:var(--blau);margin-top:6px}
@media(hover:hover) and (pointer:fine){.sn-r a:hover .sn-t{background-size:100% 100%}.sn-r a:hover .sn-go{transform:translateX(4px)}}
/* Die Linie wird beim Scrollen gezeichnet (Browser mit Scroll-Animationen); sonst steht sie */
@supports (animation-timeline:view()){
  @media(prefers-reduced-motion:no-preference) and (min-width:1100px){
    .sn-e::before{transform:scaleY(0);animation:zeichnen linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
    @keyframes zeichnen{to{transform:scaleY(1)}}
  }
}

/* Planblatt (Leitsatz) */
.sec-lb{background:var(--paper-2);border-top:1px solid var(--blau);border-bottom:1px solid var(--blau)}
.lb{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,88px);align-items:start;margin-top:clamp(28px,3vw,40px);padding-top:clamp(20px,2.5vw,28px);border-top:1px solid var(--blau)}
.lb-h{font-size:clamp(34px,4vw,60px);font-weight:500;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.lb-t p{font-size:clamp(18px,1.4vw,20.5px);line-height:1.55;color:var(--ink);max-width:40ch}
.lb-l{margin-top:22px}
.lb-img{margin:0}
.lb-img img{width:100%;aspect-ratio:2000/860;object-fit:cover;background:var(--weiss)}

/* Leitgedanke */
.sec-st{padding:clamp(88px,10vw,150px) 0}
.st-t{font-size:clamp(26px,2.7vw,40px);line-height:1.3;letter-spacing:-.02em;color:var(--ink);font-weight:500;max-width:30ch}
.sign{margin-top:32px;font-size:15px;color:var(--mute)}

/* Seit 1950: Zahl als Maßangabe in Blau, Foto als Tafel */
.jahr{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr);gap:clamp(28px,4vw,72px);align-items:start}
.jahr-z{font-size:clamp(64px,7vw,104px);font-weight:500;letter-spacing:-.045em;line-height:.9;color:var(--blau);padding-top:10px;border-top:1px solid var(--blau)}
.jahr-txt p:not(.jahr-z){margin-top:18px;max-width:var(--measure)}
.jahr-txt .h-sec+p{margin-top:26px}
.jahr-txt .tl{margin-top:30px}

/* Mosaik und Bildtafeln */
.sec-m .h-sec{margin-bottom:clamp(40px,5vw,64px)}
.mosaik{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,3vw,40px)}
.m-cell{display:flex;flex-direction:column;gap:18px}
.m-a{grid-row:span 2}
.m-a img{flex:1 1 0;min-height:420px;height:100%;object-fit:cover}
.m-cell img{width:100%;background:var(--paper-2)}
.m-cap{display:grid;gap:4px;padding-top:14px;border-top:1px solid var(--blau)}
.m-cap strong{font-size:23px;font-weight:500;letter-spacing:-.02em;color:var(--ink);transition:color .16s ease}
.m-cap>span:not(.m-go){color:var(--body);max-width:44ch}
.m-go{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:15px;font-weight:600;color:var(--ink)}
.m-go .ic{width:16px;height:16px}
@media(hover:hover){.m-cell:hover strong{color:var(--blau)}.m-cell:hover .m-go .ic{transform:translateX(3px)}}
.fig img{width:100%;background:var(--paper-2)}
.fig figcaption{margin-top:12px;padding-top:10px;border-top:1px solid var(--linie);font-size:14.5px;color:var(--mute)}
.duo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:end}
.sec-duo{padding-top:0}

/* Bemusterung (Material) */
.mat{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-auto-rows:auto;gap:clamp(20px,2.5vw,36px);margin-top:clamp(36px,4vw,56px)}
.mat-c:first-child{grid-row:span 2}
.mat-c:first-child img{height:100%;object-fit:cover}
.mat-c{margin:0}.mat-c img{width:100%;background:var(--weiss)}
.mat-c figcaption{margin-top:14px;padding-top:12px;border-top:1px solid var(--blau);display:grid;gap:2px}
.mat-c strong{font-weight:600;color:var(--ink);font-size:17px}.mat-c span{color:var(--mute);font-size:15px}

/* Grundsätze: vier Felder mit Oberlinie */
.gs4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px clamp(24px,3vw,48px);margin-top:clamp(36px,4vw,56px)}
.gs4 li{padding-top:20px;border-top:1px solid var(--blau)}
.gs4 h3{font-size:20px;font-weight:600;letter-spacing:-.015em;margin-bottom:10px}
.gs4 p{font-size:16px}

/* Text und Bild */
.split{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,7vw,120px);align-items:center}
.split.flip .fig{order:-1}
.split-txt p{margin-top:18px;max-width:var(--measure)}
.split-txt .h-sec+p{margin-top:26px}
.split-txt .tl{margin-top:30px}

/* Leistungsumfang als Spalten des Plans */
.lgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 0;margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--blau)}
.lgs.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lgs.n4{grid-template-columns:repeat(2,minmax(0,1fr))}
.lg{padding:22px clamp(20px,2.5vw,36px) 0 0;border-right:1px solid var(--linie)}
.lg+.lg{padding-left:clamp(20px,2.5vw,36px)}
.lgs .lg:last-child,.lgs.n2 .lg:nth-child(2n),.lgs.n4 .lg:nth-child(2n){border-right:0}
.lgs.n2 .lg:nth-child(2n+1),.lgs.n4 .lg:nth-child(2n+1){padding-left:0}
.lg h3{font-size:19px;font-weight:600;letter-spacing:-.015em;margin-bottom:14px}
.lg li{padding:5px 0;color:var(--body)}

/* Ablauf: Reihenfolge ist die Information */
.ab{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,48px);margin-top:clamp(40px,5vw,64px)}
.ab.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ab li{position:relative;padding-top:22px;border-top:1px solid var(--blau)}
.ab-n{display:block;font-size:15px;font-weight:600;color:var(--blau);margin-bottom:14px}
.ab h3{font-size:19px;font-weight:600;letter-spacing:-.015em;margin-bottom:8px}
.ab p{font-size:16px}

/* Fliesstext und Lesetext */
.sec .measure p{margin-top:18px}
.sec .measure .h-sec+p{margin-top:26px}
.kap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,112px);align-items:start}
.kap-h{position:sticky;top:calc(var(--hh) + 40px)}
.kap-t{border-left:1px solid var(--linie);padding-left:clamp(24px,3vw,44px)}
.kap-t>*{max-width:var(--measure)}
.kap-t h3{font-size:clamp(21px,1.7vw,25px);line-height:1.2;letter-spacing:-.02em;margin-top:48px;font-weight:600}
.kap-t h3:first-child{margin-top:4px}
.kap-t p{margin-top:14px}
.kap-t h3+p{margin-top:12px}
.kap-t ul{margin-top:14px;padding-left:1.1em;list-style:disc}
.kap-t li{margin-top:6px}
.werte{width:100%;margin-top:22px;border-collapse:collapse;border-top:1px solid var(--blau)}
.werte caption{caption-side:bottom;text-align:left;padding-top:12px;font-size:14px;color:var(--mute)}
.werte th,.werte td{padding:12px 0;border-bottom:1px solid var(--linie);text-align:left;vertical-align:top}
.werte th{font-weight:500;color:var(--body);padding-right:24px;width:48%}
.werte td{font-weight:600;color:var(--ink)}

/* Fragen: volle Breite unter der Überschrift */
.faq{border-top:1px solid var(--blau);margin-top:clamp(28px,3vw,44px)}
.faq details{border-bottom:1px solid var(--linie)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;cursor:pointer;font-size:18.5px;font-weight:600;color:var(--ink);letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{flex:none;width:20px;height:20px;color:var(--blau)}
.faq details[open] summary .ic{transform:rotate(45deg)}
@media(hover:hover){.faq summary:hover span{color:var(--blau)}}
.faq details>div{padding:0 48px 24px 0}
.faq details>div p{max-width:72ch}
.faq details::details-content{block-size:0;overflow:clip;transition:block-size .22s var(--eo),content-visibility .22s allow-discrete}
.faq details[open]::details-content{block-size:auto}
@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}}
.faq a,.article a,.consent a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--linie-2)}

/* Gesprächs-Abschluss */
.sec-gsp{background:var(--paper-2);border-top:1px solid var(--blau)}
.gsp{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px 80px;align-items:end}
.gsp-a{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.gsp-tel{font-size:clamp(26px,2.4vw,34px);font-weight:500;letter-spacing:-.025em;color:var(--ink)}
@media(hover:hover){.gsp-tel:hover{color:var(--blau)}}

/* Formular: offene Felder auf dem Planpapier, keine Karte */
.sec-form{background:var(--paper-2);border-top:1px solid var(--blau)}
.fw-kopf{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,88px);align-items:end}
.diskret{font-size:16px;color:var(--ink);max-width:44ch}
.direkt{margin-top:10px;display:grid;gap:4px}
.direkt a{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-weight:600;color:var(--ink)}
.direkt .ic{width:18px;height:18px;color:var(--blau)}
@media(hover:hover){.direkt a:hover{color:var(--blau)}}
.anfrage{border-top:1px solid var(--blau);margin-top:clamp(28px,3vw,44px);padding-top:28px}
.thema{border:0;margin:0 0 26px;padding:0}
.thema legend{font-size:14.5px;font-weight:600;color:var(--ink);margin-bottom:12px;padding:0}
.th{display:flex;flex-wrap:wrap;gap:8px}
.th label{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--linie-2);font-size:15px;cursor:pointer;color:var(--ink);background:var(--weiss);transition:border-color .16s ease,background-color .16s ease,color .16s ease}
.th input{position:absolute;opacity:0;pointer-events:none}
.th label:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}
.th label:has(input:focus-visible){outline:2px solid var(--blau);outline-offset:2px}
@media(hover:hover){.th label:hover{border-color:var(--ink)}}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.frow.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.field.f2{grid-column:span 2}
.f-schluss{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 40px;align-items:center;margin-top:8px}
.f-schluss .consent{margin:0}
.f-schluss .form-msg{grid-column:1/-1;margin:0}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.field label{font-size:14.5px;font-weight:600;color:var(--ink)}
.field small{font-weight:400;color:var(--mute);font-size:13.5px}
.field input,.field textarea{width:100%;border:1px solid var(--linie-2);background:var(--weiss);padding:0 14px;height:52px;font-size:16.5px;font-family:inherit;color:var(--ink);transition:border-color .16s ease,box-shadow .16s ease}
.field textarea{height:auto;min-height:124px;padding:12px 14px;resize:vertical;line-height:1.5}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blau);box-shadow:0 0 0 3px rgba(14,65,112,.16)}
.field [aria-invalid=true]{border-color:#A3261B}
.hint{font-size:13.5px;color:var(--mute);margin:-8px 0 18px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;font-size:14.5px;line-height:1.5;color:var(--body);margin:6px 0 22px;cursor:pointer}
.consent input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--blau)}
.form-msg{margin:0 0 16px;font-weight:600;font-size:15.5px}
.form-msg:empty{display:none}
.form-msg.ok{color:#1F5B3A}.form-msg.err{color:#A3261B}

/* Seitenkopf ohne Foto, Rechtstexte */
.thero{padding:clamp(56px,7vw,100px) 0 clamp(24px,3vw,40px)}
.sec-legal{padding-top:clamp(24px,3vw,40px)}
.thero h1{font-size:clamp(38px,4.4vw,64px);line-height:1.02;letter-spacing:-.035em;max-width:18ch}
.thero .lead{margin-top:24px;font-size:clamp(17.5px,1.3vw,19.5px);max-width:52ch}
.article h2{font-size:22px;font-weight:600;margin:44px 0 10px}
.article p{margin-top:12px}

/* Karte Einzugsgebiet */
.ring{margin-top:clamp(36px,4vw,56px);background:var(--weiss);border:1px solid var(--blau);padding:clamp(16px,3vw,32px)}
.ring svg{display:block;width:100%;height:auto;max-width:860px;margin:0 auto}
.ring .rg{fill:none;stroke:var(--linie-2);stroke-width:1}
.ring .rl{font:500 12px var(--font);fill:var(--mute)}
.ring .pt{fill:var(--blau)}
.ring .pt.hq{fill:var(--ink)}
.ring .nm{font:500 12.5px var(--font);fill:var(--ink)}
.ring .nm.hq{font-weight:600;font-size:14px}
.ring .big .nm{fill:var(--mute);font-weight:400}
.ring .big .pt{fill:var(--linie-2)}
.orte{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 24px;margin:32px 0 18px;font-size:15.5px;color:var(--ink)}
.lgs .lnk{text-decoration-color:var(--linie-2)}

/* ---------- Fuss ---------- */
.ftr{background:var(--paper);color:var(--body);border-top:1px solid var(--blau);font-size:15px;padding:clamp(56px,6vw,88px) 0 32px}
.f-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px 48px}
.f-top .f-links{grid-column:1/-1;margin-top:24px;padding-top:36px;border-top:1px solid var(--linie)}
.f-brand img{height:32px;width:auto;margin-bottom:22px}
.f-brand p{max-width:30ch;line-height:1.55}
.f-hw{height:30px;width:auto;margin-top:22px}
.ftr address{font-style:normal;color:var(--ink);line-height:1.6;margin-bottom:14px}
.f-kontakt p a{color:var(--ink);font-weight:500}
.f-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
.f-h{color:var(--blau);font-weight:600;font-size:14.5px;margin-bottom:12px}
.f-col li{padding:4px 0}
@media(hover:hover){.ftr a:hover{color:var(--blau);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}}
.f-bot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:48px;padding-top:22px;font-size:14px;color:var(--mute);align-items:center;position:relative}
.f-bot::before{content:"";position:absolute;top:0;left:var(--gut);right:var(--gut);border-top:1px solid var(--linie)}
.f-bot ul{display:flex;gap:24px}

/* ---------- Umbrüche ---------- */
@media(max-width:1180px){
  .nav-l{padding:0 10px;font-size:15px}
  .hdr-in{gap:24px}
  .hdr-tel span{display:none}
  .hdr-tel{width:46px;justify-content:center;border:1px solid var(--blau)}
}
@media(max-width:1099px){
  :root{--hh:64px}
  .nav,.dd,.veil,.hdr-cta{display:none}
  .hdr-in{grid-template-columns:auto 1fr auto}
  .hdr-act{grid-column:3;gap:10px}
  .burger{display:inline-flex}
  .logo img{height:26px}
  .mnav{display:block;position:fixed;left:0;right:0;top:var(--hh);bottom:0;z-index:58;background:var(--paper);overflow-y:auto;-webkit-overflow-scrolling:touch;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .18s ease,transform .22s var(--eo),visibility 0s linear .22s}
  .mnav.on{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .22s var(--eo),visibility 0s}
  .mn-in{padding:12px var(--gut) 40px}
  .mn-g{border-bottom:1px solid var(--linie)}
  .mn-g summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:64px;font-size:24px;font-weight:500;letter-spacing:-.025em;color:var(--ink);cursor:pointer}
  .mn-g summary::-webkit-details-marker{display:none}
  .mn-g summary .ic{width:22px;height:22px;color:var(--blau)}
  .mn-g[open] summary .ic{transform:rotate(45deg)}
  .mn-g ul{padding:0 0 16px}
  .mn-g li a{display:flex;align-items:center;min-height:46px;font-size:17px;color:var(--body)}
  .mn-p{display:flex;align-items:center;min-height:64px;font-size:24px;font-weight:500;letter-spacing:-.025em;color:var(--ink);border-bottom:1px solid var(--linie)}
  .mn-foot{display:grid;gap:14px;margin-top:32px}
  .mn-tel{font-size:26px;font-weight:500;color:var(--ink)}
  .mn-foot .btn{justify-content:center}
  .hero-r{grid-template-columns:1fr;gap:28px}
  .hero-img img{aspect-ratio:16/10;object-fit:cover}
  .lb{grid-template-columns:1fr;gap:16px}
  .jahr{grid-template-columns:1fr 1fr}
  .jahr .fig{grid-column:1/-1;max-width:360px}
  .gs4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fw-kopf{grid-template-columns:1fr;gap:20px}
  .frow.n3{grid-template-columns:1fr 1fr}
  .field.f2{grid-column:span 2}
  .sn-e{grid-template-columns:1fr;gap:18px;padding-left:28px}
  .sn-l{position:relative;top:auto;padding-left:0}
  .sn-l::before{left:-28px;width:20px}   /* Markierung sitzt auf der Linie, nicht am Bildschirmrand */
  .sn-c{grid-template-columns:1fr;gap:24px}
  .kap{grid-template-columns:1fr}
  .kap-h{position:static}
  .kap{gap:28px}
  .kap-t{border-left:0;padding-left:0}
  .split{grid-template-columns:1fr}
  .split.flip .fig{order:0}
  .lgs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lgs .lg:nth-child(2n){border-right:0}
  .lgs .lg:nth-child(2n+1){border-right:1px solid var(--linie)}
  .lgs .lg:last-child{border-right:0}
  .lgs .lg:nth-child(2n+1){padding-left:0}
  .lgs .lg:nth-child(2n){padding-left:clamp(20px,2.5vw,36px)}
  .ab{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f-top .f-links{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  body{font-size:16px;line-height:1.55}
  .hero{padding-top:28px}
  .hero .lead{font-size:16.5px;margin-top:22px}
  .lede{font-size:17px}
  .st-t{font-size:24px}
  .hero h1{font-size:clamp(36px,10vw,46px)}
  .hero-img{margin-top:24px}
  .hero-img img{aspect-ratio:4/3}
  .jahr{grid-template-columns:1fr}
  .gs4{grid-template-columns:1fr}
  .frow.n3{grid-template-columns:1fr}
  .field.f2{grid-column:auto}
  .f-schluss{grid-template-columns:1fr}
  .mat-c:first-child{grid-row:auto}
  .mat-c:first-child img{height:auto}
  .deck{font-size:21px}
  .sf{grid-template-columns:1fr}
  .sf>div{border-right:0;border-bottom:1px solid var(--blau)}
  .sf>div:last-child{border-bottom:0}
  .lb-h{font-size:clamp(30px,8vw,40px)}
  .lb-img img{aspect-ratio:4/3}
  .jahr-z{font-size:64px}
  .sn-t{font-size:22px}
  .mosaik{grid-template-columns:1fr}
  .m-a{grid-row:auto}
  .m-a img{min-height:0;aspect-ratio:4/5;height:auto;flex:none}
  .duo{grid-template-columns:1fr}
  .lgs,.lgs.n2,.lgs.n4,.ab,.ab.n3{grid-template-columns:1fr}
  .lgs .lg,.lgs .lg:nth-child(2n+1){border-right:0;padding-right:0}
  .lg+.lg{padding-left:0;border-top:1px solid var(--linie)}
  .mat{grid-template-columns:1fr;gap:28px}
  .gsp{grid-template-columns:1fr}
  .frow{grid-template-columns:1fr;gap:0}
  .f-top{grid-template-columns:1fr}
  .f-top .f-links{grid-template-columns:1fr 1fr}
  .acts .btn{width:100%;justify-content:center}
  .faq details>div{padding-right:0}
  .ftr a,.f-col a{display:inline-flex;align-items:center;min-height:44px}
  .f-col li{padding:0}
  .crumbs li{display:inline-flex;align-items:center;min-height:44px}
  .ring .nm{display:none}.ring .nm.hq{display:block;font-size:30px}.ring .rl{font-size:24px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:0s !important;animation:none !important}
}
