
:root{
  --ivory:#fbf9f4;
  --cream:#f3eee5;
  --paper:#ffffff;
  --ink:#292621;
  --muted:#6d675f;
  --gold:#b68742;
  --gold-dark:#8e672f;
  --line:rgba(46,39,31,.12);
  --serif: Georgia, "Times New Roman", serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.skip-link{position:absolute;left:-9999px;top:auto}
.skip-link:focus{left:16px;top:16px;z-index:9999;background:#fff;padding:10px 14px}
.container{width:min(var(--max),calc(100% - 72px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05)}
.header-inner{height:86px;width:min(1380px,calc(100% - 56px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:40px}
.brand{display:flex;align-items:center;min-width:260px}
.brand-logo{height:52px;width:auto;object-fit:contain}
.primary-nav{display:flex;gap:34px;font-family:var(--serif);font-size:15px;letter-spacing:.01em}
.primary-nav a{position:relative;padding:10px 0}
.primary-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:6px;height:1px;background:var(--gold);transition:right .25s ease}
.primary-nav a:hover:after{right:0}
.language-switch{display:flex;align-items:center;gap:9px;margin-left:2px;padding-left:22px;border-left:1px solid var(--line);white-space:nowrap;font-family:var(--serif);font-size:12px;letter-spacing:.015em}
.language-switch__link{color:var(--muted);font-weight:400}
.language-switch__link.is-active{color:var(--ink);font-weight:600}
.language-switch__link.is-active:after{right:0;background:rgba(182,135,66,.62)}
.language-switch__separator{color:rgba(46,39,31,.28);font-size:11px}
.nav-toggle{display:none;border:0;background:transparent;padding:8px}
.nav-toggle span{display:block;width:26px;height:1px;background:var(--ink);margin:6px 0}

.hero{position:relative;min-height:82vh;display:flex;align-items:center;overflow:hidden;background:#ddd}
.hero-bg{position:absolute;inset:0;background-image:url('../images/hero-street.webp');background-size:cover;background-position:center 54%;transform:scale(1.015);animation:heroZoom 13s ease-out forwards}
@keyframes heroZoom{to{transform:scale(1.045)}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.90) 25%,rgba(255,255,255,.40) 48%,rgba(255,255,255,.05) 70%,rgba(255,255,255,.03) 100%)}
.hero-content{position:relative;z-index:2;width:min(1320px,calc(100% - 96px));margin:0 auto;padding-top:18px}
.eyebrow{font-size:12px;letter-spacing:.19em;font-weight:600;margin:0 0 18px}
.eyebrow.gold{color:var(--gold);font-size:11px}
.hero h1,.section h2,.generic-main h1{font-family:var(--serif);font-weight:400;letter-spacing:-.035em}
.hero h1{font-size:clamp(48px,5.6vw,86px);line-height:1.01;max-width:700px;margin:0 0 28px}
.hero-lead{font-family:var(--serif);font-size:clamp(19px,1.65vw,26px);line-height:1.45;margin:0 0 34px;max-width:470px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid transparent;font-size:13px;letter-spacing:.02em;transition:.25s ease}
.btn-primary{background:var(--gold);color:#fff}
.btn-primary:hover{background:var(--gold-dark);transform:translateY(-1px)}
.btn-outline{border-color:var(--gold);color:var(--gold-dark);background:transparent}
.btn-outline:hover{background:var(--gold);color:#fff}
.scroll-cue{position:absolute;z-index:2;bottom:24px;left:50%;transform:translateX(-50%);width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center}
.scroll-cue span{width:7px;height:7px;border-right:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg) translate(-1px,-1px)}

.fact-strip{display:grid;grid-template-columns:repeat(4,1fr);max-width:1320px;margin:0 auto;padding:26px 34px;background:#fff;border-bottom:1px solid var(--line)}
.fact{display:flex;align-items:center;gap:14px;padding:0 28px;border-right:1px solid var(--line)}
.fact:last-child{border-right:0}
.fact-icon{color:var(--gold);font-family:var(--serif);font-size:25px;line-height:1}
.fact strong,.fact small{display:block}
.fact strong{font-family:var(--serif);font-size:16px;font-weight:400}
.fact small{color:var(--muted);font-size:11px;margin-top:2px}

.section{padding:110px 0}
.section h2{font-size:clamp(38px,4vw,62px);line-height:1.05;margin:0 0 28px}
.section p{color:var(--muted);max-width:590px}
.split{display:grid;grid-template-columns:.86fr 1.55fr;gap:76px;align-items:center}
.copy-block{padding:12px 0}
.copy-block>p:not(.eyebrow){font-size:15px}
.text-link{display:inline-flex;align-items:center;gap:14px;margin-top:24px;color:var(--gold-dark);font-family:var(--serif);border-bottom:1px solid rgba(182,135,66,.45);padding-bottom:4px}
.text-link span{transition:transform .25s ease}
.text-link:hover span{transform:translateX(4px)}
.project-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:36px 0 10px}
.project-stats div{border-top:1px solid var(--line);padding-top:14px}
.project-stats strong{display:block;font-family:var(--serif);font-size:26px;font-weight:400}
.project-stats span{display:block;font-size:10px;letter-spacing:.04em;color:var(--muted);line-height:1.35}
.image-pair{display:grid;grid-template-columns:1.12fr .88fr;gap:14px;align-items:stretch}
.image-card{margin:0;overflow:hidden;background:#eee;min-height:420px}
.image-card img{width:100%;height:100%;object-fit:cover}
.image-card.tall{min-height:470px}

.gallery-section{background:var(--ivory)}
.gallery-layout{display:grid;grid-template-columns:.62fr 1.65fr;gap:66px;align-items:center}
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.mosaic figure{margin:0;overflow:hidden;min-height:185px}
.mosaic figure:nth-child(1){grid-column:span 3}
.mosaic figure:nth-child(2){grid-column:span 3}
.mosaic figure:nth-child(n+3){grid-column:span 2}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.mosaic figure:hover img{transform:scale(1.02)}

.terrace-feature{padding:0;display:grid;grid-template-columns:1.2fr 1fr;min-height:580px;background:var(--cream)}
.terrace-image{background:url('../images/terrace.webp') center/cover no-repeat;min-height:580px}
.terrace-copy{display:flex;flex-direction:column;justify-content:center;padding:80px clamp(48px,7vw,120px)}
.terrace-copy .btn{align-self:flex-start;margin-top:18px}

.apartments-teaser{background:#fff}
.apartments-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:end}
.apartments-copy{padding-bottom:8px}
.apartments-copy .btn{margin-top:20px}

.amenities{background:var(--ivory)}
.section-heading{max-width:720px;margin-bottom:54px}
.amenity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.amenity-grid article{background:#fff;padding:30px 28px 34px;border:1px solid rgba(46,39,31,.07)}
.amenity-grid article>span{display:block;color:var(--gold);font-family:var(--serif);font-size:14px;margin-bottom:34px}
.amenity-grid h3{font-family:var(--serif);font-size:24px;font-weight:400;margin:0 0 12px}
.amenity-grid p{font-size:13px;margin:0}

.location{background:#fff}
.location-grid{display:grid;grid-template-columns:.9fr 1.4fr;gap:70px;align-items:center}
.location-list{list-style:none;padding:0;margin:32px 0 0}
.location-list li{padding:12px 0;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.location-list li:last-child{border-bottom:1px solid var(--line)}
.location-visual{margin:0;min-height:520px;overflow:hidden}
.location-visual img{width:100%;height:100%;object-fit:cover}

.downloads{background:var(--cream);padding:80px 0}
.download-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end}
.download-links{display:grid}
.download-links a{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(46,39,31,.16);padding:18px 0;font-family:var(--serif);font-size:19px}
.download-links a:last-child{border-bottom:1px solid rgba(46,39,31,.16)}
.download-links span{color:var(--gold)}

.contact{background:#fff;padding:90px 0}
.contact-inner{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center}
.contact-title{display:flex;gap:26px;align-items:center}
.contact-title img{width:76px;height:auto}
.contact-title h2{font-size:clamp(34px,3.4vw,50px);margin-bottom:0}
.contact-card{border-left:1px solid var(--line);padding-left:54px}
.contact-card p{margin:0 0 16px;font-size:14px}
.contact-card .btn{margin-top:8px}

.site-footer{background:var(--ivory);padding:48px 0 20px;border-top:1px solid var(--line)}
.footer-inner,.footer-bottom{width:min(1320px,calc(100% - 72px));margin:0 auto}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:34px}
.footer-brand img{height:46px;width:auto}
.footer-brand p{font-size:11px;color:var(--muted);margin:8px 0 0}
.footer-nav{display:flex;gap:28px;font-family:var(--serif);font-size:14px}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;color:#8a837a;font-size:10px}
.legal-links{display:flex;gap:18px}

.generic-main{min-height:55vh;padding:90px 0}
.generic-content{max-width:900px}
.generic-content h1{font-size:52px}
.generic-content p{color:var(--muted)}

@media (max-width:1180px){
  .header-inner{width:calc(100% - 38px);height:74px}
  .brand{min-width:0}
  .brand-logo{height:44px}
  .nav-toggle{display:block}
  .primary-nav{position:absolute;top:74px;left:0;right:0;display:none;flex-direction:column;gap:0;background:#fff;border-top:1px solid var(--line);padding:12px 20px 22px}
  .primary-nav.is-open{display:flex}
  .primary-nav a{padding:12px 6px}
  .language-switch{margin:8px 0 0;padding:18px 6px 0;border-left:0;border-top:1px solid var(--line);justify-content:flex-start}
}
@media (max-width:980px){
  .container{width:min(var(--max),calc(100% - 42px))}
  .header-inner{width:calc(100% - 38px);height:74px}
  .brand{min-width:0}
  .brand-logo{height:44px}
  .nav-toggle{display:block}
  .primary-nav{position:absolute;top:74px;left:0;right:0;display:none;flex-direction:column;gap:0;background:#fff;border-top:1px solid var(--line);padding:12px 20px 22px}
  .primary-nav.is-open{display:flex}
  .primary-nav a{padding:12px 6px}
  .hero{min-height:74vh}
  .hero-content{width:calc(100% - 54px)}
  .hero-shade{background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.78) 48%,rgba(255,255,255,.10))}
  .fact-strip{grid-template-columns:repeat(2,1fr);padding:18px 22px}
  .fact{padding:16px;border-right:0;border-bottom:1px solid var(--line)}
  .fact:nth-last-child(-n+2){border-bottom:0}
  .split,.gallery-layout,.apartments-grid,.location-grid,.contact-inner,.download-grid{grid-template-columns:1fr;gap:46px}
  .project-stats{max-width:600px}
  .terrace-feature{grid-template-columns:1fr}
  .terrace-image{min-height:420px}
  .amenity-grid{grid-template-columns:repeat(2,1fr)}
  .contact-card{border-left:0;border-top:1px solid var(--line);padding:30px 0 0}
  .footer-inner{align-items:flex-start}
  .footer-nav{flex-wrap:wrap;justify-content:flex-end}
}
@media (max-width:640px){
  .container{width:calc(100% - 30px)}
  .header-inner{width:calc(100% - 28px)}
  .brand-logo{height:36px;max-width:220px}
  .hero{min-height:690px;align-items:flex-end}
  .hero-bg{background-position:63% center}
  .hero-shade{background:linear-gradient(0deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 40%,rgba(255,255,255,.14) 74%)}
  .hero-content{width:calc(100% - 34px);padding-bottom:82px}
  .hero h1{font-size:45px}
  .hero-lead{font-size:19px}
  .fact-strip{grid-template-columns:1fr}
  .fact{border-bottom:1px solid var(--line)!important}
  .fact:last-child{border-bottom:0!important}
  .section{padding:76px 0}
  .section h2{font-size:40px}
  .image-pair{grid-template-columns:1fr}
  .image-card,.image-card.tall{min-height:360px}
  .project-stats{grid-template-columns:1fr 1fr}
  .mosaic{grid-template-columns:1fr 1fr}
  .mosaic figure,.mosaic figure:nth-child(1),.mosaic figure:nth-child(2),.mosaic figure:nth-child(n+3){grid-column:span 1;min-height:190px}
  .mosaic figure:nth-child(1),.mosaic figure:nth-child(2){grid-column:span 2;min-height:280px}
  .terrace-image{min-height:360px}
  .terrace-copy{padding:58px 26px}
  .amenity-grid{grid-template-columns:1fr}
  .location-visual{min-height:360px}
  .contact-title{align-items:flex-start}
  .contact-title img{width:56px}
  .footer-inner{flex-direction:column}
  .footer-nav{justify-content:flex-start;gap:18px 24px}
  .footer-bottom{flex-direction:column;gap:10px}
}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}
.reveal.in-view{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-bg{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}


/* v0.2 – Wohnungsfinder */
.apartments-selector{background:#fff}
.apartments-heading{display:grid;grid-template-columns:1fr .9fr;gap:70px;align-items:end;margin-bottom:38px}
.apartments-heading h2{margin-bottom:0}
.apartments-heading>p{margin:0 0 8px}
.apartment-filters{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:0 0 34px}
.filter-btn,.show-all-apartments{
  border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 15px;
  font-family:var(--sans);font-size:12px;cursor:pointer;transition:.2s ease
}
.filter-btn:hover,.filter-btn.is-active{background:var(--gold);border-color:var(--gold);color:#fff}
.filter-separator{width:1px;height:30px;background:var(--line);margin:0 6px}
.apartment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.apartment-card{border:1px solid rgba(46,39,31,.09);background:var(--ivory);transition:.25s ease}
.apartment-card.is-hidden{display:none}
.apartment-card.is-collapsed{display:none}
.apartment-open{width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}
.apartment-plan{height:270px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--line)}
.apartment-plan img{width:100%;height:100%;object-fit:contain;padding:12px;transition:transform .35s ease}
.apartment-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(44,38,30,.08)}
.apartment-card:hover .apartment-plan img{transform:scale(1.018)}
.apartment-meta{padding:20px 22px 24px}
.apartment-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:11px;letter-spacing:.09em}
.status.available{color:#55785b;background:#edf4ee;padding:5px 8px;letter-spacing:.02em;text-transform:none}
.status.reserved{color:#8a6524;background:#f7f0e2;padding:5px 8px;letter-spacing:.02em;text-transform:none}
.status.sold{color:#77706a;background:#efedea;padding:5px 8px;letter-spacing:.02em;text-transform:none}
.apartment-meta h3{font-family:var(--serif);font-weight:400;font-size:23px;margin:0 0 6px}
.apartment-meta p{font-size:12px;margin:0;color:var(--muted);min-height:38px}
.apartment-price{font-family:var(--serif);font-size:24px;margin:17px 0 12px}
.apartment-more{color:var(--gold-dark);font-size:12px}
.show-all-apartments{display:block;margin:30px auto 0;border-color:var(--gold);color:var(--gold-dark);padding:12px 22px}
.show-all-apartments:hover{background:var(--gold);color:#fff}
.apartment-note{text-align:center;margin:18px auto 0!important;font-size:10px!important;max-width:760px!important}
.apartments-archive-link{display:inline-flex;align-items:center;gap:13px;margin-top:20px;color:var(--gold-dark);font-family:var(--serif);font-size:14px;letter-spacing:.035em}
.apartments-archive-link span{transition:transform .2s ease}
.apartments-archive-link:hover span{transform:translateX(4px)}

.apartment-modal{position:fixed;inset:0;z-index:2500;display:none}
.apartment-modal.is-open{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(27,24,20,.66);backdrop-filter:blur(4px)}
.modal-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1140px,calc(100% - 42px));max-height:90vh;overflow:auto;background:#fff;display:grid;grid-template-columns:1.25fr .75fr;box-shadow:0 24px 70px rgba(0,0,0,.22)}
.modal-close{position:absolute;right:14px;top:10px;z-index:3;width:38px;height:38px;border:0;background:rgba(255,255,255,.92);font-size:27px;line-height:1;cursor:pointer}
.modal-plan{min-height:650px;background:#fafafa;display:flex;align-items:center;justify-content:center}
.modal-plan img{width:100%;height:100%;max-height:78vh;object-fit:contain;padding:18px}
.modal-copy{padding:70px 42px 44px}
.modal-copy h2{font-family:var(--serif);font-weight:400;font-size:48px;line-height:1;margin:0 0 30px}
.modal-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);margin-bottom:28px}
.modal-facts div{padding:16px 0;border-bottom:1px solid var(--line)}
.modal-facts div:nth-child(odd){padding-right:14px}
.modal-facts div:nth-child(even){padding-left:14px;border-left:1px solid var(--line)}
.modal-facts span,.modal-price span{display:block;font-size:10px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px}
.modal-facts strong{font-family:var(--serif);font-size:17px;font-weight:400}
.modal-price{padding:16px 0 26px}
.modal-price strong{display:block;font-family:var(--serif);font-size:30px;font-weight:400}
.modal-actions{display:flex;gap:10px;flex-wrap:wrap}

body.modal-open{overflow:hidden}

/* Goldener Tukan Audio */
.music-player{position:fixed;right:20px;bottom:20px;z-index:1800}
.music-toggle{
  display:flex;align-items:center;gap:8px;border:1px solid rgba(182,135,66,.55);
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);color:var(--gold-dark);
  padding:10px 13px;border-radius:999px;box-shadow:0 8px 22px rgba(40,34,27,.08);
  font-family:var(--serif);cursor:pointer;transition:.2s ease
}
.music-toggle:hover{background:var(--gold);color:#fff}
.music-toggle.is-playing{background:var(--gold);color:#fff}
.music-icon{font-size:17px;line-height:1}
.music-label{font-size:12px}
.music-toggle.is-playing .music-icon{animation:musicPulse 1.2s ease-in-out infinite}
@keyframes musicPulse{50%{transform:scale(1.15)}}

@media (max-width:980px){
  .apartments-heading{grid-template-columns:1fr;gap:16px}
  .apartment-grid{grid-template-columns:repeat(2,1fr)}
  .modal-panel{grid-template-columns:1fr;max-height:94vh}
  .modal-plan{min-height:430px}
  .modal-copy{padding:40px 28px}
}
@media (max-width:640px){
  .filter-separator{display:none}
  .apartment-grid{grid-template-columns:1fr}
  .apartment-plan{height:250px}
  .modal-panel{width:calc(100% - 18px)}
  .modal-plan{min-height:300px}
  .modal-copy h2{font-size:38px}
  .modal-facts{grid-template-columns:1fr}
  .modal-facts div:nth-child(even){padding-left:0;border-left:0}
  .music-player{right:12px;bottom:12px}
}

/* Native /wohnungen/ inventory page */
.wohnungen-page{background:var(--ivory)}
.wohnungen-hero{padding:58px 0 88px;border-bottom:1px solid var(--line)}
.wohnungen-breadcrumb{margin-bottom:66px}
.wohnungen-breadcrumb ol{display:flex;align-items:center;gap:11px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:12px}
.wohnungen-breadcrumb li+li:before{content:"→";margin-right:11px;color:var(--gold)}
.wohnungen-breadcrumb a{color:var(--gold-dark)}
.wohnungen-hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:90px;align-items:end}
.wohnungen-hero h1{max-width:760px;margin:0;font-family:var(--serif);font-size:clamp(52px,6vw,86px);font-weight:400;line-height:1;letter-spacing:-.045em}
.wohnungen-hero-grid>p{max-width:470px;margin:0 0 9px;color:var(--muted);font-family:var(--serif);font-size:19px;line-height:1.55}
.wohnungen-inventory{background:#fff}
.wohnungen-inventory .apartments-heading h2{font-size:clamp(40px,4vw,58px)}
.wohnungen-support{padding:108px 0 96px;background:var(--ivory)}
.wohnungen-support-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:84px;align-items:center}
.wohnungen-support h2{max-width:540px;margin:0 0 24px;font-family:var(--serif);font-size:clamp(40px,4.4vw,58px);font-weight:400;line-height:1.05;letter-spacing:-.035em}
.wohnungen-support p{max-width:500px;color:var(--muted);line-height:1.7}
.wohnungen-support figure{min-height:390px;margin:0;overflow:hidden;background:var(--cream)}
.wohnungen-support figure img{display:block;width:100%;height:100%;min-height:390px;object-fit:cover}
.wohnungen-link-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:76px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.wohnungen-link-grid a{display:flex;justify-content:space-between;padding:23px 24px 23px 0;color:var(--gold-dark);font-family:var(--serif);font-size:17px}
.wohnungen-link-grid a+a{padding-left:24px;border-left:1px solid var(--line)}
.wohnungen-link-grid span{transition:transform .2s ease}
.wohnungen-link-grid a:hover span{transform:translateX(4px)}
@media (max-width:800px){
  .wohnungen-hero-grid,.wohnungen-support-grid{grid-template-columns:1fr;gap:34px}
  .wohnungen-link-grid{grid-template-columns:1fr}
  .wohnungen-link-grid a+a{padding-left:0;border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:640px){
  .wohnungen-hero{padding:42px 0 62px}
  .wohnungen-breadcrumb{margin-bottom:46px}
  .wohnungen-hero h1{font-size:50px}
  .wohnungen-support{padding:72px 0}
  .wohnungen-support figure,.wohnungen-support figure img{min-height:300px}
  .wohnungen-link-grid{margin-top:54px}
}


/* v0.4 — Audio Identity, motion & responsive refinement */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.music-player{position:fixed;right:22px;bottom:22px;z-index:1800}
.music-toggle{min-width:92px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid rgba(182,135,66,.55);background:rgba(255,255,255,.93);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--gold-dark);padding:10px 14px;border-radius:999px;box-shadow:0 8px 26px rgba(40,34,27,.10);font-family:var(--serif);cursor:pointer;transition:background .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease}
.music-toggle:hover{background:var(--gold);color:#fff;transform:translateY(-1px);box-shadow:0 10px 30px rgba(40,34,27,.15)}
.music-toggle.is-playing{background:var(--gold);color:#fff}
.music-icon{font-size:18px;line-height:1;transform-origin:center}
.music-label{font-size:12px;letter-spacing:.02em}
.music-toggle.is-playing .music-icon{animation:gtMusicPulse 1.6s ease-in-out infinite}
@keyframes gtMusicPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

/* More refined entrance movement: subtle only */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .8s cubic-bezier(.2,.65,.3,1),transform .8s cubic-bezier(.2,.65,.3,1)}
.reveal.in-view{opacity:1;transform:none}
.image-card img,.location-visual img,.terrace-image{will-change:transform}
.image-card img,.location-visual img{transition:transform .85s cubic-bezier(.2,.65,.3,1)}
.image-card:hover img,.location-visual:hover img{transform:scale(1.012)}

/* Apartment selector: slightly more editorial and touch-friendly */
.apartment-open:focus-visible,.filter-btn:focus-visible,.show-all-apartments:focus-visible,.music-toggle:focus-visible,.modal-close:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.apartment-card{overflow:hidden}
.apartment-price{letter-spacing:-.015em}
.modal-panel{border-radius:2px}
.modal-close{border-radius:50%}

@media (max-width:980px){
  .modal-panel{width:min(760px,calc(100% - 30px))}
  .modal-plan{min-height:380px}
}
@media (max-width:640px){
  .music-player{right:12px;bottom:12px}
  .music-toggle{min-width:44px;width:44px;height:44px;padding:0;border-radius:50%}
  .music-label{display:none}
  .apartment-filters{gap:7px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .apartment-filters::-webkit-scrollbar{display:none}
  .filter-btn{white-space:nowrap;flex:0 0 auto}
  .modal-panel{width:calc(100% - 14px);top:7px;bottom:7px;transform:translateX(-50%);max-height:none;overflow:auto}
  .modal-plan{min-height:280px;max-height:44vh}
  .modal-copy{padding:34px 22px 28px}
  .modal-actions{display:grid;grid-template-columns:1fr}
  .modal-actions .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .music-toggle.is-playing .music-icon{animation:none}
  .image-card img,.location-visual img{transition:none}
}


/* v0.5 */
section[id]{scroll-margin-top:105px}
.amenities-intro{display:grid;grid-template-columns:1fr .9fr;gap:70px;align-items:end;margin-bottom:54px}
.amenities-intro .section-heading{margin-bottom:0}
.amenities-intro>p{margin:0 0 8px}
.amenity-grid-seven{grid-template-columns:repeat(4,1fr)}
.amenity-grid-seven article:nth-child(n+5){background:#fdfbf7}
.location-map-card{margin:0;background:var(--ivory);border:1px solid var(--line);padding:18px}
.location-map-card img{width:100%;height:560px;object-fit:contain;background:#fff}
.location-map-card figcaption{font-size:10px;color:var(--muted);margin-top:10px;text-align:center}
.location-detail-btn{margin-top:26px}
.print-brand{display:none}

/* Lage page */
.lage-page h1,.lage-page h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em}
.lage-hero{padding:110px 0 90px;background:var(--ivory)}
.lage-hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:end}
.lage-hero h1{font-size:clamp(48px,5vw,78px);line-height:1.02;margin:0}
.lage-hero-inner>p{font-size:17px;color:var(--muted);margin:0 0 10px}
.lage-map-section{padding:90px 0 110px}
.lage-map-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:70px;align-items:start}
.lage-map-large{margin:0;background:#fff;border:1px solid var(--line);padding:18px}
.lage-map-large img{width:100%;max-height:760px;object-fit:contain}
.lage-map-large figcaption{font-size:10px;color:var(--muted);margin:9px 0 0;text-align:center}
.lage-facts h2{font-family:var(--serif);font-size:48px;font-weight:400;margin:0 0 34px}
.lage-fact{display:grid;grid-template-columns:44px 1fr;gap:18px;padding:22px 0;border-top:1px solid var(--line)}
.lage-fact:last-child{border-bottom:1px solid var(--line)}
.lage-fact>span{color:var(--gold);font-family:var(--serif);font-size:15px}
.lage-fact h3{font-family:var(--serif);font-size:22px;font-weight:400;margin:0 0 6px}
.lage-fact p{font-size:13px;color:var(--muted);margin:0}
.lage-lifestyle{padding:0 0 110px}
.lage-lifestyle-grid{display:grid;grid-template-columns:.8fr 1.2fr;background:var(--cream);align-items:stretch}
.lage-lifestyle-copy{padding:75px 68px}
.lage-lifestyle h2{font-size:50px;line-height:1.06;margin:0 0 24px}
.lage-lifestyle-copy>p:not(.eyebrow){color:var(--muted)}
.lage-lifestyle figure{margin:0;min-height:500px}
.lage-lifestyle figure img{width:100%;height:100%;object-fit:cover}

/* Apartment printing is handled in an isolated one-page print window (v0.6). */
@media (max-width:980px){
 .amenities-intro,.lage-hero-inner,.lage-map-grid,.lage-lifestyle-grid{grid-template-columns:1fr;gap:38px}
 .amenity-grid-seven{grid-template-columns:repeat(2,1fr)}
 .location-map-card img{height:auto;max-height:590px}
 .lage-hero{padding:80px 0 60px}
 .lage-lifestyle-copy{padding:54px 42px}
}
@media (max-width:640px){
 .amenity-grid-seven{grid-template-columns:1fr}
 .lage-map-section{padding:60px 0 75px}
 .lage-lifestyle-copy{padding:46px 26px}
 .lage-lifestyle h2{font-size:40px}
}


/* v0.7 – Interactive building/floor navigator */
.building-selector-section{background:var(--ivory)}
.building-selector-heading{display:grid;grid-template-columns:1fr .9fr;gap:70px;align-items:end;margin-bottom:42px}
.building-selector-heading h2{margin-bottom:0}
.building-selector-heading>p{margin:0 0 8px}
.building-selector{display:grid;grid-template-columns:1.55fr .45fr;gap:22px;align-items:stretch}
/* The v0.x `.floor-band` facade overlay and the fixed-height cropping box that
   went with it were removed when the approved Interactive Facade Engine took
   over. See the facade block at the end of this file. */
.building-selector-copy{background:#fff;padding:34px 28px;display:flex;flex-direction:column;justify-content:center}
.floor-hint{font-family:var(--serif);font-size:22px!important;color:var(--ink)!important;margin:0 0 18px!important}
.floor-legend{display:grid}
.floor-legend button{border:0;border-top:1px solid var(--line);background:transparent;padding:16px 0;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer}
.floor-legend button:last-child{border-bottom:1px solid var(--line)}
.floor-legend strong{font-family:var(--serif);font-size:18px;font-weight:400}
.floor-legend span{font-size:11px;color:var(--muted)}
.floor-legend button:hover strong{color:var(--gold-dark)}

.floor-viewer{margin-top:26px;background:#fff;border:1px solid rgba(46,39,31,.08);padding:34px}
.floor-viewer-head{display:flex;justify-content:space-between;align-items:end;gap:28px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px}
.floor-viewer-head h3{font-family:var(--serif);font-size:42px;font-weight:400;margin:0}
.floor-viewer-head p{font-size:12px;color:var(--muted);margin:0}
.floor-viewer-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:34px;align-items:center}
.floor-overview-image{min-height:390px;display:flex;align-items:center;justify-content:center;background:var(--ivory);overflow:hidden}
.floor-overview-image img{width:100%;height:100%;max-height:460px;object-fit:contain;padding:20px}
.floor-apartment-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.floor-top-link{border:1px solid var(--line);background:#fff;padding:14px 12px;text-align:left;font-family:var(--serif);font-size:17px;cursor:pointer;transition:.2s ease}
.floor-top-link:after{content:"Verfügbar";display:block;font-family:var(--sans);font-size:9px;color:#55785b;margin-top:4px}
.floor-top-link:hover{border-color:var(--gold);background:var(--cream);color:var(--gold-dark)}
.floor-to-cards{margin-top:28px;background:transparent;border:0;cursor:pointer}

@media (max-width:980px){
  .building-selector-heading{grid-template-columns:1fr;gap:15px}
  .building-selector{grid-template-columns:1fr}
  .floor-viewer-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .floor-viewer{padding:22px 16px}
  .floor-viewer-head{align-items:flex-start;flex-direction:column}
  .floor-overview-image{min-height:270px}
}


/* v0.8 – corrected floor selector and clickable whole-floor plans */
.building-selector-section{background:var(--ivory)}
.building-selector-heading{display:grid;grid-template-columns:1fr .95fr;gap:70px;align-items:end;margin-bottom:42px}
.building-selector-heading h2{margin-bottom:0}
.building-selector-heading>p{margin:0 0 8px}
.building-selector{display:grid;grid-template-columns:1.58fr .42fr;gap:22px;align-items:stretch}
/* The v0.8 `.floor-zone` / `.floor-line` facade overlay and its cropping box
   were likewise removed in favour of the approved engine. */
.building-selector-copy{background:#fff;padding:34px 28px;display:flex;flex-direction:column;justify-content:center}
.floor-hint{font-family:var(--serif);font-size:22px!important;color:var(--ink)!important;margin:0 0 18px!important}
.floor-legend{display:grid}
.floor-legend button,.floor-legend .legend-static{border:0;border-top:1px solid var(--line);background:transparent;padding:16px 0;display:flex;justify-content:space-between;align-items:center;text-align:left}
.floor-legend button{cursor:pointer}
.floor-legend button:last-of-type,.floor-legend .legend-static:last-child{border-bottom:1px solid var(--line)}
.floor-legend strong{font-family:var(--serif);font-size:18px;font-weight:400}
.floor-legend span{font-size:11px;color:var(--muted)}
.floor-legend button:hover strong,.floor-legend button.is-active strong{color:var(--gold-dark)}
.floor-viewer{margin-top:26px;background:#fff;border:1px solid rgba(46,39,31,.08);padding:34px}
.floor-viewer-head{display:flex;justify-content:space-between;align-items:end;gap:28px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px}
.floor-viewer-head h3{font-family:var(--serif);font-size:42px;font-weight:400;margin:0}
.floor-viewer-head p{font-size:12px;color:var(--muted);margin:0}
.floor-viewer-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:34px;align-items:start}
.floor-overview-image{display:flex;align-items:flex-start;justify-content:center;background:var(--ivory);padding:24px;overflow:hidden}
.floor-image-shell{position:relative;display:inline-block;max-width:100%}
.floor-image-shell img{display:block;max-width:100%;height:auto}
.floor-hotspots{position:absolute;inset:0}
.floor-plan-spot{position:absolute;transform:translate(-50%,-50%);border:1px solid rgba(156,107,29,.60);background:rgba(255,255,255,.97);color:#8f631d;padding:7px 10px;font-size:11px;line-height:1;cursor:pointer;white-space:nowrap;box-shadow:0 8px 18px rgba(46,39,31,.08);transition:.18s ease}
.floor-plan-spot:hover,.floor-plan-spot:focus-visible{background:#9c6b1d;color:#fff;outline:none;transform:translate(-50%,-50%) scale(1.03)}
.floor-apartment-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.floor-top-link{border:1px solid var(--line);background:#fff;padding:14px 12px;text-align:left;cursor:pointer;transition:.2s ease;display:block}
.floor-top-link strong{display:block;font-family:var(--serif);font-size:17px;font-weight:400;margin-bottom:5px}
.floor-top-link span{display:block;font-size:10px;color:#55785b;letter-spacing:.05em;text-transform:uppercase}
.floor-top-link:hover{border-color:var(--gold);background:var(--cream);color:var(--gold-dark)}
.floor-to-cards{margin-top:28px;background:transparent;border:0;cursor:pointer}

@media (max-width:980px){
  .building-selector-heading{grid-template-columns:1fr;gap:15px}
  .building-selector{grid-template-columns:1fr}
  .floor-viewer-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .floor-viewer{padding:22px 16px}
  .floor-viewer-head{align-items:flex-start;flex-direction:column}
  .floor-overview-image{padding:16px}
  .floor-plan-spot{padding:5px 7px;font-size:10px}
}

/* ── Interactive Facade Engine v1.0 ─────────────────────────────────────────
   The approved Figma geometry is mounted into `.facade-overlay` by
   assets/dist/gt-approved.js. The polygons, labels, gold hover/selected states
   and sold treatment all come from that component — this file only has to place
   the overlay and stop cropping the photograph underneath it.

   THE PHOTOGRAPH IS NOW SHOWN COMPLETE. It used to be `object-fit:cover` inside
   a fixed 620px box, i.e. cropped; that crop is precisely why the old overlay
   had to stretch itself with preserveAspectRatio="none" in order to line up.
   With the full, unmodified photo restored, the approved geometry registers on
   it with no distortion at all.

   The overlay box below is not eyeballed. It is the measured position of the
   `Facade_Hotspots` frame inside the `hero-street` image in the Figma source
   file, expressed as percentages so it tracks the photo at every viewport:

       x = 37.5px / 1101px        y = 206.5px / 978px
       w = 1008.5px / 1101px      h =   666px / 978px

   corrected for the small stroke bleed between the frame bounds (1008.5×666)
   and the exported viewBox (1010×668). The resulting box has aspect ratio
   1.51198 — the SVG's own viewBox ratio — so `xMidYMid meet` fills it exactly
   and the horizontal and vertical scales differ by 0.0002%.

   DO NOT "CORRECT" THESE FOUR NUMBERS TO THE RAW FRAME PERCENTAGES.
   Reading `Facade_Hotspots` straight out of Figma and dividing by the image
   gives 3.4060% / 21.1145% / 91.5985% / 68.0982%, which looks like the honest
   value and is wrong: it ignores the viewBox padding and the 1.000449 export
   scale, and it shifts the overlay by up to 3.1px at 2000px wide. The values
   below were re-verified against the Figma file (nodes 1:2 and 8:10) by mapping
   every path's bounding box through this placement and comparing it with the
   vector coordinates Figma reports — worst error 0.011px at 2000px wide. */
.facade-map{position:relative;background:#ddd;min-height:0;overflow:visible}
.facade-map>img{display:block;width:100%;height:auto;object-fit:contain}
.facade-overlay{position:absolute;left:3.3581%;top:21.0581%;width:91.6937%;height:68.2721%}

.floor-legend .legend-static.sold{color:#777;background:rgba(0,0,0,.025)}
.floor-legend .legend-static.sold span{font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#777}
/* ── Per-apartment original floor overview ─────────────────────────────────
   Both axes stay `auto` and only maximums are constrained, so the browser can
   only scale the drawing uniformly — it can never stretch or crop it.

   This also keeps the hotspot overlay honest. `.floor-hotspots` is `inset:0` on
   the shell, so the shell must hug the rendered drawing exactly. An earlier
   `width:100%` combined with the `max-height` + `object-fit:contain` further up
   this file made the element box taller than the drawing and letterboxed the
   image inside it — the geometry still looked fine, but every Top label sat off
   its apartment by the size of the letterbox. Leaving both axes `auto` means the
   box IS the drawing, so percentage coordinates land where they should. */
.floor-image-shell{position:relative;display:inline-block;max-width:100%;line-height:0}
.floor-image-shell>img{display:block;width:auto;height:auto;max-width:100%;max-height:460px;object-fit:contain;padding:0}
.floor-hotspots{position:absolute;inset:0}
.floor-plan-spot{z-index:2}
/* the Top whose sheet is currently on screen — its apartment is the gold one */
.floor-plan-spot.is-current{background:#9c6b1d;color:#fff;border-color:#9c6b1d;z-index:3}
.floor-top-link.is-current{box-shadow:inset 3px 0 0 var(--gold);background:rgba(156,107,29,.06)}

/* Original floor overview inside the apartment modal. Same uniform-scaling
   contract: maximums only, both axes `auto`. */
.modal-overview{margin:0 0 26px}
.modal-overview figcaption{font-size:10px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:9px}
.modal-overview img{display:block;width:auto;height:auto;max-width:100%;max-height:230px;object-fit:contain;background:#fff;border:1px solid var(--line)}

/* ── Architectural Viewer v1.0: entry point in the apartment modal ──────────
   The sheet itself is the affordance, exactly as in the approved prototype.
   Geometry is uniform by construction: only maximums are constrained and both
   width and height stay `auto`, so the browser can scale the page but has no
   way to stretch or crop it. The viewer's own styling ships in gt-approved.css. */
/* The approved viewer ships with z-index:1000, which is right in the prototype,
   where nothing else is layered. In this theme the apartment modal sits at 2500
   and would paint straight over it, so the viewer has to be lifted above it.

   Note the selector. `gt-approved.css` is enqueued *after* this file and
   re-declares `.pv-root`, so a bare `.pv-root` rule here would lose on source
   order — which is exactly what happened the first time. `body>.pv-root` raises
   specificity instead, so it wins no matter how the two sheets are ordered. The
   viewer renders through a portal and is always a direct child of <body>, so the
   selector is exact rather than defensive.

   This is a host-page stacking concern only: no approved style, colour,
   dimension or behaviour is altered. */
body>.pv-root{z-index:3000}

.modal-plan .plan-zoom-open{position:relative;display:block;max-width:100%;padding:18px;border:0;background:transparent;font:inherit;line-height:0;cursor:zoom-in}
.modal-plan .plan-zoom-open img{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;padding:0;background:#fff}
.modal-plan .plan-zoom-open:focus-visible{outline:2px solid var(--gold);outline-offset:-6px}
.plan-zoom-badge{position:absolute;right:26px;bottom:26px;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid rgba(255,255,255,.34);border-radius:3px;background:rgba(20,20,15,.72);color:#fff;font-family:var(--sans,inherit);font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;line-height:1;opacity:0;transition:opacity .18s ease}
.modal-plan .plan-zoom-open:hover .plan-zoom-badge,.modal-plan .plan-zoom-open:focus-visible .plan-zoom-badge{opacity:1}
@media(hover:none){.plan-zoom-badge{opacity:1}}
/* On phones `.modal-plan` was capped at 44vh with a 280px floor. That cap was
   sized for the legacy cropped landscape images; the real A3 portrait sheets
   (Top 45 and Top 47) are far taller than it, so the drawing spilled out of the
   box and overlapped the detail panel beneath it. The plan box is therefore
   allowed to take its natural height here — `.modal-panel` already scrolls, so
   the complete sheet stays reachable and nothing is cropped to make it fit. */
@media(max-width:640px){.modal-panel{align-content:start}.modal-plan{min-height:auto;max-height:none}.modal-plan .plan-zoom-open{padding:10px}.plan-zoom-badge{right:16px;bottom:16px;font-size:9px;padding:6px 10px}}
