:root {
    --ink: #181817;
    --ink-soft: #302f2c;
    --paper: #f8f6f1;
    --sand: #eee9df;
    --plan-surface: #f3efe7;
    --gold: #c6a35f;
    --gold-light: #dfc58f;
    --line: rgba(24, 24, 23, .17);
    --white: #fff;
    --serif: "Iowan Old Style", "Baskerville", "Times New Roman", Georgia, serif;
    --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --shell: min(1380px, calc(100vw - 64px));
    --header: 88px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header) + 24px); }
body { margin: 0; color: var(--ink); background: var(--paper); font: 400 17px/1.7 var(--sans); -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
body.admin-bar { --adminbar-height: 32px; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p, figure, blockquote { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
h1 { font-size: clamp(3.4rem, 7.2vw, 7.4rem); }
h2 { font-size: clamp(2.6rem, 5vw, 5.4rem); }
h3 { font-size: clamp(1.55rem, 2.2vw, 2.15rem); }
p { margin-bottom: 1.35em; }
::selection { background: var(--gold-light); color: var(--ink); }

.shell { width: var(--shell); margin-inline: auto; }
.shell--narrow { max-width: 900px; }
.section { padding-block: clamp(5.2rem, 9vw, 9rem); }
.section--ink { background: var(--ink); color: var(--paper); }
.section--sand { background: var(--sand); }
.section--gold { background: var(--gold); color: var(--ink); text-align: center; }
.eyebrow { display: inline-flex; align-items: center; gap: .7rem; margin-bottom: 1.3rem; color: #866832; font-size: .74rem; font-weight: 700; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; }
.eyebrow::before { width: 34px; height: 1px; background: currentColor; content: ""; }
.eyebrow--light { color: var(--gold-light); }
.lead { font-size: clamp(1.16rem, 1.55vw, 1.45rem); line-height: 1.58; }
.section-heading { max-width: 850px; margin-bottom: clamp(3rem, 6vw, 6rem); }
.section-heading p { max-width: 650px; }
.section-heading h2 { margin-bottom: 1.6rem; }

.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; padding: .8rem 1.1rem; transform: translateY(-150%); background: var(--white); color: var(--ink); transition: transform .4s cubic-bezier(.22,1,.36,1); }
.skip-link:focus { transform: none; }
.site-header { position: fixed; z-index: 100; top: var(--adminbar-height, 0px); right: 0; left: 0; height: var(--header); border-bottom: 1px solid transparent; transition: background .35s, border-color .35s, color .35s, box-shadow .35s; }
.site-header.is-scrolled, body:not(.home) .site-header { border-color: var(--line); background: rgba(248, 246, 241, .94); box-shadow: 0 10px 35px rgba(20, 20, 18, .06); backdrop-filter: blur(14px); }
.home .site-header:not(.is-scrolled) { color: var(--white); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .72rem; text-decoration: none; }
.brand img { object-fit: contain; }
.brand__mark { width: 38px; height: 46px; }
.brand__wordmark { width: 148px; height: auto; }
.home .site-header:not(.is-scrolled) .brand img { filter: grayscale(1) brightness(0) invert(1); }
.home .site-header:has(.site-nav.is-open) .brand img { filter: none; }
.site-nav { display: flex; align-items: center; gap: 2rem; }
.site-nav__list { display: flex; align-items: center; gap: clamp(1.2rem, 2vw, 2.4rem); margin: 0; padding: 0; list-style: none; }
.site-nav__list a { position: relative; font-size: .84rem; font-weight: 600; letter-spacing: .04em; text-decoration: none; transition: color .4s ease, opacity .4s ease; }
.site-nav__list a::after { position: absolute; right: 0; bottom: -.45rem; left: 0; height: 1px; transform: scaleX(0); transform-origin: right; background: currentColor; content: ""; transition: transform .45s cubic-bezier(.22,1,.36,1); }
.site-nav__list a:hover::after, .site-nav__list .current-menu-item a::after { transform: scaleX(1); transform-origin: left; }
.nav-toggle { display: none; border: 0; background: none; }

.button { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .9rem 1.65rem; overflow: hidden; border: 1px solid var(--ink); background: transparent; color: var(--ink); box-shadow: 0 0 0 rgba(24,24,23,0); font-size: .76rem; font-weight: 750; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background .35s, color .35s, border-color .35s, transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s; }
.button:hover { transform: translateY(-3px); background: var(--ink); color: var(--white); box-shadow: 0 13px 30px rgba(24,24,23,.14); }
.button--small { min-height: 42px; padding: .7rem 1.15rem; font-size: .68rem; }
.button--gold { border-color: var(--gold); background: var(--gold); color: var(--ink); }
.button--gold:hover { border-color: var(--white); background: var(--white); color: var(--ink); }
.button--ink { border-color: var(--ink); background: var(--ink); color: var(--white); }
.button--ink:hover { background: transparent; color: var(--ink); }
.button--outline-light { border-color: rgba(255,255,255,.65); color: var(--white); }
.button--outline-light:hover { background: var(--white); color: var(--ink); }
.button-row { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem 2.2rem; }
.button-row--center { justify-content: center; }
.text-link { display: inline-flex; align-items: center; gap: 1rem; padding-block: .4rem; font-size: .78rem; font-weight: 750; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.text-link span { font-size: 1.2rem; transition: transform .45s cubic-bezier(.22,1,.36,1); }
.text-link:hover span { transform: translateX(5px); }
.text-link--light { color: var(--white); }

.hero { position: relative; display: grid; min-height: 100svh; overflow: hidden; background: var(--ink); color: var(--white); }
.hero__media, .hero__shade { position: absolute; inset: 0; }
.hero__image { width: 100%; height: 100%; object-fit: cover; object-position: 50% 52%; animation: hero-in 1.2s ease-out both; }
.hero__shade { background: linear-gradient(90deg, rgba(9,9,8,.78) 0%, rgba(9,9,8,.38) 46%, rgba(9,9,8,.08) 77%), linear-gradient(0deg, rgba(9,9,8,.42), transparent 45%); }
.hero__content { position: relative; z-index: 1; align-self: end; padding-block: calc(var(--header) + 5rem) clamp(6rem, 11vw, 9rem); }
.hero h1 { max-width: 1050px; margin-bottom: 1.6rem; font-size: clamp(3.7rem, 7vw, 7.2rem); }
.hero h1 em { color: var(--gold-light); font-weight: 400; }
.hero h1 > span { display: block; margin-top: .28em; font: 400 .42em/1.05 var(--sans); letter-spacing: .01em; }
.hero__content > p { max-width: 630px; margin-bottom: 2.5rem; color: rgba(255,255,255,.82); font-size: clamp(1.05rem, 1.6vw, 1.35rem); }
.hero__scroll { position: absolute; z-index: 2; right: max(32px, calc((100vw - min(1380px, calc(100vw - 64px))) / 2)); bottom: 2.2rem; color: rgba(255,255,255,.72); font-size: .67rem; letter-spacing: .15em; text-decoration: none; text-transform: uppercase; writing-mode: vertical-rl; }
@keyframes hero-in { from { opacity: .72; } to { opacity: 1; } }

.intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(3rem, 8vw, 10rem); align-items: start; }
.intro__lead h2 { margin-bottom: 0; }
.intro__body { max-width: 710px; padding-top: 2.5rem; }
.home .intro__body p { font-size: clamp(1.16rem, 1.55vw, 1.45rem); line-height: 1.58; }
.intro__body .text-link { margin-top: 1rem; }
.wide-media { margin: 0; overflow: hidden; }
.wide-media__image { width: 100%; height: clamp(520px, 67vw, 910px); object-fit: cover; }
.wide-media__caption { margin-top: .8rem; color: #6f6b64; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }

.numbers .eyebrow { margin-bottom: 4rem; }
.numbers__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.numbers__grid article { display: grid; align-content: center; min-height: 235px; padding: 2rem; border-right: 1px solid rgba(255,255,255,.2); }
.numbers__grid article:last-child { border-right: 0; }
.numbers__grid strong { font: 400 clamp(2.7rem, 4.7vw, 5.4rem)/1 var(--serif); color: var(--gold-light); }
.numbers__grid span { margin-top: 1rem; color: rgba(255,255,255,.72); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.numbers__features { display: flex; justify-content: space-between; gap: 1rem; padding-top: 2rem; color: rgba(255,255,255,.62); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }

.feature-story { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1.2fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; }
.feature-story__copy { max-width: 580px; }
.feature-story__copy h2 { margin-bottom: 1.7rem; }
.feature-story__media { margin-bottom: 0; }
.feature-story__media img { width: 100%; height: clamp(580px, 65vw, 860px); object-fit: cover; }
.feature-list { margin: 2.5rem 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.feature-list li { display: grid; grid-template-columns: 1fr 1.5fr; gap: 1.5rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.feature-list strong { font-family: var(--serif); font-size: 1.3rem; font-weight: 400; }
.feature-list span { color: #69655e; font-size: .9rem; }

.common__grid { display: grid; grid-template-columns: 1.55fr .9fr; grid-template-rows: repeat(2, minmax(280px, 450px)); gap: 20px; }
.common__grid figure { margin: 0; overflow: hidden; }
.common__grid img { width: 100%; height: 100%; object-fit: cover; }
.common__large { grid-row: 1 / 3; }

.life-preview { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr); gap: clamp(3rem, 7vw, 8rem); align-items: center; }
.life-preview__copy { max-width: 570px; }
.life-preview__copy p { max-width: 520px; color: #666159; }
.life-preview__plan { margin: 0; padding: clamp(1.2rem, 3vw, 2.4rem); background: var(--white); box-shadow: 0 28px 80px rgba(32,28,20,.09); }
.life-preview__plan img { width: 100%; }
.life-preview__plan figcaption { margin-top: 1rem; color: #746e64; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }

.apartments-teaser { display: grid; grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr); gap: clamp(3rem, 8vw, 10rem); align-items: start; }
.apartments-teaser__intro { position: sticky; top: calc(var(--header) + 50px); }
.apartments-teaser__intro p { max-width: 580px; margin-bottom: 2.2rem; }
.apartments-teaser__cards { border-top: 1px solid var(--line); }
.apartment-mini { position: relative; display: grid; grid-template-columns: .55fr 1.05fr 1.35fr 1fr auto; gap: 1rem; align-items: center; min-height: 145px; padding: 1.4rem 1rem; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding .5s cubic-bezier(.22,1,.36,1), background-color .5s ease, box-shadow .5s ease; }
.apartment-mini::after { position: absolute; right: 1rem; bottom: 1rem; content: "→"; opacity: 0; transform: translateX(-8px); transition: opacity .4s ease, transform .5s cubic-bezier(.22,1,.36,1); }
.apartment-mini:hover { padding-inline: 1.4rem; background: var(--white); }
.apartment-mini:hover::after { opacity: 1; transform: none; }
.apartment-mini__code { color: #7e6334; font-size: .74rem; font-weight: 800; letter-spacing: .12em; }
.apartment-mini strong { white-space: nowrap; font: 400 clamp(1.8rem, 3vw, 3rem)/1 var(--serif); }
.apartment-mini > span:not(.apartment-mini__code):not(.status) { color: #69655e; font-size: .85rem; }
.apartment-mini__price { color: var(--ink) !important; font-weight: 700; }
.status { display: inline-flex; align-items: center; gap: .45rem; width: max-content; font-style: normal; font-size: .66rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.status::before { width: 7px; height: 7px; border-radius: 50%; background: currentColor; content: ""; }
.is-available { color: #49775a; }
.is-reserved { color: #ad7918; }
.is-sold { color: #914139; }

.location-teaser { display: grid; grid-template-columns: 1.2fr .8fr; padding: 0; background: var(--ink); color: var(--white); }
.location-teaser__media img { width: 100%; height: 100%; min-height: 740px; object-fit: cover; }

[data-parallax] { --parallax-y: 0px; --parallax-scale: 1.12; overflow: hidden; }
[data-parallax] > img, [data-parallax] picture > img { transform: translate3d(0, var(--parallax-y), 0); scale: var(--parallax-scale); transform-origin: center; will-change: auto; transition: scale .9s cubic-bezier(.22,1,.36,1); }
[data-parallax].is-parallax-active > img, [data-parallax].is-parallax-active picture > img { will-change: transform, scale; }
[data-parallax]:hover { --parallax-scale: 1.145; }
.location-teaser__copy { display: flex; flex-direction: column; justify-content: center; max-width: 650px; padding: clamp(4rem, 8vw, 8rem); }
.location-teaser__copy p { color: rgba(255,255,255,.72); }
.distance-list { display: grid; gap: .8rem; margin: 1.5rem 0 2rem; padding: 1.6rem 0; border-top: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.distance-list span { display: flex; justify-content: space-between; color: rgba(255,255,255,.68); }
.distance-list strong { color: var(--gold-light); font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.closing-cta h2 { margin-bottom: 1.5rem; }
.closing-cta p { max-width: 650px; margin-inline: auto; }

.page-main { padding-top: var(--header); }
.page-hero { padding-top: calc(var(--header) + clamp(2.2rem, 4.5vw, 4.5rem)); padding-bottom: clamp(3rem, 5vw, 5rem); }
.page-hero--compact { display: flex; flex-direction: column; justify-content: flex-end; min-height: 43vh; padding-bottom: clamp(2.6rem, 4vw, 4rem); }
.page-hero--compact h1 { max-width: 950px; margin-bottom: 1.5rem; }
.page-hero--compact > p { max-width: 720px; color: #666159; }
.page-hero--image { position: relative; display: grid; align-items: end; height: min(78vw, 880px); min-height: 680px; padding: 0; overflow: hidden; color: var(--white); }
.page-hero--image::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,10,9,.7), rgba(10,10,9,.05) 62%); content: ""; }
.page-hero__media { position: absolute; inset: 0; }
.page-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.page-hero__content { position: relative; z-index: 1; padding-bottom: clamp(4rem, 8vw, 8rem); }
.page-hero--split { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; min-height: 72vh; }
.page-hero__copy p { max-width: 560px; color: #666159; }
.page-hero__split-media img { width: 100%; height: min(70vh, 760px); object-fit: cover; }
.quote-section blockquote { margin: 0; font: 400 clamp(2.5rem, 5vw, 5rem)/1.18 var(--serif); text-align: center; }
.quote-section .eyebrow { display: flex; justify-content: center; }

.location-intro { display: grid; grid-template-columns: minmax(420px, 1.15fr) minmax(0, .85fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; padding-top: clamp(3.5rem, 7vw, 7rem); }
.location-intro__media { margin: 0; overflow: hidden; }
.location-intro__media img { width: 100%; height: clamp(480px, 52vw, 720px); object-fit: cover; }
.location-intro h2 { max-width: 680px; margin: 0 0 1.7rem; }
.location-intro__copy { max-width: 590px; color: var(--ink); }
.location-intro__copy > :first-child { margin-top: 0; }
.location-intro__copy > :last-child { margin-bottom: 0; }

.distances__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.distances__grid article { display: grid; gap: 1rem; min-height: 220px; padding: 2rem 1.6rem; border-right: 1px solid var(--line); }
.distances__grid article:last-child { border-right: 0; }
.distances__grid strong { align-self: end; font: 400 clamp(2rem, 3vw, 3.5rem)/1 var(--serif); color: #8d6d37; }
.distances__grid span { color: #68645c; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.map-section iframe { display: block; width: 100%; height: min(65vh, 720px); border: 0; filter: grayscale(.8) sepia(.12); }
.neighborhood { display: flex; align-items: end; justify-content: space-between; gap: 4rem; }
.neighborhood__copy { max-width: 780px; }

.gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(10px, 1.2vw, 18px); padding-top: 0; }
.gallery__item { position: relative; width: 100%; min-width: 0; aspect-ratio: 4 / 3; min-height: 0; padding: 0; overflow: hidden; border: 0; background: var(--ink); cursor: zoom-in; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.gallery__item > span { position: absolute; right: 0; bottom: 0; left: 0; display: flex; justify-content: space-between; padding: 2.5rem 1.8rem 1.2rem; background: linear-gradient(0deg, rgba(0,0,0,.7), transparent); color: var(--white); font-size: .73rem; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.lightbox { width: min(94vw, 1500px); max-width: none; padding: 0; border: 0; background: transparent; color: var(--white); }
.lightbox::backdrop { background: rgba(8,8,7,.94); }
.lightbox img { max-height: 84vh; margin: auto; }
.lightbox p { margin: 1rem 3rem 0; text-align: center; }
.lightbox__close { position: fixed; top: 1.2rem; right: 1.5rem; display: grid; width: 48px; height: 48px; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(0,0,0,.4); color: transparent; font-size: 0; cursor: pointer; transition: border-color .4s ease, background-color .4s ease, transform .5s cubic-bezier(.22,1,.36,1); }
.lightbox__close::before, .lightbox__close::after { position: absolute; top: 50%; left: 50%; width: 18px; height: 1px; background: var(--white); content: ""; }
.lightbox__close::before { transform: translate(-50%,-50%) rotate(45deg); }
.lightbox__close::after { transform: translate(-50%,-50%) rotate(-45deg); }
.lightbox__close:hover { transform: rotate(8deg) scale(1.04); border-color: var(--gold-light); background: rgba(0,0,0,.68); }

.floor-browser { padding-top: 0; }
.floor-tabs { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.floor-tabs button { display: grid; gap: .2rem; min-height: 86px; padding: .85rem 1.1rem; border: 0; border-right: 1px solid var(--line); background: transparent; font: 400 1.04rem var(--serif); cursor: pointer; transition: background-color .5s ease, color .5s ease, box-shadow .5s ease; }
.floor-tabs button:last-child { border-right: 0; }
.floor-tabs button small { font: 700 .6rem var(--sans); letter-spacing: .12em; }
.floor-tabs button:hover:not([aria-selected="true"]) { background: rgba(198,163,95,.12); box-shadow: inset 0 -2px 0 rgba(198,163,95,.55); }
.floor-tabs button[aria-selected="true"] { background: var(--ink); color: var(--gold-light); }
.floor-panel { padding-top: 2.8rem; }
.floor-panel__heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: 1.4rem; }
.floor-panel__heading h2 { margin-bottom: 0; font-size: clamp(2.35rem, 3.7vw, 4rem); }
.floor-panel__heading p { max-width: 530px; color: #6b675f; }
.floor-map { position: relative; padding: clamp(.8rem, 2vw, 1.5rem); background: var(--white); box-shadow: 0 20px 60px rgba(27,24,18,.07); }
.floor-map__canvas { position: relative; width: 100%; }
.floor-map__image { position: relative; z-index: 2; width: 100%; height: auto; mix-blend-mode: multiply; pointer-events: none; }
.floor-map__units { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; overflow: visible; }
.floor-unit-link:focus, .floor-unit-link:focus-visible { outline: none; }
.floor-unit-link polygon { fill: rgba(198,163,95,.07); stroke: rgba(134,104,50,.46); stroke-width: 1.1; pointer-events: all; vector-effect: non-scaling-stroke; transition: fill .24s ease, stroke .24s ease, filter .28s ease; }
.floor-unit-link:hover polygon, .floor-unit-link:focus polygon, .floor-unit-link.is-active polygon { fill: rgba(198,163,95,.46); stroke: #8d6526; filter: drop-shadow(0 5px 11px rgba(96,67,22,.24)); }
.floor-unit-link.is-reserved polygon { fill: rgba(211,164,54,.2); stroke: rgba(164,111,17,.72); }
.floor-unit-link.is-reserved:hover polygon, .floor-unit-link.is-reserved:focus polygon, .floor-unit-link.is-reserved.is-active polygon { fill: rgba(222,174,57,.55); stroke: #8b5d0c; filter: drop-shadow(0 5px 11px rgba(126,83,11,.25)); }
.floor-unit-link.is-sold polygon { fill: rgba(145,65,57,.2); stroke: rgba(126,47,41,.72); }
.floor-unit-link.is-sold:hover polygon, .floor-unit-link.is-sold:focus polygon, .floor-unit-link.is-sold.is-active polygon { fill: rgba(157,58,50,.5); stroke: #792a24; filter: drop-shadow(0 5px 11px rgba(105,35,30,.25)); }
.floor-map__pins { position: absolute; z-index: 3; inset: 0; pointer-events: none; }
.floor-pin { position: absolute; left: var(--x); top: var(--y); display: grid; gap: .1rem; min-width: 58px; padding: .36rem .48rem; transform: translate(-50%, -50%); border: 1px solid #a98038; background: rgba(248,246,241,.96); color: var(--ink); box-shadow: 0 5px 17px rgba(0,0,0,.15); text-align: center; text-decoration: none; pointer-events: auto; transition: z-index .4s, transform .5s cubic-bezier(.22,1,.36,1), background-color .45s ease, box-shadow .5s ease, border-color .45s ease; }
.floor-pin span { font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.floor-pin small { position: absolute; top: calc(100% + 9px); left: 50%; display: grid; gap: .16rem; min-width: 178px; padding: .75rem .85rem; transform: translate(-50%, -5px); background: var(--ink); color: var(--paper); box-shadow: 0 16px 32px rgba(0,0,0,.2); opacity: 0; visibility: hidden; white-space: nowrap; text-align: left; transition: opacity .4s ease, transform .5s cubic-bezier(.22,1,.36,1), visibility .4s; }
.floor-pin small strong { color: var(--gold-light); font-size: .72rem; }
.floor-pin small em { color: rgba(255,255,255,.7); font-size: .62rem; font-style: normal; }
.floor-pin small b { font-size: .64rem; font-weight: 650; }
.floor-pin:hover, .floor-pin:focus, .floor-pin.is-active { z-index: 3; transform: translate(-50%, -50%) scale(1.09); background: var(--gold); box-shadow: 0 8px 24px rgba(73,51,16,.25); }
.floor-pin.is-reserved { border-color: #b98420; background: rgba(255,247,220,.97); }
.floor-pin.is-reserved:hover, .floor-pin.is-reserved:focus, .floor-pin.is-reserved.is-active { background: #d9a83e; }
.floor-pin.is-sold { border-color: #914139; background: rgba(252,236,233,.97); }
.floor-pin.is-sold:hover, .floor-pin.is-sold:focus, .floor-pin.is-sold.is-active { border-color: #772b25; background: #a64d44; color: var(--white); box-shadow: 0 8px 24px rgba(103,37,31,.25); }
.floor-pin:hover small, .floor-pin:focus small, .floor-pin.is-active small { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.floor-panel__mobile-list { display: none; }

.offer-table .section-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; max-width: none; }
.offer-table .section-heading .eyebrow, .offer-table .section-heading h2 { grid-column: 1; }
.offer-table .section-heading p { grid-area: 1 / 2 / 3; color: #6a655c; }
.filters { display: grid; grid-template-columns: repeat(5, 1fr) auto; gap: 12px; margin-bottom: 2.3rem; padding: 1.2rem; background: var(--white); box-shadow: 0 12px 38px rgba(34,30,23,.05); }
.filters label { display: grid; gap: .45rem; color: #6d685f; font-size: .65rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.filters input, .filters select { width: 100%; min-height: 46px; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); font-size: .9rem; transition: border-color .4s ease, background-color .4s ease, box-shadow .4s ease; }
.filters input:hover, .filters select:hover { border-color: rgba(134,104,50,.58); background: var(--white); }
.filter-reset { align-self: end; min-height: 46px; padding: .6rem 1rem; border: 1px solid var(--line); background: transparent; font-size: .68rem; font-weight: 700; cursor: pointer; transition: border-color .4s ease, background-color .4s ease, color .4s ease; }
.filter-reset:hover { border-color: var(--ink); background: var(--ink); color: var(--white); }
.apartments-table { border-top: 1px solid var(--ink); }
.apartments-table__head, .apartments-table__row { display: grid; grid-template-columns: .52fr .9fr .52fr .76fr .66fr .9fr .9fr .78fr 30px; gap: .7rem; align-items: center; padding-inline: clamp(.85rem, 1.4vw, 1.15rem); }
.apartments-table__head { min-height: 52px; color: #777168; font-size: .65rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.table-sort { display: inline-flex; align-items: center; gap: .42rem; padding: .6rem 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; text-transform: inherit; cursor: pointer; transition: color .4s ease; }
.table-sort i { display: inline-grid; width: 1.15rem; height: 1.15rem; place-items: center; border: 1px solid transparent; color: #9a7b42; font-size: .72rem; font-style: normal; transition: border-color .4s ease, background-color .4s ease, color .4s ease, transform .5s cubic-bezier(.22,1,.36,1); }
.table-sort:hover i, [aria-sort="ascending"] .table-sort i, [aria-sort="descending"] .table-sort i { border-color: var(--gold); background: var(--gold); color: var(--ink); }
.apartments-table__row { position: relative; min-height: 76px; border-top: 1px solid rgba(24,24,23,.13); text-decoration: none; transition: background-color .5s ease, box-shadow .5s ease; }
.apartments-table__row::before { position: absolute; top: 0; bottom: 0; left: 0; width: 3px; transform: scaleY(0); transform-origin: center; background: var(--gold); content: ""; transition: transform .5s cubic-bezier(.22,1,.36,1); }
.apartments-table__row:hover, .apartments-table__row.is-active { background: var(--white); box-shadow: inset 0 0 0 1px rgba(198,163,95,.13); }
.apartments-table__row:hover::before, .apartments-table__row.is-active::before { transform: scaleY(1); }
.apartments-table__row strong { font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.apartments-table__row > span { font-size: .86rem; }
.apartments-table__price { font-weight: 700; }
.apartments-table__arrow { text-align: right; transition: transform .5s cubic-bezier(.22,1,.36,1), color .4s ease; }
.apartments-table__row:hover .apartments-table__arrow { transform: translateX(5px); }
.no-results { padding: 3rem 0; }
.price-list-footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr); gap: clamp(2rem, 5vw, 5rem); margin-top: clamp(2.5rem, 5vw, 4.5rem); padding-top: clamp(1.6rem, 3vw, 2.4rem); border-top: 1px solid var(--ink); }
.price-list-footer__notes { font-family: var(--sans); font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.3; }
.price-list-footer__notes p { margin: 0 0 .55rem; }
.price-list-footer__prospect { display: grid; align-content: start; justify-items: start; gap: .7rem; padding-left: clamp(0rem, 2vw, 2rem); border-left: 1px solid var(--line); }
.price-list-footer__prospect .eyebrow { margin: 0; }
.price-list-footer__placeholder { color: #6d685f; font-size: .9rem; line-height: 1.55; }

.apartment-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; min-height: 54vh; padding-top: calc(var(--header) + 2.6rem); padding-bottom: 3.5rem; }
.apartment-hero h1 { margin-bottom: 0; }
.back-link { display: inline-block; margin-bottom: 2.5rem; color: #6d685e; font-size: .7rem; font-weight: 750; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.apartment-hero__facts { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.apartment-hero__facts > div { display: grid; grid-template-columns: auto 1fr; gap: .2rem .6rem; align-items: baseline; min-height: 150px; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.apartment-hero__facts strong { font: 400 clamp(2.5rem, 4vw, 4.5rem)/1 var(--serif); }
.apartment-hero__facts > div > span { font-family: var(--serif); }
.apartment-hero__facts small { grid-column: 1 / -1; align-self: end; color: #746f66; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.apartment-hero__facts .status { font: 400 1.5rem var(--serif); letter-spacing: 0; text-transform: none; }
.apartment-hero__facts .apartment-hero__price { min-height: 105px; }
.apartment-hero__price strong { font-size: clamp(1.65rem, 2.4vw, 2.5rem); }
.apartment-plan__heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: 2.5rem; }
.apartment-plan__heading h2 { margin-bottom: 0; }
.apartment-plan__heading > p, .apartment-plan__description { max-width: 470px; color: #69655d; }
.apartment-plan__description > :last-child { margin-bottom: 0; }
.apartment-plan__gallery { display: grid; width: 100%; max-width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.55rem, 1.1vw, 1rem); }
.apartment-plan__gallery--one { grid-template-columns: minmax(0, 1fr); }
.apartment-plan__gallery--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.apartment-plan__gallery--three .apartment-plan__card { min-height: clamp(390px, 31vw, 540px); }
.apartment-plan__gallery--three .apartment-plan__image { height: clamp(330px, 27vw, 470px); }
.apartment-plan__card { position: relative; isolation: isolate; display: grid; width: 100%; min-width: 0; max-width: 100%; min-height: clamp(460px, 47vw, 720px); padding: clamp(.65rem, 2vw, 1.6rem); overflow: hidden; border: 1px solid rgba(119,105,79,.13); background: var(--plan-surface); box-shadow: 0 24px 64px rgba(54,43,27,.09); cursor: zoom-in; transition: border-color .45s ease, box-shadow .55s ease, transform .55s cubic-bezier(.22,1,.36,1); }
.apartment-plan__card::after { position: absolute; inset: 0; border: 1px solid transparent; content: ""; pointer-events: none; transition: border-color .45s ease; }
.apartment-plan__card:hover { transform: translateY(-4px); border-color: rgba(198,163,95,.42); box-shadow: 0 31px 76px rgba(54,43,27,.14); }
.apartment-plan__card:hover::after { border-color: rgba(198,163,95,.2); }
.apartment-plan__media { display: grid; width: 100%; min-width: 0; max-width: 100%; overflow: hidden; place-items: center; }
.apartment-plan__image { display: block; width: 100%; min-width: 0; max-width: 100%; height: clamp(390px, 40vw, 630px); object-fit: contain; background: transparent; mix-blend-mode: multiply; transition: transform .65s cubic-bezier(.22,1,.36,1); }
.apartment-plan__card:not(.apartment-plan__card--3d) .apartment-plan__media { display: flex; align-items: center; justify-content: center; }
.apartment-plan__card:not(.apartment-plan__card--3d) .apartment-plan__image { width: auto; height: auto; max-width: 100%; max-height: clamp(390px, 40vw, 630px); margin-inline: auto; object-position: 50% 50%; }
.apartment-plan__gallery--three .apartment-plan__card:not(.apartment-plan__card--3d) .apartment-plan__image { max-height: clamp(330px, 27vw, 470px); }
.apartment-plan__card:hover .apartment-plan__image { transform: scale(1.012); }
.lightbox--plan { width: min(96vw, 1800px); height: 94dvh; max-height: 94dvh; overflow: hidden; }
.lightbox--plan[open] { display: grid; grid-template-rows: minmax(0, 1fr) auto; align-items: center; justify-items: center; }
.lightbox--plan img { width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; background: #fff; }
.lightbox--plan p { max-width: 100%; margin: .65rem 0 0; line-height: 1.3; }
.apartment-details { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 8vw, 9rem); }
.apartment-details__summary dl { margin: 2.5rem 0 0; border-top: 1px solid var(--line); }
.apartment-details__summary dl div { display: flex; justify-content: space-between; gap: 2rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.apartment-details__summary dt { color: #6d685f; }
.apartment-details__summary dd { margin: 0; font-weight: 700; }
.room-list { border-top: 1px solid var(--ink); }
.room-list > div { display: flex; justify-content: space-between; gap: 2rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.room-list__head { color: #6d685f; font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.room-list__total { font: 400 1.35rem var(--serif); }
.apartment-actions .shell { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end; }
.apartment-actions__buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; }
.related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.related .apartment-mini { display: flex; flex-direction: column; align-items: flex-start; min-height: 250px; border: 1px solid var(--line); }

.contact-hero { padding-top: calc(var(--header) + clamp(2.5rem, 4vw, 4.5rem)); }
.contact-hero .shell { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 8vw, 9rem); align-items: start; }
.contact-hero__copy > p { max-width: 620px; color: rgba(255,255,255,.7); }
.contact-details { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; margin-top: 3.5rem; }
.contact-details div { padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.2); }
.contact-details small { display: block; margin-bottom: .5rem; color: var(--gold-light); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.contact-details a, .contact-details address { color: var(--white); font-size: 1rem; font-style: normal; text-decoration: none; }
.contact-form-card { padding: clamp(2rem, 4vw, 4rem); background: var(--paper); color: var(--ink); }
.contact-form-card h2 { font-size: clamp(2.2rem, 3vw, 3.4rem); }
.contact-form-card form { display: grid; gap: 1.1rem; }
.contact-form-card label { display: grid; gap: .45rem; color: #5f5b54; font-size: .7rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.contact-form-card input, .contact-form-card select, .contact-form-card textarea { width: 100%; padding: .85rem .9rem; border: 1px solid var(--line); border-radius: 0; background: var(--white); color: var(--ink); font-size: .95rem; letter-spacing: 0; text-transform: none; }
.contact-form-card textarea { resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.consent { display: grid !important; grid-template-columns: auto 1fr; align-items: start; gap: .8rem !important; font-size: .68rem !important; font-weight: 500 !important; line-height: 1.5; letter-spacing: 0 !important; text-transform: none !important; }
.consent input { width: 18px; height: 18px; margin-top: .1rem; }
.honeypot { position: absolute !important; left: -9999px !important; }
.form-notice { margin-bottom: 1.5rem; padding: 1rem; border: 1px solid; font-size: .88rem; }
.form-notice--success { border-color: #6b9479; background: #e8f1ea; }
.form-notice--error { border-color: #b77168; background: #f7e9e6; }
.contact-image img { width: 100%; height: min(75vh, 850px); object-fit: cover; object-position: center 45%; }

.prose { padding-top: calc(var(--header) + 3.5rem); padding-bottom: 7rem; }
.prose h1 { margin-bottom: 2.5rem; }
.prose h2 { margin-top: 3.5rem; font-size: clamp(2rem, 3vw, 3rem); }
.prose p, .prose ul { max-width: 760px; }
.not-found { min-height: 75vh; padding-top: calc(var(--header) + 8rem); text-align: center; }

.site-footer { background: #11110f; color: rgba(255,255,255,.72); }
.site-footer__main { display: grid; grid-template-columns: 1.4fr .9fr .7fr; gap: clamp(3rem, 8vw, 8rem); padding-block: 6rem; }
.site-footer h2 { margin-bottom: 0; color: var(--white); font-size: clamp(2.8rem, 4.5vw, 5rem); }
.site-footer h3 { margin-bottom: 1.2rem; color: var(--gold-light); font: 700 .7rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.site-footer address { margin-bottom: 1rem; font-style: normal; }
.site-footer a { color: var(--white); text-decoration: none; }
.site-footer ul { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 2rem; padding-block: 1.5rem; border-top: 1px solid rgba(255,255,255,.15); font-size: .63rem; letter-spacing: .1em; text-transform: uppercase; }

.offer-nudge { position: fixed; z-index: 90; right: 22px; bottom: 22px; width: min(350px, calc(100vw - 44px)); transform: translate3d(calc(100% + 44px), 0, 0); background: var(--ink); color: var(--white); box-shadow: 0 22px 60px rgba(17,16,13,.28); opacity: 0; visibility: hidden; transition: transform .65s cubic-bezier(.22,1,.36,1), opacity .4s ease, visibility .4s; }
.offer-nudge.is-visible { transform: none; opacity: 1; visibility: visible; }
.offer-nudge__link { display: grid; grid-template-columns: 96px 1fr; min-height: 96px; text-decoration: none; }
.offer-nudge__media { overflow: hidden; }
.offer-nudge__media picture, .offer-nudge__media img { width: 100%; height: 100%; }
.offer-nudge__media img { object-fit: cover; transition: transform .65s cubic-bezier(.22,1,.36,1); }
.offer-nudge__copy { position: relative; display: grid; align-content: center; gap: .25rem; padding: 1rem 2.8rem 1rem 1.15rem; }
.offer-nudge__copy small { color: var(--gold-light); font-size: .58rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.offer-nudge__copy strong { max-width: 170px; font: 400 1.24rem/1.12 var(--serif); }
.offer-nudge__copy i { position: absolute; right: 1rem; bottom: .85rem; color: var(--gold-light); font-style: normal; transition: transform .3s; }
.offer-nudge__link:hover .offer-nudge__media img { transform: scale(1.055); }
.offer-nudge__link:hover .offer-nudge__copy i { transform: translateX(4px); }
.offer-nudge__close { position: absolute; top: .35rem; right: .45rem; width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: rgba(255,255,255,.62); font-size: 1.25rem; line-height: 1; cursor: pointer; transition: color .4s ease, transform .45s cubic-bezier(.22,1,.36,1); }
.offer-nudge__close:hover { transform: rotate(8deg); color: var(--white); }

.js-motion [data-reveal] { opacity: 0; transform: translate3d(0, 40px, 0); transition: opacity 1s cubic-bezier(.22,1,.36,1), transform 1.05s cubic-bezier(.22,1,.36,1); transition-delay: var(--reveal-delay, 0ms); }
.js-motion [data-reveal].is-visible { opacity: 1; transform: none; }
.js-motion .apartment-mini[data-reveal] { transition-property: opacity, transform, padding, background-color, box-shadow; transition-duration: 1s, 1.05s, .5s, .5s, .5s; transition-timing-function: cubic-bezier(.22,1,.36,1), cubic-bezier(.22,1,.36,1), cubic-bezier(.22,1,.36,1), ease, ease; transition-delay: var(--reveal-delay, 0ms), var(--reveal-delay, 0ms), 0s, 0s, 0s; }
.js-motion figure[data-reveal] { overflow: hidden; }
.js-motion figure[data-reveal]:not([data-parallax]) > img, .js-motion figure[data-reveal]:not([data-parallax]) picture > img { transform: scale(1.035); transition: transform 1.35s cubic-bezier(.22,1,.36,1); transition-delay: var(--reveal-delay, 0ms); }
.js-motion figure[data-reveal].is-visible:not([data-parallax]) > img, .js-motion figure[data-reveal].is-visible:not([data-parallax]) picture > img { transform: scale(1); }
.js-motion [data-reveal] .eyebrow::before { transform: scaleX(0); transform-origin: left; transition: transform .8s cubic-bezier(.22,1,.36,1) .18s; }
.js-motion [data-reveal].is-visible .eyebrow::before { transform: scaleX(1); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

@media (max-width: 1120px) {
    :root { --shell: min(100% - 40px, 1100px); }
    .site-nav__list { gap: 1rem; }
    .site-nav__list a { font-size: .75rem; }
    .site-nav__cta { display: none; }
    .filters { grid-template-columns: repeat(3, 1fr); }
    .numbers__grid { grid-template-columns: repeat(2, 1fr); }
    .numbers__grid article:nth-child(2) { border-right: 0; }
    .numbers__grid article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.2); }
}

@media (max-width: 900px) {
    :root { --header: 76px; }
    body { font-size: 16px; }
    .site-header { z-index: 1000; }
    .site-header.is-scrolled, body:not(.home) .site-header { backdrop-filter: none; }
    .site-header.is-nav-open { border-color: var(--line); background: var(--paper); color: var(--ink); box-shadow: none; }
    .nav-toggle { display: inline-flex; align-items: center; gap: .8rem; padding: .6rem 0; cursor: pointer; }
    .nav-toggle__label { font-size: .67rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
    .nav-toggle__icon { display: grid; gap: 6px; width: 24px; }
    .nav-toggle__icon i { display: block; height: 1px; background: currentColor; transition: transform .2s; }
    .nav-toggle[aria-expanded="true"] .nav-toggle__icon i:first-child { transform: translateY(3.5px) rotate(45deg); }
    .nav-toggle[aria-expanded="true"] .nav-toggle__icon i:last-child { transform: translateY(-3.5px) rotate(-45deg); }
    .site-nav { position: fixed; top: calc(var(--adminbar-height, 0px) + var(--header)); right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 1.5rem; padding: clamp(1.5rem, 5vh, 3rem) max(2rem, calc((100vw - var(--shell)) / 2)); overflow-y: auto; overscroll-behavior: contain; visibility: hidden; pointer-events: none; transform: translateX(100%); background: var(--paper); color: var(--ink); transition: transform .35s ease, visibility .35s; }
    .site-nav.is-open { visibility: visible; pointer-events: auto; transform: none; }
    .site-nav__list { display: grid; gap: 0; }
    .site-nav__list li { border-bottom: 1px solid var(--line); }
    .site-nav__list a { display: block; padding: 1rem 0; font: 400 clamp(1.8rem, 7vw, 3rem) var(--serif); letter-spacing: -.02em; }
    .site-nav__list a::after { display: none; }
    .site-nav__cta { display: inline-flex; align-self: flex-start; margin-top: .5rem; }
    .home .site-header:has(.site-nav.is-open) { background: var(--paper); color: var(--ink); }
    .hero__shade { background: linear-gradient(0deg, rgba(9,9,8,.72), rgba(9,9,8,.16) 70%); }
    .hero__content { padding-bottom: 7rem; }
    .hero__scroll { display: none; }
    .intro, .feature-story, .life-preview, .apartments-teaser, .page-hero--split, .location-intro, .apartment-details, .contact-hero .shell { grid-template-columns: minmax(0, 1fr); }
    .contact-hero__copy, .contact-form-card, .contact-details, .contact-form-card form, .contact-form-card label { min-width: 0; }
    .contact-details { overflow-wrap: anywhere; }
    .apartment-hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .apartment-hero__facts > div { min-width: 0; grid-template-columns: minmax(0, auto) minmax(0, 1fr); }
    .apartment-hero__facts strong, .apartment-hero__facts > div > span { overflow-wrap: anywhere; }
    .apartment-plan__gallery--three { grid-template-columns: 1fr; }
    .apartment-plan__gallery--three .apartment-plan__card { min-height: 0; }
    .apartment-plan__gallery--three .apartment-plan__image, .apartment-plan__gallery--three .apartment-plan__card:not(.apartment-plan__card--3d) .apartment-plan__image { height: auto; max-height: none; }
    .location-intro { gap: 2rem; }
    .location-intro__media img { height: min(105vw, 680px); }
    .intro__body { padding-top: 0; }
    .feature-story { gap: 2.5rem; }
    .feature-story__media { order: -1; }
    .feature-story__media img { height: min(110vw, 720px); }
    .common__grid { grid-template-columns: 1fr 1fr; grid-template-rows: 520px 330px; }
    .common__large { grid-column: 1 / 3; grid-row: auto; }
    .apartments-teaser__intro { position: static; }
    .location-teaser { grid-template-columns: 1fr; }
    .location-teaser__media img { min-height: 520px; }
    .location-teaser__copy { max-width: none; }
    .page-hero--split { padding-top: calc(var(--header) + 4rem); }
    .page-hero__split-media img { height: 65vh; }
    .distances__grid { grid-template-columns: repeat(2, 1fr); }
    .distances__grid article:nth-child(2) { border-right: 0; }
    .distances__grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery__item { min-height: 0; }
    .floor-tabs { overflow-x: auto; grid-template-columns: repeat(5, minmax(160px, 1fr)); }
    .floor-map { padding: .8rem; }
    .floor-map__image { height: auto; }
    .floor-map__pins { inset: 0; }
    .floor-pin { min-width: 48px; padding: .3rem; }
    .floor-pin small { display: none !important; }
    .filters { grid-template-columns: repeat(2, 1fr); }
    .apartments-table__head { display: flex; gap: .45rem; min-height: 0; padding: .75rem 0; overflow-x: auto; scrollbar-width: none; }
    .apartments-table__head::-webkit-scrollbar { display: none; }
    .apartments-table__head > span { flex: 0 0 auto; }
    .apartments-table__head > span:last-child { display: none; }
    .table-sort { padding: .48rem .68rem; border: 1px solid var(--line); background: var(--white); }
    .apartments-table__row { grid-template-columns: repeat(2, 1fr); gap: .5rem 1.5rem; padding: 1.2rem .9rem; }
    .apartments-table__row > span::before { display: block; color: #7c766c; font-size: .58rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; content: attr(data-label); }
    .apartments-table__arrow { display: none; }
    .price-list-footer { grid-template-columns: 1fr; gap: 1.7rem; }
    .price-list-footer__prospect { padding-left: 0; padding-top: 1.5rem; border-top: 1px solid var(--line); border-left: 0; }
    .apartment-hero { grid-template-columns: minmax(0, 1fr); padding-top: calc(var(--header) + 3rem); }
    .back-link { margin-bottom: 2rem; }
    .apartment-actions .shell { grid-template-columns: 1fr; }
    .related__grid { grid-template-columns: 1fr; }
    .contact-details { grid-template-columns: 1fr; }
    .site-footer__main { grid-template-columns: 1fr 1fr; }
    .site-footer__brand { grid-column: 1 / 3; }
}

@media (max-width: 620px) {
    :root { --shell: calc(100% - 32px); }
    h1 { font-size: clamp(2.4rem, 11vw, 4rem); overflow-wrap: anywhere; }
    h2 { font-size: clamp(2rem, 8.5vw, 3.2rem); overflow-wrap: anywhere; }
    .brand { gap: .5rem; }
    .brand__mark { width: 30px; height: 39px; }
    .brand__wordmark { width: 116px; }
    .hero { min-height: 900px; }
    .hero__image { object-position: 58% center; }
    .hero__content { padding-bottom: 4.5rem; }
    .hero h1 { font-size: clamp(2.8rem, 12vw, 4.5rem); }
    .button-row { align-items: stretch; flex-direction: column; }
    .button-row .button { width: 100%; }
    .numbers__grid { grid-template-columns: 1fr; }
    .numbers__grid article { min-height: 170px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
    .numbers__features { display: grid; grid-template-columns: 1fr 1fr; }
    .feature-list li { grid-template-columns: 1fr; gap: .4rem; }
    .common__grid { display: grid; grid-template-columns: 1fr; grid-template-rows: auto; }
    .common__large { grid-column: auto; }
    .common__grid figure { height: 105vw; max-height: 600px; }
    .apartment-mini { grid-template-columns: 1fr 1fr; min-height: 170px; }
    .apartment-mini .status { grid-column: 2; }
    .location-teaser__media img { min-height: 420px; }
    .location-teaser__copy { padding: 4rem 1rem; }
    .page-hero--compact { min-height: 42vh; }
    .page-hero--image { min-height: 720px; }
    .page-hero__content { padding-bottom: 4rem; }
    .page-hero__split-media img { height: 62vh; }
    .distances__grid { grid-template-columns: 1fr; }
    .distances__grid article { min-height: 160px; border-right: 0; border-bottom: 1px solid var(--line); }
    .neighborhood { align-items: stretch; flex-direction: column; }
    .gallery { width: 100%; grid-template-columns: 1fr; gap: 8px; }
    .gallery__item { min-height: 0; }
    .floor-panel__heading { align-items: start; flex-direction: column; gap: 1rem; }
    .floor-map { padding: .45rem; overflow-x: auto; }
    .floor-map__canvas { min-width: 680px; }
    .floor-map__image { min-width: 0; min-height: 0; }
    .floor-map__pins { inset: 0; }
    .floor-pin { min-width: 44px; padding: .26rem .34rem; }
    .floor-pin span { font-size: .6rem; }
    .floor-panel__mobile-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-top: 1px; background: var(--line); }
    .floor-panel__mobile-list a { display: grid; gap: .2rem; padding: 1rem; background: var(--white); text-decoration: none; }
    .floor-panel__mobile-list strong { font-family: var(--serif); font-size: 1.3rem; }
    .floor-panel__mobile-list span { color: #6a665f; font-size: .76rem; }
    .floor-panel__mobile-list small { color: #876b38; font-size: .68rem; }
    .offer-table .section-heading { display: block; }
    .filters { grid-template-columns: 1fr; }
    .apartments-table__row { grid-template-columns: 1fr 1fr; }
    .apartment-hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .apartment-hero__facts > div { min-height: 125px; grid-template-columns: minmax(0, 1fr); padding: 1rem; }
    .apartment-hero__facts strong { font-size: clamp(1.7rem, 8vw, 2.35rem); }
    .apartment-hero__facts > div:nth-child(3) strong { white-space: nowrap; }
    .apartment-plan { padding-inline: 0; }
    .apartment-plan__heading { align-items: start; flex-direction: column; gap: .6rem; }
    .apartment-plan__gallery { grid-template-columns: 1fr; gap: .7rem; }
    .apartment-plan__card { min-height: 0; padding: .4rem; }
    .apartment-plan__image { height: auto; max-height: none; }
    .form-grid { grid-template-columns: 1fr; }
    .contact-form-card { margin-inline: -16px; }
    .site-footer__main { grid-template-columns: 1fr; }
    .site-footer__brand { grid-column: auto; }
    .site-footer__bottom { align-items: flex-start; flex-direction: column; }
    .offer-nudge { right: 12px; bottom: 12px; width: calc(100vw - 24px); }
    .offer-nudge__link { grid-template-columns: 78px 1fr; min-height: 82px; }
    .offer-nudge__copy strong { font-size: 1.1rem; }
}

@media (max-width: 782px) {
    body.admin-bar { --adminbar-height: 46px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    .js-motion [data-reveal] { transform: translate3d(0, 24px, 0); transition-duration: .7s; }
    .js-motion .apartment-mini[data-reveal] { transition-duration: .7s, .7s, .5s, .5s, .5s; }
    .hero__image { animation-duration: .4s; }
    .offer-nudge { transition-duration: .45s; }
}

@media print {
    .site-header, .site-footer, .button, .apartment-actions, .related, .offer-nudge { display: none !important; }
    body { background: #fff; color: #000; }
    .apartment-plan { background: #fff; }
}
