:root {
  --black: #100f0d;
  --charcoal: #1c1a17;
  --gold: #c6a15b;
  --gold-light: #e0c58c;
  --marble: #f7f5f0;
  --stone: #ece8df;
  --white: #fff;
  --ink: #1d1b18;
  --muted: #65615a;
  --line: rgba(29, 27, 24, .14);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", "Segoe UI", sans-serif;
  --wrap: 1180px;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --shadow: 0 28px 70px -32px rgba(20, 17, 13, .38);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; }
body { max-width: 100%; margin: 0; overflow-x: hidden; background: var(--white); color: var(--ink); font: 400 1rem/1.7 var(--sans); -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
h1, h2, h3 { margin: 0; font-family: var(--serif); font-weight: 600; line-height: 1.02; }
h2 { font-size: clamp(2.5rem, 5vw, 4.4rem); letter-spacing: -.025em; }
p { margin: 0; }

.eyebrow { display: flex; align-items: center; gap: .8rem; margin: 0 0 1.2rem; color: #75613c; font-size: .72rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow::before { width: 34px; height: 1px; background: var(--gold); content: ""; }
.eyebrow--light { color: var(--gold-light); }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: .85rem 1.6rem; border: 1px solid transparent; border-radius: 2px; font-size: .76rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; transition: transform .3s var(--ease), background .3s, color .3s; }
.button:hover { transform: translateY(-2px); }
.button--gold { background: var(--gold); color: var(--black); }
.button--gold:hover { background: var(--gold-light); }
.button--glass { border-color: rgba(255,255,255,.55); background: rgba(0,0,0,.18); color: var(--white); backdrop-filter: blur(8px); }
.button--dark { background: var(--black); color: var(--white); }
.button--large { padding: 1rem 2rem; }
.text-link { display: inline-flex; gap: .6rem; margin-top: .8rem; border-bottom: 1px solid var(--gold); color: var(--ink); font-weight: 600; }

.nav { position: fixed; inset: 0 0 auto; z-index: 50; padding: 1.1rem 0; color: var(--white); transition: padding .35s, background .35s; }
.nav::before { position: absolute; inset: 0; z-index: -1; background: linear-gradient(#000b, transparent); content: ""; }
.nav.is-scrolled { padding: .65rem 0; background: rgba(16,15,13,.94); backdrop-filter: blur(12px); }
.nav__inner { display: flex; width: min(var(--wrap), 92%); align-items: center; gap: 2rem; margin: auto; }
.nav__brand { display: flex; flex-direction: column; font: 600 1.25rem/1 var(--serif); letter-spacing: .15em; }
.nav__brand span { margin-top: .25rem; color: var(--gold-light); font: 500 .52rem/1 var(--sans); letter-spacing: .32em; }
.nav__links { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.nav__links a { font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.nav__links a:hover { color: var(--gold-light); }
.nav__toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: transparent; color: var(--white); }
.nav__toggle span, .nav__toggle::before, .nav__toggle::after { position: absolute; width: 24px; height: 1px; background: currentColor; content: ""; transition: transform .25s; }
.nav__toggle::before { transform: translateY(-7px); }
.nav__toggle::after { transform: translateY(7px); }
.nav__toggle[aria-expanded="true"] span { opacity: 0; }
.nav__toggle[aria-expanded="true"]::before { transform: rotate(45deg); }
.nav__toggle[aria-expanded="true"]::after { transform: rotate(-45deg); }
.nav__overlay { display: none; }

.hero { position: relative; display: grid; min-height: min(900px, 100svh); place-items: center; overflow: hidden; background: var(--black); color: var(--white); }
.hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; animation: heroZoom 14s var(--ease) both; }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,7,6,.84) 0%, rgba(8,7,6,.5) 48%, rgba(8,7,6,.18) 100%), linear-gradient(0deg, rgba(8,7,6,.72), transparent 45%); }
.hero__content { position: relative; z-index: 1; width: min(var(--wrap), 88%); padding: 9rem 0 6rem; animation: rise .9s .15s var(--ease) both; }
.hero h1 { max-width: 760px; font-size: clamp(4rem, 9vw, 7.8rem); font-weight: 500; letter-spacing: -.045em; line-height: .78; }
.hero h1 em { display: inline-block; margin-left: clamp(1.5rem, 9vw, 7rem); color: var(--gold-light); font-weight: 500; }
.hero__line { margin-top: 2.2rem; font: 500 clamp(1.35rem, 2.4vw, 2rem)/1.2 var(--serif); letter-spacing: .04em; }
.hero__copy { max-width: 610px; margin-top: 1rem; color: rgba(255,255,255,.82); font-size: 1.04rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.hero__note { margin-top: 1.2rem; color: rgba(255,255,255,.66); font-size: .8rem; }
.hero__note strong { color: var(--gold-light); }
.hero__scroll { position: absolute; right: 4%; bottom: 2.5rem; z-index: 2; display: flex; align-items: center; gap: .7rem; font-size: .65rem; letter-spacing: .18em; text-transform: uppercase; writing-mode: vertical-rl; }
.hero__scroll span { width: 1px; height: 38px; background: var(--gold); }

.facts { display: grid; grid-template-columns: repeat(5, 1fr); background: var(--charcoal); color: var(--white); }
.fact { position: relative; padding: 2.2rem 1rem; text-align: center; }
.fact + .fact::before { position: absolute; top: 24%; bottom: 24%; left: 0; width: 1px; background: rgba(255,255,255,.14); content: ""; }
.fact strong { display: block; color: var(--gold-light); font: 600 clamp(1.6rem, 3vw, 2.4rem)/1 var(--serif); }
.fact span { display: block; margin-top: .55rem; color: rgba(255,255,255,.58); font-size: .62rem; letter-spacing: .17em; text-transform: uppercase; }

.section { width: min(var(--wrap), 90%); margin: auto; padding: clamp(5rem, 10vw, 9rem) 0; scroll-margin-top: 70px; }
.section__head { max-width: 760px; margin-bottom: 3.2rem; }
.section__head > p:last-child { max-width: 620px; margin-top: 1.1rem; color: var(--muted); }
.section__head--center { margin-right: auto; margin-left: auto; text-align: center; }
.section__head--center .eyebrow { justify-content: center; }
.section__head--center > p:last-child { margin-right: auto; margin-left: auto; }
.section--black { width: 100%; max-width: none; padding-right: max(5%, calc((100% - var(--wrap))/2)); padding-left: max(5%, calc((100% - var(--wrap))/2)); background: var(--black); color: var(--white); }
.section--stone { width: 100%; max-width: none; padding-right: max(5%, calc((100% - var(--wrap))/2)); padding-left: max(5%, calc((100% - var(--wrap))/2)); background-color: var(--marble); background-image: linear-gradient(120deg, transparent 28%, rgba(170,160,145,.08) 29%, transparent 30%), linear-gradient(55deg, transparent 66%, rgba(170,160,145,.06) 67%, transparent 68%); }

.story { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(2.5rem, 6vw, 6rem); }
.story__visual { position: relative; box-shadow: var(--shadow); }
.story__visual::before { position: absolute; inset: -16px 16px 16px -16px; z-index: -1; border: 1px solid var(--gold); content: ""; }
.story__visual img { width: 100%; min-height: 480px; object-fit: cover; }
.image-note { position: absolute; right: 1rem; bottom: 1rem; padding: .35rem .6rem; background: rgba(0,0,0,.65); color: #fff; font-size: .65rem; }
.story__content p:not(.eyebrow) { margin: 1.2rem 0; color: var(--muted); }

.section--black .section__head h2 { color: var(--white); }
.features { display: grid; grid-template-columns: 1fr 1fr; gap: 0 5rem; margin: 0; padding: 0; list-style: none; }
.features li { display: grid; grid-template-columns: auto 1fr; gap: 1.3rem; padding: 2rem 0; border-top: 1px solid rgba(255,255,255,.15); }
.features > li > span { color: var(--gold); font: 500 2rem/1 var(--serif); }
.features h3 { margin-bottom: .6rem; color: var(--white); font-size: 1.55rem; }
.features p { color: rgba(255,255,255,.62); font-size: .93rem; }

.details { position: relative; }
.details::before { position: absolute; top: 5%; right: -20vw; width: 55vw; height: 70%; background: radial-gradient(ellipse, rgba(198,161,91,.1), transparent 65%); content: ""; pointer-events: none; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 4rem; }
.detail-grid > div { display: grid; grid-template-columns: 130px 1fr; gap: 1.2rem; padding: 1.4rem 0; border-top: 1px solid var(--line); }
.detail-grid span { color: #7a6744; font-size: .68rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.detail-grid strong { font-weight: 500; }

.residence { width: 100%; max-width: none; padding-right: max(5%, calc((100% - var(--wrap))/2)); padding-left: max(5%, calc((100% - var(--wrap))/2)); background: var(--stone); }
.plan-tabs { display: flex; max-width: 940px; gap: .5rem; margin: 0 auto 1rem; overflow-x: auto; scrollbar-width: thin; }
.plan-tabs button { min-width: 64px; min-height: 48px; padding: .75rem 1.1rem; border: 1px solid rgba(16,15,13,.24); background: transparent; color: var(--ink); cursor: pointer; font-weight: 600; }
.plan-tabs button[aria-selected="true"] { border-color: var(--black); background: var(--black); color: var(--gold-light); }
.plan-browser { max-width: 940px; margin: auto; }
.plan-panel { display: grid; grid-template-columns: .95fr 1.05fr; overflow: hidden; background: var(--white); box-shadow: var(--shadow); }
.plan-panel__placeholder { display: grid; min-height: 490px; place-items: center; background: var(--black); color: var(--gold); }
.plan-panel__placeholder span { font: 500 8rem/1 var(--serif); }
.plan-panel__image { display: grid; min-height: 490px; place-items: center; padding: 1rem; border: 0; background: var(--white); cursor: zoom-in; }
.plan-panel__image img { width: 100%; height: 100%; max-height: 520px; object-fit: contain; }
.plan-panel__body { padding: clamp(2rem, 5vw, 4rem); }
.plan-panel__body h3 { font-size: 2.8rem; }
.plan-panel__body > p:not(.eyebrow) { margin: 1.6rem 0; color: var(--muted); }
.plan-panel dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 2rem 0; border-block: 1px solid var(--line); }
.plan-panel dl div { padding: 1.2rem .7rem; }
.plan-panel dl div + div { border-left: 1px solid var(--line); }
.plan-panel dt { color: var(--muted); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.plan-panel dd { margin: .25rem 0 0; font: 600 1.35rem/1.2 var(--serif); }
.plan-note { margin-bottom: 0; text-align: center; }

.facilities { padding-top: clamp(4rem, 7vw, 6.5rem); padding-bottom: clamp(4rem, 7vw, 6.5rem); }
.facilities .section__head { margin-bottom: 2.2rem; }
.gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.5rem, 1vw, .75rem); }
.gallery__button { min-height: 180px; aspect-ratio: 4 / 3; overflow: hidden; padding: 0; border: 0; background: var(--black); cursor: zoom-in; }
.gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.gallery__button:hover img { transform: scale(1.04); }
.fineprint { margin-top: 1.4rem; color: var(--muted); font-size: .76rem; }

.arrival__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.arrival figure { margin: 0; background: var(--black); color: var(--white); }
.arrival figure img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.arrival figcaption { padding: 1.4rem; font: 500 1.7rem/1 var(--serif); }
.arrival figcaption span { display: block; margin-bottom: .4rem; color: var(--gold-light); font: 600 .65rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; }

.location { width: 100%; max-width: none; padding: 0; background: var(--black); color: var(--white); }
.location__hero { display: grid; grid-template-columns: 2fr 3fr; }
.location__intro { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(3.5rem, 7vw, 6rem) max(7%, calc((100vw - var(--wrap))/2)); }
.location__intro p:not(.eyebrow) { max-width: 560px; margin: 1.3rem 0 2rem; color: rgba(255,255,255,.66); }
.location__image { display: grid; min-height: 500px; place-items: stretch; background: var(--marble); }
.location__map { width: 100%; min-height: 100%; padding: 0; border: 0; background: var(--marble); cursor: zoom-in; }
.location__map img { width: 100%; height: 100%; object-fit: contain; }
.location__summary { display: grid; width: min(var(--wrap), 90%); grid-template-columns: repeat(4, 1fr); margin: 0 auto; border-block: 1px solid rgba(255,255,255,.16); }
.location-card { padding: 1.6rem; }
.location-card + .location-card { border-left: 1px solid rgba(255,255,255,.16); }
.location-card span, .location-card strong { display: block; }
.location-card span { color: var(--gold-light); font-size: .65rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.location-card strong { margin-top: .7rem; color: var(--white); font: 600 1.35rem/1.1 var(--serif); }
.location-card--employment strong { color: var(--gold-light); font-size: 1.75rem; }
.location-card p { margin-top: .7rem; color: rgba(255,255,255,.58); font-size: .76rem; line-height: 1.55; }
.location__note { width: min(var(--wrap), 90%); margin: 0 auto; padding: 1.2rem 0 3rem; color: rgba(255,255,255,.52); font-size: .7rem; }
.location__note a { border-bottom: 1px solid var(--gold); color: var(--gold-light); }

.investment { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.investment--white { background: var(--white); }
.investment__copy > p:not(.eyebrow) { max-width: 670px; margin-top: 1.4rem; color: var(--muted); }
.investment__image { position: relative; margin: 0; overflow: hidden; box-shadow: var(--shadow); }
.investment__image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.investment__image figcaption { position: absolute; right: .8rem; bottom: .8rem; padding: .35rem .6rem; background: rgba(0,0,0,.68); color: var(--white); font-size: .65rem; }

.faq-section { max-width: none; }
.section--faq { width: 100%; padding-right: max(5%, calc((100% - 900px)/2)); padding-left: max(5%, calc((100% - 900px)/2)); background: #e6e0d6; }
.faq details { margin-bottom: .75rem; border: 1px solid rgba(29,27,24,.12); background: var(--white); }
.faq summary { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.4rem; cursor: pointer; list-style: none; font: 600 1.35rem/1.3 var(--serif); }
.faq summary::after { color: var(--gold); content: "+"; font: 400 1.7rem/1 var(--sans); }
.faq details[open] summary::after { content: "\2212"; }
.faq summary::-webkit-details-marker { display: none; }
.faq details p { max-width: 760px; padding: 0 1.4rem 1.5rem; color: var(--muted); }

.contact { background: var(--black); color: var(--white); }
.contact__inner { display: grid; width: min(var(--wrap), 90%); grid-template-columns: 1fr 1fr; gap: clamp(3rem, 7vw, 7rem); margin: auto; padding: clamp(5rem, 10vw, 8rem) 0; scroll-margin-top: 70px; }
.contact h2 { max-width: 580px; }
.contact__inner > div > p:not(.eyebrow) { max-width: 540px; margin: 1.4rem 0 2rem; color: rgba(255,255,255,.67); }
.contact__meta { display: flex; flex-wrap: wrap; gap: 2rem; margin: 2.5rem 0 0; padding: 0; list-style: none; }
.contact__meta span { display: block; color: var(--gold-light); font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; }
.contact__meta a, .contact__meta strong { font-size: .88rem; font-weight: 500; }
.contact__price-note { margin-top: -1.3rem !important; color: rgba(255,255,255,.52) !important; font-size: .76rem; }
.enquiry { padding: clamp(1.6rem, 4vw, 2.8rem); border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.05); }
.enquiry h3 { font-size: 2rem; }
.enquiry > p { margin: .5rem 0 1.8rem; color: rgba(255,255,255,.62); font-size: .9rem; }
.enquiry > label, .enquiry legend { display: block; margin-bottom: .5rem; color: var(--gold-light); font-size: .67rem; font-style: normal; letter-spacing: .16em; text-transform: uppercase; }
.enquiry label em { color: #e1a3a3; }
.enquiry > input { width: 100%; min-height: 48px; padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.22); border-radius: 0; background: rgba(0,0,0,.32); color: white; }
.enquiry > input.is-invalid { border-color: #ef9b9b; }
.enquiry fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin: 1.5rem 0; padding: 0; border: 0; }
.enquiry fieldset label { display: flex; align-items: center; gap: .55rem; color: rgba(255,255,255,.8); font-size: .82rem; }
.enquiry input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--gold); }
.enquiry .button { width: 100%; border: 0; }
.enquiry small { display: block; margin-top: .9rem; color: rgba(255,255,255,.45); text-align: center; }
.form-error { color: #ef9b9b !important; }

.footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .8rem 2rem; padding: 2.5rem 5%; background: #080706; color: rgba(255,255,255,.55); text-align: center; }
.footer__brand { color: var(--white); font: 600 1.2rem/1 var(--serif); letter-spacing: .14em; }
.footer__brand span { display: block; margin-top: .25rem; color: var(--gold-light); font: 500 .5rem/1 var(--sans); letter-spacing: .3em; }
.footer a:not(.footer__brand) { border-bottom: 1px solid var(--gold); color: var(--gold-light); }
.footer small { width: 100%; font-size: .7rem; }

.wa-float { position: fixed; right: 22px; bottom: 22px; z-index: 45; display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: #25d366; color: white; box-shadow: 0 14px 34px -12px rgba(37,211,102,.75); }
.wa-float svg { width: 28px; height: 28px; }
.lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 4rem; background: rgba(0,0,0,.92); opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }
.lightbox.is-open { opacity: 1; visibility: visible; }
.lightbox img { width: auto; height: auto; max-width: min(1200px, 92vw); max-height: 82vh; object-fit: contain; box-shadow: 0 30px 80px #000; }
.lightbox p { position: absolute; bottom: 1.3rem; color: white; }
.lightbox__close { position: absolute; top: 1rem; right: 1rem; width: 48px; height: 48px; border: 1px solid #ffffff66; border-radius: 50%; background: transparent; color: white; cursor: pointer; font-size: 1.7rem; }

@supports (overflow: clip) {
  html, body { overflow-x: clip; }
}

.page-hero { padding: 9rem 5% 4rem; background: var(--black); color: white; text-align: center; }
.page-hero h1 { font-size: clamp(3rem, 7vw, 5rem); }
.legal { width: min(820px, 90%); margin: auto; padding: 4rem 0 6rem; }
.legal h2 { margin: 2.4rem 0 .7rem; font-size: 1.8rem; }
.legal p { margin-bottom: 1rem; color: var(--muted); }
.legal a { border-bottom: 1px solid var(--gold); }

@keyframes rise { from { opacity: 0; transform: translateY(24px); } }
@keyframes heroZoom { from { transform: scale(1.06); } to { transform: scale(1); } }

@media (max-width: 1100px) {
  .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .nav__links { position: fixed; inset: 0 0 0 auto; z-index: 2; display: flex; width: min(340px, 84vw); flex-direction: column; align-items: stretch; justify-content: center; gap: 0; padding: 5rem 2rem; background: var(--black); transform: translateX(100%); transition: transform .35s var(--ease); }
  .nav__links.is-open { transform: none; }
  .nav__links a { padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: .85rem; }
  .nav__toggle { position: relative; z-index: 3; display: flex; margin-left: auto; }
  .nav__cta { display: none; }
  .nav__overlay { position: fixed; inset: 0; display: block; background: rgba(0,0,0,.56); opacity: 0; visibility: hidden; transition: .35s; }
  .nav__overlay.is-open { opacity: 1; visibility: visible; }
  .story, .location__hero, .investment { grid-template-columns: 1fr; }
  .location__image { order: -1; }
  .location__image { min-height: 0; }
  .location__map img { max-height: 620px; }
  .location__summary { grid-template-columns: repeat(2, 1fr); }
  .location-card:nth-child(3) { border-left: 0; }
  .location-card:nth-child(n + 3) { border-top: 1px solid rgba(255,255,255,.16); }
}

@media (max-width: 720px) {
  h2 { font-size: clamp(2.4rem, 11vw, 3.5rem); }
  .hero { min-height: 760px; }
  .hero__image { object-position: 60% center; }
  .hero__shade {
    background:
      linear-gradient(
        0deg,
        rgba(8, 7, 6, .96) 0%,
        rgba(8, 7, 6, .88) 42%,
        rgba(8, 7, 6, .72) 72%,
        rgba(8, 7, 6, .58) 100%
      ),
      linear-gradient(
        90deg,
        rgba(8, 7, 6, .46) 0%,
        rgba(8, 7, 6, .18) 72%,
        transparent 100%
      );
  }
  .hero__content { align-self: end; padding-top: 8rem; padding-bottom: max(3rem, calc(2rem + env(safe-area-inset-bottom))); }
  .hero__content :is(.eyebrow, h1, .hero__line, .hero__copy, .hero__note) { text-shadow: 0 2px 12px rgba(0,0,0,.5); }
  .hero__copy { color: #fff; }
  .hero__note { color: rgba(255,255,255,.88); }
  .hero h1 { font-size: clamp(3.1rem, 14vw, 4.5rem); }
  .hero h1 em { margin-left: 0; }
  .hero__actions { flex-direction: column; }
  .hero__actions .button { width: 100%; }
  .hero__actions .button--glass { border-color: rgba(255,255,255,.78); background: rgba(8,7,6,.58); }
  .hero__scroll { display: none; }
  .facts { grid-template-columns: repeat(2, 1fr); }
  .fact:last-child { grid-column: 1/-1; }
  .fact:nth-child(odd)::before { display: none; }
  .section { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  #overview .story__visual, .investment__image { display: none; }
  .features, .detail-grid, .plan-panel, .arrival__grid, .contact__inner { grid-template-columns: 1fr; }
  .features { gap: 0; }
  .detail-grid { gap: 0; }
  .detail-grid > div { grid-template-columns: 105px 1fr; }
  .plan-tabs { margin-right: -5.5%; margin-left: -5.5%; padding: 0 5.5% .4rem; }
  .plan-panel__placeholder { min-height: 300px; }
  .plan-panel__image { height: clamp(220px, 68vw, 280px); min-height: 0; padding: .5rem; }
  .plan-panel__image img { width: 100%; height: 100%; max-height: none; object-fit: contain; }
  .plan-panel__placeholder span { font-size: 7rem; }
  .plan-panel__body { padding: 1rem; }
  .plan-panel__body .eyebrow { margin-bottom: .55rem; }
  .plan-panel__body h3 { font-size: clamp(1.55rem, 7vw, 1.75rem); line-height: 1.05; }
  .plan-panel dl { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0; }
  .plan-panel dl div { padding: .65rem .35rem; text-align: center; }
  .plan-panel dl div + div { border-top: 0; border-left: 1px solid var(--line); }
  .plan-panel dt { font-size: .56rem; letter-spacing: .08em; }
  .plan-panel dd { font-size: 1rem; }
  .plan-note { margin-top: .8rem; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery__button { min-height: 0; aspect-ratio: 6 / 5; }
  .location__intro { padding: 3.5rem 5%; }
  .investment { gap: 0; }
  .enquiry fieldset { grid-template-columns: 1fr; }
  .contact__inner { gap: 3rem; }
  .button { width: 100%; }
  .lightbox { padding: 1rem; }
  .wa-float {
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
    width: 52px;
    height: 52px;
    contain: layout paint;
  }
}

@media (max-width: 419px) {
  .location__summary { grid-template-columns: 1fr; }
  .location-card + .location-card { border-top: 1px solid rgba(255,255,255,.16); border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
