
:root{
  --paper:#F3F6F3;
  --white:#FFFFFF;
  --ink:#10302C;
  --ink-soft:#47635E;
  --line:#C9D6D0;
  --spruce:#0B5D4B;
  --spruce-dark:#084638;
  --sun:#F2B632;
  --sun-soft:#FBE9B8;
  --wrap:1120px;
  --font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1.0625rem;line-height:1.6}
img,svg{max-width:100%;display:block}
a{color:var(--spruce);text-underline-offset:.18em}
a:hover{color:var(--spruce-dark)}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:4px}
h1,h2,h3{line-height:1.12;letter-spacing:-.02em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.3rem,7.2vw,4.5rem);font-weight:800}
h2{font-size:clamp(1.7rem,4.4vw,2.6rem);font-weight:800}
h3{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}
p{margin:0}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.lead{font-size:clamp(1.1rem,2.4vw,1.3rem);color:var(--ink-soft);max-width:38em}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--white);padding:10px 14px;border-radius:6px;z-index:50}
.skip:focus{left:8px}

/* Platzhalter-Hinweise (nur Vorschau) */
.preview-bar{background:var(--sun-soft);color:var(--ink);font-size:.9rem;padding:8px 0;border-bottom:1px solid #E9CE7B}
.ph{background:var(--sun-soft);border-bottom:2px dashed #C88F0A;padding:0 .2em;border-radius:2px}

/* Kopfzeile */
.head{position:sticky;top:0;z-index:20;background:rgba(243,246,243,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-decoration:none;font-size:1.05rem}
.brand svg{width:30px;height:30px;flex:none}
.nav{display:none;gap:26px}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.98rem}
.nav a:hover{text-decoration:underline}
@media (min-width:860px){.nav{display:flex}}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:10px;border:2px solid var(--spruce);background:var(--spruce);color:var(--white);font:inherit;font-weight:700;text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{background:var(--spruce-dark);border-color:var(--spruce-dark);color:var(--white)}
.btn.small{min-height:42px;padding:8px 16px;font-size:.95rem}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--white)}

/* Hero */
.hero{padding:48px 0 40px}
.hero h1{max-width:13ch}
.hero .lead{margin-top:20px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-note{margin-top:14px;font-size:.95rem;color:var(--ink-soft)}
@media (min-width:860px){.hero{padding:84px 0 56px}}

/* Effizienzband */
.band{margin-top:48px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:22px 18px 18px}
.band-title{font-weight:700;margin-bottom:46px}
.band-track{position:relative}
.scale{display:grid;grid-template-columns:repeat(9,1fr);border-radius:8px;overflow:hidden}
.scale span{display:grid;place-items:center;height:44px;font-weight:800;font-size:.95rem;color:#fff}
.scale .c1{background:#1B8A47}.scale .c2{background:#4BA743}.scale .c3{background:#93C13C}
.scale .c4{background:#D2D32E;color:var(--ink)}.scale .c5{background:#F5CB2E;color:var(--ink)}.scale .c6{background:#F2A22B;color:var(--ink)}
.scale .c7{background:#EA6E2A}.scale .c8{background:#DD3D2B}.scale .c9{background:#B5212B}
.pin{position:absolute;bottom:100%;transform:translateX(-50%);margin-bottom:6px;font-size:.82rem;font-weight:700;white-space:nowrap;padding:5px 9px;border-radius:6px}
.pin::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:6px solid transparent}
.pin.now{left:83.33%;background:var(--white);border:2px solid var(--ink);color:var(--ink)}
.pin.now::after{border-top-color:var(--ink)}
.pin.goal{left:27.78%;background:var(--ink);color:var(--white);border:2px solid var(--ink);animation:toGoal 1.8s cubic-bezier(.6,.05,.2,1) .5s both}
.pin.goal::after{border-top-color:var(--ink)}
@keyframes toGoal{from{left:83.33%;opacity:0}15%{opacity:1}to{left:27.78%;opacity:1}}
.band-cap{margin-top:14px;font-size:.92rem;color:var(--ink-soft)}
@media (prefers-reduced-motion:reduce){.pin.goal{animation:none}html{scroll-behavior:auto}}

/* Abschnitte */
section{padding:56px 0}
@media (min-width:860px){section{padding:88px 0}}
.sec-head{max-width:44em;margin-bottom:32px}
.sec-head p{margin-top:14px;color:var(--ink-soft)}
.alt{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dark{background:var(--ink);color:var(--white)}
.dark .sec-head p,.dark .muted{color:#B9CEC8}
.dark a{color:var(--sun)}

/* Haus */
.house{display:grid;gap:28px}
@media (min-width:860px){.house{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px}}
.house svg{width:100%;max-width:440px;margin:0 auto}
.house svg .p{fill:var(--white);stroke:var(--ink);stroke-width:3;stroke-linejoin:round;cursor:pointer;transition:fill .2s}
.house svg .p.on{fill:var(--sun)}
.house svg .air{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;cursor:pointer}
.house svg .air.on{stroke:#C88F0A;stroke-width:5}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;font-weight:600;font-size:.95rem;min-height:44px;padding:8px 14px;border-radius:999px;border:2px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--white)}
.readout{margin-top:20px;border-left:5px solid var(--sun);padding:4px 0 4px 18px;min-height:150px}
.readout .val{font-size:clamp(2rem,6vw,3rem);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.readout h3{margin-bottom:4px}
.readout p{margin-top:8px;color:var(--ink-soft)}
.fine{font-size:.88rem;color:var(--ink-soft);margin-top:18px}

/* Leistungen */
.services{display:grid;gap:0;border-top:2px solid var(--ink)}
.service{display:grid;gap:6px;padding:20px 0;border-bottom:1px solid var(--line)}
.service p{color:var(--ink-soft)}
@media (min-width:760px){.service{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;align-items:baseline}}
.price{display:inline-block;margin-top:6px;font-weight:700;color:var(--ink)}

/* Ablauf */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:22px;counter-reset:s}
@media (min-width:760px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 48px}}
@media (min-width:1040px){.steps{grid-template-columns:repeat(4,minmax(0,1fr))}}
.steps li{counter-increment:s;border-top:2px solid var(--sun);padding-top:14px}
.steps li::before{content:counter(s);display:block;font-size:2.4rem;font-weight:800;line-height:1;color:var(--sun);margin-bottom:10px}
.steps p{margin-top:8px}

/* Förderung */
.fund{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fund th,.fund td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.fund tr:last-child th,.fund tr:last-child td{border-bottom:0}
.fund th{font-weight:700;width:40%}
.fund .rate{font-weight:800;white-space:nowrap}
@media (max-width:620px){.fund,.fund tbody,.fund tr,.fund th,.fund td{display:block;width:100%}.fund th{border-bottom:0;padding-bottom:2px}.fund td{padding-top:2px}}
.note{margin-top:18px;padding:16px 18px;background:var(--sun-soft);border-radius:10px;font-size:.98rem}

/* Gründe */
.reasons{display:grid;gap:26px}
@media (min-width:760px){.reasons{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 56px}}
.reasons p{margin-top:8px;color:var(--ink-soft)}

/* Über mich */
.about{display:grid;gap:24px}
@media (min-width:760px){.about{grid-template-columns:220px minmax(0,1fr);gap:48px;align-items:start}}
.photo{aspect-ratio:4/5;max-width:220px;border:2px dashed #C88F0A;background:var(--sun-soft);border-radius:12px;display:grid;place-items:center;text-align:center;padding:16px;font-size:.92rem}
.about p+p{margin-top:12px}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq details:first-of-type{border-top:2px solid var(--ink)}
.faq summary{cursor:pointer;font-weight:700;font-size:1.08rem;padding:16px 36px 16px 0;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:10px;font-size:1.6rem;font-weight:400;line-height:1.3}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 18px;max-width:46em;color:var(--ink-soft)}

/* Formular */
.contact{display:grid;gap:36px}
@media (min-width:860px){.contact{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px}}
.contact ul{margin:18px 0 0;padding-left:1.1em}
.contact li{margin-top:6px}
form{background:var(--white);color:var(--ink);border-radius:16px;padding:22px}
@media (min-width:560px){form{padding:30px}}
.field{margin-bottom:16px}
label{display:block;font-weight:700;font-size:.95rem;margin-bottom:6px}
input,select{width:100%;min-height:50px;padding:10px 12px;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:2px solid var(--line);border-radius:8px}
input:focus,select:focus{border-color:var(--spruce);outline:none;box-shadow:0 0 0 3px var(--sun-soft)}
form .btn{width:100%;margin-top:6px}
.form-fine{margin-top:12px;font-size:.88rem;color:var(--ink-soft)}
.form-msg{margin-top:14px;padding:14px;border-radius:8px;background:var(--sun-soft);font-size:.95rem}
.form-msg[hidden]{display:none}

footer{padding:36px 0 44px;font-size:.95rem;color:var(--ink-soft)}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}
footer nav{display:flex;flex-wrap:wrap;gap:8px 22px}
footer a{color:var(--ink)}
