/* WEITBLICK Stuttgart, Sonnenbühl 25
   Design-System: Warmes Schwarz, Papier, Nebelgrau, Sand. Glas wie bei Apple.
   Schriften: Outfit (Display), Manrope (Text), selbst gehostet. */

@font-face{font-family:'Outfit';font-style:normal;font-weight:200;font-display:swap;src:url("../fonts/outfit-200.woff2") format("woff2")}
@font-face{font-family:'Outfit';font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/outfit-300.woff2") format("woff2")}
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/outfit-400.woff2") format("woff2")}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/outfit-500.woff2") format("woff2")}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/outfit-600.woff2") format("woff2")}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/manrope-400.woff2") format("woff2")}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/manrope-500.woff2") format("woff2")}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/manrope-600.woff2") format("woff2")}

:root{
  --ink:#0d0d0c; --ink-2:#151513; --graphite:#1d1c1a; --graphite-2:#2a2926;
  --stone:#8a877f; --stone-2:#aaa69d; --line:#d8d3c9; --line-dark:rgba(244,242,237,.14);
  --mist:#e9e7e2; --mist-2:#dfdcd5; --paper:#f6f4ef; --paper-2:#efece5;
  --sand:#ddd4c5; --sand-2:#cdc1ab; --sand-3:#a8987a;
  --text:#1a1917; --text-soft:#5a5750; --text-inv:#f4f2ed; --text-inv-soft:rgba(244,242,237,.72);
  --f-display:'Outfit', ui-sans-serif, system-ui, sans-serif;
  --f-body:'Manrope', ui-sans-serif, system-ui, sans-serif;
  --r-s:10px; --r-m:18px; --r-l:26px; --r-xl:38px;
  --sh-1:0 1px 2px rgba(25,20,12,.06), 0 10px 28px -12px rgba(25,20,12,.18);
  --sh-2:0 2px 8px rgba(25,20,12,.07), 0 34px 70px -28px rgba(25,20,12,.34);
  --sh-3:0 50px 120px -40px rgba(8,7,5,.6);
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --wrap:1320px; --gutter:clamp(20px,4.2vw,64px); --section-y:clamp(96px,11vw,176px);
  --hdr-top:18px;
  --noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ---------- Grundlagen ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
i,em{font-style:normal}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}
html{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--f-body);font-size:16.5px;line-height:1.68;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:300;letter-spacing:-.022em;line-height:1.06;margin:0;text-wrap:balance;hyphens:manual}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
::selection{background:var(--sand-2);color:var(--ink)}
:focus-visible{outline:2px solid var(--sand-3);outline-offset:3px;border-radius:6px}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px}
.skip:focus{top:16px}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nowrap{white-space:nowrap}
.num{font-variant-numeric:lining-nums tabular-nums}

/* ---------- Hintergründe (jede Fläche mit Verlauf und Korn) ---------- */
.bg-paper,.bg-mist,.bg-sand,.bg-graphite,.bg-ink{position:relative;isolation:isolate}
.bg-paper::before,.bg-mist::before,.bg-sand::before,.bg-graphite::before,.bg-ink::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--noise);opacity:.05;mix-blend-mode:multiply}
.bg-graphite::before,.bg-ink::before{mix-blend-mode:screen;opacity:.035}
.bg-paper{background:radial-gradient(1100px 620px at 12% -8%,#fffefb 0%,rgba(255,254,251,0) 62%),radial-gradient(900px 600px at 100% 100%,#ece7dd 0%,rgba(236,231,221,0) 60%),linear-gradient(180deg,#f8f6f1 0%,#f2efe8 100%)}
.bg-mist{background:radial-gradient(1000px 560px at 85% 0%,#f4f3ef 0%,rgba(244,243,239,0) 60%),linear-gradient(180deg,#e8e6e1 0%,#dedbd4 100%)}
.bg-sand{background:radial-gradient(1000px 640px at 0% 0%,#efe9de 0%,rgba(239,233,222,0) 62%),radial-gradient(800px 600px at 100% 100%,#c9bca4 0%,rgba(201,188,164,0) 60%),linear-gradient(165deg,#e6dece 0%,#d6cab5 100%)}
.bg-graphite{color:var(--text-inv);background:radial-gradient(1000px 700px at 85% 0%,#36342f 0%,rgba(54,52,47,0) 60%),radial-gradient(900px 600px at 0% 100%,#25231f 0%,rgba(37,35,31,0) 60%),linear-gradient(180deg,#1f1e1b 0%,#151412 100%)}
.bg-ink{color:var(--text-inv);background:radial-gradient(1100px 700px at 15% 0%,#26251f 0%,rgba(38,37,31,0) 62%),radial-gradient(900px 700px at 100% 100%,#1b1a17 0%,rgba(27,26,23,0) 60%),linear-gradient(180deg,#11110f 0%,#0a0a09 100%)}

.section{padding-block:var(--section-y)}
.h2{font-size:clamp(2.35rem,4.6vw,4.6rem)}
.lead{font-size:clamp(1.06rem,1.25vw,1.22rem);line-height:1.62;color:var(--text-soft);max-width:44ch}
.bg-graphite .lead,.bg-ink .lead{color:var(--text-inv-soft)}
.sec-head{display:grid;gap:22px;margin-bottom:clamp(44px,6vw,80px)}
.sec-head--split{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;gap:clamp(24px,5vw,90px)}
.sec-head--split .lead{justify-self:end}

/* Ecken wie ein Sucher, angelehnt an den Logo-Rahmen */
.corners{position:absolute;inset:14px;pointer-events:none;z-index:3}
.corners::before,.corners::after,.corners i::before,.corners i::after{content:"";position:absolute;width:22px;height:22px;border-color:rgba(255,255,255,.85);border-style:solid;border-width:0}
.corners::before{left:0;top:0;border-left-width:1.5px;border-top-width:1.5px}
.corners::after{right:0;top:0;border-right-width:1.5px;border-top-width:1.5px}
.corners i::before{left:0;bottom:0;border-left-width:1.5px;border-bottom-width:1.5px}
.corners i::after{right:0;bottom:0;border-right-width:1.5px;border-bottom-width:1.5px}

/* Kennzeichnung Visualisierung */
.vis-note{position:absolute;right:14px;bottom:12px;z-index:4;font-family:var(--f-body);font-size:11.5px;line-height:1;letter-spacing:.02em;color:rgba(255,255,255,.92);padding:7px 11px;border-radius:999px;background:rgba(14,14,12,.38);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);border:1px solid rgba(255,255,255,.14);pointer-events:none;white-space:nowrap}

/* ---------- Buttons ---------- */
.btn{--bh:54px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--bh);padding:0 30px;border-radius:999px;font-family:var(--f-display);font-weight:500;font-size:15.5px;letter-spacing:.015em;white-space:nowrap;line-height:1;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out),background-color .4s;will-change:transform}
.btn span{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px;transition:transform .5s var(--ease-out)}
.btn svg{width:16px;height:16px;flex:none}
.btn::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);transform:translateX(-120%);transition:transform 0s}
.btn:hover::after{transform:translateX(120%);transition:transform 1.05s var(--ease-out)}
.btn--light{color:var(--ink);background:linear-gradient(180deg,#ffffff 0%,#ece8e0 100%);box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(0,0,0,.06),0 14px 34px -14px rgba(0,0,0,.55)}
.btn--light:hover{box-shadow:inset 0 1px 0 #fff,0 22px 44px -16px rgba(0,0,0,.6)}
.btn--dark{color:var(--paper);background:linear-gradient(180deg,#34322e 0%,#11110f 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 16px 36px -16px rgba(20,16,10,.7)}
.btn--dark::after{background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 48%,transparent 66%)}
.btn--glass{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.btn--glass::after{background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.25) 48%,transparent 66%)}
.btn--ghost{color:var(--ink);border:1px solid rgba(13,13,12,.22);background:rgba(255,255,255,.35)}
.btn--ghost::after{background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.7) 48%,transparent 66%)}
.btn--sm{--bh:46px;padding:0 22px;font-size:14.5px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(40px,5vw,64px)}
.cta-row--center{justify-content:center}

/* ---------- Header ---------- */
.hdr{position:fixed;z-index:60;left:0;right:0;top:var(--hdr-top);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding-inline:clamp(16px,2.6vw,36px);pointer-events:none;transition:transform .7s var(--ease-out),opacity .5s}
.hdr>*{pointer-events:auto}
.hdr.is-hidden{transform:translateY(calc(-100% - 30px))}
.hdr__brand{justify-self:start;display:flex;align-items:center;gap:14px;width:52px;height:52px;padding:8px;border-radius:14px;background:rgba(16,16,14,.36);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 10px 30px -14px rgba(0,0,0,.5)}
.hdr__brand img{width:100%;height:auto}
.hdr__nav{position:relative;display:flex;align-items:center;gap:2px;padding:6px;border-radius:999px;background:rgba(16,16,14,.4);backdrop-filter:blur(20px) saturate(170%);-webkit-backdrop-filter:blur(20px) saturate(170%);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 14px 40px -18px rgba(0,0,0,.55)}
.hdr__nav a{position:relative;z-index:2;padding:10px 17px;border-radius:999px;font-family:var(--f-display);font-size:14.5px;font-weight:400;letter-spacing:.01em;color:rgba(255,255,255,.8);transition:color .35s}
.hdr__nav a:hover,.hdr__nav a.is-active{color:#fff}
.hdr__glow{position:absolute;z-index:1;top:6px;bottom:6px;left:0;width:0;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.08));box-shadow:inset 0 1px 0 rgba(255,255,255,.25);opacity:0;transition:transform .55s var(--ease-out),width .55s var(--ease-out),opacity .3s}
.hdr__end{justify-self:end;display:flex;align-items:center;gap:10px}
.hdr__burger{display:none;width:52px;height:52px;border-radius:50%;background:rgba(16,16,14,.42);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);position:relative}
.hdr__burger span{position:absolute;left:16px;right:16px;height:1.5px;background:#fff;border-radius:2px;transition:transform .4s var(--ease-out)}
.hdr__burger span:nth-child(1){top:21px}
.hdr__burger span:nth-child(2){top:29px}

/* Mobiles Menü */
.menu{position:fixed;inset:0;z-index:80;color:var(--text-inv);background:radial-gradient(900px 600px at 80% 0%,#2b2a26 0%,rgba(43,42,38,0) 60%),linear-gradient(180deg,#141412,#0a0a09);display:flex;flex-direction:column;padding:96px var(--gutter) calc(32px + env(safe-area-inset-bottom,0px));overflow-y:auto;opacity:0;transition:opacity .45s var(--ease)}
.menu.is-open{opacity:1}
.menu__close{position:absolute;top:var(--hdr-top);right:clamp(16px,2.6vw,36px);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.05));box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 12px 30px -12px rgba(0,0,0,.6);display:grid;place-items:center}
.menu__close svg{width:20px;height:20px}
.menu__brand{position:absolute;top:var(--hdr-top);left:clamp(16px,2.6vw,36px);width:52px}
.menu__links{display:grid;gap:4px;margin-top:12px}
.menu__links a{font-family:var(--f-display);font-weight:300;font-size:clamp(2rem,8.4vw,3rem);letter-spacing:-.02em;line-height:1.18;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.menu.is-open .menu__links a{opacity:1;transform:none}
.menu.is-open .menu__links a:nth-child(2){transition-delay:.04s}.menu.is-open .menu__links a:nth-child(3){transition-delay:.08s}.menu.is-open .menu__links a:nth-child(4){transition-delay:.12s}.menu.is-open .menu__links a:nth-child(5){transition-delay:.16s}.menu.is-open .menu__links a:nth-child(6){transition-delay:.2s}
.menu__foot{margin-top:auto;padding-top:36px;display:grid;gap:16px}
.menu__price{font-family:var(--f-display);font-size:15px;color:var(--text-inv-soft)}
.menu__price b{color:#fff;font-weight:500}
.menu__cookie{justify-self:start;font-size:14px;color:var(--text-inv-soft);text-decoration:underline;text-underline-offset:3px}

/* ---------- Hero mit Scrollfahrt ---------- */
.hero{position:relative;height:100vh;height:100svh;background:var(--ink);color:#fff;overflow:hidden}
.hero__stick{position:absolute;inset:0;overflow:hidden}
.hero__media,.hero__media>picture,.hero__media>picture img,.hero__canvas{position:absolute;inset:0;width:100%;height:100%}
.hero__media>picture img{object-fit:cover}
.hero__media>picture img{transform:scale(1.02);animation:heroIn 2.4s var(--ease-out) both}
@keyframes heroIn{from{transform:scale(1.09);filter:brightness(.6)}to{transform:scale(1.02);filter:none}}
.hero__canvas{opacity:0;object-fit:cover;object-position:50% 50%;max-width:none;max-height:none}
.hero__end{position:absolute;inset:0;opacity:0;pointer-events:none}
.hero__media>picture.hero__end img{transform:none;animation:none}
.hero__end img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero__shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,8,7,.5) 0%,rgba(8,8,7,0) 26%),linear-gradient(0deg,rgba(8,8,7,.82) 0%,rgba(8,8,7,.38) 30%,rgba(8,8,7,0) 58%),radial-gradient(900px 700px at 0% 100%,rgba(8,8,7,.55) 0%,rgba(8,8,7,0) 70%)}
.hero__chapshade{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(90deg,rgba(8,8,7,.72) 0%,rgba(8,8,7,.3) 38%,rgba(8,8,7,0) 62%)}
.hero__intro{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(42px,8.5vh,108px);max-width:980px;z-index:5;will-change:opacity,transform}
.hero__title{font-weight:300;font-size:clamp(3rem,7vw,7.4rem);line-height:.96;letter-spacing:-.04em;margin-bottom:clamp(18px,2.4vw,30px);text-shadow:0 2px 30px rgba(0,0,0,.25)}
.hero__line{display:block}
.hero__line--soft{font-weight:200;font-size:.46em;letter-spacing:-.015em;line-height:1.15;margin-top:.32em;color:rgba(255,255,255,.86)}
.hero__title .ch{display:inline-block;will-change:transform,opacity,filter}
.hero__lead{font-size:clamp(1.05rem,1.3vw,1.24rem);line-height:1.6;color:rgba(255,255,255,.88);max-width:40ch;margin-bottom:22px}
.hero__price{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--f-display);font-size:15px;letter-spacing:.01em;color:rgba(255,255,255,.82);padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);margin-bottom:26px}
.hero__price b{font-weight:500;color:#fff;font-size:17px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero__scroll{position:absolute;right:var(--gutter);bottom:clamp(42px,8.5vh,108px);z-index:5;display:flex;flex-direction:column;align-items:center;gap:14px;font-family:var(--f-display);font-size:12.5px;letter-spacing:.14em;color:rgba(255,255,255,.75)}
.hero__scroll span{writing-mode:vertical-rl;transform:rotate(180deg)}
.hero__scroll i{position:relative;width:1px;height:64px;background:rgba(255,255,255,.22);overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:scrollLine 2.2s var(--ease-io) infinite}
@keyframes scrollLine{0%{top:-40%}100%{top:100%}}
.hero__chapters{position:absolute;inset:0;z-index:4;pointer-events:none}
.chap{position:absolute;left:var(--gutter);top:50%;max-width:min(560px,80vw);opacity:0;transform:translateY(-40%);will-change:opacity,transform,filter}
.chap__no{display:flex;align-items:center;gap:14px;font-family:var(--f-display);font-size:13px;letter-spacing:.16em;color:rgba(255,255,255,.8);margin-bottom:18px}
.chap__no::after{content:"";width:46px;height:1px;background:rgba(255,255,255,.5)}
.chap__title{font-family:var(--f-display);font-weight:300;font-size:clamp(2.4rem,4.8vw,4.8rem);line-height:1.02;letter-spacing:-.03em;margin:0 0 16px;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.chap__text{font-size:clamp(1rem,1.2vw,1.16rem);color:rgba(255,255,255,.86);max-width:36ch;text-shadow:0 1px 20px rgba(0,0,0,.4)}
.hero__final{position:absolute;left:0;right:0;bottom:clamp(36px,7vh,90px);z-index:5;text-align:center;opacity:0;pointer-events:none;padding-inline:var(--gutter)}
.hero__final p{display:inline-block;margin:0;font-family:var(--f-display);font-size:clamp(1rem,1.4vw,1.3rem);letter-spacing:.01em;color:#fff;padding:12px 20px;border-radius:999px;background:rgba(14,14,12,.35);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hero__progress{position:absolute;left:50%;bottom:22px;z-index:6;transform:translateX(-50%);display:flex;gap:6px;padding:7px;border-radius:999px;background:rgba(14,14,12,.34);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);opacity:0;transition:opacity .5s}
.hero__progress.is-on{opacity:1}
.hero__seg{position:relative;display:flex;align-items:center;gap:8px;padding:7px 14px 7px 12px;border-radius:999px;font-family:var(--f-display);font-size:12.5px;letter-spacing:.04em;color:rgba(255,255,255,.6);white-space:nowrap;transition:color .4s,background .4s}
.hero__seg b{font-weight:400;font-size:11px;opacity:.7}
.hero__seg i{position:absolute;left:12px;right:12px;bottom:3px;height:1.5px;background:rgba(255,255,255,.14);border-radius:2px;overflow:hidden}
.hero__seg i::after{content:"";position:absolute;inset:0;background:#fff;transform-origin:0 50%;transform:scaleX(var(--p,0))}
.hero__seg.is-active{color:#fff;background:rgba(255,255,255,.1)}
.hero__note{position:absolute;right:14px;bottom:14px;z-index:6}
.hero__note.vis-note{transition:opacity .4s}

/* ---------- Statement und Kennzahlen ---------- */
.statement{padding-top:var(--section-y);padding-bottom:0}
.statement__text{font-family:var(--f-display);font-weight:300;font-size:clamp(1.85rem,3.7vw,3.75rem);line-height:1.16;letter-spacing:-.025em;max-width:24ch;margin:0;color:var(--ink);text-wrap:balance}
.statement__text .w{display:inline;transition:opacity .25s linear}
.js .statement__text .w{opacity:.14}
.statement__text .w.is-on{opacity:1}
.facts{display:flex;justify-content:space-between;gap:24px;margin:clamp(56px,7vw,100px) 0 0;padding-top:clamp(28px,3vw,40px);border-top:1px solid rgba(13,13,12,.14)}
.fact{display:grid;align-content:start;gap:8px;min-width:0}
.fact__v{font-family:var(--f-display);font-weight:200;font-size:clamp(2.5rem,4.6vw,4.6rem);line-height:1;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:lining-nums proportional-nums;white-space:nowrap}
.fact__v .fx{font-size:.36em;font-weight:300;letter-spacing:0;margin:0 .4em;color:var(--text-soft)}
.fact__v .fx-u{font-size:.42em;font-weight:300;letter-spacing:0;margin-left:.22em;color:var(--text-soft)}
.fact__v .fx-pre{font-size:.36em;font-weight:300;letter-spacing:0;margin-right:.4em;color:var(--text-soft)}
.fact>span{font-size:14.5px;color:var(--text-soft);line-height:1.4}
.frame{position:relative;height:190vh;margin-top:clamp(60px,8vw,110px)}
.frame__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center}
.frame__win{position:absolute;inset:0;clip-path:inset(16% 31% 16% 31% round 26px);will-change:clip-path}
.frame__win picture,.frame__win img{position:absolute;inset:0;width:100%;height:100%}
.frame__win img{object-fit:cover;transform:scale(1.18);will-change:transform}
.frame__label{position:absolute;left:50%;bottom:8vh;transform:translateX(-50%);z-index:3;width:max-content;max-width:calc(100% - 40px);text-align:center;font-family:var(--f-display);font-size:clamp(1rem,1.4vw,1.3rem);font-weight:300;line-height:1.35;color:#fff;opacity:0;padding:14px 24px;border-radius:999px;background:rgba(14,14,12,.38);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%)}
.frame__win .corners{inset:18px}
.frame__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(8,8,7,.55),rgba(8,8,7,0) 45%);opacity:0}

/* ---------- Weitblick-Panorama ---------- */
.view{position:relative;height:100vh;height:100svh;min-height:620px;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate}
.view__pano{position:absolute;inset:0;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.view__pano.is-drag{cursor:grabbing}
.view__track{position:absolute;top:0;bottom:0;left:0;will-change:transform}
.view__img{position:absolute;top:0;left:0;height:100%;width:auto;max-width:none;opacity:0;transition:opacity 1s var(--ease);pointer-events:none}
.view__img.is-on{opacity:1}
.view__shade{position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,rgba(8,8,7,.55) 0%,rgba(8,8,7,0) 30%),linear-gradient(0deg,rgba(8,8,7,.78) 0%,rgba(8,8,7,0) 52%),radial-gradient(800px 600px at 0% 100%,rgba(8,8,7,.5),rgba(8,8,7,0) 70%)}
.view__content{position:absolute;left:0;right:0;bottom:clamp(40px,8vh,96px);z-index:2;pointer-events:none}
.view__content>*{pointer-events:auto}
.view__content h2{font-size:clamp(2.4rem,4.8vw,4.8rem);max-width:13ch;margin-bottom:20px;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.view__content p{max-width:46ch;color:rgba(255,255,255,.86);margin-bottom:28px;text-shadow:0 1px 18px rgba(0,0,0,.4)}
.view__units{display:flex;flex-wrap:wrap;gap:10px}
.view__unit{display:grid;gap:2px;text-align:left;padding:12px 18px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:inset 0 1px 0 rgba(255,255,255,.16);transition:background .4s,border-color .4s,transform .4s var(--ease-out)}
.view__unit b{font-family:var(--f-display);font-weight:400;font-size:16px;letter-spacing:.01em}
.view__unit small{font-size:12.5px;color:rgba(255,255,255,.72)}
.view__unit:hover{transform:translateY(-2px)}
.view__unit[aria-selected="true"]{background:rgba(255,255,255,.9);color:var(--ink);border-color:#fff}
.view__unit[aria-selected="true"] small{color:var(--text-soft)}
.view__meter{position:absolute;right:var(--gutter);top:50%;transform:translateY(-50%);z-index:2;display:grid;justify-items:center;gap:10px;pointer-events:none;padding:22px 22px 20px;border-radius:24px;background:rgba(14,14,12,.34);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.view__meter svg{width:104px;height:auto;overflow:visible}
.view__meter-val{font-family:var(--f-display);font-weight:200;font-size:44px;line-height:1;letter-spacing:-.02em;font-variant-numeric:lining-nums}
.view__meter-val small{font-size:.38em;font-weight:300;margin-left:.2em}
.view__meter-lbl{font-size:12.5px;color:rgba(255,255,255,.8);text-align:center;max-width:15ch;line-height:1.35}
.view__hint{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;padding:12px 20px;border-radius:999px;font-family:var(--f-display);font-size:14px;letter-spacing:.02em;background:rgba(14,14,12,.32);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);pointer-events:none;transition:opacity .6s}
.view__hint svg{width:34px;height:14px}
.view__hint.is-gone{opacity:0}
.view__note{z-index:3}

/* ---------- Galerie ---------- */
.gal{padding-top:var(--section-y);padding-bottom:clamp(60px,7vw,110px);overflow:clip}
.gal__pin{position:relative}
.gal__track{display:flex;gap:clamp(18px,2vw,30px);padding:0 var(--gutter);margin:0;list-style:none;will-change:transform}
.gal__item{flex:none;width:min(64vw,1040px)}
.gal__btn{position:relative;display:block;width:100%;aspect-ratio:3/2;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-2);background:#cfcac0;clip-path:inset(0 round var(--r-l))}
.gal__btn picture,.gal__btn img{width:100%;height:100%}
.gal__btn img{object-fit:cover;transform:scale(1.08);transition:transform 1.4s var(--ease-out)}
.gal__btn:hover img{transform:scale(1.12)}
.gal__btn::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,7,.62) 0%,rgba(8,8,7,0) 42%);pointer-events:none}
.gal__cap{position:absolute;left:24px;bottom:22px;z-index:3;color:#fff;font-family:var(--f-display);font-size:clamp(1.1rem,1.6vw,1.5rem);font-weight:300;letter-spacing:-.01em;text-align:left;max-width:70%;line-height:1.2}
.gal__no{display:block;font-size:12px;letter-spacing:.16em;opacity:.75;margin-bottom:6px;font-weight:400}
.gal__btn .vis-note{bottom:20px;right:20px}
.gal__btn .gal__zoom{position:absolute;top:18px;right:18px;z-index:3;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(14,14,12,.3);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transform:scale(.8);transition:opacity .4s,transform .5s var(--ease-out)}
.gal__btn:hover .gal__zoom{opacity:1;transform:none}
.gal__zoom svg{width:18px;height:18px;color:#fff}
.gal__bar{position:relative;height:2px;margin:clamp(30px,4vw,48px) var(--gutter) 0;background:rgba(13,13,12,.12);border-radius:2px;overflow:hidden}
.gal__bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--sand-3),var(--ink));transform-origin:0 50%;transform:scaleX(0)}
.gal__count{display:flex;justify-content:space-between;margin:14px var(--gutter) 0;font-family:var(--f-display);font-size:13px;letter-spacing:.08em;color:var(--text-soft)}

/* ---------- Wohnungen ---------- */
.units__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(28px,4.4vw,72px);align-items:center}
.house{position:relative;padding:clamp(24px,3vw,44px) clamp(18px,2.6vw,40px) 0;border-radius:var(--r-xl);background:radial-gradient(700px 400px at 50% 0%,#ffffff 0%,rgba(255,255,255,0) 70%),linear-gradient(180deg,#eef0ef 0%,#e6e3dc 100%);box-shadow:var(--sh-2),inset 0 1px 0 #fff;overflow:hidden}
.house::before{content:"";position:absolute;inset:auto -10% 0;height:26%;background:linear-gradient(180deg,rgba(146,161,128,0),rgba(146,161,128,.35));pointer-events:none}
.house__bld{position:relative;z-index:1;display:grid;gap:0;width:min(100%,560px);margin:0 auto;filter:drop-shadow(0 30px 40px rgba(30,26,18,.22))}
.house__roof{position:relative;height:clamp(78px,9vw,112px);margin:0 9%;background:linear-gradient(180deg,#3b3d40 0%,#25272a 100%);clip-path:polygon(9% 0,91% 0,100% 100%,0 100%);display:grid;place-items:center}
.house__roof::before{content:"";position:absolute;inset:30% 18% 0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 2px,transparent 2px 24px)}
.house__slab{height:9px;background:linear-gradient(180deg,#ffffff,#e9e6df);box-shadow:0 1px 0 rgba(0,0,0,.06)}
.house__floor{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;background:linear-gradient(180deg,#f7f6f2,#eceae4)}
.house__floor--gg{background:linear-gradient(180deg,#ffffff,#f1efea)}
.house__lbl{position:absolute;right:calc(100% + 14px);top:50%;transform:translateY(-50%);font-family:var(--f-display);font-size:12px;letter-spacing:.12em;color:var(--text-soft);white-space:nowrap}
.house__base{height:46px;display:grid;place-items:center;font-family:var(--f-display);font-size:12.5px;letter-spacing:.06em;color:var(--text-soft);background:repeating-linear-gradient(135deg,rgba(13,13,12,.06) 0 6px,transparent 6px 12px),linear-gradient(180deg,#d9d5cc,#cfcac0);border-top:1px solid rgba(13,13,12,.12)}
.hunit{position:relative;display:grid;place-items:center;align-content:center;gap:2px;min-height:clamp(72px,7.6vw,96px);border-radius:8px;overflow:hidden;color:#fff;background:linear-gradient(160deg,#4d5a63 0%,#26313a 55%,#1a2128 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 0 0 1px rgba(255,255,255,.08);transition:transform .45s var(--ease-out),box-shadow .45s,filter .45s}
.hunit::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 35%,rgba(255,255,255,0) 60%,rgba(255,255,255,.08) 72%,rgba(255,255,255,0) 80%);pointer-events:none}
.hunit::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--sand),#fff);transform:scaleX(0);transition:transform .5s var(--ease-out)}
.hunit b{position:relative;font-family:var(--f-display);font-weight:300;font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1;font-variant-numeric:lining-nums}
.hunit small{position:relative;font-family:var(--f-display);font-size:11.5px;letter-spacing:.08em;opacity:.8}
.hunit:not(.is-sold):hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 16px 30px -12px rgba(20,30,40,.6)}
.hunit.is-active{box-shadow:inset 0 0 0 2px rgba(255,255,255,.9),0 18px 40px -14px rgba(20,30,40,.7)}
.hunit.is-active::after{transform:scaleX(1)}
.hunit.is-sold{cursor:default;color:rgba(13,13,12,.55);background:repeating-linear-gradient(135deg,rgba(13,13,12,.07) 0 6px,transparent 6px 12px),linear-gradient(180deg,#d8d5ce,#cbc7be);box-shadow:inset 0 0 0 1px rgba(13,13,12,.08)}
.hunit.is-sold::before{display:none}
.house__roof .hunit{background:transparent;box-shadow:none;width:100%;height:100%;min-height:0;color:rgba(255,255,255,.75)}
.house__roof .hunit.is-sold{background:transparent}
.house__legend{position:relative;z-index:1;display:flex;justify-content:center;gap:22px;padding:18px 0 20px;font-size:13px;color:var(--text-soft)}
.house__legend span{display:inline-flex;align-items:center;gap:8px}
.house__legend i{width:14px;height:14px;border-radius:4px;background:linear-gradient(160deg,#4d5a63,#1a2128)}
.house__legend i.sold{background:repeating-linear-gradient(135deg,rgba(13,13,12,.12) 0 3px,transparent 3px 6px),#d3cfc7}
.unit-card{position:relative;display:none;padding:clamp(26px,2.8vw,40px);border-radius:var(--r-xl);background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,255,255,.66));border:1px solid rgba(255,255,255,.9);box-shadow:var(--sh-2);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);overflow:hidden}
.unit-card.is-active{display:block;animation:cardIn .7s var(--ease-out) both}
@keyframes cardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.unit-card__spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px 320px at var(--mx,50%) var(--my,0%),rgba(221,212,197,.55),rgba(221,212,197,0) 70%);opacity:.9}
.unit-card>*{position:relative}
.unit-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px}
.unit-card h3{font-size:clamp(2.1rem,3vw,2.9rem);font-weight:300}
.badge{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;font-family:var(--f-display);font-size:12.5px;letter-spacing:.06em;background:rgba(13,13,12,.06);color:var(--ink);white-space:nowrap}
.badge i{width:7px;height:7px;border-radius:50%;background:#6f8f6a;box-shadow:0 0 0 4px rgba(111,143,106,.18)}
.unit-card__floor{color:var(--text-soft);margin-bottom:22px}
.unit-card__data{display:flex;justify-content:space-between;gap:18px;padding:18px 0;border-top:1px solid rgba(13,13,12,.1);border-bottom:1px solid rgba(13,13,12,.1);margin:0 0 20px}
.unit-card__data div{display:grid;gap:4px;min-width:0}
.unit-card__data dt{font-size:12.5px;color:var(--text-soft);letter-spacing:.02em}
.unit-card__data dd{margin:0;font-family:var(--f-display);font-size:clamp(1.3rem,1.8vw,1.65rem);font-weight:300;white-space:nowrap;font-variant-numeric:lining-nums}
.unit-card__feat{margin:0 0 22px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.unit-card__feat li{font-size:13.5px;padding:7px 12px;border-radius:999px;background:rgba(13,13,12,.05);border:1px solid rgba(13,13,12,.07)}
.unit-card__plan{position:relative;display:block;width:100%;border-radius:var(--r-m);overflow:hidden;background:#fff;border:1px solid rgba(13,13,12,.08);margin-bottom:20px}
.unit-card__plan img{width:100%;height:auto;max-height:300px;object-fit:contain;padding:14px;transition:transform .8s var(--ease-out)}
.unit-card__plan:hover img{transform:scale(1.03)}
.unit-card__plan span{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;font-family:var(--f-display);font-size:12.5px;padding:8px 12px;border-radius:999px;background:rgba(13,13,12,.78);color:#fff}
.unit-card__plan span svg{width:14px;height:14px}
.unit-card__rooms{margin:0 0 22px}
.unit-card__rooms summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;font-family:var(--f-display);font-size:15px;padding:10px 0;border-bottom:1px solid rgba(13,13,12,.1)}
.unit-card__rooms summary::-webkit-details-marker{display:none}
.unit-card__rooms summary::after{content:"";width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .3s}
.unit-card__rooms[open] summary::after{transform:rotate(-135deg)}
.unit-card__rooms ul{list-style:none;margin:10px 0 0;padding:0;columns:2;column-gap:28px;font-size:13.5px}
.unit-card__rooms li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;break-inside:avoid;border-bottom:1px dashed rgba(13,13,12,.1)}
.unit-card__rooms li span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.unit-card__btns{display:flex;flex-wrap:wrap;gap:10px}
.unit-card__close{display:none}
.units__hint{display:none;margin:18px 0 0;font-size:14px;color:var(--text-soft);text-align:center}
.units__table{width:100%;margin-top:clamp(48px,6vw,80px);border-collapse:collapse;font-size:15px}
.units__table caption{text-align:left;font-family:var(--f-display);font-size:1.4rem;font-weight:300;margin-bottom:16px}
.units__table th{font-family:var(--f-body);font-weight:500;font-size:12.5px;letter-spacing:.04em;color:var(--text-soft);text-align:left;padding:12px 14px;border-bottom:1px solid rgba(13,13,12,.16)}
.units__table td{padding:16px 14px;border-bottom:1px solid rgba(13,13,12,.09);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.units__table td:first-child{font-family:var(--f-display);font-size:1.15rem}
.units__table tr[data-unit]{cursor:pointer;transition:background .3s}
.units__table tr[data-unit]:hover,.units__table tr.is-active{background:rgba(255,255,255,.65)}
.units__table tr.is-sold{color:rgba(26,25,23,.45)}
.units__table .st{display:inline-flex;align-items:center;gap:8px}
.units__table .st i{width:7px;height:7px;border-radius:50%;background:#6f8f6a}
.units__table tr.is-sold .st i{background:#b9b4aa}
.units__table .ta-r{text-align:right}
.units__foot{margin:22px 0 0;font-size:13.5px;color:var(--text-soft);max-width:90ch}

/* ---------- Mitgestalten ---------- */
.shape__grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,5vw,90px);align-items:center}
.shape__text h2{margin-bottom:24px}
.shape__text .lead{margin-bottom:clamp(30px,4vw,48px)}
.shape__tabs{display:grid;gap:4px;margin-bottom:28px;border-top:1px solid var(--line-dark)}
.shape__tab{position:relative;display:grid;grid-template-columns:44px 1fr;gap:4px 14px;align-items:baseline;text-align:left;padding:20px 0 20px;border-bottom:1px solid var(--line-dark);color:rgba(244,242,237,.55);transition:color .4s}
.shape__tab b{font-family:var(--f-display);font-weight:400;font-size:13px;letter-spacing:.12em;font-variant-numeric:lining-nums}
.shape__tab strong{font-family:var(--f-display);font-weight:300;font-size:clamp(1.35rem,2vw,1.8rem);letter-spacing:-.015em;line-height:1.2}
.shape__tab span{grid-column:2;font-size:15px;line-height:1.6;max-height:0;overflow:hidden;opacity:0;transition:max-height .6s var(--ease-out),opacity .5s,margin .5s;color:var(--text-inv-soft)}
.shape__tab[aria-selected="true"]{color:#fff}
.shape__tab[aria-selected="true"] span{max-height:180px;opacity:1;margin-top:8px}
.shape__tab i{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:#fff;transform-origin:0 50%;transform:scaleX(0)}
.shape__tab[aria-selected="true"] i{animation:tabFill var(--tab-ms,7000ms) linear forwards}
.shape__tabs.is-manual .shape__tab[aria-selected="true"] i{animation:none;transform:scaleX(1)}
@keyframes tabFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.shape__proof{display:flex;gap:16px;align-items:flex-start;font-family:var(--f-display);font-weight:300;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.45;color:#fff;max-width:40ch}
.shape__proof b{flex:none;font-weight:200;font-size:3.2em;line-height:.8;letter-spacing:-.04em;font-variant-numeric:lining-nums}
.shape__media{position:relative;aspect-ratio:4/5;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3);background:#2a2926}
.shape__img{position:absolute;inset:0;clip-path:inset(0 0 0 100%);transition:clip-path 1.1s var(--ease-io)}
.shape__img.is-on{clip-path:inset(0 0 0 0)}
.shape__img picture,.shape__img img{width:100%;height:100%}
.shape__img img{object-fit:cover;transform:scale(1.08);transition:transform 6s var(--ease)}
.shape__img.is-on img{transform:scale(1)}
.build{margin-top:clamp(80px,10vw,150px);padding:clamp(28px,3.4vw,52px);border-radius:var(--r-xl);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.build__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,70px);align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.build__head h3{font-size:clamp(1.7rem,2.8vw,2.6rem)}
.build__head p{color:var(--text-inv-soft);margin:0}
.build__steps{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.build__line{position:absolute;left:8px;right:8px;top:7px;height:2px;background:rgba(255,255,255,.12);border-radius:2px}
.build__line i{position:absolute;inset:0;background:linear-gradient(90deg,#fff,var(--sand));border-radius:2px;transform-origin:0 50%;transform:scaleX(0);box-shadow:0 0 18px rgba(255,255,255,.55)}
.build__steps li{position:relative;padding-top:36px;display:grid;gap:4px}
.build__steps li::before{content:"";position:absolute;left:0;top:0;width:16px;height:16px;border-radius:50%;background:#1d1c1a;border:2px solid rgba(255,255,255,.28);transition:border-color .5s,background .5s,box-shadow .5s}
.build__steps li.is-done::before{background:#fff;border-color:#fff}
.build__steps li.is-now::before{background:var(--sand);border-color:#fff;box-shadow:0 0 0 6px rgba(221,212,197,.18),0 0 26px rgba(221,212,197,.9);animation:nowPulse 2.4s var(--ease) infinite}
@keyframes nowPulse{0%,100%{box-shadow:0 0 0 6px rgba(221,212,197,.18),0 0 22px rgba(221,212,197,.7)}50%{box-shadow:0 0 0 12px rgba(221,212,197,.06),0 0 36px rgba(221,212,197,1)}}
.build__steps b{font-family:var(--f-display);font-weight:400;font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.3;color:#fff}
.build__steps span{font-size:13.5px;color:var(--text-inv-soft)}
.build__steps li.is-now span{color:var(--sand)}
.build__room{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-top:clamp(30px,4vw,48px);font-size:13px;color:var(--text-inv-soft)}
.build__bar{position:relative;height:10px;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(221,212,197,.75) 30%,rgba(221,212,197,.25) 70%,rgba(255,255,255,.05) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.build__bar i{position:absolute;top:50%;width:2px;height:28px;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 14px rgba(255,255,255,.9)}
.build__bar i::after{content:attr(data-label);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;font-family:var(--f-display);font-size:12.5px;letter-spacing:.06em;color:#fff}
.build__stand{margin:18px 0 0;font-size:12.5px;color:rgba(244,242,237,.5)}

/* ---------- Ausstattung ---------- */
.equip__tabs{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.75);box-shadow:inset 0 1px 0 #fff,var(--sh-1);margin-bottom:24px;position:relative}
.equip__tab{position:relative;z-index:2;padding:11px 24px;border-radius:999px;font-family:var(--f-display);font-size:15px;color:var(--text-soft);transition:color .35s}
.equip__tab[aria-selected="true"]{color:#fff}
.equip__pill{position:absolute;z-index:1;top:5px;bottom:5px;border-radius:999px;background:linear-gradient(180deg,#34322e,#11110f);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 18px -8px rgba(0,0,0,.5);transition:left .55s var(--ease-out),width .55s var(--ease-out)}
.equip__stage{position:relative;aspect-ratio:16/9;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3);background:#c9bfae}
.spots{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s var(--ease),visibility 0s .7s}
.spots.is-on{opacity:1;visibility:visible;transition:opacity .7s var(--ease),visibility 0s}
.spots picture,.spots img{position:absolute;inset:0;width:100%;height:100%}
.spots img{object-fit:cover}
.spot{position:absolute;z-index:3;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 18px -6px rgba(0,0,0,.45);transition:transform .4s var(--ease-out),background .3s}
.spot::before{content:"";width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:spotPulse 2.6s var(--ease) infinite}
.spot::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(255,255,255,.6);animation:spotRing 2.6s var(--ease-out) infinite}
@keyframes spotPulse{0%,100%{transform:scale(1)}50%{transform:scale(.8)}}
@keyframes spotRing{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.spot:hover,.spot.is-open{transform:scale(1.12);background:rgba(255,255,255,.9)}
.spot.is-open::before{background:var(--ink)}
.spot-tip{position:absolute;z-index:4;width:min(300px,70vw);padding:18px 20px;border-radius:18px;color:var(--ink);background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.76));border:1px solid rgba(255,255,255,.95);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:var(--sh-2);opacity:0;transform:translateY(8px) scale(.98);pointer-events:none;transition:opacity .35s,transform .45s var(--ease-out)}
.spot-tip.is-on{opacity:1;transform:none;pointer-events:auto}
.spot-tip strong{display:block;font-family:var(--f-display);font-weight:400;font-size:17px;line-height:1.25;margin-bottom:6px}
.spot-tip p{margin:0;font-size:14px;line-height:1.55;color:var(--text-soft)}
.equip__desc{display:none}
.equip__more{list-style:none;margin:clamp(36px,4vw,56px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid rgba(13,13,12,.14)}
.equip__more li{padding:22px 22px 0 0;display:grid;gap:6px;align-content:start}
.equip__more li+li{padding-left:22px;border-left:1px solid rgba(13,13,12,.1)}
.equip__more b{font-family:var(--f-display);font-weight:400;font-size:17px;line-height:1.3}
.equip__more span{font-size:14px;color:var(--text-soft);line-height:1.55}

/* ---------- Privatsphäre und Technik ---------- */
.privacy__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5.5vw,96px);align-items:center}
.privacy__text h2{margin-bottom:24px}
.arrive{position:relative;list-style:none;margin:clamp(36px,4vw,52px) 0 0;padding:0 0 0 46px;display:grid;gap:22px}
.arrive__line{position:absolute;left:11px;top:10px;bottom:10px;width:2px;background:rgba(255,255,255,.12);border-radius:2px}
.arrive__line i{position:absolute;inset:0;background:linear-gradient(180deg,#fff,var(--sand));transform-origin:50% 0;transform:scaleY(0);box-shadow:0 0 16px rgba(255,255,255,.6);border-radius:2px}
.arrive li{position:relative;display:grid;gap:3px;opacity:.38;transition:opacity .6s}
.arrive li.is-on{opacity:1}
.arrive li::before{content:attr(data-n);position:absolute;left:-46px;top:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-size:11.5px;line-height:1;font-variant-numeric:lining-nums;background:#141412;border:1.5px solid rgba(255,255,255,.35);transition:background .5s,color .5s,border-color .5s,box-shadow .5s}
.arrive li.is-on::before{background:#fff;color:var(--ink);border-color:#fff;box-shadow:0 0 22px rgba(255,255,255,.55)}
.arrive b{font-family:var(--f-display);font-weight:400;font-size:18px;line-height:1.3}
.arrive span{font-size:14.5px;color:var(--text-inv-soft);line-height:1.55}
.privacy__media{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:16/10;box-shadow:var(--sh-3)}
.privacy__media picture,.privacy__media img{width:100%;height:100%}
.privacy__media img{object-fit:cover;transform:scale(1.08)}
.privacy__media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,7,.45),rgba(8,8,7,0) 45%);pointer-events:none}
.privacy__tag{position:absolute;left:20px;bottom:18px;z-index:3;font-family:var(--f-display);font-size:14px;color:#fff;display:flex;align-items:center;gap:10px}
.privacy__tag i{width:8px;height:8px;border-radius:50%;background:var(--sand);box-shadow:0 0 14px var(--sand)}
.tech{margin-top:clamp(80px,9vw,140px)}
.tech__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 60px;flex-wrap:wrap;margin-bottom:clamp(28px,3.4vw,46px)}
.tech__head h3{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:300;letter-spacing:-.02em;margin:0}
.tech__head p{max-width:42ch;margin:0;color:var(--text-inv-soft);font-size:16px;line-height:1.6}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,1.8vw,26px)}
.tile{position:relative;padding:10px 10px 22px;border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(255,255,255,.025) 55%,rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 34px 60px -34px rgba(0,0,0,.7);transition:transform .6s var(--ease-out),border-color .5s}
.tile__img{position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;margin-bottom:18px;background:#2a2926}
.tile__img picture,.tile__img img{display:block;width:100%;height:100%}
.tile__img img{object-fit:cover;transition:transform 1.2s var(--ease-out)}
.tile__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,9,.28),transparent 30%,transparent 70%,rgba(10,10,9,.22));pointer-events:none}
.tile__cat{position:absolute;left:12px;top:12px;z-index:2;font-family:var(--f-display);font-size:12px;letter-spacing:.03em;color:#fff;padding:6px 11px;border-radius:999px;background:linear-gradient(160deg,rgba(255,255,255,.26),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.3)}
.tile__note{position:absolute;right:10px;bottom:9px;z-index:2;font-size:10.5px;color:rgba(255,255,255,.8);letter-spacing:.02em}
.tile h4{font-family:var(--f-display);font-weight:400;font-size:clamp(1.08rem,1.25vw,1.22rem);line-height:1.3;letter-spacing:-.01em;color:#fff;margin:0 12px 6px}
.tile p{margin:0 12px;font-size:14.5px;line-height:1.55;color:var(--text-inv-soft)}
@media (hover:hover){.tile:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.22)}.tile:hover .tile__img img{transform:scale(1.05)}}
.tech__kfw{margin-top:clamp(22px,2.4vw,32px);font-size:13.5px;color:rgba(244,242,237,.6)}

/* ---------- Lage ---------- */
.loc__grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(32px,5vw,90px);align-items:center}
.loc__text h2{margin-bottom:24px}
.loc__times{list-style:none;margin:clamp(30px,4vw,48px) 0 18px;padding:0;border-top:1px solid rgba(13,13,12,.14)}
.loc__dest{width:100%;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:16px;padding:18px 4px;border-bottom:1px solid rgba(13,13,12,.12);text-align:left;transition:padding .4s var(--ease-out),background .3s}
.loc__dest strong{font-family:var(--f-display);font-weight:400;font-size:18px}
.loc__dest small{display:block;font-size:13.5px;color:var(--text-soft);font-weight:400}
.loc__dest span{font-family:var(--f-display);font-weight:200;font-size:clamp(1.8rem,2.6vw,2.5rem);letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:lining-nums}
.loc__dest span small{display:inline;font-size:.42em;font-weight:300;letter-spacing:0;margin-left:.25em;color:var(--text-soft)}
.loc__dest span .fx{font-size:.42em;font-weight:300;margin:0 .3em;color:var(--text-soft)}
.loc__dest:hover,.loc__dest.is-active{padding-left:14px;background:linear-gradient(90deg,rgba(255,255,255,.7),rgba(255,255,255,0))}
.loc__note{font-size:13px;color:var(--text-soft);margin:0}
.loc__map{position:relative;border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(180deg,#f3f2ee,#e7e4dd);box-shadow:var(--sh-2),inset 0 1px 0 #fff;aspect-ratio:560/600}
.loc__map svg{width:100%;height:100%}
.map-route{fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:6 7;opacity:.18;transition:opacity .4s,stroke-width .4s}
.map-route.is-active{opacity:1;stroke-width:2.6;animation:routeDash 1.2s linear infinite}
@keyframes routeDash{to{stroke-dashoffset:-26}}
.map-pin{transition:transform .4s var(--ease-out)}
.map-pin circle.pin-dot{fill:var(--ink)}
.map-pin text{font-family:var(--f-display);font-size:13px;fill:var(--ink)}
.map-pin.is-active text{font-weight:500}
.map-home .halo{fill:var(--sand-3);opacity:.35;transform-origin:center;transform-box:fill-box;animation:halo 2.6s var(--ease-out) infinite}
@keyframes halo{0%{transform:scale(.6);opacity:.55}100%{transform:scale(2.4);opacity:0}}
.loc__mapnote{position:absolute;left:16px;bottom:14px;font-size:11.5px;color:var(--text-soft)}
.ticker{position:relative;margin-top:clamp(70px,8vw,120px);padding:26px 0;border-top:1px solid rgba(13,13,12,.12);border-bottom:1px solid rgba(13,13,12,.12);overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker__track{display:inline-flex;align-items:center;gap:0;will-change:transform}
.ticker__item{display:inline-flex;align-items:baseline;gap:14px;padding:0 36px;font-size:15px;color:var(--text-soft)}
.ticker__item b{font-family:var(--f-display);font-weight:200;font-size:clamp(2.2rem,3.4vw,3.2rem);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:lining-nums}
.ticker__sep{display:inline-block;width:12px;height:12px;border:1.5px solid rgba(13,13,12,.4);flex:none}
.ticker__src{margin:12px var(--gutter) 0;font-size:12px;color:var(--text-soft);text-align:right}
.sat{position:relative;margin-top:clamp(70px,8vw,120px);height:min(72vh,720px);min-height:420px;overflow:hidden;background:#3a3c36}
.sat__preview,.sat__preview picture,.sat__preview img,.sat iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sat__preview img{object-fit:cover;filter:saturate(.9)}
.sat__preview::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 400px at 50% 50%,rgba(8,8,7,.15),rgba(8,8,7,.55))}
.sat__card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:min(440px,calc(100% - 40px));padding:28px;border-radius:var(--r-l);text-align:center;color:#fff;background:rgba(14,14,12,.42);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);box-shadow:var(--sh-3)}
.sat__card h3{font-size:1.6rem;margin-bottom:6px}
.sat__card p{color:rgba(255,255,255,.8);font-size:14.5px}
.sat__card small{display:block;margin-top:14px;font-size:12px;color:rgba(255,255,255,.7)}
.sat__card small a{text-decoration:underline;text-underline-offset:3px}
.sat .vis-note{z-index:2}

/* ---------- Ansprechpartner ---------- */
.contact__grid{display:grid;grid-template-columns:380px minmax(0,1fr);gap:clamp(32px,5vw,90px);align-items:center}
.person{position:relative;border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(180deg,#ffffff,#f1eee7);box-shadow:var(--sh-2);border:1px solid rgba(255,255,255,.9)}
.person__img{position:relative;aspect-ratio:4/5;overflow:hidden}
.person__img img{object-position:50% 20%}
.person__img picture,.person__img img{width:100%;height:100%}
.person__img img{object-fit:cover}
.person__logo{position:absolute;left:18px;top:18px;z-index:3;width:56px;padding:9px;border-radius:12px;background:rgba(14,14,12,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2)}
.person__body{padding:26px 28px 30px}
.person__role{font-size:13px;color:var(--text-soft);letter-spacing:.02em;margin:0 0 4px}
.person h3{font-size:2rem;font-weight:300;margin-bottom:4px}
.person__firm{font-size:14px;color:var(--text-soft);margin-bottom:20px}
.person__links{display:grid;gap:10px}
.person__links a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:rgba(13,13,12,.04);border:1px solid rgba(13,13,12,.07);font-size:15px;transition:background .3s,transform .4s var(--ease-out);word-break:break-word}
.person__links a:hover{background:rgba(13,13,12,.08);transform:translateX(3px)}
.person__links svg{width:18px;height:18px;flex:none;color:var(--sand-3)}
.contact__text h2{margin-bottom:22px}
.contact__text .lead{margin-bottom:clamp(30px,4vw,44px)}
.steps3{list-style:none;margin:0 0 clamp(30px,4vw,44px);padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.steps3 li{position:relative;padding:22px 20px;border-radius:var(--r-m);background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9);box-shadow:var(--sh-1)}
.steps3 li b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;margin-bottom:14px;font-family:var(--f-display);font-weight:400;font-size:14px;line-height:1;font-variant-numeric:lining-nums;color:#fff;background:linear-gradient(180deg,#34322e,#11110f)}
.steps3 li strong{display:block;font-family:var(--f-display);font-weight:400;font-size:17px;line-height:1.3;margin-bottom:6px}
.steps3 li span{font-size:14px;color:var(--text-soft);line-height:1.55}
.service{display:flex;justify-content:space-between;gap:20px;padding:22px 0;border-top:1px solid rgba(13,13,12,.12);border-bottom:1px solid rgba(13,13,12,.12);margin-bottom:clamp(30px,4vw,40px)}
.service div{display:grid;gap:6px;min-width:0}
.service b{font-family:var(--f-display);font-weight:200;font-size:clamp(2.2rem,3.2vw,3rem);line-height:1;letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:lining-nums}
.service b .fx-u{font-size:.42em;font-weight:300;margin-left:.22em;color:var(--text-soft);letter-spacing:0}
.service span{font-size:13.5px;color:var(--text-soft);line-height:1.4}

/* ---------- Abschluss ---------- */
.finale{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;isolation:isolate;background:#0d0d0c}
.finale__bg,.finale__bg picture,.finale__bg img{position:absolute;inset:0;width:100%;height:100%}
.finale__bg{z-index:-2}
.finale__bg img{object-fit:cover;transform:scale(1.12);will-change:transform}
.finale::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(8,8,7,.86) 0%,rgba(8,8,7,.35) 42%,rgba(8,8,7,.12) 70%,rgba(8,8,7,.4) 100%)}
.finale__content{padding-bottom:clamp(70px,12vh,140px);padding-top:30vh}
.finale h2{font-size:clamp(2.8rem,6.6vw,6.8rem);letter-spacing:-.035em;margin-bottom:24px;max-width:14ch}
.finale p{font-size:clamp(1.05rem,1.3vw,1.24rem);color:rgba(255,255,255,.86);max-width:44ch;margin-bottom:32px}

/* ---------- Footer ---------- */
.ftr{padding:clamp(70px,8vw,110px) 0 calc(36px + env(safe-area-inset-bottom,0px))}
.ftr__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;align-items:start}
.ftr__brand img{width:110px;margin-bottom:22px}
.ftr__brand p,.ftr__mid p{font-size:14.5px;color:var(--text-inv-soft);margin:0}
.ftr__mid{text-align:center;justify-self:center}
.ftr__mid small{display:block;font-size:12.5px;letter-spacing:.06em;color:rgba(244,242,237,.55);margin-bottom:8px}
.ftr__mid strong{display:block;font-family:var(--f-display);font-weight:400;font-size:18px;letter-spacing:.02em;margin-bottom:8px}
.ftr__links{justify-self:end;display:grid;gap:10px;text-align:right}
.ftr__links a,.ftr__links button{font-size:14.5px;color:var(--text-inv-soft);transition:color .3s;text-align:right}
.ftr__links a:hover,.ftr__links button:hover{color:#fff}
.ftr__bottom{display:flex;justify-content:space-between;gap:24px;margin-top:clamp(50px,6vw,80px);padding-top:24px;border-top:1px solid var(--line-dark);font-size:12.5px;color:rgba(244,242,237,.5)}
.ftr__bottom p{margin:0;max-width:70ch}

/* ---------- Sticky-CTA (mobil) ---------- */
.sticky-cta{position:fixed;z-index:55;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));display:none;transform:translateY(140%);transition:transform .6s var(--ease-out)}
.sticky-cta .btn{width:100%}
.sticky-cta.is-on{transform:none}

/* ---------- Lightbox ---------- */
.lb{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,60px);background:rgba(10,10,9,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;transition:opacity .4s}
.lb.is-open{opacity:1}
.lb__fig{position:relative;margin:0;max-width:min(1500px,100%);max-height:100%;display:grid;gap:14px}
.lb__img{max-width:100%;max-height:calc(100vh - 140px);max-height:calc(100svh - 140px);width:auto;height:auto;margin:0 auto;border-radius:14px;background:#fff;box-shadow:var(--sh-3)}
.lb__cap{color:#fff;text-align:center;font-family:var(--f-display);font-size:15px}
.lb__cap small{display:block;font-family:var(--f-body);font-size:12.5px;color:rgba(255,255,255,.65);margin-top:4px}
.lb__close,.lb__nav{position:absolute;z-index:2;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.lb__close{top:clamp(12px,2vw,24px);right:clamp(12px,2vw,24px)}
.lb__nav{top:50%;transform:translateY(-50%)}
.lb__nav--prev{left:clamp(10px,2vw,28px)}
.lb__nav--next{right:clamp(10px,2vw,28px)}
.lb svg{width:20px;height:20px}

/* ---------- Cookie-Banner ---------- */
.cc{position:fixed;z-index:95;left:24px;bottom:24px;width:min(440px,calc(100% - 32px));padding:24px;border-radius:24px;color:var(--ink);background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(246,244,239,.9));border:1px solid rgba(255,255,255,.95);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);box-shadow:0 30px 80px -24px rgba(10,9,7,.5);opacity:0;transform:translateY(16px);transition:opacity .45s var(--ease),transform .55s var(--ease-out)}
.cc.is-open{opacity:1;transform:none}
.cc h2{font-size:1.35rem;font-weight:400;margin-bottom:8px}
.cc p{font-size:13.5px;line-height:1.6;color:var(--text-soft);margin-bottom:16px}
.cc p a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.cc__opts{display:grid;gap:10px;margin-bottom:16px}
.cc__opt{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-radius:14px;background:rgba(13,13,12,.04);border:1px solid rgba(13,13,12,.07);cursor:pointer}
.cc__opt>span:first-child{display:grid;gap:2px;font-size:12.5px;color:var(--text-soft);line-height:1.45}
.cc__opt strong{font-size:14px;color:var(--ink);font-weight:600}
.switch{position:relative;flex:none;width:44px;height:26px}
.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.switch i{position:absolute;inset:0;border-radius:999px;background:#cfcac0;transition:background .3s}
.switch i::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .3s var(--ease-out)}
.switch input:checked+i{background:var(--ink)}
.switch input:checked+i::after{transform:translateX(18px)}
.switch input:disabled+i{opacity:.55}
.cc__btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cc__btn{height:48px;border-radius:999px;font-family:var(--f-display);font-size:14.5px;font-weight:500;padding:0 14px;white-space:nowrap}
.cc__btn--deny{color:var(--ink);background:#fff;border:1px solid rgba(13,13,12,.2)}
.cc__btn--accept{color:#fff;background:linear-gradient(180deg,#34322e,#11110f)}
.cc__save{grid-column:1/-1}
.cc__more{margin-top:12px;font-size:13px;color:var(--text-soft);text-decoration:underline;text-underline-offset:3px}
.cc-fab{position:fixed;z-index:50;left:20px;bottom:20px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--ink);background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--sh-1);transition:transform .4s var(--ease-out)}
.cc-fab:hover{transform:scale(1.06)}
.cc-fab svg{width:22px;height:22px}

/* ---------- Maus-Lichtschein ---------- */
.glow{position:absolute;z-index:0;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,244,224,.13) 0%,rgba(255,244,224,.05) 35%,rgba(255,244,224,0) 70%);opacity:0;transition:opacity .6s;will-change:transform}
.has-glow{position:relative;overflow:hidden}
.has-glow>.wrap{position:relative;z-index:1}

/* ---------- Einblendungen ---------- */
.js [data-reveal]{opacity:0;transform:translateY(30px);filter:blur(8px);transition:opacity 1s var(--ease-out),transform 1.2s var(--ease-out),filter 1s var(--ease-out);transition-delay:calc(var(--d,0) * 90ms)}
.js [data-reveal].is-in{opacity:1;transform:none;filter:none}
.js [data-words] .wd{display:inline-block;opacity:0;transform:translateY(.45em);filter:blur(10px);transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out),filter .9s var(--ease-out);transition-delay:calc(var(--i) * 55ms)}
.js [data-words].is-in .wd{opacity:1;transform:none;filter:none}

/* ---------- Funnel-Seiten ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;min-height:100svh}
.split__media{position:relative;overflow:hidden;background:#1d1c1a}
.split__media>picture,.split__media>picture img{position:absolute;inset:0;width:100%;height:100%}
.split__media>picture img{object-fit:cover}
.split__brand{position:absolute;left:28px;top:28px;z-index:2;width:64px;padding:10px;border-radius:14px;background:rgba(14,14,12,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2)}
.split__body{display:flex;align-items:center;padding:clamp(40px,6vw,96px)}
.split__body>div{max-width:560px}
.split h1,.stage h1,.mini h1{font-size:clamp(2.2rem,4vw,3.6rem);margin-bottom:18px}
.progress{margin:30px 0}
.progress__top{display:flex;justify-content:space-between;font-family:var(--f-display);font-size:14px;color:var(--text-soft);margin-bottom:10px}
.progress__top b{color:var(--ink);font-weight:500}
.progress__track{height:8px;border-radius:999px;background:rgba(13,13,12,.08);overflow:hidden}
.progress__bar{height:100%;width:90%;border-radius:999px;background:linear-gradient(90deg,var(--sand-3),var(--ink));animation:barIn 1.6s var(--ease-out) both}
@keyframes barIn{from{width:0}}
.fsteps{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:12px}
.fstep{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start;padding:16px;border-radius:16px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85)}
.fstep__ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-size:15px;line-height:1;background:rgba(13,13,12,.06);color:var(--text-soft)}
.fstep__ic svg{width:18px;height:18px}
.fstep strong{display:block;font-family:var(--f-display);font-weight:400;font-size:16.5px;margin-bottom:2px}
.fstep span{font-size:14px;color:var(--text-soft)}
.fstep--done .fstep__ic{background:#6f8f6a;color:#fff}
.fstep--now{background:#fff;box-shadow:var(--sh-2)}
.fstep--now .fstep__ic{background:linear-gradient(180deg,#34322e,#11110f);color:#fff}
.hint{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--text-soft);padding:14px 16px;border-radius:14px;background:rgba(13,13,12,.04)}
.hint svg{width:20px;height:20px;flex:none;margin-top:2px}
.funnel-ftr{display:flex;flex-wrap:wrap;gap:18px;margin-top:34px;font-size:13px;color:var(--text-soft)}
.funnel-ftr a,.funnel-ftr button{text-decoration:underline;text-underline-offset:3px;color:inherit;font-size:13px}
.stage{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:100px 20px 40px;color:#fff;overflow:hidden}
.stage__bg,.stage__bg picture,.stage__bg img{position:absolute;inset:0;width:100%;height:100%}
.stage__bg img{object-fit:cover}
.stage__bg::after{content:"";position:absolute;inset:0;background:radial-gradient(900px 600px at 50% 50%,rgba(8,8,7,.25),rgba(8,8,7,.7))}
.stage__brand{position:absolute;left:28px;top:28px;z-index:2;width:64px;padding:10px;border-radius:14px;background:rgba(14,14,12,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2)}
.glass{position:relative;z-index:2;width:min(620px,100%);padding:clamp(26px,4vw,48px);border-radius:var(--r-xl);background:rgba(14,14,12,.45);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);box-shadow:var(--sh-3)}
.glass .lead{color:rgba(255,255,255,.85)}
.ticks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0}
.tick{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:16px;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.tick>span:first-child{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--ink)}
.tick svg{width:18px;height:18px}
.tick strong{display:block;font-family:var(--f-display);font-weight:400;font-size:15.5px}
.tick em{font-size:13px;color:rgba(255,255,255,.72)}
.contact-mail{display:block;margin-top:12px;font-size:13.5px;color:rgba(255,255,255,.75)}
.glass .funnel-ftr{color:rgba(255,255,255,.7)}
.mini-hdr{padding:28px var(--gutter)}
.mini-hdr a{display:block;width:60px}
.mini{display:grid;place-items:center;padding:20px var(--gutter) 60px;min-height:70vh}
.mini__card{width:min(620px,100%);padding:clamp(28px,4vw,52px);border-radius:var(--r-xl);background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.65));border:1px solid rgba(255,255,255,.95);box-shadow:var(--sh-2);text-align:center}
.mini__icon{width:56px;height:56px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#34322e,#11110f)}
.mini__icon svg{width:24px;height:24px}
.mini .funnel-ftr{justify-content:center}
.legal{padding:150px 0 100px}
.legal .wrap{max-width:calc(900px + 2*var(--gutter))}
.legal h1{font-size:clamp(2.4rem,4.4vw,3.8rem);margin-bottom:34px}
.legal h2{font-size:1.6rem;font-weight:400;margin:44px 0 14px}
.legal h3{font-size:1.2rem;font-weight:500;margin:28px 0 10px;letter-spacing:-.01em}
.legal p,.legal li{font-size:15.5px;color:#3c3a35}
.legal a{text-decoration:underline;text-underline-offset:3px}
.legal ul{padding-left:20px}
.legal__back{display:inline-flex;align-items:center;gap:8px;margin-bottom:28px;font-family:var(--f-display);font-size:14px;color:var(--text-soft)}
.legal-hdr{position:fixed;z-index:60;left:var(--gutter);top:var(--hdr-top)}
.legal-hdr a{display:block;width:52px;padding:8px;border-radius:14px;background:rgba(16,16,14,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}

/* ===================== Tablet ===================== */
@media (max-width:1180px){
  .hdr__nav a{padding:10px 12px;font-size:14px}
}
@media (max-width:1023px){
  .hdr{grid-template-columns:1fr auto}
  .hdr__nav,.hdr__cta{display:none}
  .hdr__burger{display:block}
  .sec-head--split{grid-template-columns:1fr}
  .sec-head--split .lead{justify-self:start}
  .units__grid{grid-template-columns:1fr}
  .units__grid .unit-cards{display:none}
  .units__hint{display:block}
  .unit-card{display:none}
  .unit-card.in-sheet{display:block;position:fixed;z-index:92;left:0;right:0;bottom:0;max-height:88vh;max-height:88svh;overflow-y:auto;border-radius:28px 28px 0 0;padding:30px 22px calc(26px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#ffffff,#f4f1ea);transform:translateY(105%);transition:transform .55s var(--ease-out);animation:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .unit-card.in-sheet.is-up{transform:none}
  .unit-card.in-sheet::before{content:"";position:absolute;left:50%;top:10px;width:44px;height:4px;margin-left:-22px;border-radius:4px;background:rgba(13,13,12,.18)}
  .unit-card.in-sheet .unit-card__top{padding-right:54px}
  .unit-card.in-sheet .unit-card__close{display:grid;place-items:center;position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;background:rgba(13,13,12,.06);border:1px solid rgba(13,13,12,.12);z-index:3}
  .unit-card__close svg{width:18px;height:18px}
  .sheet-backdrop{position:fixed;inset:0;z-index:91;background:rgba(10,10,9,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .4s}
  .sheet-backdrop.is-on{opacity:1}
  .shape__grid,.privacy__grid,.loc__grid{grid-template-columns:1fr}
  .shape__media{aspect-ratio:4/4.4;max-width:620px}
  .build__head{grid-template-columns:1fr}
  .contact__grid{grid-template-columns:1fr}
  .person__img{aspect-ratio:1/1}
  .person{max-width:520px}
  .equip__more{grid-template-columns:1fr 1fr}
  .equip__more li:nth-child(3){padding-left:0;border-left:0}
  .equip__more li:nth-child(n+3){margin-top:22px;border-top:1px solid rgba(13,13,12,.1)}
  .view__meter{display:none}
  .gal__item{width:min(78vw,820px)}
}

/* ===================== Mobil ===================== */
@media (max-width:767px){
  body{font-size:16px}
  :root{--hdr-top:12px}
  .hdr__brand{width:48px;height:48px;padding:7px}
  .hdr__burger{width:48px;height:48px}
  .hdr__burger span{left:15px;right:15px}
  .hdr__burger span:nth-child(1){top:19px}
  .hdr__burger span:nth-child(2){top:27px}
  .menu__close{width:48px;height:48px}
  .lead{font-size:1.04rem}
  .h2{font-size:clamp(2.1rem,9.4vw,2.9rem)}
  .hero__intro{bottom:calc(30px + env(safe-area-inset-bottom,0px))}
  .hero__title{font-size:clamp(2.6rem,12.4vw,3.6rem);letter-spacing:-.035em}
  .hero__line--soft{font-size:.5em}
  .hero__lead{font-size:1rem;margin-bottom:18px;max-width:30ch}
  .hero__price{font-size:13.5px;margin-bottom:20px;padding:9px 14px}
  .hero__price b{font-size:15.5px}
  .hero__ctas .btn{--bh:50px;padding:0 22px;font-size:15px}
  .hero__ctas .btn--glass{display:none}
  .hero__scroll{display:none}
  .hero__shade{background:linear-gradient(180deg,rgba(8,8,7,.55) 0%,rgba(8,8,7,0) 22%),linear-gradient(0deg,rgba(8,8,7,.9) 0%,rgba(8,8,7,.55) 34%,rgba(8,8,7,0) 62%)}
  .chap{left:20px;right:20px;top:auto;bottom:118px;transform:none;max-width:none}
  .chap__title{font-size:clamp(2.1rem,9.6vw,2.8rem)}
  .chap__text{font-size:15.5px}
  .hero__chapshade{background:linear-gradient(0deg,rgba(8,8,7,.82) 0%,rgba(8,8,7,.45) 36%,rgba(8,8,7,0) 62%)}
  .hero__progress{bottom:calc(16px + env(safe-area-inset-bottom,0px));gap:2px;padding:5px}
  .hero__seg{padding:6px 9px;font-size:11px}
  .hero__seg b{display:none}
  .hero__seg i{left:9px;right:9px}
  .hero__note{bottom:auto;top:76px;right:12px}
  .hero__final{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .hero__final p{font-size:14px;padding:10px 16px}
  .statement__text{font-size:clamp(1.6rem,7vw,2.1rem);line-height:1.22}
  .facts{display:grid;grid-template-columns:1fr 1fr;gap:28px 18px}
  .fact__v{font-size:clamp(2.2rem,10vw,2.8rem)}
  .fact>span{font-size:13.5px}
  .frame{height:150vh}
  .frame__win{clip-path:inset(18% 14% 18% 14% round 22px)}
  .frame__win img{object-position:78% 50%}
  .frame__label{bottom:6vh;font-size:.98rem;width:calc(100% - 40px);border-radius:18px;padding:12px 16px}
  .view{height:92svh;min-height:560px}
  .view__content{bottom:28px}
  .view__content h2{font-size:clamp(2.1rem,9.6vw,2.8rem)}
  .view__content p{font-size:15px;margin-bottom:20px}
  .view__units{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .view__unit{padding:10px 12px;border-radius:14px}
  .view__unit b{font-size:14.5px;white-space:nowrap}
  .view__unit small{font-size:11.5px;white-space:nowrap}
  .view__unit .vu-floor,.view__unit .vu-h{display:none}
  .view__hint{top:24%;padding:10px 16px;font-size:13px}
  .view__note{bottom:auto;top:76px}
  .gal__track{flex-direction:column;gap:0;padding:0 16px}
  .gal__item{width:100%;position:sticky;top:calc(84px + var(--k,0) * 12px);margin-bottom:22px}
  .gal__btn{aspect-ratio:4/3;border-radius:22px;clip-path:inset(0 round 22px)}
  .gal__btn img{transform:none}
  .gal__cap{left:18px;bottom:16px;font-size:1.08rem;max-width:62%}
  .gal__bar,.gal__count{display:none}
  .house{padding:22px 12px 0;border-radius:26px}
  .house__lbl{display:none}
  .house__bld{width:100%}
  .hunit{min-height:74px}
  .house__legend{gap:16px;font-size:12.5px}
  .units__table{font-size:13px;margin-top:44px;table-layout:auto}
  .units__table th,.units__table td{padding:12px 5px}
  .units__table th:nth-child(2),.units__table td:nth-child(2),.units__table th:nth-child(3),.units__table td:nth-child(3){display:none}
  .units__table td:first-child{font-size:.98rem}
  .units__table th:last-child,.units__table td:last-child{padding-right:0}
  .unit-card__data{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .unit-card__data dd{font-size:1.18rem;white-space:normal}
  .unit-card__rooms ul{columns:1}
  .unit-card__btns .btn{flex:1 1 100%}
  .shape__tab{grid-template-columns:36px 1fr;padding:16px 0}
  .shape__media{aspect-ratio:4/3.1}
  .shape__proof b{font-size:2.6em}
  .build{padding:24px 20px;border-radius:24px}
  .build__steps{grid-template-columns:1fr;gap:0;padding-left:34px}
  .build__line{left:7px;right:auto;top:8px;bottom:8px;width:2px;height:auto}
  .build__line i{transform-origin:50% 0;transform:scaleY(0)}
  .build__steps li{padding:0 0 22px;grid-template-columns:1fr auto;align-items:baseline}
  .build__steps li::before{left:-34px;top:4px}
  .build__room{grid-template-columns:1fr;gap:10px}
  .build__room>span:last-child{text-align:right;margin-top:-6px}
  .build__bar{margin-top:26px}
  .equip__stage{aspect-ratio:4/3.4;border-radius:24px}
  .spot{width:30px;height:30px;margin:-15px 0 0 -15px}
  .spot-tip{display:none}
  .equip__desc{display:block;min-height:118px;margin-top:16px;padding:18px 20px;border-radius:18px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9);box-shadow:var(--sh-1)}
  .equip__desc strong{display:block;font-family:var(--f-display);font-weight:400;font-size:17px;margin-bottom:4px}
  .equip__desc p{margin:0;font-size:14.5px;color:var(--text-soft)}
  .equip__more{grid-template-columns:1fr}
  .equip__more li,.equip__more li+li{padding:18px 0;border-left:0;margin:0;border-top:0;border-bottom:1px solid rgba(13,13,12,.1)}
  .arrive{padding-left:42px;gap:18px}
  .arrive li::before{left:-42px}
  .privacy__media{aspect-ratio:4/3.4}
  .loc__dest span{font-size:1.9rem}
  .loc__map{aspect-ratio:560/640;border-radius:24px}
  .ticker__item{padding:0 22px}
  .sat{height:70svh}
  .steps3{grid-template-columns:1fr}
  .service{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;text-align:center}
  .service b{font-size:2rem}
  .service span{font-size:12.5px}
  .person__body{padding:22px 22px 24px}
  .finale{align-items:flex-end}
  .finale h2{font-size:clamp(2.5rem,11.4vw,3.4rem)}
  .finale__content{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
  .ftr__grid{grid-template-columns:1fr;text-align:center;gap:30px}
  .ftr__brand img{margin:0 auto 18px}
  .ftr__links{justify-self:center;text-align:center;grid-auto-flow:column;gap:18px}
  .ftr__links a,.ftr__links button{text-align:center;font-size:13.5px}
  .ftr__bottom{flex-direction:column;text-align:center;align-items:center;padding-bottom:80px}
  .sticky-cta{display:block}
  .cc{left:12px;right:12px;bottom:12px;width:auto;padding:20px}
  .cc-fab{display:none}
  .split{grid-template-columns:1fr}
  .split__media{height:42svh}
  .split__brand,.stage__brand{left:16px;top:16px;width:54px}
  .ticks{grid-template-columns:1fr}
  .glass{padding:22px}
  .legal{padding:110px 0 70px}
}
@media (max-width:380px){
  .hunit b{font-size:1.45rem}
  .hero__title{font-size:2.5rem}
  .service b{font-size:1.75rem}
  .units__table .st i{display:none}
}

/* ===================== Reduzierte Bewegung ===================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js [data-reveal],.js [data-words] .wd{opacity:1;transform:none;filter:none}
  .js .statement__text .w{opacity:1}
  .frame{height:auto}
  .frame__sticky{position:relative;height:70vh}
  .frame__win{clip-path:inset(0 round 0)}
  .frame__win img{transform:none}
  .frame__label{opacity:1}
}

@media (max-width:899px){
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:599px){
  .tiles{grid-template-columns:1fr;gap:16px}
  .tile{padding:8px 8px 20px}
  .tile__img{aspect-ratio:16/10;margin-bottom:16px}
  .tile h4{margin:0 10px 5px}
  .tile p{margin:0 10px}
}

@media (max-width:1023px){
  .shape__grid{gap:0}
  .shape__text{display:contents}
  .shape__text h2{order:1}
  .shape__text .lead{order:2}
  .shape__media{order:3;width:100%;aspect-ratio:4/3.1;margin-bottom:12px}
  .shape__tabs{order:4}
  .shape__proof{order:5}
}
.view__mini{display:none}
@media (max-width:767px){
  .view{height:auto;min-height:0;display:flex;flex-direction:column}
  .view__pano{position:relative;inset:auto;flex:none;height:58svh;min-height:360px;max-height:540px}
  .view__shade{inset:0 0 auto 0;height:58svh;min-height:360px;max-height:540px;background:linear-gradient(180deg,rgba(8,8,7,.5) 0%,rgba(8,8,7,0) 26%,rgba(8,8,7,0) 58%,var(--ink) 100%)}
  .view__mini{display:block;position:relative;z-index:3;margin:-58px var(--gutter) 0;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.4);box-shadow:0 18px 40px -18px rgba(0,0,0,.8);touch-action:none;background:#1b1b19}
  .view__mini img{display:block;width:100%;height:auto;max-width:none}
  .view__mini i{position:absolute;top:0;bottom:0;left:0;width:20%;border:2px solid #fff;border-radius:9px;background:rgba(255,255,255,.08);box-shadow:0 0 0 999px rgba(8,8,7,.42);will-change:transform}
  .view__content{position:relative;bottom:auto;padding-top:28px;padding-bottom:44px}
  .view__hint{top:29svh}
  .view__unit{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.08)}
}

/* Mobil: Header ohne JS-Pin, das Bild bleibt per CSS sticky stehen (ruckelfrei auf iOS und Android) */
@media (prefers-reduced-motion: no-preference) and (max-width: 767px), (prefers-reduced-motion: no-preference) and (max-aspect-ratio: 82/100){
  .js .hero{height:calc(100svh * 4.5);overflow:clip}
  .js .hero__stick{position:sticky;top:0;height:100vh;height:100svh}
}
