:root{--navy:#14202b;--navy2:#1d2c3a;--gold:#b8955a;--gold2:#cfb27a;--goldl:#e6d3a8;--cream:#f7f3ec;--ink:#1b2530;--mute:#5d6873;--line:#e4ddd0;
--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:400 16px/1.65 var(--sans);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit}
.wrap{width:min(1200px,100% - 2.5rem);margin-inline:auto}
h1,h2,h3,.h2{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.005em;margin:0 0 .5em}
.h2{font-size:clamp(2rem,4.6vw,3.2rem)}h3{font-size:1.45rem;font-weight:600}
.eyebrow{font:600 .72rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 1.1rem;display:flex;align-items:center;gap:.8rem}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:currentColor}
.lede{font-size:1.12rem;color:var(--mute);max-width:38rem}
.sr{position:absolute;left:-9999px}
/* buttons */
.btn{display:inline-flex;text-align:center;line-height:1.35;align-items:center;justify-content:center;gap:.5rem;padding:.95rem 1.6rem;font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:.2s}
.btn.gold{background:var(--gold);color:#fff;border-color:var(--gold)}.btn.gold:hover{background:#a3824a}
.btn.line{border-color:var(--ink);color:var(--ink);background:transparent}.btn.line:hover{background:var(--ink);color:#fff}
.btn.line.light{border-color:#ffffffb0;color:#fff}.btn.line.light:hover{background:#fff;color:var(--ink)}
.btn.sm{padding:.7rem 1rem;font-size:.7rem}.btn.block{width:100%;padding:1.1rem}
/* header */
.top{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,box-shadow .3s;background:linear-gradient(#0b131bcc,#0b131b00)}
.top.solid,body.open .top{background:var(--navy);box-shadow:0 1px 0 #ffffff14}
.bar{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}.brand img{height:46px;width:auto}
.brokered{font:500 .6rem/1.25 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#d5dbe0;border-left:1px solid var(--gold);padding-left:.75rem}
.brokered b{display:block;font:600 1.02rem/1.15 var(--serif);letter-spacing:.02em;text-transform:none;color:#fff}
nav{display:none}
.menu{width:44px;height:44px;background:none;border:0;display:grid;place-content:center;gap:7px;cursor:pointer}.menu span{width:26px;height:1.5px;background:#fff;transition:.25s}
body.open .menu span:first-child{transform:translateY(4.25px) rotate(45deg)}body.open .menu span:last-child{transform:translateY(-4.25px) rotate(-45deg)}
body.open nav{display:flex;flex-direction:column;position:fixed;inset:76px 0 0;background:var(--navy);padding:2rem 1.5rem;gap:.2rem}
nav a{color:#fff;text-decoration:none;font:500 1.6rem var(--serif);padding:.45rem 0}nav a[aria-current]{color:var(--goldl)}
nav .navphone{font:500 .95rem var(--sans);color:var(--goldl);margin-top:1rem}nav .btn{margin-top:1rem;font:600 .78rem/1 var(--sans)}
/* hero */
.hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--navy)}
.hero.tall{min-height:100svh}
.bg,.hero picture,.cta picture{position:absolute;inset:0;width:100%;height:100%}.bg{object-fit:cover}
.shade{position:absolute;inset:0;background:linear-gradient(180deg,#0b131b99 0%,#0b131b33 35%,#0b131bcc 100%)}
.htext{position:relative;padding:8rem 0 3.2rem}
.hero h1{font-size:clamp(2.9rem,9vw,6.2rem);font-weight:500;margin:0 0 1rem;text-shadow:0 2px 30px #0005}
.hero .eyebrow{color:var(--goldl)}.hsub{max-width:36rem;font-size:1.08rem;color:#e9edf0;margin:0 0 1.8rem}
.hbtns{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0 0}
.search{display:flex;background:#fff;border-radius:2px;max-width:40rem;padding:.35rem;box-shadow:0 10px 40px #0004}
.search input{flex:1;border:0;font:inherit;padding:.8rem;min-width:0;outline:0;color:var(--ink)}
/* sections */
.sec{padding:clamp(4rem,9vw,7.5rem) 0}.cream{background:var(--cream)}
.sechead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:2.5rem}.sechead .h2{margin:0}
.ogrid{display:grid;gap:3rem}
.pillars{list-style:none;padding:0;margin:2.2rem 0;display:grid;gap:0}
.pillars li{display:grid;grid-template-columns:3.2rem 1fr;column-gap:1rem;padding:1.4rem 0;border-top:1px solid var(--line)}.pillars li:last-child{border-bottom:1px solid var(--line)}
.num{font:500 1.5rem var(--serif);color:var(--gold);grid-row:span 2}.pillars h3{margin:0 0 .2rem}.pillars p{margin:0;color:var(--mute)}
/* form */
.lead{background:#fff;border:1px solid var(--line);padding:clamp(1.4rem,4vw,2.4rem);display:grid;gap:.9rem;box-shadow:0 30px 60px -30px #14202b40;align-self:start}
.formhead{display:flex;gap:1rem;align-items:center;margin-bottom:.4rem}.formhead h3{margin:0;font-size:1.7rem}.formhead small{color:var(--mute);font-size:.8rem}
.mini{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 12%;border:2px solid var(--gold)}
.lead label{display:grid;gap:.3rem;font:600 .68rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.row2{display:grid;gap:.9rem}
input,select{font:400 1rem var(--sans);padding:.8rem .85rem;border:1px solid #d8d2c6;border-radius:2px;background:#fff;color:var(--ink);width:100%}
input:focus,select:focus{outline:2px solid var(--gold2);outline-offset:0;border-color:var(--gold)}
.lead .consent{display:flex;gap:.7rem;font:400 .74rem/1.5 var(--sans);letter-spacing:0;text-transform:none;color:var(--mute)}.consent input{width:auto;margin-top:.2rem;flex:none;accent-color:var(--gold)}
.hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.note{font-size:.88rem;margin:0;text-align:center}.note a{color:var(--gold);font-weight:600}.ok{color:var(--gold);font-weight:600;text-align:center}.err{color:#b3261e;font-weight:600;text-align:center}.err a{color:inherit}
/* stats */
.stats{background:var(--navy);color:#fff;padding:3rem 0}.sgrid{display:grid;grid-template-columns:1fr 1fr;gap:2rem 1rem;text-align:center}
.sgrid b{display:block;font:500 clamp(2.4rem,5vw,3.4rem)/1 var(--serif);color:var(--goldl)}.sgrid span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#b9c3cb}
.sgrid .ph b{font-size:1.3rem;font-family:var(--sans);color:#8c99a4}
/* listings */
.listing img{aspect-ratio:4/3;object-fit:cover;width:100%}.listing{background:#fff;border:1px solid var(--line)}
.phimg{aspect-ratio:4/3;display:grid;place-items:center;background:repeating-linear-gradient(135deg,#efe9de 0 12px,#f6f2ea 12px 24px);color:#8a8173;font:600 .72rem var(--sans);letter-spacing:.12em;text-align:center;padding:1rem}
.lbody{padding:1.3rem}.lbody p{margin:.15rem 0}.price{font:500 1.7rem var(--serif)}.meta,.mls{color:var(--mute);font-size:.85rem}.mls{font-size:.72rem}
.phnote{margin-top:1.5rem;font-size:.85rem;color:var(--mute);border-left:2px solid var(--gold);padding-left:1rem}
/* communities */
.comms{display:grid;gap:1rem}
.comm{position:relative;display:block;aspect-ratio:4/3.2;overflow:hidden;color:#fff;text-decoration:none;background:var(--navy)}
.comm picture,.comm img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.comm:hover img{transform:scale(1.05)}
.comm::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 35%,#0b131bdd)}
.comm div{position:absolute;inset:auto 0 0;padding:1.4rem;z-index:1}.comm h3{font-size:1.9rem;margin:0 0 .2rem}.comm p{margin:0 0 .5rem;font-size:.88rem;color:#dde3e7}
.comm span{font:600 .68rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--goldl)}
/* agent */
.agent,.abouthero{background:var(--navy);color:#fff;padding:clamp(4rem,9vw,7rem) 0}.abouthero{padding-top:8rem}
.agrid{display:grid;gap:2.5rem;align-items:center}
.aphoto{position:relative;max-width:460px}.aphoto::before{content:"";position:absolute;inset:1.2rem -1.2rem -1.2rem 1.2rem;border:1px solid var(--gold)}
.headshot{position:relative;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%}
.atext .lede{color:#cdd5db}.role{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--goldl);margin:-.2rem 0 1.4rem}.role.dark{color:var(--gold)}
.abouthero h1{font-size:clamp(3rem,8vw,5.5rem)}
.sig{font:italic 500 1.7rem var(--serif);color:var(--gold)}.agent .sig,.abouthero .sig{color:var(--goldl)}
/* reviews */
.zbadge{display:inline-grid;text-decoration:none;border:1px solid var(--line);padding:.8rem 1.2rem;color:var(--gold);font-size:1rem}.zbadge b{font:500 2rem/1 var(--serif);color:var(--ink)}.zbadge span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.quotes{display:grid;gap:1.5rem}.qcol{display:grid;gap:1.5rem}
.quote{margin:0;padding:1.8rem;border:1px solid var(--line);background:#fff}
.quote blockquote{margin:.6rem 0 1.2rem;font:500 1.3rem/1.4 var(--serif)}
.quote.big{display:flex;flex-direction:column;justify-content:center;background:var(--cream);border:0;padding:clamp(1.8rem,5vw,3.2rem)}.quote.big blockquote{font-size:clamp(1.5rem,2.6vw,2.05rem)}
.stars{color:var(--gold);letter-spacing:.2em;font-size:.9rem}
figcaption{display:grid;font-size:.85rem}figcaption b{font-weight:600}figcaption span{color:var(--mute);font-size:.78rem}.ctx{font-style:italic}
.quote.ph{margin-top:1.5rem;border-style:dashed;color:var(--mute)}.quote.ph blockquote{font-size:1.05rem}
/* compare/steps/cards */
.compare{display:grid;gap:1rem;margin-top:2rem}.compare>div:not(.vs){background:#fff;padding:2rem;border-top:3px solid var(--gold)}
.compare ul{padding-left:1.1rem;margin:0;color:var(--mute)}.compare li{margin:.4rem 0}.vs{display:grid;place-items:center;font:italic 500 1.8rem var(--serif);color:var(--gold)}
.steps{list-style:none;counter-reset:s;padding:0;margin:2rem 0}.steps li{counter-increment:s;position:relative;padding:1rem 0 1rem 3.4rem;border-top:1px solid var(--line)}
.steps li::before{content:"0" counter(s);position:absolute;left:0;top:.85rem;font:500 1.4rem var(--serif);color:var(--gold)}.steps b{display:block;font-weight:600}
.grid3{display:grid;gap:1.2rem}.card{border:1px solid var(--line);padding:2rem}.card .num{display:block;margin-bottom:.6rem}.card p{color:var(--mute);margin:0}
/* press, cta */
.press{padding:2.6rem 0;border-top:1px solid var(--line);text-align:center}.press .eyebrow{justify-content:center}.press .ph{color:#9a9184;font-size:.85rem;letter-spacing:.08em;margin:0}
.cta{position:relative;color:#fff;padding:clamp(5rem,12vw,9rem) 0;text-align:center;overflow:hidden}.ctext{position:relative}.cta .shade{background:#0b131bb5}.cta p{color:#e3e8ec}
/* pages */
.pagehead{background:var(--navy);color:#fff;padding:9rem 0 3rem}.pagehead h1{font-size:clamp(2.6rem,7vw,4.4rem);margin:0}
.prose{max-width:46rem}.prose h2:not(.h2){font-size:1.9rem;margin-top:2rem}.bio p{font-size:1.08rem}.credits li{margin:.6rem 0;font-size:.92rem}
.contactinfo dl{display:grid;gap:.3rem 0}.contactinfo dt{font:600 .68rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:1.1rem}.contactinfo dd{margin:0;font-size:1.1rem}
.fine{font-size:.74rem;color:var(--mute);padding:1.5rem 0}
/* footer */
.foot{background:#0e1720;color:#b6c0c8;padding:4.5rem 0 2rem;font-size:.9rem}.foot a{color:#e6ebef}
.fgrid{display:grid;gap:2.2rem}.flogo{width:200px;height:auto;margin-bottom:1rem}
.fbroker{font:500 1.35rem var(--serif);color:#fff;margin:.2rem 0 .6rem}.fbroker b{font-weight:600;color:var(--goldl)}
.foot h4{font:600 .7rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--goldl);margin:0 0 .8rem}
.legal{border-top:1px solid #ffffff1a;margin-top:3rem;padding-top:1.5rem;font-size:.78rem;color:#8e9aa4}
.eho{display:flex;gap:.7rem;align-items:flex-start}.eho svg{flex:none;color:#fff}
@media(min-width:640px){.row2{grid-template-columns:1fr 1fr}.sgrid{grid-template-columns:repeat(4,1fr)}.comms,.grid3{grid-template-columns:1fr 1fr}.fgrid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){
 .menu{display:none}nav,body.open nav{display:flex;flex-direction:row;position:static;background:none;padding:0;gap:1.6rem;align-items:center}
 nav a{font:500 .74rem var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:0}nav .navphone{margin:0;font-size:.8rem;letter-spacing:.06em}nav .btn{margin:0;font-size:.7rem}
 .brand img{height:54px}.bar{height:88px}
 .ogrid{grid-template-columns:1.05fr .95fr;gap:5rem;align-items:start}
 .comms{grid-template-columns:repeat(3,1fr)}.comm:nth-child(1),.comm:nth-child(4){grid-column:span 1}
 .grid3{grid-template-columns:repeat(3,1fr)}
 .agrid{grid-template-columns:460px 1fr;gap:6rem}
 .quotes{grid-template-columns:1.15fr 1fr}
 .compare{grid-template-columns:1fr auto 1fr;gap:2rem}
 .fgrid{grid-template-columns:1.4fr 1fr 1fr 1fr}
 .htext{padding-bottom:5rem}}
@media(max-width:639px){.eyebrow{letter-spacing:.16em;font-size:.66rem}.hero .eyebrow::before{display:none}.hsub{font-size:1rem}}
@media(max-width:639px){
 .comms{grid-template-columns:1fr 1fr;gap:.6rem}.comm{aspect-ratio:3/4}.comm p{display:none}.comm h3{font-size:1.35rem}.comm div{padding:.9rem}
 .quote{padding:1.4rem}.quote blockquote{font-size:1.2rem}}
.lfallback{position:relative;overflow:hidden;color:#fff;min-height:420px;display:flex;align-items:center;padding:clamp(2rem,6vw,4.5rem)}
.lfallback picture{position:absolute;inset:0}.lfallback .shade{background:linear-gradient(90deg,#0b131be6 0%,#0b131b99 55%,#0b131b40 100%)}
.lftext{position:relative;max-width:34rem}.lftext h3{font-size:clamp(2rem,4vw,2.9rem);font-weight:500}.lftext .eyebrow{color:var(--goldl)}.lftext p{color:#e3e8ec}.lfbtns{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.lcard{display:block;text-decoration:none;color:inherit;height:100%}.listing{transition:box-shadow .25s,transform .25s}.listing:hover{box-shadow:0 20px 40px -20px #14202b55;transform:translateY(-3px)}
.lphoto{position:relative;overflow:hidden}.lphoto img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;transition:transform .6s}.listing:hover .lphoto img{transform:scale(1.04)}
.badge{position:absolute;top:1rem;left:1rem;font:600 .66rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:.5rem .75rem;background:#fff;color:var(--ink)}
.badge.active{background:var(--gold);color:#fff}.badge.pending{background:#fff;color:var(--gold);border:1px solid var(--gold)}.badge.sold{background:var(--navy);color:var(--goldl)}
.soldlbl{font:600 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);vertical-align:middle;margin-right:.3rem}
.addr{font-weight:600;margin:.1rem 0 0}.city{color:var(--mute);margin:0}.lbody .mls{margin-top:.7rem;font-size:.8rem;color:var(--ink)}
.lbig{position:relative;margin-bottom:1.5rem}.lbig img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.lfacts{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1.5rem;margin:1.4rem 0;padding:1.2rem 0;border-block:1px solid var(--line)}.lfacts dt{font:600 .68rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);align-self:center}.lfacts dd{margin:0}
.lhead h1{font-size:clamp(2.2rem,6vw,3.8rem)}
textarea{font:400 1rem var(--sans);padding:.8rem .85rem;border:1px solid #d8d2c6;border-radius:2px;width:100%;resize:vertical}
/* Featured Listings carousel */
.lcarousel{position:relative}
.listings{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;padding:.25rem .25rem 1.2rem;margin:0 -.25rem}
.listings::-webkit-scrollbar{display:none}
.listings>.listing{flex:0 0 calc((100% - 3rem) / 3.25);scroll-snap-align:start;min-width:0}
.lcarousel.scroll::after{content:"";position:absolute;top:0;right:-1px;bottom:1.2rem;width:7%;pointer-events:none;background:linear-gradient(90deg,#f7f3ec00,var(--cream));transition:opacity .3s}
.lcarousel.at-end::after{opacity:0}
.listings.n1,.listings.n2{justify-content:center;overflow:visible}.listings.n1>.listing,.listings.n2>.listing{flex-basis:min(380px,100%)}
.lnav{display:none;gap:.5rem}
.lnav button{width:48px;height:48px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:1.2rem;cursor:pointer;border-radius:50%;transition:.2s}
.lnav button:hover:not(:disabled){background:var(--ink);color:#fff}.lnav button:disabled{opacity:.25;cursor:default}
@media(min-width:960px){.sechead .lnav.on{display:flex}}
@media(max-width:959px){.listings>.listing{flex-basis:calc((100% - 1.5rem) / 2.2)}}
@media(max-width:639px){.listings{gap:1rem;margin-inline:-1.25rem;padding-inline:1.25rem;scroll-padding-inline:1.25rem}.listings>.listing{flex-basis:82%}.listings.n1>.listing,.listings.n2>.listing{flex-basis:82%}.listings.n2{justify-content:flex-start;overflow-x:auto}.lcarousel.scroll::after{right:-1.25rem}}
.lhead2{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
@media(max-width:959px){.lnav{display:none!important}}

.gsub{margin-top:3rem}.gquotes{display:grid;gap:1.5rem}@media(min-width:760px){.gquotes{grid-template-columns:1fr 1fr}}
.quote.g blockquote{font-size:1.1rem}.quote details.more{display:inline}.quote details.more summary{display:inline;cursor:pointer;color:var(--gold);font:600 .8rem var(--sans,inherit);letter-spacing:.08em;text-transform:uppercase;margin-left:.4rem}.quote details.more[open] summary{display:none}
