/* ==========================================================================
   ASTROS REAL ESTATE — DESIGN SYSTEM
   Editorial / architectural / restrained. Typography, photography and
   spacing carry the brand — not color or ornament.
   ========================================================================== */

:root{
  /* --- palette: clean white / deep navy, one crisp blue accent --- */
  --paper:      #ffffff;   /* page background */
  --paper-dim:  #f2f5f9;   /* section alt background */
  --stone:      #dde3ea;   /* hairlines / borders */
  --ink:        #0f1c2e;   /* near-black navy text */
  --ink-soft:   #4a5568;   /* secondary text */
  --charcoal:   #101d2e;   /* dark section background */
  --charcoal-2: #0a1420;   /* darker still */
  --bone:       #ffffff;   /* text on dark */
  --bone-dim:   #9fb0c3;   /* secondary text on dark */
  --accent:     #1d4e89;   /* single crisp navy-blue accent — used sparingly */
  --accent-soft:#5b8ac9;

  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --container: 1240px;
  --gutter: 32px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  font-size:16px;
}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  color:inherit;
  line-height:1.12;
  letter-spacing:-.01em;
}
body{color:var(--ink);}
.on-dark{color:var(--bone);}

a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; background:none; border:none; cursor:pointer;}

.wrap{max-width:var(--container); margin:0 auto; padding:0 var(--gutter);}
.narrow{max-width:720px; margin:0 auto;}

.eyebrow{
  display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent); font-weight:600; margin-bottom:18px;
}
.on-dark .eyebrow{color:var(--accent-soft);}

/* ---------- links / buttons (restrained: mostly text, one solid) ---------- */
.link-arrow{
  display:inline-flex; align-items:center; gap:9px; font-size:12.5px;
  letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  padding-bottom:3px; border-bottom:1px solid currentColor; color:var(--ink);
  transition:opacity .25s var(--ease);
}
button.link-arrow{background:none; border:none; border-bottom:1px solid currentColor; border-radius:0; padding:0 0 3px; font-family:var(--sans); cursor:pointer;}
.on-dark .link-arrow{color:var(--bone);}
.link-arrow:hover{opacity:.6;}
.link-arrow svg{width:13px; height:13px; transition:transform .25s var(--ease);}
.link-arrow:hover svg{transform:translateX(3px);}

.btn-solid{
  display:inline-flex; align-items:center; gap:10px; padding:16px 30px;
  background:var(--ink); color:var(--paper); font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; font-weight:600; border-radius:1px;
  transition:background .25s var(--ease);
}
.btn-solid:hover{background:var(--accent);}
.on-dark .btn-solid{background:var(--bone); color:var(--charcoal);}
.on-dark .btn-solid:hover{background:var(--accent-soft); color:var(--bone);}

/* ---------- proof ticker (scrolling stat band above header) ---------- */
.proof-ticker{
  position:fixed; top:0; left:0; right:0; z-index:201; height:var(--ticker-h,40px);
  background:var(--charcoal-2); color:var(--bone); overflow:hidden;
  display:flex; align-items:center;
  transition:transform .4s var(--ease), opacity .3s var(--ease);
}
.proof-ticker.hide{transform:translateY(-100%); opacity:0;}
.proof-ticker .ticker-track{
  display:flex; align-items:center; white-space:nowrap; flex:none;
  animation:tickerScroll 34s linear infinite;
}
.proof-ticker .ticker-item{
  display:inline-flex; align-items:center; gap:10px; padding:0 26px;
  font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:500;
}
.proof-ticker .ticker-item strong{color:var(--accent-soft); font-weight:600;}
.proof-ticker .ticker-item .dot{width:3px; height:3px; border-radius:50%; background:var(--bone-dim); flex:none;}
@keyframes tickerScroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .proof-ticker .ticker-track{animation:none; flex-wrap:wrap;}
}
@media (max-width:680px){
  .proof-ticker{--ticker-h:34px;}
  .proof-ticker .ticker-item{font-size:10px; padding:0 18px;}
}

/* ---------- nav ---------- */
.site-header{
  position:fixed; top:var(--ticker-h,40px); left:0; right:0; z-index:200; padding:26px 0;
  transition:padding .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease), top .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.solid{
  top:0; padding:16px 0; background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
  border-bottom-color:var(--stone);
}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brand{font-family:var(--serif); font-size:19px; letter-spacing:.02em; color:var(--bone); font-weight:500; flex:none;}
.site-header.solid .brand{color:var(--ink);}
.brand small{display:block; font-family:var(--sans); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-soft); font-weight:600; margin-top:2px;}

.primary-nav{display:flex; align-items:center; gap:30px; list-style:none;}
.primary-nav a{
  font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--bone); font-weight:500;
  position:relative; padding-bottom:2px;
}
.site-header.solid .primary-nav a{color:var(--ink);}
.primary-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:right; transition:transform .3s var(--ease);
}
.primary-nav a:hover::after{transform:scaleX(1); transform-origin:left;}

.nav-cta{flex:none; display:flex; align-items:center; gap:22px;}
.nav-phone{font-size:12px; color:var(--bone); letter-spacing:.03em; font-weight:500;}
.site-header.solid .nav-phone{color:var(--ink);}

.menu-toggle{display:none; flex:none; width:28px; height:20px; position:relative; z-index:210;}
.menu-toggle span{position:absolute; left:0; right:0; height:1px; background:var(--bone); transition:all .3s var(--ease);}
.site-header.solid .menu-toggle span{background:var(--ink);}
.menu-toggle span:nth-child(1){top:0;}
.menu-toggle span:nth-child(2){top:9px;}
.menu-toggle span:nth-child(3){top:18px;}
.menu-open .menu-toggle span{background:var(--bone) !important;}
.menu-open .menu-toggle span:nth-child(1){transform:translateY(9px) rotate(45deg);}
.menu-open .menu-toggle span:nth-child(2){opacity:0;}
.menu-open .menu-toggle span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}

.mobile-menu{
  position:fixed; inset:0; background:var(--charcoal-2); z-index:190;
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:26px;
  padding:0 40px; opacity:0; pointer-events:none; transition:opacity .4s var(--ease);
}
.menu-open .mobile-menu{opacity:1; pointer-events:auto;}
.menu-open .proof-ticker{opacity:0; pointer-events:none;}
.mobile-menu a{font-family:var(--serif); font-size:34px; color:var(--bone); font-weight:500;}
.mobile-menu .mm-phone{font-family:var(--sans); font-size:14px; color:var(--bone-dim); margin-top:20px;}

/* ---------- hero ---------- */
.hero{position:relative; height:100svh; min-height:620px; overflow:hidden; color:var(--bone); background:var(--charcoal-2);}
.hero-media{position:absolute; inset:0; background:var(--charcoal-2);}
.hero-media img{width:100%; height:100%; object-fit:cover; transform:scale(1.02); transition:transform 6s var(--ease);}
.hero.loaded .hero-media img{transform:scale(1); animation:heroDriftSlow 26s ease-in-out 6s infinite alternate;}
@keyframes heroDriftSlow{
  0%   { transform:scale(1) translate(0,0); }
  100% { transform:scale(1.06) translate(-.8%,-.5%); }
}
@keyframes heroDrift{
  0%   { transform:scale(1) translate(0,0); }
  100% { transform:scale(1.09) translate(-1.2%,-.8%); }
}
@media (prefers-reduced-motion: reduce){
  .hero.loaded .hero-media img{animation:none;}
}
.hero-scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,20,32,.82) 0%, rgba(10,20,32,.28) 42%, rgba(10,20,32,.4) 100%);}
.hero-inner{position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding-bottom:9vh;}
.hero-inner .eyebrow{color:var(--accent-soft);}
.hero-inner h1{font-size:clamp(40px,7vw,88px); max-width:14ch;}
.hero-inner p{font-size:17px; color:var(--bone-dim); max-width:46ch; margin:22px 0 34px; font-weight:300;}
.hero-btns{display:flex; flex-wrap:wrap; gap:18px 28px; align-items:center;}
.hero-scrolldown{
  position:absolute; right:var(--gutter); bottom:34px; z-index:2; writing-mode:vertical-rl;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--bone-dim);
  display:flex; align-items:center; gap:12px;
}
.hero-scrolldown .dash{width:1px; height:44px; background:var(--bone-dim); position:relative; overflow:hidden;}
.hero-scrolldown .dash::after{content:""; position:absolute; top:-100%; left:0; right:0; height:100%; background:var(--bone); animation:dashmove 2.2s infinite var(--ease);}
@keyframes dashmove{to{top:100%;}}

/* ---------- ghost button (outlined, for dense CTA rows) ---------- */
.btn-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px;
  border:1px solid rgba(255,255,255,.55); color:var(--bone); font-size:11.5px; letter-spacing:.12em;
  text-transform:uppercase; font-weight:600; border-radius:1px; transition:background .25s var(--ease), border-color .25s var(--ease);
}
.btn-ghost:hover{background:rgba(255,255,255,.1); border-color:var(--bone);}

/* ---------- popup contact prompt ---------- */
.popup-cta{
  position:fixed; right:24px; bottom:24px; z-index:300; max-width:320px;
  background:var(--paper); border:1px solid var(--stone); box-shadow:0 14px 44px rgba(10,20,32,.2);
  padding:24px 22px; opacity:0; transform:translateY(18px); pointer-events:none;
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.popup-cta.show{opacity:1; transform:translateY(0); pointer-events:auto;}
.popup-cta .close{
  position:absolute; top:8px; right:10px; background:none; border:none; font-size:18px;
  line-height:1; color:var(--ink-soft); cursor:pointer; padding:6px;
}
.popup-cta .close:hover{color:var(--ink);}
.popup-cta h4{font-family:var(--serif); font-weight:400; font-size:17px; margin-bottom:8px; padding-right:18px;}
.popup-cta p{font-size:13px; color:var(--ink-soft); font-weight:300; line-height:1.55; margin-bottom:16px;}
.popup-cta .btn-solid{display:inline-block; font-size:12px; padding:11px 20px;}
@media (max-width:640px){
  .popup-cta{left:16px; right:16px; bottom:16px; max-width:none;}
}
@media (prefers-reduced-motion: reduce){
  .popup-cta{transition:opacity .3s linear;}
}

/* ---------- section rhythm ---------- */
.section{padding:min(14vw,140px) 0;}
.section-tight{padding:min(9vw,90px) 0;}
.on-dark{background:var(--charcoal); color:var(--bone);}
.on-dim{background:var(--paper-dim);}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(28px,3.6vw,46px);}
.section-head p{color:var(--ink-soft); font-size:16.5px; margin-top:16px; font-weight:300;}
.on-dark .section-head p{color:var(--bone-dim);}

/* reveal-on-scroll */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- positioning statement ---------- */
.statement{padding:min(11vw,120px) 0; text-align:center;}
.statement p{
  font-family:var(--serif); font-weight:400; font-size:clamp(24px,4vw,44px); color:var(--ink);
  max-width:16ch; margin:0 auto; line-height:1.28;
}
.statement p em{font-style:italic; color:var(--accent);}

/* ---------- meet / agent bio ---------- */
.meet{display:grid; grid-template-columns:.42fr .58fr; gap:60px; align-items:center;}
.meet-photo{aspect-ratio:4/5; overflow:hidden; background:var(--charcoal-2);}
.meet-photo img{width:100%; height:100%; object-fit:cover; filter:grayscale(.15) contrast(1.03); animation:heroDriftSlow 28s ease-in-out infinite alternate;}
@media (prefers-reduced-motion: reduce){
  .meet-photo img{animation:none;}
}
.meet-copy h2{font-size:clamp(26px,3.2vw,38px); margin-bottom:18px;}
.meet-copy p{color:var(--ink-soft); font-size:15.5px; font-weight:300; margin-bottom:16px; max-width:48ch;}
.meet-credentials{margin-top:22px; padding-top:22px; border-top:1px solid var(--stone); font-size:13px; color:var(--ink-soft); line-height:1.9;}
.meet-credentials a{color:var(--ink); text-decoration:underline; text-underline-offset:2px;}
@media (max-width:900px){ .meet{grid-template-columns:1fr;} .meet-photo{max-width:320px;} }

/* ---------- featured property teaser ---------- */
.feature-property{position:relative; overflow:hidden; border-radius:2px; background:var(--charcoal-2);}
.feature-property{overflow:hidden;}
.feature-property img{width:100%; height:78vh; min-height:480px; object-fit:cover; transition:transform 1.4s var(--ease); animation:heroDrift 30s ease-in-out infinite alternate;}
.feature-property:hover img{animation-play-state:paused; transform:scale(1.06);}
@media (prefers-reduced-motion: reduce){
  .feature-property img{animation:none;}
}
.feature-property-caption{
  position:absolute; left:0; right:0; bottom:0; padding:44px; z-index:2;
  background:linear-gradient(0deg, rgba(10,20,32,.75), transparent);
  display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap;
}
.feature-property-caption h3{color:var(--bone); font-size:clamp(22px,2.8vw,32px); max-width:20ch;}
.feature-property-caption p{color:var(--bone-dim); font-size:14px; margin-top:8px; max-width:42ch; font-weight:300;}

/* ---------- private representation pillars ---------- */
.pillars{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.14); border-top:1px solid rgba(255,255,255,.14); border-bottom:1px solid rgba(255,255,255,.14);}
.pillar{background:var(--charcoal); padding:34px 26px;}
.pillar .num{font-family:var(--serif); font-size:13px; color:var(--accent-soft); margin-bottom:14px; display:block;}
.pillar h4{font-size:16px; font-weight:500; color:var(--bone); margin-bottom:8px;}
.pillar p{font-size:13.5px; color:var(--bone-dim); font-weight:300;}

/* ---------- marketing system strip ---------- */
.process-row{display:grid; grid-template-columns:repeat(6,1fr); gap:22px;}
.process-step{border-top:1px solid var(--stone); padding-top:18px;}
.process-step .num{font-size:11px; color:var(--accent); letter-spacing:.1em; font-weight:600; display:block; margin-bottom:10px;}
.process-step h5{font-size:14.5px; font-weight:500; margin-bottom:6px;}
.process-step p{font-size:12.5px; color:var(--ink-soft); font-weight:300; line-height:1.5;}

/* ---------- pathways: buy/sell/invest ---------- */
.pathways{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--stone);}
.pathway{background:var(--paper); padding:44px 32px; transition:background .3s var(--ease);}
.pathway:hover{background:var(--paper-dim);}
.pathway .eyebrow{margin-bottom:22px;}
.pathway h3{font-size:21px; margin-bottom:14px;}
.pathway p{color:var(--ink-soft); font-size:14px; font-weight:300; margin-bottom:22px; min-height:80px;}
@media (max-width:1080px){
  .pathways{grid-template-columns:repeat(2,1fr);}
}

/* ---------- featured properties (cms grid) ---------- */
.properties-grid{
  display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px;
  scrollbar-width:thin; -webkit-overflow-scrolling:touch;
}
.properties-grid::-webkit-scrollbar{height:5px;}
.properties-grid::-webkit-scrollbar-thumb{background:var(--stone); border-radius:3px;}
.property-card{display:block; flex:0 0 320px; scroll-snap-align:start;}
.property-card .thumb{position:relative; overflow:hidden; aspect-ratio:4/5; margin-bottom:18px;}
.property-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); animation:heroDrift 32s ease-in-out infinite alternate;}
.property-card:hover .thumb img{animation-play-state:paused; transform:scale(1.05);}
@media (prefers-reduced-motion: reduce){
  .property-card .thumb img{animation:none;}
}
.property-card .status{
  position:absolute; top:16px; left:16px; background:rgba(255,255,255,.94); color:var(--ink);
  font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; font-weight:600;
}
.property-card h4{font-size:18px; margin-bottom:4px;}
.property-card .loc{font-size:13px; color:var(--ink-soft); margin-bottom:10px;}
.property-card .meta{font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em;}

.empty-card{
  flex:1 1 100%; width:100%; border:1px dashed var(--stone); min-height:220px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; padding:50px 30px; gap:16px;
}
.empty-card p{font-size:14px; color:var(--ink-soft); max-width:36ch; font-weight:300;}

/* ---------- neighborhoods ---------- */
.hood-grid{
  display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px;
  scrollbar-width:thin; -webkit-overflow-scrolling:touch;
}
.hood-grid::-webkit-scrollbar{height:5px;}
.hood-grid::-webkit-scrollbar-thumb{background:var(--stone); border-radius:3px;}
.hood-card{position:relative; flex:0 0 260px; aspect-ratio:3/4; overflow:hidden; background:var(--charcoal-2); scroll-snap-align:start;}
.hood-card img{width:100%; height:100%; object-fit:cover; filter:saturate(.92); transition:transform .8s var(--ease); animation:heroDrift 34s ease-in-out infinite alternate;}
.hood-card:hover img{animation-play-state:paused; transform:scale(1.08);}
@media (prefers-reduced-motion: reduce){
  .hood-card img{animation:none;}
}
.hood-card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,20,32,.72), transparent 55%);}
.hood-label{position:absolute; left:20px; bottom:18px; z-index:2; color:var(--bone);}
.hood-label h4{font-size:19px;}
.hood-label span{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--bone-dim);}

/* ---------- insight / proof band ---------- */
.split-band{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.split-band h3{font-size:20px; margin-bottom:14px;}
.split-band p{color:var(--ink-soft); font-size:15px; font-weight:300; margin-bottom:18px;}
.why-list{list-style:none; margin-bottom:22px;}
.why-list li{padding:13px 0; border-bottom:1px solid var(--stone); font-size:14px; color:var(--ink-soft); font-weight:300; line-height:1.6;}
.why-list li:first-child{padding-top:0;}
.why-list strong{color:var(--ink); font-weight:500; font-family:var(--sans);}

/* ---------- tax appeal explainer grid ---------- */
.tax-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px 60px; margin-top:8px;}
.tax-grid h4{font-size:16px; font-weight:500; margin-bottom:10px;}
.tax-grid p{color:var(--ink-soft); font-size:14.5px; font-weight:300; line-height:1.7;}
@media (max-width:900px){
  .tax-grid{grid-template-columns:1fr;}
}

/* ---------- track record stat band ---------- */
.stat-band{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.14); margin-top:8px;}
.stat-item{background:var(--charcoal-2); padding:36px 30px;}
.stat-num{font-family:var(--serif); font-size:clamp(30px,4vw,44px); color:var(--bone); font-weight:400;}
.stat-label{font-size:13.5px; color:var(--bone-dim); font-weight:300; margin-top:10px; max-width:32ch; line-height:1.5;}
.stat-item-more{opacity:.7;}
@media (max-width:900px){
  .stat-band{grid-template-columns:1fr;}
}

/* ---------- blog / resources list ---------- */
.blog-list{border-top:1px solid var(--stone);}
.blog-item{
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding:26px 4px; border-bottom:1px solid var(--stone); color:var(--ink);
  transition:padding-left .3s var(--ease), color .3s var(--ease);
}
.blog-item:hover{padding-left:14px; color:var(--accent);}
.blog-title{font-family:var(--serif); font-size:clamp(16px,2vw,20px); font-weight:400; letter-spacing:.01em; max-width:60ch;}
.blog-src{
  display:flex; align-items:center; gap:8px; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft); white-space:nowrap; flex-shrink:0;
}
.blog-src svg{width:13px; height:13px; transition:transform .25s var(--ease);}
.blog-item:hover .blog-src svg{transform:translateX(3px);}
@media (max-width:680px){
  .blog-item{flex-direction:column; align-items:flex-start; gap:8px;}
}

/* ---------- private valuation CTA (full-bleed) ---------- */
.valuation-cta{position:relative; min-height:640px; overflow:hidden; color:var(--bone); background:var(--charcoal-2); display:flex; align-items:center;}
.valuation-cta .vc-media{position:absolute; inset:0;}
.valuation-cta .vc-media img{width:100%; height:100%; object-fit:cover; animation:heroDriftSlow 32s ease-in-out infinite alternate;}
@media (prefers-reduced-motion: reduce){
  .valuation-cta .vc-media img{animation:none;}
}
.valuation-cta .vc-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,20,32,.7) 0%, rgba(10,20,32,.5) 45%, rgba(10,20,32,.88) 100%);}
.valuation-cta .wrap{position:relative; z-index:2; padding:min(12vw,110px) var(--gutter);}
.valuation-cta h2{font-size:clamp(30px,5.2vw,58px); max-width:16ch; margin-bottom:26px;}
.vc-checks{display:flex; flex-wrap:wrap; gap:14px 32px; margin-bottom:36px;}
.vc-checks span{display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--bone-dim); font-weight:600;}
.vc-checks svg{width:15px; height:15px; color:var(--accent-soft); flex:none;}
.vc-form{display:flex; flex-wrap:wrap; gap:14px; max-width:680px; background:var(--paper); padding:8px; border-radius:1px;}
.vc-form input{
  flex:1 1 260px; border:none; background:none; padding:14px 16px; font-family:var(--sans);
  font-size:14.5px; color:var(--ink); outline:none;
}
.vc-form button{flex:none;}
.vc-note{font-size:12.5px; color:var(--bone-dim); margin-top:16px; max-width:52ch; font-weight:300;}
@media (max-width:680px){
  .valuation-cta{min-height:560px;}
  .vc-form{flex-direction:column;}
  .vc-form button{width:100%; justify-content:center;}
}

/* ---------- testimonials (full-bleed slider) ---------- */
.testimonial-slider{position:relative; min-height:520px; overflow:hidden; color:var(--bone); background:var(--charcoal-2); display:flex; align-items:center;}
.testimonial-slider .ts-media{position:absolute; inset:0;}
.testimonial-slider .ts-media img{width:100%; height:100%; object-fit:cover; filter:brightness(.5) saturate(.85); animation:heroDriftSlow 36s ease-in-out infinite alternate;}
@media (prefers-reduced-motion: reduce){
  .testimonial-slider .ts-media img{animation:none;}
}
.testimonial-slider .ts-scrim{position:absolute; inset:0; background:rgba(10,20,32,.55);}
.ts-grid{position:relative; z-index:2; display:grid; grid-template-columns:.62fr 1.38fr; gap:60px; align-items:center;}
.ts-head h2{font-size:clamp(28px,3.6vw,42px); margin-bottom:22px;}
.ts-nav{display:flex; align-items:center; gap:16px;}
.ts-nav button{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--bone-dim); font-weight:600; transition:color .2s var(--ease);}
.ts-nav button:hover{color:var(--bone);}
.ts-nav .sep{color:var(--bone-dim); opacity:.5;}
.ts-count{margin-top:14px; font-size:12px; color:var(--bone-dim); letter-spacing:.06em;}
.ts-quote{font-family:var(--serif); font-size:clamp(19px,2.2vw,25px); font-weight:400; line-height:1.5; max-width:56ch;}
.ts-author{margin-top:22px; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-soft); font-weight:600;}
@media (max-width:900px){
  .ts-grid{grid-template-columns:1fr; gap:34px;}
}

/* ---------- sticky floating contact pill ---------- */
.sticky-cta{
  position:fixed; left:22px; bottom:22px; z-index:260;
  display:inline-flex; align-items:center; gap:10px; padding:14px 22px;
  background:var(--accent); color:var(--bone); font-size:11.5px; letter-spacing:.1em;
  text-transform:uppercase; font-weight:600; border-radius:40px; box-shadow:0 10px 30px rgba(10,20,32,.28);
  transition:background .25s var(--ease), transform .25s var(--ease);
}
.sticky-cta:hover{background:var(--accent-soft); transform:translateY(-2px);}
@media (max-width:640px){
  .sticky-cta{display:none;}
}

/* ---------- private inquiry form ---------- */
.inquiry-wrap{display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start;}
.inquiry-copy h2{font-size:clamp(28px,3.4vw,42px); margin-bottom:20px;}
.inquiry-copy p{color:var(--bone-dim); font-size:15.5px; font-weight:300; margin-bottom:14px; max-width:40ch;}
.inquiry-note{font-size:12.5px; color:var(--bone-dim); margin-top:30px; border-top:1px solid rgba(255,255,255,.16); padding-top:20px; max-width:38ch;}

.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px 20px;}
.form-field{display:flex; flex-direction:column; gap:8px;}
.form-field.full{grid-column:1 / -1;}
.form-field label{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--bone-dim); font-weight:600;}
.form-field input, .form-field select, .form-field textarea{
  background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.3);
  color:var(--bone); font-family:var(--sans); font-size:15px; padding:10px 2px;
  transition:border-color .25s var(--ease);
}
.form-field select option{color:#111;}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color:var(--bone);
}
.form-field textarea{resize:vertical; min-height:70px;}
.form-submit{margin-top:8px;}
.form-status{margin-top:16px; font-size:13px; color:var(--accent-soft); min-height:18px;}

/* ---------- final cta ---------- */
.final-cta{text-align:center; padding:min(16vw,160px) 0;}
.final-cta h2{font-size:clamp(30px,5vw,58px); max-width:16ch; margin:0 auto 30px;}

/* ---------- footer ---------- */
.site-footer{background:var(--charcoal-2); color:var(--bone-dim); padding:70px 0 30px; font-size:13px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-brand{font-family:var(--serif); font-size:20px; color:var(--bone); margin-bottom:14px;}
.footer-col h5{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--bone); margin-bottom:16px; font-weight:600;}
.footer-col a, .footer-col p{display:block; color:var(--bone-dim); margin-bottom:10px; font-weight:300;}
.footer-col a:hover{color:var(--bone);}
.footer-legal{padding-top:26px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; font-size:11.5px; color:var(--bone-dim);}
.footer-legal .links{display:flex; gap:20px; flex-wrap:wrap;}
.equal-housing{display:inline-flex; align-items:center; gap:8px;}
.equal-housing svg{width:16px; height:16px; flex:none;}

/* ---------- gallery + lightbox ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.gallery-grid button{display:block; padding:0; border:none; background:none; cursor:pointer; overflow:hidden; aspect-ratio:4/3;}
.gallery-grid img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); display:block; animation:heroDriftSlow 30s ease-in-out infinite alternate;}
.gallery-grid button:nth-child(even) img{animation-name:heroDriftSlowAlt;}
.gallery-grid button:hover img{animation-play-state:paused; transform:scale(1.045);}
@keyframes heroDriftSlowAlt{
  0%   { transform:scale(1.06) translate(-.8%,-.5%); }
  100% { transform:scale(1) translate(0,0); }
}
@media (prefers-reduced-motion: reduce){
  .gallery-grid img{animation:none;}
}

.lightbox{
  position:fixed; inset:0; z-index:300; background:rgba(10,9,7,.96);
  display:flex; align-items:center; justify-content:center;
}
.lightbox[hidden]{display:none;}
.lightbox img{max-width:88vw; max-height:82vh; object-fit:contain;}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute; background:none; border:1px solid rgba(255,255,255,.35); color:var(--bone);
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .2s var(--ease);
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{background:rgba(255,255,255,.12);}
.lightbox-close{top:24px; right:24px;}
.lightbox-prev{left:24px; top:50%; transform:translateY(-50%);}
.lightbox-next{right:24px; top:50%; transform:translateY(-50%);}
.lightbox-count{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); color:var(--bone-dim); font-size:12px; letter-spacing:.08em;}

/* ---------- property hero video ---------- */
.hero-shot video, .pfilm video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.film-poster video{width:100%; height:100%; object-fit:cover;}

/* ---------- location / map ---------- */
.map-frame{width:100%; aspect-ratio:16/7; border:0; filter:grayscale(.25) contrast(1.05);}
.map-card{
  border:1px dashed var(--stone); padding:44px; text-align:center; max-width:640px; margin:0 auto;
}
.map-card p{color:var(--ink-soft); font-size:14.5px; font-weight:300; max-width:44ch; margin:0 auto;}

/* ---------- request-private-details drawer ---------- */
.drawer-overlay{position:fixed; inset:0; background:rgba(10,9,7,.55); z-index:280; opacity:0; pointer-events:none; transition:opacity .35s var(--ease);}
.drawer-overlay.open{opacity:1; pointer-events:auto;}
.drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(460px,100%); background:var(--charcoal); color:var(--bone);
  z-index:290; padding:60px 40px 40px; overflow-y:auto; transform:translateX(100%); transition:transform .4s var(--ease);
}
.drawer.open{transform:translateX(0);}
.drawer-close{position:absolute; top:26px; right:28px; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.3); color:var(--bone); display:flex; align-items:center; justify-content:center; cursor:pointer;}
.drawer h3{font-size:24px; margin-bottom:10px;}
.drawer p{color:var(--bone-dim); font-size:14px; font-weight:300; margin-bottom:26px;}
.drawer .form-field{margin-bottom:18px;}
.drawer .form-field label{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--bone-dim); font-weight:600;}
.drawer .form-field input, .drawer .form-field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.3);
  color:var(--bone); font-family:var(--sans); font-size:15px; padding:10px 2px; margin-top:6px;
}
.drawer .form-field input:focus, .drawer .form-field textarea:focus{outline:none; border-color:var(--bone);}

/* ---------- responsive ---------- */
@media (max-width: 1080px){
  .primary-nav, .nav-cta{display:none;}
  .menu-toggle{display:block;}
  .pillars{grid-template-columns:repeat(2,1fr);}
  .process-row{grid-template-columns:repeat(3,1fr); row-gap:34px;}
  .pathways{grid-template-columns:1fr;}
  .inquiry-wrap{grid-template-columns:1fr; gap:50px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 680px){
  :root{--gutter:22px;}
  .section{padding:80px 0;}
  .statement{padding:80px 0;}
  .process-row{grid-template-columns:repeat(2,1fr);}
  .property-card{flex-basis:82vw;}
  .hood-card{flex-basis:70vw;}
  .split-band{grid-template-columns:1fr; gap:40px;}
  .form-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .hero-scrolldown{display:none;}
  .feature-property-caption{padding:26px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .lightbox-prev, .lightbox-next{width:36px; height:36px;}
  .lightbox-prev{left:10px;} .lightbox-next{right:10px;}
  .drawer{padding:56px 24px 30px;}
}
