:root{
  --gold: oklch(0.72 0.08 70);
  --gold-soft: oklch(0.82 0.05 75);
  --gold-deep: oklch(0.58 0.09 65);
  --cream: oklch(0.982 0.012 85);
  --espresso: oklch(0.24 0.02 45);
  --background: oklch(0.982 0.012 85);
  --foreground: oklch(0.24 0.02 45);
  --card: oklch(0.995 0.008 85);
  --secondary: oklch(0.94 0.015 80);
  --muted: oklch(0.94 0.015 80);
  --muted-foreground: oklch(0.48 0.02 55);
  --accent: oklch(0.92 0.03 75);
  --border: oklch(0.88 0.02 75);
  --destructive: oklch(0.55 0.2 27);
  --font-serif: "Cormorant Garamond", ui-serif, Georgia, serif;
  --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  background:var(--background);
  color:var(--foreground);
  font-family:var(--font-sans);
  font-feature-settings:"ss01","cv11";
  line-height:1.5;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--font-serif); font-weight:500; letter-spacing:-0.01em; line-height:1.1; }
em{ font-style:italic; }
button{ font-family:inherit; cursor:pointer; }
.icon{ width:1.25rem; height:1.25rem; flex-shrink:0; }

.container-tv{ width:100%; margin-inline:auto; padding-inline:1.25rem; max-width:1240px; }
.gold-divider{ display:inline-block; width:48px; height:1px; background:var(--gold); }

/* ---- Buttons ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  height:2.5rem; padding-inline:1.25rem; border:1px solid transparent;
  transition:background-color .25s, color .25s, border-color .25s; white-space:nowrap;
}
.btn-lg{ height:3rem; padding-inline:1.75rem; }
.btn-gold{ background:var(--gold); color:#fff; }
.btn-gold:hover{ background:var(--gold-deep); }
.btn-outline-light{ background:transparent; border-color:rgba(255,255,255,.4); color:#fff; }
.btn-outline-light:hover{ background:#fff; color:var(--espresso); }
.btn-outline-gold{ background:transparent; border-color:var(--gold); color:var(--gold-deep); }
.btn-outline-gold:hover{ background:oklch(0.72 0.08 70 / .1); }
.btn-block{ width:100%; }

/* ---- Eyebrow / headings ---- */
.eyebrow{ display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; }
.eyebrow .lbl{ color:var(--gold-deep); font-size:11px; letter-spacing:.3em; text-transform:uppercase; }
.section-head{ max-width:42rem; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head.center .eyebrow{ justify-content:center; }
.section-head h2{ font-size:clamp(1.75rem,4vw,3rem); color:var(--espresso); }
.section-head .intro{ margin-top:1.25rem; color:var(--muted-foreground); font-size:clamp(1rem,2vw,1.125rem); line-height:1.65; }

/* ---- Reveal animation ---- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---- Header ---- */
.site-header{ position:fixed; top:0; left:0; right:0; z-index:50; transition:background-color .5s, box-shadow .5s, border-color .5s; border-bottom:1px solid transparent; }
.site-header.scrolled{ background:oklch(0.982 0.012 85 / .95); backdrop-filter:blur(12px); border-bottom-color:var(--border); box-shadow:0 1px 0 rgba(199,167,121,.15); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; height:4rem; }
@media(min-width:640px){ .header-inner{ height:5rem; } }
.logo{ display:inline-flex; align-items:center; }
.logo img{ height:30px; width:auto; display:block; }
@media(min-width:640px){ .logo img{ height:36px; } }
.logo--footer img{ height:40px; }
.nav-desktop{ display:none; flex:1; align-items:center; justify-content:space-evenly; gap:1rem; padding-inline:2.5rem; }
.nav-desktop a{ font-size:13px; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; transition:color .25s; color:rgba(255,255,255,.9); }
.nav-desktop a:hover{ color:#fff; }
.site-header.scrolled .nav-desktop a{ color:oklch(0.24 0.02 45 / .8); }
.site-header.scrolled .nav-desktop a:hover{ color:var(--gold-deep); }
.header-cta{ display:none; align-items:center; gap:.75rem; flex-shrink:0; margin-left:1.5rem; }
.header-phone{ display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap; font-size:.875rem; font-weight:500; letter-spacing:.02em; color:#fff; height:2.5rem; padding-inline:1rem; border:1px solid rgba(255,255,255,.4); transition:background-color .2s,color .2s,border-color .2s; }
.header-phone:hover{ background:#fff; color:var(--espresso); }
.header-phone:hover .icon{ color:var(--gold-deep); }
.site-header.scrolled .header-phone{ color:var(--espresso); border-color:var(--border); }
.header-phone .icon{ color:var(--gold); width:1rem; height:1rem; }
.menu-toggle{ display:inline-flex; padding:.5rem; margin-right:-.5rem; background:none; border:none; color:#fff; }
.site-header.scrolled .menu-toggle{ color:var(--espresso); }
.menu-toggle .icon{ width:1.5rem; height:1.5rem; }
.nav-mobile{ display:none; background:var(--cream); border-top:1px solid var(--border); }
.nav-mobile.open{ display:block; }
.nav-mobile .inner{ padding-block:1.5rem; display:flex; flex-direction:column; gap:1.25rem; }
.nav-mobile a{ color:var(--espresso); font-size:.875rem; letter-spacing:.14em; text-transform:uppercase; }
.nav-mobile .m-phone{ display:flex; align-items:center; gap:.5rem; color:var(--espresso); font-size:.875rem; }
.nav-mobile .m-phone .icon{ color:var(--gold); width:1rem; height:1rem; }
@media(min-width:768px){ .header-cta{ display:flex; } }
@media(min-width:1200px){ .nav-desktop{ display:flex; } .menu-toggle{ display:none; } .nav-mobile{ display:none !important; } }

/* ---- Hero ---- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; animation:heroZoom 2.2s cubic-bezier(.22,1,.36,1) both; }
.hero-bg img,
.hero-bg .hero-video{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(to bottom, oklch(0.24 0.02 45 / .5), oklch(0.24 0.02 45 / .25), oklch(0.24 0.02 45 / .85)); }
@keyframes heroZoom{ from{ transform:scale(1.08);} to{ transform:scale(1);} }
@media (prefers-reduced-motion: reduce){ .hero-bg{ animation:none; } }
.hero-inner{ position:relative; width:100%; padding-top:8rem; padding-bottom:4rem; }
@media(min-width:640px){ .hero-inner{ padding-bottom:6rem; } }
.hero-copy{ max-width:48rem; }
.hero .eyebrow .lbl{ color:rgba(255,255,255,.8); }
.hero h1{ color:#fff; font-size:clamp(2.25rem,7vw,4.5rem); line-height:1.05; }
.hero h1 .accent{ font-style:italic; color:var(--gold-soft); }
.hero p{ margin-top:1.5rem; color:rgba(255,255,255,.85); font-size:clamp(1rem,2vw,1.125rem); max-width:36rem; line-height:1.65; }
.hero-actions{ margin-top:2rem; display:flex; flex-wrap:wrap; gap:.75rem; }
.hero-stats{ margin-top:3.5rem; display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.15); }
@media(min-width:640px){ .hero-stats{ grid-template-columns:repeat(4,1fr); } }
.hero-stats .cell{ background:oklch(0.24 0.02 45 / .6); backdrop-filter:blur(4px); padding:1rem; }
@media(min-width:640px){ .hero-stats .cell{ padding:1.25rem; } }
.hero-stats .k{ color:var(--gold-soft); font-size:10px; letter-spacing:.24em; text-transform:uppercase; }
.hero-stats .v{ color:#fff; font-family:var(--font-serif); font-size:1.25rem; margin-top:.25rem; }
@media(min-width:640px){ .hero-stats .v{ font-size:1.5rem; } }

/* ---- Sections ---- */
section{ scroll-margin-top:5rem; }
.pad{ padding-block:5rem; }
@media(min-width:640px){ .pad{ padding-block:7rem; } }
.bg-cream{ background:var(--cream); }
.bg-secondary{ background:oklch(0.94 0.015 80 / .4); }

/* ---- Highlights ---- */
.hl-grid{ margin-top:3.5rem; display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); }
@media(min-width:640px){ .hl-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .hl-grid{ grid-template-columns:repeat(3,1fr); } }
.hl-card{ background:var(--card); padding:2rem; transition:background-color .25s; }
@media(min-width:640px){ .hl-card{ padding:2.5rem; } }
.hl-card:hover{ background:oklch(0.92 0.03 75 / .4); }
.hl-card .icon{ width:1.75rem; height:1.75rem; color:var(--gold); }
.hl-card h3{ margin-top:1.25rem; font-size:1.25rem; color:var(--espresso); }
.hl-card p{ margin-top:.75rem; color:var(--muted-foreground); font-size:.875rem; line-height:1.65; }

/* ---- Location ---- */
.two-col{ display:grid; grid-template-columns:1fr; gap:3rem; align-items:center; }
@media(min-width:1024px){ .two-col{ grid-template-columns:1fr 1fr; gap:5rem; } }
.loc-media{ position:relative; }
.loc-media .frame{ aspect-ratio:4/5; overflow:hidden; }
.loc-media .frame img{ width:100%; height:100%; object-fit:cover; }
.loc-badge{ position:absolute; bottom:-1.5rem; right:-1.5rem; background:var(--cream); border:1px solid var(--border); padding:1.5rem; max-width:240px; }
.loc-badge .icon{ color:var(--gold); }
.loc-badge .t{ margin-top:.75rem; font-family:var(--font-serif); font-size:1.125rem; color:var(--espresso); line-height:1.25; }
.loc-badge .s{ margin-top:.5rem; font-size:.75rem; color:var(--muted-foreground); letter-spacing:.02em; }
@media(max-width:639px){ .loc-badge{ display:none; } }
.loc-facts{ margin-top:2rem; display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media(min-width:640px){ .loc-facts{ grid-template-columns:repeat(2,1fr); } }
.loc-fact{ border-left:1px solid var(--gold); padding-left:1rem; }
.loc-fact .k{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); }
.loc-fact .v{ margin-top:.25rem; color:var(--espresso); font-family:var(--font-serif); font-size:1.125rem; }
.loc-note{ margin-top:2rem; font-size:.875rem; color:var(--muted-foreground); line-height:1.65; }

/* ---- Specifications ---- */
.spec-grid{ display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:start; }
@media(min-width:1024px){ .spec-grid{ grid-template-columns:minmax(0,0.85fr) minmax(0,1fr); gap:4rem; align-items:stretch; } }
/* LEFT — image, sticky & contained so it never overflows its column */
.spec-media{ position:relative; overflow:hidden; min-width:0; border-radius:2px; }
.spec-media img{ display:block; width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; }
.spec-media::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:6rem; background:linear-gradient(to top, oklch(0.24 0.02 45 / .4), transparent); }
@media(min-width:1024px){
  .spec-media{ position:sticky; top:6rem; align-self:start; aspect-ratio:4/5; }
  .spec-media img{ aspect-ratio:auto; height:100%; }
}
/* RIGHT — heading + accordion, isolated so long text wraps, never pushes layout */
.spec-body{ min-width:0; }
.spec-body .section-head{ max-width:none; margin-bottom:2rem; }
.accordion{ min-width:0; width:100%; }
.acc-item{ border-bottom:1px solid var(--border); }
.acc-trigger{ width:100%; background:none; border:none; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-block:1.25rem; text-align:left; font-family:var(--font-serif); font-size:1.125rem; color:var(--espresso); transition:color .2s; }
@media(min-width:640px){ .acc-trigger{ padding-block:1.5rem; font-size:1.25rem; } }
.acc-trigger:hover{ color:var(--gold-deep); }
.acc-title{ min-width:0; overflow-wrap:anywhere; }
.acc-trigger .chev{ width:1.15rem; height:1.15rem; color:var(--gold); transition:transform .25s; flex-shrink:0; }
.acc-item.open .acc-trigger .chev{ transform:rotate(180deg); }
.acc-panel{ overflow:hidden; max-height:0; transition:max-height .35s ease; }
.acc-panel .inner{ color:var(--muted-foreground); font-size:.9375rem; line-height:1.65; padding-bottom:1.5rem; padding-right:.5rem; overflow-wrap:anywhere; }
@media(min-width:640px){ .acc-panel .inner{ font-size:1rem; } }

/* ---- Gallery — proper bento grid ---- */
.bento{ margin-top:3.5rem; display:grid; grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; gap:.6rem; }
@media(min-width:768px){ .bento{ grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:.75rem; } }
@media(min-width:1024px){ .bento{ grid-auto-rows:230px; gap:1rem; } }
.g-tile{ position:relative; overflow:hidden; background:var(--muted); border:none; padding:0; text-align:left; cursor:pointer; }
.g-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.22,1,.36,1); }
.g-tile:hover img{ transform:scale(1.06); }
.g-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, oklch(0.24 0.02 45 / .7), oklch(0.24 0.02 45 / .1), transparent); opacity:.7; transition:opacity .3s; }
.g-tile:hover::after{ opacity:.9; }
.g-cap{ position:absolute; left:1rem; bottom:1rem; right:1rem; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; gap:.75rem; }
@media(min-width:640px){ .g-cap{ left:1.25rem; bottom:1.25rem; } }
.g-cap .eb{ font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-soft); }
.g-cap .ttl{ margin-top:.25rem; font-family:var(--font-serif); font-size:1.125rem; color:var(--cream); line-height:1.2; }
@media(min-width:640px){ .g-cap .ttl{ font-size:1.25rem; } }
.g-cap .arr{ width:2rem; height:2rem; border:1px solid rgba(251,248,241,.4); display:grid; place-items:center; opacity:0; transition:opacity .3s; flex-shrink:0; }
.g-tile:hover .g-cap .arr{ opacity:1; }
.g-cap .arr .icon{ width:1rem; height:1rem; color:var(--cream); }

/* Mobile (2-col): full-width heroes + a paired row of squares */
.g-arrival  { grid-column:span 2; grid-row:span 2; }
.g-elevation{ grid-column:span 2; grid-row:span 2; }
.g-pool     { grid-column:span 1; grid-row:span 1; }
.g-threshold{ grid-column:span 1; grid-row:span 1; }
.g-clubhouse{ grid-column:span 2; grid-row:span 1; }
.g-porch    { grid-column:span 1; grid-row:span 1; }
.g-facade   { grid-column:span 1; grid-row:span 1; }
.g-avenue   { grid-column:span 2; grid-row:span 1; }

/* Desktop (4-col): deterministic 4×4 bento — fills every cell, no gaps */
@media(min-width:768px){
  .g-arrival  { grid-column:1 / 3; grid-row:1 / 3; }
  .g-elevation{ grid-column:3 / 4; grid-row:1 / 3; }
  .g-pool     { grid-column:4 / 5; grid-row:1 / 2; }
  .g-threshold{ grid-column:4 / 5; grid-row:2 / 3; }
  .g-clubhouse{ grid-column:1 / 3; grid-row:3 / 4; }
  .g-facade   { grid-column:3 / 5; grid-row:3 / 4; }
  .g-porch    { grid-column:1 / 2; grid-row:4 / 5; }
  .g-avenue   { grid-column:2 / 5; grid-row:4 / 5; }
}

/* Lightbox */
.lightbox{ position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:1.5rem; background:oklch(0.24 0.02 45 / .8); backdrop-filter:blur(4px); }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:min(1024px,100%); max-height:90vh; width:auto; height:auto; }
.lightbox .close{ position:absolute; top:1.25rem; right:1.25rem; background:none; border:none; color:#fff; padding:.5rem; }
.lightbox .close .icon{ width:1.75rem; height:1.75rem; }

/* ---- Trust ---- */
.trust{ background:var(--espresso); color:var(--cream); }
.trust-grid{ display:grid; grid-template-columns:1fr; gap:2.5rem; }
@media(min-width:1024px){ .trust-grid{ grid-template-columns:1fr 2fr; gap:3.5rem; } }
.trust .eyebrow .bar{ display:inline-block; width:48px; height:1px; background:var(--gold); }
.trust .eyebrow .lbl{ color:var(--gold-soft); }
.trust h2{ color:var(--cream); font-size:clamp(1.75rem,4vw,2.25rem); }
.trust h2 em{ color:var(--gold-soft); }
.creds{ margin-top:2rem; display:flex; flex-direction:column; gap:1.25rem; }
.cred{ display:flex; gap:1rem; }
.cred .icon{ width:1.5rem; height:1.5rem; color:var(--gold); margin-top:.125rem; }
.cred .k{ font-family:var(--font-serif); font-size:1.125rem; color:var(--cream); }
.cred .v{ color:oklch(0.982 0.012 85 / .6); font-size:.875rem; margin-top:.25rem; }
.tst-grid{ display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:640px){ .tst-grid{ grid-template-columns:repeat(2,1fr); } }
.tst{ border:1px solid rgba(251,248,241,.15); padding:1.5rem; background:oklch(0.982 0.012 85 / .02); }
@media(min-width:640px){ .tst{ padding:1.75rem; } }
.tst .stars{ display:flex; gap:.25rem; color:var(--gold); margin-bottom:1rem; }
.tst .stars .icon{ width:.875rem; height:.875rem; fill:currentColor; stroke:none; }
.tst .q{ font-family:var(--font-serif); font-size:1.125rem; color:var(--cream); line-height:1.35; }
.tst .n{ margin-top:1.25rem; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:oklch(0.982 0.012 85 / .5); }

/* ---- Contact ---- */
.contact-grid{ display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
@media(min-width:1024px){ .contact-grid{ grid-template-columns:1fr 1.1fr; gap:5rem; } }
.contact-info{ margin-top:2.5rem; display:flex; flex-direction:column; gap:1.25rem; }
.ci-row{ display:flex; align-items:flex-start; gap:1rem; }
.ci-row .badge{ width:2.5rem; height:2.5rem; border:1px solid oklch(0.72 0.08 70 / .4); display:grid; place-items:center; flex-shrink:0; transition:background-color .2s; }
.ci-row:hover .badge{ background:oklch(0.72 0.08 70 / .1); }
.ci-row .badge .icon{ width:1rem; height:1rem; color:var(--gold); }
.ci-row .t{ color:var(--espresso); font-family:var(--font-serif); font-size:1.125rem; }
.ci-row .s{ font-size:.75rem; color:var(--muted-foreground); letter-spacing:.02em; }

.form-card{ background:var(--card); border:1px solid var(--border); padding:1.5rem; box-shadow:0 20px 60px -30px rgba(88,50,20,.25); }
@media(min-width:640px){ .form-card{ padding:2.5rem; } }
.form-eyebrow{ display:flex; align-items:center; gap:.75rem; margin-bottom:.5rem; }
.form-eyebrow .icon{ width:1rem; height:1rem; color:var(--gold); }
.form-eyebrow span{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); }
.tv-form{ display:flex; flex-direction:column; gap:1.25rem; }
.field label{ display:block; font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:oklch(0.24 0.02 45 / .7); }
.field .control{ margin-top:.5rem; width:100%; border:none; border-bottom:1px solid var(--border); background:transparent; padding:.5rem 0; font-family:inherit; font-size:1rem; color:var(--espresso); }
.field .control:focus{ outline:none; border-bottom-color:var(--gold); }
select.control{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23C7A779' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .1rem center; padding-right:1.5rem; }
.field-row{ display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:640px){ .field-row{ grid-template-columns:repeat(2,1fr); } }
.err{ margin-top:.25rem; font-size:.75rem; color:var(--destructive); }
.tc-row{ display:flex; align-items:flex-start; gap:.75rem; padding-top:.5rem; }
.tc-row input[type=checkbox]{ margin-top:.15rem; width:1rem; height:1rem; accent-color:var(--gold); flex-shrink:0; }
.tc-row label{ font-size:.75rem; color:var(--muted-foreground); line-height:1.65; }
.tc-row a{ color:var(--gold-deep); text-decoration:underline; text-underline-offset:2px; }
.tc-note{ font-size:.75rem; color:var(--muted-foreground); line-height:1.65; }
.tc-note a{ color:var(--gold-deep); text-decoration:underline; text-underline-offset:2px; }
.form-success{ text-align:center; padding-block:2rem; }
.form-success .ring{ width:3.5rem; height:3.5rem; margin-inline:auto; border-radius:9999px; background:oklch(0.72 0.08 70 / .1); display:grid; place-items:center; }
.form-success .ring .icon{ width:1.75rem; height:1.75rem; color:var(--gold-deep); }
.form-success h3{ margin-top:1.5rem; font-size:1.5rem; color:var(--espresso); }
.form-success p{ margin-top:.75rem; color:var(--muted-foreground); max-width:28rem; margin-inline:auto; }
.form-success .call{ display:inline-flex; align-items:center; gap:.5rem; margin-top:2rem; color:var(--gold-deep); font-size:.875rem; letter-spacing:.14em; text-transform:uppercase; }
.form-success .call .icon{ width:1rem; height:1rem; }

/* Toast */
.toast{ position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%) translateY(200%); z-index:120; background:var(--espresso); color:var(--cream); padding:.75rem 1.25rem; font-size:.875rem; box-shadow:0 10px 40px -10px rgba(0,0,0,.4); transition:transform .35s cubic-bezier(.22,1,.36,1); max-width:90vw; }
.toast.show{ transform:translateX(-50%) translateY(0); }

/* ---- Footer ---- */
.site-footer{ background:var(--espresso); color:oklch(0.982 0.012 85 / .8); padding-top:4rem; padding-bottom:2rem; }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:2.5rem; }
@media(min-width:768px){ .footer-grid{ grid-template-columns:repeat(4,1fr); } }
.footer-brand{ grid-column:span 1; }
@media(min-width:768px){ .footer-brand{ grid-column:span 2; } }
.footer-brand p{ margin-top:1.25rem; font-size:.875rem; color:oklch(0.982 0.012 85 / .6); max-width:24rem; line-height:1.65; }
.footer-brand .btn{ margin-top:1.5rem; }
.footer-col .head{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:1rem; }
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:.5rem; font-size:.875rem; }
.footer-col a:hover{ color:var(--gold); }
.footer-bottom{ margin-top:3rem; padding-top:1.5rem; border-top:1px solid oklch(0.982 0.012 85 / .1); display:flex; flex-direction:column; gap:1rem; justify-content:space-between; font-size:.75rem; color:oklch(0.982 0.012 85 / .4); }
@media(min-width:768px){ .footer-bottom{ flex-direction:row; align-items:center; } }
.footer-bottom .links{ display:flex; gap:1.5rem; }
.footer-bottom a:hover{ color:var(--gold); }

/* ---- Mobile sticky CTA ---- */
.mobile-cta{ position:fixed; bottom:0; left:0; right:0; z-index:40; background:oklch(0.982 0.012 85 / .95); backdrop-filter:blur(12px); border-top:1px solid var(--border); padding:.75rem; display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.mobile-cta .btn{ height:3rem; }
@media(min-width:1200px){ .mobile-cta{ display:none; } }
body{ padding-bottom:0; }
@media(max-width:1199px){ body{ padding-bottom:4.5rem; } }

/* ---- Floor Plans ---- */
.fp{ margin-top:3rem; }
.fp-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin-bottom:2.5rem; }
.fp-tab{ background:transparent; border:1px solid var(--border); color:var(--muted-foreground); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; padding:.7rem 1.25rem; transition:background-color .2s,color .2s,border-color .2s; }
.fp-tab:hover{ border-color:var(--gold); color:var(--gold-deep); }
.fp-tab.active{ background:var(--espresso); border-color:var(--espresso); color:var(--cream); }
.fp-panel[hidden]{ display:none; }
.fp-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
@media(min-width:768px){ .fp-grid{ grid-template-columns:repeat(4,1fr); gap:1.25rem; } }
.fp-card{ display:flex; flex-direction:column; gap:.75rem; margin:0; }
.fp-img{ position:relative; display:block; width:100%; aspect-ratio:3/4; background:#fff; border:1px solid var(--border); padding:0; overflow:hidden; cursor:zoom-in; }
.fp-img img{ width:100%; height:100%; object-fit:contain; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.fp-img:hover img{ transform:scale(1.04); }
.fp-zoom{ position:absolute; top:.5rem; right:.5rem; width:1.9rem; height:1.9rem; background:oklch(0.24 0.02 45 / .55); display:grid; place-items:center; opacity:0; transition:opacity .25s; }
.fp-img:hover .fp-zoom{ opacity:1; }
.fp-zoom .icon{ width:1rem; height:1rem; color:#fff; }
.fp-card figcaption{ text-align:center; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); }

/* ---- Assurance — proof stats (replaces placeholder testimonials) ---- */
.proof-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(251,248,241,.15); border:1px solid rgba(251,248,241,.15); }
.proof{ background:var(--espresso); padding:1.5rem; }
@media(min-width:640px){ .proof{ padding:1.75rem; } }
.proof .icon{ width:1.5rem; height:1.5rem; color:var(--gold); }
.proof .k{ margin-top:1rem; font-family:var(--font-serif); font-size:1.75rem; color:var(--cream); line-height:1; }
@media(min-width:640px){ .proof .k{ font-size:2rem; } }
.proof .v{ margin-top:.5rem; font-size:.8125rem; color:oklch(0.982 0.012 85 / .6); line-height:1.4; }

/* ---- Form trust marker (beside submit) ---- */
.form-trust{ display:flex; align-items:flex-start; gap:.6rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border); }
.form-trust .icon{ width:1.1rem; height:1.1rem; color:var(--gold-deep); flex-shrink:0; margin-top:.05rem; }
.form-trust span{ font-size:.75rem; color:var(--muted-foreground); line-height:1.5; }

/* ---- Location map ---- */
.loc-map{ margin-top:2rem; }
.loc-map iframe{ width:100%; height:280px; border:1px solid var(--border); display:block; filter:grayscale(.15); }
.loc-map-link{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.75rem; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); }
.loc-map-link .icon{ width:.9rem; height:.9rem; color:var(--gold); }

/* ---- Legal pages ---- */
.legal-page{ padding-block:3rem 5rem; }
.legal-page .container-tv{ max-width:760px; }
.legal-tabs{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2.5rem; }
.legal-tab{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; padding:.55rem 1rem; border:1px solid var(--border); color:var(--muted-foreground); transition:background-color .2s,color .2s,border-color .2s; }
.legal-tab:hover{ border-color:var(--gold); color:var(--gold-deep); }
.legal-tab.active{ background:var(--espresso); border-color:var(--espresso); color:var(--cream); }
.legal-page h1{ font-size:clamp(2rem,5vw,2.75rem); color:var(--espresso); }
.legal-updated{ margin-top:.5rem; font-size:.8125rem; color:var(--muted-foreground); }
.legal-page h2{ margin-top:2rem; font-size:1.25rem; color:var(--espresso); }
.legal-page p{ margin-top:.75rem; color:var(--muted-foreground); line-height:1.7; }
.legal-note{ margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--border); font-size:.8125rem; }

/* ==========================================================================
   MOBILE RESPONSIVENESS REFINEMENTS
   ========================================================================== */

/* Long unbroken strings (emails, corridor names) must never widen the viewport */
.ci-row .t, .footer-col a, .footer-col li, .loc-fact .k{ overflow-wrap:anywhere; }

/* Comfortable ≥44px touch target for the hamburger */
.menu-toggle{ min-width:2.75rem; min-height:2.75rem; align-items:center; justify-content:center; }

/* Mobile menu: bigger tap targets, a primary CTA, and scroll if it ever overflows */
.nav-mobile .inner{ max-height:calc(100svh - 4rem); overflow-y:auto; }
.nav-mobile a:not(.btn){ padding-block:.4rem; }
.nav-mobile .m-cta{ margin-top:.5rem; }

/* Tablet (640–1023px): keep the absolutely-positioned location badge inside the frame */
@media(min-width:640px) and (max-width:1023px){
  .loc-badge{ right:1rem; bottom:1rem; }
}

/* Small phones (≤430px) */
@media(max-width:430px){
  .container-tv{ padding-inline:1rem; }
  .pad{ padding-block:4rem; }
  /* Full-width, easy-to-tap hero buttons */
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn{ width:100%; }
  /* Keep the uppercase sticky-CTA labels from crowding on narrow screens */
  .mobile-cta{ padding:.6rem; gap:.4rem; }
  .mobile-cta .btn{ padding-inline:.75rem; font-size:.7rem; letter-spacing:.06em; }
  /* Floor-plan tabs + map fit small screens */
  .fp-tab{ padding:.6rem .9rem; font-size:.68rem; letter-spacing:.1em; }
  .fp-grid{ gap:.6rem; }
  .loc-map iframe{ height:220px; }
}
