/* ============================================================
   OV/RE — SONORAN EDITORIAL design system (W3-A neighborhood pilot)
   Nova, 2026-09-15 · v1.0
   Navy #0B1624 · Gold #D4A843 · editorial serif · real photography
   Motion: scroll reveal + slow hero drift. All motion respects
   prefers-reduced-motion. No gradients (photo scrims only), no
   emoji, no glass, no rounded-card grids.
   ============================================================ */

:root{
  --navy:#0B1624;
  --navy-2:#0F1E31;
  --navy-3:#14273D;
  --gold:#D4A843;
  --gold-deep:#B88A2E;
  --paper:#F7F5F0;
  --paper-2:#EFECE3;
  --ink:#1A2430;
  --muted:#5A6675;
  --line:#E3DED2;
  --line-dark:rgba(212,168,67,.28);

  /* per-page accent (set inline on <body> via --accent) */
  --accent:#C08A4E;

  --font-display:"Didot","Bodoni 72","Playfair Display","Times New Roman",serif;
  --font-body:Georgia,"Iowan Old Style","Times New Roman",serif;
  --font-label:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;

  --wrap:1140px;
  --pad:clamp(20px,4vw,48px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}

/* ---------- labels / eyebrows ---------- */
.eyebrow{
  font-family:var(--font-label);
  font-size:11px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);
}
.eyebrow--gold{color:var(--gold)}
.eyebrow--light{color:rgba(247,245,240,.72)}

/* ---------- nav ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:50;
  transition:background .35s ease,border-color .35s ease;
  border-bottom:1px solid transparent;
}
.nav.solid{background:rgba(11,22,36,.94);border-bottom:1px solid var(--line-dark);backdrop-filter:blur(8px)}
.nav__in{max-width:var(--wrap);margin:0 auto;padding:16px var(--pad);
  display:flex;align-items:center;gap:26px}
.nav__brand{
  font-family:var(--font-display);font-size:22px;color:#fff;
  text-decoration:none;letter-spacing:.02em;line-height:1;
}
.nav__brand em{font-style:normal;color:var(--gold)}
.nav__links{margin-left:auto;display:flex;gap:22px;align-items:center}
.nav__links a{
  font-family:var(--font-label);font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  color:rgba(247,245,240,.78);text-decoration:none;
}
.nav__links a:hover{color:var(--gold)}
.nav__links a.on{color:var(--gold)}
.nav__cta{
  font-family:var(--font-label);font-size:12px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  background:var(--gold);color:var(--navy);
  padding:9px 16px;text-decoration:none;border-radius:2px;
}
.nav__cta:hover{filter:brightness(1.06)}
@media(max-width:760px){
  .nav__links a:not(.nav__cta){display:none}
}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:min(92svh,780px);
  display:flex;align-items:flex-end;
  color:#fff;overflow:hidden;background:var(--navy);
}
.hero__img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 40%;
}
.hero__scrim{
  position:absolute;inset:0;
  background:linear-gradient(12deg,rgba(11,22,36,.92) 0%,rgba(11,22,36,.55) 42%,rgba(11,22,36,.18) 78%);
}
.hero__in{position:relative;max-width:var(--wrap);margin:0 auto;
  padding:0 var(--pad) clamp(48px,9vh,96px);width:100%}
.hero h1{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(46px,8.5vw,96px);line-height:1.02;
  letter-spacing:.005em;margin:14px 0 0;
}
.hero h1 em{font-style:italic;color:var(--gold)}
.standfirst{
  font-size:clamp(17px,2vw,21px);line-height:1.55;
  color:rgba(247,245,240,.86);max-width:560px;margin-top:18px;
}
.hero__rule{width:64px;height:1px;background:var(--gold);margin-top:26px;opacity:.9}

/* ---------- sections ---------- */
.section{padding:clamp(64px,10vh,110px) 0}
.section--paper2{background:var(--paper-2)}
.section--navy{background:var(--navy);color:#F7F5F0}
.shead{display:flex;align-items:baseline;gap:18px;margin-bottom:clamp(28px,4vh,44px)}
.shead h2{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(30px,4vw,44px);line-height:1.08;letter-spacing:.005em;
}
.shead .rule{flex:1;height:1px;background:var(--line);min-width:40px}
.section--navy .shead .rule{background:var(--line-dark)}

.lede{
  font-size:clamp(19px,2.2vw,23px);line-height:1.6;max-width:720px;
}
.lede + .lede-sub{margin-top:16px;color:var(--muted);max-width:640px;font-size:16px}

/* ---------- stats (the numbers) ---------- */
.stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.stat{padding:34px 26px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat__n{
  font-family:var(--font-display);font-size:clamp(34px,4.6vw,54px);
  line-height:1;color:var(--navy);font-variant-numeric:tabular-nums;
}
.stat__n small{font-size:.45em;color:var(--muted);letter-spacing:.02em}
.stat__l{
  font-family:var(--font-label);font-size:11px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
  margin-top:12px;
}
.stat__d{font-size:14px;color:var(--muted);margin-top:6px;line-height:1.5}
@media(max-width:760px){
  .stats{grid-template-columns:1fr}
  .stat{border-left:0;border-top:1px solid var(--line);padding:22px 0}
  .stat:first-child{border-top:0}
}
.srcnote{
  margin-top:18px;font-family:var(--font-label);
  font-size:11.5px;letter-spacing:.02em;color:var(--muted);
}
.srcnote b{color:var(--ink);font-weight:600}

/* ---------- communities ---------- */
.comms{border-top:1px solid var(--line)}
.comm{
  display:grid;grid-template-columns:64px 260px 1fr;gap:18px;
  padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline;
}
.comm__idx{
  font-family:var(--font-display);font-size:22px;color:var(--gold-deep);
  font-variant-numeric:tabular-nums;
}
.comm__name{
  font-family:var(--font-display);font-size:24px;line-height:1.15;
}
.comm__d{color:var(--muted);font-size:16px}
@media(max-width:760px){
  .comm{grid-template-columns:44px 1fr;grid-template-rows:auto auto}
  .comm__d{grid-column:2}
}

/* ---------- compare (cost vs cold) ---------- */
.compare{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border:1px solid var(--line-dark);
}
.compare__col{padding:clamp(30px,4vw,52px)}
.compare__col + .compare__col{border-left:1px solid var(--line-dark)}
.compare__where{
  font-family:var(--font-label);font-size:11px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
}
.compare__fig{
  font-family:var(--font-display);font-size:clamp(40px,5.4vw,64px);
  line-height:1.05;color:#fff;margin-top:14px;font-variant-numeric:tabular-nums;
}
.compare__sub{color:rgba(247,245,240,.66);font-size:14.5px;margin-top:10px;max-width:400px}
.slot{
  border:1px dashed rgba(212,168,67,.55);
  min-height:96px;display:flex;align-items:center;justify-content:center;
  padding:18px;margin-top:14px;
}
.slot span{
  font-family:var(--font-label);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(212,168,67,.85);text-align:center;
}
.compare__note{
  margin-top:18px;font-size:13.5px;color:rgba(247,245,240,.55);
  font-family:var(--font-label);
}
@media(max-width:760px){
  .compare{grid-template-columns:1fr}
  .compare__col + .compare__col{border-left:0;border-top:1px solid var(--line-dark)}
}

/* ---------- life here (image pair) ---------- */
.lifepair{
  display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:stretch;
}
.life{position:relative;margin:0}
.life img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.life--tall img{aspect-ratio:3/4}
@media(max-width:900px){
  .lifepair{grid-template-columns:1fr}
  .life--tall img{aspect-ratio:4/3}
}
.life figcaption{
  padding:12px 2px 0;font-size:13.5px;color:var(--muted);line-height:1.5;
}
.life figcaption b{
  font-family:var(--font-label);font-weight:600;color:var(--ink);
  letter-spacing:.02em;
}
.credit{
  display:block;margin-top:2px;font-family:var(--font-label);
  font-size:10.5px;letter-spacing:.04em;color:#9AA2AC;
}
.credit a{color:#8A94A0;text-underline-offset:2px}

/* homes strip (single wide image row) */
.homestrip{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:34px}
@media(max-width:760px){.homestrip{grid-template-columns:1fr}}

/* ---------- lead band ---------- */
.leadband{padding:clamp(64px,10vh,110px) 0}
.leadgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
@media(max-width:860px){.leadgrid{grid-template-columns:1fr}}
.leadband h2{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(32px,4.4vw,50px);line-height:1.1;color:#fff;
}
.leadband h2 em{font-style:italic;color:var(--gold)}
.leadband p{color:rgba(247,245,240,.72);margin-top:16px;max-width:440px}
.leadform{display:grid;gap:12px}
.leadform input{
  background:var(--navy-2);border:1px solid rgba(212,168,67,.35);
  color:#fff;padding:15px 16px;font-family:var(--font-label);font-size:15px;
  border-radius:2px;width:100%;
}
.leadform input::placeholder{color:rgba(247,245,240,.4)}
.leadform input:focus{outline:none;border-color:var(--gold)}
.leadform .btn{margin-top:6px}
.btn{
  display:inline-block;background:var(--gold);color:var(--navy);
  font-family:var(--font-label);font-weight:700;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;
  padding:16px 26px;border:0;border-radius:2px;cursor:pointer;
  text-decoration:none;text-align:center;
}
.btn:hover{filter:brightness(1.07)}
.btn--ghost{
  background:transparent;color:var(--gold);
  border:1px solid rgba(212,168,67,.6);
}
.formnote{
  font-family:var(--font-label);font-size:11px;letter-spacing:.06em;
  color:rgba(247,245,240,.45);margin-top:4px;
}
.wireslot{
  border:1px dashed rgba(212,168,67,.5);border-radius:2px;
  padding:4px;
}

/* ---------- footer ---------- */
.footer{background:var(--navy);color:rgba(247,245,240,.6);
  border-top:1px solid var(--line-dark);padding:44px 0 34px}
.footgrid{display:flex;flex-wrap:wrap;gap:26px;align-items:baseline}
.footbrand{font-family:var(--font-display);font-size:20px;color:#fff}
.footbrand em{font-style:normal;color:var(--gold)}
.nap{font-size:12.5px;font-family:var(--font-label);letter-spacing:.03em}
.nap b{color:rgba(247,245,240,.85);font-weight:600}
.footlinks{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}
.footlinks a{
  font-family:var(--font-label);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(247,245,240,.55);text-decoration:none;
}
.footlinks a:hover{color:var(--gold)}
.eho{
  margin-top:22px;padding-top:18px;border-top:1px solid rgba(212,168,67,.16);
  display:flex;gap:16px;align-items:center;flex-wrap:wrap;
  font-family:var(--font-label);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(247,245,240,.38);
}
.eho .eho-mark{
  border:1px solid rgba(212,168,67,.4);color:var(--gold);
  padding:4px 8px;letter-spacing:.2em;
}
.stageline{margin-top:14px;font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(247,245,240,.25);font-family:var(--font-label)}

/* ---------- hub index ---------- */
.hublist{border-top:1px solid var(--line)}
.hubrow{
  display:grid;grid-template-columns:130px 1fr auto 40px;gap:24px;
  align-items:center;padding:26px 0;border-bottom:1px solid var(--line);
  text-decoration:none;
}
.hubrow:hover .hubname{color:var(--gold-deep)}
.hubrow:hover .hubgo{color:var(--gold-deep);transform:translateX(4px)}
.hubzip{
  font-family:var(--font-label);font-size:12px;font-weight:700;
  letter-spacing:.2em;color:var(--muted);
}
.hubname{
  font-family:var(--font-display);font-size:clamp(26px,3.6vw,40px);
  line-height:1.08;transition:color .2s ease;
}
.hubname small{display:block;font-family:var(--font-label);font-size:11px;
  font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin-top:6px}
.hubmed{font-family:var(--font-display);font-size:22px;color:var(--navy);
  font-variant-numeric:tabular-nums;text-align:right}
.hubmed small{display:block;font-family:var(--font-label);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hubgo{
  font-family:var(--font-display);font-size:26px;color:var(--line);
  transition:transform .2s ease,color .2s ease;
}
@media(max-width:760px){
  .hubrow{grid-template-columns:1fr auto;grid-template-rows:auto auto}
  .hubzip{display:none}
  .hubmed{grid-row:2;text-align:left}
  .hubgo{grid-row:2}
}

/* ---------- motion ---------- */
.reveal{opacity:0;transform:translateY(22px);
  transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
.hero__img{animation:drift 26s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1.02)}to{transform:scale(1.1)}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .hero__img{animation:none}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
