:root{--gold:#C4A962;--gold-d:#8F7735;--ink:#141414;--ink2:#1c1d1d;--slate:#3D4649;--cream:#FAF8F3;--line:#E3DCCB;--muted:#5d6467;--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.center{text-align:center}
.btn{display:inline-block;background:var(--gold);color:var(--ink);font-weight:600;text-decoration:none;padding:15px 30px;border:1.5px solid var(--gold);font-size:15px;letter-spacing:.04em;cursor:pointer;transition:all .2s;font-family:var(--sans)}
.btn:hover{background:#d6bf7f;border-color:#d6bf7f}
.btn.line{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn.line:hover{border-color:var(--gold);color:var(--gold)}
.eyebrow{font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--gold)}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.005em}
h2{font-size:clamp(34px,4.2vw,52px);line-height:1.08;margin:12px 0 18px}
section{padding:100px 0}
.photo{position:relative;background-size:cover;background-position:center;color:#fff}
.photo:before{content:"";position:absolute;inset:0;background:var(--shade,linear-gradient(180deg,rgba(14,14,14,.55),rgba(14,14,14,.78)))}
.photo>*{position:relative}

/* nav */
header.bar{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(20,20,20,.94);backdrop-filter:blur(6px);border-bottom:1px solid rgba(196,169,98,.18)}
header.bar .wrap{display:flex;align-items:center;justify-content:space-between;height:96px}
.logo img{height:86px;width:auto;display:block}
.links{display:flex;gap:30px;align-items:center}
.links a{text-decoration:none;font-size:14.5px;color:#d3d6d7;font-weight:500}
.links a:hover{color:var(--gold)}
.links .tel{color:#fff;font-weight:600}
.links .btn{color:var(--ink);padding:11px 20px;font-size:14px}

/* hero */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:140px 0 110px;--shade:linear-gradient(180deg,rgba(12,12,12,.62) 0%,rgba(12,12,12,.3) 45%,rgba(12,12,12,.7) 100%)}
.hero .inner{max-width:860px;margin:0 auto}
.hero h1{font-size:clamp(46px,7.4vw,92px);line-height:1;margin:18px 0 22px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p.lead{font-size:clamp(17px,1.7vw,20px);color:#e6e3dc;max-width:640px;margin:0 auto 36px}
.hero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero .call{margin-top:26px;color:#cfccc4;font-size:15px}
.hero .call a{color:var(--gold);font-weight:700;text-decoration:none}
.scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);width:1px;height:46px;background:linear-gradient(var(--gold),transparent)}

/* intro band */
.intro{background:var(--ink);color:#fff;padding:84px 0;position:relative;overflow:hidden}
.intro:after{content:"";position:absolute;right:0;top:0;bottom:0;width:38%;background-image:radial-gradient(rgba(196,169,98,.28) 1.4px,transparent 1.6px);background-size:22px 22px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 60%);mask-image:linear-gradient(90deg,transparent,#000 60%)}
.intro .wrap{position:relative;z-index:1;max-width:900px}
.intro h2{margin-top:0}
.intro p{color:#c9cbcb;font-size:18px}

/* why */
.why{background:var(--cream)}
.why .sub{color:var(--muted);font-size:18px;max-width:680px;margin:0 auto 30px}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:56px}
.dcard{background:var(--ink2);color:#fff;padding:44px 40px;text-align:center;border-top:2px solid var(--gold)}
.dcard h3{color:var(--gold);font-size:30px;margin-bottom:12px}
.dcard p{color:#c9cbcb;font-size:16px;max-width:430px;margin:0 auto}

/* steps over photo */
.steps-sec{--shade:linear-gradient(180deg,rgba(14,14,14,.6),rgba(14,14,14,.74))}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.step{background:rgba(20,20,20,.55);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(4px);padding:38px 32px}
.step .n{font-family:var(--serif);font-variant-numeric:lining-nums;font-size:56px;line-height:1;color:var(--gold);font-weight:600}
.step h3{font-size:27px;margin:14px 0 10px}
.step p{color:#d4d4d1;font-size:15.5px}

/* markets */
.markets{--shade:linear-gradient(90deg,rgba(14,14,14,.85) 0%,rgba(14,14,14,.6) 60%,rgba(14,14,14,.35) 100%)}
.markets p.sub{color:#dedbd4;font-size:18px;max-width:600px}
.states{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;max-width:760px}
.chip{padding:12px 20px;border:1px solid rgba(255,255,255,.55);font-weight:500;font-size:15px;background:rgba(20,20,20,.35)}
.chip.new{border-color:var(--gold);color:var(--gold)}
.chip.new small{color:#e9dcb4;margin-left:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}

/* builders split */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:560px;background:var(--ink);color:#fff}
.split .img{background-size:cover;background-position:center;min-height:360px}
.split .txt{padding:90px 64px;display:flex;flex-direction:column;justify-content:center}
.split p{color:#c9cbcb;font-size:17px}
.split ul{list-style:none;margin:26px 0 34px;display:grid;gap:12px}
.split li{padding-left:28px;position:relative;color:#e3e3e0}
.split li:before{content:"";position:absolute;left:0;top:11px;width:14px;height:1.5px;background:var(--gold)}

/* about */
.about{background:var(--cream)}
.about p{color:var(--muted);font-size:18.5px;max-width:760px;margin:0 auto}
.sig{margin-top:26px;font-family:var(--serif);font-size:26px;color:var(--ink)}
.sig small{display:block;font-family:var(--sans);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-d);margin-top:2px}

/* contact */
.contact{--shade:linear-gradient(180deg,rgba(12,12,12,.45),rgba(12,12,12,.72))}
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:start}
.contact p{color:#d9d7d1;font-size:17px}
.contact .reach{margin-top:30px;display:grid;gap:16px}
.contact .reach div{border-left:2px solid var(--gold);padding-left:16px}
.contact .reach small{display:block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#a9a6a0}
.contact .reach a{color:#fff;text-decoration:none;font-family:var(--serif);font-size:28px;font-weight:600}
form{background:rgba(20,20,20,.82);border:1px solid rgba(196,169,98,.3);padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
form .full{grid-column:1/-1}
form h3{font-size:30px;color:var(--gold);grid-column:1/-1;margin-bottom:2px}
label{font-size:12.5px;font-weight:600;color:#b4b6b6;display:block;margin-bottom:6px;letter-spacing:.04em}
input,select,textarea{width:100%;font:inherit;font-size:15px;padding:12px 14px;border:1px solid #3a3f41;background:#1b1d1e;color:#fff;border-radius:0}
input:focus,select:focus,textarea:focus{outline:1.5px solid var(--gold);border-color:transparent}
textarea{min-height:100px;resize:vertical}
form .btn{width:100%}
.fine{font-size:12.5px;color:#8a9093;margin-top:10px}
.hp{position:absolute;left:-9999px}

footer{background:#0c0c0c;color:#8a9093;font-size:14px;padding:40px 0}
footer .wrap{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:center}
footer .logo img{height:70px;width:auto}
footer a{color:#c3c7c8;text-decoration:none}
footer .credit{font-size:12px;color:#5f6466;margin-top:4px}

@media (max-width:960px){
  section{padding:76px 0}
  .links a:not(.btn){display:none}
  .cards,.steps,.contact-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .split .txt{padding:64px 24px}
  .markets{--shade:rgba(14,14,14,.72)}
}
@media (max-width:560px){
  .wrap{padding:0 16px}
  header.bar .wrap{height:76px}
  .logo img{height:60px}
  .links .btn{padding:10px 14px;font-size:13px}
  .dcard{padding:36px 22px}
  form{grid-template-columns:1fr;padding:26px 18px}
  .hero{padding:120px 0 90px}
  .intro:after{width:60%;opacity:.5}
}

/* ===== multi-page additions ===== */
.links a.active{color:var(--gold)}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;width:44px;height:44px;cursor:pointer;align-items:center;justify-content:center}
.menu-btn span,.menu-btn span:before,.menu-btn span:after{display:block;width:20px;height:1.5px;background:#fff;position:relative;content:""}
.menu-btn span:before{position:absolute;top:-6px}.menu-btn span:after{position:absolute;top:6px}
.mobile-nav{display:none}

/* inner page hero */
.page-hero{padding:170px 0 90px;--shade:linear-gradient(180deg,rgba(12,12,12,.7),rgba(12,12,12,.55) 50%,rgba(12,12,12,.8))}
.page-hero h1{font-size:clamp(42px,6vw,72px);line-height:1.02;margin:14px 0 16px}
.page-hero p{color:#e2dfd8;font-size:19px;max-width:680px}
.page-hero.center p{margin:0 auto}
.crumbs{font-size:13px;color:#b8b4ab;margin-bottom:6px;letter-spacing:.04em}
.crumbs a{text-decoration:none;color:#b8b4ab}.crumbs a:hover{color:var(--gold)}
.plain-hero{background:var(--ink);color:#fff;padding:150px 0 64px}
.plain-hero h1{font-size:clamp(40px,5vw,60px)}
.plain-hero p{color:#b9bcbc}

/* content blocks */
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.two.top{align-items:start}
.lead-p{font-size:18.5px;color:var(--muted)}
.lead-p+.lead-p{margin-top:14px}
.dark{background:var(--ink);color:#fff}
.dark .lead-p,.dark p{color:#c9cbcb}
.white{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ticks{list-style:none;display:grid;gap:16px;margin-top:10px}
.ticks li{display:grid;grid-template-columns:26px 1fr;gap:12px;font-size:16.5px}
.ticks li:before{content:"";width:20px;height:20px;margin-top:3px;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23141414' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}
.ticks b{display:block}
.ticks span{color:var(--muted);font-size:15.5px}
.dark .ticks span{color:#b9bcbc}
.imgbox{min-height:420px;background-size:cover;background-position:center;border-top:3px solid var(--gold)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.lcard{background:#fff;border:1px solid var(--line);padding:32px 28px;text-align:left}
.lcard h3{font-size:25px;margin-bottom:8px}
.lcard p{color:var(--muted);font-size:15.5px}
.lcard .k{font-family:var(--serif);font-variant-numeric:lining-nums;color:var(--gold-d);font-size:40px;line-height:1;font-weight:600;margin-bottom:10px}
.timeline{display:grid;gap:0;margin-top:40px;border-left:2px solid var(--gold);padding-left:0}
.tl{position:relative;padding:0 0 38px 40px}
.tl:before{content:"";position:absolute;left:-9px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--ink);border:2px solid var(--gold)}
.tl h3{font-size:28px;margin-bottom:6px}
.tl .when{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-d);font-weight:600}
.tl p{color:var(--muted);max-width:680px}
.cta-band{background:var(--ink);color:#fff;padding:72px 0;text-align:center;border-top:3px solid var(--gold)}
.cta-band h2{margin-top:0}
.cta-band p{color:#c9cbcb;font-size:18px;max-width:620px;margin:0 auto 28px}
.cta-band .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* listings */
.listings{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:40px}
.listing{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column}
.listing .ph{height:220px;background-size:cover;background-position:center;position:relative}
.listing .badge{position:absolute;top:14px;left:14px;background:var(--gold);color:var(--ink);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px}
.listing .badge.pending{background:#e9e4d6}.listing .badge.sold{background:var(--ink);color:var(--gold)}
.listing .body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.listing h3{font-size:26px;line-height:1.1}
.listing .loc{color:var(--muted);font-size:14.5px}
.listing dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14.5px;margin:6px 0 8px}
.listing dt{color:var(--muted)}.listing dd{font-weight:600}
.listing .price{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--ink);font-variant-numeric:lining-nums}
.listing .btn{margin-top:auto;text-align:center}
.empty{border:1px dashed var(--gold-d);padding:40px;text-align:center;color:var(--muted);margin-top:40px}

/* forms on light pages */
.form-light{background:#fff;border:1px solid var(--line);padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-light h3{color:var(--ink)}
.form-light label{color:#4a5052}
.form-light input,.form-light select,.form-light textarea{background:#fff;color:var(--ink);border:1px solid #d6cfbd}
.consent{grid-column:1/-1;display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;font-size:12.5px;line-height:1.5;color:#9a9c9c}
.form-light .consent{color:#6b7072}
.consent input{width:18px;height:18px;margin-top:2px;padding:0}
.consent a{color:var(--gold)}

/* faq */
.faq{max-width:860px;margin:40px auto 0}
.faq details{border-bottom:1px solid var(--line);padding:22px 0}
.faq summary{cursor:pointer;list-style:none;font-family:var(--serif);font-size:25px;font-weight:600;display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-family:var(--sans);font-weight:400;font-size:26px;color:var(--gold-d);flex:none}
.faq details[open] summary:after{content:"\2212"}
.faq details p{color:var(--muted);margin-top:12px;font-size:16.5px;max-width:760px}
.faq h2.group{font-size:20px;font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-d);margin:56px 0 4px}
.faq h2.group:first-child{margin-top:0}

/* about */
.headshot{aspect-ratio:4/5;background:#232627 center/cover no-repeat;border-top:3px solid var(--gold);position:relative;display:grid;place-items:center}
.headshot .mono{font-family:var(--serif);font-size:110px;color:var(--gold);font-weight:600;letter-spacing:.02em}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}

/* legal */
.prose{max-width:820px;margin:0 auto}
.prose h2{font-size:30px;margin:44px 0 10px}
.prose p,.prose li{color:#3c4244;font-size:16.5px;margin-bottom:12px}
.prose ul{padding-left:22px}
.prose .updated{color:var(--muted);font-size:14px}

/* footer multi column */
footer.big{background:#0c0c0c;color:#8a9093;padding:64px 0 28px;font-size:14.5px}
footer.big .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
footer.big h4{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;font-weight:600}
footer.big ul{list-style:none;display:grid;gap:9px}
footer.big a{color:#c3c7c8;text-decoration:none}
footer.big a:hover{color:var(--gold)}
footer.big .logo img{height:84px;width:auto}
footer.big .about-f{margin-top:10px;max-width:300px;line-height:1.6}
footer.big .legal{border-top:1px solid #222;margin-top:44px;padding-top:22px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px;color:#666b6d}

@media (max-width:960px){
  .menu-btn{display:inline-flex}
  .links .btn{display:none}
  .mobile-nav.open{display:block;position:fixed;top:96px;left:0;right:0;bottom:0;background:var(--ink);z-index:49;padding:24px;overflow:auto}
  .mobile-nav a{display:block;color:#fff;text-decoration:none;font-family:var(--serif);font-size:30px;padding:12px 0;border-bottom:1px solid #262626}
  .mobile-nav a.btn{font-family:var(--sans);font-size:16px;text-align:center;margin-top:24px;border-bottom:0;color:var(--ink)}
  .two,.grid3,.values{grid-template-columns:1fr;gap:32px}
  .grid4{grid-template-columns:1fr 1fr}
  footer.big .cols{grid-template-columns:1fr 1fr}
  .page-hero{padding:140px 0 70px}
  .imgbox{min-height:300px}
}
@media (max-width:560px){
  .mobile-nav.open{top:76px}
  .grid4{grid-template-columns:1fr}
  .form-light{grid-template-columns:1fr;padding:26px 18px}
  footer.big .cols{grid-template-columns:1fr}
  .faq summary{font-size:22px}
}
footer.big .wrap{display:block}
@media (max-width:1240px) and (min-width:961px){.links{gap:20px}.links .tel{display:none}.links a{font-size:14px}}
@media (max-width:1060px) and (min-width:961px){.links{gap:16px}.links a{font-size:13px}.links .btn{padding:10px 14px}.logo img{height:68px}}
/* about gallery */
.gallery{display:grid;gap:16px;margin-top:40px;grid-template-columns:1.4fr 1fr 1fr;grid-auto-rows:260px}
.gallery figure{position:relative;margin:0;overflow:hidden;border-top:2px solid var(--gold)}
.gallery .gimg{position:absolute;inset:0;background-size:cover;transition:transform .5s}
.gallery figure:hover .gimg{transform:scale(1.03)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;font-size:13.5px;color:#eee;background:linear-gradient(transparent,rgba(0,0,0,.7))}
.gallery.n4 .g0,.gallery.n3 .g0{grid-row:span 2}
.gallery.n4 .g3{grid-column:span 2}
.gallery.n2{grid-template-columns:1fr 1fr;grid-auto-rows:380px}
.gallery.n1{grid-template-columns:1fr;grid-auto-rows:460px}
@media (max-width:960px){.gallery,.gallery.n2{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.gallery.n4 .g0,.gallery.n3 .g0{grid-column:span 2;grid-row:span 1}.gallery.n4 .g3{grid-column:span 2}}
@media (max-width:560px){.gallery,.gallery.n2{grid-template-columns:1fr;grid-auto-rows:300px}.gallery .g0,.gallery .g3{grid-column:auto!important}}
.founder{display:inline-flex;align-items:center;gap:18px;margin-top:30px}.founder img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--gold)}
.headshot{background-position:center top}
.offclock{--shade:linear-gradient(180deg,rgba(12,12,12,.78),rgba(12,12,12,.86))}
.offclock .sub{color:#dedbd4;font-size:18px;max-width:620px}
.hobbies{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}
.hob{background:rgba(20,20,20,.55);border:1px solid rgba(255,255,255,.14);border-left:2px solid var(--gold);padding:24px 24px 22px}
.hob h3{font-size:25px;color:var(--gold);margin-bottom:6px}
.hob p{color:#d4d4d1;font-size:15px}
@media (max-width:960px){.hobbies{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.hobbies{grid-template-columns:1fr}}
.listing .ph.map{background:#e9e4d6}
.listing .ph.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.75)}
.listing .maplink{position:absolute;right:10px;bottom:10px;background:rgba(20,20,20,.85);color:#fff;font-size:12px;padding:5px 9px;text-decoration:none}
.listing .lbtns{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap}
.listing .lbtns .btn{flex:1;text-align:center;padding:13px 16px}
.btn.ghost-d{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost-d:hover{background:var(--ink);color:#fff}
.listing dd{font-weight:600;line-height:1.4}
/* Northgate style taglines: serif, title case, centered */
.hero p.lead,.page-hero p{font-family:var(--serif);font-weight:500;font-size:clamp(20px,2.1vw,26px);line-height:1.45;color:#f1eee7}
.hero p.lead{max-width:860px}
.page-hero.center p{max-width:860px;margin:0 auto}
.page-hero.center .crumbs{text-align:center}
.listing .lbtns .btn{font-size:14px;padding:13px 10px;white-space:nowrap;letter-spacing:.02em}
