
:root{
  --ink:#0E0E10; --ink-2:#3D3D45; --line:#E4E1DB; --paper:#FFFFFF; --sand:#F7F5F1;
  --gold:#C0973F; --gold-dk:#8A6A21; --gold-lt:#E8D9B4; --pvh:44px;
  --pad:clamp(20px,5vw,64px); --maxw:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;
 font-size:17px;line-height:1.65;font-weight:400;padding-top:var(--pvh);overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,.dp{font-family:Outfit,Inter,sans-serif;font-weight:300;letter-spacing:-.02em;line-height:1.06;margin:0}
h1{font-size:clamp(38px,6.2vw,84px)}
h2{font-size:clamp(30px,4.2vw,54px)}
h3{font-size:clamp(21px,2.2vw,28px);font-weight:400}
p{margin:0 0 18px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.eyebrow{font-size:12px;letter-spacing:.22em;text-indent:.22em;text-transform:uppercase;font-weight:600;color:var(--gold-dk);margin:0 0 18px}
.lead{font-size:clamp(17px,1.35vw,20px);color:var(--ink-2);max-width:62ch}
.muted{color:var(--ink-2)}
section{padding:clamp(64px,8vw,120px) 0}
.sand{background:var(--sand)}
.dark{background:#111114;color:#fff}
.dark .lead,.dark .muted{color:rgba(255,255,255,.72)}
.dark .eyebrow{color:var(--gold-lt)}

a[href^="tel:"],a[href^="sms:"]{display:inline-block;min-height:44px;padding:11px 0}
p a[href]{display:inline-block;padding:11px 0}
.flist a[href^="tel:"],.flist a[href^="sms:"]{padding:12px 0}
.chip{text-indent:0}
/* preview banner */
#pv{position:fixed;top:0;left:0;right:0;z-index:120;background:#0E0E10;color:#fff;font-size:13px;
 display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 16px;flex-wrap:nowrap;text-align:center}
#pv .pv-short{white-space:nowrap;letter-spacing:.12em;text-transform:uppercase;font-weight:600;font-size:11px;color:var(--gold-lt)}
#pv span.pv-t{opacity:.85}

/* nav */
.nav{position:sticky;top:var(--pvh);z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
 border-bottom:1px solid var(--line)}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:14px var(--pad);display:flex;align-items:center;gap:26px}
.brand{display:inline-flex;align-items:center;min-height:46px;padding:6px 0}
.brand img{height:34px;width:auto}
.nav-links{display:flex;align-items:center;gap:26px;margin-left:auto}
.nav-links a{font-size:14px;letter-spacing:.02em;color:var(--ink);padding:11px 0;position:relative}
.nav-links a:hover{color:var(--gold-dk)}
.nav-links a.btn{color:#fff}
.nav-links a.btn:hover{color:#fff}
.nav-links a.on:after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 26px;border-radius:999px;
 font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--ink);
 background:var(--ink);color:#fff;cursor:pointer;transition:.18s;text-indent:.06em}
.btn:hover{background:var(--gold-dk);border-color:var(--gold-dk)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.light{background:#fff;color:var(--ink);border-color:#fff}
.btn.light:hover{background:var(--gold-lt);border-color:var(--gold-lt);color:var(--ink)}
.btn.outline-lt{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn.outline-lt:hover{background:#fff;color:var(--ink)}
.burger{display:none;align-items:center;justify-content:center;width:46px;height:46px;margin-left:auto;
 background:none;border:1px solid var(--line);border-radius:10px}
.burger span{display:block;width:20px;height:1.5px;background:var(--ink);position:relative}
.burger span:before,.burger span:after{content:"";position:absolute;left:0;width:20px;height:1.5px;background:var(--ink)}
.burger span:before{top:-6px}.burger span:after{top:6px}

/* hero */
.hero{position:relative;min-height:min(88vh,760px);display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.12) 38%,rgba(0,0,0,.78) 100%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad) clamp(48px,7vw,88px)}
.hero h1{max-width:15ch;font-weight:300}
.hero .lead{color:rgba(255,255,255,.86);margin-top:22px;max-width:52ch}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}

/* page hero (inner) */
.phero{position:relative;color:#fff;overflow:hidden;background:#111114}
.phero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.phero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.35))}
.phero-in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);
 padding-top:clamp(96px,12vw,150px);padding-bottom:clamp(60px,8vw,96px)}
.phero .lead{color:rgba(255,255,255,.82)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{background:#fff;padding:34px 22px;text-align:center}
.stat b{display:block;font-family:Outfit,sans-serif;font-weight:300;font-size:clamp(30px,3.4vw,46px);letter-spacing:-.02em}
.stat span{font-size:12px;letter-spacing:.18em;text-indent:.18em;text-transform:uppercase;color:var(--ink-2)}

/* section head */
.shead{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:44px;flex-wrap:wrap}
.shead .lead{margin-top:14px}

/* grids (count-aware) */
.grid{display:grid;gap:28px;grid-template-columns:repeat(3,1fr)}
.grid:has(>.item:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
.grid:has(>.item:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}
.grid-2{display:grid;gap:28px;grid-template-columns:repeat(2,1fr)}

/* property cards */
.pcard{display:block;background:#fff}
.pcard .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.pcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.pcard:hover .ph img{transform:scale(1.04)}
.tag{position:absolute;top:14px;left:14px;text-indent:.14em;background:rgba(255,255,255,.94);color:var(--ink);
 font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:8px 12px;border-radius:2px}
.tag.sale{background:var(--gold);color:#fff}
.pcard .pb{padding:18px 2px 4px}
.pcard .addr{font-family:Outfit,sans-serif;font-size:20px;font-weight:400;letter-spacing:-.01em}
.pcard .city{font-size:14px;color:var(--ink-2);margin-top:3px}
.pcard .meta{display:flex;align-items:center;gap:14px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
 font-size:14px;color:var(--ink-2);flex-wrap:wrap}
.pcard .price{margin-left:auto;color:var(--ink);font-weight:600}

/* team */
.tcard .ph{aspect-ratio:3/4;overflow:hidden;background:var(--sand);position:relative}
.tcard .ph img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.mono{display:flex;align-items:center;justify-content:center;height:100%;background:linear-gradient(160deg,#1A1A1E,#33333B);
 color:var(--gold-lt);font-family:Outfit,sans-serif;font-size:52px;font-weight:300;letter-spacing:.04em}
.tcard h3{margin-top:18px}
.tcard .role{font-size:13px;letter-spacing:.14em;text-indent:.14em;text-transform:uppercase;color:var(--gold-dk);margin-top:8px}
.tcard p{margin-top:12px;font-size:15px;color:var(--ink-2)}
.tcard .dre{font-size:13px;color:var(--ink-2);letter-spacing:.04em}

/* steps */
.steps{counter-reset:s;display:grid;gap:0;grid-template-columns:1fr}
.step{counter-increment:s;display:grid;grid-template-columns:88px 1fr;gap:26px;padding:30px 0;border-top:1px solid var(--line)}
.step:last-child{border-bottom:1px solid var(--line)}
.step .n{font-family:Outfit,sans-serif;font-size:34px;font-weight:300;color:var(--gold-dk)}
.step p{margin:10px 0 0;color:var(--ink-2)}

/* offers */
.ocard{padding:30px;background:#fff;border:1px solid var(--line)}
.ocard .n{font-size:12px;letter-spacing:.2em;color:var(--gold-dk);font-weight:600}
.ocard h3{margin-top:14px}
.ocard p{margin:12px 0 0;color:var(--ink-2);font-size:15px}

/* reviews */
.rcard{background:#fff;border:1px solid var(--line);padding:28px;display:flex;flex-direction:column}
.dark .rcard{background:#17171B;border-color:#2A2A31}
.stars{color:var(--gold-dk);letter-spacing:.18em;font-size:14px}
.rcard p{margin:16px 0 0;font-size:15.5px}
.rcard .who{margin-top:auto;padding-top:18px;font-size:13px;letter-spacing:.14em;text-indent:.14em;text-transform:uppercase;color:var(--ink-2)}
.dark .rcard .who{color:rgba(255,255,255,.6)}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.split img{width:100%;aspect-ratio:4/3;object-fit:cover}

/* forms */
.form{background:#fff;border:1px solid var(--line);padding:clamp(24px,3vw,40px)}
.dark .form{background:#17171B;border-color:#2A2A31}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.dark .field label{color:rgba(255,255,255,.65)}
.field input,.field textarea,.field select{width:100%;min-height:50px;padding:13px 15px;border:1px solid var(--line);
 background:var(--paper);font:inherit;font-size:16px;color:var(--ink);border-radius:4px}
.dark .field input,.dark .field textarea,.dark .field select{background:#101014;border-color:#2A2A31;color:#fff}
.field textarea{min-height:120px;resize:vertical}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--line);border-radius:999px;padding:11px 18px;font-size:14px;min-height:44px;
 display:inline-flex;align-items:center;cursor:pointer;background:#fff}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.fnote{font-size:14px;color:var(--ink-2);margin-top:12px}
.dark .fnote{color:rgba(255,255,255,.6)}

/* faq */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 0;font-family:Outfit,sans-serif;font-size:19px;font-weight:400;
 display:flex;align-items:center;gap:16px;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";margin-left:auto;color:var(--gold-dk);font-size:22px}
.faq details[open] summary:after{content:"–"}
.faq p{padding:0 0 22px;color:var(--ink-2);max-width:70ch}

/* cta band */
.band{background:#111114;color:#fff;text-align:center;padding:clamp(64px,8vw,104px) var(--pad)}
.band h2{max-width:20ch;margin:0 auto}
.band .lead{color:rgba(255,255,255,.72);margin:20px auto 0;text-align:center}

/* footer */
footer{background:#0E0E10;color:rgba(255,255,255,.7);padding:clamp(56px,7vw,88px) 0 40px;font-size:14.5px}
footer a:hover{color:#fff}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px}
footer img.flogo{height:38px;filter:brightness(0) invert(1);opacity:.92}
.fh{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.flist a{display:block;padding:12px 0;min-height:44px}
.legal{margin-top:44px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12);font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.5)}
.social{display:flex;gap:12px;margin-top:20px}
.social a{width:42px;height:42px;border:1px solid rgba(255,255,255,.22);border-radius:999px;display:flex;
 align-items:center;justify-content:center;font-size:12px;letter-spacing:.04em}

@media(max-width:760px){ #pv span.pv-t{display:none} #pv{padding:11px 16px} }
@media(max-width:1000px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .grid:has(>.item:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
  .fgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .nav-links{display:none}
  .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
   background:#fff;border-bottom:1px solid var(--line);padding:12px var(--pad) 22px;gap:0}
  .nav-links.open a{padding:14px 0;border-bottom:1px solid var(--line)}
  .nav-links.open .btn{margin-top:16px}
  .burger{display:flex}
  .split{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .band .lead{text-align:left}
}
@media(max-width:640px){
  body{font-size:16px}
  h1{font-size:34px;line-height:1.22}
  h2{font-size:28px;line-height:1.24}
  h3{line-height:1.3}
  .grid,.grid-2,.grid:has(>.item:nth-child(2):last-child){grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .step{grid-template-columns:1fr;gap:6px}
  .hero{min-height:0;padding-top:clamp(80px,22vw,120px)}
  .cta-row .btn{width:100%}
}
