/* Neue Deubacher Mitte – Projektseite · CI aus Exposé (Dunkelbraun #433d37, Gold #bda681, Gallus #957764, Magnus #586159) */
@font-face{font-family:"Cormorant";src:url(/assets/fonts/cormorant-garamond-latin-300-normal.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant";src:url(/assets/fonts/cormorant-garamond-latin-300-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Cormorant";src:url(/assets/fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant";src:url(/assets/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken";src:url(/assets/fonts/hanken-grotesk-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Hanken";src:url(/assets/fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Hanken";src:url(/assets/fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Hanken";src:url(/assets/fonts/hanken-grotesk-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --ink:#2b2621;--brown:#433d37;--brown-2:#3a3530;--brown-3:#514a43;
  --gold:#bda681;--gold-l:#d6c6a6;--gold-d:#9a8461;
  --gallus:#957764;--aurelia:#bda681;--magnus:#586159;
  --cream:#f5f1ea;--paper:#fbf9f5;--sand:#ece5d8;--line:#e2d9ca;--mute:#7a7066;
  --serif:"Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Hanken",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --r:4px;--ease:cubic-bezier(.22,.61,.36,1);--ease2:cubic-bezier(.65,0,.35,1);
  --gut:clamp(20px,4.5vw,64px);--sec:clamp(80px,11vw,160px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button{font:inherit;color:inherit}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:100%;max-width:1320px;margin:0 auto;padding:0 var(--gut)}
.wrap--n{max-width:1080px}
.sec{padding:var(--sec) 0;position:relative}
.on-dark{background:var(--brown);color:#f3eee6}
.on-cream{background:var(--cream)}
.on-sand{background:var(--sand)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font:500 12px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-d)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.8}
.on-dark .eyebrow{color:var(--gold)}
.h1,.h2,.h3{font-family:var(--serif);font-weight:300;letter-spacing:-.01em;line-height:1.04;margin:0}
.h2{font-size:clamp(38px,5.6vw,78px)}
.h2 em,.h3 em,.h1 em{font-style:italic;color:var(--gold-d)}
.on-dark .h2 em{color:var(--gold)}
.h3{font-size:clamp(28px,3vw,40px);line-height:1.1}
.lead{font-size:clamp(17px,1.35vw,20px);line-height:1.7;color:#4c443d;max-width:58ch;font-weight:300}
.on-dark .lead{color:#d9d1c4}
.sec-head{display:grid;grid-template-columns:1fr;gap:22px;margin-bottom:clamp(40px,6vw,80px)}
.sec-head .eyebrow{margin-bottom:4px}
@media(min-width:960px){.sec-head--split{grid-template-columns:1.05fr .95fr;align-items:end;gap:64px}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 28px;border-radius:999px;border:0;text-decoration:none;font:500 14px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:transform .35s var(--ease),background .35s,color .35s,box-shadow .35s;white-space:nowrap}
.btn svg{width:18px;height:18px;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--gold{background:var(--gold);color:#221d18;box-shadow:0 10px 30px -12px rgba(189,166,129,.9)}
.btn--gold:hover{background:#c9b48f;transform:translateY(-2px)}
.btn--line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor}
.btn--line:hover{background:rgba(255,255,255,.08)}
.btn--dark{background:var(--brown);color:#fff}
.btn--dark:hover{background:var(--ink);transform:translateY(-2px)}
.btn--sm{min-height:42px;padding:0 20px;font-size:12px}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:clamp(40px,5vw,64px)}
.cta-row--c{justify-content:center}
.cta-note{font-size:13px;color:var(--mute)}
.on-dark .cta-note{color:#b9afa2}

/* Header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .5s var(--ease),box-shadow .5s,transform .5s var(--ease)}
.hdr__in{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;color:#fff;text-decoration:none}
.wm{height:22px;width:auto;fill:currentColor}
.hdr .btn{min-height:42px;padding:0 20px;font-size:12px}
.hdr.is-solid{background:rgba(251,249,245,.92);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 rgba(67,61,55,.08)}
.hdr.is-solid .brand{color:var(--brown)}
.hdr.is-hidden{transform:translateY(-100%)}
@media(max-width:620px){.hdr__in{height:64px}.wm{height:15px}.hdr .btn{display:none}}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#2f2a25}
.hero__img{position:absolute;inset:0}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform:scale(1.08);animation:kb 14s var(--ease) forwards}
@keyframes kb{to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,26,22,.42) 0%,rgba(30,26,22,0) 26%,rgba(30,26,22,0) 46%,rgba(30,26,22,.72) 100%);pointer-events:none}
.hero__c{position:relative;z-index:2;width:100%;padding-bottom:clamp(64px,10vh,120px)}
.hero__loc{font:500 12px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;opacity:.9;margin-bottom:22px;display:flex;gap:14px;align-items:center}
.hero__loc i{width:6px;height:6px;border-radius:50%;background:var(--gold);display:inline-block}
.hero h1{margin:0}
.hero__wm{width:min(880px,92vw);height:auto;fill:#fff;filter:drop-shadow(0 6px 30px rgba(0,0,0,.25))}
.hero__row{display:flex;flex-wrap:wrap;align-items:center;gap:20px 34px;margin-top:34px}
.hero__price{font:300 clamp(20px,2vw,26px)/1.2 var(--serif);letter-spacing:.01em}
.hero__price b{font-weight:500}
.scroll-ind{position:absolute;left:50%;bottom:22px;z-index:3;width:44px;height:44px;margin-left:-22px;display:grid;place-items:center;color:#fff;opacity:.85;transition:opacity .4s;text-decoration:none}
.scroll-ind svg{width:22px;height:22px;animation:bob 2.2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(-3px)}50%{transform:translateY(5px)}}
.scroll-ind.is-gone{opacity:0;pointer-events:none}
@media(max-width:620px){.hero__row .btn{width:100%}.hero__c{padding-bottom:84px}.hero__loc{letter-spacing:.16em;font-size:11px;line-height:1.5}}

/* Facts */
.facts{background:var(--brown);color:#f3eee6;padding:clamp(48px,6vw,80px) 0;position:relative;overflow:hidden}
.facts__g{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 18px}
@media(min-width:900px){.facts__g{grid-template-columns:repeat(6,1fr)}}
.fact b{display:block;font:300 clamp(40px,4.6vw,64px)/1 var(--serif);color:#fff;white-space:nowrap}
.fact b small{font-size:.45em;margin-left:4px;color:var(--gold)}
.fact b sup{font-size:.36em;vertical-align:top;position:relative;top:.5em;margin-right:6px;color:var(--gold);font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase}
.fact>span{display:block;margin-top:12px;font-size:13px;letter-spacing:.06em;color:#cfc5b7;line-height:1.4}
.fact{position:relative;padding-left:18px}
.fact::before{content:"";position:absolute;left:0;top:6px;bottom:4px;width:1px;background:linear-gradient(var(--gold),rgba(189,166,129,0))}

/* Intro */
.intro{display:grid;gap:48px;align-items:center}
@media(min-width:960px){.intro{grid-template-columns:1fr 1fr;gap:96px}}
.draw{width:100%;aspect-ratio:1168/424;background:var(--gold-d);-webkit-mask:url(/assets/img/zeichnung.svg) center/contain no-repeat;mask:url(/assets/img/zeichnung.svg) center/contain no-repeat}
.js .draw.rv{clip-path:inset(0 100% 0 0);opacity:1;transform:none;transition:clip-path 2.6s var(--ease2)}
.js .draw.rv.in{clip-path:inset(0 0 0 0)}
.intro__p p{margin:0 0 18px}
.intro__p .lead{margin-bottom:24px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:var(--cream);border:1px solid var(--line);font-size:13px;color:#4c443d}
.chip svg{width:16px;height:16px;color:var(--gold-d)}

/* Ensemble (sticky scroll) */
.ens{position:relative;background:#1f1b17;color:#fff}
.ens__track{height:270vh;position:relative}
.ens__stick{position:sticky;top:0;height:100svh;overflow:hidden}
.ens__img{position:absolute;inset:0}
.ens__img img{width:100%;height:100%;object-fit:cover;transform:scale(var(--z,1.06));transform-origin:var(--ox,50%) var(--oy,50%);transition:transform 1.2s var(--ease),transform-origin 1.2s var(--ease)}
.ens__spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse var(--sw,30%) var(--sh,38%) at var(--sx,50%) var(--sy,50%),rgba(20,17,14,0) 0%,rgba(20,17,14,0) 50%,rgba(20,17,14,.5) 100%);transition:opacity .8s}
.ens__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,17,14,.8) 0%,rgba(20,17,14,.3) 38%,rgba(20,17,14,0) 58%);pointer-events:none;transition:opacity .8s}
.ens__shade--r{background:linear-gradient(270deg,rgba(20,17,14,.8) 0%,rgba(20,17,14,.3) 38%,rgba(20,17,14,0) 58%);opacity:0}
.ens.is-r .ens__shade--l{opacity:0}.ens.is-r .ens__shade--r{opacity:1}
@media(min-width:821px){.ens__steps{transition:margin .9s var(--ease)}.ens.is-r .ens__steps{margin-left:auto}}
.ens__ui{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:center}
.ens__head{position:absolute;top:clamp(90px,12vh,130px);left:0;right:0}
.ens__steps{position:relative;width:min(460px,100%);min-height:300px}
.ens__step{position:absolute;inset:0 auto auto 0;width:100%;opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);pointer-events:none}
.ens__step.on{opacity:1;transform:none;pointer-events:auto}
.ens__step .tag{display:inline-flex;align-items:center;gap:10px;font:600 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.ens__step .tag i{width:10px;height:10px;border-radius:50%;background:var(--c,var(--gold));box-shadow:0 0 0 4px rgba(255,255,255,.12)}
.ens__step h3{font:300 clamp(40px,5vw,72px)/1 var(--serif);margin:0 0 16px}
.ens__step p{margin:0 0 18px;color:#e5ddd1;font-weight:300;font-size:17px;line-height:1.6}
.ens__step dl{display:flex;gap:28px;margin:0}
.ens__step dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#bfb4a5}
.ens__step dd{margin:4px 0 0;font:400 26px/1 var(--serif);color:#fff}
.ens__pins{position:absolute;inset:0;z-index:2;pointer-events:none}
.pin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;transition:opacity .6s,transform .6s var(--ease)}
.pin i{width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.18)}
.pin b{font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;background:rgba(31,27,23,.7);padding:7px 10px;border-radius:999px;white-space:nowrap}
.pin.on{opacity:1;transform:translate(-50%,-50%) scale(1.08)}
.pin.on i{background:var(--gold);animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(189,166,129,.7)}100%{box-shadow:0 0 0 22px rgba(189,166,129,0)}}
.ens__prog{position:absolute;right:var(--gut);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:3}
.ens__prog span{width:2px;height:34px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}
.ens__prog span::after{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .5s}
.ens__prog span.on::after{transform:scaleY(1)}
@media(max-width:820px){
  .ens__shade--r{display:none}.ens.is-r .ens__shade--l{opacity:1}
  .ens__shade{background:linear-gradient(0deg,rgba(20,17,14,.92) 0%,rgba(20,17,14,.6) 38%,rgba(20,17,14,0) 64%)}
  .ens__ui{justify-content:flex-end;padding-bottom:40px}
  .ens__steps{min-height:290px}
  .ens__step h3{font-size:42px}
  .ens__head{top:84px}
  .ens__prog{display:none}
  .pin b{display:none}
}
.no-js .ens__track{height:auto}.no-js .ens__stick{position:relative;height:auto;min-height:100svh}
.no-js .ens__step{position:relative;opacity:1;transform:none;margin-bottom:40px}

/* Häuser */
.houses{display:grid;gap:28px}
@media(min-width:980px){.houses{grid-template-columns:repeat(3,1fr);gap:28px}}
.house{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 1px 0 var(--line),0 30px 60px -40px rgba(67,61,55,.45);display:flex;flex-direction:column}
.house__img{position:relative;aspect-ratio:4/3;overflow:hidden}
.house__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.house:hover .house__img img{transform:scale(1.05)}
.house__no{position:absolute;left:18px;top:18px;font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#fff;background:var(--c);padding:9px 12px;border-radius:999px}
.house__b{padding:28px 28px 30px;display:flex;flex-direction:column;flex:1}
.house__b h3{font:300 40px/1 var(--serif);margin:0 0 6px}
.house__b .sub{font-size:13px;letter-spacing:.08em;color:var(--mute);margin-bottom:16px}
.house__b p{margin:0 0 22px;color:#4c443d;font-weight:300}
.house__k{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}
.house__k b{display:block;font:400 22px/1.05 var(--serif)}
.house__k span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.house__bar{height:4px;background:var(--c)}

/* Innen */
.inside{display:grid;gap:18px}
@media(min-width:900px){.inside{grid-template-columns:1.35fr 1fr;grid-template-rows:auto auto}}
.ph{position:relative;overflow:hidden;border-radius:var(--r);background:#ddd}
.ph picture{display:block;width:100%;height:100%}
.ph img{width:100%;height:100%;object-fit:cover}
.ph--big{aspect-ratio:4/3}
@media(min-width:900px){.ph--big{grid-row:span 2;aspect-ratio:auto;min-height:640px}}
.ph figcaption{position:absolute;left:16px;bottom:16px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(31,27,23,.55);backdrop-filter:blur(6px);padding:8px 12px;border-radius:999px}
.ph--par img{height:118%;transform:translateY(var(--py,0));will-change:transform}
.inside__sm{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.inside__sm .ph{aspect-ratio:1/1}
.inside__wide{aspect-ratio:16/10}
.equip{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:clamp(48px,6vw,80px)}
@media(min-width:760px){.equip{grid-template-columns:repeat(4,1fr)}}
.eq{background:var(--paper);padding:26px 22px;display:flex;flex-direction:column;gap:14px;min-height:150px}
.eq svg{width:30px;height:30px;color:var(--gold-d);stroke-width:1.3}
.eq b{font:500 15px/1.35 var(--sans)}
.eq span{font-size:13px;color:var(--mute);line-height:1.45;margin-top:-6px}

/* Typen */
.types{display:grid;gap:18px}
@media(min-width:760px){.types{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1180px){.types{grid-template-columns:repeat(4,1fr)}}
.type{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s}
.type:hover{transform:translateY(-6px);box-shadow:0 30px 50px -36px rgba(67,61,55,.5)}
.type__gr{aspect-ratio:4/3;background:#fff;display:grid;place-items:center;margin:-6px -6px 18px;overflow:hidden}
.type__gr img{max-height:100%;width:auto;object-fit:contain}
.badge{display:inline-flex;align-self:flex-start;align-items:center;gap:7px;font:600 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:#f1ead9;color:#7a6239;margin-bottom:14px}
.badge--s{background:#e7ebe4;color:var(--magnus)}
.type h3{font:300 30px/1.05 var(--serif);margin:0 0 8px}
.type .meta{font-size:14px;color:var(--mute);margin-bottom:14px}
.type ul{list-style:none;margin:0 0 20px;padding:0;font-size:14px;color:#4c443d}
.type li{padding:7px 0 7px 22px;border-top:1px solid #f0ebe2;position:relative}
.type li::before{content:"";position:absolute;left:2px;top:15px;width:9px;height:5px;border-left:1.5px solid var(--gold-d);border-bottom:1.5px solid var(--gold-d);transform:rotate(-45deg)}
.type__p{margin-top:auto;font:400 28px/1 var(--serif)}
.type__p small{font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-right:8px}

/* Finder */
.finder{margin-top:clamp(56px,7vw,96px);background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.finder__top{display:flex;flex-wrap:wrap;gap:16px 26px;align-items:center;justify-content:space-between;padding:22px clamp(18px,3vw,32px);border-bottom:1px solid var(--line);background:var(--paper)}
.finder__top h3{font:300 30px/1 var(--serif);margin:0}
.flt{display:flex;flex-wrap:wrap;gap:8px}
.flt button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 15px;min-height:40px;font-size:13px;cursor:pointer;transition:all .3s}
.flt button[aria-pressed="true"]{background:var(--brown);border-color:var(--brown);color:#fff}
.flt .sep{width:1px;background:var(--line);margin:0 4px}
.ft{width:100%;border-collapse:collapse;font-size:15px}
.ft th{font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);text-align:left;padding:14px 12px;border-bottom:1px solid var(--line)}
.ft td{padding:16px 12px;border-bottom:1px solid #f1ece4;vertical-align:middle}
.ft tr.u{cursor:pointer;transition:background .25s}
.ft tr.u:hover{background:#faf7f1}
.ft tr.u.open{background:#f6f1e8}
.ft .we{font:500 15px/1 var(--sans);display:flex;align-items:center;gap:10px}
.ft .we i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.ft .pr{font:400 22px/1 var(--serif);white-space:nowrap}
.ft .qm{color:var(--mute);font-size:13px}
.ft .arr{width:34px;text-align:right}
.ft .arr svg{width:18px;height:18px;transition:transform .35s;color:var(--gold-d)}
.ft tr.open .arr svg{transform:rotate(180deg)}
.ft tr.det td{padding:0;border-bottom:1px solid var(--line)}
.det__in{display:grid;gap:24px;padding:22px clamp(14px,2vw,26px) 28px;align-items:center}
@media(min-width:860px){.det__in{grid-template-columns:1.5fr 1fr}}
.det__gr{display:grid;gap:10px 16px;background:#fff;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start}
.det__gr figure{margin:0;display:grid;gap:8px}
.det__gr img{width:100%;height:auto;border:1px solid #f0ebe2}
.det__gr figcaption{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.det__tx h4{font:300 34px/1 var(--serif);margin:0 0 10px}
.det__tx p{margin:0 0 18px;color:#4c443d;font-size:15px}
.det__tx .kv{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:14px;margin-bottom:22px}
.det__tx .kv dt{color:var(--mute)}.det__tx .kv dd{margin:0}
.finder__foot{padding:16px clamp(18px,3vw,32px);font-size:13px;color:var(--mute);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
@media(max-width:720px){
  .ft thead{display:none}
  .ft tr.u{display:grid;grid-template-columns:1fr auto;grid-template-areas:"we pr" "info qm" "info arr";padding:14px 16px;border-bottom:1px solid #f1ece4}
  .ft tr.u td{padding:0;border:0}
  .ft td.c-we{grid-area:we}.ft td.c-pr{grid-area:pr;text-align:right}.ft td.c-qm{grid-area:qm;text-align:right}
  .ft td.c-h,.ft td.c-e,.ft td.c-z,.ft td.c-f{display:inline;font-size:13px;color:var(--mute)}
  .ft td.c-info{grid-area:info;font-size:13px;color:var(--mute);padding-top:6px}
  .ft td.c-h,.ft td.c-e,.ft td.c-z,.ft td.c-f{display:none}
  .ft td.arr{display:none}
  .ft tr.det{display:block}
}
@media(min-width:721px){.ft td.c-info{display:none}}

/* 360 */
.tours{display:grid;gap:22px}
@media(min-width:880px){.tours{grid-template-columns:1fr 1fr}}
.tour{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;color:#fff;cursor:pointer;border:0;padding:0;text-align:left;background:#222;display:block;width:100%}
.tour img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.tour:hover img{transform:scale(1.06)}
.tour::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,0) 35%,rgba(20,17,14,.8))}
.tour__c{position:absolute;left:clamp(20px,3vw,34px);right:clamp(20px,3vw,34px);bottom:clamp(20px,3vw,32px);z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.tour__c b{display:block;font:300 clamp(28px,3vw,40px)/1.05 var(--serif)}
.tour__c span{font-size:13px;letter-spacing:.1em;color:#e3dacd}
.tour__play{flex:none;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);transition:transform .4s var(--ease),background .4s}
.tour:hover .tour__play{transform:scale(1.08);background:var(--gold)}
.tour__play svg{width:28px;height:28px}
.tour__360{position:absolute;top:18px;left:18px;z-index:2;font:600 11px/1 var(--sans);letter-spacing:.2em;background:rgba(31,27,23,.6);padding:9px 12px;border-radius:999px}
.modal{position:fixed;inset:0;z-index:90;background:rgba(18,15,12,.92);display:none;padding:clamp(0px,3vw,40px)}
.modal.open{display:flex;flex-direction:column}
.modal__bar{display:flex;justify-content:space-between;align-items:center;color:#fff;padding:12px 16px;gap:16px}
.modal__bar b{font:300 24px/1 var(--serif)}
.modal__x{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:grid;place-items:center}
.modal iframe{flex:1;width:100%;border:0;border-radius:var(--r);background:#111}

/* KfW */
.kfw{display:grid;gap:48px;align-items:center}
@media(min-width:980px){.kfw{grid-template-columns:1fr 1fr;gap:90px}}
.kfw__card{background:var(--brown-2);border:1px solid rgba(189,166,129,.25);border-radius:var(--r);padding:clamp(24px,3.4vw,44px)}
.kfw__sel{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.kfw__sel button{border:1px solid rgba(255,255,255,.2);background:transparent;color:#efe8dc;border-radius:999px;padding:9px 15px;min-height:40px;font-size:13px;cursor:pointer}
.kfw__sel button[aria-pressed="true"]{background:var(--gold);color:#221d18;border-color:var(--gold)}
.kfw__big{font:300 clamp(64px,8vw,108px)/.9 var(--serif);color:#fff}
.kfw__big small{font-size:.4em;color:var(--gold);margin-left:6px}
.kfw__lbl{font-size:14px;color:#cfc5b7;margin:12px 0 26px}
.bar{height:12px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;position:relative}
.bar i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--gold-d),var(--gold));border-radius:999px;transition:width 1.4s var(--ease)}
.bar-l{display:flex;justify-content:space-between;font-size:12px;color:#b9afa2;margin-top:10px}
.kfw__rows{display:grid;grid-template-columns:1fr auto;gap:12px 20px;margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:15px}
.kfw__rows b{font:400 22px/1 var(--serif);color:#fff;text-align:right}
.kfw__pts{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}
.kfw__pts li{display:flex;gap:14px;align-items:flex-start;color:#e2d9cc;font-weight:300}
.kfw__pts svg{flex:none;width:22px;height:22px;color:var(--gold);margin-top:2px}
.fine{font-size:12px;line-height:1.55;color:#a99f92;margin-top:22px}

/* Rechner */
.calc{display:grid;gap:22px}
@media(min-width:980px){.calc{grid-template-columns:1.05fr .95fr;gap:32px}}
.ph-note{display:flex;gap:14px;align-items:flex-start;background:#fff6e2;border:1px dashed #d6b46c;color:#6d5525;border-radius:var(--r);padding:16px 18px;font-size:14px;margin-bottom:26px}
.ph-note b{display:block;font-weight:600}
.ph-note svg{flex:none;width:22px;height:22px}
.calc__in,.calc__out{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3vw,36px)}
.fld{margin-bottom:22px}
.fld label{display:flex;justify-content:space-between;gap:12px;font-size:13px;letter-spacing:.06em;color:var(--mute);margin-bottom:10px}
.fld label output{font:500 15px/1 var(--sans);color:var(--ink)}
.fld select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:0 14px;font:400 15px var(--sans)}
input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--gold-d) var(--p,50%),#e8e1d4 var(--p,50%));outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid var(--gold-d);box-shadow:0 2px 8px rgba(0,0,0,.15);cursor:pointer}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--gold-d);cursor:pointer}
.tg{display:flex;align-items:center;gap:12px;font-size:14px;cursor:pointer;user-select:none}
.tg input{width:42px;height:24px;appearance:none;-webkit-appearance:none;background:#ddd3c3;border-radius:999px;position:relative;cursor:pointer;transition:background .3s;flex:none}
.tg input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .3s}
.tg input:checked{background:var(--gold-d)}.tg input:checked::after{transform:translateX(18px)}
.calc__out{background:var(--brown);color:#f2ece2;border:0}
.res{display:grid;grid-template-columns:1fr auto;gap:12px 18px;font-size:15px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.res b{font:400 22px/1 var(--serif);color:#fff;white-space:nowrap}
.res--tot{border:0;padding-top:22px}
.res--tot b{font-size:44px;color:var(--gold)}
.res .neg{color:#e9b9a0}
.calc__kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.calc__kpi div{background:rgba(255,255,255,.06);border-radius:var(--r);padding:14px}
.calc__kpi b{display:block;font:400 26px/1 var(--serif);color:#fff}
.calc__kpi span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#bdb2a3}

/* Lage – Makro */
.macro{position:relative;background:#2a2622;color:#f1ebe1}
.macro .lead{color:#cfc5b7}
.macro__map{position:relative;margin-top:clamp(34px,4vw,56px);aspect-ratio:1600/955;border-radius:6px;overflow:hidden;background:#2a2622;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.macro__zoom{position:absolute;inset:0}
.macro-svg{width:100%;height:100%;display:block}
.macro-svg path,.mroutes path{vector-effect:non-scaling-stroke}
.mc-bg{fill:#2a2622}.mc-city{fill:#36302a;stroke:#463f38;stroke-width:1}.mc-pr{fill:none;stroke:#433d37;stroke-width:1.1}.mc-rail{fill:none;stroke:#544c43;stroke-width:1;stroke-dasharray:4 4}.mc-tr{fill:none;stroke:#57504a;stroke-width:1.8}.mc-mw{fill:none;stroke:#7d6a51;stroke-width:2.6}.mc-dot{fill:#6b6258}.mc-town{font:11px var(--sans);fill:#7e7468;letter-spacing:.04em}
.mroutes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.mroutes path{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:.75;transition:stroke-dashoffset 1.8s var(--ease2),opacity .4s}
.macro__map.in .mroutes path{stroke-dashoffset:0}
.macro__map.has-on .mroutes path{opacity:.18}
.macro__map.has-on .mroutes path.on{opacity:1;stroke-width:3.2}
.mk{position:absolute;width:0;height:0;z-index:2;transition:opacity .4s}
.mk i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:#e9e1d4;box-shadow:0 0 0 5px rgba(233,225,212,.14)}
.mk b{position:absolute;font:500 12.5px/1 var(--sans);letter-spacing:.04em;background:rgba(31,27,23,.88);color:#f1ebe1;padding:7px 11px;border-radius:999px;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.07)}
.mk b em{font-style:normal;color:var(--gold);margin-left:4px}
.mk--r b{left:14px;top:0;transform:translateY(-50%)}
.mk--l b{right:14px;top:0;transform:translateY(-50%)}
.mk--t b{left:0;bottom:14px;transform:translateX(-50%)}
.mk--b b{left:0;top:16px;transform:translateX(-50%)}
.mk--tl b{right:8px;bottom:12px}
.mk--l b{right:14px;left:auto}
.macro__pic{position:absolute;left:2.2%;bottom:4%;width:clamp(180px,19%,260px);margin:0;border-radius:4px;overflow:hidden;box-shadow:0 18px 40px -16px rgba(0,0,0,.7);z-index:3}
.macro__pic img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.macro__pic figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 10px;background:linear-gradient(0deg,rgba(20,17,14,.85),rgba(20,17,14,0));font:500 11px/1.3 var(--sans);letter-spacing:.08em;color:#f1ebe1}
.macro__pic figcaption b{color:var(--gold);font-weight:600}
@media(max-width:760px){.macro__pic{display:none}}
.mk--home i{left:-9px;top:-9px;width:18px;height:18px;background:var(--gold);box-shadow:0 0 0 7px rgba(189,166,129,.25);animation:pulse 2.2s var(--ease) infinite}
.mk--home b{background:var(--gold);color:#221d18;font-weight:600}
.macro__map.has-on .mk:not(.mk--home):not(.on){opacity:.35}
.mk.on i{background:var(--gold)}
.mtiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(20px,3vw,48px);margin-top:clamp(26px,3vw,40px)}
.mt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:20px;padding:20px 0;border-top:1px solid rgba(255,255,255,.12);transition:border-color .3s}
.mt:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.mt__n{flex:none;width:clamp(98px,8.4vw,124px);font:300 clamp(46px,4.4vw,64px)/.9 var(--serif);color:#fff;display:flex;align-items:baseline}
.mt__n small{font:500 12px/1 var(--sans);letter-spacing:.1em;color:var(--gold);margin-left:6px;text-transform:uppercase}
.mt__t b{display:block;font:400 clamp(19px,1.7vw,23px)/1.15 var(--serif);color:#f1ebe1;margin-bottom:5px}
.mt__t span{font-size:13px;color:#a69b8d}
.mt:hover,.mt.on{border-color:var(--gold)}
.mt.on .mt__n{color:var(--gold)}
.macro__src{font-size:11px;color:#8b8175;margin-top:18px}
@media(max-width:980px){.mtiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .macro__map{margin-left:calc(var(--gut)*-1);margin-right:calc(var(--gut)*-1);border-radius:0}
 .mk:not(.mk--main){display:none}
 .mk--home b{left:-6px;transform:none}
 .mk--muc b{left:auto;right:14px}
 .mk--home i{left:-7px;top:-7px;width:14px;height:14px}
 .mk b{font-size:11px;padding:5px 8px}
}
@media(max-width:560px){.mtiles{grid-template-columns:1fr}.mt{padding:16px 0}}

/* Lage – Mikro */
.micro{display:grid;gap:28px;align-items:start}
@media(min-width:1000px){.micro{grid-template-columns:.9fr 1.1fr;gap:56px}}
.micro__map{position:relative;border-radius:var(--r);overflow:hidden;background:#f1eee7;aspect-ratio:1600/1718;box-shadow:0 30px 70px -50px rgba(67,61,55,.6)}
.micro__map{max-width:560px;width:100%;justify-self:center}
@media(min-width:1000px){.micro__map{position:relative;top:auto}}
.micro-svg{width:100%;height:100%}
.m-bg{fill:#efebe3}.m-farm{fill:#ebe6db}.m-meadow{fill:#e2e5d4}.m-forest{fill:#cfd6c2}.m-res{fill:#e8e1d5}.m-green{fill:#dde3cf}.m-water{fill:#c3d4d4}.m-river{fill:none;stroke:#aac3c4;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.m-stream{fill:none;stroke:#bdd0d0;stroke-width:2.5}
.m-rail{fill:none;stroke:#a89c8b;stroke-width:3.5;stroke-dasharray:10 6}.m-r1{fill:none;stroke:#fff;stroke-width:12;stroke-linecap:round;stroke-linejoin:round}.m-r2{fill:none;stroke:#fff;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}.m-r3{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.m-r4{fill:none;stroke:#fbfaf7;stroke-width:2;stroke-dasharray:5 5}.m-bld{fill:#d8cfc1}
.m-route{fill:none;stroke:var(--gold-d);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset 1.4s var(--ease2),opacity .4s}
.m-route.on{stroke-dashoffset:0;opacity:1}
.m-lbl{font:600 34px var(--sans);letter-spacing:.32em;fill:var(--brown);opacity:.45}.m-lbl-w{font:italic 400 34px var(--serif);fill:#6f9293}
.mpin{position:absolute;transform:translate(-50%,-100%);z-index:2;border:0;background:none;padding:0;cursor:pointer;opacity:0;transition:opacity .5s,transform .5s var(--ease)}
.micro.in .mpin{opacity:1}
.mpin span{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#fff;box-shadow:0 6px 16px -6px rgba(0,0,0,.4);transition:background .3s}
.mpin svg{width:16px;height:16px;transform:rotate(45deg);color:var(--brown)}
.mpin.on span{background:var(--gold-d)}.mpin.on svg{color:#fff}
.mpin.on{transform:translate(-50%,-100%) scale(1.15);z-index:3}
.mhome{position:absolute;transform:translate(-50%,-50%);z-index:4;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.mhome i{width:22px;height:22px;border-radius:50%;background:var(--brown);border:4px solid #fff;box-shadow:0 0 0 0 rgba(67,61,55,.5);animation:pulse2 2s infinite}
@keyframes pulse2{0%{box-shadow:0 0 0 0 rgba(154,132,97,.6)}100%{box-shadow:0 0 0 26px rgba(154,132,97,0)}}
.mhome b{margin-top:8px;font:600 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;background:var(--brown);color:#fff;padding:7px 10px;border-radius:999px;white-space:nowrap}
.mtip{position:absolute;z-index:5;transform:translate(-50%,calc(-100% - 46px));background:var(--brown);color:#fff;padding:10px 14px;border-radius:var(--r);font-size:13px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .3s}
.mtip.on{opacity:1}.mtip b{display:block;font-weight:600}
.mgrp{margin-bottom:28px}
.mgrp h3{font:500 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-d);margin:0 0 10px}
.mlist{list-style:none;margin:0;padding:0}
.mlist button{width:100%;display:grid;grid-template-columns:40px 1fr auto;gap:14px;align-items:center;padding:14px 10px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;transition:background .3s,padding .3s;border-radius:2px}
.mlist button:hover,.mlist button.on{background:#fff;padding-left:16px}
.mlist .ic{width:40px;height:40px;border-radius:50%;background:var(--cream);display:grid;place-items:center;color:var(--gold-d);transition:background .3s,color .3s}
.mlist button.on .ic{background:var(--gold-d);color:#fff}
.mlist .ic svg{width:19px;height:19px}
.mlist b{display:block;font:500 15px/1.3 var(--sans)}
.mlist small{font-size:13px;color:var(--mute)}
.mlist .t{text-align:right;font:400 24px/1 var(--serif);white-space:nowrap}
.mlist .t small{display:block;font:500 10px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.osm{font-size:11px;color:var(--mute);margin-top:12px}
.lpics{display:grid;gap:18px;margin-top:clamp(56px,7vw,96px)}
@media(min-width:860px){.lpics{grid-template-columns:1.3fr 1fr}}
.lpics .ph{aspect-ratio:16/10}
.lpics .ph figcaption{bottom:auto;top:16px}
.wmk{position:absolute;right:12px;bottom:12px;font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(160,40,40,.75);padding:6px 8px;border-radius:3px}

/* Bauträger */
.trust{display:grid;gap:44px}
@media(min-width:980px){.trust{grid-template-columns:1fr 1.1fr;gap:90px;align-items:center}}
.trust__n{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:34px 0}
.trust__n b{display:block;font:300 clamp(44px,5vw,66px)/1 var(--serif);color:var(--brown)}
.trust__n div>span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media(min-width:620px){.ticks{grid-template-columns:1fr 1fr}}
.ticks li{background:var(--paper);padding:22px;display:flex;gap:14px;align-items:flex-start}
.ticks svg{flex:none;width:24px;height:24px;color:var(--gold-d)}
.ticks b{display:block;font-weight:500}
.ticks span{font-size:14px;color:var(--mute)}

/* FAQ */
.faq{max-width:900px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px 0;font:400 clamp(21px,2vw,26px)/1.3 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);position:relative;transition:transform .4s var(--ease),background .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--brown);transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .4s}
.faq details[open] summary i{background:var(--brown);border-color:var(--brown)}
.faq details[open] summary i::before,.faq details[open] summary i::after{background:#fff}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq .a{padding:0 60px 26px 0;color:#4c443d;font-weight:300}

/* Final */
.final{position:relative;min-height:92svh;display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}
.final__img{position:absolute;inset:-8% 0;}
.final__img img{width:100%;height:100%;object-fit:cover;transform:translateY(var(--py,0))}
.final::before{content:"";position:absolute;inset:0;background:rgba(36,31,27,.62);z-index:1}
.final__c{position:relative;z-index:2;padding:var(--sec) var(--gut);max-width:960px}
.final .draw{background:var(--gold);max-width:440px;margin:0 auto 40px}
.final .h2{color:#fff}
.final .lead{margin:22px auto 0;color:#e8e0d4}

/* Footer */
.ftr{background:#1f1b17;color:#9d9387;font-size:13px;padding:34px 0 calc(34px + env(safe-area-inset-bottom))}
.ftr .wrap{display:flex;flex-wrap:wrap;gap:14px 30px;justify-content:space-between;align-items:center}
.ftr nav{display:flex;gap:22px;flex-wrap:wrap}
.ftr a,.ftr button{color:#d8cfc2;text-decoration:none;background:none;border:0;padding:0;cursor:pointer;font:inherit}
.ftr a:hover,.ftr button:hover{color:#fff}

/* Sticky Mobile CTA */
.mcta{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;transform:translateY(140%);transition:transform .5s var(--ease)}
.mcta .btn{width:100%;min-height:54px;box-shadow:0 14px 34px -10px rgba(0,0,0,.45)}
.mcta.show{transform:none}
@media(min-width:821px){.mcta{display:none}}

/* Reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.js .rv-s{opacity:0;transform:scale(.96);transition:opacity .9s var(--ease),transform 1.2s var(--ease)}
.js .rv-s.in{opacity:1;transform:none}
.js .split .ln{display:block;overflow:hidden}
.js .split .ln>span{display:block;transform:translateY(105%);transition:transform 1s var(--ease);transition-delay:var(--d,0s)}
.js .split.in .ln>span{transform:none}

/* Cookie-Banner */
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:100;max-width:520px;margin-left:auto;background:#fff;color:var(--ink);border-radius:var(--r);box-shadow:0 30px 80px -20px rgba(0,0,0,.45);padding:24px;display:none}
.ck.is-open{display:block}
.ck h2{font:400 26px/1.1 var(--serif);margin:0 0 10px}
.ck p{font-size:14px;line-height:1.55;margin:0 0 18px;color:#4c443d}
.ck p a{color:var(--gold-d)}
.ck__b{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ck__b button,.ck__save{min-height:48px;border-radius:999px;border:0;font:500 13px/1 var(--sans);letter-spacing:.06em;cursor:pointer}
.ck__rej{background:var(--brown);color:#fff}.ck__acc{background:var(--brown);color:#fff}
.ck__set{margin-top:12px;background:none;border:0;padding:6px 0;color:var(--mute);text-decoration:underline;font-size:13px;cursor:pointer}
.ck__panel{display:none;margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.ck.is-set .ck__panel{display:block}
.ck__row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;font-size:13px;color:var(--mute)}
.ck__row b{display:block;color:var(--ink);font-size:14px}
.sw-t{position:relative;flex:none}
.sw-t input{width:44px;height:26px;appearance:none;-webkit-appearance:none;background:#ddd3c3;border-radius:999px;cursor:pointer;position:relative;transition:background .3s;margin:0}
.sw-t input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s}
.sw-t input:checked{background:var(--gold-d)}.sw-t input:checked::after{transform:translateX(18px)}
.sw-t input:disabled{opacity:.6}
.sw-t i{display:none}
.ck__save{width:100%;margin-top:10px;background:var(--gold);color:#221d18}

/* Funnel- und Rechtsseiten */
.legal{padding:140px 0 100px;background:var(--paper)}
.legal .wrap{max-width:860px}
.legal h1{font:300 clamp(40px,5vw,64px)/1 var(--serif);margin:0 0 40px}
.legal h2{font:400 26px/1.2 var(--serif);margin:40px 0 12px}
.legal p,.legal li{font-size:16px;color:#3f3832}
.legal a{color:var(--gold-d)}
.fun{min-height:100svh;display:flex;flex-direction:column;background:var(--cream)}
.fun__hdr{padding:22px var(--gut);display:flex;justify-content:center}
.fun__hdr .brand{color:var(--brown)}.fun__hdr .wm{height:22px}
.fun__main{flex:1;display:grid;gap:0;max-width:1200px;width:100%;margin:0 auto;padding:0 var(--gut) 40px}
@media(min-width:900px){.fun__main{grid-template-columns:1fr 1fr;align-items:stretch}}
.fun__vis{position:relative;border-radius:var(--r) var(--r) 0 0;overflow:hidden;min-height:220px}
.fun__vis img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.fun__vis span{position:absolute;left:18px;bottom:18px;color:#fff;font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;background:rgba(31,27,23,.5);padding:8px 12px;border-radius:999px}
@media(min-width:900px){.fun__vis{border-radius:var(--r) 0 0 var(--r)}}
.fun__card{background:#fff;padding:clamp(28px,4vw,56px);border-radius:0 0 var(--r) var(--r)}
@media(min-width:900px){.fun__card{border-radius:0 var(--r) var(--r) 0}}
.fun__card h1{font:300 clamp(40px,4.4vw,58px)/1.02 var(--serif);margin:16px 0 26px}
.fun__card h1 em{color:var(--gold-d)}
.progress{height:10px;border-radius:999px;background:#efe8dc;overflow:hidden}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-d),var(--gold));border-radius:999px;transition:width 1.8s var(--ease)}
.pct{font:400 28px/1 var(--serif);margin:12px 0 26px;color:var(--gold-d)}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.steps li{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border-radius:var(--r);background:var(--paper);color:var(--mute)}
.steps .n{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9e1d4;color:var(--brown);font-weight:600;font-size:14px}
.steps .n svg{width:18px;height:18px}
.steps li.ok .n{background:var(--magnus);color:#fff}
.steps li.ok{color:var(--ink)}
.steps li.now{background:#f6eedd;color:var(--ink);padding:22px 20px;box-shadow:inset 0 0 0 1.5px var(--gold)}
.steps li.now .n{background:var(--gold);color:#221d18}
.steps li.now b{display:block;font-size:18px;line-height:1.35;margin-bottom:6px}
.steps li.now span{font-size:14px;color:#5a5047}
.spam{font-size:14px;color:var(--mute);margin-top:20px}
.btns2{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.btns2 .btn{flex:1 1 200px}
.contact{font-size:13px;color:var(--mute);margin-top:18px}
.fun__ftr{display:flex;gap:12px;justify-content:center;padding:18px;font-size:13px;color:var(--mute)}
.fun__ftr a,.fun__ftr button{color:var(--mute);background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:none}
.tfpage{margin:0;height:100svh;overflow:hidden;background:var(--cream)}
.tf-wrap{position:fixed;inset:0 0 30px 0}
.tf-links{position:fixed;left:0;right:0;bottom:0;height:30px;display:flex;gap:16px;justify-content:center;align-items:center;font-size:11px;background:var(--cream)}
.tf-links a,.tf-links button{color:var(--mute);text-decoration:none;background:none;border:0;padding:0;font:inherit;cursor:pointer}
.unsub{min-height:100svh;display:grid;background:var(--cream)}
@media(min-width:900px){.unsub{grid-template-columns:1fr 1fr}}
.unsub__img{position:relative;min-height:200px;overflow:hidden}
.unsub__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:899px){.unsub__img{height:200px;-webkit-mask:linear-gradient(#000 60%,transparent);mask:linear-gradient(#000 60%,transparent)}}
.unsub__in{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px var(--gut)}
.unsub__in .draw{width:240px;background:var(--gold-d);margin-bottom:22px}
.unsub__in .wm{height:24px;fill:var(--brown);margin-bottom:14px}
.unsub__loc{font:500 12px/1 var(--sans);letter-spacing:.32em;color:var(--mute)}
.unsub__in hr{width:48px;border:0;border-top:1.5px solid var(--gold);margin:28px auto}
.unsub__in h1{font:300 clamp(40px,5vw,60px)/1.05 var(--serif);margin:0 0 20px}
.unsub__in p{max-width:44ch;color:#4c443d}
.unsub__in a{color:var(--gold-d)}
.unsub__ftr{margin-top:40px;font-size:13px;color:var(--mute)}
.unsub__ftr a{color:var(--mute)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv,.js .rv-s{opacity:1;transform:none}
  .js .draw.rv{clip-path:none}
  .js .split .ln>span{transform:none}
  .hero__img img{transform:none}
}

/* Mobil-Feinschliff */
.calc>*,.kfw>*,.micro>*,.trust>*,.intro>*,.houses>*,.types>*{min-width:0}
.fld select{max-width:100%;text-overflow:ellipsis}
.eq{min-width:0;overflow-wrap:anywhere;hyphens:auto}
.flt button,.kfw__sel button{min-height:44px}
.mpin span{width:38px;height:38px}
@media(max-width:620px){.btn{white-space:normal;text-align:center;line-height:1.25;padding:12px 22px}.equip{grid-template-columns:1fr 1fr}.eq{padding:20px 16px}.calc__kpi{grid-template-columns:1fr 1fr 1fr;gap:8px}.calc__kpi b{font-size:20px}.res--tot b{font-size:34px}}
.calc__kpi{grid-template-columns:repeat(3,minmax(0,1fr))}
.calc__kpi div{min-width:0}
@media(max-width:620px){.calc__kpi b{font-size:18px;white-space:nowrap}.calc__kpi div{padding:12px 10px}.calc__kpi span{font-size:10px;letter-spacing:.06em}}
.fld .tg{justify-content:flex-start;color:var(--ink);letter-spacing:0;font-size:14px;margin:0}
.final .h2 em{color:var(--gold-l)}
@media(max-width:620px){.final::before{background:rgba(36,31,27,.72)}}

/* ===== 2026-11-06: Hero animiert ===== */
.hero__img{container-type:size}
.hero__media{position:absolute;left:50%;top:60%;width:max(100cqw,141.46cqh);aspect-ratio:2600/1838;translate:-50% -60%;transform-origin:50% 60%;transform:scale(1.08);animation:kb 16s var(--ease) forwards}
.hero__media picture,.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__img .hero__media img{transform:none;animation:none}
.hero__birds{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.hero__birds path{fill:none;stroke:#2b2d31;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;opacity:.82}
.flock{animation:flock 70s linear infinite;transform-box:view-box}
@keyframes flock{0%{transform:translate(0,0);opacity:1}86%{opacity:1}100%{transform:translate(-760px,-210px);opacity:0}}
.bird{animation:bob 3.6s ease-in-out infinite alternate;animation-delay:calc(var(--bd) * -1)}
@keyframes bob{to{transform:translateY(var(--by))}}
.hero__glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(55% 48% at 84% 6%,rgba(255,243,219,.62),rgba(255,243,219,0) 72%);mix-blend-mode:screen;animation:glow 6.5s ease-in-out infinite alternate}
@keyframes glow{from{opacity:.25}to{opacity:.9}}
.hero__loc i{animation:pulse 2.4s var(--ease) infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(189,166,129,.75)}100%{box-shadow:0 0 0 12px rgba(189,166,129,0)}}
.hero__zg{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:26px}
.hero__zg a{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font:500 12.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.45);transition:border-color .3s,gap .3s}
.hero__zg a:hover{border-color:var(--gold);gap:14px}
.hero__zg svg{width:15px;height:15px}
@media (prefers-reduced-motion:reduce){.hero__media,.flock,.bird,.hero__glow,.hero__loc i{animation:none!important}.hero__media{transform:none}}

/* ===== Zielgruppen ===== */
.zg__g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,32px);align-items:stretch}
.zg__c{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;scroll-margin-top:84px}
.zg__c--inv{background:var(--brown);color:#efe8dc;border-color:var(--brown)}
.zg__img{position:relative;aspect-ratio:16/8.5;overflow:hidden;background:#d9d0c2}
.zg__img picture,.zg__img img{display:block;width:100%;height:100%;object-fit:cover}
.zg__img img{transition:transform 1.4s var(--ease)}
.zg__c:hover .zg__img img{transform:scale(1.04)}
.zg__k{position:absolute;left:clamp(18px,2.4vw,30px);top:clamp(18px,2.4vw,30px);background:rgba(251,249,245,.94);color:var(--brown);font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;padding:11px 16px;border-radius:999px}
.zg__c--inv .zg__k{background:var(--gold);color:#221d18}
.zg__b{padding:clamp(24px,3vw,46px);display:flex;flex-direction:column;gap:24px;flex:1}
.zg__b h3{font:300 clamp(32px,3.1vw,46px)/1.06 var(--serif);margin:0;color:var(--ink)}
.zg__b h3 em{font-style:italic;color:var(--gold-d)}
.zg__c--inv .zg__b h3{color:#fff}.zg__c--inv .zg__b h3 em{color:var(--gold)}
.zg__l{list-style:none;margin:0;padding:0;display:grid;gap:15px}
.zg__l li{display:grid;grid-template-columns:22px 1fr;gap:14px;font-size:15.5px;line-height:1.55;color:#5a5149;font-weight:300}
.zg__l li svg{width:22px;height:22px;color:var(--gold-d);margin-top:1px}
.zg__l b{font-weight:600;color:var(--ink)}
.zg__c--inv .zg__l li{color:#d8cfc2}.zg__c--inv .zg__l li svg{color:var(--gold)}.zg__c--inv .zg__l b{color:#fff}
.zg__cta{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;padding-top:4px}
.zg__lnk{font:500 12.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:inherit;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:6px;opacity:.85;transition:opacity .3s}
.zg__lnk:hover{opacity:1}
@media (max-width:900px){.zg__g{grid-template-columns:1fr}}
@media (max-width:620px){.zg__cta .btn{width:100%}.zg__l li{font-size:15px}}

/* ===== Mikrolage 3D ===== */
.m3d{display:none;position:relative;background:#ded5c4;color:var(--ink)}
html.webgl .m3d{display:block}
html.webgl .wege .micro__map{display:none!important}
html.webgl .wege .micro{grid-template-columns:1fr}
.m3d__track{height:290vh;position:relative}
.m3d__stick{position:sticky;top:0;height:100svh;overflow:hidden}
.m3d__cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.m3d__labels{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.ml{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;opacity:0;will-change:transform,opacity}
.ml__c{background:#fbf9f5;border-radius:999px;padding:8px 15px;box-shadow:0 12px 26px -12px rgba(43,38,33,.55);font:600 13px/1.15 var(--sans);color:var(--ink);white-space:nowrap;display:flex;gap:9px;align-items:baseline}
.ml__c span{font-weight:400;color:var(--mute);font-size:12.5px}
.ml s{display:block;width:1.5px;height:28px;background:rgba(67,61,55,.55)}
.ml i{display:block;width:11px;height:11px;border-radius:50%;background:var(--brown);border:2px solid #fff;margin-top:-1px;box-shadow:0 0 0 4px rgba(67,61,55,.16)}
.ml--home .ml__c,.ml--proj .ml__c{background:var(--brown);color:#fff;font-weight:500;letter-spacing:.02em}
.ml--home i{background:var(--gold);animation:pulse 2.2s var(--ease) infinite}
.ml--proj s{height:22px}
.ml--big .ml__c{font-size:15px;padding:11px 19px}
.ml--place .ml__c{background:none;box-shadow:none;padding:0;font:300 clamp(26px,3vw,40px)/1 var(--serif);letter-spacing:.08em;color:var(--brown);text-transform:uppercase}
.ml--place s,.ml--place i{display:none}
.m3d__veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(226,218,203,.94) 0,rgba(226,218,203,.6) 27%,rgba(226,218,203,0) 47%)}
.m3d__load{position:absolute;inset:0;z-index:1;display:grid;place-items:center;transition:opacity .8s;background:#ded5c4}
.m3d__load span{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--gold-d);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.m3d.ready .m3d__load{opacity:0;pointer-events:none}
.m3d__ui{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:center;pointer-events:none}
.m3d__steps{position:relative;width:min(410px,100%);min-height:340px}
.m3d__step{position:absolute;inset:0 auto auto 0;width:100%;opacity:0;transform:translateY(-14px);transition:opacity .3s,transform .3s}
.m3d__step.on{opacity:1;transform:none;pointer-events:auto;transition:opacity .6s var(--ease) .28s,transform .6s var(--ease) .28s}
.m3d__step .tag{display:inline-flex;align-items:center;gap:10px;font:600 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold-d);margin-bottom:16px}
.m3d__step .tag i{width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(189,166,129,.25)}
.m3d__step h3{font:300 clamp(36px,4vw,60px)/1.02 var(--serif);margin:0 0 16px;color:var(--ink)}
.m3d__step p{margin:0 0 18px;font-size:16.5px;line-height:1.62;color:#4c443d;font-weight:300;max-width:36ch}
.m3d__l{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:14px 22px;max-width:360px}
.m3d__l li{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--mute);border-top:1px solid rgba(67,61,55,.18);padding-top:10px}
.m3d__l b{font:400 28px/1.05 var(--serif);color:var(--ink)}
.m3d__prog{position:absolute;right:var(--gut);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:3}
.m3d__prog span{width:2px;height:34px;background:rgba(67,61,55,.18);position:relative;overflow:hidden}
.m3d__prog span::after{content:"";position:absolute;inset:0;background:var(--gold-d);transform:scaleY(0);transform-origin:top;transition:transform .5s}
.m3d__prog span.on::after{transform:scaleY(1)}
.m3d__src{position:absolute;right:var(--gut);bottom:14px;z-index:3;font-size:11px;color:var(--mute);max-width:60ch;text-align:right}
@media (max-width:760px){
 .m3d__track{height:260vh}
 .m3d__veil{background:linear-gradient(0deg,rgba(226,218,203,.97) 0,rgba(226,218,203,.82) 36%,rgba(226,218,203,0) 58%)}
 .m3d__ui{justify-content:flex-end;padding-bottom:104px}
 .m3d__steps{min-height:236px}
 .m3d__step h3{font-size:34px;margin-bottom:10px}.m3d__step p{font-size:15px;margin-bottom:12px}
 .m3d__l{gap:10px 16px}.m3d__l b{font-size:23px}
 .m3d__prog{display:none}.m3d__src{left:var(--gut);right:var(--gut);bottom:10px;text-align:left;font-size:10px}
 .ml__c{font-size:11.5px;padding:6px 11px}.ml__c span{font-size:11px}.ml s{height:18px}
}
html.webgl .wege .micro>div:not(.micro__map){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,4vw,64px);align-items:start}
html.webgl .wege .micro>div>.osm{grid-column:1/-1}
@media (max-width:860px){html.webgl .wege .micro>div:not(.micro__map){grid-template-columns:1fr}}

.m3d__s{font-size:12px!important;color:var(--mute)!important;margin:10px 0 0!important}
.m3d__step .m3d__l li{min-width:0}
@media (max-width:760px){
 .m3d__steps{min-height:1px}
 .m3d__step{inset:auto auto 0 0}
 .m3d__step .tag{margin-bottom:10px}
 .m3d__step h3{font-size:29px;margin-bottom:8px}
 .m3d__step p{font-size:14px;line-height:1.5;margin-bottom:10px}
 .m3d__l{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}
 .m3d__l li{font-size:11.5px;padding-top:7px}
 .m3d__l b{font-size:20px}
 .m3d__veil{background:linear-gradient(0deg,rgba(226,218,203,.98) 0,rgba(226,218,203,.88) 46%,rgba(226,218,203,0) 70%)}
}
@media (max-width:760px){.m3d__labels{z-index:1}.m3d__veil{z-index:2}}
/* ---------- Marketer 3D-Wohnungsfinder (2-Klick) ---------- */
.mf{margin-top:clamp(56px,7vw,96px)}
.mf__head{display:grid;gap:14px 48px;align-items:end;margin-bottom:24px}
@media(min-width:900px){.mf__head{grid-template-columns:1.1fr .9fr}}
.mf__k{font:600 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.mf__head h3{font:300 clamp(28px,3.2vw,42px)/1.08 var(--serif);margin:12px 0 0}
.mf__head p{margin:0;color:var(--mute);font-size:16px;line-height:1.6}
.mf__stage{position:relative;border-radius:var(--r);overflow:hidden;background:#e9e4da;height:clamp(560px,82vh,860px);box-shadow:0 40px 80px -60px rgba(67,61,55,.7);border:1px solid var(--line)}
.mf__stage iframe{display:block;width:100%!important;height:100%!important;border:0}
.mf__stage>div[id^="marketer-embed"]{height:100%}
.mf__gate{position:absolute;inset:0;display:grid;place-items:center;padding:20px}
.mf__bg{position:absolute;inset:0}
.mf__bg picture,.mf__bg img{width:100%;height:100%;object-fit:cover;display:block}
.mf__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,29,24,.25),rgba(34,29,24,.6))}
.mf__card{position:relative;max-width:520px;background:rgba(251,249,245,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:var(--r);padding:clamp(24px,3.4vw,38px);text-align:center;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.mf__card b{display:block;font:300 clamp(26px,2.6vw,34px)/1.1 var(--serif);color:var(--ink);margin:14px 0 12px}
.mf__card p{font-size:13.5px;line-height:1.6;color:var(--mute);margin:0 0 22px}
.mf__card p a{color:inherit;text-decoration:underline}
.mf__ic{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--brown);color:var(--gold)}
.mf__ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6}
.mf.is-on .mf__gate{display:none}
@media(max-width:640px){.mf__stage{height:min(92svh,760px)}.mf__card .btn{width:100%;justify-content:center}}
details.finder--list{margin-top:28px}
details.finder--list>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px clamp(18px,3vw,32px);font:300 24px/1.1 var(--serif);background:var(--paper)}
details.finder--list>summary::-webkit-details-marker{display:none}
details.finder--list>summary svg{width:22px;height:22px;transition:transform .3s var(--ease);flex:none}
details.finder--list[open]>summary svg{transform:rotate(180deg)}
details.finder--list[open]>summary{border-bottom:1px solid var(--line)}
/* ---------- Partner-Logos ---------- */
.partners{list-style:none;margin:clamp(48px,6vw,80px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.partners li{background:#fff;padding:26px 24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
.partners__k{font:600 10.5px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gold-d)}
.partners__l{height:96px;display:grid;place-items:center}
.partners__l img{width:auto;max-width:100%;display:block}
.partners__t{font-size:13px;color:var(--mute);line-height:1.5}
@media(max-width:760px){.partners{grid-template-columns:1fr}.partners__l{height:84px}}
/* ===== Design-Feinschliff (html.fs) ===== */
html.fs{--brown:#2a2622;--brown-2:#231f1b}
.fs .btn{border-radius:0;box-shadow:none!important;letter-spacing:.18em;font-size:12px;font-weight:600}
.fs .btn--gold{box-shadow:none}
.fs .btn svg{margin-right:-6px}
.fs .badge{border-radius:0}
.fs .kfw__sel button,.fs .flt button,.fs .mt,.fs .hero__zg a{border-radius:0!important}
.fs .eyebrow{letter-spacing:.3em;font-size:11px}
.fs .eyebrow::before{width:40px;background:var(--gold)}
.fs .eyebrow .fs-n{font:italic 400 28px/1 var(--serif);letter-spacing:0;text-transform:none;color:var(--gold);margin-right:2px;order:-1}
.eyebrow .fs-n{display:none}.fs .eyebrow .fs-n{display:inline}
.fs .h2{letter-spacing:-.012em}
.fs .type,.fs .zg__c,.fs .kfw__card,.fs .finder,.fs .mf__stage,.fs .calc>*,.fs .micro__map{box-shadow:none!important}
.fs .type,.fs .zg__c{border-radius:0}
.fs .type__gr,.fs .zg__c img{border-radius:0}
.fs .kfw__card{border-radius:0;border-color:rgba(189,166,129,.45)}
.fs .mf__stage,.fs .finder{border-radius:0}
.fs #innen img,.fs #haeuser img{border-radius:0}
.fs .sec{padding-top:calc(var(--sec) * 1.12);padding-bottom:calc(var(--sec) * 1.12)}
@media(min-width:821px){
 .fs body::after{content:"";position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
}
/* Hero: atmender Loop */
.hero__media{animation:kbIn 2.8s var(--ease) both,breathe 9s ease-in-out 2.8s infinite alternate}
@keyframes kbIn{from{transform:scale(1.1)}to{transform:scale(1.02)}}
@keyframes breathe{0%{transform:scale(1.02) translate(0,0)}50%{transform:scale(1.07) translate(-.6%,-.4%)}100%{transform:scale(1.1) translate(.5%,-.9%)}}
.hero__img::after{content:"";position:absolute;inset:-20%;pointer-events:none;background:linear-gradient(105deg,rgba(255,240,214,0) 35%,rgba(255,240,214,.16) 50%,rgba(255,240,214,0) 65%);transform:translateX(-60%);animation:sweep 9s ease-in-out 3s infinite;mix-blend-mode:screen}
@keyframes sweep{0%{transform:translateX(-60%)}55%,100%{transform:translateX(60%)}}
@media (prefers-reduced-motion:reduce){.hero__media{animation:none!important}.hero__img::after{display:none}}
/* ---------- Ensemble 2: Kapitel + Motion Graphics ---------- */
.ens2{position:relative;background:#1a1714;color:#fff}
.ens2__stage{position:relative;height:100svh;min-height:640px;max-height:1000px;overflow:hidden}
.ens2__cam{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;transition:transform 1.6s cubic-bezier(.65,0,.25,1)}
.ens2__kb{position:absolute;inset:0;animation:ensKb 14s ease-in-out infinite alternate;transform-origin:50% 50%}
@keyframes ensKb{from{transform:scale(1)}to{transform:scale(1.035)}}
.ens2__kb picture,.ens2__kb img{position:absolute;inset:0;width:100%;height:100%;display:block}
.ens2__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ens2__dim{fill:#120f0c;opacity:0;transition:opacity 1.2s var(--ease)}
.ens2.is-focus .ens2__dim{opacity:.55}
.ens2__mp{transition:none}
.ens2__h{fill:var(--c);fill-opacity:0;stroke:var(--c);stroke-width:4;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;transition:stroke-dashoffset 1.6s cubic-bezier(.65,0,.35,1),fill-opacity .9s,stroke-width .4s;cursor:pointer;pointer-events:all;filter:drop-shadow(0 0 10px rgba(0,0,0,.35))}
.ens2__h.on{stroke-dashoffset:0;fill-opacity:.14}
.ens2__h.on.pulse{animation:hPulse 2.6s ease-in-out 1.6s infinite}
@keyframes hPulse{0%,100%{fill-opacity:.12}50%{fill-opacity:.26}}
.ens2__h:hover{stroke-width:5}
.ens2__mitte{opacity:0;transition:opacity .8s}
.ens2.ch0 .ens2__mitte{opacity:1;transition-delay:1.2s}
.ens2__mitte circle{fill:none;stroke:#d6c6a6;stroke-width:3;vector-effect:non-scaling-stroke}
.ens2__mitte circle.c{fill:#bda681;stroke:#fff;stroke-width:3}
.ens2__mitte circle:first-child{stroke:none}
.ens2__mitte .r1,.ens2__mitte .r2,.ens2__mitte .r3{transform-box:fill-box;transform-origin:center;animation:ring 3.6s cubic-bezier(.2,.6,.3,1) infinite;opacity:0}
.ens2__mitte .r2{animation-delay:1.2s}.ens2__mitte .r3{animation-delay:2.4s}
@keyframes ring{0%{transform:scale(.4);opacity:.95}100%{transform:scale(5.5);opacity:0}}
.ens2__shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(18,15,12,.86) 0%,rgba(18,15,12,.55) 30%,rgba(18,15,12,0) 56%),linear-gradient(0deg,rgba(18,15,12,.7) 0%,rgba(18,15,12,0) 22%)}
/* Labels */
.ens2__labels{position:absolute;inset:0;pointer-events:none;z-index:2}
.ens2__lb{position:absolute;left:0;top:0;display:flex;align-items:center;gap:10px;white-space:nowrap;opacity:0;transform:translate(-50%,-100%) translateY(-16px);transition:left 1.6s cubic-bezier(.65,0,.25,1),top 1.6s cubic-bezier(.65,0,.25,1),opacity .6s}
.ens2__lb::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:16px;background:linear-gradient(#fff,rgba(255,255,255,0))}
.ens2__lb i{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(189,166,129,.7);animation:pulse 1.8s infinite}
.ens2__lb b{font:600 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.ens2__lb small{font:italic 400 16px/1 var(--serif);color:var(--gold-l)}
.ens2__lb{background:rgba(22,19,16,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:10px 14px;border:1px solid rgba(189,166,129,.35)}
.ens2__lb.on{opacity:1}
.ens2__lb--m{background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;transform:translate(-50%,-100%) translateY(-34px)}
.ens2__lb--m::after{display:none}
.ens2__lb--m b{font:italic 400 26px/1 var(--serif);letter-spacing:0;text-transform:none;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.6)}
/* Panel */
.ens2__ui{position:relative;z-index:3;height:100%;display:flex;align-items:center;pointer-events:none}
.ens2__panel{position:relative;width:min(470px,100%);min-height:360px;pointer-events:auto}
.ens2__ch{position:absolute;inset:0 auto auto 0;width:100%;visibility:hidden}
.ens2__ch.on{visibility:visible}
.ens2__ch .eyebrow{color:var(--gold)}
.ens2__ch h3{font:300 clamp(42px,5.2vw,76px)/.98 var(--serif);margin:18px 0 18px;letter-spacing:-.01em}
.ens2__ch h3 em{color:var(--gold-l)}
.ens2__ch h3 span{display:block;overflow:hidden}
.ens2__ch p{margin:0 0 22px;color:#e5ddd1;font-weight:300;font-size:17px;line-height:1.6}
.ens2__ch dl{display:flex;gap:30px;margin:0;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}
.ens2__ch dt{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:#bfb4a5}
.ens2__ch dd{margin:6px 0 0;font:300 30px/1 var(--serif);color:#fff}
/* Text-Reveal */
.ens2__ch>*{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .9s var(--ease)}
.ens2__ch.on>*{opacity:1;transform:none}
.ens2__ch.on>:nth-child(2){transition-delay:.12s}.ens2__ch.on>:nth-child(3){transition-delay:.24s}.ens2__ch.on>:nth-child(4){transition-delay:.36s}
.ens2__ch.out>*{opacity:0;transform:translateY(-14px);transition-duration:.35s;transition-delay:0s}
/* Tabs */
.ens2__nav{position:absolute;left:0;right:0;bottom:0;z-index:4;padding-bottom:clamp(18px,3.4vh,34px)}
.ens2__tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(8px,1.4vw,22px)}
.ens2__tabs button{background:none;border:0;color:#fff;text-align:left;padding:12px 0 0;cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:baseline;opacity:.55;transition:opacity .4s;font-family:var(--sans)}
.ens2__tabs button:hover,.ens2__tabs button[aria-selected="true"]{opacity:1}
.ens2__tabs em{font:italic 400 18px/1 var(--serif);color:var(--gold)}
.ens2__tabs span{font:600 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.ens2__tabs i{grid-column:1/-1;order:-1;height:2px;background:rgba(255,255,255,.22);position:relative;overflow:hidden;margin-bottom:12px}
.ens2__tabs i b{position:absolute;inset:0;background:var(--gold);transform:scaleX(var(--p,0));transform-origin:left}
.ens2__tabs button.done i b{--p:1}
.ens2__tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
@media(max-width:820px){
 .ens2__stage{min-height:600px;max-height:none}
 .ens2__shade{background:linear-gradient(0deg,rgba(18,15,12,.95) 0%,rgba(18,15,12,.82) 34%,rgba(18,15,12,0) 62%)}
 .ens2__ui{align-items:flex-end;padding-bottom:96px}
 .ens2__panel{min-height:0;height:330px}
 .ens2__ch h3{font-size:40px;margin:12px 0 12px}
 .ens2__ch p{font-size:15px;margin-bottom:14px}
 .ens2__ch dl{gap:20px;padding-top:12px}.ens2__ch dd{font-size:24px}
 .ens2__tabs{gap:6px}.ens2__tabs span{display:none}.ens2__tabs em{font-size:16px}
 .ens2__lb{padding:8px 10px}.ens2__lb small{display:none}.ens2__lb b{font-size:9.5px}
 .ens2__lb--m b{font-size:20px}
}
@media (prefers-reduced-motion:reduce){.ens2__kb,.ens2__mitte circle,.ens2__h.on.pulse{animation:none!important}.ens2__cam,.ens2__lb{transition:none}}
.no-js .ens2__ch{position:relative;visibility:visible}.no-js .ens2__ch>*{opacity:1;transform:none}
@media(min-width:821px){
 .ens2__panel{transition:transform 1.2s cubic-bezier(.65,0,.25,1)}
 .ens2__ui>.ens2__panel{margin-left:0}
 .ens2.is-r .ens2__panel{transform:translateX(calc(min(1320px,100vw) - 2*var(--gut) - 100%))}
 .ens2__shade{transition:opacity 1s}
 .ens2__shade::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(18,15,12,.86) 0%,rgba(18,15,12,.55) 30%,rgba(18,15,12,0) 56%);opacity:0;transition:opacity 1s}
 .ens2.is-r .ens2__shade{background:linear-gradient(0deg,rgba(18,15,12,.7) 0%,rgba(18,15,12,0) 22%)}
 .ens2.is-r .ens2__shade::after{opacity:1}
}
.ens2__stage{overflow:clip}
.ens2__lb.hid{opacity:0!important}
@media(max-width:820px){.ens2__nav{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.ens2__ui{padding-bottom:150px}.ens2__stage{min-height:680px}}
/* KI-Animationen */
.vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s var(--ease);pointer-events:none}
.vid.on{opacity:1}
.ph--par .vid,.final__img .vid{transform:translateY(var(--py,0))}
.final__img .vid{z-index:0}
/* ---------- Navigation ---------- */
.nav{display:flex;align-items:center;gap:clamp(14px,1.5vw,24px);margin:0 clamp(18px,2vw,32px) 0 auto}
.nav a{position:relative;color:#fff;text-decoration:none;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:8px 0;opacity:.88;transition:opacity .3s,color .3s;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav a:hover,.nav a.on{opacity:1}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1)}
.hdr.is-solid .nav a{color:var(--ink)}
.hdr__r{display:flex;align-items:center;gap:14px}
.burger{display:none;width:44px;height:44px;border:1px solid rgba(255,255,255,.5);background:transparent;cursor:pointer;position:relative;color:#fff}
.burger span{position:absolute;left:12px;right:12px;height:1.5px;background:currentColor;transition:transform .35s var(--ease),top .35s var(--ease)}
.burger span:first-child{top:17px}.burger span:last-child{top:25px}
.hdr.is-solid .burger{color:var(--ink);border-color:rgba(43,38,33,.25)}
.mnav-open .burger span:first-child{top:21px;transform:rotate(45deg)}
.mnav-open .burger span:last-child{top:21px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:49;background:#1d1a16;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:34px;padding:96px var(--gut) calc(40px + env(safe-area-inset-bottom));opacity:0;transition:opacity .4s var(--ease);overflow-y:auto}
.mnav[hidden]{display:none}
.mnav.show{opacity:1}
.mnav nav{display:flex;flex-direction:column}
.mnav nav a{display:flex;align-items:baseline;gap:16px;color:#fff;text-decoration:none;font:300 clamp(30px,8vw,44px)/1.15 var(--serif);padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .6s var(--ease)}
.mnav nav a em{font:italic 400 16px/1 var(--serif);color:var(--gold);min-width:26px}
.mnav.show nav a{opacity:1;transform:none}
.mnav.show nav a:nth-child(2){transition-delay:.04s}.mnav.show nav a:nth-child(3){transition-delay:.08s}.mnav.show nav a:nth-child(4){transition-delay:.12s}.mnav.show nav a:nth-child(5){transition-delay:.16s}.mnav.show nav a:nth-child(6){transition-delay:.2s}.mnav.show nav a:nth-child(7){transition-delay:.24s}.mnav.show nav a:nth-child(8){transition-delay:.28s}
.mnav .btn{align-self:flex-start}
.mnav-open .hdr{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;transform:none!important}
.mnav-open .hdr .brand,.mnav-open .hdr .burger{color:#fff!important;border-color:rgba(255,255,255,.5)!important}
.mnav-open .hdr .hdr__r .btn{visibility:hidden}
.mnav-open{overflow:hidden}
@media(max-width:1200px){.nav{display:none}.burger{display:block}}
@media(max-width:620px){.hdr .btn{display:none}.burger{width:42px;height:42px}.burger span:first-child{top:16px}.burger span:last-child{top:24px}.mnav-open .burger span{top:20px!important}}
/* Rechner IKZ-Modell (10.11.) */
.calc__h{font:600 11px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 6px}
.res span small{font-size:12px;color:#bdb2a3}
.res--tot span small{display:inline-block;margin-top:4px}
.cbar{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;height:96px;margin-top:18px;padding:0 0 18px;position:relative;border-bottom:1px solid rgba(255,255,255,.12)}
.cbar i{position:relative;display:block;height:100%}
.cbar i s{position:absolute;left:0;right:0;bottom:50%;border-radius:2px 2px 0 0;background:var(--gold);transition:height .5s cubic-bezier(.2,.7,.2,1)}
.cbar i.n s{bottom:auto;top:50%;border-radius:0 0 2px 2px;background:#c9876a}
.cbar i s{max-height:50%}
.cbar i em{position:absolute;left:0;right:0;bottom:-18px;text-align:center;font:400 10px/1 var(--sans);font-style:normal;color:#9d9385}
.cbar::before{content:"";position:absolute;left:0;right:0;top:calc(50% - 9px);height:1px;background:rgba(255,255,255,.18)}
.calc__kpi--4{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.calc__kpi--4 b{font-size:24px}
.zg__fn{font-size:11.5px;line-height:1.5;color:var(--mute);margin:-4px 0 22px}
@media(max-width:620px){.calc__kpi--4 b{font-size:19px}}
.cbar__l{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;font-size:12px;color:#bdb2a3;margin:22px 0 0}
.cbar__l span{display:inline-flex;align-items:center;gap:6px}
.cbar__l i{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--gold)}
.cbar__l i.n{background:#c9876a;margin-left:8px}
.cbar{margin-top:10px}
/* Hero-Lesbarkeit mobil (10.11.) */
.hero__loc,.hero__price,.hero__zg a{text-shadow:0 1px 14px rgba(20,17,14,.35)}
@media(max-width:900px){
 .hero::after{background:linear-gradient(180deg,rgba(30,26,22,.42) 0%,rgba(30,26,22,0) 18%,rgba(30,26,22,.22) 28%,rgba(30,26,22,.6) 42%,rgba(30,26,22,.8) 60%,rgba(30,26,22,.86) 100%)}
 .hero__loc,.hero__price,.hero__zg a{text-shadow:0 1px 10px rgba(0,0,0,.5)}
 .hero__wm{filter:drop-shadow(0 2px 16px rgba(0,0,0,.45))}
 .hero__glow{opacity:.5}
}
