/* ============================================================
   Shown By Chouteau — shared stylesheet
   Espresso + Ivory + Sage Verdigris · Fraunces / Cormorant / Hanken Grotesk
   ============================================================ */
:root{
  --ink:#2c211a;        /* espresso */
  --ink-deep:#1f1712;
  --ink-soft:#52443a;
  --ivory:#f4efe6;
  --paper:#faf7f0;
  --cream:#ece4d6;
  --brass:#5e7c6f;          /* sage (on light) */
  --brass-text:#4a6358;     /* sage, darkened for small text — WCAG AA on ivory/paper */
  --brass-bright:#85a898;   /* sage (on dark) */
  --gold-line:rgba(94,124,111,.32);
  --shadow:rgba(44,33,26,.22);
  --maxw:1280px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:'Hanken Grotesk',sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.25rem,5vw,4.5rem)}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:400;line-height:1.04;letter-spacing:-.01em}
.serif-it{font-family:'Cormorant Garamond',serif}
.eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.42em;text-transform:uppercase;color:var(--brass-text)}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:var(--paper);padding:.7rem 1.1rem;border-radius:0 0 6px 0;font-size:.8rem;letter-spacing:.06em}
.skip-link:focus{left:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
.btn:focus-visible,.btn-gold:focus-visible{outline:2px solid var(--brass-bright);outline-offset:3px}

.btn{display:inline-flex;align-items:center;gap:.7rem;background:var(--ink);color:var(--paper);padding:1rem 1.9rem;border-radius:100px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;transition:all .4s cubic-bezier(.2,.7,.3,1);border:1px solid var(--ink);cursor:pointer}
.btn:hover{background:transparent;color:var(--ink);transform:translateY(-2px)}
.btn .arr{transition:transform .4s ease}
.btn:hover .arr{transform:translate(4px,-4px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-gold{background:var(--brass-bright);border-color:var(--brass-bright);color:var(--ink-deep)}
.btn-gold:hover{background:transparent;color:var(--brass-bright);border-color:var(--brass-bright)}

/* ---------- NAV ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .5s,box-shadow .5s,padding .4s;padding:1.4rem 0}
header.scrolled{background:rgba(250,247,240,.85);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--gold-line);padding:.75rem 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand{font-family:'Fraunces',serif;font-size:1.3rem;letter-spacing:.02em;display:flex;align-items:center;gap:.6rem}
.brand .mark{width:30px;height:30px;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--brass);font-style:italic}
.nav-links{display:flex;align-items:center;gap:1.7rem}
.nav-links a.lnk{font-size:.76rem;letter-spacing:.15em;text-transform:uppercase;font-weight:500;position:relative}
.nav-links a.lnk::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--brass);transition:width .35s}
.nav-links a.lnk:hover::after,.nav-links a.lnk.active::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:1rem}
.nav-phone{font-size:.82rem;letter-spacing:.04em;font-weight:600;white-space:nowrap}
.nav-phone:hover{color:var(--brass)}
.nav-book{border:1px solid var(--ink);border-radius:100px;padding:.55rem 1.1rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;white-space:nowrap;transition:all .35s}
.nav-book:hover{background:var(--ink);color:var(--paper)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px}
.nav-toggle span{width:26px;height:1.5px;background:var(--ink);transition:.3s}

/* ---------- PAGE HERO (sub-pages) ---------- */
.page-hero{position:relative;padding:11rem 0 4rem;overflow:hidden}
.page-hero .hbg{position:absolute;inset:0;z-index:0;background:radial-gradient(900px 520px at 80% 10%,rgba(133,168,152,.18),transparent 60%),radial-gradient(700px 500px at 10% 95%,rgba(94,124,111,.10),transparent 55%)}
.page-hero .wrap{position:relative;z-index:2}
.crumb{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1.4rem}
.crumb a:hover{color:var(--brass)}
.page-hero h1{font-size:clamp(2.6rem,6.5vw,5rem);font-weight:300;max-width:18ch}
.page-hero h1 em{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--brass);font-weight:500}
.page-hero .lead{max-width:54ch;margin:1.4rem 0 0;font-size:1.1rem;color:var(--ink-soft)}
.page-hero .lead+.hero-cta{margin-top:2rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}

/* split hero (image right) */
.split-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split-stack{display:flex;flex-direction:column;gap:1rem}
.split-stack figure{position:relative;border-radius:4px;overflow:hidden;box-shadow:0 20px 40px -20px var(--shadow);aspect-ratio:3/2}
.split-stack figure img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
.split-stack figure::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(31,23,18,.35) 0%,transparent 45%);pointer-events:none}
.split-stack figcaption{position:absolute;left:.8rem;bottom:.7rem;z-index:2;color:#fff;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;background:rgba(31,23,18,.55);padding:.35rem .7rem;border-radius:100px;backdrop-filter:blur(4px)}

/* ---------- SECTIONS ---------- */
section{position:relative;z-index:2}
.section-pad{padding:6.5rem 0}
.section-sm{padding:4.5rem 0}
.bg-ivory{background:var(--ivory)}
.bg-cream{background:var(--cream)}
.bg-ink{background:var(--ink);color:var(--ivory)}
.bg-ink .eyebrow,.bg-ink .section-head h2 em{color:var(--brass-bright)}
.bg-ink .section-head p{color:rgba(244,239,230,.7)}
.section-head{max-width:60ch;margin-bottom:3.2rem}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head h2{font-size:clamp(2.1rem,5vw,3.6rem);font-weight:300;margin-top:1rem}
.section-head h2 em{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--brass);font-weight:500}
.section-head p{margin-top:1.2rem;color:var(--ink-soft);font-size:1.05rem}

/* ---------- FEATURE / VALUE GRID ---------- */
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.feat-3{grid-template-columns:repeat(3,1fr)}
.feat{background:var(--paper);border:1px solid var(--gold-line);border-radius:3px;padding:1.9rem 1.6rem 2rem;transition:transform .5s,box-shadow .5s}
.feat:hover{transform:translateY(-6px);box-shadow:0 26px 46px -28px var(--shadow)}
.feat .ic{width:46px;height:46px;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;color:var(--brass);margin-bottom:1.1rem;font-size:1.1rem}
.feat h3{font-size:1.25rem;margin-bottom:.5rem}
.feat p{font-size:.92rem;color:var(--ink-soft)}

/* ---------- TIMELINE ---------- */
.timeline{display:grid;gap:1.1rem}
.tl-step{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;background:var(--paper);border:1px solid var(--gold-line);border-radius:3px;padding:1.7rem 1.8rem;transition:transform .4s,box-shadow .4s}
.tl-step:hover{transform:translateX(5px);box-shadow:0 20px 40px -30px var(--shadow)}
.tl-num{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:2.4rem;line-height:1;color:var(--brass);min-width:1.6em}
.tl-step h3{font-size:1.35rem;margin-bottom:.35rem}
.tl-step p{font-size:.96rem;color:var(--ink-soft);max-width:60ch}
.tl-step .micro{margin-top:.7rem;font-size:.82rem;color:var(--brass);letter-spacing:.02em}

/* ---------- COMPARISON TABLE ---------- */
.cmp{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--gold-line);border-radius:5px;overflow:hidden}
.cmp th,.cmp td{padding:1.1rem 1.2rem;text-align:left;border-bottom:1px solid var(--gold-line);font-size:.95rem}
.cmp thead th{font-family:'Fraunces',serif;font-weight:500;font-size:1.05rem;background:var(--ivory)}
.cmp thead th.hl{background:var(--ink);color:var(--ivory)}
.cmp tbody td{color:var(--ink-soft)}
.cmp tbody td.feature{color:var(--ink);font-weight:600}
.cmp td.hl{background:rgba(133,168,152,.12);color:var(--ink);font-weight:600}
.cmp .yes{color:var(--brass);font-weight:700}
.cmp .no{color:#b08a82}
.cmp tr:last-child td{border-bottom:none}
.cmp-wrap{overflow-x:auto;border-radius:5px}

/* ---------- BEFORE / AFTER ---------- */
.ba-wrap{position:relative;border-radius:4px;overflow:hidden;box-shadow:0 40px 90px -40px rgba(0,0,0,.7);user-select:none;aspect-ratio:16/9;background:var(--ink-deep)}
.ba-layer{position:absolute;inset:0}
.ba-layer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-after{clip-path:inset(0 0 0 50%)}
.ba-layer .tag{position:absolute;top:1.2rem;z-index:2;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;background:rgba(31,23,18,.6);color:#fff;padding:.45rem .85rem;border-radius:100px;backdrop-filter:blur(4px)}
.ba-before .tag{left:1.2rem}
.ba-after .tag{right:1.2rem;background:rgba(133,168,152,.95);color:var(--ink-deep)}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--brass-bright);z-index:5;transform:translateX(-1px);cursor:ew-resize}
.ba-handle .knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:var(--brass-bright);display:grid;place-items:center;color:var(--ink-deep);box-shadow:0 6px 20px rgba(0,0,0,.4);font-size:.9rem}
.ba-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:6;margin:0}
.ba-caption{display:flex;justify-content:space-between;align-items:baseline;margin-top:1.5rem;flex-wrap:wrap;gap:1rem}
.ba-caption .t{font-family:'Fraunces',serif;font-size:1.4rem}
.ba-caption .h{font-size:.85rem;color:var(--brass);letter-spacing:.04em}
.bg-ink .ba-caption .h{color:var(--brass-bright)}
.ba-thumbs{display:flex;gap:.8rem;margin-top:2.2rem;flex-wrap:wrap}
.ba-thumb{flex:1;min-width:120px;padding:1rem;border:1px solid var(--gold-line);border-radius:3px;cursor:pointer;transition:all .35s}
.ba-thumb:hover,.ba-thumb.active{border-color:var(--brass);background:rgba(133,168,152,.1)}
.ba-thumb .tn{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--brass)}
.ba-thumb .tl{font-size:.85rem;margin-top:.2rem}

/* ---------- PORTFOLIO MASONRY + FILTER ---------- */
.filter-bar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:2.5rem}
.chip{border:1px solid var(--gold-line);background:transparent;border-radius:100px;padding:.55rem 1.2rem;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .3s;font-family:'Hanken Grotesk',sans-serif}
.chip:hover{border-color:var(--brass);color:var(--ink)}
.chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.masonry{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.proj{position:relative;border-radius:4px;overflow:hidden;box-shadow:0 18px 40px -30px var(--shadow);cursor:pointer;display:block}
.proj img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.proj:hover img{transform:scale(1.05)}
.proj .ov{position:absolute;inset:0;background:linear-gradient(0deg,rgba(31,23,18,.82),rgba(31,23,18,.05) 55%);opacity:0;transition:opacity .4s;display:flex;flex-direction:column;justify-content:flex-end;padding:1.4rem;color:#fff}
.proj:hover .ov{opacity:1}
.proj .ov .pt{font-family:'Fraunces',serif;font-size:1.25rem}
.proj .ov .pm{font-size:.85rem;color:var(--brass-bright);margin-top:.2rem}
.proj .soldtag{position:absolute;top:1rem;left:1rem;background:rgba(133,168,152,.95);color:var(--ink-deep);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:.4rem .75rem;border-radius:100px;z-index:2}

/* ---------- ACCORDION / FAQ ---------- */
.acc{border-top:1px solid var(--gold-line)}
.acc-item{border-bottom:1px solid var(--gold-line)}
.acc-q{width:100%;background:none;border:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 0;text-align:left;font-family:'Fraunces',serif;font-size:1.18rem;color:var(--ink)}
.acc-q .pm{flex-shrink:0;width:28px;height:28px;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;color:var(--brass);transition:transform .4s,background .3s}
.acc-q[aria-expanded="true"] .pm{transform:rotate(45deg);background:var(--brass);color:var(--paper)}
.acc-a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.2,.7,.3,1)}
.acc-a p{padding:0 0 1.6rem;color:var(--ink-soft);max-width:70ch}

/* ---------- STATS ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center}
.stat-c .n{font-family:'Fraunces',serif;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:300;line-height:1;color:var(--ink)}
.stat-c .n em{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--brass)}
.stat-c .l{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-top:.7rem}
.note-ph{text-align:center;margin-top:2.5rem;font-size:.8rem;color:var(--ink-soft);opacity:.75}

/* ---------- COMMUNITIES ---------- */
.comm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.comm-card{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 18px 40px -30px var(--shadow);display:block}
.comm-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.comm-card:hover img{transform:scale(1.06)}
.comm-card .ov{position:absolute;inset:0;background:linear-gradient(0deg,rgba(31,23,18,.85),transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;color:#fff}
.comm-card .ov h3{font-size:1.5rem}
.comm-card .ov p{font-size:.85rem;color:rgba(244,239,230,.85);margin-top:.2rem}
.comm-card .ov .go{margin-top:.6rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-bright);font-weight:600}
.comm-card.soon{cursor:default}
.comm-card.soon img{filter:saturate(.92)}
.comm-card .soon-badge{position:absolute;top:1rem;right:1rem;z-index:3;background:rgba(250,247,240,.92);color:var(--ink);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:.35rem .7rem;border-radius:100px}

/* community guide w/ sticky side nav */
.guide-layout{display:grid;grid-template-columns:220px 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.side-nav{position:sticky;top:6rem;display:grid;gap:.6rem}
.side-nav a{font-size:.82rem;letter-spacing:.04em;color:var(--ink-soft);padding:.4rem 0;border-left:2px solid var(--gold-line);padding-left:1rem;transition:all .3s}
.side-nav a:hover,.side-nav a.active{color:var(--ink);border-color:var(--brass);font-weight:600}
.guide-body h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:300;margin:0 0 1rem}
.guide-body section+section{margin-top:3.2rem}
.guide-body p{color:var(--ink-soft);margin-bottom:1rem;max-width:68ch}
.stat-panel{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.2rem 0}
.stat-panel .sp{background:var(--paper);border:1px solid var(--gold-line);border-radius:3px;padding:1.2rem;text-align:center}
.stat-panel .sp .v{font-family:'Fraunces',serif;font-size:1.6rem;color:var(--ink)}
.stat-panel .sp .k{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:.3rem}
.life-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1rem}
.life-cols .lc h4{font-family:'Fraunces',serif;font-size:1.1rem;margin-bottom:.4rem;color:var(--brass)}
.life-cols .lc p{font-size:.9rem}

/* ---------- VALUATION FUNNEL ---------- */
.valu{background:var(--ink-deep);color:var(--ivory);border-radius:6px;padding:clamp(2rem,4vw,3.5rem);position:relative;overflow:hidden}
.valu::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 85% 15%,rgba(133,168,152,.18),transparent 60%);pointer-events:none}
.valu .eyebrow{color:var(--brass-bright)}
.valu h2{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:300;margin:1rem 0 .6rem;position:relative}
.valu h2 em{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--brass-bright)}
.valu>p{color:rgba(244,239,230,.72);max-width:52ch;position:relative}
.vsteps{position:relative;margin-top:2rem}
.vstep{display:none}
.vstep.on{display:block;animation:vfade .5s ease}
@keyframes vfade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.vprog{display:flex;gap:.5rem;margin-bottom:1.8rem}
.vprog i{flex:1;height:3px;border-radius:3px;background:rgba(244,239,230,.18)}
.vprog i.done{background:var(--brass-bright)}
.vstep label{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(244,239,230,.6);margin-bottom:.6rem}
.vstep .q{font-family:'Fraunces',serif;font-size:1.3rem;margin-bottom:1.2rem}
.vfield input,.vfield select{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(133,168,152,.4);color:var(--ivory);font-family:'Hanken Grotesk',sans-serif;font-size:1.05rem;padding:.7rem 0}
.vfield input:focus,.vfield select:focus{outline:none;border-color:var(--brass-bright)}
.vfield select option{color:#000}
.vrow{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.vnav{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;gap:1rem}
.vback{background:none;border:none;color:rgba(244,239,230,.6);cursor:pointer;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.vback:hover{color:var(--brass-bright)}
.valu .micro{font-size:.78rem;color:rgba(244,239,230,.5);margin-top:1rem}

/* ---------- SCHEDULING + EMBED SLOTS ---------- */
.embed-slot{border:1px dashed var(--gold-line);border-radius:5px;padding:clamp(2rem,4vw,3rem);text-align:center;background:var(--paper)}
.embed-slot .badge-ph{display:inline-block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);border:1px solid var(--brass);border-radius:100px;padding:.3rem .8rem;margin-bottom:1rem}
.embed-slot h3{font-size:1.4rem;font-weight:400;margin-bottom:.6rem}
.embed-slot p{color:var(--ink-soft);max-width:48ch;margin:0 auto;font-size:.95rem}
.embed-slot code{background:var(--cream);padding:.1rem .4rem;border-radius:3px;font-size:.85em}

/* ---------- REVIEWS ---------- */
.qwall{columns:3;column-gap:1.3rem}
.qcard{break-inside:avoid;margin-bottom:1.3rem;background:var(--paper);border:1px solid var(--gold-line);border-radius:4px;padding:1.6rem}
.qcard .stars{color:var(--brass);letter-spacing:.22em;font-size:.9rem;margin-bottom:.8rem}
.qcard blockquote{font-family:'Fraunces',serif;font-weight:300;font-size:1.05rem;line-height:1.45;color:var(--ink)}
.qcard .by{margin-top:1rem;font-size:.8rem;letter-spacing:.06em;color:var(--ink-soft)}
.qcard .by b{color:var(--brass);font-weight:600;display:block;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase}
.sold-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.sold-card{background:var(--paper);border:1px solid var(--gold-line);border-radius:4px;overflow:hidden}
.sold-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.sold-card .b{padding:1.2rem 1.3rem 1.4rem}
.sold-card .loc{font-family:'Fraunces',serif;font-size:1.1rem}
.sold-card .meta{font-size:.82rem;color:var(--brass);margin-top:.25rem;font-weight:600}
.sold-card .micro{font-size:.84rem;color:var(--ink-soft);margin-top:.5rem}
.badge-row{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;align-items:center;margin-top:1rem}
.badge-row .rv{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:var(--ink-soft)}
.badge-row .rv .ic{width:34px;height:34px;border:1px solid var(--gold-line);border-radius:7px;display:grid;place-items:center;color:var(--brass);font-weight:700;font-size:.7rem}
.badge-row .rv b{font-family:'Fraunces',serif;color:var(--ink);font-weight:500}

/* ---------- TESTIMONIAL ---------- */
.quote-block{max-width:48ch;margin:0 auto;text-align:center}
.quote-block .mark{font-family:'Cormorant Garamond',serif;font-size:6rem;line-height:.4;color:var(--brass);height:2.5rem;display:block}
.quote-block blockquote{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(1.5rem,3.6vw,2.4rem);line-height:1.32;margin:1rem 0 2rem}
.quote-block .who{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);font-weight:600}
.quote-block .stars{color:var(--brass);letter-spacing:.3em;margin-bottom:1.5rem}

/* ---------- CTA BAND ---------- */
.cta-band{text-align:center}
.cta-band h2{font-size:clamp(2rem,5vw,3.4rem);font-weight:300;margin:1rem auto 1rem;max-width:20ch}
.cta-band h2 em{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--brass-bright);font-weight:500}
.cta-band p{max-width:52ch;margin:0 auto 2rem;color:rgba(244,239,230,.72)}

/* ---------- STICKY CTA BAR ---------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--ink);color:var(--ivory);transform:translateY(110%);transition:transform .5s cubic-bezier(.2,.7,.3,1);box-shadow:0 -10px 40px -20px rgba(0,0,0,.5)}
.sticky-cta.show{transform:none}
.sticky-cta .in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;flex-wrap:wrap}
.sticky-cta .msg{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.15rem}
.sticky-cta .msg b{font-family:'Hanken Grotesk',sans-serif;font-style:normal;color:var(--brass-bright);font-weight:600}
.sticky-cta .x{background:none;border:none;color:rgba(244,239,230,.6);cursor:pointer;font-size:1.1rem;width:44px;height:44px;display:grid;place-items:center}
.sticky-cta.show ~ .chat-fab{display:none}

/* ---------- CHAT BUBBLE (placeholder) ---------- */
.chat-fab{position:fixed;right:1.4rem;bottom:5.2rem;z-index:46;width:54px;height:54px;border-radius:50%;background:var(--brass);color:var(--ink-deep);border:none;cursor:pointer;box-shadow:0 12px 30px -8px rgba(44,33,26,.5);font-size:1.3rem;transition:transform .3s}
.chat-fab:hover{transform:scale(1.08)}
.chat-pop{position:fixed;right:1.4rem;bottom:8.4rem;z-index:47;width:min(320px,86vw);background:var(--paper);border:1px solid var(--gold-line);border-radius:10px;box-shadow:0 30px 60px -24px var(--shadow);padding:1.4rem;display:none}
.chat-pop.open{display:block;animation:vfade .35s ease}
.chat-close{position:absolute;top:.7rem;right:.7rem;width:32px;height:32px;display:grid;place-items:center;background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:1rem;border-radius:50%}
.chat-close:hover{background:var(--cream)}
.chat-pop h4{font-family:'Fraunces',serif;font-size:1.1rem;margin-bottom:.4rem;padding-right:1.5rem}
.chat-pop p{font-size:.88rem;color:var(--ink-soft);margin-bottom:.9rem}
.chat-pop .ph{font-size:.72rem;color:var(--brass);letter-spacing:.08em}

/* ---------- ABOUT ---------- */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.about-portrait{position:relative;aspect-ratio:3/4;border-radius:4px;overflow:hidden;box-shadow:0 40px 80px -34px var(--shadow)}
.about-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.about-portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(44,33,26,.55),transparent 55%);z-index:1}
.about-portrait .name{position:absolute;left:1.4rem;bottom:1.3rem;color:var(--paper);z-index:2}
.about-portrait .name .nm{font-family:'Fraunces',serif;font-size:1.6rem}
.about-portrait .name .rl{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-bright);margin-top:.2rem}
.about-frame{position:absolute;inset:14px;border:1px solid rgba(250,247,240,.5);z-index:2;pointer-events:none}

/* ---------- CONTACT (shared mini) ---------- */
.contact-info{display:grid;gap:1.3rem}
.ci-item{display:flex;gap:1.1rem;align-items:flex-start;padding-bottom:1.3rem;border-bottom:1px solid rgba(133,168,152,.2)}
.bg-ink .ci-item .ico{border-color:var(--brass-bright);color:var(--brass-bright)}
.ci-item .ico{width:40px;height:40px;flex-shrink:0;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;color:var(--brass)}
.ci-item .lbl{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
.ci-item .val{font-family:'Fraunces',serif;font-size:1.2rem;margin-top:.2rem}

/* ---------- FOOTER ---------- */
footer{background:var(--ink-deep);color:var(--ivory);border-top:1px solid rgba(133,168,152,.18);padding:3.2rem 0 2.4rem}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}
.foot .brand{color:var(--ivory)}
.foot-links{display:flex;gap:1.6rem;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap}
.foot-links a:hover{color:var(--brass-bright)}
.foot-badges{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin:2rem 0 1.5rem;padding:1.4rem 0;border-top:1px solid rgba(133,168,152,.14);border-bottom:1px solid rgba(133,168,152,.14)}
.badge-chip{display:flex;align-items:center;gap:.55rem;font-size:.7rem;letter-spacing:.08em;color:rgba(244,239,230,.7)}
.badge-chip .ic{width:34px;height:34px;border:1px solid rgba(133,168,152,.45);border-radius:6px;display:grid;place-items:center;color:var(--brass-bright);font-size:.8rem;flex-shrink:0}
.badge-eho .ic{border-radius:4px}
.foot-legal{font-size:.74rem;color:rgba(244,239,230,.62);line-height:1.7}
.foot-legal .ph{color:var(--brass-bright)}

/* ---------- SCROLL STORY ---------- */
.story{display:grid;gap:clamp(3rem,6vw,5.5rem)}
.story-step{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.story-step:nth-child(even) .story-media{order:2}
.story-media{position:relative;border-radius:4px;overflow:hidden;box-shadow:0 30px 60px -34px var(--shadow);aspect-ratio:4/3}
.story-media img{width:100%;height:100%;object-fit:cover}
.story-media .step-no{position:absolute;top:1rem;left:1rem;z-index:2;width:44px;height:44px;border-radius:50%;background:rgba(250,247,240,.92);color:var(--ink);display:grid;place-items:center;font-family:'Fraunces',serif;font-size:1.1rem}
.story-text .mv{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-text);font-weight:700}
.story-text h3{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:300;margin:.6rem 0 .9rem}
.story-text h3 em{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--brass)}
.story-text p{color:var(--ink-soft);font-size:1.05rem;max-width:46ch}
.story-text .out{margin-top:1rem;display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--ink);font-weight:600}
.story-text .out::before{content:"→";color:var(--brass)}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.3,1)}
.reveal.from-left{transform:translateX(-40px)}
.reveal.from-right{transform:translateX(40px)}
.reveal.in{opacity:1;transform:none}
@media(max-width:760px){
  .story-step{grid-template-columns:1fr;gap:1.3rem}
  .story-step:nth-child(even) .story-media{order:0}
  .reveal.from-left,.reveal.from-right{transform:translateY(28px)}
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1000px){
  .feat-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:2.2rem 1.5rem}
  .qwall{columns:2}
  .masonry,.comm-grid,.feat-3,.sold-grid,.life-cols{grid-template-columns:repeat(2,1fr)}
  .stat-panel{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:920px){
  .split-hero,.about-grid,.guide-layout{grid-template-columns:1fr}
  .side-nav{position:static;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
  .side-nav a{border-left:none;border:1px solid var(--gold-line);border-radius:100px;padding:.4rem 1rem}
  .nav-phone,.nav-links a.lnk,.nav-book{display:none}
  .nav-links{position:fixed;inset:0 0 0 auto;width:min(80vw,330px);background:var(--paper);flex-direction:column;justify-content:center;align-items:flex-start;padding:3rem 2.4rem;gap:1.5rem;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.3,1);box-shadow:-20px 0 60px -30px var(--shadow);z-index:60}
  .nav-links.open{transform:none}
  .nav-links a.lnk{display:block;font-size:1.05rem}
  .nav-links .nav-phone{display:block;font-size:1.05rem}
  .nav-toggle{display:flex;z-index:61}
  .nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
}
@media(max-width:600px){
  .qwall{columns:1}
  .masonry,.comm-grid,.feat-grid,.feat-3,.sold-grid,.life-cols,.vrow{grid-template-columns:1fr}
  .stat-panel{grid-template-columns:repeat(2,1fr)}
  .ba-thumb{min-width:calc(50% - .4rem)}
  .split-stack figure{aspect-ratio:16/9}
  .sticky-cta .msg{display:none}
  .sticky-cta .in{justify-content:flex-end}
  .cmp-wrap{position:relative}
  .cmp-wrap::after{content:"";position:absolute;right:0;top:0;bottom:0;width:34px;background:linear-gradient(to left,var(--cream),transparent);pointer-events:none}
  .cmp th,.cmp td{font-size:.82rem;padding:.8rem .7rem}
}
