/* =================================================================
   1829 Powell Place — shared stylesheet
   "Quiet-luxury editorial" — Fraunces + Hanken Grotesk, brass on cream.
   One file for all three pages (edit once, applies everywhere).
   ================================================================= */
@font-face {
  font-family:"Fraunces";
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:url("fonts/fraunces-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family:"Hanken Grotesk";
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url("fonts/hanken-grotesk-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --ink:#181611; --ink-2:#2b2820; --ink-soft:#3c382e;
  --paper:#f4efe5; --paper-2:#e9e0ce; --paper-3:#fbf8f1;
  --brass:#8b6833; --brass-lt:#d8b06b; --brass-deep:#5f421c;
  --river:#24312b; --muted:#554d41; --muted-2:#61594c;
  --hairline:rgba(24,22,17,0.14); --hairline-2:rgba(24,22,17,0.08);
  --line-light:rgba(244,239,229,0.16);
  --maxw:1280px; --pad:clamp(20px,5vw,84px);
  --ease:cubic-bezier(0.22,1,0.36,1); --ease-2:cubic-bezier(0.16,1,0.3,1);
  --f-display:"Fraunces",Georgia,"Times New Roman",serif; --f-body:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --shadow-soft:0 26px 60px -30px rgba(24,22,17,0.5);
  --shadow-deep:0 40px 90px -34px rgba(0,0,0,0.55);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--f-body); background:var(--paper); color:var(--ink);
  font-weight:400; line-height:1.6; overflow-x:hidden; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img { display:block; max-width:100%; }
::selection { background:var(--brass); color:var(--paper-3); }

/* fine paper grain — subtle static print texture (no blend mode → no scroll repaint cost) */
body::before {
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none; opacity:0.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- reveal on scroll ---------- */
.js .reveal { opacity:0; transform:translateY(26px); }
.reveal { transition:opacity 0.95s var(--ease), transform 0.95s var(--ease); }
.reveal.is-in { opacity:1; transform:none; }
/* hero & page headers: fade in (opacity only) — no vertical shift on first paint; matches the live site's staggered hero entrance */
.hero .reveal, .js .page-hero .reveal { transform:none; }
.reveal[data-delay="1"]{ transition-delay:0.09s; }
.reveal[data-delay="2"]{ transition-delay:0.18s; }
.reveal[data-delay="3"]{ transition-delay:0.28s; }
.reveal[data-delay="4"]{ transition-delay:0.40s; }
.reveal[data-delay="5"]{ transition-delay:0.52s; }
/* image "curtain" reveal — wipe + slow settle of scale */
.figrev { overflow:hidden; }
.js .figrev img { transform:scale(1.1); }
.figrev img { transition:transform 1.7s var(--ease-2); }
.figrev.is-in img { transform:scale(1); }
.js .figrev::after {
  content:""; position:absolute; inset:0; background:var(--paper); z-index:2;
  transform-origin:left; transition:transform 1.15s var(--ease-2);
}
.figrev.is-in::after { transform:scaleX(0); transform-origin:right; }

/* ---------- type helpers ---------- */
.eyebrow { font-size:0.72rem; letter-spacing:0.32em; text-transform:uppercase; color:var(--brass-deep); font-weight:500; }
.script { font-family:var(--f-display); font-style:italic; font-weight:300; }

/* ---------- buttons ---------- */
.btn { display:inline-block; font-family:var(--f-body); font-size:0.8rem; font-weight:600; letter-spacing:0.16em;
  text-transform:uppercase; padding:1.08em 2.4em; border:none; cursor:pointer; border-radius:1px; text-decoration:none;
  transition:transform 0.45s var(--ease), background 0.45s var(--ease), color 0.45s var(--ease), box-shadow 0.45s var(--ease); }
.btn--primary { background:var(--brass-deep); color:var(--paper-3); box-shadow:0 12px 32px -14px rgba(24,22,17,0.7); }
.btn--primary:hover { background:var(--ink); transform:translateY(-2px); box-shadow:0 20px 46px -16px rgba(24,22,17,0.75); }
.btn--lg { padding:1.3em 3.2em; font-size:0.86rem; }
.btn--full { width:100%; margin-top:8px; }
.btn--outline { background:transparent; color:var(--ink); border:1px solid var(--ink); }
.btn--outline:hover { background:var(--ink); color:var(--paper-3); transform:translateY(-2px); }
.btn--ghost { background:transparent; color:var(--paper-3); border:1px solid rgba(244,239,229,0.5); }
.btn--ghost:hover { background:var(--paper-3); color:var(--ink); border-color:var(--paper-3); transform:translateY(-2px); }

/* animated text link */
.ulink { color:var(--brass-deep); text-decoration:none; position:relative; padding-bottom:2px; }
.ulink::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor;
  transform:scaleX(1); transform-origin:right; transition:transform 0.5s var(--ease); }
.ulink:hover { color:var(--ink); }
.ulink:hover::after { transform:scaleX(0); transform-origin:left; }

/* visible keyboard focus */
a:focus-visible, button:focus-visible, .btn:focus-visible, [tabindex]:focus-visible,
.lead-form input:focus-visible, .lead-form textarea:focus-visible {
  outline:2px solid var(--brass-deep); outline-offset:3px; border-radius:2px;
}
.hero :focus-visible, .story :focus-visible, .location :focus-visible,
.marquee :focus-visible, .lb :focus-visible, .foot :focus-visible { outline-color:var(--paper-3); }

section[id], header[id] { scroll-margin-top:88px; }

/* ---------- nav ---------- */
.nav { position:fixed; top:0; left:0; right:0; z-index:80; display:flex; align-items:center; justify-content:space-between;
  padding:1.35rem var(--pad); color:var(--paper-3);
  transition:background 0.55s var(--ease), color 0.55s var(--ease), padding 0.45s var(--ease), box-shadow 0.55s var(--ease); }
.nav.is-solid { background:rgba(244,239,229,0.92); backdrop-filter:saturate(1.4) blur(10px); color:var(--ink);
  padding-top:0.85rem; padding-bottom:0.85rem; box-shadow:0 1px 0 var(--hairline); }
.nav--static { position:absolute; }
.nav__brand { font-family:var(--f-display); font-weight:400; font-size:1.18rem; letter-spacing:0.02em; color:inherit; text-decoration:none; }
.nav__brand small { display:block; font-family:var(--f-body); font-size:0.56rem; letter-spacing:0.34em; text-transform:uppercase;
  opacity:0.6; margin-top:2px; font-weight:500; }
.nav__links { list-style:none; display:flex; align-items:center; gap:clamp(0.9rem,3vw,2.4rem); }
.nav__links a { color:inherit; text-decoration:none; font-size:0.74rem; letter-spacing:0.16em; text-transform:uppercase;
  opacity:0.82; transition:opacity 0.3s; position:relative; }
.nav__links a:hover { opacity:1; }
.nav__cta { font-family:var(--f-body); cursor:pointer; background:var(--brass); color:var(--paper-3); border:none; border-radius:1px;
  font-size:0.7rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; padding:0.78em 1.5em;
  transition:background 0.4s var(--ease), transform 0.4s var(--ease); }
.nav__cta { background:var(--brass-deep); }
.nav__cta:hover { background:var(--ink); transform:translateY(-1px); }
.nav.is-solid .nav__cta { color:var(--paper-3); }
.nav__tel { display:inline-flex; align-items:center; justify-content:center; color:inherit; opacity:0.82; transition:opacity 0.3s; }
.nav__tel:hover { opacity:1; }
.nav__tel svg { width:19px; height:19px; }

/* ---------- hero ---------- */
.hero { position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  padding:var(--pad); padding-bottom:clamp(2rem,5vh,3.4rem); overflow:hidden; color:var(--paper-3); }
.hero__media { position:absolute; inset:0; z-index:0; }
.hero__media img { width:100%; height:100%; object-fit:cover; object-position:center center;
  transform:scale(1.04); animation:heroDrift 18s ease-out forwards; }
@keyframes heroDrift { to { transform:scale(1); } }
.hero__scrim { position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to right, rgba(14,12,8,0.84) 0%, rgba(14,12,8,0.5) 34%, rgba(14,12,8,0) 64%),
    linear-gradient(to top, rgba(14,12,8,0.78) 0%, rgba(14,12,8,0.08) 46%, rgba(14,12,8,0.3) 100%); }
.hero__inner { position:relative; z-index:3; max-width:760px; margin-top:auto; }
.hero__eyebrow { letter-spacing:0.36em; color:var(--brass-lt); margin-bottom:1.3rem; font-size:0.74rem;
  text-transform:uppercase; font-weight:500; }
.hero__address { font-family:var(--f-display); font-weight:300; font-size:clamp(3rem,9vw,7.2rem); line-height:0.93;
  letter-spacing:-0.022em; text-wrap:balance; }
.hero__line { max-width:34ch; font-size:clamp(1rem,1.5vw,1.18rem); color:rgba(251,248,241,0.94); margin-top:1.5rem; line-height:1.55; }
.hero__price { font-family:var(--f-display); font-style:italic; font-weight:400; font-size:clamp(1.5rem,3.4vw,2.2rem);
  color:var(--brass-lt); margin-top:1.2rem; }
.hero__price span { display:block; font-family:var(--f-body); font-style:normal; font-size:0.66rem; letter-spacing:0.3em;
  text-transform:uppercase; color:rgba(251,248,241,0.86); margin-bottom:0.45rem; }
.hero__actions { display:flex; flex-wrap:wrap; gap:0.9rem; align-items:center; margin-top:2.2rem; }
/* stat ribbon */
.hero__stats { position:relative; z-index:3; display:flex; flex-wrap:wrap; gap:0 clamp(1.4rem,4vw,3.4rem);
  margin-top:clamp(2.4rem,5vh,3.6rem); padding-top:1.5rem; border-top:1px solid rgba(244,239,229,0.22); }
.hero__stat { display:flex; flex-direction:column; gap:0.25rem; }
.hero__stat b { font-family:var(--f-display); font-weight:400; font-size:clamp(1.3rem,2.4vw,1.85rem); letter-spacing:-0.01em; }
.hero__stat span { font-size:0.64rem; letter-spacing:0.22em; text-transform:uppercase; color:rgba(251,248,241,0.84); }
.scrollcue { position:absolute; top:max(5.2rem,9vh); right:var(--pad); z-index:3; display:flex; align-items:center; gap:0.7rem;
  font-size:0.62rem; letter-spacing:0.26em; text-transform:uppercase; color:rgba(251,248,241,0.84); }
.scrollcue i { display:block; width:1px; height:42px; background:linear-gradient(rgba(244,239,229,0.7),rgba(244,239,229,0)); }

/* ---------- section heads ---------- */
.section-head { display:flex; align-items:baseline; gap:1.1rem; margin-bottom:clamp(2rem,5vw,3.4rem); }
.section-head__num { font-family:var(--f-display); font-style:italic; font-size:1.1rem; color:var(--brass-deep); font-weight:700; }
.section-head__title { font-family:var(--f-display); font-weight:300; font-size:clamp(1.65rem,3.5vw,2.55rem); letter-spacing:-0.015em; line-height:1; }
.section-head--light .section-head__title { color:var(--paper-3); }
.section-head--light .section-head__num { color:var(--brass-lt); }

/* ---------- marquee (full-bleed cinematic) ---------- */
.marquee { position:relative; min-height:68vh; display:flex; align-items:flex-end; overflow:hidden; color:var(--paper-3); }
.marquee__media { position:absolute; inset:0; z-index:0; }
.marquee__media img { width:100%; height:100%; object-fit:cover; }
.marquee__scrim { position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(14,12,8,0.7), rgba(14,12,8,0.05) 55%, rgba(14,12,8,0.25)); }
.marquee__inner { position:relative; z-index:2; padding:var(--pad); max-width:760px; }
.marquee__quote { font-family:var(--f-display); font-weight:300; font-style:italic; font-size:clamp(1.5rem,3.2vw,2.4rem);
  line-height:1.22; letter-spacing:-0.01em; text-wrap:balance; }
.marquee__by { margin-top:1.2rem; font-size:0.68rem; letter-spacing:0.24em; text-transform:uppercase; color:rgba(244,239,229,0.62); }

/* ---------- homepage editorial gallery ---------- */
.gallery { max-width:var(--maxw); margin:0 auto; padding:clamp(44px,7vw,90px) var(--pad); }
.grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:clamp(150px,15vw,220px); gap:14px; grid-auto-flow:dense; }
.grid__item { position:relative; overflow:hidden; border-radius:2px; margin:0; cursor:pointer; background:var(--paper-2); }
.grid__item--wide { grid-column:span 2; }
.grid__item--tall { grid-row:span 2; }
.grid__item img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.grid__item:hover img { transform:scale(1.06); }
.grid__cap { position:absolute; left:0; right:0; bottom:0; padding:1.7rem 1.1rem 0.9rem; color:#fff; font-size:0.76rem;
  letter-spacing:0.02em; background:linear-gradient(to top, rgba(14,12,8,0.74), rgba(14,12,8,0)); opacity:0; transform:translateY(8px);
  transition:opacity 0.45s var(--ease), transform 0.45s var(--ease); pointer-events:none; }
.grid__item:hover .grid__cap { opacity:1; transform:none; }
.gallery__more { text-align:center; margin-top:3rem; }

/* ---------- positioning statement ---------- */
.statement { max-width:1000px; margin:0 auto; padding:clamp(20px,4vw,40px) var(--pad) 0; text-align:center; }
.statement__lead { font-family:var(--f-display); font-weight:300; font-size:clamp(1.32rem,2.6vw,1.95rem); line-height:1.34;
  letter-spacing:-0.01em; text-wrap:balance; }
.statement__lead b { font-weight:500; color:var(--brass-deep); font-style:normal; }

/* ---------- value / by-the-numbers ---------- */
.value { max-width:var(--maxw); margin:0 auto; padding:clamp(40px,6vw,76px) var(--pad); }
.value__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline); }
.value__cell { background:var(--paper); padding:clamp(1.6rem,3vw,2.4rem) 1.4rem; display:flex; flex-direction:column; gap:0.5rem; }
.value__n { font-family:var(--f-display); font-weight:300; font-size:clamp(1.7rem,3.2vw,2.4rem); line-height:0.95; letter-spacing:-0.02em; }
.value__n em { font-style:italic; color:var(--brass); font-size:0.5em; }
.value__k { font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }

/* ---------- story (dark) ---------- */
.story { background:var(--ink); color:var(--paper-3); padding:clamp(48px,7vw,84px) var(--pad); position:relative; }
.story__inner { max-width:880px; margin:0 auto; position:relative; z-index:2; }
.story__lead { font-family:var(--f-display); font-weight:300; font-style:italic; font-size:clamp(1.55rem,3.3vw,2.4rem);
  line-height:1.22; letter-spacing:-0.01em; margin-bottom:1.9rem; text-wrap:balance; }
.story__body { font-size:clamp(1.02rem,1.5vw,1.18rem); line-height:2; letter-spacing:0.012em; color:rgba(244,239,229,0.76); max-width:64ch; }
.story__body .dropcap { float:left; font-family:var(--f-display); font-weight:300; font-size:4.4rem; line-height:0.74;
  padding:0.18em 0.14em 0 0; color:var(--brass-lt); }
.story__source { margin-top:2.6rem; font-family:var(--f-body); font-size:0.64rem; letter-spacing:0.22em; text-transform:uppercase;
  color:rgba(244,239,229,0.42); }

/* ---------- facts ---------- */
.facts { max-width:var(--maxw); margin:0 auto; padding:clamp(48px,7.5vw,88px) var(--pad); }
.facts__grid { list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:0; }
.facts__grid li { display:flex; flex-direction:column; gap:0.4rem; padding:1.7rem 0; border-top:1px solid var(--hairline); }
.facts__grid li:nth-child(odd){ padding-right:2rem; }
.facts__grid li:nth-child(even){ padding-left:2rem; border-left:1px solid var(--hairline); }
.facts__k { font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--brass-deep); }
.facts__v { font-family:var(--f-display); font-size:clamp(1.15rem,2vw,1.5rem); font-weight:400; }
.facts__v em { font-style:italic; color:var(--muted); font-size:0.85em; }

/* ---------- location (river) ---------- */
.location { background:var(--river); color:var(--paper-3); padding:clamp(28px,4vw,50px) var(--pad); }
.location__inner { max-width:var(--maxw); margin:0 auto; }
.location__list { list-style:none; }
.location__list li { font-family:var(--f-display); font-weight:300; font-size:clamp(1.12rem,2.2vw,1.6rem); line-height:1.32;
  padding:0.4rem 0; border-bottom:1px solid var(--line-light); display:flex; align-items:baseline; gap:1rem; }
.location__list li:last-child { border-bottom:none; }
.location__list li::before { content:attr(data-i); font-family:var(--f-body); font-size:0.7rem; letter-spacing:0.16em;
  color:var(--brass-lt); transform:translateY(-0.4em); }
.map-embed { margin-top:1.5rem; border-radius:3px; overflow:hidden; box-shadow:var(--shadow-deep); }
.map-embed iframe { width:100%; height:300px; border:0; display:block; filter:grayscale(0.25) contrast(1.02); }

/* ---------- video tour ---------- */
.videotour { background:var(--paper); padding:clamp(28px,4vw,48px) var(--pad); text-align:center; }
.videotour__inner { max-width:640px; margin:0 auto; }
.videotour__eyebrow { font-size:0.7rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--brass-deep); }
.videotour__title { font-family:var(--f-display); font-weight:300; font-size:clamp(1.5rem,3.2vw,2.15rem); margin:0.5rem 0 1.3rem; letter-spacing:-0.01em; }
.video-embed { position:relative; aspect-ratio:16/9; border-radius:3px; overflow:hidden; box-shadow:var(--shadow-deep); }
.video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------- close / CTA + agent ---------- */
.close { text-align:center; padding:clamp(30px,4vw,52px) var(--pad); max-width:780px; margin:0 auto; }
.close__title { font-family:var(--f-display); font-weight:300; font-size:clamp(1.7rem,3.4vw,2.5rem); line-height:1.04; letter-spacing:-0.02em; }
.close__sub { color:var(--muted); margin-top:0.7rem; font-size:1rem; }
.close .btn { margin-top:1.6rem; }
.trust { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:0.7rem 1.8rem; margin-top:1.8rem; }
.trust li { position:relative; padding-left:1.3rem; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); }
.trust li::before { content:""; position:absolute; left:0; top:50%; width:5px; height:5px; background:var(--brass); border-radius:50%; transform:translateY(-50%); }
.agent { margin-top:2.2rem; padding-top:1.8rem; border-top:1px solid var(--hairline); }
.agent__photo { width:92px; height:112px; object-fit:cover; object-position:center top; border-radius:3px; margin:0 auto 1rem;
  box-shadow:var(--shadow-soft); }
.agent__brokerage { font-family:var(--f-display); font-size:clamp(1.4rem,2.4vw,1.7rem); letter-spacing:-0.01em; }
.agent__tagline { margin-top:0.45rem; font-size:0.64rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--brass); }
.agent__people { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:center; gap:1.4rem 3rem; margin-top:1.6rem; }
.agent__name { font-family:var(--f-display); font-size:1.25rem; }
.agent__role { margin-top:0.3rem; font-size:0.62rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--muted); }
.agent__contact { margin-top:0.7rem; }
.agent__sep { color:var(--muted); margin:0 0.7rem; }
.agent__mls { margin-top:1.6rem; font-size:0.76rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }

/* ---------- footer ---------- */
.foot { background:var(--ink); color:rgba(244,239,229,0.7); padding:clamp(48px,7vw,80px) var(--pad) 2.4rem; }
.foot__inner { max-width:var(--maxw); margin:0 auto; }
.foot__top { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.4rem; padding-bottom:2.6rem; border-bottom:1px solid var(--line-light); }
.foot__brand { font-family:var(--f-display); font-size:1.5rem; color:var(--paper-3); }
.foot__brand small { display:block; font-family:var(--f-body); font-size:0.62rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--brass-lt); margin-top:0.5rem; }
.foot__col h4 { font-size:0.66rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--brass-lt); margin-bottom:1rem; font-weight:600; }
.foot__col a, .foot__col p { display:block; color:rgba(244,239,229,0.7); text-decoration:none; font-size:0.92rem; margin-bottom:0.55rem; transition:color 0.3s; }
.foot__col a:hover { color:var(--paper-3); }
.foot__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding-top:1.8rem; font-size:0.72rem; letter-spacing:0.04em; color:rgba(244,239,229,0.72); }
.foot__eho { display:flex; align-items:center; gap:0.6rem; max-width:62ch; line-height:1.5; }
.foot__eho svg { flex:0 0 auto; }
.foot__bottom a { color:rgba(244,239,229,0.7); text-decoration:underline; text-underline-offset:2px; transition:color 0.3s; }
.foot__bottom a:hover { color:var(--paper-3); }
.foot__person { margin-top:1.05rem; }

/* ---------- legal / privacy prose ---------- */
.legal { max-width:800px; margin:0 auto; padding:clamp(16px,3vw,32px) var(--pad) clamp(60px,9vw,110px); }
.legal__updated { font-size:0.76rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-bottom:2.4rem; }
.legal__intro { font-family:var(--f-display); font-weight:300; font-size:clamp(1.3rem,2.6vw,1.8rem); line-height:1.4; letter-spacing:-0.01em; color:var(--ink); margin-bottom:2.6rem; text-wrap:balance; }
.legal h2 { font-family:var(--f-display); font-weight:400; font-size:clamp(1.25rem,2.4vw,1.7rem); letter-spacing:-0.01em; margin:2.6rem 0 0.7rem; display:flex; align-items:baseline; gap:0.7rem; }
.legal h2 .legal__no { font-style:italic; font-size:0.8em; color:var(--brass-deep); }
.legal p, .legal li { font-size:1rem; line-height:1.72; color:var(--ink-soft); max-width:70ch; }
.legal p { margin-bottom:1rem; }
.legal ul { list-style:none; margin:0 0 1.2rem; }
.legal li { position:relative; padding-left:1.4rem; margin-bottom:0.5rem; }
.legal li::before { content:"—"; position:absolute; left:0; color:var(--brass-deep); }
.legal a { color:var(--brass-deep); text-decoration:underline; text-underline-offset:2px; }
.legal__note { margin-top:3rem; padding:1.4rem 1.6rem; background:var(--paper-3); border:1px solid var(--hairline); border-radius:3px; font-size:0.88rem; line-height:1.6; color:var(--muted); }

/* form consent line */
.lead-form__consent { font-size:0.72rem; letter-spacing:0; text-transform:none; color:var(--muted); text-align:center; line-height:1.45; margin-top:0.1rem; }
.lead-form__consent a { color:var(--brass-deep); }
a.nav__cta { text-decoration:none; display:inline-block; }

/* ---------- page hero (interior pages) ---------- */
.page-hero { max-width:var(--maxw); margin:0 auto; padding:clamp(104px,13vw,140px) var(--pad) clamp(24px,3.5vw,40px); }
.page-hero__eyebrow { font-size:0.72rem; letter-spacing:0.28em; text-transform:uppercase; color:var(--brass-deep); }
.page-hero h1 { font-family:var(--f-display); font-weight:300; font-size:clamp(2.3rem,6vw,4.4rem); line-height:1; margin:0.5rem 0 1.1rem; letter-spacing:-0.02em; }
.page-hero__lead { color:var(--muted); max-width:48ch; font-size:1.04rem; }
.page-hero__row { display:flex; flex-wrap:wrap; align-items:center; gap:1.8rem; margin-top:1.4rem; }
.page-hero__back { color:var(--ink); text-decoration:none; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
  border-bottom:1px solid var(--hairline); padding-bottom:3px; transition:color 0.3s, border-color 0.3s; }
.page-hero__back:hover { color:var(--brass); border-color:var(--brass); }

/* ---------- detail page ---------- */
.detail { max-width:960px; margin:0 auto; padding:clamp(48px,8vw,80px) var(--pad); }
.detail--tight { padding-top:0; }
.detail__lead { font-family:var(--f-display); font-weight:300; font-size:clamp(1.5rem,3.2vw,2.3rem); line-height:1.32; letter-spacing:-0.01em; margin-bottom:1.6rem; text-wrap:balance; }
.detail p { font-size:clamp(1rem,1.4vw,1.13rem); color:var(--ink-soft); max-width:66ch; margin-bottom:1.1rem; }
.detail p:last-child { margin-bottom:0; }
.detail__feature { width:100%; border-radius:3px; aspect-ratio:16/9; object-fit:cover; box-shadow:var(--shadow-deep); }
.feature-list { list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:0.9rem 2.4rem; }
.feature-list li { position:relative; padding-left:1.5rem; font-size:1.04rem; color:var(--ink-soft); }
.feature-list li::before { content:"—"; position:absolute; left:0; color:var(--brass); }
.rooms { display:grid; gap:2rem; }
.room { border-top:1px solid var(--hairline); padding-top:1.6rem; }
.room img { width:100%; border-radius:3px; aspect-ratio:16/10; object-fit:cover; margin-bottom:1.2rem; box-shadow:var(--shadow-soft); }
.room__name { font-family:var(--f-display); font-size:clamp(1.25rem,2.2vw,1.7rem); margin-bottom:0.45rem; }
.room p { margin:0; max-width:70ch; }

/* ---------- editorial gallery page ---------- */
.gallery--page { max-width:var(--maxw); margin:0 auto; padding:0 var(--pad) clamp(50px,9vw,110px); }
.gsec { margin-top:clamp(3rem,6vw,5.5rem); }
.gsec__head { display:grid; grid-template-columns:auto 1fr auto; align-items:end; column-gap:1.4rem; margin-bottom:1.6rem; padding-bottom:1.05rem; border-bottom:1px solid var(--hairline); }
.gsec__no { font-family:var(--f-display); font-style:italic; font-weight:300; font-size:clamp(1.9rem,4.2vw,3rem); line-height:0.66; color:var(--brass); }
.gsec__title { font-family:var(--f-display); font-weight:300; font-size:clamp(1.45rem,3.1vw,2.2rem); letter-spacing:-0.015em; line-height:1; }
.gsec__count { font-size:0.64rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--muted); padding-bottom:0.18rem; white-space:nowrap; }
.gtiles { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:clamp(150px,18vw,238px); grid-auto-flow:dense; gap:12px; }
.gtiles figure { position:relative; margin:0; overflow:hidden; border-radius:2px; cursor:zoom-in; background:var(--paper-2); }
.gtiles figure:focus-visible { outline:2px solid var(--brass); outline-offset:2px; }
.gtiles figure.feat { grid-column:span 2; grid-row:span 2; }
.gtiles img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.gtiles figure:hover img { transform:scale(1.05); }
.gtiles figcaption { position:absolute; left:0; right:0; bottom:0; padding:1.6rem 1.05rem 0.85rem; color:#fff; font-size:0.76rem;
  letter-spacing:0.02em; line-height:1.3; background:linear-gradient(to top, rgba(14,12,8,0.76), rgba(14,12,8,0)); opacity:0;
  transform:translateY(8px); transition:opacity 0.45s var(--ease), transform 0.45s var(--ease); pointer-events:none; }
.gtiles figure:hover figcaption { opacity:1; transform:none; }
.gallery__note { text-align:center; color:var(--muted); font-family:var(--f-display); font-style:italic; font-size:clamp(1.05rem,1.6vw,1.25rem);
  margin:clamp(2.6rem,5vw,3.6rem) auto 2.4rem; max-width:48ch; }

/* ---------- lightbox ---------- */
.lb { position:fixed; inset:0; z-index:200; background:rgba(11,10,7,0.97); display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity 0.35s var(--ease), visibility 0.35s; }
.lb.is-open { opacity:1; visibility:visible; }
.lb__img { max-width:92vw; max-height:84vh; object-fit:contain; border-radius:2px; box-shadow:0 30px 90px -20px rgba(0,0,0,0.7); }
.lb__cap { position:absolute; bottom:22px; left:0; right:0; text-align:center; color:rgba(244,239,229,0.84); font-size:0.84rem; letter-spacing:0.03em; padding:0 1rem; }
.lb__count { position:absolute; top:22px; left:0; right:0; text-align:center; color:rgba(244,239,229,0.5); font-size:0.7rem; letter-spacing:0.22em; }
.lb__btn { position:absolute; top:50%; transform:translateY(-50%); background:none; border:none; color:rgba(244,239,229,0.7);
  font-size:2.6rem; line-height:1; cursor:pointer; padding:0 1.2rem; transition:color 0.2s; user-select:none; }
.lb__btn:hover { color:#fff; }
.lb__prev { left:max(6px,1.5vw); } .lb__next { right:max(6px,1.5vw); }
.lb__close { position:absolute; top:8px; right:10px; width:48px; height:48px; display:flex; align-items:center; justify-content:center;
  background:none; border:none; color:rgba(244,239,229,0.7); font-size:2.1rem; line-height:1; cursor:pointer; z-index:2; }
.lb__close:hover { color:#fff; }

/* ---------- modal + lead form ---------- */
.modal { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:20px; visibility:hidden; opacity:0; transition:opacity 0.4s var(--ease), visibility 0.4s; }
.modal.is-open { visibility:visible; opacity:1; }
.modal__backdrop { position:absolute; inset:0; background:rgba(14,12,8,0.68); backdrop-filter:blur(5px); }
.modal__panel { position:relative; z-index:1; background:var(--paper-3); width:100%; max-width:470px; padding:clamp(28px,5vw,48px); border-radius:4px; box-shadow:0 40px 90px -30px rgba(0,0,0,0.6); transform:translateY(24px) scale(0.98); transition:transform 0.5s var(--ease); }
.modal.is-open .modal__panel { transform:none; }
.modal__close { position:absolute; top:14px; right:18px; width:40px; height:40px; display:flex; align-items:center; justify-content:center; background:none; border:none; font-size:1.9rem; line-height:1; color:var(--muted); cursor:pointer; transition:color 0.3s; }
.modal__close:hover { color:var(--ink); }
.modal__title { font-family:var(--f-display); font-weight:400; font-size:1.85rem; }
.modal__sub { color:var(--muted); margin-top:0.4rem; margin-bottom:1.6rem; font-size:0.95rem; }
.lead-form { display:flex; flex-direction:column; gap:1rem; }
.lead-form label { display:flex; flex-direction:column; gap:0.4rem; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); }
.lead-form input, .lead-form textarea { font-family:var(--f-body); font-size:1rem; color:var(--ink); background:var(--paper-2); border:1px solid transparent; border-radius:2px; padding:0.85em 1em; transition:border-color 0.3s, background 0.3s; }
.lead-form input:focus, .lead-form textarea:focus { outline:none; border-color:var(--brass); background:#fff; }
.lead-form textarea { resize:vertical; }
.lead-form__status { font-size:0.9rem; text-align:center; min-height:1.2em; letter-spacing:normal; text-transform:none; }
.lead-form__status.ok { color:var(--river); }
.lead-form__status.err { color:#9a3b2c; }

/* ---------- responsive ---------- */
@media (max-width:860px) {
  .foot__top { grid-template-columns:1fr 1fr; }
  .value__grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px) {
  .grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:24vh; }
  .grid__item--tall { grid-row:span 1; }
  .gtiles { grid-template-columns:repeat(2,1fr); grid-auto-rows:34vw; gap:8px; }
  .gtiles figure.feat { grid-column:span 2; grid-row:span 1; }
  .gtiles figcaption { opacity:1; transform:none; padding:1.1rem 0.9rem 0.7rem; }
  .grid__cap { opacity:1; transform:none; }
  .facts__grid { grid-template-columns:1fr; }
  .facts__grid li:nth-child(odd){ padding-right:0; }
  .facts__grid li:nth-child(even){ padding-left:0; border-left:none; }
  .feature-list { grid-template-columns:1fr; }
  .foot__top { grid-template-columns:1fr; gap:1.8rem; }
  .nav { padding:0.78rem 16px; gap:0.6rem; }
  .nav__brand { font-size:0.84rem; white-space:nowrap; flex-shrink:0; }
  .nav__brand small { display:none; }
  .nav__links { gap:0.72rem; flex-shrink:0; }
  .nav__links a { font-size:0.58rem; letter-spacing:0.06em; }
  .nav__cta { padding:0.56em 0.95em; font-size:0.6rem; letter-spacing:0.08em; }
  .lb__btn { font-size:2rem; padding:0 0.5rem; }
  .hero { justify-content:flex-end; }
  /* scroll cue overlaps the hero eyebrow on narrow screens — hide it there */
  .scrollcue { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation:none !important; transition-duration:0.01ms !important; }
  .js .reveal { opacity:1; transform:none; }
  .js .figrev img { transform:none; }
  .js .figrev::after { display:none; }
  .hero__media img { animation:none; transform:none; }
  html { scroll-behavior:auto; }
}


/* ---------- SEO/AEO additions ---------- */
.skip-link { position:absolute; left:-999px; top:1rem; z-index:999; padding:.75rem 1rem; background:var(--ink); color:var(--paper-3); border-radius:999px; }
.skip-link:focus { left:1rem; }
.sr-only, .hero__address span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.answerbox { overflow:hidden; padding:clamp(40px,5vw,68px) var(--pad); background:linear-gradient(135deg,#fffdf8 0%,var(--paper-3) 58%,#efe7d8 100%); border-block:1px solid var(--hairline); }
.answerbox__inner { max-width:1040px; margin:0 auto; }
.answerbox__copy { max-width:62ch; }
.answerbox__eyebrow { color:var(--brass-deep); font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; font-weight:800; margin-bottom:.8rem; }
.answerbox h2 { font-family:var(--f-display); font-variation-settings:"SOFT" 38,"WONK" 0; font-weight:430; font-size:clamp(1.8rem,2.9vw,2.7rem); line-height:1.06; letter-spacing:-.03em; max-width:17ch; text-wrap:balance; }
.answerbox__dek { margin-top:clamp(.85rem,1.4vw,1.15rem); max-width:60ch; color:var(--ink-soft); font-size:clamp(.97rem,1.05vw,1.04rem); line-height:1.6; text-wrap:pretty; }
.answerbox__facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:clamp(1.7rem,2.8vw,2.5rem) 0 0; padding:0; background:transparent; border:none; border-top:1px solid rgba(24,22,17,.2); border-radius:0; box-shadow:none; }
.answerbox__facts div { min-width:0; padding:clamp(1rem,1.5vw,1.3rem) clamp(1rem,1.5vw,1.4rem) 0 0; background:transparent; border:none; border-radius:0; box-shadow:none; }
.answerbox__facts div + div { padding-left:clamp(1rem,1.5vw,1.4rem); border-left:1px solid rgba(24,22,17,.13); }
.answerbox__facts dt { color:var(--brass-deep); text-transform:uppercase; letter-spacing:.16em; font-size:.59rem; font-weight:800; }
.answerbox__facts dd { margin-top:.5rem; color:var(--ink); font-size:clamp(.92rem,1vw,1rem); line-height:1.42; }
.buyer-intel { padding:clamp(34px,5vw,60px) var(--pad); max-width:var(--maxw); margin:0 auto; border-top:1px solid var(--hairline); }
.buyer-intel__intro { max-width:58rem; margin:-.75rem 0 clamp(1.8rem,4vw,3rem); color:var(--muted); font-size:clamp(1rem,1.45vw,1.18rem); line-height:1.65; }
.buyer-intel__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(.85rem,1.5vw,1.2rem); }
.buyer-intel__card { position:relative; min-height:222px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; background:linear-gradient(145deg,#fff 0%,var(--paper-3) 58%,#eee4d1 100%); border:1px solid rgba(24,22,17,.11); border-radius:2px; padding:clamp(1.1rem,1.8vw,1.5rem); box-shadow:0 24px 70px -48px rgba(24,22,17,.55); }
.buyer-intel__card::before { content:""; position:absolute; inset:0; border-top:3px solid rgba(139,104,51,.42); opacity:.8; pointer-events:none; }
.buyer-intel__card--feature { grid-column:span 2; background:linear-gradient(135deg,rgba(24,22,17,.94),rgba(36,49,43,.88)), url("photos/gallery/seo/ext-front-480.webp") center/cover; color:var(--paper-3); }
.buyer-intel__card--checklist { grid-column:span 3; min-height:188px; background:linear-gradient(90deg,#fff 0%,var(--paper-3) 62%,#eadfc8 100%); }
.buyer-intel__card--checklist h3 { max-width:22ch; }
.buyer-intel__card--checklist p:last-child { max-width:76ch; }
.buyer-intel__kicker { margin:0 0 .6rem; color:var(--brass-deep); font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.buyer-intel__card--feature .buyer-intel__kicker { color:var(--brass-lt); }
.buyer-intel__card h3 { position:relative; margin:0; max-width:16ch; font-family:var(--f-display); font-weight:400; font-size:clamp(1.25rem,1.9vw,1.85rem); line-height:1.08; letter-spacing:-.022em; text-wrap:balance; color:var(--ink); }
.buyer-intel__card--feature h3 { color:var(--paper-3); max-width:18ch; }
.buyer-intel__card p:last-child { position:relative; margin-top:.85rem; color:var(--ink-soft); font-size:.93rem; line-height:1.52; }
.buyer-intel__card--feature p:last-child { color:rgba(251,248,241,.86); max-width:45rem; }
.foot__heading { font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass-lt); margin-bottom:1rem; font-weight:700; }
@media (max-width:980px){ .buyer-intel__grid{grid-template-columns:repeat(2,minmax(0,1fr));} .buyer-intel__card--feature{grid-column:span 2;} }
@media (max-width:680px){ .buyer-intel__grid{grid-template-columns:1fr;} .buyer-intel__card--feature{grid-column:auto;} .buyer-intel__card--checklist{grid-column:auto;} }
@media (max-width:820px){ .answerbox h2{font-size:clamp(1.7rem,4.6vw,2.4rem); max-width:15ch;} .answerbox__dek{max-width:62ch;} }
@media (max-width:760px){ .answerbox__facts{grid-template-columns:1fr; border-top:none;} .answerbox__facts div{padding:.9rem 0 0; border-top:1px solid rgba(24,22,17,.14); margin-top:.9rem;} .answerbox__facts div + div{padding-left:0; border-left:none;} .answerbox__facts div:first-child{margin-top:0;} .answerbox__facts dd{font-size:.96rem;} }
@media (max-width:560px){ .hero__inner{max-width:100%;} .hero__address{font-size:clamp(2.7rem,12vw,3.7rem); line-height:0.98;} .answerbox{padding:32px 18px 38px;} .answerbox__eyebrow{font-size:.58rem; letter-spacing:.18em; margin-bottom:.7rem;} .answerbox h2{font-size:clamp(1.55rem,7vw,2.05rem); line-height:1.08; letter-spacing:-.028em; max-width:16ch;} .answerbox__dek{margin-top:.8rem; font-size:.95rem; line-height:1.55;} .answerbox__facts dt{font-size:.56rem;} }
@media (prefers-reduced-motion: reduce){ *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;} .js .reveal,.js .figrev img{opacity:1!important;transform:none!important;} }
