/* ============================================================
   SANIERWERK Dresden · site.css · v1
   Palette nach 60/30/10: Grund dunkel, Flaeche dunkel zum Lesen,
   Beige nur dort, wo gehandelt wird (Rechner, Formular).
   Eine Signalfarbe (Bernstein) fuer Handlung. Verlauf nur in
   Ueberschriften und grossen Zahlen.
   ============================================================ */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plus-jakarta-sans-400-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/plus-jakarta-sans-400-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/plus-jakarta-sans-500-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/plus-jakarta-sans-500-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/plus-jakarta-sans-600-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/plus-jakarta-sans-600-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/plus-jakarta-sans-700-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/plus-jakarta-sans-700-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url(fonts/plus-jakarta-sans-800-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}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url(fonts/plus-jakarta-sans-800-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}

:root{
  --bg:#131417;          /* Grund 60 %, Ton des Logohintergrunds */
  --surface:#1E2024;     /* Flaeche zum Lesen */
  --surface-2:#2A2C31;   /* gehoben */
  --line:#35383E;
  --line-strong:#4A4E56;
  --ink:#EDEAE3;         /* 14,9:1 auf Grund */
  --ink-dim:#B8B5AD;
  --ink-mute:#A09D94;    /* >= 4,5:1 auf allen dunklen Flaechen */
  --cta:#F89800;         /* Logo-Orange, einzige Handlungsfarbe */
  --cta-hover:#FFAD2E;
  --cta-ink:#1A1206;
  --grad-a:#F89800;
  --grad-b:#FFC46A;
  --beige:#F2EBDD;       /* nur wo gehandelt wird */
  --beige-2:#FBF7EF;
  --beige-ink:#241E14;   /* 13,9:1 */
  --beige-dim:#6B5D48;
  --beige-line:#E0D6C2;
  --beige-kicker:#8A4C15;
  --grad-a-beige:#B4560F;
  --grad-b-beige:#8A2E0A;
  --ok:#34D399; --ok-beige:#1E6141;
  --bad:#F87171; --bad-beige:#9B2323;
  --r-card:14px; --r-btn:10px; --r-field:8px; --r-chip:4px;
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px}
html,body{margin:0;background:var(--bg);color:var(--ink)}
body{background:linear-gradient(165deg,#1A1B1F 0%,#131417 45%,#0F1013 100%) fixed}
body{font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
main>section,footer,header{overflow:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{line-height:1.12;margin:0 0 .6em;letter-spacing:-.015em;font-weight:800}
h1{font-size:clamp(2.1rem,4.6vw,3.55rem)}
h2{font-size:clamp(1.65rem,3.2vw,2.5rem)}
h3{font-size:1.25rem;font-weight:700}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.grad{background:linear-gradient(92deg,var(--grad-a),var(--grad-b));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.act .grad,.sec-light .grad{background:linear-gradient(92deg,var(--grad-a-beige),var(--grad-b-beige));-webkit-background-clip:text;background-clip:text}
.kicker{display:block;font-size:.86rem;font-weight:700;color:var(--cta);margin:0 0 .8rem;letter-spacing:.01em}
.act .kicker,.sec-light .kicker{color:var(--beige-kicker)}
.lead{font-size:1.16rem;color:var(--ink-dim);max-width:62ch}
.act .lead{color:var(--beige-dim)}
.stand{font-size:.86rem;color:var(--ink-mute);margin:.6rem 0 0}
.act .stand{color:var(--beige-dim)}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.5rem;border-radius:var(--r-btn);font-weight:700;font-size:1rem;text-decoration:none;border:2px solid transparent;cursor:pointer;line-height:1.15;transition:transform .15s,background .15s,border-color .15s;font-family:inherit}
.btn:active{transform:translateY(1px)}
.btn-cta{background:var(--cta);color:var(--cta-ink);border-color:var(--cta)}
.btn-cta:hover{background:var(--cta-hover);border-color:var(--cta-hover);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{background:var(--surface-2);transform:translateY(-2px)}
.act .btn-ghost,.sec-light .btn-ghost{color:var(--beige-ink);border-color:#B8A98C}
.act .btn-ghost:hover{background:#E8DFCC}
.btn-lg{padding:1.15rem 1.9rem;font-size:1.08rem}
.btn-sm{padding:.6rem 1rem;font-size:.9rem}
.btn svg{width:18px;height:18px;flex:none}

/* ---------- Header ---------- */
.site-head{position:sticky;top:0;z-index:50;overflow:visible;background:transparent;padding-top:12px}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:68px;position:relative;background:#18191D;border-radius:16px;box-shadow:0 12px 34px rgba(0,0,0,.38)}
@media (max-width:1220px){.site-head .wrap{margin:0 12px}}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:46px;width:auto;display:block}
@media (max-width:520px){.logo img{height:38px}}
.site-foot .logo img{height:44px}
.foot-claim{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin:.6rem 0 1rem}
.logo b{color:var(--cta);font-weight:800}
.logo small{display:block;font-size:.68rem;font-weight:600;color:var(--ink-mute);letter-spacing:.06em;line-height:1;margin-top:2px}
.nav{display:flex;align-items:center;gap:1.4rem}
.nav a{text-decoration:none;font-weight:600;font-size:.95rem;color:var(--ink-dim)}
.nav a:hover{color:var(--ink)}
.nav .btn{padding:.65rem 1.05rem;font-size:.92rem}
.nav a.btn-cta,.nav a.btn-cta:hover{color:var(--cta-ink)}
.nav-tel{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink)!important;font-weight:700!important}
.nav-toggle{display:none;background:none;border:2px solid var(--line-strong);border-radius:8px;color:var(--ink);width:44px;height:44px;cursor:pointer;align-items:center;justify-content:center}
@media (max-width:960px){
  .nav-toggle{display:inline-flex}
  .nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);background:var(--surface);border-radius:14px;flex-direction:column;align-items:stretch;padding:1rem 20px 1.4rem;gap:.2rem;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 18px 40px rgba(0,0,0,.45)}
  .nav.open{display:flex}
  .nav a{padding:.75rem 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  .nav a:last-child{border-bottom:0}
  .nav .btn{margin-top:.8rem;justify-content:center;padding:.95rem}
}

/* ---------- Sektionen ---------- */
.sec{padding:clamp(3.4rem,7vw,6.2rem) 0;position:relative;background:linear-gradient(165deg,#1B1C20 0%,#141519 48%,#101114 100%)}
.sec-raised{background:linear-gradient(165deg,rgba(39,41,46,.72) 0%,rgba(30,32,36,.55) 50%,rgba(25,26,30,.8) 100%),url(img/bg-slate.webp) center/cover no-repeat #1E2024}
.sec-raised::before{content:"";position:absolute;left:-8%;top:-6%;width:min(64%,940px);aspect-ratio:1600/860;background:url(img/stroke-light.webp) center/contain no-repeat;opacity:.18;pointer-events:none}
.sec-raised>.wrap{position:relative;z-index:1}
.act{background:var(--beige);color:var(--beige-ink)}
.act h1,.act h2,.act h3,.act h4{color:var(--beige-ink)}
.sec-head{max-width:760px;margin-bottom:2.4rem}
/* warmer Verlauf auf Abschnittsebene (Recht & Rendite), gleiche Töne wie Hero */
.sec-warm{background:linear-gradient(180deg,rgba(206,92,28,.92) 0px,rgba(172,70,22,.8) 80px,rgba(118,46,17,.62) 180px,rgba(62,27,14,.45) 320px,rgba(19,20,23,0) 520px) top/100% 560px no-repeat,linear-gradient(165deg,#1B1C20 0%,#141519 48%,#101114 100%);overflow:hidden}
.sec-warm::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(60deg,rgba(255,255,255,.05) 0 1px,transparent 1px 150px),repeating-linear-gradient(-60deg,rgba(255,255,255,.05) 0 1px,transparent 1px 150px);-webkit-mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 340px,transparent 620px);mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 340px,transparent 620px)}
.sec-warm>.wrap{position:relative;z-index:1}
.sec-warm .kicker{color:#FFD08A}
.sec-warm .sec-head p{color:#EDE4D8}

.sec-head h2{margin-bottom:.5rem}
.sec-head p{color:var(--ink-dim);font-size:1.08rem}
.act .sec-head p{color:var(--beige-dim)}
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;align-items:center}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.cols-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
@media (max-width:960px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}

/* ---------- Hero ---------- */
.hero{margin-top:-80px;padding:calc(80px + clamp(2.6rem,6vw,5.4rem)) 0 clamp(2.4rem,5vw,4.4rem);position:relative;background:linear-gradient(112deg,transparent 0 34%,rgba(255,255,255,.04) 46%,transparent 58%),linear-gradient(180deg,rgba(206,92,28,.92) 0px,rgba(172,70,22,.8) 90px,rgba(118,46,17,.62) 200px,rgba(62,27,14,.45) 360px,rgba(19,20,23,0) 560px) top/100% 600px no-repeat,linear-gradient(165deg,rgba(28,29,34,.55) 0%,rgba(19,20,23,.35) 50%,rgba(15,16,19,.7) 100%),url(img/bg-slate.webp) center/cover no-repeat #131417}
.hero::after{content:"";position:absolute;right:-9%;bottom:-6%;width:min(70%,1000px);aspect-ratio:1600/860;background:url(img/stroke-orange.webp) center/contain no-repeat;opacity:.55;pointer-events:none}
.hero>.wrap{position:relative;z-index:1}
.hero::before,.page-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(60deg,rgba(255,255,255,.05) 0 1px,transparent 1px 150px),repeating-linear-gradient(-60deg,rgba(255,255,255,.05) 0 1px,transparent 1px 150px);-webkit-mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 380px,transparent 700px);mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 380px,transparent 700px)}
.hero .kicker,.page-hero .kicker{color:#FFD08A}
.hero .cols-2{grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.hero h1{margin-bottom:1rem}
.hero .lead{font-size:1.2rem;margin-bottom:1.6rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.hero-cta .hint{width:100%;font-size:.88rem;color:var(--ink-mute);margin-top:.2rem}
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.trust div{font-size:.92rem;color:var(--ink-dim)}
.trust strong{display:block;color:var(--ink);font-size:1rem;margin-bottom:.15rem}
@media (max-width:960px){.hero .cols-2{grid-template-columns:1fr}.trust{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.trust{grid-template-columns:1fr;gap:.7rem}.hero-cta .btn{width:100%;justify-content:center}}

/* ---------- Vorher/Nachher-Regler ---------- */
.ba{position:relative;border-radius:var(--r-card);overflow:hidden;aspect-ratio:4/3;background:var(--surface-2);box-shadow:var(--shadow);user-select:none;-webkit-user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba .ba-after{clip-path:inset(0 0 0 var(--pos,55%))}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos,55%);width:3px;background:#fff;transform:translateX(-1.5px);box-shadow:0 0 16px rgba(0,0,0,.55);pointer-events:none}
.ba-handle::after{content:"";position:absolute;top:50%;left:50%;width:48px;height:48px;border-radius:50%;background:var(--cta);transform:translate(-50%,-50%);box-shadow:0 6px 18px rgba(0,0,0,.45);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1206' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6 5 12l4 6M15 6l4 6-4 6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:24px}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;z-index:2}
.ba-range:focus-visible ~ .ba-handle{outline:3px solid var(--cta);outline-offset:0}
.ba-tag{position:absolute;top:14px;padding:.35rem .7rem;border-radius:var(--r-chip);font-size:.8rem;font-weight:700;letter-spacing:.02em;z-index:1;pointer-events:none}
.ba-tag.l{left:14px;background:#7A2B2B;color:#FBE4E0}
.ba-tag.r{right:14px;background:#1E6141;color:#E1F2E6}
.ba-cap{margin:.8rem 0 0;font-size:.9rem;color:var(--ink-mute)}
.act .ba-cap{color:var(--beige-dim)}
.ba-note{position:absolute;left:14px;bottom:12px;font-size:.78rem;color:#fff;background:rgba(0,0,0,.55);padding:.25rem .55rem;border-radius:var(--r-chip);pointer-events:none;z-index:1}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media (max-width:960px){.ba-grid{grid-template-columns:1fr}}

/* ---------- Karten ---------- */
.card{background:linear-gradient(160deg,#232529 0%,#1E2024 60%,#1B1D21 100%);border-radius:var(--r-card);padding:1.5rem;display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:inherit;transition:transform .18s,background .18s;position:relative}
.sec-raised .card{background:linear-gradient(160deg,#2F3137 0%,#2A2C31 60%,#26282D 100%)}
a.card:hover{transform:translateY(-3px);background:var(--surface-2)}
.sec-raised a.card:hover{background:#313947}
.card h3{margin:0;font-size:1.12rem}
.card p{color:var(--ink-dim);font-size:.96rem;margin:0}
.card .ico{width:44px;height:44px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--cta);margin-bottom:.3rem}
.sec-raised .card .ico{background:var(--surface)}
.card .ico svg{width:24px;height:24px}
.card .more{margin-top:auto;padding-top:.5rem;font-weight:700;color:var(--cta);font-size:.92rem}
.card-region{padding:1.1rem 1.2rem;gap:.25rem}
.card-region h3{font-size:1.02rem}
.card-region p{font-size:.88rem}

/* ---------- Problem / Loesung ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.panel{background:linear-gradient(160deg,#232529 0%,#1E2024 60%,#1B1D21 100%);border-radius:var(--r-card);padding:1.8rem}
.sec-raised .panel{background:linear-gradient(160deg,#2F3137 0%,#2A2C31 60%,#26282D 100%)}
.panel h3{display:flex;align-items:center;gap:.6rem;font-size:1.2rem}
.panel h3 .dot{width:12px;height:12px;border-radius:50%;flex:none}
.panel-no h3 .dot{background:var(--bad)}
.panel-yes h3 .dot{background:var(--ok)}
.panel ul{margin:0;padding-left:1.1rem;color:var(--ink-dim)}
.panel li{margin:.4rem 0}
.panel li strong{color:var(--ink)}
.claim{border-left:4px solid var(--cta);padding:.3rem 0 .3rem 1.1rem;font-size:1.3rem;font-weight:700;line-height:1.35;margin:1.4rem 0}
.claim .grad{font-weight:800}
.act .claim{border-color:var(--grad-a-beige)}
@media (max-width:820px){.split{grid-template-columns:1fr}}

/* ---------- Kennzahlen ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.stat{background:linear-gradient(160deg,#232529,#1B1D21);border-radius:var(--r-card);padding:1.4rem 1.5rem}
.sec-raised .stat{background:linear-gradient(160deg,#2F3137,#26282D)}
.stat .n{font-size:clamp(2rem,4vw,2.8rem);font-weight:800;line-height:1;letter-spacing:-.02em}
.stat .l{color:var(--ink-dim);font-size:.95rem;margin-top:.4rem}
.stat .q{color:var(--ink-mute);font-size:.8rem;margin-top:.5rem}
@media (max-width:640px){.stats{grid-template-columns:1fr}}

/* ---------- Tabellen ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:.95rem;margin:1rem 0}
.tbl th,.tbl td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{color:var(--ink);font-weight:700;background:var(--surface-2)}
.tbl td{color:var(--ink-dim)}
.tbl td:first-child{color:var(--ink);font-weight:600}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.act .tbl th{background:#E8DFCC;color:var(--beige-ink)}
.act .tbl td,.act .tbl th{border-color:var(--beige-line)}
.act .tbl td{color:#4A4032}
.act .tbl td:first-child{color:var(--beige-ink)}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- Kurz beantwortet ---------- */
.kurz{background:var(--surface);border-radius:var(--r-card);padding:1.4rem 1.6rem;border-left:4px solid var(--cta);margin:1.6rem 0}
.kurz h2,.kurz h3{font-size:1.05rem;margin-bottom:.6rem;color:var(--cta)}
.kurz ul{margin:0;padding-left:1.1rem}
.kurz li{margin:.35rem 0;color:var(--ink-dim)}
.kurz li strong{color:var(--ink)}

/* ---------- Kalkulator (Beige) ---------- */
.kalk{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:start}
.kalk-form{display:grid;gap:1.25rem}
.field{display:grid;gap:.45rem}
.field>label,.field>.lbl{font-weight:700;font-size:.98rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.field .val{font-variant-numeric:tabular-nums;font-weight:800;color:var(--beige-ink);background:var(--beige-2);padding:.15rem .6rem;border-radius:var(--r-chip);border:1px solid var(--beige-line);min-width:4.6rem;text-align:right}
.field small{color:var(--beige-dim);font-size:.84rem}
input[type=range].rg{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;margin:0;cursor:pointer}
input[type=range].rg::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(90deg,var(--grad-a-beige) 0,var(--grad-a-beige) var(--fill,50%),#DED3BD var(--fill,50%),#DED3BD 100%)}
input[type=range].rg::-moz-range-track{height:8px;border-radius:4px;background:#DED3BD}
input[type=range].rg::-moz-range-progress{height:8px;border-radius:4px;background:var(--grad-a-beige)}
input[type=range].rg::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:var(--beige-ink);border:3px solid var(--cta);margin-top:-9px;box-shadow:0 2px 8px rgba(0,0,0,.3)}
input[type=range].rg::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--beige-ink);border:3px solid var(--cta);box-shadow:0 2px 8px rgba(0,0,0,.3)}
input[type=range].rg:focus-visible{outline:3px solid var(--grad-a-beige);outline-offset:4px;border-radius:4px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#E8DFCC;border-radius:var(--r-btn);padding:4px;gap:4px}
.seg button{border:0;background:transparent;font:inherit;font-weight:700;font-size:.92rem;padding:.7rem .4rem;border-radius:7px;cursor:pointer;color:var(--beige-ink);transition:background .15s}
.seg button[aria-pressed=true]{background:var(--beige-ink);color:var(--cta)}
.seg button:focus-visible{outline:3px solid var(--grad-a-beige);outline-offset:2px}
.chk{display:flex;flex-wrap:wrap;gap:.6rem}
.chk label{display:inline-flex;align-items:center;gap:.5rem;background:var(--beige-2);border:1px solid var(--beige-line);border-radius:var(--r-btn);padding:.6rem .9rem;cursor:pointer;font-weight:600;font-size:.94rem;user-select:none}
.chk label:has(input:checked){background:var(--beige-ink);color:var(--cta);border-color:var(--beige-ink)}
.chk input{accent-color:var(--grad-a-beige);width:18px;height:18px;margin:0}
.chk label:has(input:checked) input{accent-color:var(--cta)}
.kalk-out{background:linear-gradient(160deg,#2E2419 0%,#241E14 55%,#1E1810 100%);color:var(--ink);border-radius:var(--r-card);padding:1.6rem;position:sticky;top:90px}
.kalk-out h3{color:var(--ink);font-size:1.05rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}
.kalk-out h3 .tag{font-size:.78rem;font-weight:600;color:var(--ink-mute)}
.kalk-out .big{font-size:clamp(1.9rem,3.6vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}
.kalk-out .big .grad{background:linear-gradient(92deg,var(--grad-a),var(--grad-b));-webkit-background-clip:text;background-clip:text}
.kalk-out .sub{color:var(--ink-mute);font-size:.86rem;margin-top:.3rem}
.bar{height:12px;border-radius:6px;background:#3B2F1B;margin:1rem 0 .4rem;position:relative;overflow:hidden}
.bar i{position:absolute;top:0;bottom:0;left:var(--from,20%);right:calc(100% - var(--to,60%));background:linear-gradient(90deg,var(--grad-a),var(--grad-b));border-radius:6px;transition:left .35s,right .35s}
.bar-lbl{display:flex;justify-content:space-between;font-size:.78rem;color:var(--ink-mute);font-variant-numeric:tabular-nums}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1.3rem}
.kv div{background:#33281A;border-radius:10px;padding:.85rem .95rem}
.kv b{display:block;font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--cta)}
.kv span{font-size:.82rem;color:var(--ink-dim);display:block;margin-top:.15rem;line-height:1.35}
.kalk-out .note{font-size:.78rem;color:var(--ink-mute);margin-top:1rem;line-height:1.45}
.kalk-out .btn{width:100%;justify-content:center;margin-top:1.1rem}
.kalk-out .lock{display:flex;gap:.5rem;align-items:flex-start;font-size:.84rem;color:var(--ink-dim);margin-top:.8rem}
.kalk-out .lock svg{width:18px;height:18px;flex:none;color:var(--cta);margin-top:2px}
@media (max-width:960px){.kalk{grid-template-columns:1fr}.kalk-out{position:static}}

/* ---------- Formular (Beige) ---------- */
.form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form .field{gap:.35rem}
.form label{font-weight:700;font-size:.95rem}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:1rem;padding:.85rem .95rem;border-radius:var(--r-field);border:1.5px solid #C9BDA3;background:var(--beige-2);color:var(--beige-ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--grad-a-beige);outline-offset:1px;border-color:var(--grad-a-beige)}
.form textarea{min-height:110px;resize:vertical}
.form .full{grid-column:1/-1}
.form .hp{position:absolute;left:-9999px}
.form .btn{width:100%;justify-content:center}
.form .ds{font-size:.84rem;color:var(--beige-dim)}
.form-err{background:#F6DFDA;color:var(--bad-beige);border-radius:var(--r-field);padding:.8rem 1rem;font-weight:600;margin-bottom:1rem;display:none}
.form-err.show{display:block}
.contact-side h3{margin-top:0}
.contact-side p{color:var(--beige-dim)}
.contact-side .tel{font-size:1.6rem;font-weight:800;color:var(--beige-ink);text-decoration:none;display:inline-block;margin:.2rem 0 .6rem}
.contact-side ul{padding-left:1.1rem;color:#4A4032}
.ansprech{display:flex;gap:1rem;align-items:center;background:var(--beige-2);border:1px solid var(--beige-line);border-radius:var(--r-card);padding:.9rem 1rem;margin:.4rem 0 1rem}
.ansprech img{width:72px;height:90px;object-fit:cover;border-radius:10px;flex:none}
.ansprech strong{display:block;font-size:1.05rem;color:var(--beige-ink)}
.ansprech span{display:block;font-size:.86rem;color:var(--beige-dim);margin:.15rem 0 .35rem}
.ansprech a{font-size:1.25rem;font-weight:800;color:var(--beige-ink);text-decoration:none}
@media (max-width:640px){.form{grid-template-columns:1fr}}
@media (max-width:640px){#anfrage .cols-2{gap:1.6rem}#anfrage form.form{order:1}#anfrage .contact-side{order:2}#anfrage .contact-side>.kicker,#anfrage .contact-side>h2{display:none}}
#anfrage .form-head{display:none}
@media (max-width:640px){#anfrage .form-head{display:block;grid-column:1/-1;margin:0 0 .2rem}#anfrage .form-head .fh-title{font-size:1.5rem;font-weight:800;line-height:1.15;color:var(--beige-ink);margin:0 0 .3rem;letter-spacing:-.015em}#anfrage .form-head p{color:var(--beige-dim);font-size:.95rem;margin:0}}

/* ---------- Recht & Rendite ---------- */
.law{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.law .panel{display:flex;flex-direction:column}
.law .n{font-size:2.6rem;font-weight:800;line-height:1;letter-spacing:-.02em;margin:.4rem 0 .5rem}
.law p{color:var(--ink-dim);font-size:.96rem}
.law .more{margin-top:auto;padding-top:.8rem;font-weight:700;color:var(--cta);text-decoration:none}
.law .q{font-size:.8rem;color:var(--ink-mute)}
@media (max-width:960px){.law{grid-template-columns:1fr}}

/* ---------- Ueber / O-Ton ---------- */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:2.6rem;align-items:center}
.about img{border-radius:var(--r-card);box-shadow:var(--shadow);width:100%;aspect-ratio:4/5;object-fit:cover}
.about blockquote{margin:0 0 1.2rem;font-size:1.28rem;font-weight:600;line-height:1.45;border-left:4px solid var(--cta);padding-left:1.1rem}
.about cite{font-style:normal;color:var(--ink-mute);font-size:.9rem;display:block}
@media (max-width:820px){.about{grid-template-columns:1fr}.about img{max-width:420px}}

/* ---------- FAQ ---------- */
.faq{max-width:860px}
.faq details{background:var(--surface);border-radius:12px;margin-bottom:.7rem;overflow:hidden}
.sec-raised .faq details{background:var(--surface-2)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;font-weight:700;font-size:1.04rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";flex:none;width:34px;height:34px;border-radius:8px;background:var(--beige);color:var(--beige-ink);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;line-height:1}
.faq details[open] summary::before{content:"–"}
.faq .a{padding:0 1.2rem 1.2rem 4.3rem;color:var(--ink-dim)}
.faq .a p{margin-bottom:.6rem}
@media (max-width:520px){.faq .a{padding-left:1.2rem}}

/* ---------- Regionen / Sitemap ---------- */
.regions{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem}
@media (max-width:1100px){.regions{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.regions{grid-template-columns:1fr 1fr}}
.linklist{columns:2;column-gap:2rem;padding-left:1.1rem;margin:0}
.linklist li{margin:.3rem 0;break-inside:avoid}
.linklist a{color:var(--ink-dim);text-decoration:none}
.linklist a:hover{color:var(--cta)}
@media (max-width:640px){.linklist{columns:1}}

/* ---------- Unterseiten ---------- */
.page-hero{margin-top:-80px;padding:calc(80px + clamp(2.4rem,5vw,4.2rem)) 0 clamp(1.8rem,4vw,3rem);position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(206,92,28,.92) 0px,rgba(172,70,22,.8) 90px,rgba(118,46,17,.62) 200px,rgba(62,27,14,.45) 360px,rgba(19,20,23,0) 560px) top/100% 600px no-repeat,url(img/bg-slate.webp) center/cover no-repeat #131417}
.page-hero>.wrap{position:relative;z-index:1}
.page-hero .crumbs,.page-hero .crumbs a{color:#E8D9C8}
.page-hero .wrap{max-width:900px}
.crumbs{font-size:.86rem;color:var(--ink-mute);margin-bottom:1rem}
.crumbs a{color:var(--ink-mute);text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.article{max-width:900px}
.article h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin-top:2.4rem}
.article h3{margin-top:1.6rem}
.article p,.article li{color:var(--ink-dim)}
.article p strong,.article li strong{color:var(--ink)}
.article ul,.article ol{padding-left:1.2rem}
.article li{margin:.35rem 0}
.article .hinweis{background:var(--surface);border-radius:10px;padding:1rem 1.2rem;color:var(--ink-dim);font-size:.95rem;border-left:4px solid var(--line-strong)}
.article a{color:var(--cta)}
.datenpunkt{background:var(--surface-2);border-radius:var(--r-card);padding:1.4rem 1.6rem;margin:2rem 0;font-size:1.12rem;font-weight:600;line-height:1.5}
.datenpunkt .k{display:block;font-size:.8rem;font-weight:700;color:var(--cta);margin-bottom:.4rem}
.quellen{font-size:.88rem;color:var(--ink-mute)}
.quellen ol{padding-left:1.2rem}
.quellen li{margin:.3rem 0;word-break:break-word}
.quellen a{color:var(--ink-dim)}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:820px){.related{grid-template-columns:1fr}}
.page-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0 0}

/* ---------- Footer ---------- */
.site-foot{position:relative;background:linear-gradient(180deg,rgba(18,19,22,.6),rgba(12,13,16,.92)),url(img/bg-slate.webp) center/cover no-repeat #0F1013;padding:3.2rem 0 2rem;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-dim)}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem}
.site-foot h4{color:var(--ink);font-size:.95rem;margin-bottom:.7rem}
.site-foot ul{list-style:none;padding:0;margin:0}
.site-foot li{margin:.3rem 0}
.site-foot a{color:var(--ink-dim);text-decoration:none}
.site-foot a:hover{color:var(--cta)}
.site-foot::after{content:"";position:absolute;right:-6%;bottom:-8%;width:min(54%,760px);aspect-ratio:1600/860;background:url(img/stroke-orange.webp) center/contain no-repeat;opacity:.5;pointer-events:none}
.site-foot>.wrap{position:relative;z-index:1}
.foot-bottom{margin-top:2.2rem;padding-top:1.2rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.84rem;color:var(--ink-mute)}
@media (max-width:960px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ---------- Reveal ---------- */
@media (prefers-reduced-motion:no-preference){
  [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
  [data-reveal].in{opacity:1;transform:none}
}

/* ---------- Mobil ---------- */
@media (max-width:520px){
  body{font-size:17.5px}
  .sec{padding:2.8rem 0}
  .wrap{padding:0 16px}
  h1{font-size:2.15rem}
  .hero .lead{font-size:1.08rem}
  .card{padding:1.2rem}
  .kalk-out{padding:1.2rem}
  .kv{grid-template-columns:1fr}
}

/* ---------- Druck (Kalkulation als PDF) ---------- */
@media print{
  body{background:#fff;color:#111;font-size:12pt}
  .site-head,.site-foot,.no-print{display:none!important}
  .print-sheet{max-width:none;color:#111}
  .print-sheet h1,.print-sheet h2,.print-sheet h3{color:#111}
  .print-sheet .tbl th{background:#eee;color:#111}
  .print-sheet .tbl td,.print-sheet .tbl th{border-color:#bbb;color:#111}
  a{text-decoration:none;color:#111}
}
