*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#F7F8F9; --bgc:#FFFFFF; --bgs:#ECEEF1;
  --ac:#D4AF37; --acl:#E8CC6A;
  --dk:#222222; --dk2:#1C1C1E;
  --mu:#6B7280; --br:rgba(34,34,34,.09); --wh:#FFFFFF;
  --fh:'Outfit',sans-serif; --fb:'Libre Baskerville',Georgia,serif; --fm:'IBM Plex Mono',monospace;
  --mw:1440px; --px:64px;
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--bg);color:var(--dk);font-family:var(--fh);font-size:14px;font-weight:500;line-height:20px;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--mw);margin:0 auto;padding-left:var(--px);padding-right:var(--px)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;background:var(--wh);border-bottom:1px solid var(--br);height:62px;transition:box-shadow .3s}
.nav-inner{max-width:var(--mw);margin:0 auto;padding:0 var(--px);display:flex;align-items:center;justify-content:space-between;height:100%}
.nav.s{box-shadow:0 2px 24px rgba(0,0,0,.07)}
.nav-logo{font-family:var(--fh);font-size:20px;font-weight:700;letter-spacing:.06em;color:var(--dk);text-decoration:none}
.nav-logo span{color:var(--ac)}
.nav-links{display:flex;gap:36px;align-items:center}
.nav-links a{text-decoration:none;color:var(--mu);font-family:var(--fh);font-size:14px;font-weight:500;line-height:20px;position:relative;padding-bottom:2px;transition:color .2s}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--ac);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}
.nav-links a:hover{color:var(--dk)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}

/* BTN */
.btn{display:inline-flex;align-items:center;gap:10px;position:relative;overflow:hidden;background:#222;color:#fff;padding:13px 30px;font-family:var(--fh);font-size:13px;font-weight:600;letter-spacing:.05em;text-decoration:none;border:none;cursor:pointer;transition:background .25s,color .25s,transform .15s;-webkit-font-smoothing:antialiased}
.btn::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);transition:left .6s ease}
.btn:hover{background:var(--ac);color:var(--dk);transform:translateY(-1px)}
.btn:hover::before{left:150%}
.btn svg{transition:transform .2s;flex-shrink:0}
.btn:hover svg{transform:translateX(4px)}
.btn-ghost{font-family:var(--fh);font-size:13px;color:var(--mu);text-decoration:none;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:8px;transition:color .2s}
.btn-ghost:hover{color:var(--dk)}

/* HERO — NEW LAYOUT (Alinex-Schema) */
/* hero base defined below with min-height */
.hero-top{display:grid;grid-template-columns:3fr 2fr;max-width:var(--mw);margin:0 auto;padding:64px var(--px) 32px;gap:48px;align-items:end}
.hero-headline{padding-right:24px}
.hero-title{font-family:var(--fh);font-size:clamp(40px,4vw,72px);font-weight:400;line-height:1;letter-spacing:-.025em;color:var(--dk);opacity:0;animation:fu .8s ease .2s forwards}
.hero-title em{font-family:var(--fb);font-style:italic;font-weight:400;color:var(--ac);display:inline}
.hero-dash{font-weight:400;margin-right:8px;color:var(--dk);display:block;font-size:clamp(40px,4vw,72px);line-height:0.5}
.hero-details{padding-top:0;opacity:0;animation:fu .8s ease .5s forwards}
.hero-address{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--br)}
.hero-addr-label{font-family:var(--fh);font-size:15px;font-weight:600;color:var(--dk);display:block;margin-bottom:6px}
.hero-addr-sub{font-family:var(--fm);font-size:11px;letter-spacing:.08em;color:var(--mu);display:flex;gap:16px}
.hero-addr-sub span{display:flex;align-items:center;gap:6px}
.hero-addr-sub span::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--mu);flex-shrink:0}
.hero-addr-sub span:first-child::before{display:none}
.hero-desc{font-family:var(--fh);font-size:16px;font-weight:400;color:var(--mu);line-height:24px;letter-spacing:-.025em;margin-bottom:24px;max-width:420px}
.hero-cta{background:var(--dk);color:var(--wh);padding:14px 32px;font-size:14px}
.hero-cta:hover{background:var(--ac);color:var(--dk)}

/* HERO SLIDER — contained width */
.hero{padding-top:62px;padding-bottom:60px;background:var(--wh)}
.hero-slider{position:relative;height:calc(100vh - 62px - 340px);min-height:300px;max-width:var(--mw);margin:0 auto;padding:0 var(--px);opacity:0;animation:fi 1.2s ease .3s forwards}
.hero-slider-inner{position:relative;width:100%;height:100%;overflow:hidden}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .8s cubic-bezier(.25,.46,.45,.94);pointer-events:none}
.hero-slide.active{opacity:1;pointer-events:auto}
.hero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero-slider-ui{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:20px 32px;z-index:10;background:linear-gradient(to top,rgba(28,28,30,.55),transparent)}
.hero-slide-counter{font-family:var(--fm);font-size:14px;letter-spacing:.08em;color:rgba(255,255,255,.6)}
.hero-slide-current{color:#fff;font-weight:500;font-size:20px}
.hero-dots{display:flex;gap:8px}
.hero-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.3);cursor:pointer;padding:0;transition:background .3s,transform .3s}
.hero-dot.active{background:var(--ac);transform:scale(1.3)}
.hero-dot:hover:not(.active){background:rgba(255,255,255,.6)}
.hero-slide-label{font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5)}

/* EYEBROW */
.ey{font-family:var(--fm);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ac);margin-bottom:20px;display:flex;align-items:center;gap:14px}
.ey::before{content:'';width:24px;height:1px;background:var(--ac)}

/* FACTS */
.facts{background:var(--dk2);position:relative;overflow:hidden}
.facts::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.facts-inner{display:grid;grid-template-columns:repeat(5,1fr);max-width:var(--mw);margin:0 auto;padding:24px var(--px)}
.fact{padding:24px;text-align:center;border-right:1px solid rgba(255,255,255,.07);transition:background .2s;position:relative;z-index:1}
.fact:last-child{border-right:none}
.fact:hover{background:rgba(255,255,255,.04)}
.fact-n{font-family:var(--fh);font-size:32px;font-weight:600;color:var(--acl);line-height:1;margin-bottom:6px;letter-spacing:-.01em}
.fact-l{font-family:var(--fm);font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.38);text-transform:uppercase}

/* SHARED */
.sec{padding:80px 0}
.sec>.wrap{max-width:var(--mw);margin:0 auto;padding:0 var(--px)}
#lage .sec-inner{max-width:var(--mw);margin:0 auto;padding:80px var(--px)}
.st{font-family:var(--fh);font-size:32px;font-weight:500;line-height:38.4px;letter-spacing:-.025em;margin-bottom:16px}
.st em{font-family:var(--fb);font-style:italic;font-weight:400;color:var(--ac)}
.divider{height:1px;background:var(--br);max-width:calc(var(--mw) - var(--px) * 2);margin:0 auto}

/* ZIELGRUPPEN */
#zielgruppen{background:var(--bgc);border-top:1px solid var(--br);border-bottom:1px solid var(--br)}
.zg-hd{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px}
.zg-sub{font-family:var(--fh);font-size:16px;font-weight:400;color:var(--mu);line-height:24px;letter-spacing:-.025em;max-width:400px;text-align:right}
.zg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.zg-card{padding:36px 32px;border:1px solid var(--br);background:var(--bg);transition:border-color .3s,box-shadow .3s}
.zg-card:hover{border-color:rgba(212,175,55,.35);box-shadow:0 12px 40px -12px rgba(0,0,0,.08)}
.zg-title{font-family:var(--fh);font-size:18px;font-weight:600;color:var(--dk);letter-spacing:-.02em;border-bottom:2px solid var(--ac);display:inline-block;padding-bottom:6px;margin-bottom:16px}
.zg-desc{font-family:var(--fh);font-size:14px;font-weight:400;color:var(--mu);line-height:22px}

/* PROJEKT */
.projekt{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:stretch}
.ptext p{font-family:var(--fh);color:var(--mu);line-height:24px;margin-bottom:16px;font-size:16px;font-weight:400;letter-spacing:-.025em}
.usps{margin-top:36px}
.usp{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--br)}
.usp:first-child{border-top:1px solid var(--br)}
.usp-ico{width:34px;height:34px;flex-shrink:0;background:var(--bgs);display:flex;align-items:center;justify-content:center;color:var(--ac);transition:background .2s}
.usp:hover .usp-ico{background:rgba(212,175,55,.12)}
.usp-t{font-family:var(--fh);font-weight:500;font-size:14px;line-height:20px;margin-bottom:2px}
.usp-d{font-family:var(--fh);font-size:12px;font-weight:400;line-height:16px;color:var(--mu)}
.pvis{position:relative}
.pimg-m{width:100%;height:100%;object-fit:cover;display:block}

/* ═══════════════════════════════════════════
   SHOWCASE CARD (componentry.fun)
═══════════════════════════════════════════ */
#einheiten{background:var(--bgs);position:relative}
.einh-hd{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px;position:relative;z-index:1}
.sc-grid-flat{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;position:relative;z-index:1}

/* FLOOR LAYOUT — sticky sidebar */
.floor-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:48px;position:relative;align-items:start}
.floor-nav{grid-column:1;grid-row:1;position:sticky;position:-webkit-sticky;top:120px;align-self:start;height:max-content;display:flex;flex-direction:column;gap:0}
.floor-nav.is-fixed{position:fixed;top:120px;left:var(--floor-nav-left,0);width:var(--floor-nav-width,200px);z-index:40}
.floor-nav.is-bottom{position:absolute;top:auto;bottom:0;left:0;width:200px}
.floor-link{display:flex;align-items:center;gap:12px;padding:12px 0;font-family:var(--fm);font-size:12px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);text-decoration:none;transition:color .3s}
.floor-link.active{color:var(--dk);font-weight:500}
.floor-dot{width:8px;height:8px;border-radius:50%;border:2px solid var(--br);background:transparent;transition:background .3s,border-color .3s;flex-shrink:0}
.floor-link.active .floor-dot{background:var(--ac);border-color:var(--ac)}
.floor-content{grid-column:2;display:flex;flex-direction:column;gap:64px;min-width:0}
.floor-section{scroll-margin-top:100px}
.floor-title{font-family:var(--fh);font-size:24px;font-weight:500;line-height:32px;letter-spacing:-.025em;margin-bottom:8px;color:var(--dk)}
.floor-desc{font-family:var(--fh);font-size:14px;font-weight:400;color:var(--mu);line-height:20px;margin-bottom:24px}
.floor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}

.sc{background:var(--bgc);border-radius:0;overflow:hidden;cursor:pointer;position:relative;border:1px solid var(--br);transform-style:preserve-3d;will-change:transform;transition:box-shadow .3s ease;opacity:0;transform:translateY(32px);display:flex;flex-direction:column}
.sc.vis{opacity:1;transform:translateY(0)}
.sc:hover{box-shadow:0 20px 60px -16px rgba(0,0,0,.15)}
.sc-glow{position:absolute;inset:0;z-index:10;pointer-events:none;border-radius:0;background:radial-gradient(220px circle at var(--cx,50%) var(--cy,50%),rgba(212,175,55,.08),transparent 70%);opacity:0;transition:opacity .3s}
.sc:hover .sc-glow{opacity:1}

.sc-img-wrap{position:relative;overflow:hidden;aspect-ratio:4/3;background:#1a1a1d}
.sc-slide{position:absolute;inset:0;opacity:0;transition:opacity .4s ease;pointer-events:none}
.sc-slide.active{opacity:1;pointer-events:auto}
.sc-grundriss{object-fit:cover;background:#fff}
.sc-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:8;width:30px;height:30px;border-radius:50%;border:none;background:rgba(255,255,255,.85);color:var(--dk);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s,background .2s;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.sc-carousel:hover .sc-arrow{opacity:1}
.sc-arrow:hover{background:var(--wh)}
.sc-prev{left:10px}
.sc-next{right:10px}
.sc-img{width:100%;height:110%;object-fit:cover;display:block;will-change:transform;transform:translateY(0) scale(1.1);transition:transform .12s ease}
.sc-img-grad{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(17,17,20,0) 30%,rgba(17,17,20,.88) 100%);pointer-events:none}
.sc-tag{position:absolute;top:14px;left:14px;font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:4px;z-index:5}
.sc-tag.av{background:var(--dk);color:var(--wh);border:none}
.sc-tag.re{background:rgba(107,114,128,.2);color:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.1)}
.sc-num{position:absolute;bottom:12px;right:16px;font-family:var(--fh);font-size:40px;font-weight:700;color:rgba(255,255,255,.1);line-height:1;z-index:5;letter-spacing:-.03em}
.sc-hw{position:absolute;bottom:0;left:0;right:0;padding:16px 16px 14px;z-index:6;transform:translateY(6px);opacity:0;transition:transform .45s ease,opacity .45s ease}
.sc.vis .sc-hw{transform:translateY(0);opacity:1;transition-delay:.15s}
.sc-h{font-family:var(--fh);font-size:20px;font-weight:400;color:var(--wh);line-height:28px;letter-spacing:normal;margin-bottom:2px}
.sc-fl{font-family:var(--fm);font-size:10px;letter-spacing:.1em;color:rgba(255,255,255,.45);text-transform:uppercase}

.sc-body{padding:16px;flex:1;display:flex;flex-direction:column}
.sc-cta{margin-top:auto}
.sc-pills{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;min-height:48px;margin-bottom:14px}
.sc-pill{font-family:var(--fm);font-size:10px;letter-spacing:.08em;color:var(--mu);background:rgba(34,34,34,.04);border:1px solid var(--br);padding:3px 10px;border-radius:100px;transition:border-color .2s,color .2s}
.sc:hover .sc-pill{border-color:rgba(212,175,55,.3);color:var(--dk)}
.sc-pr{font-family:var(--fh);font-size:24px;font-weight:500;color:var(--dk);letter-spacing:-.025em;margin-bottom:2px;line-height:32px}
.sc-ps{font-family:var(--fm);font-size:10px;letter-spacing:.08em;color:var(--mu);margin-bottom:14px}
.sc-cta{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--dk);border:1px solid var(--dk);padding:9px 14px;font-family:var(--fh);font-size:12px;font-weight:500;letter-spacing:.05em;color:var(--wh);text-decoration:none;cursor:pointer;border-radius:0;position:relative;overflow:hidden;transition:background .25s,border-color .25s,color .25s}
.sc-cta::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}
.sc:hover .sc-cta::before{left:140%}
.sc:hover .sc-cta{background:var(--ac);border-color:var(--ac);color:var(--dk)}
.sc-arr{font-size:14px;transition:transform .2s}
.sc:hover .sc-arr{transform:translateX(3px)}
.sc.res .sc-pr{color:var(--mu)}
.sc.res .sc-cta{background:var(--mu);border-color:var(--mu);color:var(--wh)}
.sc.res .sc-cta::before{display:none}

/* CTA BANNER */
#cta-banner{background:var(--wh)}
.cta-box{background:var(--dk2);padding:64px;text-align:center;position:relative;overflow:hidden}
.cta-box::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.cta-ico{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:var(--acl);margin:0 auto 24px;position:relative;z-index:1}
.cta-title{font-family:var(--fh);font-size:32px;font-weight:500;line-height:1.2;letter-spacing:-.025em;color:var(--wh);margin-bottom:12px;position:relative;z-index:1}
.cta-desc{font-family:var(--fh);font-size:15px;font-weight:400;color:rgba(255,255,255,.5);line-height:24px;margin-bottom:32px;max-width:480px;margin-left:auto;margin-right:auto;position:relative;z-index:1}
.cta-btns{display:flex;gap:16px;justify-content:center;position:relative;z-index:1}
.cta-btn-primary{background:var(--ac);color:var(--dk)}
.cta-btn-primary:hover{background:var(--wh);color:var(--dk)}
.cta-btn-secondary{color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.15);padding:13px 30px;font-size:13px;font-weight:500;letter-spacing:.05em}
.cta-btn-secondary:hover{color:var(--wh);border-color:rgba(255,255,255,.4)}

/* GALERIE */
#galerie{padding:0 0 80px}
.gal-hd{max-width:var(--mw);margin:0 auto;padding:80px var(--px) 32px;display:flex;justify-content:space-between;align-items:flex-end;background:var(--bg)}
.ggrid{max-width:var(--mw);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:280px 280px;gap:4px;padding:0 var(--px)}
.gi{overflow:hidden;position:relative;cursor:pointer}
.gi:first-child{grid-row:1/3}
.gi img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.25,.46,.45,.94)}
.gi:hover img{transform:scale(1.06)}
.gi-ov{position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(28,28,30,.72) 0%,rgba(28,28,30,0) 50%);opacity:0;transition:opacity .35s ease}
.gi:hover .gi-ov{opacity:1}
.gi-border{position:absolute;z-index:3;pointer-events:none;inset:0;transition:all .35s ease;border:none}
.gi-border.ft{border-top:2px solid var(--ac)}
.gi-border.fr{border-right:2px solid var(--ac)}
.gi-border.fb{border-bottom:2px solid var(--ac)}
.gi-border.fl{border-left:2px solid var(--ac)}
.gi-lbl{position:absolute;bottom:20px;left:20px;z-index:4;font-family:var(--fm);font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.9);text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .35s ease,transform .35s ease}
.gi:hover .gi-lbl{opacity:1;transform:translateY(0)}

/* AUSSTATTUNG */
#ausstattung{background:var(--bgs);position:relative}
.aus-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;position:relative;z-index:1}
.aus-img-col{position:relative}
.aus-img-wrap{position:relative}
.aus-accent{position:absolute;top:-12px;left:-12px;width:48px;height:48px;border-left:3px solid var(--ac);border-top:3px solid var(--ac);z-index:2}
.aus-img-wrap img{width:100%;display:block;object-fit:cover;max-height:520px}
.aus-badge{position:absolute;bottom:24px;left:-16px;background:var(--dk2);color:var(--wh);padding:20px 24px;z-index:2}
.aus-badge-val{font-family:var(--fh);font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:2px}
.aus-badge-label{font-family:var(--fm);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.aus-title{font-size:38px;line-height:1.15;margin-bottom:32px}
.aus-rows{margin-bottom:32px}
.aus-row{display:flex;justify-content:space-between;align-items:baseline;padding:14px 8px;margin:0 -8px;border-bottom:1px solid var(--br);gap:16px;transition:background .2s,padding-left .25s}
.aus-row:hover{background:rgba(212,175,55,.06);padding-left:16px}
.aus-row:first-child{border-top:1px solid var(--br)}
.aus-k{font-family:var(--fh);font-size:15px;font-weight:500;color:var(--dk);white-space:nowrap}
.aus-v{font-family:var(--fm);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);text-align:right}
.aus-note{font-family:var(--fh);font-size:14px;font-weight:400;color:var(--mu);line-height:22px;font-style:italic}

/* IMPRESSIONEN */
#impressionen{background:var(--bgc)}
.imp-hd{margin-bottom:40px}
.imp-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:280px 220px;gap:6px}
.imp-item{position:relative;overflow:hidden;cursor:pointer}
.imp-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}
.imp-item:hover img{transform:scale(1.05)}
.imp-lg{grid-column:1/3;grid-row:1/3}
.imp-label{position:absolute;bottom:0;left:0;right:0;padding:14px 16px;font-family:var(--fm);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.9);background:linear-gradient(to top,rgba(28,28,30,.7),transparent);opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s}
.imp-item:hover .imp-label{opacity:1;transform:translateY(0)}

/* LAGE */
#lage{background:var(--dk2);position:relative;overflow:hidden}
#lage::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
#lage .ey{color:var(--acl)}
#lage .ey::before{background:var(--acl)}
#lage .st{color:var(--wh)}
.lage-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:stretch;position:relative;z-index:1}
.lage-p{font-family:var(--fh);color:rgba(255,255,255,.75);line-height:24px;margin-bottom:32px;font-size:16px;font-weight:400;letter-spacing:-.025em}
.lage-list{display:flex;flex-direction:column}
.lage-it{display:flex;align-items:center;gap:18px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.07);transition:padding-left .25s ease}
.lage-it:first-child{border-top:1px solid rgba(255,255,255,.07)}
.lage-it:hover{padding-left:8px}
.lage-ico{font-size:18px;width:32px;text-align:center;color:var(--acl);display:flex;align-items:center;justify-content:center}
.lage-t{font-family:var(--fh);font-weight:500;color:rgba(255,255,255,1);font-size:16px}
.lage-d{font-family:var(--fm);font-size:13px;color:rgba(255,255,255,.7);letter-spacing:.04em}
.map-embed{overflow:hidden;min-height:400px;height:100%}
.map-embed iframe{width:100%;height:100%}

/* SCHRITTE */
#schritte{background:var(--bgs)}
.schr-hd{text-align:center;max-width:700px;margin:0 auto 64px}
.schr-title{font-family:var(--fh);font-size:36px;font-weight:500;line-height:1.2;letter-spacing:-.025em;color:var(--dk);margin-bottom:16px}
.schr-sub{font-family:var(--fh);font-size:16px;font-weight:400;color:var(--mu);line-height:24px;letter-spacing:-.025em}
.schr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;text-align:center}
.schr-step{display:flex;flex-direction:column;align-items:center}
.schr-num{width:64px;height:64px;border-radius:50%;background:var(--ac);color:var(--wh);font-family:var(--fh);font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:24px}
.schr-name{font-family:var(--fh);font-size:18px;font-weight:600;color:var(--dk);margin-bottom:12px;letter-spacing:-.02em}
.schr-desc{font-family:var(--fh);font-size:14px;font-weight:400;color:var(--mu);line-height:22px;max-width:280px}

/* KONTAKT */
#kontakt{background:var(--bgc)}
.kt-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.kt-p{font-family:var(--fh);color:var(--mu);line-height:24px;margin-bottom:32px;font-size:16px;font-weight:400;letter-spacing:-.025em}
.kt-links{display:flex;flex-direction:column;gap:16px;margin-top:40px}
.kt-lnk{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--dk);font-family:var(--fh);font-size:14px;transition:color .2s,gap .2s}
.kt-lnk:hover{color:var(--ac);gap:16px}
.kt-ico{width:36px;height:36px;background:var(--bgc);display:flex;align-items:center;justify-content:center;color:var(--ac);flex-shrink:0;transition:background .2s}
.kt-lnk:hover .kt-ico{background:rgba(212,175,55,.1)}
.kt-card{background:var(--bgc);border:1px solid var(--br);padding:36px;display:flex;flex-direction:column;gap:20px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-family:var(--fh);font-size:13px;font-weight:500;color:var(--dk)}
.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--br);padding:12px 14px;font-family:var(--fh);font-size:14px;color:var(--dk);outline:none;border-radius:0;appearance:none;transition:border-color .25s,box-shadow .25s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(212,175,55,.12)}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B7280' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer}
.field textarea{resize:vertical;min-height:80px}
.kt-radios{display:flex;gap:8px;margin-top:4px}
.kt-radio{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--br);cursor:pointer;font-family:var(--fh);font-size:13px;color:var(--mu);transition:border-color .2s,color .2s,background .2s}
.kt-radio:has(input:checked){border-color:var(--ac);color:var(--dk);background:rgba(212,175,55,.06)}
.kt-radio input{accent-color:var(--ac);margin:0;width:14px;height:14px}
.kt-consent{display:flex;align-items:flex-start;gap:10px;font-family:var(--fh);font-size:12px;color:var(--mu);line-height:18px;cursor:pointer}
.kt-consent input{margin-top:2px;accent-color:var(--ac);flex-shrink:0}
.kt-consent a{color:var(--dk);text-decoration:underline}
.kt-submit{width:100%;padding:16px;background:var(--ac);color:var(--wh);border:none;cursor:pointer;font-family:var(--fh);font-size:15px;font-weight:600;letter-spacing:.03em;transition:background .25s}
.kt-submit:hover{background:#c0a030}
.kt-bt{margin-top:36px;padding-top:28px;border-top:1px solid var(--br)}
.kt-bt-text{font-family:var(--fh);font-size:14px;font-weight:400;color:var(--mu);line-height:22px;margin-bottom:12px}
.kt-bt-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.kt-bt-stat{padding:14px;border:1px solid var(--br);background:var(--bg)}
.kt-bt-val{font-family:var(--fh);font-size:16px;font-weight:600;color:var(--ac);margin-bottom:2px}
.kt-bt-key{font-family:var(--fm);font-size:10px;letter-spacing:.08em;color:var(--mu);text-transform:uppercase}

/* FOOTER */
footer{background:var(--dk2);position:relative;overflow:hidden}
footer::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.03) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.footer-inner{max-width:var(--mw);margin:0 auto;padding:32px var(--px);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}
.f-logo{font-family:var(--fh);font-size:20px;font-weight:700;letter-spacing:.06em;color:var(--wh)}
.f-logo span{color:var(--ac)}
.f-links{display:flex;gap:32px}
.f-links a{font-family:var(--fh);font-size:12px;color:rgba(255,255,255,.25);text-decoration:none;transition:color .2s}
.f-links a:hover{color:rgba(255,255,255,.65)}
.f-copy{font-family:var(--fm);font-size:10px;color:rgba(255,255,255,.18);text-align:right;line-height:1.8;letter-spacing:.04em}

/* ═══════════════════════════════════════════
   LUXURY REVEAL SYSTEM
═══════════════════════════════════════════ */

/* Base reveal — slow, elegant ease. Only .rev gets opacity:0. */
.rev{opacity:0;transform:translateY(32px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.rev.in{opacity:1;transform:none}
.d1{transition-delay:.15s}.d2{transition-delay:.3s}.d3{transition-delay:.45s}

/* Eyebrow gold-line wipe — line animates after parent reveals */
.ey::before{transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.16,1,.3,1) .4s}
.rev.in .ey::before{transform:scaleX(1)}

/* Gold accent underline on italic em after reveal */
.st em{position:relative}
.st em::after{content:'';position:absolute;bottom:-.04em;left:0;right:0;height:1px;background:var(--ac);transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1) .6s}
.rev.in .st em::after{transform:scaleX(1)}

/* Facts strip — standalone reveal (not inside .rev) */
.facts{opacity:0;transition:opacity .8s ease .2s}
.facts.in{opacity:1}

/* Stagger children — items slide up one by one */
.stagger{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.stagger.in{opacity:1;transform:none}

/* Gallery images — scale up from slight zoom */
.gi.rev{opacity:0;transform:scale(.96);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.gi.rev.in{opacity:1;transform:none}

@keyframes fu{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes fi{from{opacity:0}to{opacity:1}}

/* prefers-reduced-motion — respect user preference */
@media(prefers-reduced-motion:reduce){
  .rev,.stagger,.facts,.gi.rev{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
  .ey::before,.st em::after{transform:scaleX(1)!important;transition:none!important}
  .hero-title,.hero-details,.hero-slider{opacity:1!important;transform:none!important;animation:none!important}
}

/* ═══════════════════════════════════════════
   HAMBURGER MENU TOGGLE
═══════════════════════════════════════════ */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;width:40px;height:40px;position:relative;flex-shrink:0}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--dk);position:absolute;left:9px;transition:transform .3s ease,opacity .2s ease}
.nav-toggle span:nth-child(1){top:12px}
.nav-toggle span:nth-child(2){top:19px}
.nav-toggle span:nth-child(3){top:26px}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ═══════════════════════════════════════════
   RESPONSIVE — TABLET (max-width: 1024px)
═══════════════════════════════════════════ */
@media(max-width:1024px){
  :root{--px:32px}

  /* Hero */
  .hero-top{grid-template-columns:1fr;gap:24px;padding:40px var(--px) 24px}
  .hero-headline{padding-right:0}
  .hero-details{padding-top:0}
  .hero-slider{height:50vh;min-height:240px}

  /* Facts */
  .facts-inner{grid-template-columns:repeat(3,1fr);padding:16px var(--px)}
  .fact{padding:16px 12px}
  .fact:nth-child(3){border-right:none}
  .fact:nth-child(4),.fact:nth-child(5){border-top:1px solid rgba(255,255,255,.07)}

  /* Zielgruppen */
  .zg-hd{flex-direction:column;align-items:flex-start;gap:16px}
  .zg-sub{text-align:left;max-width:none}
  .zg-grid{gap:24px}
  .zg-card{padding:28px 24px}

  /* Projekt */
  .projekt{grid-template-columns:1fr;gap:24px}
  .pvis{max-height:400px;overflow:hidden}

  /* Floor layout — horizontal sticky tabs, show/hide on mobile */
  .floor-layout{display:flex;flex-direction:column;gap:0}
  .floor-nav{position:sticky;top:62px;z-index:50;flex-direction:row;flex-wrap:nowrap;gap:0;background:var(--bgs);border-bottom:2px solid var(--br);padding:0 var(--px);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100vw;margin-left:calc(var(--px) * -1);box-sizing:border-box;overscroll-behavior:none;touch-action:pan-x}
  .floor-nav::-webkit-scrollbar{display:none}
  .floor-link{padding:14px 16px;white-space:nowrap;font-size:11px;border-bottom:2px solid transparent;margin-bottom:-2px;gap:6px}
  .floor-link:first-child{padding-left:0}
  .floor-link.active{border-bottom-color:var(--ac);color:var(--dk)}
  .floor-dot{width:6px;height:6px}
  .floor-content{gap:0;padding-top:24px}
  .floor-section{display:none;scroll-margin-top:140px}
  .floor-section.floor-active{display:block}
  .floor-title{font-size:20px;line-height:28px}
  .einh-hd{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:32px}
  .einh-hd .btn{display:none}
  /* Showcase grid */
  .sc-grid-flat{grid-template-columns:1fr}
  .floor-grid{grid-template-columns:1fr}

  /* Gallery */
  .ggrid{grid-template-columns:1fr 1fr;grid-template-rows:220px 220px 220px}
  .gi:first-child{grid-row:auto}

  /* Ausstattung */
  .aus-grid{grid-template-columns:1fr;gap:32px}
  .aus-img-wrap img{max-height:400px}

  /* Impressionen */
  .imp-grid{grid-template-columns:1fr 1fr;grid-template-rows:240px 200px 200px}
  .imp-lg{grid-column:1/3;grid-row:1/2}

  /* Lage */
  .lage-grid{grid-template-columns:1fr;gap:24px}
  .map-embed{min-height:320px}

  /* Schritte */
  .schr-grid{gap:32px}
  .schr-title{font-size:28px}

  /* Kontakt */
  .kt-grid{grid-template-columns:1fr;gap:24px}
  .kt-card{padding:32px 24px}

  /* Footer */
  .footer-inner{flex-wrap:wrap;gap:16px}
  .f-copy{text-align:left}

  /* Section header flex */
  .einh-hd{flex-direction:column;align-items:flex-start;gap:16px}
  .gal-hd{flex-direction:column;align-items:flex-start;gap:16px}
}

/* ═══════════════════════════════════════════
   RESPONSIVE — MOBILE (max-width: 768px)
═══════════════════════════════════════════ */
@media(max-width:768px){
  :root{--px:20px}

  /* NAV — mobile */
  .nav-toggle{display:flex;align-items:center;justify-content:center}
  .nav-links{position:fixed;top:62px;left:0;right:0;bottom:0;background:var(--bg);flex-direction:column;align-items:stretch;gap:0;padding:24px var(--px);transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:199;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .nav-links.open{transform:translateX(0)}
  .nav-links a{padding:16px 0;border-bottom:1px solid var(--br);font-size:16px;color:var(--dk)}
  .nav-links a::after{display:none}
  .nav-links .btn{margin-top:16px;text-align:center;justify-content:center;border-bottom:none;padding:14px 24px}

  /* Hero */
  .hero-top{padding:28px var(--px) 20px;gap:20px}
  .hero-title{font-size:clamp(28px,7vw,48px);color:#222}
  .hero-dash{font-size:clamp(28px,7vw,48px);color:#222}
  .hero-desc{font-size:14px;line-height:22px;max-width:none;color:#6B7280}
  .hero-addr-label{color:#222}
  .hero-addr-sub{color:#6B7280}
  .hero-slider{height:45vh;min-height:200px;padding:0 var(--px)}
  .hero-slider-ui{padding:12px 16px}
  .hero-slide-label{display:none}

  /* Facts */
  .facts-inner{grid-template-columns:repeat(2,1fr);padding:12px var(--px)}
  .fact{padding:14px 8px}
  .fact-n{font-size:22px}
  .fact-l{font-size:9px}
  .fact:nth-child(2){border-right:none}
  .fact:nth-child(3){border-right:1px solid rgba(255,255,255,.07)}
  .fact:nth-child(3),.fact:nth-child(4){border-top:1px solid rgba(255,255,255,.07)}
  .fact:nth-child(4){border-right:none}
  .fact:nth-child(5){grid-column:1/-1;border-top:1px solid rgba(255,255,255,.07);border-right:none}

  /* Zielgruppen */
  .zg-grid{grid-template-columns:1fr;gap:16px}
  .zg-card{padding:24px 20px}
  .zg-hd{margin-bottom:32px;flex-direction:column;align-items:flex-start;gap:12px}
  .zg-sub{text-align:left;max-width:none}

  /* Sections */
  .sec{padding:48px 0}
  .st{font-size:24px;line-height:30px}
  #lage .sec-inner{padding:48px var(--px)}

  /* Floor + Showcase grid */
  .sc-grid-flat{grid-template-columns:1fr}
  .floor-grid{grid-template-columns:1fr}
  .floor-nav{padding:0 var(--px)}
  .floor-link{padding:12px 12px;font-size:10px}
  .floor-link:first-child{padding-left:0}
  .floor-section{scroll-margin-top:130px}
  .floor-title{font-size:18px;line-height:24px}
  .floor-desc{font-size:13px}

  /* CTA Banner */
  .cta-box{padding:40px 24px}
  .cta-title{font-size:24px}
  .cta-btns{flex-direction:column;align-items:center}

  /* Gallery */
  .ggrid{grid-template-columns:1fr;grid-template-rows:repeat(5,200px);gap:3px;padding:0 var(--px)}
  .gal-hd{padding:48px var(--px) 20px}

  /* Ausstattung */
  .aus-grid{gap:24px}
  .aus-title{font-size:28px}
  .aus-img-wrap img{max-height:320px}
  .aus-accent{width:36px;height:36px;top:-8px;left:-8px}

  /* Impressionen */
  .imp-grid{grid-template-columns:1fr;grid-template-rows:repeat(5,180px)}
  .imp-lg{grid-column:1;grid-row:1}

  /* Schritte */
  .schr-grid{grid-template-columns:1fr;gap:40px}
  .schr-title{font-size:24px}
  .schr-hd{margin-bottom:40px}

  /* Kontakt */
  .kt-grid{grid-template-columns:1fr}
  .kt-card{padding:28px 20px}
  .kt-radios{flex-wrap:wrap}
  .kt-bt-stats{grid-template-columns:1fr 1fr}

  /* Footer */
  .footer-inner{flex-direction:column;align-items:flex-start;gap:20px;padding:24px var(--px)}
  .f-links{gap:20px}
  .f-copy{text-align:left;line-height:2}
}

/* ═══════════════════════════════════════════
   RESPONSIVE — SMALL MOBILE (max-width: 480px)
═══════════════════════════════════════════ */
@media(max-width:480px){
  :root{--px:16px}

  .hero-title{font-size:clamp(24px,6.5vw,36px)}
  .hero-dash{font-size:clamp(24px,6.5vw,36px)}
  .hero-addr-sub{flex-wrap:wrap;gap:8px}
  .hero-slider{height:38vh;min-height:180px}

  .facts-inner{grid-template-columns:1fr 1fr}
  .fact-n{font-size:20px}

  .sc-pr{font-size:20px}
  .sc-h{font-size:17px}

  .st{font-size:22px;line-height:28px}

  .kt-lnk{font-size:13px}
  .kt-ico{width:32px;height:32px}
}

/* ═══════════════════════════════════════════
   TOUCH DEVICES — disable hover effects
═══════════════════════════════════════════ */
@media(hover:none){
  .sc{transform:none!important;will-change:auto}
  .sc .sc-img{transform:translateY(0) scale(1)!important;transition:none!important}
  .sc .sc-glow{display:none}
  .sc .sc-hw{transform:translateY(0);opacity:1}
  .gi:hover img{transform:none}
  .gi .gi-ov{display:none}
  .gi .gi-lbl{opacity:1;transform:translateY(0)}
}
