/* Quettinger Straße · HKM Bauprojektentwicklung · Projektseite (Stand 03.11.2026) */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/montserrat-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/montserrat-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/montserrat-latin-700-normal.woff2) format("woff2")}

:root{
  --lime:#84ab2a;--lime-hi:#97bf35;--lime-d:#5f7f19;--olive:#3d5419;
  --deep:#1b2414;--deep-2:#222d19;--deep-3:#2c3a20;
  --paper:#f4f5ef;--stone:#e8ebdf;--line:rgba(27,36,20,.12);--line-l:rgba(255,255,255,.14);
  --ink:#192012;--muted:#5a6350;--white:#fff;
  --r:6px;--wrap:1280px;--gut:clamp(18px,4.2vw,56px);
  --sec:clamp(80px,11vw,152px);
  --ease:cubic-bezier(.22,.7,.18,1);--ease-io:cubic-bezier(.65,0,.35,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 "Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:300;background:var(--deep);color:#fff;padding:12px 18px;border-radius:var(--r);transition:top .2s}
.skip:focus{top:12px}
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
.sec{padding:var(--sec) 0;position:relative}
.sec--white{background:#fff}
.sec--stone{background:var(--stone)}
.sec--deep{background:var(--deep);color:#fff}

/* Typografie */
.eyebrow{display:flex;align-items:center;gap:14px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--lime-d)}
.eyebrow i{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink);opacity:.45;letter-spacing:.1em}
.eyebrow::after{content:"";flex:0 0 42px;height:1px;background:currentColor}
.sec--deep .eyebrow{color:var(--lime-hi)}
.sec--deep .eyebrow i{color:#fff}
.h2{font-weight:300;font-size:clamp(32px,5vw,68px);line-height:1.04;letter-spacing:-.01em;text-transform:uppercase;margin-top:20px}
.h2 b{font-weight:600}
.h3{font-weight:600;font-size:clamp(20px,2vw,26px);line-height:1.25}
.lead{font-size:clamp(17px,1.45vw,20px);line-height:1.7;color:var(--muted);max-width:60ch}
.sec--deep .lead{color:rgba(255,255,255,.74)}
.head{display:grid;gap:26px;margin-bottom:clamp(40px,6vw,80px)}
@media (min-width:980px){.head--split{grid-template-columns:1.1fr .9fr;align-items:end}.head--split .lead{justify-self:end}}
.note{font-size:12.5px;line-height:1.6;color:var(--muted)}
.sec--deep .note{color:rgba(255,255,255,.55)}
.tag{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.04em;background:rgba(132,171,42,.14);color:var(--lime-d)}
.sec--deep .tag{background:rgba(151,191,53,.16);color:var(--lime-hi)}

/* Buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:56px;padding:0 28px;border-radius:var(--r);font-weight:600;font-size:15px;letter-spacing:.02em;text-decoration:none;white-space:nowrap;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .25s}
.btn svg{width:18px;height:18px;flex:none;transition:transform .35s var(--ease)}
.btn--p{background:var(--lime);color:var(--deep);box-shadow:0 12px 30px -14px rgba(95,127,25,.9)}
.btn--p::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lime-hi);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.btn--p:hover::before{transform:scaleX(1)}
.btn:hover svg{transform:translateX(4px)}
.btn--p:active{transform:translateY(1px)}
.btn--g{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn--g:hover{background:rgba(255,255,255,.08)}
.btn--d{background:var(--deep);color:#fff}
.btn--d:hover{background:var(--deep-3)}
.btn--rej{background:#fff;color:var(--deep);box-shadow:inset 0 0 0 1.5px var(--deep)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:clamp(36px,5vw,56px)}
.cta-row .note{max-width:36ch}
.link{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:14px;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}

/* Header */
.hd{position:fixed;inset:0 0 auto;z-index:100;transition:background-color .35s,box-shadow .35s,transform .45s var(--ease)}
.hd__in{display:flex;align-items:center;justify-content:space-between;gap:20px;height:78px}
.hd__brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:#fff}
.hd__q{width:46px;height:46px;flex:none}
.hd__name{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;line-height:1.35}
.hd__name span{display:block;font-weight:400;opacity:.7;letter-spacing:.16em}
.hd__nav{display:none;gap:30px;font-size:13px;font-weight:500;letter-spacing:.06em;color:#fff}
.hd__nav a{text-decoration:none;opacity:.82;position:relative;padding:6px 0}
.hd__nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.hd__nav a:hover{opacity:1}.hd__nav a:hover::after{transform:scaleX(1)}
.hd .btn{min-height:46px;padding:0 20px;font-size:14px}
.hd.is-solid{background:rgba(244,245,239,.94);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--line)}
.hd.is-solid .hd__brand,.hd.is-solid .hd__nav{color:var(--ink)}
.hd.is-dark{background:rgba(27,36,20,.88)}
.hd.is-dark .hd__brand,.hd.is-dark .hd__nav{color:#fff}
@media (min-width:1080px){.hd__nav{display:flex}}
.hd__act{display:flex;align-items:center;gap:10px}
.hd__cta-s{display:none}
.hd__burger{display:none;position:relative;width:46px;height:46px;border-radius:var(--r);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45);transition:box-shadow .3s,color .3s,background .3s}
.hd__burger i{position:absolute;left:13px;right:13px;height:1.6px;background:currentColor;border-radius:2px;transition:transform .45s var(--ease),top .45s var(--ease)}
.hd__burger i:first-child{top:18px}.hd__burger i:last-child{top:26px}
.hd.is-solid .hd__burger{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.hd.is-dark .hd__burger{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3)}
.menu-open .hd__burger{color:#fff!important;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3)!important}
.menu-open .hd__burger i:first-child{top:22px;transform:rotate(45deg)}
.menu-open .hd__burger i:last-child{top:22px;transform:rotate(-45deg)}
.menu-open .hd{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;transform:none!important}
.menu-open .hd .hd__brand{color:#fff!important}
.menu-open .hd__cta{opacity:0;pointer-events:none}
/* Mobile Navigation */
.mnav{position:fixed;inset:0;z-index:95;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:100px 0 calc(28px + env(safe-area-inset-bottom));background:var(--deep);color:#fff;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease-io),visibility 0s .7s}
.mnav::before{content:"";position:absolute;right:-30%;top:12%;width:90vw;aspect-ratio:1;border-radius:50%;border:1px solid rgba(151,191,53,.16);pointer-events:none}
.menu-open .mnav{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .7s var(--ease-io)}
.mnav__in{display:flex;flex-direction:column}
.mnav__in a{display:flex;align-items:baseline;gap:16px;padding:11px 0;border-bottom:1px solid var(--line-l);font-size:clamp(26px,8vw,38px);font-weight:300;letter-spacing:-.01em;text-transform:uppercase;text-decoration:none;opacity:0;transform:translateY(18px);transition:opacity .5s,transform .6s var(--ease)}
.mnav__in a i{font-style:normal;font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--lime-hi);min-width:22px}
.menu-open .mnav__in a{opacity:1;transform:none}
.menu-open .mnav__in a:nth-child(1){transition-delay:.18s}.menu-open .mnav__in a:nth-child(2){transition-delay:.23s}.menu-open .mnav__in a:nth-child(3){transition-delay:.28s}.menu-open .mnav__in a:nth-child(4){transition-delay:.33s}.menu-open .mnav__in a:nth-child(5){transition-delay:.38s}.menu-open .mnav__in a:nth-child(6){transition-delay:.43s}.menu-open .mnav__in a:nth-child(7){transition-delay:.48s}
.mnav__foot{display:grid;gap:14px}
.mnav__foot .btn{width:100%}
.mnav__foot p{font-size:12px;line-height:1.5;color:rgba(255,255,255,.55);text-align:center}
.menu-open{overflow:hidden}
.menu-open .sticky{transform:translateY(140%)!important}
@media (min-width:1080px){.mnav{display:none}}
@media (max-width:1079px){
  .hd__burger{display:block}
  .hd{transition:background-color .35s,box-shadow .35s,transform .45s var(--ease)}
  .hd.is-up{transform:translateY(-100%)}
  .hd.is-solid,.hd.is-dark{box-shadow:0 8px 24px -18px rgba(0,0,0,.5)}
}
@media (max-width:620px){
  .hd__in{height:64px;gap:10px}
  .hd__q{width:38px;height:38px}
  .hd__brand{gap:10px}
  .hd__name{font-size:11px;letter-spacing:.14em;line-height:1.3}
  .hd__name span{font-size:10px;letter-spacing:.12em}
  .hd__cta{min-height:44px!important;padding:0 14px!important;font-size:13px!important;gap:8px}
  .hd__cta svg{width:15px;height:15px}
  .hd__cta{display:none!important}
  .hd__brand{min-width:0}
  .hd__burger{width:44px;height:44px}
  .hd__burger i:first-child{top:17px}.hd__burger i:last-child{top:25px}
  .menu-open .hd__burger i:first-child,.menu-open .hd__burger i:last-child{top:21px}
  .hd:not(.is-solid):not(.is-dark){background:linear-gradient(180deg,rgba(18,25,12,.55),rgba(18,25,12,0))}
}
@media (max-width:360px){.hd__name span{display:none}}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--deep)}
.hero__media{position:absolute;inset:0;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:58% 40%;transform-origin:60% 45%}
.js .hero__media img{animation:heroIn 2.6s var(--ease) both}
@keyframes heroIn{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,25,12,.55) 0%,rgba(18,25,12,0) 26%,rgba(18,25,12,0) 42%,rgba(18,25,12,.82) 100%),linear-gradient(90deg,rgba(18,25,12,.55),rgba(18,25,12,0) 60%)}
.hero__in{position:relative;width:100%;padding-top:120px;padding-bottom:clamp(36px,6vw,72px)}
.hero__eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--lime-hi)}
.hero__eyebrow::before{content:"";width:36px;height:1px;background:currentColor}
.hero h1{margin-top:22px;font-weight:300;font-size:clamp(40px,7.6vw,112px);line-height:.98;letter-spacing:-.02em;text-transform:uppercase;max-width:13ch}
.hero h1 b{font-weight:600;color:var(--lime-hi)}
.hero__sub{margin-top:24px;font-size:clamp(17px,1.6vw,21px);line-height:1.55;max-width:46ch;color:rgba(255,255,255,.86)}
.hero__row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:34px}
.hero__facts{display:flex;flex-wrap:wrap;gap:0;margin-top:clamp(40px,6vw,72px);border-top:1px solid rgba(255,255,255,.22)}
.hero__facts li{flex:1 1 170px;padding:18px 24px 0 0;font-size:13px;line-height:1.45;color:rgba(255,255,255,.72)}
.hero__facts strong{display:block;font-size:clamp(18px,1.6vw,22px);font-weight:600;color:#fff;letter-spacing:.01em}
.scrollcue{position:absolute;right:calc(var(--gut) - 6px);top:50%;transform:translateY(-50%);display:none;flex-direction:column;align-items:center;gap:12px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.75);text-decoration:none;writing-mode:vertical-rl;transition:opacity .4s}
.scrollcue svg{width:16px;height:16px;writing-mode:horizontal-tb;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.scrollcue.is-hidden{opacity:0;pointer-events:none}
@media (min-width:900px){.scrollcue{display:flex}}

/* Reveal (Startzustand nur mit JS) */
.js [data-r]{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.js [data-r].in{opacity:1;transform:none}
.js [data-r="mask"]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease)}
.js [data-r="mask"].in{clip-path:inset(0 0 0 0)}
.js [data-r="line"]{opacity:1;transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease)}
.js [data-r="line"].in{transform:scaleX(1)}

/* Kennzahlen */
.facts{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}
.fact{padding:30px 18px 6px 0;border-bottom:1px solid var(--line)}
.fact b{display:flex;align-items:baseline;gap:6px;font-weight:300;font-size:clamp(46px,6.4vw,92px);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.fact b small{font-size:.36em;font-weight:500;letter-spacing:0}
.fact>span{display:block;margin:12px 0 24px;font-size:14px;line-height:1.5;color:var(--muted);max-width:24ch}
@media (min-width:900px){.facts{grid-template-columns:repeat(4,1fr)}.fact{border-bottom:0;padding-right:28px}.fact+.fact{border-left:1px solid var(--line);padding-left:28px}}

/* Drei Wege */
.ways{display:grid;gap:14px}
.way{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;border-radius:var(--r);overflow:hidden;color:#fff;text-decoration:none;isolation:isolate;background:var(--deep)}
.way img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.way::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,25,12,.45) 0%,rgba(18,25,12,0) 22%,rgba(18,25,12,.15) 45%,rgba(18,25,12,.92) 100%);transition:background .5s}
.way__in{padding:28px}
.way__n{position:absolute;top:22px;left:24px;font-size:11px;font-weight:600;letter-spacing:.2em;color:#fff;background:rgba(27,36,20,.72);padding:7px 11px;border-radius:3px;backdrop-filter:blur(6px)}
.way h3{font-weight:300;font-size:clamp(28px,2.8vw,40px);line-height:1.05;text-transform:uppercase}
.way h3 b{font-weight:600}
.way p{margin-top:12px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.82);max-width:34ch}
.way ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.way li{font-size:12px;font-weight:600;padding:7px 11px;border-radius:99px;background:rgba(255,255,255,.12);backdrop-filter:blur(6px)}
.way__go{display:inline-flex;align-items:center;gap:10px;margin-top:22px;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--lime-hi)}
.way__go svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.way:hover img{transform:scale(1.05)}
.way:hover .way__go svg{transform:translateX(5px)}
@media (min-width:980px){
  .ways{display:flex;height:580px;gap:14px}
  .way{flex:1 1 0;min-height:0;transition:flex-grow .8s var(--ease)}
  .way p,.way ul{opacity:.0;transform:translateY(10px);transition:opacity .45s .1s,transform .6s var(--ease)}
  .ways:not(:hover) .way.is-def,.way:hover,.way:focus-visible{flex-grow:1.9}
  .ways:not(:hover) .way.is-def p,.ways:not(:hover) .way.is-def ul,.way:hover p,.way:hover ul,.way:focus-visible p,.way:focus-visible ul{opacity:1;transform:none}
}

/* Neubau Story (sticky Bildwechsel) */
.story{display:grid;gap:40px}
.story__media{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--stone)}
.story__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.js .story__media img{opacity:0;transform:scale(1.06);transition:opacity 1s var(--ease),transform 1.6s var(--ease)}
.js .story__media img.on{opacity:1;transform:none}
.story__media figcaption{position:absolute;left:16px;bottom:14px;font-size:11px;letter-spacing:.08em;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.story__count{position:absolute;right:16px;top:14px;display:flex;gap:6px}
.story__count i{width:22px;height:2px;background:rgba(255,255,255,.45);transition:background .4s}
.story__count i.on{background:#fff}
.chapter{padding:6px 0 34px;border-top:1px solid var(--line)}
.chapter h3{margin-top:22px}
.chapter p{margin-top:14px;color:var(--muted);max-width:48ch}
.chapter__n{display:block;margin-top:20px;font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--lime-d)}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;margin-top:24px}
.feat li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.45}
.feat svg{width:22px;height:22px;flex:none;color:var(--lime-d);margin-top:1px}
@media (min-width:980px){
  .story{grid-template-columns:1.05fr .95fr;gap:72px;align-items:start}
  .story__media{position:sticky;top:110px;aspect-ratio:auto;height:calc(100vh - 150px);max-height:760px}
  .chapter{min-height:62vh;padding-bottom:12vh}
  .chapter:last-child{min-height:0;padding-bottom:0}
}

/* Förderung */
.foerder{position:relative;margin-top:clamp(56px,7vw,96px);display:grid;gap:28px;padding:clamp(28px,4vw,56px);border-radius:var(--r);background:var(--deep);color:#fff;overflow:hidden}
.foerder::after{content:"";position:absolute;right:-6%;top:-40%;width:52%;aspect-ratio:1;border:1px solid rgba(151,191,53,.25);border-radius:50%}
.foerder::before{content:"";position:absolute;right:4%;top:-10%;width:30%;aspect-ratio:1;border:1px solid rgba(151,191,53,.18);border-radius:50%}
.foerder__badge{display:flex;align-items:center;justify-content:center;width:132px;height:132px;border-radius:50%;border:1.5px solid var(--lime-hi);flex-direction:column;line-height:1;color:var(--lime-hi)}
.foerder__badge b{font-size:44px;font-weight:300;letter-spacing:-.02em}
.foerder__badge small{font-size:11px;font-weight:600;letter-spacing:.2em;margin-top:6px}
.foerder h3{font-weight:300;font-size:clamp(26px,3vw,40px);line-height:1.1;text-transform:uppercase}
.foerder h3 b{font-weight:600}
.foerder p{margin-top:14px;color:rgba(255,255,255,.75);max-width:56ch}
.foerder .btn{justify-self:start;position:relative;z-index:1}
@media (min-width:980px){.foerder{grid-template-columns:auto 1fr auto;align-items:center;gap:48px}}

/* Wohnungstypen */
.types__tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gut)*-1);padding:0 var(--gut) 4px}
.types__tabs::-webkit-scrollbar{display:none}
.types__tab{flex:none;height:48px;padding:0 20px;border-radius:99px;font-size:14px;font-weight:600;box-shadow:inset 0 0 0 1.5px var(--line);transition:background .3s,color .3s,box-shadow .3s}
.types__tab[aria-selected="true"]{background:var(--deep);color:#fff;box-shadow:none}
.types__panel{display:grid;gap:32px;margin-top:28px;padding:clamp(20px,3.4vw,48px);background:#fff;border-radius:var(--r)}
.types__panel[hidden]{display:none}
html:not(.js) .types__tabs{display:none}
.types__plan{position:relative;display:flex;align-items:center;justify-content:center;min-height:260px;background:var(--paper);border-radius:4px;padding:clamp(14px,3vw,36px)}
.types__plan img{max-height:460px;width:auto;object-fit:contain}
.js .types__panel[data-anim] .types__plan img{animation:planIn .9s var(--ease) both}
.js .types__panel[data-anim] .types__info>*{animation:fadeUp .7s var(--ease) both}
.js .types__panel[data-anim] .types__info>*:nth-child(2){animation-delay:.06s}
.js .types__panel[data-anim] .types__info>*:nth-child(3){animation-delay:.12s}
.js .types__panel[data-anim] .types__info>*:nth-child(4){animation-delay:.18s}
@keyframes planIn{from{opacity:0;transform:scale(.96) rotate(-1deg)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.types__info h3{font-weight:300;font-size:clamp(30px,3.4vw,46px);line-height:1.05;text-transform:uppercase}
.types__info h3 b{font-weight:600}
.types__meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:8px 26px;margin-top:22px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.types__meta dt{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.types__meta dd{font-size:clamp(16px,1.5vw,19px);font-weight:600;margin-top:4px;white-space:nowrap}
.types__list{margin-top:20px;display:grid;gap:10px}
.types__list li{display:flex;gap:12px;font-size:15px}
.types__list li::before{content:"";flex:none;width:6px;height:6px;margin-top:9px;background:var(--lime);transform:rotate(45deg)}
.types__info .cta-row{margin-top:28px}
.types__units{margin-top:16px;font-size:13px;color:var(--muted)}
@media (min-width:980px){.types__panel{grid-template-columns:1.25fr .75fr;align-items:center;gap:56px}}

/* Townhouse 3D-Stapel */
.th{background:var(--deep);color:#fff}
.th__track{position:relative}
.th__stage{display:grid;gap:40px}
.th__stack{position:relative;height:420px;perspective:1600px}
.th__floors{position:absolute;inset:0;transform-style:preserve-3d}
.th__floor{position:absolute;left:50%;top:50%;width:min(560px,86%);transform-style:preserve-3d;transition:filter .5s,opacity .5s}
.th__floor img{width:100%;height:auto;border-radius:3px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.th__floor::after{content:attr(data-label);position:absolute;left:-14px;top:50%;transform:translate(-100%,-50%);font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--lime-hi);white-space:nowrap}
.th__levels{display:grid;gap:8px}
.th__lv{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--r);background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line-l);transition:background .4s,box-shadow .4s}
.th__lv b{font-size:13px;font-weight:600;letter-spacing:.18em;color:var(--lime-hi)}
.th__lv span{font-size:15px;color:rgba(255,255,255,.8)}
.th__lv em{font-style:normal;font-size:20px;font-weight:300}
.th__lv.on{background:rgba(151,191,53,.12);box-shadow:inset 0 0 0 1px rgba(151,191,53,.6)}
.th__sum{display:flex;flex-wrap:wrap;gap:28px;margin-top:28px}
.th__sum div b{display:block;font-size:clamp(34px,4vw,54px);font-weight:300;line-height:1}
.th__sum div span{font-size:13px;color:rgba(255,255,255,.6)}
/* statisch ohne JS: Grundrisse untereinander */
.th__floor{position:relative;left:auto;top:auto;margin:0 auto 18px}
.th__stack{height:auto;perspective:none}
.th__floors{position:relative}
.js .th__floor{position:absolute;left:50%;top:50%;margin:0}
.js .th__stack{height:min(64vh,560px);perspective:1600px}
.js .th__floors{position:absolute}
.js .th__floor::after{opacity:0;transition:opacity .4s}
.js .th__floor.on::after{opacity:1}
@media (min-width:980px){
  .js .th__track{height:340vh}
  .js .th__pin{position:sticky;top:0;height:100vh;display:flex;align-items:center}
  .th__stage{grid-template-columns:1.15fr .85fr;align-items:center;gap:56px}
}
@media (max-width:979px){
  .js .th__track{height:300vh}
  .js .th__pin{position:sticky;top:56px;padding:20px 0}
  .js .th__stack{height:46vh}
  .th__levels .th__lv span{font-size:13px}
  .th__lv{grid-template-columns:56px 1fr auto;padding:12px 14px}
  .th__sum{display:none}
  .th__stage .cta-row{display:none}
}
@media (max-width:620px){.hero__media::after{background:linear-gradient(180deg,rgba(18,25,12,.55) 0%,rgba(18,25,12,.25) 30%,rgba(18,25,12,.55) 55%,rgba(18,25,12,.92) 100%)}}

/* Ensemble Hotspots */
.ens{position:relative;border-radius:var(--r);overflow:hidden;background:var(--deep)}
.ens img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ens__dot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;text-decoration:none}
.ens__dot b{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:4px;background:var(--lime);color:var(--deep);font-size:17px;font-weight:700;box-shadow:0 10px 24px -10px rgba(0,0,0,.6);transition:transform .35s var(--ease)}
.ens__dot span{padding:8px 12px;border-radius:4px;background:rgba(27,36,20,.82);color:#fff;font-size:13px;font-weight:600;white-space:nowrap;backdrop-filter:blur(6px)}
.ens__dot:hover b{transform:scale(1.08)}
.js .ens__dot{opacity:0;transform:translate(-50%,-30%);transition:opacity .6s var(--ease),transform .8s var(--ease)}
.js .ens.in .ens__dot{opacity:1;transform:translate(-50%,-50%)}
.js .ens.in .ens__dot:nth-of-type(2){transition-delay:.15s}
.js .ens.in .ens__dot:nth-of-type(3){transition-delay:.3s}
@media (max-width:640px){.ens__dot span{display:none}.ens img{aspect-ratio:1/1}}
.ens__legend{display:grid;gap:10px;margin-top:20px}
.ens__legend li{display:flex;gap:14px;align-items:center;font-size:15px}
.ens__legend b{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:3px;background:var(--lime);color:var(--deep);font-size:13px;font-weight:700}
@media (min-width:641px){.ens__legend{display:none}}

/* Bestand */
.bst{display:grid;gap:44px}
.bst__media{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--stone)}
.bst__media img{width:100%;height:100%;object-fit:cover}
.js .bst__media img{transform:scale(1.15);transition:transform .1s linear;will-change:transform}
.bst__media figcaption{position:absolute;left:16px;bottom:14px;font-size:11px;color:#fff;letter-spacing:.06em}
.bst__stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;border-top:1px solid var(--line)}
.bst__stats div{padding:20px 12px 18px 0}
.bst__stats div+div{border-left:1px solid var(--line);padding-left:16px}
.bst__stats b{display:block;font-size:clamp(28px,3.2vw,44px);font-weight:300;line-height:1;letter-spacing:-.02em}
.bst__stats div>span{display:block;margin-top:8px;font-size:12.5px;color:var(--muted)}
.rnd{margin-top:30px;padding:24px;border-radius:var(--r);background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.rnd h4{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600}
.rnd h4 svg{width:24px;height:24px;color:var(--lime-d)}
.rnd p{margin-top:10px;font-size:14.5px;color:var(--muted)}
.rnd__bar{position:relative;height:8px;margin-top:20px;border-radius:9px;background:var(--stone);overflow:hidden}
.rnd__bar i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--lime-d),var(--lime));border-radius:9px;transition:width 1.6s var(--ease)}
.rnd.in .rnd__bar i{width:100%}
.rnd__lbl{display:flex;justify-content:space-between;margin-top:8px;font-size:11.5px;color:var(--muted);letter-spacing:.04em}
@media (min-width:980px){.bst{grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.bst__media{aspect-ratio:auto;height:720px}}

/* Lage – Scrollytelling-Karte */
.lage{background:var(--deep);color:#fff}
.lage__intro{padding:var(--sec) 0 clamp(40px,5vw,64px)}
.map{position:relative}
.map__pin{position:relative;height:100svh;overflow:hidden;background:#1b2414}
.js .map{height:560vh}
.js .map__pin{position:sticky;top:0}
.map__layer{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform,opacity}
.map__layer img{width:100%;height:100%;display:block;user-select:none;-webkit-user-drag:none}
.map__layer svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.map__shade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 60% 50%,rgba(27,36,20,0) 40%,rgba(27,36,20,.65) 100%)}
.map__labels{position:absolute;inset:0;pointer-events:none}
.ml{position:absolute;left:0;top:0;transform:translate(-50%,-50%);white-space:nowrap;transition:opacity .45s}
.ml--city{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.88)}
.ml--city i{display:block;width:7px;height:7px;margin:0 auto 9px;border-radius:50%;background:#fff}
.ml--city.edge{opacity:.9}
.ml--city.edge i{display:none}
.ml--city small{display:block;margin-top:6px;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:none;color:var(--lime-hi);text-align:center}
.ml--hwy{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--deep);background:var(--lime);padding:3px 7px;border-radius:3px}
.ml--proj{z-index:3;transform:translate(-50%,-100%)}
.ml--proj .pin{display:flex;flex-direction:column;align-items:center}
.ml--proj .pin img{width:54px;height:54px;border-radius:4px;box-shadow:0 14px 30px -10px rgba(0,0,0,.7)}
.ml--proj .pin::after{content:"";width:2px;height:22px;background:var(--lime)}
.ml--proj .pin span{position:absolute;left:66px;top:6px;padding:7px 11px;border-radius:4px;background:#fff;color:var(--deep);font-size:12px;font-weight:600;letter-spacing:.04em}
.ml--poi{display:flex;align-items:center;gap:8px;transition:opacity .5s,transform .6s var(--ease)}
.ml--poi .ic{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--deep);box-shadow:inset 0 0 0 1.5px var(--lime-hi),0 6px 16px -6px rgba(0,0,0,.8);color:#fff}
.ml--poi .ic svg{width:15px;height:15px}
.ml--poi span{font-size:12px;font-weight:600;color:#fff;background:rgba(27,36,20,.78);padding:4px 9px;border-radius:3px;backdrop-filter:blur(4px)}
.ml--poi span em{font-style:normal;color:var(--lime-hi);font-weight:500;margin-left:6px}
.ml.off{opacity:0}
.ml--poi.off{transform:translate(-50%,-30%)}
.map__panel{position:absolute;z-index:5;left:var(--gut);bottom:clamp(18px,3vw,40px);width:min(420px,calc(100% - var(--gut)*2));padding:24px 24px 20px;border-radius:var(--r);background:rgba(27,36,20,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--line-l)}
.map__steps{display:flex;gap:6px;margin-bottom:16px}
.map__steps i{flex:1;height:2px;background:rgba(255,255,255,.18);position:relative;overflow:hidden}
.map__steps i b{position:absolute;inset:0;background:var(--lime-hi);transform:scaleX(0);transform-origin:left}
.map__card{display:none}
.map__card.on{display:block;animation:fadeUp .6s var(--ease) both}
.map__card small{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--lime-hi)}
.map__card h3{margin-top:10px;font-size:clamp(20px,2vw,26px);font-weight:300;line-height:1.15;text-transform:uppercase}
.map__card h3 b{font-weight:600}
.map__card ul{margin-top:14px;display:grid;gap:7px}
.map__card li{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:rgba(255,255,255,.82);border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:7px}
.map__card li b{font-weight:600;color:#fff;white-space:nowrap}
.map__card p{margin-top:12px;font-size:14px;color:rgba(255,255,255,.75)}
.map__cta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.map__cta .btn{min-height:48px;padding:0 18px;font-size:14px}
.map__src{position:absolute;right:10px;bottom:6px;z-index:4;font-size:10px;color:rgba(255,255,255,.45)}
.map__src a{color:inherit}
/* ohne JS: Karte statisch, alle Karten-Texte untereinander */
html:not(.js) .map__layer--makro{display:none}
html:not(.js) .map__layer--mikro{position:relative;width:100%!important;height:auto!important}
html:not(.js) .map__pin{height:auto}
html:not(.js) .map__labels{display:none}
html:not(.js) .map__panel{position:relative;left:auto;bottom:auto;width:auto;margin:20px var(--gut)}
html:not(.js) .map__card{display:block;margin-bottom:22px}
@media (max-width:760px){
  .map__panel{left:12px;right:12px;width:auto;bottom:80px;padding:16px 16px 12px}
  .map__card p{display:none}
  .map__card h3{font-size:19px}
  .map__cta{display:none}
  .map__card li{font-size:13px}
  .map__card ul{gap:5px}
  .ml--poi span{display:none}
  .ml--poi.lab span{display:inline-block}
  .ml--proj .pin img{width:44px;height:44px}
  .ml--proj .pin span{left:54px}
}

/* Leverkusen Galerie */
.lev{overflow:hidden}
.lev__row{display:flex;gap:18px;will-change:transform}
.lev__item{flex:0 0 min(78vw,520px)}
.lev__item img{width:100%;aspect-ratio:16/11;object-fit:cover;border-radius:var(--r)}
.lev__item figcaption{margin-top:14px;display:flex;justify-content:space-between;gap:12px;font-size:14px}
.lev__item figcaption b{font-weight:600}
.lev__item figcaption span{color:var(--muted)}

/* Partner */
.partners{display:grid;gap:22px}
.partner{padding:clamp(26px,3vw,44px);border-radius:var(--r);background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.partner__logo{height:64px;display:flex;align-items:center}
.partner__logo img{height:84px;width:auto;margin-left:-10px}
.partner__word{font-size:26px;font-weight:300;letter-spacing:.06em}
.partner__word b{font-weight:700}
.partner h3{margin-top:22px}
.partner p{margin-top:10px;color:var(--muted);font-size:15.5px}
.sig{margin-top:34px;font-size:15px;color:var(--muted)}
.sig b{display:block;color:var(--ink);font-size:18px;font-weight:600;margin-top:6px}
@media (min-width:900px){.partners{grid-template-columns:1fr 1fr}}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:clamp(16px,1.5vw,19px);font-weight:600;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{position:relative;flex:none;width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .35s var(--ease)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq details p{padding:0 0 26px;color:var(--muted);max-width:76ch}
@media (min-width:980px){.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}}

/* Abschluss */
.final{position:relative;min-height:88vh;display:flex;align-items:center;color:#fff;overflow:hidden;background:var(--deep)}
.final img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.final::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,25,12,.9),rgba(18,25,12,.35))}
.final .wrap{position:relative;z-index:1}
.final h2{font-weight:300;font-size:clamp(38px,6.4vw,92px);line-height:1;text-transform:uppercase;max-width:14ch}
.final h2 b{font-weight:600;color:var(--lime-hi)}
.final p{margin-top:24px;max-width:48ch;font-size:clamp(17px,1.5vw,20px);color:rgba(255,255,255,.82)}
.checks{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:28px;font-size:14px;color:rgba(255,255,255,.8)}
.checks li{display:flex;gap:9px;align-items:center}
.checks svg{width:16px;height:16px;color:var(--lime-hi)}

/* Footer */
.ft{background:var(--deep);color:rgba(255,255,255,.6);font-size:13px;padding:34px 0 calc(34px + env(safe-area-inset-bottom))}
.ft .wrap{display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;align-items:center}
.ft nav{display:flex;flex-wrap:wrap;gap:8px 22px}
.ft a,.ft button{color:rgba(255,255,255,.8);text-decoration:none;font-size:13px}
.ft a:hover,.ft button:hover{color:#fff}
.disc{font-size:11.5px;line-height:1.6;color:rgba(255,255,255,.45);max-width:90ch;flex-basis:100%}

/* Sticky CTA mobil */
.sticky{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:90;transform:translateY(140%);transition:transform .5s var(--ease)}
.sticky .btn{width:100%;min-height:54px;box-shadow:0 14px 34px -12px rgba(0,0,0,.55)}
.sticky.on{transform:none}
.sticky.hide{transform:translateY(140%)}
@media (min-width:900px){.sticky{display:none}}

/* Cookie-Banner */
.cc{position:fixed;z-index:400;left:12px;right:12px;bottom:12px;max-width:520px;margin-left:auto;padding:24px;border-radius:var(--r);background:#fff;color:var(--ink);box-shadow:0 24px 60px -18px rgba(0,0,0,.45),0 0 0 1px var(--line);display:none}
.cc.show{display:block;animation:fadeUp .5s var(--ease) both}
.cc h2{font-size:17px;font-weight:600}
.cc p{margin-top:8px;font-size:13.5px;line-height:1.55;color:var(--muted)}
.cc p a{color:var(--ink)}
.cc__set{display:none;margin-top:14px;gap:10px}
.cc__set.open{display:grid}
.cc__set label{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;font-weight:600}
.cc__set small{display:block;font-weight:400;color:var(--muted);font-size:12.5px}
.cc__set input{width:18px;height:18px;margin-top:2px;accent-color:var(--lime-d)}
.cc__btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.cc__btns .btn{min-height:48px;padding:0 14px;font-size:14px}
.cc__save{display:none!important;grid-column:1/-1}
.cc__set.open~.cc__btns .cc__save{display:inline-flex!important}
.cc__link{margin-top:12px;font-size:13px;text-decoration:underline;color:var(--muted)}

/* Funnel-Seiten */
.fun{min-height:100svh;display:flex;flex-direction:column;background:var(--paper)}
.fun__top{padding:22px var(--gut);display:flex;justify-content:center}
.fun__top img{width:64px;height:auto}
.fun__main{flex:1;display:flex;align-items:center;justify-content:center;padding:20px var(--gut) 50px}
.fun__card{width:100%;max-width:720px;padding:clamp(26px,5vw,56px);background:#fff;border-radius:var(--r);box-shadow:0 30px 80px -40px rgba(27,36,20,.35)}
.fun__card h1{font-weight:300;font-size:clamp(30px,4.6vw,50px);line-height:1.08;text-transform:uppercase}
.fun__card h1 strong{font-weight:600;color:var(--lime-d)}
.fun__card>p{margin-top:14px;color:var(--muted)}
.bar-l{display:flex;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bar{height:10px;border-radius:9px;background:var(--stone);overflow:hidden}
.bar i{display:block;height:100%;width:0;border-radius:9px;background:linear-gradient(90deg,var(--lime-d),var(--lime));transition:width 2s var(--ease)}
.steps{margin-top:34px;display:grid;gap:14px}
.steps li{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start;padding:16px;border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line)}
.steps .n{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--stone);font-weight:700}
.steps .n svg{width:20px;height:20px}
.steps h2{font-size:16px;font-weight:600;line-height:1.35;padding-top:10px}
.steps p{margin-top:6px;font-size:14.5px;color:var(--muted)}
.steps .ok{opacity:.7}.steps .ok .n{background:var(--lime);color:var(--deep)}
.steps .now{padding:22px;background:rgba(132,171,42,.1);box-shadow:inset 0 0 0 1.5px var(--lime)}
.steps .now .n{background:var(--deep);color:#fff}
.steps .now h2{font-size:clamp(18px,2vw,22px)}
.hint{margin-top:22px;display:flex;gap:10px;font-size:14px;color:var(--muted)}
.fun__foot{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;padding:18px var(--gut);font-size:12.5px;color:var(--muted)}
.fun__foot a,.fun__foot button{color:var(--muted);text-decoration:none;font-size:12.5px}
.contact-btns{display:grid;gap:12px;margin-top:22px}
@media (min-width:640px){.contact-btns{grid-template-columns:1fr 1fr}}
.tfwrap{height:100svh}
/* Unsubscribe */
.uns{min-height:100svh;display:grid;background:var(--paper)}
.uns__img{height:34vh;background:var(--deep) center/cover no-repeat;position:relative}
.uns__img::after{content:"";position:absolute;inset:auto 0 0;height:50%;background:linear-gradient(180deg,rgba(244,245,239,0),var(--paper))}
.uns__txt{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px var(--gut) 30px}
.uns__txt img{width:84px}
.uns__place{margin-top:18px;font-size:12px;font-weight:600;letter-spacing:.3em;color:var(--muted)}
.uns__line{width:48px;height:2px;background:var(--lime);margin:22px auto}
.uns h1{font-weight:300;font-size:clamp(32px,5vw,54px);line-height:1.08;text-transform:uppercase}
.uns p{margin-top:16px;max-width:46ch;color:var(--muted)}
.uns p a{color:var(--lime-d);font-weight:600}
@media (min-width:900px){.uns{grid-template-columns:1fr 1fr}.uns__img{height:auto}.uns__img::after{inset:0 0 0 auto;width:40%;height:auto;background:linear-gradient(90deg,rgba(244,245,239,0),var(--paper))}}
/* Rechtstexte */
.legal{max-width:820px;margin:0 auto;padding:120px var(--gut) 80px}
.legal h1{font-weight:300;font-size:clamp(32px,4.4vw,50px);text-transform:uppercase}
.legal h2{font-size:19px;font-weight:600;margin-top:36px}
.legal p,.legal li{margin-top:10px;color:#3a4232;font-size:15.5px}
.legal a{color:var(--lime-d)}
.back{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;text-decoration:none;color:var(--muted);margin-bottom:26px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js [data-r]{opacity:1;transform:none;clip-path:none}
}
@media (max-width:520px){.types__meta{grid-template-columns:1fr 1fr;gap:12px 18px}.types__meta dd{white-space:normal}.types__panel{padding:16px}.types__info .btn{white-space:normal;text-align:center;min-height:56px;padding:12px 20px}}

/* ---------- Mobile-Optimierung ---------- */
.th__desc{display:none}
@media (max-width:620px){
  body{font-size:16px}
  .sec{padding:72px 0}
  .head{gap:18px;margin-bottom:36px}
  .h2{font-size:clamp(30px,9vw,40px);margin-top:14px}
  .lead{font-size:16px}
  .eyebrow{font-size:11px;letter-spacing:.18em}
  .btn{min-height:52px;padding:0 22px;font-size:14.5px}
  .cta-row{margin-top:30px}
  .cta-row .btn{width:100%}
  /* Hero */
  .hero{min-height:100svh}
  .hero__in{padding-top:96px;padding-bottom:28px}
  .hero__eyebrow{font-size:11px;letter-spacing:.2em}
  .hero h1{font-size:clamp(38px,11.2vw,48px);margin-top:16px}
  .hero__sub{font-size:15.5px;margin-top:16px}
  .hero__row{margin-top:24px;gap:14px 22px}
  .hero__row .btn{flex:1 1 100%}
  .hero__facts{display:grid;grid-template-columns:1fr 1fr;margin-top:28px}
  .hero__facts li{padding:14px 10px 0 0;font-size:11.5px}
  .hero__facts strong{font-size:15.5px}
  /* Kennzahlen */
  .fact{padding:22px 10px 2px 0}
  .fact b{font-size:52px}
  .fact>span{font-size:13px;margin:8px 0 18px}
  /* Wege */
  .way{min-height:380px}
  .way__in{padding:22px}
  .way__n{left:16px;top:16px}
  .way::before{background:linear-gradient(180deg,rgba(18,25,12,0) 18%,rgba(18,25,12,.35) 42%,rgba(18,25,12,.94) 100%)}
  .way h3{font-size:28px}
  /* Listen einspaltig */
  .feat{grid-template-columns:1fr;gap:12px}
  .feat li{font-size:15px}
  /* Neubau-Story */
  .story{gap:28px}
  .story__media{aspect-ratio:4/3.2}
  .chapter{padding-bottom:26px}
  .foerder{padding:26px 22px;gap:20px}
  .foerder__badge{width:96px;height:96px}
  .foerder__badge b{font-size:32px}
  .foerder__badge small{font-size:9px;letter-spacing:.16em}
  .foerder .btn{width:100%}
  /* Wohnungstypen */
  .types__tab{height:44px;padding:0 16px;font-size:13.5px}
  .types__plan{min-height:200px;padding:10px}
  .types__info h3{font-size:30px}
  .types__list li{font-size:14.5px}
  /* Bestand */
  .bst{gap:32px}
  .bst__media{aspect-ratio:4/3.4}
  .bst__stats b{font-size:28px}
  .bst__stats div+div{padding-left:12px}
  .rnd{padding:20px}
  /* Partner, FAQ, Abschluss */
  .partner{padding:24px}
  .faq summary{padding:20px 0;font-size:16px}
  .final{min-height:auto;padding:90px 0 110px}
  .final h2{font-size:clamp(36px,10.5vw,46px)}
  .checks{flex-direction:column;gap:10px}
  .ens__dot b{width:36px;height:36px;font-size:15px}
  .lev__item{flex-basis:80vw}
  .lev__item figcaption{flex-direction:column;gap:2px;font-size:13px}
}
/* Townhouse mobil: kompakte Etagenwahl */
@media (max-width:979px){
  .js .th__pin{top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;padding:70px 0 86px}
  .js .th__stack{height:min(44svh,380px)}
  .th__stage{gap:18px}
  .th__levels{grid-template-columns:repeat(3,1fr);gap:8px}
  .th__lv{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 12px}
  .th__lv span{display:none}
  .th__lv b{font-size:11.5px}
  .th__lv em{font-size:17px}
  .th__levels .th__lv:nth-child(1){order:3}.th__levels .th__lv:nth-child(2){order:2}.th__levels .th__lv:nth-child(3){order:1}
  .th__desc{display:block;margin-top:14px;min-height:3em;font-size:15px;line-height:1.5;color:rgba(255,255,255,.82)}
  .th__floor{width:min(420px,78%)}
  .th__floor::after{font-size:10px;left:-8px}
}
/* Karte mobil */
@media (max-width:760px){
  .map__panel{bottom:calc(78px + env(safe-area-inset-bottom));padding:14px 14px 10px}
  .map__steps{margin-bottom:10px}
  .map__card small{font-size:10px}
  .map__card h3{font-size:18px;margin-top:6px}
  .map__card ul{grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:10px}
  .map__card li{display:block;font-size:11.5px;line-height:1.3;padding-bottom:6px}
  .map__card li b{display:block;margin-top:2px;font-size:12.5px;white-space:normal}
  .ml--city{font-size:10.5px;letter-spacing:.16em}
  .ml--city small{font-size:10px}
  .ml--proj .pin span{left:50%;top:auto;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;font-size:11px;padding:5px 9px}
  .map__src{font-size:9px;bottom:calc(64px + env(safe-area-inset-bottom));right:8px}
}
@media (max-width:620px){.sticky .btn{min-height:52px}}
.th__pin{overflow:hidden}
.ml--poi.lab-off span:not(.ic){display:none!important}

/* ---------- Erweiterung 03.11.2026: KfW, Motion, weitere Projekte ---------- */
@media (min-width:900px){.facts{grid-template-columns:repeat(4,1fr) 1.55fr}}
@media (max-width:899px){.facts .fact:last-child{grid-column:1/-1}}
.fact{position:relative}
.fact::before{content:"";position:absolute;left:0;right:18px;top:-1px;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease) .15s}
.fact.in::before,html:not(.js) .fact::before{transform:scaleX(1)}
@media (min-width:900px){.fact+.fact::before{left:28px}}
.fact--kfw b{color:var(--lime-d)}
.fact--kfw b small{color:var(--ink)}
/* Förderung mit Ring */
.foerder{grid-template-columns:1fr}
.foerder__ring{position:relative;width:200px;height:200px;flex:none}
.foerder__ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.fr-bg{fill:none;stroke:rgba(255,255,255,.1);stroke-width:2}
.fr-fg{fill:none;stroke:var(--lime-hi);stroke-width:3;stroke-linecap:round;stroke-dasharray:553;stroke-dashoffset:0;transition:stroke-dashoffset 2s var(--ease) .1s}
.js .foerder:not(.in) .fr-fg{stroke-dashoffset:553}
.fr-in{fill:none;stroke:rgba(151,191,53,.22);stroke-width:1;stroke-dasharray:2 6}
.foerder__val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.1}
.foerder__val b{font-size:30px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums;margin:6px 0}
.foerder__val small{font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--lime-hi)}
.foerder__tag{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.foerder__tag span{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:3px;background:rgba(151,191,53,.14);color:var(--lime-hi)}
.foerder__note{margin-top:14px!important;font-size:11.5px!important;line-height:1.55;color:rgba(255,255,255,.5)!important}
@media (min-width:980px){.foerder{grid-template-columns:auto 1fr auto}}
@media (max-width:620px){.foerder__ring{width:170px;height:170px;margin:0 auto}.foerder__val b{font-size:25px}}
/* Laufband */
.band{overflow:hidden;padding:clamp(26px,4vw,46px) 0;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band--dark{background:var(--deep);border-color:var(--line-l)}
.band__row{display:flex;align-items:center;gap:clamp(22px,3vw,44px);white-space:nowrap;will-change:transform}
.band__row span{font-size:clamp(40px,7vw,104px);font-weight:300;line-height:1;letter-spacing:-.02em;text-transform:uppercase;color:transparent;-webkit-text-stroke:1.2px rgba(27,36,20,.55)}
.band__row span:nth-of-type(4n+2){color:var(--ink);-webkit-text-stroke:0;font-weight:600}
.band--dark .band__row span{-webkit-text-stroke-color:rgba(255,255,255,.4)}
.band--dark .band__row span:nth-of-type(4n+2){color:var(--lime-hi)}
.band__row i{flex:none;width:clamp(14px,1.6vw,22px);height:clamp(14px,1.6vw,22px);background:var(--lime);transform:rotate(45deg)}
/* Überschriften: Wort-Masken-Reveal */
.js [data-r="split"]{opacity:1;transform:none}
.js [data-r="split"] .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.1em;margin-bottom:-.1em}
.js [data-r="split"] .w>span{display:inline-block;transform:translateY(108%);transition:transform .9s var(--ease)}
.js [data-r="split"].in .w>span{transform:none}
/* Bild-Vorhang */
.js .curtain{clip-path:inset(10% 6% 10% 6% round 6px);transition:clip-path 1.3s var(--ease)}
.js .curtain img{transform:scale(1.14);transition:transform 1.8s var(--ease)}
.js .curtain.in{clip-path:inset(0 0 0 0 round 6px)}
.js .curtain.in img{transform:none}
.js .bst__media.curtain img{transition:none}
/* Weitere Projekte */
.more__grid{display:grid;gap:18px}
@media (min-width:860px){.more__grid{grid-template-columns:1fr 1fr;gap:24px}}
.pcard{display:grid;text-decoration:none;color:inherit;border-radius:var(--r);overflow:hidden;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .4s,transform .5s var(--ease)}
.pcard figure{overflow:hidden;aspect-ratio:4/3}
.pcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.pcard__in{padding:24px 24px 26px}
.pcard__place{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--lime-d)}
.pcard h3{margin-top:8px;font-size:clamp(26px,2.6vw,34px);font-weight:300;text-transform:uppercase;line-height:1.05}
.pcard ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pcard li{font-size:12.5px;font-weight:600;padding:7px 11px;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.pcard__go{display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--lime-d)}
.pcard__go svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.pcard:hover{box-shadow:inset 0 0 0 1px var(--lime),0 24px 50px -30px rgba(27,36,20,.5);transform:translateY(-3px)}
.pcard:hover img{transform:scale(1.05)}
.pcard:hover .pcard__go svg{transform:translateX(5px)}

.fact--kfw:last-child b{font-size:clamp(44px,5.2vw,80px)}
