/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url('/assets/fonts/archivo-variabel-latin-ext.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;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url('/assets/fonts/archivo-variabel-latin.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;
}
/* Uwe Ebert Baureparaturen & Sanierung
   Haltung: Kontur = kaputt, volle Schrift = fertig. Nachtblau aus dem Logo, Bauleuchten-Gelb als einzige Aktionsfarbe. */
:root{
  --nacht:#0C1121; --nacht-2:#141B31; --nacht-3:#1D2642;
  --putz:#E8EAE4; --putz-2:#DADDD5; --kreide:#F3F4EF;
  --text-hell:#C3C9D6; --text-dunkel:#4E5565;
  --signal:#F2B33D; --signal-dunkel:#D99A22;
  --linie-hell:rgba(243,244,239,.16); --linie-dunkel:rgba(12,17,33,.14);
  --f:"Archivo", "Helvetica Neue", Arial, sans-serif;
  --gutter:clamp(16px,4vw,56px);
  --max:1440px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;background:var(--nacht);color:var(--kreide);font:400 1.0625rem/1.6 var(--f);font-variation-settings:"wdth" 100}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.w{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}

/* Display-Schrift: schmal, schwer */
.d{font-family:var(--f);font-variation-settings:"wdth" 62;font-weight:700;letter-spacing:-.01em;line-height:.9;text-transform:uppercase;text-wrap:balance}
.kontur{color:transparent;-webkit-text-stroke:2px currentColor}
.kontur-hell{-webkit-text-stroke-color:var(--kreide)}
h1,h2,h3{margin:0;font-weight:700}

/* ---------- Kopf ---------- */
.kopf{position:fixed;inset:0 0 auto;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .3s var(--ease-out),border-color .3s var(--ease-out);border-bottom:1px solid transparent}
.kopf.fest{background:rgba(12,17,33,.94);border-color:var(--linie-hell)}
.kopf-in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:80px}
.marke{display:flex;align-items:center;text-decoration:none;padding-block:8px}
.marke img{height:60px;width:auto}
@media (max-width:760px){.marke img{height:48px}}
.nav{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:.9375rem}
.nav a{white-space:nowrap;text-decoration:none;padding-block:8px;border-bottom:1px solid transparent}
.nav a:hover{border-color:currentColor}
.kopf-tel{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--linie-hell);border-radius:4px;text-decoration:none;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.kopf-tel:hover{border-color:var(--signal)}
.menu-knopf{display:none}
@media (max-width:1180px){
  .nav,.kopf-tel{display:none}
  .menu-knopf{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:none;border:1px solid var(--linie-hell);border-radius:4px;color:inherit;font:inherit;font-size:.9375rem;padding:0 14px;cursor:pointer}
  .kopf.offen{background:var(--nacht)}
  .kopf.offen .nav{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:100%;background:var(--nacht);padding:8px var(--gutter) 24px;border-bottom:1px solid var(--linie-hell)}
  .kopf.offen .nav a{display:block;padding:14px 0;font-size:1.25rem;border-bottom:1px solid var(--linie-hell)}
}

/* ---------- Bühne ---------- */
.buehne{position:relative;min-height:max(680px,100svh);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;isolation:isolate}
.buehne-film{position:absolute;inset:0;z-index:-2;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--nacht)}
.buehne-film video{width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.05)}
.buehne::after{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(180deg,rgba(12,17,33,.55) 0%,rgba(12,17,33,.25) 30%,rgba(12,17,33,.78) 66%,rgba(12,17,33,.97) 100%),
  linear-gradient(90deg,rgba(12,17,33,.6) 0%,rgba(12,17,33,0) 60%)}
@media (max-width:760px){
  .buehne-film{grid-template-columns:1fr 1fr}.buehne-film video:nth-child(n+3){display:none}
  .buehne::after{background:linear-gradient(180deg,rgba(12,17,33,.5) 0%,rgba(12,17,33,.45) 22%,rgba(12,17,33,.88) 45%,rgba(12,17,33,.96) 100%)}
}
.buehne-text{padding-top:120px;padding-bottom:40px}
.buehne h1{display:flex;flex-direction:column}
.buehne .zeile{font-size:clamp(4.5rem,15.5vw,15rem)}
.buehne .zeile.kontur{-webkit-text-stroke-width:clamp(1.5px,.22vw,3px)}
.buehne .zeile.voll{color:var(--kreide);position:relative}
.buehne .kw{font:600 clamp(1.125rem,1.8vw,1.5rem)/1.3 var(--f);font-variation-settings:"wdth" 100;text-transform:none;letter-spacing:0;margin-top:24px;color:var(--kreide)}
.buehne-unten{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;margin-top:24px}
.buehne-unten p{margin:0;max-width:52ch;color:var(--text-hell);font-size:1.0625rem}
.aktionen{display:flex;flex-wrap:wrap;gap:12px}
.knopf{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border-radius:4px;background:var(--signal);color:var(--nacht);font-weight:700;text-decoration:none;transition:background .15s var(--ease-out)}
.knopf:hover{background:var(--signal-dunkel)}
.knopf svg{width:20px;height:20px;flex:none}
.knopf.leise{background:transparent;color:var(--kreide);border:1px solid var(--linie-hell)}
.knopf.leise:hover{border-color:var(--kreide);background:transparent}
@media (max-width:760px){.buehne-unten{grid-template-columns:1fr}}

/* Einmaliger Moment: „Fertig.“ füllt sich beim Laden */
@media (prefers-reduced-motion:no-preference){
  .buehne .zeile.voll{animation:fuellen 1.1s .35s var(--ease-out) both}
  @keyframes fuellen{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
}

.leiste{border-top:1px solid var(--linie-hell);background:rgba(12,17,33,.7)}
.leiste ul{list-style:none;margin:0 auto;padding-block:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.leiste li{padding:20px 24px 22px 0;border-right:1px solid var(--linie-hell);margin-right:24px}
.leiste li:last-child{border-right:0;margin-right:0}
.leiste b{display:block;font-variation-settings:"wdth" 62;font-size:clamp(2rem,3.4vw,3rem);line-height:1;font-variant-numeric:tabular-nums;color:var(--kreide)}
.leiste span{display:block;margin-top:6px;font-size:.875rem;color:var(--text-hell);max-width:26ch;line-height:1.4}
@media (max-width:760px){.leiste ul{grid-template-columns:1fr 1fr}.leiste li:nth-child(2){border-right:0;margin-right:0}.leiste li:nth-child(n+3){border-top:1px solid var(--linie-hell)}}

/* ---------- Vergleich (gemeinsam) ---------- */
.vgl{position:relative;overflow:hidden;--pos:50%;aspect-ratio:3/4;touch-action:pan-y;user-select:none;background:var(--nacht-2)}
.vgl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vgl .nach{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.vgl .griff{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:var(--signal);pointer-events:none}
.vgl .griff::after{content:"";position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:var(--signal)}
.vgl .griff svg{position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;z-index:1;color:var(--nacht)}
.vgl input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.vgl input:focus-visible ~ .griff::after{outline:3px solid var(--kreide);outline-offset:3px}
.vgl .marke-v,.vgl .marke-n{position:absolute;top:16px;padding:4px 10px;font-size:.8125rem;font-weight:600;background:rgba(12,17,33,.75);border-radius:3px;pointer-events:none}
.vgl .marke-n{left:16px}.vgl .marke-v{right:16px}

/* ---------- Szenen: Vorher/Nachher beim Scrollen ---------- */
.szenen{position:relative;height:calc(var(--n,4) * 110svh);background:var(--nacht)}
.szenen-halt{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden}
.szene{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .3s var(--ease-out),visibility 0s linear .3s}
.szene.aktiv{opacity:1;visibility:visible;transition:opacity .3s var(--ease-out),visibility 0s}
.szene-grund{position:absolute;inset:-40px;background-size:cover;background-position:center;filter:blur(28px) brightness(.32) saturate(.8);transform:scale(1.05)}
.szene-in{position:relative;height:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,5vw,80px);align-items:center;padding-top:96px;padding-bottom:72px}
.szene .vgl{height:min(76svh,760px);width:auto;aspect-ratio:3/4;border-radius:2px;box-shadow:0 24px 80px rgba(0,0,0,.35)}
.szene-kopf{font-size:.9375rem;color:var(--text-hell);margin:0 0 16px}
.szene h3{font-size:clamp(3rem,7vw,7rem)}
.szene dl{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;margin:32px 0 0;max-width:46ch;font-size:1rem}
.szene dt{color:var(--text-hell)}
.szene dd{margin:0}
.szene .weiter{display:inline-block;margin-top:28px;color:var(--signal);font-weight:600;text-underline-offset:5px}
.szenen-titel{position:absolute;top:104px;left:0;right:0;z-index:2;pointer-events:none}
.szenen-titel h2{font-size:1rem;font-weight:600;color:var(--text-hell)}
.szenen-nav{position:absolute;left:0;right:0;bottom:24px;z-index:3}
.szenen-nav ol{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap}
.szenen-nav button{font:inherit;font-size:.875rem;min-height:44px;padding:0 16px;border:1px solid var(--linie-hell);border-radius:22px;background:rgba(12,17,33,.6);color:var(--text-hell);cursor:pointer}
.szenen-nav button[aria-current="true"]{background:var(--kreide);color:var(--nacht);border-color:var(--kreide)}
@media (max-width:860px){
  .szene-in{grid-template-columns:1fr;align-content:start;gap:16px;padding-top:80px;padding-bottom:24px}
  .szene .vgl{height:min(52svh,520px);justify-self:start}
  .szene h3{font-size:clamp(2.6rem,12vw,4rem)}
  .szene dl{margin-top:12px;font-size:.9375rem;gap:4px 16px}
  .szene .szene-text p.szene-kopf{margin-bottom:6px}
  .szene .weiter{margin-top:8px}
  .szenen-titel,.szenen-nav{display:none}
}
@media (max-width:860px) and (max-height:760px){.szene dl{display:none}}
/* Ohne Bewegung: Szenen untereinander */
@media (prefers-reduced-motion:reduce){
  .szenen{height:auto}.szenen-halt{position:static;height:auto;min-height:0}
  .szene{position:relative;opacity:1;visibility:visible;min-height:100svh}
  .szenen-nav,.szenen-titel{display:none}
}
.ohne-js .szenen{height:auto}.ohne-js .szenen-halt{position:static;height:auto}.ohne-js .szene{position:relative;opacity:1;visibility:visible;min-height:100svh}.ohne-js .szenen-nav{display:none}

/* ---------- Leistungen ---------- */
.hell{background:var(--putz);color:var(--nacht);color-scheme:light}
.hell .text-leise{color:var(--text-dunkel)}
.leistungen{padding-block:clamp(72px,10vw,140px)}
/* Überschrift behält ihre natürliche Breite; reicht der Platz nicht, rutscht der Text darunter */
.abschnitt-kopf{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px 64px;align-items:flex-end;margin-bottom:clamp(32px,5vw,64px)}
.abschnitt-kopf h2{flex:0 1 auto;min-width:0;overflow-wrap:break-word;font-size:clamp(2.6rem,6.2vw,6.75rem)}
.abschnitt-kopf p{flex:1 1 30ch;margin:0;max-width:46ch;font-size:1.125rem}
.liste{list-style:none;margin:0;padding:0;border-top:1px solid var(--nacht)}
.liste li{border-bottom:1px solid var(--linie-dunkel);position:relative}
.liste a{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 48px;gap:16px 40px;align-items:center;padding:22px 0;text-decoration:none}
.liste .d{font-size:clamp(2rem,4.6vw,4.25rem);transition:color .15s var(--ease-out)}
.liste p{margin:0;color:var(--text-dunkel);font-size:1rem;max-width:44ch}
.liste svg{width:32px;height:32px;justify-self:end;transition:transform .2s var(--ease-out)}
.liste .vorschau{position:absolute;right:120px;top:50%;width:200px;aspect-ratio:3/4;object-fit:cover;transform:translateY(-50%) rotate(-2deg);opacity:0;pointer-events:none;transition:opacity .2s var(--ease-out),transform .2s var(--ease-out);z-index:2;border-radius:2px;box-shadow:0 16px 40px rgba(12,17,33,.25)}
@media (hover:hover) and (min-width:1100px){
  .liste a:hover .d{color:transparent;-webkit-text-stroke:2px var(--nacht)}
  .liste a:hover svg{transform:translateX(6px)}
  .liste li:hover .vorschau{opacity:1;transform:translateY(-50%) rotate(-2deg) scale(1.02)}
}
.liste .fehlt{font-size:.8125rem;color:#8A3A28}
@media (max-width:760px){.liste a{grid-template-columns:1fr 32px}.liste p{grid-column:1}.liste svg{grid-row:1;grid-column:2}}

/* ---------- Schimmel ---------- */
.schimmel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:88svh}
.schimmel-bild{position:relative;min-height:420px}
.schimmel-bild img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.schimmel-bild figcaption{position:absolute;left:16px;bottom:16px;font-size:.8125rem;color:var(--text-hell);background:rgba(12,17,33,.75);padding:4px 10px;border-radius:3px}
.schimmel-text{padding:clamp(48px,7vw,112px) var(--gutter);display:flex;flex-direction:column;justify-content:center}
.schimmel-text h2{font-size:clamp(2.8rem,5.6vw,5.5rem)}
.schimmel-text p{max-width:48ch;color:var(--text-hell)}
.schimmel-text .gross{font-size:1.25rem;color:var(--kreide);margin-top:28px}
.schimmel-text .knopf{align-self:flex-start;margin-top:24px}
@media (max-width:900px){.schimmel{grid-template-columns:1fr}.schimmel-bild{min-height:56svh}}

/* ---------- Sauna ---------- */
.sauna{position:relative;min-height:100svh;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.sauna>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%;z-index:-2}
.sauna::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,17,33,.94) 0%,rgba(12,17,33,.7) 45%,rgba(12,17,33,.1) 80%)}
.sauna-in{padding-block:clamp(72px,10vw,140px)}
.sauna h2{font-size:clamp(3rem,7vw,7rem);max-width:14ch}
.sauna blockquote{margin:32px 0 0;max-width:44ch;font-size:clamp(1.25rem,1.8vw,1.5rem);line-height:1.5}
.sauna blockquote footer{margin-top:12px;font-size:.9375rem;color:var(--text-hell)}
.sauna dl{display:flex;flex-wrap:wrap;gap:16px 40px;margin:40px 0 0}
.sauna dt{font-size:.8125rem;color:var(--text-hell)}
.sauna dd{margin:2px 0 0;font-variation-settings:"wdth" 62;font-weight:700;font-size:2rem;line-height:1}

/* ---------- Hausverwaltungen ---------- */
.hv{padding-block:clamp(72px,10vw,140px)}
.schritte{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 32px}
.schritte li{counter-increment:s;padding-top:24px;border-top:1px solid var(--nacht)}
.schritte li::before{content:counter(s);display:block;font-variation-settings:"wdth" 62;font-weight:700;font-size:4rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--nacht);margin-bottom:16px}
.schritte b{display:block;font-size:1.125rem}
.schritte span{display:block;margin-top:6px;color:var(--text-dunkel);font-size:.9375rem}
.hv .knopf{margin-top:48px;background:var(--nacht);color:var(--kreide)}
.hv .knopf:hover{background:var(--nacht-3)}
@media (max-width:860px){.schritte{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.schritte{grid-template-columns:1fr}}

/* ---------- Uwe ---------- */
.uwe{padding-block:clamp(72px,10vw,140px);background:var(--putz-2)}
.uwe-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:center}
.uwe-bilder{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;align-items:end}
.uwe-bilder img{width:100%;object-fit:cover;border-radius:2px}
.uwe-bilder img:first-child{aspect-ratio:3/4}
.uwe-bilder img:last-child{aspect-ratio:1/1}
.uwe h2{font-size:clamp(2.8rem,5.6vw,5.5rem)}
.uwe p{max-width:54ch;font-size:1.0625rem}
.uwe .klein{font-size:.9375rem;color:var(--text-dunkel)}
@media (max-width:860px){.uwe-in{grid-template-columns:1fr}}

/* ---------- Kontakt ---------- */
.kontakt{background:var(--signal);color:var(--nacht);padding-block:clamp(64px,9vw,120px);color-scheme:light}
.kontakt-in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:32px 64px;align-items:end}
.kontakt h2{font-size:clamp(2.6rem,6.4vw,6.5rem);overflow-wrap:break-word;hyphens:auto}
.kontakt .tel{display:block;font-variation-settings:"wdth" 62;font-weight:700;font-size:clamp(2.4rem,5vw,4.5rem);line-height:1;text-decoration:none;font-variant-numeric:tabular-nums;margin-top:8px}
.kontakt p{margin:0 0 16px;max-width:40ch}
.kontakt .knopf{background:var(--nacht);color:var(--kreide)}
@media (max-width:860px){.kontakt-in{grid-template-columns:1fr}}

/* ---------- Fuß ---------- */
.fuss-logo img{height:72px;width:auto;margin-bottom:32px}
.fuss{padding-block:48px;font-size:.875rem;color:var(--text-hell)}
.fuss-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.fuss b{display:block;color:var(--kreide);margin-bottom:6px}
.fuss a{text-decoration:none}.fuss a:hover{text-decoration:underline}
.fuss ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}

/* ---------- Unterseite: Schimmel ---------- */
.u-buehne{position:relative;min-height:max(620px,92svh);display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.u-buehne>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.u-buehne::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,17,33,.5) 0%,rgba(12,17,33,.2) 35%,rgba(12,17,33,.92) 82%,var(--nacht) 100%)}
.u-buehne .w{padding-top:140px;padding-bottom:48px;width:100%}
.krumen{font-size:.875rem;color:var(--text-hell);margin:0 0 24px}
.krumen a{text-underline-offset:4px}
.u-buehne h1{font-size:clamp(2.5rem,10.5vw,10rem)}
.u-buehne .unter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;margin-top:28px}
.u-buehne .unter p{margin:0;max-width:54ch;color:var(--text-hell);font-size:1.125rem}
@media (max-width:760px){.u-buehne .unter{grid-template-columns:1fr}}

.check{padding-block:clamp(72px,10vw,140px)}
.check-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,80px);align-items:start}
@media (max-width:900px){.check-in{grid-template-columns:1fr}}
.check fieldset{border:0;margin:0 0 32px;padding:0}
.check legend{font-variation-settings:"wdth" 62;font-weight:700;text-transform:uppercase;font-size:clamp(1.6rem,2.6vw,2.25rem);line-height:1;margin-bottom:14px;padding:0}
.wahl{display:flex;flex-wrap:wrap;gap:8px}
.wahl label{position:relative}
.wahl input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.wahl span{display:inline-flex;align-items:center;min-height:48px;padding:0 18px;border:1px solid var(--nacht);border-radius:24px;font-size:1rem;cursor:pointer;transition:background .15s var(--ease-out),color .15s var(--ease-out)}
.wahl input:checked + span{background:var(--nacht);color:var(--kreide)}
.wahl input:focus-visible + span{outline:3px solid var(--signal-dunkel);outline-offset:2px}
.urteil{position:sticky;top:96px;background:var(--nacht);color:var(--kreide);padding:clamp(24px,3vw,40px);border-radius:4px}
.urteil .stufe{display:inline-block;font-size:.875rem;font-weight:600;color:var(--nacht);background:var(--signal);padding:4px 12px;border-radius:3px}
.urteil h3{font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(2.2rem,3.6vw,3.25rem);line-height:.95;margin-top:16px}
.urteil p{color:var(--text-hell);margin:16px 0 0}
.urteil .quelle{font-size:.8125rem}
.urteil .knopf{margin-top:24px}

.ablauf{padding-block:clamp(72px,10vw,140px)}
.ablauf ol{list-style:none;counter-reset:a;margin:0;padding:0;display:grid;gap:clamp(48px,6vw,96px)}
.ablauf li{counter-increment:a;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:center}
.ablauf li:nth-child(even) figure{order:2}
.ablauf figure{margin:0}
.ablauf figure img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.ablauf h3{font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(2.4rem,4.6vw,4.5rem);line-height:.92}
.ablauf h3::before{content:counter(a);display:block;color:transparent;-webkit-text-stroke:1.5px var(--kreide);font-size:1.5em;line-height:1;margin-bottom:8px}
.ablauf p{color:var(--text-hell);max-width:46ch}
@media (max-width:760px){.ablauf li{grid-template-columns:1fr}.ablauf li:nth-child(even) figure{order:0}}

.fall{padding-block:clamp(72px,10vw,140px)}
.fall-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.fall h2{font-size:clamp(2.8rem,6vw,6rem)}
.fall p{max-width:56ch;font-size:1.0625rem}
.fall blockquote{margin:24px 0;padding:0 0 0 20px;border-left:3px solid var(--signal-dunkel);font-size:1.25rem;line-height:1.5;max-width:44ch}
@media (max-width:860px){.fall-in{grid-template-columns:1fr}}

.fragen{padding-block:clamp(72px,10vw,140px)}
.fragen h2{font-size:clamp(2.8rem,6vw,6rem);margin-bottom:40px}
.fragen details{border-top:1px solid var(--linie-hell);max-width:900px}
.fragen details:last-of-type{border-bottom:1px solid var(--linie-hell)}
.fragen summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;font-size:clamp(1.125rem,1.6vw,1.375rem);font-weight:600;min-height:44px}
.fragen summary::-webkit-details-marker{display:none}
.fragen summary svg{width:24px;height:24px;flex:none;transition:transform .2s var(--ease-out)}
.fragen details[open] summary svg{transform:rotate(45deg)}
.fragen details p{margin:0 0 24px;color:var(--text-hell);max-width:68ch}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation:none!important}html{scroll-behavior:auto}}

/* =================== Erweiterung: alle Seiten =================== */
.sprung{position:absolute;left:16px;top:-60px;z-index:100;background:var(--signal);color:var(--nacht);padding:12px 16px;border-radius:4px;font-weight:700;text-decoration:none}
.sprung:focus{top:16px}
.nur-menue{display:none}
@media (max-width:1180px){.kopf.offen .nur-menue{display:block}.kopf.offen .nur-menue a{font-size:1rem;color:var(--text-hell);padding:10px 0}}
.nav a[aria-current="page"]{border-color:var(--signal)}
.krumen a{color:inherit}
.symbol{font-size:.8125rem;color:var(--text-hell);margin-top:8px}
.hell .symbol{color:var(--text-dunkel)}
.buehne-hinweis{position:absolute;right:16px;bottom:16px;z-index:1;font-size:.75rem;color:var(--text-hell);background:rgba(12,17,33,.7);padding:4px 8px;border-radius:3px}

/* Kurze Bühne für Leistungs- und Ratgeberseiten */
.u-buehne.kurz{min-height:max(520px,72svh)}
.u-buehne h1 .klein{display:block;font-size:.42em;line-height:1.05;margin-top:.15em}

/* Abschnitt mit Fließtext */
.abschnitt{padding-block:clamp(64px,9vw,128px)}
.zwei{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.zwei.mitte{align-items:center}
@media (max-width:860px){.zwei{grid-template-columns:1fr}}
.prosa{max-width:68ch;font-size:1.0625rem}
.prosa h2{font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(2rem,3.6vw,3rem);line-height:.95;margin:56px 0 16px}
.prosa h3{font-size:1.25rem;margin:32px 0 8px}
.prosa p,.prosa li{color:inherit}
.prosa ul,.prosa ol{padding-left:1.2em}
.prosa li{margin-bottom:8px}
.prosa a{color:var(--signal);text-underline-offset:4px}
.hell .prosa a,.hell a.link{color:#7A5200}
.prosa strong{font-weight:600}
.prosa .stand{font-size:.875rem;color:var(--text-hell)}
.hell .prosa .stand{color:var(--text-dunkel)}
.kasten{border:1px solid var(--linie-hell);border-left:3px solid var(--signal);padding:20px 24px;border-radius:2px;margin:32px 0}
.hell .kasten{border-color:var(--linie-dunkel);border-left-color:var(--signal-dunkel);background:var(--kreide)}
.kasten b{display:block;margin-bottom:4px}
.bild-hoch img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px}
.bild-quer img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}

/* Zahlenwand: große Kontur-Zahlen mit Erklärung */
.zahlwand{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:48px 32px}
.zahlwand li{border-top:1px solid currentColor;padding-top:16px}
.zahlwand b{display:block;font-variation-settings:"wdth" 62;font-weight:700;font-size:clamp(3.2rem,6vw,5.5rem);line-height:.9;color:transparent;-webkit-text-stroke:1.5px var(--kreide);font-variant-numeric:tabular-nums}
.zahlwand b small{font-size:.38em;-webkit-text-stroke:0;color:var(--kreide);margin-left:4px}
.hell .zahlwand b small{color:var(--nacht)}
.hell .zahlwand b{-webkit-text-stroke-color:var(--nacht)}
.zahlwand strong{display:block;margin-top:12px;font-size:1.0625rem}
.zahlwand span{display:block;margin-top:4px;font-size:.9375rem;color:var(--text-hell)}
.hell .zahlwand span{color:var(--text-dunkel)}

/* Vergleichstabelle */
.tabelle{overflow-x:auto;border:1px solid var(--linie-hell);border-radius:4px}
.hell .tabelle{border-color:var(--linie-dunkel);background:var(--kreide)}
.tabelle table{border-collapse:collapse;width:100%;min-width:560px;font-size:.9375rem}
.tabelle th,.tabelle td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--linie-hell);vertical-align:top}
.hell .tabelle th,.hell .tabelle td{border-color:var(--linie-dunkel)}
.tabelle thead th{font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:1.25rem;line-height:1}
.tabelle tbody th{font-weight:600}
.tabelle tr:last-child td,.tabelle tr:last-child th{border-bottom:0}
.tabelle td.zahl{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}

/* Videoschritte */
.videoschritte{list-style:none;counter-reset:v;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.videoschritte li{counter-increment:v}
.videoschritte video,.videoschritte img{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:2px;background:var(--nacht-2)}
.videoschritte h3{font-size:1.0625rem;margin-top:14px}
.videoschritte h3::before{content:counter(v) " ";color:var(--signal);font-variation-settings:"wdth" 62}
.videoschritte p{margin:4px 0 0;font-size:.875rem;color:var(--text-hell)}
@media (max-width:980px){.videoschritte{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}

/* Schnitt mit antippbaren Schwachstellen */
.schnitt{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,5vw,72px);align-items:center}
.schnitt-bild{position:relative;color:var(--kreide)}
.schnitt-bild svg{width:100%;height:auto}
.punkt{position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;border-radius:50%;border:2px solid var(--signal);background:var(--nacht);color:var(--signal);font:700 1rem/1 var(--f);font-variation-settings:"wdth" 62;cursor:pointer;transition:background .15s var(--ease-out),color .15s var(--ease-out)}
.punkt[aria-pressed="true"],.punkt:hover{background:var(--signal);color:var(--nacht)}
.schnitt-text{min-height:260px}
.schnitt-text h3{font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(2rem,3.4vw,3rem);line-height:.95}
.schnitt-text p{color:var(--text-hell)}
.schnitt-text .tun{color:var(--kreide)}
@media (max-width:860px){.schnitt{grid-template-columns:1fr}}

/* Meldebogen und Checkliste */
.melder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
@media (max-width:900px){.melder{grid-template-columns:1fr}}
.feld{display:grid;gap:6px;margin-bottom:18px}
.feld label{font-weight:600;font-size:.9375rem}
.feld .hilfe{font-size:.8125rem;color:var(--text-dunkel)}
.feld input,.feld textarea,.feld select{font:inherit;font-size:1rem;min-height:48px;padding:10px 14px;border:1px solid rgba(12,17,33,.35);border-radius:4px;background:#fff;color:var(--nacht);width:100%}
.feld textarea{min-height:120px;resize:vertical}
.feld input:focus,.feld textarea:focus,.feld select:focus{outline:3px solid var(--signal-dunkel);outline-offset:1px}
.vorschau-nachricht{background:var(--nacht);color:var(--kreide);padding:clamp(20px,3vw,32px);border-radius:4px;position:sticky;top:96px}
.vorschau-nachricht pre{white-space:pre-wrap;font:400 .9375rem/1.55 var(--f);margin:12px 0 20px;color:var(--text-hell);min-height:120px}
.vorschau-nachricht .knopf+.knopf{margin-left:8px}
.vorschau-nachricht .knopf{margin-top:8px}
.hinweis-klein{font-size:.8125rem;color:var(--text-hell);margin-top:12px}
.checkliste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:8px}
.checkliste label{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid rgba(12,17,33,.25);border-radius:4px;cursor:pointer;background:#fff;min-height:48px}
.checkliste input{width:20px;height:20px;margin-top:2px;accent-color:var(--nacht);flex:none}
.checkliste label:has(input:checked){border-color:var(--nacht);box-shadow:inset 0 0 0 1px var(--nacht)}

/* Verwandte Seiten und Projektkarten */
.verwandt{padding-block:clamp(64px,8vw,112px)}
.verwandt h2{font-size:clamp(2.2rem,4.6vw,4rem);margin-bottom:32px}
.karten{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:24px}
.karten a{display:flex;flex-direction:column;gap:8px;text-decoration:none;height:100%}
.karten img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;transition:opacity .2s var(--ease-out)}
.karten a:hover img{opacity:.85}
.karten .d{font-size:1.75rem;margin-top:8px}
.karten .d{transition:color .15s var(--ease-out)}
.karten a:hover .d,.karten a:focus-visible .d{color:var(--signal)}
.hell .karten a:hover .d,.hell .karten a:focus-visible .d{color:#9A6400}
.projekte-raster{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:40px 24px}
.projekte-raster h2{font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:2.25rem;line-height:.95;margin-top:16px}
.projekte-raster p{color:var(--text-hell);margin:8px 0 0}
.projekte-raster a{color:var(--signal);font-weight:600;text-underline-offset:4px}

/* Zwei Vergleiche nebeneinander */
.paar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (max-width:760px){.paar{grid-template-columns:1fr}}
.paar figcaption{font-size:.875rem;color:var(--text-hell);margin-top:8px}
.paar figure{margin:0}

/* Ergebnis-Box Bad-Check */
.ergebnis{background:var(--nacht);color:var(--kreide);padding:clamp(24px,3vw,40px);border-radius:4px;position:sticky;top:96px}
.ergebnis h3{font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(2rem,3.2vw,2.75rem);line-height:.95;margin-top:8px}
.ergebnis ul{padding-left:1.1em;color:var(--text-hell)}
.ergebnis .stufe{display:inline-block;font-size:.875rem;font-weight:600;color:var(--nacht);background:var(--signal);padding:4px 12px;border-radius:3px}
.schritte-dunkel li{border-top-color:var(--kreide)}
.schritte-dunkel li::before{-webkit-text-stroke-color:var(--kreide)}
.schritte-dunkel span{color:var(--text-hell)}
.liste-dunkel{border-top-color:var(--kreide)}
.liste-dunkel li{border-bottom-color:var(--linie-hell)}
.liste-dunkel a{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.liste-dunkel p{color:var(--text-hell)}
@media (hover:hover) and (min-width:1100px){.liste-dunkel a:hover .d{-webkit-text-stroke-color:var(--kreide)}}
.todo-text{outline:2px dashed #B4462F;outline-offset:4px}
.hell .krumen{color:var(--text-dunkel)}
.u-buehne .krumen{margin:0 0 24px;font-size:.875rem;color:var(--text-hell)}
.schritte a.link{color:inherit}
.check-in .checkliste{margin-bottom:0}

/* Lange deutsche Wörter dürfen in Überschriften trennen, statt aus der Box zu ragen */
h1,h2,h3,.d,legend{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
@media (max-width:760px){.liste-dunkel a{grid-template-columns:1fr}}
/* Tabellen am Handy: jede Zeile ein Block, Spaltenname vor dem Wert */
@media (max-width:640px){
  .tabelle{overflow:visible}
  .tabelle table{min-width:0}
  .tabelle thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tabelle tr{display:block;padding:14px 16px;border-bottom:1px solid var(--linie-hell)}
  .hell .tabelle tr{border-bottom-color:var(--linie-dunkel)}
  .tabelle tr:last-child{border-bottom:0}
  .tabelle th,.tabelle td{display:block;padding:2px 0;border:0}
  .tabelle tbody th{font-size:1.0625rem;margin-bottom:6px}
  .tabelle td[data-label]::before{content:attr(data-label) ": ";font-weight:600;color:var(--text-hell)}
  .hell .tabelle td[data-label]::before{color:var(--text-dunkel)}
  .tabelle td.zahl{white-space:normal}
}
.bad-paar{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.bad-paar figure{margin:0}
.bad-paar img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px}
.bad-paar figcaption{font-size:.8125rem;color:var(--text-dunkel);margin-top:8px;line-height:1.4}
@media (max-width:480px){.bad-paar{grid-template-columns:1fr}}
/* Bildstrecke in Schritten (Fotos) */
.fotoschritte{list-style:none;counter-reset:f;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 16px}
.fotoschritte li{counter-increment:f}
.fotoschritte li.breit{grid-column:span 2}
.fotoschritte img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}
.fotoschritte h3{font-size:1.0625rem;margin-top:12px}
.fotoschritte h3::before{content:counter(f) " ";color:var(--signal-dunkel);font-variation-settings:"wdth" 62;font-weight:700}
.fotoschritte p{margin:4px 0 0;font-size:.9375rem;color:var(--text-dunkel)}
@media (max-width:860px){.fotoschritte{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.fotoschritte{grid-template-columns:1fr}.fotoschritte li.breit{grid-column:auto}}
/* Ursachenkette mit Umschalter */
.kette{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:24px clamp(24px,4vw,56px);align-items:center}
.kette-schalter{grid-column:1/-1;display:inline-flex;flex-wrap:wrap;gap:8px}
.kette-schalter button{font:inherit;font-weight:600;min-height:48px;padding:0 20px;border:1px solid var(--linie-hell);border-radius:24px;background:transparent;color:var(--kreide);cursor:pointer}
.kette-schalter button[aria-pressed="true"]{background:var(--signal);border-color:var(--signal);color:var(--nacht)}
.kette-bild{color:var(--kreide)}
.kette-bild svg{width:100%;height:auto;display:block}
.kette-liste{margin:0;padding-left:1.2em;display:grid;gap:12px;font-size:1.0625rem}
.kette-liste li::marker{color:var(--signal);font-weight:700}
@media (max-width:860px){.kette{grid-template-columns:1fr}}
.fotoschritte.drei{grid-template-columns:repeat(3,minmax(0,1fr))}
.fotoschritte.drei li.breit{grid-column:1/-1}
@media (max-width:860px){.fotoschritte.drei{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.fotoschritte.drei{grid-template-columns:1fr}}
.projekte-raster .bad-paar img{aspect-ratio:3/4}
svg [hidden]{display:none}
/* Leistungsliste: eigene Spalte für das Vorschaubild, damit es nie Text verdeckt */
@media (hover:hover) and (min-width:1100px){
  .liste:not(.liste-dunkel) a{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) 152px 48px;column-gap:32px}
  .liste:not(.liste-dunkel) .d{font-size:min(3.7rem,4.1vw)}
  .liste:not(.liste-dunkel) a svg{grid-column:4}
  .liste .vorschau{right:80px;width:152px;aspect-ratio:4/3;transform:translateY(-50%) rotate(-1.5deg)}
  .liste li:hover .vorschau{transform:translateY(-50%) rotate(-1.5deg) scale(1.02)}
}
.terrasse-vgl{margin:0 0 56px;max-width:560px}
.terrasse-vgl figcaption{font-size:.875rem;color:var(--text-dunkel);margin-top:8px}
/* Neue Leistungsseiten: Auswahlgruppen, Jahreskalender, Schnittbilder */
fieldset.feld{border:0;padding:0;margin:0 0 24px;min-width:0}
fieldset.feld legend{font-weight:600;font-size:.9375rem;padding:0;margin-bottom:10px}
.checkliste input[type=radio]{border-radius:50%}
.ergebnis ol{padding-left:1.2em;color:var(--text-hell)}
.ergebnis ol li,.ergebnis ul li{margin-bottom:6px}
.ergebnis .knopf{margin-top:8px}
.jahr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.monate{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.monate button{font:inherit;min-height:76px;padding:10px 12px;text-align:left;border:1px solid rgba(12,17,33,.25);border-radius:4px;background:#fff;color:var(--nacht);cursor:pointer;transition:background .15s var(--ease-out),color .15s var(--ease-out)}
.monate button{font-variation-settings:"wdth" 62;font-weight:700;text-transform:uppercase;font-size:1.75rem;line-height:1}
.monate button .n{display:block;margin-top:6px;font-variation-settings:"wdth" 100;font-weight:400;text-transform:none;font-size:.8125rem;color:var(--text-dunkel)}
.monate button:hover{border-color:var(--nacht)}
.monate button[aria-pressed="true"]{background:var(--nacht);color:var(--kreide);border-color:var(--nacht)}
.monate button[aria-pressed="true"] .n{color:var(--text-hell)}
@media (max-width:900px){.jahr{grid-template-columns:1fr}}
@media (max-width:420px){.monate{grid-template-columns:repeat(3,minmax(0,1fr))}.monate button{font-size:1.5rem;min-height:68px}}
.wand-bild svg,#d-bild svg{max-width:640px}
.schnitt-text .kette-liste{margin-top:16px;font-size:1rem;color:var(--text-hell)}
.schnitt-text .kette-liste strong{color:var(--kreide)}
.wagen-paar{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wagen-paar img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:2px}
@media (max-width:420px){.wagen-paar{grid-template-columns:1fr}}
.ki-hinweis{font-size:.8125rem;opacity:.75;margin:6px 0 0}
