/* WLP Look A (Editorial Serif) gold master stylesheet. Client neutral: no client name, city or brokerage appears in this file. */
:root{
  --ink:#1A1A1A; --ink-deep:#000000; --mist:#5A5A5A; --mist-lt:#8A8A8A;
  --bone:#FFFFFF; --paper:#F6F3ED; --line:rgba(0,0,0,.14); --line-lt:rgba(255,255,255,.3);
  --gold:#C0A16B; --gold-dark:#8A6A2F;
  --ui:'Inter',system-ui,-apple-system,sans-serif;
  --serif:'Cormorant Garamond',Georgia,serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --pad:clamp(20px,5vw,64px);
  --pvh:44px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--ui);background:var(--paper);color:var(--ink);line-height:1.66;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-size:16px}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{width:100%;max-width:1300px;margin:0 auto;padding:0 var(--pad)}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:300;letter-spacing:.02em}
h2{font-size:clamp(28px,4.4vw,54px);line-height:1.12;text-transform:uppercase;letter-spacing:.02em;text-align:center}
h3{font-size:clamp(18px,1.7vw,23px);line-height:1.24;text-transform:uppercase;letter-spacing:.045em}
p{color:rgba(0,0,0,.70)}
em{font-style:italic;color:var(--gold-dark)}
.lede{font-size:clamp(16px,1.35vw,18.5px);line-height:1.72}
.eyebrow{font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dark)}
.eyebrow.on-dark{color:var(--gold)}

.rv{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}.rv.d4{transition-delay:.4s}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ghost buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 30px;border:1px solid var(--ink-deep);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-indent:.14em;transition:background .35s var(--ease),color .35s var(--ease)}
.btn:hover{background:var(--ink-deep);color:#fff}
.btn-light{border-color:rgba(255,255,255,.75);color:#fff}
.btn-light:hover{background:#fff;color:var(--ink-deep)}
.btn-solid{background:var(--ink-deep);color:#fff;border-color:var(--ink-deep)}
.btn-solid:hover{background:transparent;color:var(--ink-deep)}
.btn-gold{border-color:var(--gold);color:var(--gold)}
.btn-gold:hover{background:var(--gold);color:var(--ink-deep)}

/* preview banner */
.pv-banner{position:fixed;top:0;left:0;right:0;z-index:200;background:var(--ink-deep);color:#fff;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:9px 16px;font-size:12.5px;box-shadow:0 1px 14px rgba(0,0,0,.22)}
.pv-banner strong{font-weight:700;letter-spacing:.06em}
.pv-cta{background:var(--gold);color:var(--ink-deep);padding:13px 20px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:44px;transition:transform .2s}
.pv-cta:hover{transform:scale(1.04)}

/* nav */
.nav{position:fixed;top:var(--pvh);left:0;right:0;z-index:100;padding:14px 0;transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease)}
.nav-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.nav a.n-link{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#fff;padding:10px 0;transition:opacity .3s}
.nav a.n-link:hover{opacity:.6}
.nav-left,.nav-right{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.nav-right{justify-content:flex-end}
.brand{font-family:var(--serif);text-align:center;color:#fff;line-height:1.05;white-space:nowrap;display:inline-block;padding:6px 0;min-height:44px}
.brand .b1{display:block;font-size:clamp(17px,1.5vw,22px);letter-spacing:.03em}
.brand .b2{display:block;font-family:var(--ui);font-size:9px;letter-spacing:.38em;margin-top:6px;opacity:.85;text-transform:uppercase;color:var(--gold)}
.nav.stuck{background:var(--paper);box-shadow:0 1px 0 var(--line);padding:10px 0}
.nav.stuck a.n-link,.nav.stuck .brand{color:var(--ink-deep)}
.nav.stuck .brand .b2{color:var(--gold-dark)}
.burger{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;flex-direction:column;justify-content:center;gap:5px;align-items:flex-end}
.burger span{display:block;width:24px;height:1px;background:#fff;transition:background .3s}
.nav.stuck .burger span{background:var(--ink-deep)}

.mobile-nav{position:fixed;inset:var(--pvh,0px) 0 0 0;z-index:190;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;opacity:0;pointer-events:none;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 0 28px;transition:opacity .35s var(--ease)}
/* Centered when the links fit, top aligned and scrollable when they do not, so the
   first link can never end up under the fixed preview banner (mobile, 2026-09-15). */
.mobile-nav a:first-of-type{margin-top:auto}
.mobile-nav a:last-of-type{margin-bottom:auto}
.mobile-nav.open{opacity:1;pointer-events:auto}
.mobile-nav a{font-family:var(--serif);font-size:24px;text-transform:uppercase;letter-spacing:.05em;padding:12px 20px;min-height:44px}
.mobile-nav .mn-cta{font-family:var(--ui);font-size:12px;letter-spacing:.16em;border:1px solid var(--ink-deep);margin-top:10px;padding:14px 26px;display:inline-flex;align-items:center}
.mn-close{position:absolute;top:10px;right:20px;background:none;border:0;font-size:34px;line-height:1;cursor:pointer;width:44px;height:44px}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:#111}
.hero.short{min-height:62svh}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,7,.60) 0%,rgba(10,9,7,.30) 34%,rgba(10,9,7,.28) 62%,rgba(10,9,7,.66) 100%)}
.hero-inner{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:120px;padding-bottom:40px}
.wordmark{color:#fff;font-family:var(--serif);font-weight:300;text-transform:uppercase;line-height:.9;letter-spacing:.02em;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.wordmark .w1{display:block;font-size:clamp(42px,7.8vw,104px)}
.wordmark .w2{display:block;font-size:clamp(42px,7.8vw,104px);margin-left:clamp(20px,7vw,110px);margin-top:-.06em}
.wordmark .w3{display:block;font-family:var(--ui);font-weight:500;font-size:clamp(11px,1.15vw,14px);letter-spacing:.32em;margin-top:.5em;color:var(--gold)}
.hero-sub{color:rgba(255,255,255,.9);margin-top:18px;font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.hero-strip{position:relative;z-index:2;margin:0 auto clamp(24px,4vw,54px);max-width:1300px;width:calc(100% - 2*var(--pad));border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.2);backdrop-filter:blur(3px);padding:clamp(20px,2.4vw,30px) clamp(18px,2.6vw,34px);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;color:#fff}
.hero-strip .hs-k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.9;color:var(--gold)}
.hero-strip .hs-v{font-family:var(--serif);font-size:clamp(16px,1.6vw,20px);margin-top:10px;line-height:1.35}

/* scroll cue */
.scroll-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.75);font-size:10px;letter-spacing:.28em;text-transform:uppercase;font-family:var(--ui)}
.scroll-cue::after{content:'';width:1px;height:34px;background:linear-gradient(180deg,var(--gold),transparent);animation:cuemove 1.8s ease-in-out infinite}
@keyframes cuemove{0%{opacity:0;transform:translateY(0)}50%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@media(prefers-reduced-motion:reduce){.scroll-cue::after{animation:none;opacity:.7}}

/* page hero (inner pages) */
.phero{position:relative;min-height:52svh;display:flex;align-items:flex-end;overflow:hidden;background:#111}
.phero-inner{position:relative;z-index:2;padding:calc(var(--pvh) + 152px) 0 60px;text-align:center;width:100%}
.phero h1{color:#fff;font-family:var(--serif);font-weight:300;text-transform:uppercase;font-size:clamp(38px,6vw,72px);letter-spacing:.02em}
.phero .eyebrow{color:var(--gold);margin-bottom:14px}

/* generic sections */
.sec{padding:clamp(64px,8.5vw,124px) 0}
.sec-dark{background:var(--ink-deep);color:#fff}
.sec-dark h2{color:#fff}
.sec-dark p{color:rgba(255,255,255,.72)}
.sec-bone{background:var(--bone)}
.s-head{text-align:center;max-width:820px;margin:0 auto clamp(38px,5vw,64px)}
.s-head .eyebrow{margin-bottom:16px}
.s-head .lede{margin-top:18px;color:rgba(18,16,13,.66)}
.sec-dark .s-head .lede{color:rgba(255,255,255,.68)}

/* about */
.about{display:grid;grid-template-columns:1fr minmax(300px,380px) 1fr;gap:clamp(24px,3.4vw,52px);align-items:center}
.about-l{font-family:var(--serif);font-style:normal;font-weight:300;font-size:clamp(21px,2.2vw,30px);line-height:1.32;color:var(--ink-deep)}
.about-l .src{display:block;margin-top:18px;font-family:var(--ui);font-style:normal;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dark)}
.about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--paper);display:block}
.about-dre{text-align:center;margin-top:18px;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mist)}
.about-r p+p{margin-top:16px}
.about-r .btn{margin-top:26px}

/* full-bleed stat band */
.band-img{position:relative;min-height:clamp(360px,44vw,520px);display:flex;align-items:center;overflow:hidden}
.band-img>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band-img .bscrim{position:absolute;inset:0;background:rgba(18,15,10,.52)}
.band-in{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;color:#fff}
.band-in .k{font-family:var(--serif);font-weight:300;font-size:clamp(32px,4.8vw,66px);line-height:1;color:var(--gold)}
.band-in .v{margin-top:16px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:10px}
.band-in .v::before{content:"";width:22px;height:1px;background:rgba(255,255,255,.8)}

/* listings */
.listings{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.lc{background:var(--bone);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}
.lc-img{aspect-ratio:4/3;overflow:hidden;position:relative;background:#e7e2d8}
.lc-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.lc:hover .lc-img img{transform:scale(1.05)}
.lc-img.noimg{display:flex;align-items:center;justify-content:center}
.lc-img.noimg span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mist-lt)}
.lc-body{padding:clamp(22px,2.2vw,28px);display:flex;flex-direction:column;gap:7px}
.lc .status{align-self:flex-start;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);border:1px solid var(--line);padding:5px 10px;margin-bottom:6px}
.lc .status.sold{color:var(--gold-dark);border-color:var(--gold)}
.lc .price{font-family:var(--serif);font-size:clamp(20px,1.9vw,25px);color:var(--ink-deep)}
.lc .addr{font-family:var(--serif);font-size:clamp(16px,1.5vw,19px);color:var(--ink-deep);line-height:1.36}
.lc .meta{font-size:13px;color:var(--mist-lt)}
.lc .mls{font-size:12px;color:var(--mist-lt);border-top:1px solid var(--line);margin-top:6px;padding-top:11px}
.note{margin-top:22px;font-size:14.5px;color:var(--mist-lt);text-align:center}
@media(max-width:980px){.listings{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.listings{grid-template-columns:1fr;max-width:480px;margin:0 auto}}

/* sold table */
.stbl{width:100%;border-collapse:collapse;font-size:14.5px}
.stbl th{text-align:left;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mist);padding:12px 14px;border-bottom:1px solid var(--ink-deep)}
.stbl td{padding:15px 14px;border-bottom:1px solid var(--line)}
.stbl tr:hover td{background:rgba(192,161,107,.06)}
.stbl .p{font-family:var(--serif);color:var(--ink-deep)}
.sec-dark .stbl .p{color:var(--gold)}
.sec-dark .stbl th{color:var(--gold);border-bottom-color:rgba(255,255,255,.4)}
.sec-dark .stbl td{border-bottom-color:rgba(255,255,255,.14)}
.sec-dark .stbl tr:hover td{background:rgba(192,161,107,.1)}
.stbl-wrap{overflow-x:auto}
@media(max-width:700px){.stbl{font-size:13px}.stbl th,.stbl td{padding:10px 8px}}

/* service tiles */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.tile{position:relative;min-height:clamp(340px,38vw,460px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:#fff;padding:30px}
.tile>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.tile:hover>img{transform:scale(1.05)}
.tile .tscrim{position:absolute;inset:0;background:rgba(18,15,10,.5);transition:background .5s}
.tile:hover .tscrim{background:rgba(18,15,10,.6)}
.tile .ti{position:relative;z-index:2}
.tile .tk{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.92;color:var(--gold)}
.tile .th{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.8vw,36px);text-transform:uppercase;letter-spacing:.03em;margin-top:14px}
.tile .tb{margin-top:18px;font-size:14.5px;color:rgba(255,255,255,.86);max-width:34ch;margin-left:auto;margin-right:auto}
@media(max-width:1050px){.tiles{grid-template-columns:1fr}}

/* reviews marquee */
.rev-wrap{position:relative;overflow:hidden}
.rev-wrap::before,.rev-wrap::after{content:"";position:absolute;top:0;bottom:0;width:min(120px,10vw);z-index:3;pointer-events:none}
.rev-wrap::before{left:0;background:linear-gradient(90deg,var(--ink-deep),rgba(18,16,13,0))}
.rev-wrap::after{right:0;background:linear-gradient(270deg,var(--ink-deep),rgba(18,16,13,0))}
.rmask{overflow:hidden;width:100%}
.rmask+.rmask{margin-top:20px}
.rtrack{display:flex;gap:20px;width:max-content;animation:rscroll 52s linear infinite}
.rmask.rev .rtrack{animation-direction:reverse;animation-duration:60s}
.rmask:hover .rtrack{animation-play-state:paused}
@keyframes rscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.rtrack{animation:none}}
.rcard{flex:0 0 auto;width:min(380px,80vw);background:#1c1a16;border:1px solid rgba(255,255,255,.14);padding:26px 28px;display:flex;flex-direction:column;gap:14px}
.rcard .stars{color:var(--gold);font-size:14px;letter-spacing:.14em}
.rcard p{color:rgba(255,255,255,.86);font-size:14.5px;line-height:1.6}
.rcard .who{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.rcard .src{font-size:11.5px;color:rgba(255,255,255,.5)}

/* neighborhoods */
.nb{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}
.nb-card{position:relative}
.nb-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.nb-cap{background:var(--bone);padding:26px 28px;max-width:76%;margin:-70px 0 0 40px;position:relative;z-index:2;box-shadow:0 18px 40px rgba(0,0,0,.1)}
.nb-cap h3{margin-bottom:10px;color:var(--ink-deep)}
.nb-list{display:flex;flex-direction:column}
.nb-list button{background:none;border:0;text-align:left;font-family:var(--serif);font-size:clamp(20px,2.4vw,30px);text-transform:uppercase;letter-spacing:.03em;padding:12px 0;color:rgba(18,16,13,.38);cursor:pointer;display:flex;align-items:center;gap:16px;transition:color .35s}
.nb-list button .dash{width:0;height:1px;background:var(--gold-dark);transition:width .35s var(--ease)}
.nb-list button.on{color:var(--ink-deep)}
.nb-list button.on .dash{width:34px}
@media(max-width:1050px){.nb{grid-template-columns:1fr}.nb-cap{max-width:100%;margin-top:0}}

/* commitments / credential grid */
.cred{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.credi{background:var(--paper);padding:clamp(24px,2.6vw,36px)}
.credi .num{font-family:var(--serif);font-size:34px;color:var(--gold);line-height:1}
.credi h3{margin:14px 0 12px;color:var(--ink-deep)}
.credi p{font-size:14.5px}
@media(max-width:1050px){.cred{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.cred{grid-template-columns:1fr}}

/* press */
.press{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pcard{border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;gap:12px;background:var(--bone)}
.pcard .pdate{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark)}
.pcard h3{font-size:17px;color:var(--ink-deep)}
.pcard a{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mist);border-bottom:1px solid var(--line);align-self:flex-start;padding-bottom:2px}
@media(max-width:900px){.press{grid-template-columns:1fr}}

/* compliance band */
.cband{background:var(--bone);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(34px,4.4vw,56px) 0}
.cband-in{display:flex;align-items:center;justify-content:center;gap:clamp(20px,3.4vw,46px);flex-wrap:wrap;text-align:center}
.cband img{width:clamp(52px,5vw,64px);height:auto}
.cband .ct{max-width:62ch;font-size:14px;line-height:1.72;color:rgba(18,16,13,.68);text-align:left}
.cband .cmarks{margin-top:10px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
@media(max-width:820px){.cband .ct{text-align:center}}

/* contact CTA / newsletter band */
.nlb{background:var(--bone);padding:clamp(50px,6vw,86px) 0;text-align:center;border-top:1px solid var(--line)}
.nlb p{max-width:56ch;margin:16px auto 0}
.nlb .btn{margin-top:28px}

/* contact form section */
.inq{display:grid;grid-template-columns:1fr 1fr;min-height:640px}
.inq-img{position:relative;overflow:hidden}
.inq-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.inq-body{background:var(--ink-deep);color:#fff;padding:clamp(34px,4.6vw,74px)}
.inq-body h2{text-align:left;color:#fff;margin-top:14px}
.inq-body p{color:rgba(255,255,255,.72);margin-top:14px}
.inq form{margin-top:30px;display:flex;flex-direction:column;gap:16px}
.inq .f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.inq label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.62);margin-bottom:8px}
.inq input,.inq select,.inq textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.3);color:#fff;font-family:var(--ui);font-size:15px;padding:11px 0;min-height:44px;min-width:0}
.inq textarea{min-height:96px;resize:vertical}
.inq input::placeholder,.inq textarea::placeholder{color:rgba(255,255,255,.38)}
.inq select option{color:#111}
.inq input:focus,.inq select:focus,.inq textarea:focus{outline:0;border-bottom-color:var(--gold)}
.submit-btn{margin-top:10px;align-self:flex-start;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.7);padding:15px 34px;font-family:var(--ui);font-size:12px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;min-height:48px;transition:background .35s,color .35s}
.submit-btn:hover{background:var(--gold);color:var(--ink-deep);border-color:var(--gold)}
.inq-alt{margin-top:30px;display:flex;flex-wrap:wrap;gap:10px 28px;font-size:13.5px;color:rgba(255,255,255,.74)}
.inq-alt a{border-bottom:1px solid rgba(255,255,255,.3);padding:10px 0;min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere;box-sizing:border-box}
.form-msg{font-size:13px;color:var(--gold);min-height:18px}
.honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:1050px){.inq{grid-template-columns:1fr}.inq-img{min-height:280px}}
@media(max-width:560px){.inq .f2{grid-template-columns:1fr}}

/* office / contact info blocks */
.info{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;text-align:center}
.info h3{color:var(--ink-deep)}
.info p{margin-top:8px}
.info a{color:var(--gold-dark);border-bottom:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:4px 0}
@media(max-width:900px){.info{grid-template-columns:1fr}}

/* faq */
.faq{max-width:900px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 0;font-family:var(--serif);font-size:clamp(16px,1.6vw,20px);text-transform:uppercase;letter-spacing:.03em;display:flex;justify-content:space-between;gap:18px;align-items:center;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--ui);font-size:20px;color:var(--gold-dark)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 0 22px;font-size:15px;max-width:74ch}
.faq details p a{display:inline-flex;align-items:center;min-height:44px}

/* footer */
.foot{background:var(--ink-deep);color:#fff;padding:clamp(48px,6vw,84px) 0 34px}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px}
.foot .brand{text-align:left}
.foot h4{font-family:var(--serif);font-size:14px;text-transform:uppercase;letter-spacing:.18em;font-weight:400;margin-bottom:16px;color:var(--gold)}
.foot-c{display:flex;flex-direction:column;gap:11px;font-size:14px;color:rgba(255,255,255,.7)}
.foot-c a{min-height:40px;display:flex;align-items:center;overflow-wrap:anywhere}
.foot-c a:hover{color:#fff}
.foot-social{display:flex;gap:12px;margin-top:6px}
.foot-social a{width:40px;height:40px;min-height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;transition:background .3s var(--ease),border-color .3s var(--ease)}
.foot-social a:hover{background:rgba(255,255,255,.12);border-color:var(--gold)}
.foot-social svg{width:17px;height:17px;fill:rgba(255,255,255,.82);display:block}
.foot-social a:hover svg{fill:var(--gold)}
.foot-bot{margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.6)}
.foot-legal{margin-top:18px;font-size:14px;line-height:1.75;color:rgba(255,255,255,.5)}

@media(max-width:1050px){
  .about{grid-template-columns:1fr;text-align:center}
  .about-l{max-width:44ch;margin:0 auto}
  .about-photo{max-width:340px;margin:0 auto}
  .about-r{max-width:62ch;margin:0 auto}
  .band-in{grid-template-columns:repeat(2,1fr);gap:34px 20px}
  .cred{grid-template-columns:1fr 1fr}
  .foot-top{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .nav-left,.nav-right{display:none}
  .nav-in{grid-template-columns:1fr auto}
  .brand{text-align:left;justify-self:start}
  .burger{display:flex;justify-self:end}
  .hero-strip{flex-direction:column;align-items:flex-start;gap:16px}
  .hero-scrim{background:linear-gradient(180deg,rgba(10,9,7,.64) 0%,rgba(10,9,7,.36) 40%,rgba(10,9,7,.7) 100%)}
}
@media(max-width:560px){
  .band-in{grid-template-columns:1fr;gap:30px}
  .foot-top{grid-template-columns:1fr}
  .cred{grid-template-columns:1fr}
}

input,textarea,select{min-width:0;max-width:100%}

/* hero CTAs , gold ghost buttons */
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:clamp(26px,3.4vw,40px)}
.hero-cta .btn{min-width:210px}
.btn-agency{background:var(--gold);border-color:var(--gold);color:var(--ink-deep)}
.btn-agency:hover{background:var(--ink-deep);border-color:var(--ink-deep);color:#fff}
.btn-agency-out{background:transparent;border-color:#fff;color:#fff}
.btn-agency-out:hover{background:#fff;color:#000}
@media(max-width:520px){.hero-cta{flex-direction:column;align-items:stretch}.hero-cta .btn{width:100%;min-width:0}}
/* hero background video */
.hero-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* v5: hero legibility over motion video + mobile spacing */
.hero-scrim{background:linear-gradient(180deg,rgba(8,8,8,.72) 0%,rgba(8,8,8,.42) 30%,rgba(8,8,8,.46) 60%,rgba(8,8,8,.78) 100%)}
.hero h1,.hero .hero-kicker,.hero-sub{text-shadow:0 2px 22px rgba(0,0,0,.55)}
.hero .hero-kicker{color:#E4C989}
@media(max-width:900px){
  .hero-inner{padding-top:150px}
  .hero-scrim{background:linear-gradient(180deg,rgba(8,8,8,.80) 0%,rgba(8,8,8,.48) 35%,rgba(8,8,8,.82) 100%)}
}
.hero .wordmark .w1,.hero .wordmark .w2,.hero .wordmark .w3{text-shadow:0 2px 22px rgba(0,0,0,.6)}
.hero .wordmark .w3{color:#E4C989}
@media(max-width:900px){.hero-inner{padding-top:210px}}

/* about-2col: 2-col about layout (photo + copy) used on about.html , dedicated
   class instead of an inline style override, so the mobile @media rule below
   actually wins at narrow widths (inline style beats @media at every width). */
.about-2col{grid-template-columns:minmax(280px,360px) 1fr}
@media(max-width:1050px){.about-2col{grid-template-columns:1fr}}

/* ============================================================
   DOMINIQUE ALEXANDER THEME
   Deep Earth #453828 / Quiet White #F3ECE2 (client brand book)
   Type: Archivo (wide) display, Figtree text
   ============================================================ */
:root{
  --ink:#241C13; --ink-deep:#17110B; --mist:#6E6154; --mist-lt:#8C7F70;
  --bone:#FAF6F0; --paper:#F3ECE2; --earth:#453828; --earth-d:#2E251A;
  --line:rgba(69,56,40,.16); --line-lt:rgba(243,236,226,.28);
  --gold:#CBB89C; --gold-dark:#5E4A31;
  --ui:'Figtree',system-ui,-apple-system,sans-serif;
  --serif:'Archivo',system-ui,sans-serif;
}
body{background:var(--paper);font-size:16.5px;letter-spacing:.002em}
h1,h2,h3,.serif{font-family:var(--serif);font-variation-settings:'wdth' 118;font-weight:400}
h2{letter-spacing:.10em;font-size:clamp(25px,3.5vw,44px);line-height:1.16}
h3{letter-spacing:.10em;font-weight:500}
p{color:rgba(36,28,19,.74)}
.lede{color:rgba(36,28,19,.80)}
em{font-style:normal;color:var(--gold-dark)}
.eyebrow{letter-spacing:.30em;font-weight:600;font-size:10.5px}
.eyebrow.on-dark{color:var(--gold)}

/* buttons */
.btn{border-color:var(--ink-deep);font-family:var(--serif);font-variation-settings:'wdth' 112;letter-spacing:.18em;text-indent:.18em;font-size:11.5px}
.btn:hover{background:var(--earth);border-color:var(--earth);color:var(--paper)}
.btn-solid-l{background:var(--paper);border:1px solid var(--paper);color:var(--ink-deep);display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 30px;font-family:var(--serif);font-size:11.5px;letter-spacing:.18em;text-indent:.18em;text-transform:uppercase;transition:background .35s var(--ease),color .35s var(--ease)}
.btn-solid-l:hover{background:transparent;color:var(--paper)}
.btn-gold{border-color:var(--gold);color:var(--gold)}
.btn-gold:hover{background:var(--gold);color:var(--ink-deep)}
.sec-dark .btn{border-color:var(--line-lt);color:var(--paper)}
.sec-dark .btn:hover{background:var(--paper);color:var(--ink-deep)}

/* preview banner */
.pv-banner{background:var(--ink-deep);color:#fff}
.pv-cta{background:var(--gold);color:#1A130B}
.pv-cta:hover{background:var(--paper)}

/* nav + logo lockup */
.brand{display:inline-flex;flex-direction:column;align-items:center;gap:8px;white-space:normal}
.brand .bl{height:clamp(15px,1.5vw,20px);width:auto;transition:opacity .3s}
.brand .bl-dark{display:none}
.brand .b2{font-family:var(--ui);font-size:9px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);opacity:.9}
.nav.stuck{background:var(--paper);box-shadow:0 1px 0 var(--line)}
.nav.stuck .bl-light{display:none}
.nav.stuck .bl-dark{display:block}
.nav.stuck .brand .b2{color:var(--gold-dark)}
.nav a.n-link{font-family:var(--serif);font-variation-settings:'wdth' 112;font-size:11.5px;letter-spacing:.20em}
.nav a.n-link.on{opacity:1;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
.mn-tel{font-size:15px;opacity:.7}

/* hero */
.hero-eyebrow{font-family:var(--serif);font-variation-settings:'wdth' 118;font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:clamp(18px,2.4vw,30px)}
.hero-name{font-family:var(--serif);font-variation-settings:'wdth' 118;font-weight:300;text-transform:uppercase;letter-spacing:.13em;font-size:clamp(30px,6.2vw,80px);line-height:1.06;color:#fff}
.hero-role{margin-top:clamp(16px,2vw,24px);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.hero-sub{margin-top:14px;color:rgba(255,255,255,.88);max-width:46ch;font-size:clamp(15px,1.4vw,18px)}
.hero-inner .hero-cta{margin-top:clamp(26px,3.4vw,40px)}
.hero-scrim{background:linear-gradient(180deg,rgba(23,17,11,.70) 0%,rgba(23,17,11,.50) 38%,rgba(23,17,11,.80) 100%)}
.hero,.phero{background:var(--ink-deep)}
.hero-strip{border-color:rgba(243,236,226,.30);background:rgba(23,17,11,.42)}
.hero-strip .hs-k{font-family:var(--serif);font-variation-settings:'wdth' 118;font-size:clamp(19px,2vw,27px);letter-spacing:.04em;text-transform:none;color:var(--paper);opacity:1}
.hero-strip .hs-v{font-family:var(--ui);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-top:8px;color:rgba(243,236,226,.72);line-height:1.5}
.phero-sub{margin-top:16px;color:rgba(255,255,255,.86);max-width:52ch;font-size:clamp(15px,1.35vw,17.5px)}
.phero h1{font-family:var(--serif);font-variation-settings:'wdth' 118;font-weight:300;text-transform:uppercase;letter-spacing:.11em}

/* sections */
.sec-bone{background:var(--bone)}
.sec-dark{background:var(--earth);color:var(--paper)}
.sec-dark p,.sec-dark .lede{color:rgba(243,236,226,.78)}
.sec-dark h2,.sec-dark h3{color:var(--paper)}
.sec-dark .credi{border-color:var(--line-lt)}
.sec-dark .num{color:var(--gold)}
.credi .num{font-family:var(--serif);font-variation-settings:'wdth' 118}

/* about */
.about-l .serif{font-variation-settings:'wdth' 105;font-weight:300;text-transform:none;letter-spacing:.01em;line-height:1.44}
.about-dre{font-size:10.5px;letter-spacing:.20em;text-transform:uppercase;color:var(--mist)}

/* image band */
.band-img .bscrim{background:linear-gradient(180deg,rgba(23,17,11,.42),rgba(23,17,11,.80))}
.band-in .k{font-family:var(--serif);font-variation-settings:'wdth' 118;color:var(--gold)}
.band-in .v{color:rgba(255,255,255,.90)}

/* listings */
.listings{gap:26px}
.listings.one{grid-template-columns:repeat(2,1fr)}
.lc{border-color:var(--line);background:#fff}
.lc-body{gap:8px}
.lc .price{font-variation-settings:'wdth' 118;letter-spacing:.05em}
.lc .addr{font-variation-settings:'wdth' 108;font-size:clamp(15px,1.3vw,17px);letter-spacing:.03em;text-transform:uppercase}
.lc .status.sold{color:var(--gold-dark);border-color:var(--gold-dark)}
.lc-note{padding:clamp(26px,3vw,40px);justify-content:center;background:var(--earth);border-color:var(--earth)}
.lc-note h3,.lc-note p{color:var(--paper)}
.lc-note p{color:rgba(243,236,226,.78);margin-top:12px}
.lc-note .eyebrow{color:var(--gold)}
.lc-note h3{margin-top:12px;text-transform:none;letter-spacing:.04em;font-variation-settings:'wdth' 108;line-height:1.34}
.lc-note .btn{margin-top:22px;align-self:flex-start;border-color:var(--line-lt);color:var(--paper)}
.lc-note .btn:hover{background:var(--paper);color:var(--ink-deep)}

/* areas index */
.aindex{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(30px,4vw,70px)}
.ai{display:flex;gap:18px;padding:clamp(18px,2vw,24px) 0;border-top:1px solid var(--line-lt)}
.ai-n{font-family:var(--serif);font-variation-settings:'wdth' 118;font-size:11px;letter-spacing:.14em;color:var(--gold);padding-top:5px;min-width:24px}
.ai h3{font-size:clamp(16px,1.5vw,20px);text-transform:uppercase;letter-spacing:.09em}
.ai p{margin-top:7px;font-size:14.5px;color:rgba(243,236,226,.70);line-height:1.6}

/* specialties */
.spec{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.spec span{border:1px solid var(--line);padding:13px 22px;min-height:44px;display:inline-flex;align-items:center;font-family:var(--serif);font-variation-settings:'wdth' 112;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}

/* closing bands */
.cband{background:var(--bone)}
.nlb{background:var(--earth-d);color:var(--paper);border-top:none}
.nlb h2,.nlb p{color:var(--paper)}
.nlb p{color:rgba(243,236,226,.80)}
.nlb .eyebrow.on-dark{color:var(--gold)}

/* inquiry */
.inq-body{background:var(--earth)}
.inq-body h2{color:var(--paper)}
.inq-body p{color:rgba(243,236,226,.80)}
.inq-body label{color:rgba(243,236,226,.80)}
.inq-body input,.inq-body textarea{background:rgba(243,236,226,.06);border-color:var(--line-lt);color:var(--paper)}
.inq-body input::placeholder,.inq-body textarea::placeholder{color:rgba(243,236,226,.42)}
.submit-btn{background:var(--paper);color:var(--ink-deep);font-family:var(--serif);font-variation-settings:'wdth' 112;letter-spacing:.18em;text-indent:.18em}
.submit-btn:hover{background:var(--gold);color:var(--ink-deep)}
.inq-alt a{color:var(--gold)}

/* footer */
.foot{background:var(--ink-deep);color:var(--paper)}
.foot-lockup{width:clamp(150px,15vw,190px);height:auto}
.foot h4{font-family:var(--serif);font-variation-settings:'wdth' 118;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.foot-c a{color:rgba(243,236,226,.72);min-height:40px;display:inline-flex;align-items:center}
.foot-c a:hover{color:var(--paper)}
.foot-legal{color:rgba(243,236,226,.44)}
.foot-bot{color:rgba(243,236,226,.56)}

/* info row */
.info h3{letter-spacing:.16em;font-size:12px;color:var(--gold-dark)}
.info a{border-bottom:1px solid var(--line)}

@media(max-width:860px){
  .aindex{grid-template-columns:1fr}
  .listings.one{grid-template-columns:1fr}
}

/* --- fixes pass 1 --- */
.sec-dark .cred{background:var(--line-lt);border-color:var(--line-lt)}
.sec-dark .credi{background:var(--earth)}
.sec-dark .credi h3{color:var(--paper)}
.sec-dark .credi p{color:rgba(243,236,226,.76)}
/* no dead cells */
.cred:has(> .credi:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
.cred:has(> .credi:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}
@media(max-width:1050px){.cred:has(> .credi:nth-child(2):last-child){grid-template-columns:1fr}}
.credi{display:flex;flex-direction:column}
.credi .btn{margin-top:auto}

/* --- fixes pass 2: hero type + mobile clearance --- */
.hero-sub{text-transform:none;letter-spacing:.01em;line-height:1.6}
.hero-role{overflow-wrap:anywhere}
@media(max-width:900px){
  .hero-inner{padding-top:214px;padding-bottom:34px}
  .phero{min-height:auto}
  .phero-inner{padding:214px 0 56px}
  .hero-name{font-size:clamp(27px,7.6vw,42px);letter-spacing:.06em}
  .phero h1{font-size:clamp(27px,7.8vw,42px);letter-spacing:.05em;overflow-wrap:anywhere}
  .hero-eyebrow{font-size:10px;letter-spacing:.24em}
  .hero-role{font-size:10.5px;letter-spacing:.14em}
  .hero-sub,.phero-sub{font-size:15px}
  .hero-cta{width:100%;flex-direction:column;align-items:stretch;gap:12px}
  .hero-cta .btn,.hero-cta .btn-solid-l{width:100%;min-width:0}
  .hero-strip{gap:16px}
  .hero-strip>div{width:100%}
  .spec span{font-size:11px;padding:12px 16px}
}

/* --- fixes pass 3: never use the padding shorthand on .wrap children --- */
.hero-inner{padding-left:var(--pad);padding-right:var(--pad)}
@media(max-width:900px){
  .phero-inner{padding:0;padding-top:206px;padding-bottom:54px}
  .hero-inner{padding-top:206px}
  .hero-eyebrow{letter-spacing:.18em}
}

/* --- fixes pass 4 --- */
@media(max-width:900px){
  .phero-inner{padding-left:var(--pad);padding-right:var(--pad);padding-top:222px}
}

/* --- fixes pass 5: accent numbers on light, hero line-height --- */
.credi .num{color:var(--gold-dark)}
.sec-dark .credi .num{color:var(--gold)}
.hero-name{line-height:1.14}
@media(max-width:900px){.hero-name,.phero h1{line-height:1.22}}

/* --- fixes pass 6: :has() column rules must not beat the phone breakpoint --- */
@media(max-width:560px){
  .cred:has(> .credi:nth-child(2):last-child),
  .cred:has(> .credi:nth-child(4):last-child){grid-template-columns:1fr}
}
@media(max-width:900px){.phero-inner{padding-top:252px}}

/* ============ PROPERTY PAGES (pass 7) ============ */
.sec-cream{background:var(--paper)}
.lc-link{color:inherit;display:flex}
.lc-link .lc-go{display:block;margin-top:12px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dark);transition:opacity .3s}
.lc-link:hover .lc-go{opacity:.6}
.lc .status.active{color:#2F6B3F;border-color:#2F6B3F}
.s-more{margin-top:34px;text-align:center}
.phero-tall{min-height:76svh}

/* spec bar */
.pspec{background:var(--ink-deep);color:#fff;padding:34px 0}
.pspec-in{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;text-align:center}
.pspec-in>div{display:flex;flex-direction:column;gap:8px;border-left:1px solid rgba(255,255,255,.16);padding:4px 10px}
.pspec-in>div:first-child{border-left:0}
.pspec .k{font-family:var(--serif);font-weight:300;font-size:clamp(20px,2.3vw,32px);line-height:1.1;color:var(--gold)}
.pspec .v{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.66)}

/* narrative + agent card */
.pnar{display:grid;grid-template-columns:1.55fr .85fr;gap:clamp(32px,4.6vw,68px);align-items:start}
.pnar-l p{margin-top:18px;color:var(--mist);font-size:17px}
.pcard{background:var(--bone);border:1px solid var(--line);position:sticky;top:120px}
.pcard>img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;display:block}
.pcard-b{padding:26px 24px 28px;display:flex;flex-direction:column;gap:12px}
.pcard-b h3{font-family:var(--serif);font-weight:300;font-size:24px;color:var(--ink-deep)}
.pcard-r{font-size:13px;color:var(--mist);line-height:1.6}
.btn-full{width:100%}
.btn-ghost{border-color:var(--line);color:var(--ink)}
.pcard-n{font-size:12.5px;color:var(--mist-lt);line-height:1.6}

/* mosaic gallery */
.gmos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px}
.gtile{border:0;padding:0;background:#e7e2d8;cursor:pointer;overflow:hidden;aspect-ratio:4/3;display:block;position:relative}
.gtile.g-wide{grid-column:span 2;aspect-ratio:8/3}
.gtile img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),opacity .3s}
.gtile:hover img{transform:scale(1.06);opacity:.92}
.gtile:focus-visible{outline:2px solid var(--gold-dark);outline-offset:3px}

/* next property */
.nextp{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.nextp-a{display:flex;gap:12px;flex-wrap:wrap}

/* lightbox */
.lbox{position:fixed;inset:0;z-index:400;background:rgba(8,7,6,.95);display:none;align-items:center;justify-content:center}
.lbox.open{display:flex}
.lbox img{max-width:92vw;max-height:84vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.lb-close,.lb-prev,.lb-next{position:absolute;background:transparent;border:0;color:#fff;cursor:pointer;line-height:1;padding:14px;min-width:52px;min-height:52px}
.lb-close{top:14px;right:16px;font-size:40px}
.lb-prev{left:8px;font-size:58px}
.lb-next{right:8px;font-size:58px}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{color:var(--gold)}
.lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.72)}
body.lb-lock{overflow:hidden}

@media(max-width:900px){
  .pnar{grid-template-columns:1fr}
  .pcard{position:static;max-width:520px}
  .gmos{grid-template-columns:repeat(2,1fr);gap:10px}
  .gtile.g-wide{grid-column:span 2;aspect-ratio:16/9}
  .pspec-in{grid-template-columns:repeat(3,1fr);gap:18px 10px}
  .pspec-in>div:nth-child(4){border-left:0}
  .phero-tall{min-height:62svh}
}
@media(max-width:560px){
  .pspec-in{grid-template-columns:repeat(2,1fr)}
  .pspec-in>div:nth-child(odd){border-left:0}
  .pspec-in>div:nth-child(4){border-left:1px solid rgba(255,255,255,.16)}
  .nextp{flex-direction:column;align-items:flex-start}
  .nextp-a .btn{width:100%}
  .lb-prev,.lb-next{font-size:42px}
}

/* pass 8 */
.band-in .k.k-sm{font-size:clamp(24px,2.7vw,40px);letter-spacing:.01em}

/* pass 9 - featured listing page */
.embed{position:relative}
.embed-ph{position:relative;aspect-ratio:16/9;overflow:hidden;background:#12100d}
.embed-ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.embed-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,16,13,.35),rgba(18,16,13,.72))}
.embed-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:#F3ECE2}
.embed-c .play{width:74px;height:74px;border:1px solid rgba(243,236,226,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:8px}
.embed-t{font-family:var(--serif);text-transform:uppercase;letter-spacing:.12em;font-size:15px}
.embed-s{font-size:13px;color:rgba(243,236,226,.62);letter-spacing:.04em}
.gtile.ph{position:relative;cursor:default}
.gtile.ph img{filter:saturate(.9)}
.ph-tag{position:absolute;left:12px;top:12px;background:rgba(18,16,13,.72);color:rgba(243,236,226,.9);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:5px 9px}
.ph-note{font-size:13px;color:rgba(18,16,13,.55);border-left:2px solid var(--gold-dark);padding-left:14px;margin-top:18px}

/* pass 10 - hero video */
.hero-vid{position:absolute;inset:0;overflow:hidden}
.hero-vid .hv-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-vid .hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease}
.hero-vid .hv.ready{opacity:1}
@media (prefers-reduced-motion:reduce){.hero-vid .hv{display:none}}

/* pass 11 - stat band alignment */
.band-in>div{display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.band-in .k{display:flex;align-items:flex-end;justify-content:center;min-height:clamp(40px,5vw,70px)}
.band-in .k.k-sm{white-space:nowrap;font-size:clamp(19px,2.6vw,38px)}
.band-in .v{margin-top:18px}
@media (max-width:560px){.band-in .k{min-height:0}.band-in .k.k-sm{font-size:clamp(24px,7vw,34px)}}

/* ==== v50 revisions: nav 7, review marquee, specialty tiles, neighborhoods, contact ==== */
.nav-in{grid-template-columns:auto auto 1fr;align-items:center}
.nav-right{display:flex;justify-content:flex-end;gap:clamp(12px,1.6vw,24px);white-space:nowrap}
.nav-left{display:flex;gap:clamp(12px,1.6vw,24px);white-space:nowrap}
@media(max-width:1080px){.nav-left,.nav-right{display:none}.nav-in{grid-template-columns:1fr auto}}

.phero-tall{min-height:64svh}
.phero-role{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;text-align:center;margin-left:auto;margin-right:auto;letter-spacing:.06em}
.phero-role .rdot{opacity:.6}
.note-c{text-align:center;margin-top:26px}
.btn-sm{padding:11px 18px;font-size:10.5px}

/* review marquee */
.sec-rvw{overflow:hidden}
.marquee{margin-top:clamp(30px,4vw,52px);overflow:hidden;position:relative;
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.mq-track{display:flex;gap:24px;width:max-content;animation:mq 64s linear infinite}
.marquee:hover .mq-track{animation-play-state:paused}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.mq-track{animation:none}.marquee{overflow-x:auto}}
.rvw{flex:0 0 clamp(280px,30vw,400px);margin:0;padding:clamp(24px,2.4vw,34px);
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.03);display:flex;flex-direction:column;gap:16px}
.rvw .stars{color:var(--gold);letter-spacing:.24em;font-size:12px}
.rvw blockquote{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(16px,1.5vw,20px);
  line-height:1.55;color:rgba(255,255,255,.92)}
.rvw figcaption{margin-top:auto;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.sec-cream .rvw,.sec-bone .rvw{border-color:var(--line);background:#fff}
.sec-cream .rvw blockquote,.sec-bone .rvw blockquote{color:var(--ink)}
.sec-cream .rvw figcaption,.sec-bone .rvw figcaption{color:rgba(0,0,0,.55)}

/* specialty tiles */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.6vw,24px)}
.path{position:relative;display:block;min-height:clamp(380px,42vw,520px);overflow:hidden;border:1px solid var(--line)}
.path-img,.path-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.path-img img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.path:hover .path-img img{transform:scale(1.05)}
.path-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,.05) 0%,rgba(10,9,8,.30) 45%,rgba(10,9,8,.82) 100%)}
.path-body{position:absolute;left:0;right:0;bottom:0;padding:clamp(24px,2.2vw,34px);color:#fff;z-index:2}
.path-body h3{font-family:var(--serif);font-weight:300;font-size:clamp(21px,2.1vw,29px);line-height:1.2;color:#fff}
.path-body p{margin-top:12px;color:rgba(255,255,255,.84);font-size:14.5px;max-width:34ch}
.path-go{display:inline-block;margin-top:18px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  padding-bottom:6px;border-bottom:1px solid var(--gold);color:#fff}
@media(max-width:900px){.paths{grid-template-columns:1fr}.path{min-height:340px}}

/* neighborhood cards */
.nbg{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.2vw,32px)}
.nbc{border:1px solid var(--line);background:#fff;display:flex;flex-direction:column}
.nbc-img{display:block;aspect-ratio:4/3;overflow:hidden}
.nbc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.nbc:hover .nbc-img img{transform:scale(1.05)}
.nbc-body{padding:clamp(20px,1.8vw,28px);display:flex;flex-direction:column;gap:12px;flex:1}
.nbc-body h3{font-family:var(--serif);font-weight:300;font-size:clamp(19px,1.8vw,25px);line-height:1.2}
.nbc-body p{font-size:14.5px;color:var(--muted)}
.nbc-body .btn{margin-top:auto;align-self:flex-start}
@media(max-width:1000px){.nbg{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.nbg{grid-template-columns:1fr}}

/* neighborhoods page rows */
.nbrs{display:flex;flex-direction:column;gap:clamp(44px,5vw,86px);margin-top:clamp(36px,4vw,64px)}
.nbr{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(26px,3vw,54px);align-items:center}
.nbr-flip .nbr-img{order:2}
.nbr-img{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line)}
.nbr-img img{width:100%;height:100%;object-fit:cover}
.nbr-body h3{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.6vw,38px);line-height:1.15;margin-top:10px}
.nbr-lede{margin-top:14px;font-family:var(--serif);font-size:clamp(16px,1.5vw,20px);color:var(--ink)}
.nbr-body p{margin-top:14px;color:var(--muted)}
.nbr-body .btn{margin-top:24px}
@media(max-width:860px){.nbr{grid-template-columns:1fr}.nbr-flip .nbr-img{order:0}}

/* contact refinements */
.ctop{padding-bottom:0}
.ctrust{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,30px);text-align:center}
.ctrust .k{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.6vw,38px);color:var(--ink)}
.ctrust .v{margin-top:10px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
@media(max-width:700px){.ctrust{grid-template-columns:1fr;gap:22px}}
#leadForm select{width:100%;min-height:48px;padding:12px 14px;border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.04);color:#fff;font:inherit;font-size:15px;border-radius:0;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.7) 50%),linear-gradient(135deg,rgba(255,255,255,.7) 50%,transparent 50%);
  background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
#leadForm select option{color:#111}
.fine{margin-top:14px;font-size:12px;color:rgba(255,255,255,.6)}
.feat-lead{padding:0;align-items:center}
.fl-addr{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3vw,44px);line-height:1.1;margin-top:14px}
.fl-city{color:var(--muted);margin-top:8px}
.fl-meta{display:flex;gap:20px;margin:18px 0 14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.fl-meta span{padding-right:20px;border-right:1px solid var(--line)}
.fl-meta span:last-child{border-right:0;padding-right:0}
.info{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.info{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.info{grid-template-columns:1fr}}
.info a,.inq-alt a{overflow-wrap:anywhere}
/* ===== WLP LOOK THEME ===== */

/* ==========================================================================
   LOOK A, EDITORIAL SERIF  (locked 2026-09-04)
   Ivory + warm neutral, Cormorant Garamond display, centred, hairline rules.
   ========================================================================== */
:root{
  --ink:#1B1B1D; --ink-deep:#101011; --mist:#5E5B57; --mist-lt:#8B8781;
  --bone:#FFFFFF; --paper:#F6F4F0;
  --earth:#1E1E20; --earth-d:#101011;
  --line:rgba(16,16,17,.14); --line-lt:rgba(255,255,255,.26);
  --gold:#BCA88C; --gold-dark:#7A6A55;
  --ui:'Inter',system-ui,-apple-system,sans-serif;
  --serif:'Cormorant Garamond',Georgia,serif;
}
body{font-size:16.5px;letter-spacing:0}
h1,h2,h3,.serif{font-family:var(--serif);font-variation-settings:normal;font-weight:300;letter-spacing:.06em}
h2{font-size:clamp(26px,3.5vw,44px);line-height:1.18;letter-spacing:.12em;text-transform:uppercase;font-weight:300}
h3{font-size:clamp(17px,1.4vw,21px);letter-spacing:.10em;font-weight:400;text-transform:uppercase}
p{color:rgba(27,27,29,.74)}
.lede{color:rgba(27,27,29,.80)}
.eyebrow{font-family:var(--ui);font-size:10.5px;font-weight:500;letter-spacing:.30em;color:var(--gold-dark)}
.eyebrow.on-dark{color:var(--gold)}
.s-head::after{content:'';display:block;width:52px;height:1px;background:var(--gold);margin:26px auto 0}
.sec-dark .s-head::after{background:var(--gold)}
.btn,.btn-solid-l,.submit-btn{font-family:var(--ui);font-variation-settings:normal;font-size:11.5px;letter-spacing:.17em;text-indent:.17em;font-weight:500}
.hero-name,.phero h1{font-family:var(--serif);font-variation-settings:normal;font-weight:300;letter-spacing:.085em}
.hero-eyebrow{font-family:var(--ui);letter-spacing:.36em;font-size:10.5px}
.nav a.n-link{font-family:var(--ui);font-variation-settings:normal;font-size:11px;letter-spacing:.19em}
.brand .b2,.foot h4{font-family:var(--ui)}
.credi .num,.band-in .k,.pspec .k,.lc .price,.lc .addr,.ai-n{font-variation-settings:normal}
.credi .num{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px)}
.lc .addr{font-family:var(--serif);letter-spacing:.05em}
.lc{border-color:var(--line)}
.gtile{background:#EDE9E3}

.phero-sub{text-align:center;margin-left:auto;margin-right:auto;max-width:60ch}
.phero-role{max-width:none;white-space:nowrap}
.phero-role .rdot{margin:0 2px}
@media(max-width:820px){.phero-role{white-space:normal;flex-direction:column;gap:8px}.phero-role .rdot{display:none}}
.phero .hero-scrim{background:linear-gradient(180deg,rgba(8,8,9,.42) 0%,rgba(8,8,9,.30) 45%,rgba(8,8,9,.62) 100%)}
/* v52: hero spacing, seamless marquee, contact mobile */
.hero-role{margin-top:clamp(16px,1.8vw,24px)}
.hero-cta{margin-top:clamp(30px,3.4vw,46px)}
.marquee{opacity:1;transform:none}
.mq-track{gap:0;animation-duration:78s}
.rvw{margin-right:24px}
@media(max-width:700px){.mq-track{animation-duration:46s}.rvw{flex:0 0 78vw;margin-right:16px}}
.inq-img img{object-position:50% 22%}
@media(max-width:1050px){.inq-img{min-height:0;aspect-ratio:4/5;max-height:76vh}
  .inq-img img{position:relative;height:100%;object-position:50% 18%}}
@media(max-width:560px){.inq-body{padding:34px 22px 44px}.inq-alt{gap:8px 18px}}
/* v53: hero centering + scroll cue, marquee reliability, contact order */
.hero-inner{padding-top:clamp(96px,14vh,132px);padding-bottom:clamp(96px,14vh,132px);justify-content:center}
@media(max-width:1100px){.hero-inner{padding-top:clamp(96px,14vh,124px);padding-bottom:clamp(96px,14vh,124px)}}
@media(max-width:900px){.hero-inner{padding-top:118px;padding-bottom:118px}}
@media(max-width:560px){.hero-inner{padding-top:112px;padding-bottom:112px}
  .hero-role{margin-top:14px;line-height:1.7}
  .hero-inner .hero-cta{margin-top:26px;gap:12px}}
.scroll-cue{text-decoration:none}
.scroll-cue:hover{color:#fff}
/* marquee: never invisible, JS sets pixel-accurate loop */
.marquee{min-height:180px}
.mq-track{animation-name:mqpx}
@keyframes mqpx{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(var(--mqw,50%) * -1),0,0)}}
.mq-track.ready{animation-name:mqpx}
/* contact: trust row now sits under the form, normal rhythm */
.ctop{padding-bottom:clamp(56px,7vw,96px)}
.ctop .ctrust{padding-top:0}
@media(max-width:700px){.ctop{padding-top:clamp(44px,8vw,64px)}.ctrust{gap:30px}}
/* v54: contact form above the portrait on mobile */
@media(max-width:1050px){.inq{display:flex;flex-direction:column}
  .inq-body{order:1}.inq-img{order:2;aspect-ratio:16/11;max-height:52vh}
  .inq-img img{object-position:50% 22%}}

/* ==== v55: nav centering, contact page rebuilt around the form ==== */
.nav-in{grid-template-columns:1fr auto 1fr}
.nav-left{justify-content:flex-start}
@media(max-width:1080px){.nav-in{grid-template-columns:1fr auto}}

/* contact: one centered column, no portrait */
.cform{background:var(--paper);padding:clamp(60px,7vw,104px) 24px clamp(52px,6vw,84px)}
.cform-in{max-width:780px;margin:0 auto}
.cform-head{text-align:center}
.cform-head h2{margin:10px 0 0}
.cform-sub{margin:14px auto 0;max-width:56ch;color:var(--mist)}
.crule{width:56px;height:1px;background:var(--gold);margin:26px auto 0}
.cform-card{margin-top:clamp(30px,3.4vw,44px);background:#fff;border:1px solid var(--line);
  padding:clamp(26px,3.4vw,46px);box-shadow:0 22px 60px rgba(27,27,29,.06)}
.cform-card form{margin:0}
.cform-card .submit-btn{width:100%}
.cform-card .fine{text-align:center}
.ctrust3{margin-top:clamp(28px,3vw,40px);display:grid;grid-template-columns:repeat(3,1fr);
  gap:18px;text-align:center;border-top:1px solid var(--line);padding-top:clamp(24px,2.6vw,32px)}
.ctrust3 .k{font-family:var(--serif);font-weight:300;font-size:clamp(19px,2vw,25px);color:var(--ink-deep);line-height:1.15}
.ctrust3 .v{margin-top:8px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mist);line-height:1.5}
.cdirect{margin-top:clamp(24px,2.6vw,34px);display:flex;flex-wrap:wrap;align-items:center;
  justify-content:center;gap:10px 22px;font-size:12.5px;letter-spacing:.06em}
.cdirect span{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
.cdirect a{color:var(--ink-deep);border-bottom:1px solid var(--gold);padding-bottom:2px;overflow-wrap:anywhere}
.cinfo-sec{padding-top:clamp(46px,5vw,70px);padding-bottom:clamp(46px,5vw,70px);border-top:1px solid var(--line)}
@media(max-width:600px){
  .ctrust3{grid-template-columns:1fr;gap:22px;text-align:center}
  .cform-card{padding:22px 18px}
}

/* v55b: light form styling inside the contact card (the old rules were scoped to .inq) */
.cform-card form{display:flex;flex-direction:column;gap:clamp(16px,1.8vw,22px)}
.cform-card .f2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,1.8vw,22px)}
.cform-card label{display:block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--mist);margin-bottom:9px}
.cform-card input,.cform-card select,.cform-card textarea{width:100%;box-sizing:border-box;
  background:var(--paper);border:1px solid var(--line);border-radius:0;color:var(--ink-deep);
  font-family:var(--ui);font-size:15px;padding:13px 14px;min-height:48px;min-width:0;
  -webkit-appearance:none;appearance:none;transition:border-color .3s,background .3s}
.cform-card select{background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);
  background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  padding-right:40px}
.cform-card textarea{min-height:118px;resize:vertical}
.cform-card input::placeholder,.cform-card textarea::placeholder{color:#A9A29A}
.cform-card input:focus,.cform-card select:focus,.cform-card textarea:focus{outline:0;
  border-color:var(--gold);background:#fff}
.cform-card .submit-btn{margin-top:6px;min-height:54px;letter-spacing:.18em}
.cform-card .fine{margin-top:2px;font-size:11px;color:var(--mist)}
@media(max-width:600px){.cform-card .f2{grid-template-columns:1fr}}

/* v57: beat the #leadForm dark-form rules inside the light contact card */
.cform-card #leadForm select{border:1px solid var(--line);background-color:var(--paper);color:var(--ink-deep);
  padding:13px 40px 13px 14px;min-height:48px;
  background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);
  background-position:calc(100% - 19px) 22px,calc(100% - 14px) 22px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.cform-card #leadForm select:focus{border-color:var(--gold);background-color:#fff}
.cform-card #leadForm .fine{color:var(--mist);text-align:center}
.cform-card #leadForm .form-msg{color:var(--ink-deep);text-align:center}

/* v58: contact detail band, no mid-word email breaks, no dead space under the form */
.cform-card .form-msg:empty{display:none;margin:0}
.cinfo-sec .info{grid-template-columns:1.15fr .85fr 1.15fr .95fr;gap:clamp(22px,3vw,44px)}
.cinfo-sec .info a,.cinfo-sec .info p{overflow-wrap:break-word;word-break:normal;hyphens:none}
.cinfo-sec .info a[href^="mailto"]{font-size:13.5px;letter-spacing:0}
@media(max-width:860px){.cinfo-sec .info{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.cinfo-sec .info{grid-template-columns:1fr}}

/* v59: testimonials page, symmetrical 4/4 nav, high contrast contact CTA */
.trow{margin-top:clamp(30px,3.4vw,44px);display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:clamp(26px,3vw,38px) 0}
.trow .k{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.6vw,50px);line-height:1;color:var(--gold-dark)}
.trow .v{margin-top:12px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
.tgrid{margin-top:clamp(34px,4vw,56px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,30px)}
.tcard{margin:0;background:#fff;border:1px solid var(--line);padding:clamp(24px,2.6vw,34px);
  display:flex;flex-direction:column}
.tcard .stars{color:var(--gold-dark);letter-spacing:.22em;font-size:12px}
.tcard blockquote{margin:16px 0 0;font-family:var(--serif);font-weight:300;
  font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--ink-deep)}
.tcard figcaption{margin-top:auto;padding-top:22px;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mist)}
.tcard .tmeta{display:block;margin-top:7px;font-family:var(--serif);letter-spacing:.02em;
  text-transform:none;font-size:13.5px;color:var(--gold-dark)}
@media(max-width:960px){.tgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.tgrid{grid-template-columns:1fr}.trow{grid-template-columns:1fr;gap:26px}}

/* the CTA has to read as the darkest thing on a white card */
.cform-card .submit-btn{background:var(--ink-deep);color:#fff;border:1px solid var(--ink-deep);
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.cform-card .submit-btn:hover{background:var(--gold-dark);border-color:var(--gold-dark);color:#fff}


/* ==== v60: airier nav, contact opens on the form ==== */
/* links pushed to the edges so the centered logo has room */
.nav .wrap.nav-in{max-width:1680px;padding-left:clamp(16px,1.6vw,30px);padding-right:clamp(16px,1.6vw,30px);gap:clamp(26px,4vw,70px)}
.nav-left,.nav-right{gap:clamp(13px,1.4vw,22px)}
.nav .brand{padding-left:clamp(10px,1.4vw,26px);padding-right:clamp(10px,1.4vw,26px)}
@media(max-width:1080px){.nav .wrap.nav-in{gap:20px}}

/* contact page has no hero, so the nav needs its light treatment from the first pixel */
.light-top .nav{background:var(--paper);box-shadow:0 1px 0 var(--line)}
.light-top .nav a.n-link,.light-top .nav .brand{color:var(--ink-deep)}
.light-top .nav .brand .b2{color:var(--gold-dark)}
.light-top .nav .bl-light{display:none}
.light-top .nav .bl-dark{display:block}
.light-top .burger span{background:var(--ink-deep)}
.light-top .cform{padding-top:calc(var(--pvh) + clamp(104px,9vw,146px))}
@media(max-width:1080px){.light-top .cform{padding-top:calc(var(--pvh) + 108px)}}


/* ==== v61: hero CTA weight on mobile, eyebrow legibility ==== */
/* the later .btn rule was overriding the ghost button border, so it read dark on a dark hero */
.btn.btn-light{border-color:rgba(255,255,255,.62);color:#fff}
.btn.btn-light:hover{background:#fff;color:var(--ink-deep)}

/* eyebrow: lift the top of the scrim and warm the text up so it separates from a bright sky */
.hero-scrim{background:linear-gradient(180deg,rgba(20,15,10,.74) 0%,rgba(20,15,10,.34) 40%,rgba(20,15,10,.80) 100%)}
.hero-eyebrow{color:#E8D9BE;text-shadow:0 1px 18px rgba(0,0,0,.75)}

/* mobile: buttons sized to their words instead of edge to edge */
@media(max-width:900px){
  .hero-cta{width:auto;flex-direction:column;align-items:center;gap:10px}
  .hero-cta .btn,.hero-cta .btn-solid-l{width:auto;min-width:0;max-width:100%;
    min-height:44px;padding:12px 24px;font-size:10.5px;letter-spacing:.15em;text-indent:.15em}
  .hero-eyebrow{font-size:9.5px;letter-spacing:.20em;margin-bottom:16px}
  .hero-role{font-size:10px;letter-spacing:.12em;line-height:1.7}
}

/* v62: contact page heading is the h1 now that the hero is gone */
.cform-head h1{font-size:clamp(30px,3.5vw,52px);margin:10px 0 0;letter-spacing:.02em;line-height:1.12}

/* v62: phone and email on contact are primary actions, give them a real touch target */
@media(max-width:900px){
  .cdirect{gap:6px 18px}
  .cdirect a{display:inline-flex;align-items:center;min-height:44px;padding-bottom:0}
}

/* ==== v63: QC pass, legibility over bright photography ==== */
/* the fixed nav sat on bright hero tops with no protection, so the logo subtitle vanished */
.nav::before{content:"";position:absolute;left:0;right:0;top:calc(var(--pvh) * -1);
  height:calc(100% + var(--pvh) + 46px);pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,rgba(12,10,8,.62) 0%,rgba(12,10,8,.28) 58%,rgba(12,10,8,0) 100%)}
.nav.stuck::before,.light-top .nav::before{opacity:0}
.nav{isolation:isolate}
.nav .brand .b2{opacity:1}

/* interior page hero eyebrows had the same gold-on-bright-sky problem as the home hero */
.phero .eyebrow{color:#E8D9BE;text-shadow:0 1px 16px rgba(0,0,0,.7)}
.phero h1,.phero-sub{text-shadow:0 2px 20px rgba(0,0,0,.5)}
.phero-scrim,.phero .hero-scrim{background:linear-gradient(180deg,rgba(20,15,10,.66) 0%,rgba(20,15,10,.32) 42%,rgba(20,15,10,.72) 100%)}

/* stat band numbers were washing out against the bright kitchen photo */
.band-img .bscrim{background:linear-gradient(180deg,rgba(20,15,10,.58),rgba(20,15,10,.84))}
.band-in .k{text-shadow:0 2px 18px rgba(0,0,0,.5)}

/* listing page lede heading ran too large on a phone */
@media(max-width:900px){
  .plede h2,.pbody h2{font-size:clamp(21px,5.6vw,28px);line-height:1.22}
}

/* v63: closed mobile menu was still keyboard reachable at opacity 0 */
.mobile-nav{visibility:hidden;transition:opacity .35s var(--ease),visibility .35s step-end}
.mobile-nav.open{visibility:visible;transition:opacity .35s var(--ease),visibility 0s}

/* --- Look A additions (font-family neutral) --- */
.brand .b1{font-weight:500;letter-spacing:.12em;text-transform:uppercase;font-size:clamp(15px,1.35vw,19px)}
.foot-word{font-family:var(--serif);font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:20px;color:#fff}
.foot-sub{font-family:var(--ui);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-top:8px}
.lc.lc-text{display:flex;align-items:center;border:1px solid var(--line);background:var(--paper);min-height:280px}
.lc.lc-text .lc-body{padding:34px 30px;width:100%}
.about-l .serif{font-style:normal}
/* Real reviews, centered grid */
.tgrid.tgrid-2{grid-template-columns:repeat(2,1fr);max-width:820px;margin:clamp(34px,4vw,56px) auto 0}
@media(max-width:640px){.tgrid.tgrid-2{grid-template-columns:1fr}}
/* v76: video hero scrim , lighter so the footage reads, heavy only where copy sits */
.hero .hero-scrim{background:linear-gradient(180deg,rgba(12,10,8,.48) 0%,rgba(12,10,8,.18) 30%,rgba(12,10,8,.30) 62%,rgba(12,10,8,.66) 100%)}
@media(max-width:900px){.hero .hero-scrim{background:linear-gradient(180deg,rgba(12,10,8,.56) 0%,rgba(12,10,8,.26) 38%,rgba(12,10,8,.72) 100%)}}
.hero-vid .hv{z-index:2}
.hero-vid .hv-poster{z-index:1}


/* ---- video hero (client supplied footage) ---- */
.hero-bg-video{position:absolute;inset:0;overflow:hidden}
.hero-bg-video .hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-bg-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero-bg-video ~ .hero-scrim{background:
  radial-gradient(60% 46% at 50% 52%, rgba(8,8,8,.42) 0%, rgba(8,8,8,0) 72%),
  linear-gradient(180deg,rgba(8,8,8,.72) 0%,rgba(8,8,8,.50) 34%,rgba(8,8,8,.50) 62%,rgba(8,8,8,.80) 100%)}
@media(max-width:900px){
  .hero-bg-video ~ .hero-scrim{background:
    radial-gradient(70% 40% at 50% 50%, rgba(8,8,8,.44) 0%, rgba(8,8,8,0) 74%),
    linear-gradient(180deg,rgba(8,8,8,.74) 0%,rgba(8,8,8,.54) 40%,rgba(8,8,8,.82) 100%)}
}
@media(prefers-reduced-motion:reduce){
  .hero-bg-video video{display:none}
}

/* v83: deeper hero scrim, keeps the role line inside the viewport on phones */
.hero-bg-video ~ .hero-scrim{background:
  radial-gradient(62% 48% at 50% 50%, rgba(6,6,6,.52) 0%, rgba(6,6,6,.10) 78%),
  linear-gradient(180deg,rgba(6,6,6,.80) 0%,rgba(6,6,6,.56) 34%,rgba(6,6,6,.58) 62%,rgba(6,6,6,.86) 100%)}
@media(max-width:900px){
  .hero-bg-video ~ .hero-scrim{background:
    radial-gradient(74% 44% at 50% 48%, rgba(6,6,6,.54) 0%, rgba(6,6,6,.12) 80%),
    linear-gradient(180deg,rgba(6,6,6,.82) 0%,rgba(6,6,6,.60) 40%,rgba(6,6,6,.88) 100%)}
  .hero-role{max-width:88vw;margin-left:auto;margin-right:auto;padding:0 6px}
}

/* video hero stacking fix (2026-09-08) */
.hero-bg-video ~ .hero-scrim{z-index:2}
.hero .hero-inner{z-index:3}
.lux-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0;margin-top:34px;border-top:1px solid rgba(20,15,10,.14)}
.lux-list div{padding:18px 4px;border-bottom:1px solid rgba(20,15,10,.14);font-family:'Cormorant Garamond',serif;font-size:23px;letter-spacing:.01em}

.band-in.band-in-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:640px){.band-in.band-in-3{grid-template-columns:1fr}}
.band-in.band-in-2{grid-template-columns:repeat(2,1fr);max-width:560px;margin-left:auto;margin-right:auto}
@media(max-width:640px){.band-in.band-in-2{grid-template-columns:1fr}}

/* 2026-09-09: stat band spacing fix (JK) , equal baselines, no wrapping, tighter labels */
.band-in.band-in-3{gap:clamp(24px,4vw,64px);align-items:end}
.band-in.band-in-3 .k{min-height:clamp(44px,5.4vw,74px);align-items:flex-end;white-space:nowrap;letter-spacing:.02em}
.band-in.band-in-3 .k.k-sm{font-size:clamp(26px,3.6vw,50px)}
.band-in.band-in-3 .v{margin-top:20px;white-space:nowrap}
@media(max-width:900px){.band-in.band-in-3 .v{white-space:normal}}
@media(max-width:640px){.band-in.band-in-3{gap:34px}.band-in.band-in-3 .k{min-height:0}}

/* stat band, pass 13: the three stats read as randomly offset because each item
   carried its own .rv reveal with d1/d2 delays, so mid-scroll they sat at three
   different heights, and align-items:end pinned label bottoms instead of the
   numbers. Reveal the band as one block and align numbers on a shared baseline
   box so labels always start at the same y. [JK, 2026-09-13] */
.band-in>.rv{opacity:1!important;transform:none!important;transition:none!important}
.band-in,.band-in.band-in-3{align-items:start!important}
.band-in>div{justify-content:flex-start}
.band-in .k,.band-in.band-in-3 .k{min-height:clamp(42px,5vw,70px);display:flex;align-items:flex-end;justify-content:center}
.band-in .v{margin-top:18px;align-items:flex-start}
@media (max-width:560px){.band-in .k,.band-in.band-in-3 .k{min-height:0}}

/* v77 QC fixes (JK, 2026-09-13) ------------------------------------------- */
/* 1. Footer: these classes had no rules, so text inherited the dark ink
   colour on the near-black footer (black on black). */
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(26px,3.4vw,54px);align-items:start}
.foot-top .brand,.foot-top .foot-word{color:#fff}
.foot-note{margin-top:16px;max-width:34ch;font-size:13px;line-height:1.7;color:rgba(243,236,226,.62)}
.foot-links{display:grid;grid-template-columns:1fr 1fr;gap:2px 22px}
.foot-links a,.foot-contact a{color:rgba(243,236,226,.74);font-size:14px;min-height:36px;display:inline-flex;align-items:center;transition:color .3s var(--ease)}
.foot-links a:hover,.foot-contact a:hover{color:#fff}
.foot-contact{display:flex;flex-direction:column}
.foot-bottom{margin-top:clamp(34px,4vw,52px);padding-top:20px;border-top:1px solid rgba(255,255,255,.16)}
.foot-bottom p{font-size:12.5px;line-height:1.7;color:rgba(243,236,226,.58)}
.foot-disc{margin-top:10px;max-width:92ch;color:rgba(243,236,226,.44)!important}
@media(max-width:900px){.foot-top{grid-template-columns:1fr 1fr}.foot-note{max-width:none}}
@media(max-width:620px){.foot-top{grid-template-columns:1fr}}

/* 2. Home "Residential Sales Across Oahu" card: nb-card-body was unstyled,
   so the copy sat flush against the photo with no padding or rhythm. */
.nb{display:block}
.nb-card{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(26px,3.6vw,56px);align-items:center}
.nb-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.nb-card-body{padding:clamp(4px,1vw,14px) 0}
.nb-card-body h3{font-family:var(--serif);font-size:clamp(24px,2.5vw,34px);font-weight:400;letter-spacing:.02em;margin:14px 0 0}
.nb-card-body p{margin-top:16px;max-width:52ch}
.nb-card-body .btn{margin-top:28px}
@media(max-width:900px){.nb-card{grid-template-columns:1fr;gap:24px}.nb-card-body{padding:0}}

/* 3. About page headshot was rendering full-bleed: .about-2col set columns
   but never display:grid, so the photo took the whole wrap width. */
.about-2col{display:grid;gap:clamp(28px,3.6vw,60px);align-items:start}
.about-2col .about-photo{max-width:360px}
@media(max-width:1050px){.about-2col .about-photo{max-width:320px;margin:0 auto}}
/* v78: stronger path-card scrim , the third card's photo is bright enough that
   the 0.30 mid-stop left the heading marginal. [JK, 2026-09-13] */
.path-scrim{background:linear-gradient(180deg,rgba(10,9,8,.10) 0%,rgba(10,9,8,.44) 42%,rgba(10,9,8,.88) 100%)}

/* v79: video hero on the home page. The nav sits over live footage, so the brand and
   links need their own top gradient , over a bright sky they otherwise vanish. */
body.home .nav:not(.stuck){background:linear-gradient(180deg,rgba(8,8,9,.58) 0%,rgba(8,8,9,.22) 70%,rgba(8,8,9,0) 100%)}
body.home .nav:not(.stuck) a.n-link,body.home .nav:not(.stuck) .brand .b1{color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.45)}
body.home .nav:not(.stuck) .brand .b2{color:var(--gold);text-shadow:0 1px 14px rgba(0,0,0,.45)}
body.home .nav:not(.stuck) a.n-link.on{border-bottom-color:rgba(255,255,255,.7)}
/* Video reads darker than a still, so keep the scrim light enough to see the footage. */
.hero-bg-video ~ .hero-scrim{z-index:2;background:
  radial-gradient(120% 80% at 50% 62%,rgba(8,8,9,.34) 0%,rgba(8,8,9,.04) 70%),
  linear-gradient(180deg,rgba(8,8,9,.44) 0%,rgba(8,8,9,.22) 34%,rgba(8,8,9,.26) 62%,rgba(8,8,9,.56) 100%)}
@media(max-width:900px){.hero-bg-video ~ .hero-scrim{background:
  linear-gradient(180deg,rgba(8,8,9,.50) 0%,rgba(8,8,9,.28) 38%,rgba(8,8,9,.60) 100%)}}

/* 2026-09-15 (license-number build): a long stat key, e.g. a 10 digit Virginia
   license number, blew past its 1fr column because .k had white-space:nowrap
   and grid items default to min-width:auto. The band then measured 182px off
   centre on desktop (qc_site bandOff). Let long small keys wrap and stop grid
   items from expanding. */
.band-in>div{min-width:0}
.band-in .k.k-sm,.band-in.band-in-3 .k.k-sm{white-space:normal;font-size:clamp(20px,2.2vw,32px);line-height:1.15;text-align:center}

/* 2026-09-15 (license-number build): stat labels carried white-space:nowrap, so
   two long labels overlapped each other and the third ran off the right edge on
   desktop. qc_site.py passed it, only a screenshot showed it. Labels wrap now. */
.band-in .v,.band-in.band-in-3 .v{white-space:normal!important;max-width:34ch;margin-left:auto;margin-right:auto}
/* Exactly four neighborhood cards left an orphan in a three column grid. */
@media(min-width:901px){.nbg:has(> .nbc:nth-child(4)):not(:has(> .nbc:nth-child(5))){grid-template-columns:repeat(2,1fr)}}

/* 4-stat band (2026-09-20, deancorpening): band-in-4 had no column rule at all.
   Subgrid so all numbers share row 1 and all labels start at the same y, one
   number size, nowrap keys, explicit row-gap so the label margin is the gap. */
.band-in.band-in-4{grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto;align-items:start!important;row-gap:0!important;column-gap:clamp(20px,3vw,48px)!important}
.band-in.band-in-4>.rv{display:grid!important;grid-row:span 2;grid-template-rows:subgrid;align-content:start}
.band-in.band-in-4 .k,.band-in.band-in-4 .k.k-sm,.band-in.band-in-4 .k-word{font-size:clamp(24px,2.6vw,42px)!important;line-height:1.1!important;min-height:0!important;margin:0!important;white-space:nowrap!important}
.band-in.band-in-4 .v{margin-top:14px!important;align-self:start!important;align-items:flex-start!important;max-width:22ch}
@media(max-width:900px){.band-in.band-in-4{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,auto);row-gap:30px!important}}
@media(max-width:560px){.band-in.band-in-4{grid-template-columns:1fr}.band-in.band-in-4>.rv{display:block!important}}
/* .band-img is min-height + overflow:hidden, so a 4 stat band stacked on a phone
   overflowed and the first number was cut in half. Let the band grow. */
@media(max-width:900px){.band-img{min-height:0;padding:58px 0}}

/* 3 and 2 stat bands (2026-09-20, melissadalton): same subgrid treatment the
   4-stat band got. One number size for every key, all numbers on row 1, all
   labels starting at the same y, dash as a block above the label. This is the
   canonical band rule and must stay the LAST band block in this file. */
.band-in.band-in-3,.band-in.band-in-2{grid-template-rows:auto auto;align-items:start!important;row-gap:0!important;column-gap:clamp(24px,3.6vw,64px)!important}
.band-in.band-in-3>.rv,.band-in.band-in-2>.rv{display:grid!important;grid-row:span 2;grid-template-rows:subgrid;align-content:start}
.band-in.band-in-3 .k,.band-in.band-in-3 .k.k-sm,.band-in.band-in-3 .k-word,
.band-in.band-in-2 .k,.band-in.band-in-2 .k.k-sm,.band-in.band-in-2 .k-word{font-size:clamp(30px,3.6vw,54px)!important;line-height:1.1!important;min-height:0!important;margin:0!important;white-space:nowrap!important;display:block!important;text-align:center}
.band-in.band-in-3 .v,.band-in.band-in-2 .v{display:block!important;align-self:start!important;margin-top:16px!important;max-width:24ch;margin-left:auto;margin-right:auto;white-space:normal!important}
.band-in.band-in-3 .v::before,.band-in.band-in-2 .v::before{display:block;margin:0 auto 12px;width:22px}
@media(max-width:900px){.band-in.band-in-3{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,auto);row-gap:30px!important}}
@media(max-width:640px){.band-in.band-in-3,.band-in.band-in-2{grid-template-columns:1fr;row-gap:30px!important}.band-in.band-in-3>.rv,.band-in.band-in-2>.rv{display:block!important}}

/* WORD STATS (2026-09-20, jamespitcher): a stat key that is a phrase inherited
   the numeral size + white-space:nowrap and overflowed its 1fr column, so the
   keys overlapped each other across the band. Word keys wrap at their own
   smaller size. Must stay the LAST band rule in this file. */
.band-in .k-word,
.band-in.band-in-2 .k-word,
.band-in.band-in-3 .k-word,
.band-in.band-in-4 .k-word{white-space:normal!important;font-size:clamp(22px,2.5vw,34px)!important;line-height:1.2!important;max-width:20ch;margin-left:auto!important;margin-right:auto!important;text-wrap:balance;text-align:center}
