/* =========================================================
   RT INTELLIGENCE — Ryan Travis Luxury Real Estate
   Design tokens per Claude Build Brief v1.0, Section 5.
   Editorial, calm, restrained. Apple restraint x hospitality warmth.
   ========================================================= */

:root{
  /* ---- Color tokens (verbatim from brief) ---- */
  --rt-rich-black: #111111;
  --rt-warm-ivory: #FAF8F4;
  --rt-champagne-gold: #C6A35A;
  --rt-slate-gray: #747474;
  --rt-deep-forest: #31463E;
  --rt-white: #FFFFFF;
  --rt-soft-stone: #E7E2DA;
  --rt-pale-ivory: #F3EFE8;
  --rt-error: #8F2D2D;
  --rt-success: #315C45;
  --rt-bronze: #8C6A36;
  --rt-shadow-soft: 0 18px 55px rgba(17,17,17,.08);
  --rt-shadow-card: 0 16px 38px rgba(17,17,17,.11);

  /* ---- Accessible text variants ----
     Contrast testing found the official brand
     tokens fail AA (4.5:1) for actual paragraph-length text at some sizes:
       - Slate Gray #747474 → 4.41:1 on Warm Ivory, 4.08:1 on Pale Ivory (fails)
       - Champagne Gold #C6A35A → 4.23:1 on Deep Forest (fails)
     The official brand hex values are UNCHANGED above and still used for
     borders, buttons, large decorative text, and anywhere else contrast
     isn't the binding constraint. These two variants exist only for
     body-length copy set in gray or gold, so long-form text stays readable
     at any viewport without touching the locked brand palette. Flag to
     Ryan/brand owner if an exact-hex-only policy is preferred instead. */
  --rt-slate-gray-text: #6c6c6c;       /* 4.95:1 / 4.58:1 — passes on both ivory backgrounds */
  --rt-champagne-gold-on-forest: #ceab62; /* 4.64:1 on Deep Forest — passes */

  /* ---- Typography ----
     Brand sheet specifies Avenir Next Regular for body copy. Avenir Next is
     an Apple system font (bundled on macOS/iOS) and NOT freely licensable
     for web embedding — there is no legal way to self-host or Google-Fonts
     it. It renders natively for Mac/iPhone/iPad visitors via the font stack
     below; everyone else (most Windows/Android traffic) falls back to a
     close-match sans-serif. If exact cross-platform fidelity matters, the
     real fix is buying a web license for Avenir Next (or Avenir Next LT
     Pro) from Monotype/Linotype. */
  --rt-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --rt-font-body: "Avenir Next", "Avenir", Optima, Poppins, Inter, -apple-system, "Helvetica Neue", Arial, sans-serif;

  --rt-text-xs: clamp(0.75rem, 0.72rem + 0.1vw, 0.82rem);
  --rt-text-sm: clamp(0.875rem, 0.84rem + 0.12vw, 0.95rem);
  --rt-text-base: clamp(1rem, 0.97rem + 0.16vw, 1.125rem);
  --rt-text-lg: clamp(1.2rem, 1.08rem + 0.45vw, 1.5rem);
  --rt-text-h3: clamp(1.55rem, 1.28rem + 0.9vw, 2.2rem);
  --rt-text-h2: clamp(2rem, 1.55rem + 1.7vw, 3.35rem);
  --rt-text-h1: clamp(3rem, 2rem + 3.4vw, 6.2rem);

  /* ---- Spacing (8px base) ---- */
  --rt-space-1: 0.5rem;
  --rt-space-2: 1rem;
  --rt-space-3: 1.5rem;
  --rt-space-4: 2rem;
  --rt-space-5: 3rem;
  --rt-space-6: 4rem;
  --rt-space-7: 6rem;
  --rt-space-8: 8rem;
  --rt-content-max: 80rem;
  --rt-reading-max: 46rem;
  --rt-gutter: clamp(1.25rem, 3vw, 4rem);

  /* ---- Radius / motion ---- */
  --rt-radius: 4px;
  --rt-motion: 240ms;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}

body{
  margin:0;
  background:var(--rt-warm-ivory);
  color:var(--rt-rich-black);
  font-family:var(--rt-font-body);
  font-size:var(--rt-text-base);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--rt-font-display); font-weight:500; margin:0 0 0.6em; line-height:1.02; letter-spacing:-0.01em; }
h1{ font-size:var(--rt-text-h1); line-height:0.98; }
h2{ font-size:var(--rt-text-h2); line-height:1.02; }
h3{ font-size:var(--rt-text-h3); line-height:1.08; }
p{ margin:0 0 1.1em; max-width:var(--rt-reading-max); }
p.no-measure{ max-width:none; }
button{ font-family:inherit; cursor:pointer; }

.wrap{ max-width:var(--rt-content-max); margin:0 auto; padding:0 var(--rt-gutter); }

/* Focus visibility — never obscured by sticky elements */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--rt-deep-forest);
  outline-offset:3px;
  border-radius:2px;
}

/* Skip link */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:1000;
  background:var(--rt-rich-black); color:var(--rt-white);
  padding:14px 22px; font-family:var(--rt-font-body); font-size:var(--rt-text-sm);
}
.skip-link:focus{ left:var(--rt-space-2); top:var(--rt-space-2); }

/* ---- Eyebrow labels ---- */
.eyebrow{
  font-family:var(--rt-font-body);
  font-size:var(--rt-text-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--rt-champagne-gold);
  display:block;
  margin-bottom:var(--rt-space-2);
  font-weight:600;
}
.eyebrow.on-dark{ color:var(--rt-champagne-gold); }
/* On Deep Forest specifically, the official Champagne Gold fails AA (4.23:1) —
   use the accessible variant for this one background. */
.section-forest .eyebrow{ color:var(--rt-champagne-gold-on-forest); }

/* ---- Buttons ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:16px 30px;
  min-height:44px;
  font-family:var(--rt-font-body);
  font-size:var(--rt-text-sm);
  letter-spacing:.02em;
  border-radius:var(--rt-radius);
  border:1px solid transparent;
  transition:background var(--rt-motion) ease, color var(--rt-motion) ease, border-color var(--rt-motion) ease, opacity var(--rt-motion) ease, transform var(--rt-motion) ease, box-shadow var(--rt-motion) ease;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(17,17,17,.12); }
.btn-primary{ background:var(--rt-rich-black); color:var(--rt-warm-ivory); }
.btn-primary:hover{ background:var(--rt-deep-forest); }
.btn-secondary{ border-color:var(--rt-rich-black); color:var(--rt-rich-black); }
.btn-secondary:hover{ border-color:var(--rt-deep-forest); color:var(--rt-deep-forest); }
.btn-on-dark{ border-color:rgba(250,248,244,0.4); color:var(--rt-warm-ivory); }
.btn-on-dark:hover{ border-color:var(--rt-champagne-gold); color:var(--rt-champagne-gold); }
.btn-block{ width:100%; }

/* ---- Header ---- */
.site-header{
  background:rgba(250,248,244,.94);
  border-bottom:1px solid var(--rt-soft-stone);
  position:sticky; top:0; z-index:100;
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:0 4px 20px rgba(17,17,17,.035);
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; min-height:88px; gap:var(--rt-space-3); }
.identity-block{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.header-monogram{ width:48px; height:48px; object-fit:contain; display:block; }
.header-identity-copy{ display:block; min-width:0; }
.header-identity-copy strong{
  display:block; font-family:var(--rt-font-display); font-size:clamp(1.75rem,2.15vw,2.15rem);
  font-weight:500; line-height:.92; letter-spacing:.015em; color:var(--rt-rich-black);
}
.header-identity-copy small{
  display:block; margin-top:7px; font-family:var(--rt-font-body); font-size:.72rem;
  font-weight:500; letter-spacing:.15em; line-height:1; text-transform:uppercase; color:var(--rt-slate-gray-text);
}
.identity-name{ font-family:var(--rt-font-display); font-size:1.5rem; line-height:1.1; color:var(--rt-rich-black); }
.identity-name small{
  display:block; font-family:var(--rt-font-body); font-size:var(--rt-text-xs);
  color:var(--rt-slate-gray-text); letter-spacing:.04em; margin-top:2px; font-weight:400;
}
.identity-divider{ width:1px; height:34px; background:var(--rt-soft-stone); }
.identity-firm{ font-family:var(--rt-font-body); font-size:var(--rt-text-xs); color:var(--rt-slate-gray-text); line-height:1.4; max-width:120px; }

.nav-links{ display:flex; align-items:center; gap:var(--rt-space-4); }
.nav-links a{
  font-family:var(--rt-font-body); font-size:var(--rt-text-sm); color:var(--rt-rich-black);
  position:relative; padding:6px 0;
}
.nav-links a::before{ content:""; position:absolute; left:50%; right:50%; bottom:0; height:1px; background:var(--rt-champagne-gold); transition:left var(--rt-motion) ease,right var(--rt-motion) ease; }
.nav-links a:hover::before{ left:0; right:0; }
.nav-links a:hover, .nav-links a[aria-current="page"]{ color:var(--rt-deep-forest); }
.nav-links a[aria-current="page"]::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--rt-champagne-gold);
}
.header-cta{ display:flex; align-items:center; gap:var(--rt-space-3); }
.header-phone-group{ display:flex; flex-direction:column; align-items:stretch; gap:4px; }
.header-office-phone{ font-size:.68rem; line-height:1.2; text-align:center; color:var(--rt-slate-gray-text); text-decoration:underline; text-underline-offset:2px; }
.header-office-phone:hover{ color:var(--rt-deep-forest); }
.menu-toggle{
  display:none; background:none; border:1px solid var(--rt-soft-stone); color:var(--rt-rich-black);
  width:44px; height:44px; align-items:center; justify-content:center; border-radius:var(--rt-radius);
}
@media (max-width:1120px){
  .nav-links{ display:none; }
  .menu-toggle{ display:flex; }
  .identity-firm{ display:none; }
  .header-phone-group{ display:none; }
}
@media (max-width:680px){
  .site-header .wrap{ min-height:72px; gap:12px; }
  .header-monogram{ width:40px; height:40px; }
  .header-identity-copy strong{ font-size:1.55rem; }
  .header-identity-copy small{ font-size:.6rem; margin-top:5px; letter-spacing:.12em; }
  .header-cta{ display:none; }
  .identity-block{ min-width:0; }
}
.mobile-nav{ display:none; flex-direction:column; background:var(--rt-warm-ivory); border-bottom:1px solid var(--rt-soft-stone); }
.mobile-nav.open{ display:flex; }
.mobile-nav a{ font-family:var(--rt-font-body); font-size:var(--rt-text-base); padding:16px var(--rt-gutter); border-top:1px solid var(--rt-soft-stone); min-height:44px; display:flex; align-items:center; }

/* ---- Sections ---- */
section{ padding:var(--rt-space-7) 0; }
@media (max-width:720px){ section{ padding:var(--rt-space-6) 0; } }
.section-dark{ background:var(--rt-rich-black); color:var(--rt-warm-ivory); }
.section-dark p{ color:rgba(250,248,244,0.82); }
.section-forest{ background:var(--rt-deep-forest); color:var(--rt-warm-ivory); }
.section-forest p{ color:rgba(250,248,244,0.86); }
.section-pale{ background:var(--rt-pale-ivory); }
.lede{ font-size:var(--rt-text-lg); color:var(--rt-slate-gray-text); }
.section-dark .lede, .section-forest .lede{ color:rgba(250,248,244,0.82); }

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:var(--rt-space-6); align-items:start; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--rt-space-5); }
.grid-2 > *, .grid-3 > *{ min-width:0; }
@media (max-width:900px){ .grid-2{ grid-template-columns:1fr; } .grid-3{ grid-template-columns:1fr; } }

.rule{ height:1px; background:var(--rt-soft-stone); border:0; margin:0; }
.rule-gold{ height:1px; width:64px; background:var(--rt-champagne-gold); border:0; margin:0 0 var(--rt-space-3); }

/* ---- Hero ---- */
.hero{ padding:var(--rt-space-8) 0 var(--rt-space-7); }
.hero .wrap{ max-width:52rem; }
.hero h1{ margin-bottom:var(--rt-space-3); }
.hero-actions{ display:flex; gap:var(--rt-space-3); margin-top:var(--rt-space-4); flex-wrap:wrap; }

.home-hero{
  position:relative; isolation:isolate; min-height:clamp(660px,calc(100svh - 88px),860px);
  padding:0; display:grid; align-items:end; color:var(--rt-warm-ivory);
  background:#10191d url('../assets/hero-home.png') 58% center/cover no-repeat;
}
.home-hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,rgba(7,12,15,.52),rgba(7,12,15,.08) 58%,rgba(7,12,15,.04));
}
.home-hero-content{ width:min(1180px,calc(100% - (2 * var(--rt-gutter)))); padding-bottom:clamp(42px,7vw,84px); }
.home-hero-copy{ max-width:590px; }
.home-hero h1{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.home-hero p{ max-width:570px; margin:0; font-size:var(--rt-text-lg); color:rgba(250,248,244,.94); text-shadow:0 1px 18px rgba(0,0,0,.65); }
.home-hero .btn-primary{ background:var(--rt-warm-ivory); color:var(--rt-rich-black); }
.home-hero .btn-primary:hover{ background:var(--rt-champagne-gold); }
@media (min-width:561px){
  /* The cinematic artwork already carries the desktop headline and advisor line. */
  .home-hero p{ display:none; }
}

/* ---- Home trust ribbon ---- */
.trust-ribbon{ padding:0; background:var(--rt-pale-ivory); border-bottom:1px solid var(--rt-soft-stone); }
.trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.trust-item{ min-width:0; padding:24px clamp(18px,2.5vw,32px); border-right:1px solid var(--rt-soft-stone); }
.trust-item:last-child{ border-right:0; }
.trust-item strong{ display:block; margin-bottom:2px; font-family:var(--rt-font-display); font-size:clamp(1.2rem,1.5vw,1.45rem); font-weight:500; line-height:1.15; }
.trust-item span{ display:block; color:var(--rt-slate-gray-text); font-size:var(--rt-text-xs); letter-spacing:.08em; text-transform:uppercase; }
@media(max-width:800px){ .trust-grid{ grid-template-columns:1fr 1fr; } .trust-item:nth-child(2){ border-right:0; } .trust-item:nth-child(-n+2){ border-bottom:1px solid var(--rt-soft-stone); } }
@media(max-width:480px){ .trust-grid{ grid-template-columns:1fr; } .trust-item{ border-right:0; border-bottom:1px solid var(--rt-soft-stone); padding:18px 0; } .trust-item:last-child{ border-bottom:0; } }

.editorial-section{ position:relative; overflow:hidden; }
.editorial-section::before{ content:"RT"; position:absolute; right:-.04em; bottom:-.25em; color:rgba(198,163,90,.06); font-family:var(--rt-font-display); font-size:clamp(14rem,32vw,34rem); line-height:1; pointer-events:none; }
.editorial-split{ position:relative; z-index:1; align-items:center; gap:clamp(3rem,8vw,8rem); }

.section-heading-row{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr); gap:clamp(3rem,8vw,8rem); align-items:end; margin-bottom:var(--rt-space-5); }
.section-heading-row.compact{ margin-bottom:var(--rt-space-5); }
.section-heading-row h2{ max-width:46rem; }
.section-heading-row .lede{ margin:0; }
@media(max-width:820px){ .section-heading-row{ grid-template-columns:1fr; gap:var(--rt-space-3); } }

/* ---- Signature services ---- */
.signature-services{ background:var(--rt-warm-ivory); }
.service-grid{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--rt-soft-stone); border-left:1px solid var(--rt-soft-stone); }
.service-card{ min-width:0; min-height:380px; display:flex; flex-direction:column; padding:clamp(2rem,4vw,3.25rem); background:rgba(255,255,255,.64); border-right:1px solid var(--rt-soft-stone); border-bottom:1px solid var(--rt-soft-stone); transition:transform var(--rt-motion) ease,background var(--rt-motion) ease,box-shadow var(--rt-motion) ease; }
.service-card:hover{ z-index:1; transform:translateY(-6px); background:var(--rt-white); box-shadow:var(--rt-shadow-card); }
.service-number{ color:var(--rt-bronze); font-size:var(--rt-text-xs); font-weight:600; letter-spacing:.14em; }
.service-card h3{ margin-top:auto; font-size:clamp(1.8rem,2.5vw,2.6rem); }
.service-card p{ color:var(--rt-slate-gray-text); font-size:var(--rt-text-sm); }
.text-link{ display:inline-flex; align-items:center; gap:8px; margin-top:auto; padding-top:var(--rt-space-2); color:var(--rt-deep-forest); font-size:var(--rt-text-xs); font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.service-card .text-link span{ transition:transform var(--rt-motion) ease; }
.service-card:hover .text-link span{ transform:translateX(5px); }
@media(max-width:900px){ .service-grid{ grid-template-columns:1fr; } .service-card{ min-height:300px; } }

/* ---- Advisor standard ---- */
.advisor-standard{ position:relative; overflow:hidden; }
.advisor-standard::after{ content:""; position:absolute; inset:0 0 auto auto; width:42%; height:100%; background:radial-gradient(circle at 90% 12%,rgba(198,163,90,.12),transparent 57%); pointer-events:none; }
.standard-intro{ position:relative; z-index:1; max-width:48rem; margin-bottom:var(--rt-space-5); }
.standard-grid{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(250,248,244,.18); }
.standard-item{ padding:var(--rt-space-4) var(--rt-space-4) var(--rt-space-2) 0; }
.standard-item + .standard-item{ padding-left:var(--rt-space-4); border-left:1px solid rgba(250,248,244,.18); }
.standard-item>span{ color:var(--rt-champagne-gold); font-size:var(--rt-text-xs); letter-spacing:.14em; }
.standard-item h3{ margin-top:var(--rt-space-4); color:var(--rt-warm-ivory); }
.standard-item p{ color:rgba(250,248,244,.7); font-size:var(--rt-text-sm); }
@media(max-width:760px){ .standard-grid{ grid-template-columns:1fr; } .standard-item,.standard-item+.standard-item{ padding:var(--rt-space-4) 0; border-left:0; border-bottom:1px solid rgba(250,248,244,.18); } }

.hero-with-image .wrap{
  width:min(1180px,calc(100% - (2 * var(--rt-gutter)))); max-width:none;
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr); gap:clamp(2.5rem,7vw,7rem); align-items:center;
}
.page-hero-image{
  margin:0; position:relative; overflow:hidden; aspect-ratio:4/5;
  background:var(--rt-pale-ivory); border:1px solid rgba(198,163,90,.42);
  box-shadow:0 24px 60px rgba(17,17,17,.12);
}
.page-hero-image::after{ content:""; position:absolute; inset:14px; border:1px solid rgba(250,248,244,.48); pointer-events:none; }
.page-hero-image img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

@media (max-width:900px){
  .home-hero{ min-height:720px; background-position:66% center; }
  .home-hero::after{ background:linear-gradient(0deg,rgba(7,12,15,.84),rgba(7,12,15,.06) 68%); }
  .home-hero-copy{ max-width:520px; }
  .hero-with-image .wrap{ grid-template-columns:1fr; gap:var(--rt-space-4); }
  .page-hero-image{ width:min(100%,520px); aspect-ratio:16/10; }
  .page-hero-image img{ object-position:center 30%; }
}
@media (max-width:560px){
  .home-hero{ min-height:700px; background-position:69% center; }
  .home-hero h1{
    position:static; width:auto; height:auto; padding:0; margin:0 0 var(--rt-space-2);
    overflow:visible; clip:auto; white-space:normal; color:var(--rt-warm-ivory); font-size:clamp(2.75rem,13vw,4rem);
  }
  .home-hero p{ font-size:1rem; }
  .home-hero .hero-actions .btn{ width:100%; }
}

/* ---- Portrait and branded community artwork ---- */
.portrait-frame{
  position:relative; overflow:hidden; background:var(--rt-rich-black);
  border:1px solid rgba(198,163,90,.45); box-shadow:0 24px 60px rgba(17,17,17,.14);
}
.portrait-frame::after{
  content:""; position:absolute; inset:14px; border:1px solid rgba(198,163,90,.38); pointer-events:none;
}
.portrait-frame img{ width:100%; height:auto; display:block; }

.photo-block{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  background:linear-gradient(155deg, var(--rt-pale-ivory) 0%, var(--rt-soft-stone) 100%);
  border:1px solid var(--rt-soft-stone);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:var(--rt-space-4);
}

.community-visual{
  position:relative; isolation:isolate; aspect-ratio:16/10; overflow:hidden;
  display:flex; align-items:flex-end; padding:clamp(1.4rem,4vw,2.5rem);
  color:var(--rt-warm-ivory); background:var(--rt-deep-forest);
  border:1px solid rgba(198,163,90,.45);
}
.community-visual::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(circle at 82% 18%, rgba(198,163,90,.26), transparent 27%),
    linear-gradient(145deg, rgba(255,255,255,.05), transparent 42%),
    linear-gradient(145deg, #21362f, #111 100%);
}
.community-visual::after{
  content:"RT"; position:absolute; right:5%; top:-12%; z-index:-1;
  font-family:var(--rt-font-display); font-size:clamp(7rem,18vw,15rem); line-height:1;
  color:rgba(198,163,90,.09); letter-spacing:-.12em;
}
.community-visual-inner{ position:relative; z-index:1; }
.community-visual .community-kicker{
  display:block; margin-bottom:8px; font-size:var(--rt-text-xs); letter-spacing:.14em;
  text-transform:uppercase; color:var(--rt-champagne-gold-on-forest); font-weight:600;
}
.community-visual strong{ display:block; font-family:var(--rt-font-display); font-size:clamp(1.9rem,3.3vw,3.2rem); font-weight:500; line-height:.95; }
.community-visual--light::before{ background:linear-gradient(145deg,#455e53,#17241f); }
.community-visual--gold::before{ background:linear-gradient(145deg,#4c3d26,#15130f); }
.community-visual--slate::before{ background:linear-gradient(145deg,#4e5352,#171918); }
.community-visual--ink::before{ background:linear-gradient(145deg,#26313a,#111416); }
.community-visual--forest::before{ background:linear-gradient(145deg,#384d43,#18231f); }
.photo-block::before{
  content:""; position:absolute; inset:14px;
  border:1px solid rgba(198,163,90,0.4);
  pointer-events:none;
}
.photo-block::after{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:32%; aspect-ratio:1;
  background:url('../assets/logo/monogram-gold.png') center/contain no-repeat;
  opacity:0.15;
  pointer-events:none;
}
.photo-block span{
  position:relative; z-index:1;
  font-family:var(--rt-font-body); font-size:var(--rt-text-xs); color:var(--rt-slate-gray-text); letter-spacing:.03em; max-width:20rem;
  background:rgba(250,248,244,0.85); padding:10px 16px; border-radius:2px;
}

/* ---- Process steps ---- */
.process-step{ padding:var(--rt-space-4) 0; border-top:1px solid var(--rt-soft-stone); display:grid; grid-template-columns:5rem 1fr; gap:var(--rt-space-4); }
.process-step:last-child{ border-bottom:1px solid var(--rt-soft-stone); }
.process-num{ font-family:var(--rt-font-display); font-size:var(--rt-text-h3); color:var(--rt-champagne-gold); line-height:1; }

/* ---- Path cards (buyer/seller) ---- */
.path-card{ border:1px solid var(--rt-soft-stone); padding:var(--rt-space-5); background:var(--rt-white); box-shadow:0 8px 24px rgba(17,17,17,.035); transition:transform var(--rt-motion) ease,box-shadow var(--rt-motion) ease,border-color var(--rt-motion) ease; }
.path-card:hover{ transform:translateY(-4px); box-shadow:var(--rt-shadow-card); border-color:rgba(198,163,90,.55); }
.path-card h3{ margin-bottom:var(--rt-space-2); }

/* ---- Area cards ---- */
.area-card{ border:1px solid var(--rt-soft-stone); padding:var(--rt-space-4); background:var(--rt-white); transition:transform var(--rt-motion) ease,box-shadow var(--rt-motion) ease,border-color var(--rt-motion) ease; }
.area-card:hover{ transform:translateY(-5px); box-shadow:var(--rt-shadow-card); border-color:rgba(198,163,90,.58); }
.area-card h3{ font-size:var(--rt-text-h3); margin-bottom:var(--rt-space-2); }
.section-forest .area-card{ color:var(--rt-rich-black); }
.section-forest .area-card p{ color:var(--rt-slate-gray-text); }

/* ---- Resource showcase ---- */
.resource-showcase{ background:linear-gradient(180deg,var(--rt-warm-ivory),var(--rt-pale-ivory)); }
.resource-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--rt-space-3); }
.resource-card{ min-width:0; min-height:300px; display:flex; flex-direction:column; padding:var(--rt-space-4); background:var(--rt-white); border:1px solid var(--rt-soft-stone); box-shadow:0 8px 25px rgba(17,17,17,.035); transition:transform var(--rt-motion) ease,box-shadow var(--rt-motion) ease,border-color var(--rt-motion) ease; }
.resource-card:hover{ transform:translateY(-5px); box-shadow:var(--rt-shadow-card); border-color:rgba(198,163,90,.58); }
.resource-icon{ width:48px; height:48px; display:grid; place-items:center; margin-bottom:var(--rt-space-5); border:1px solid rgba(198,163,90,.55); color:var(--rt-bronze); font-family:var(--rt-font-display); font-size:1.45rem; }
.resource-card h3{ font-size:var(--rt-text-lg); }
.resource-card p{ color:var(--rt-slate-gray-text); font-size:var(--rt-text-sm); }
.resource-card--dark{ background:var(--rt-deep-forest); color:var(--rt-warm-ivory); border-color:var(--rt-deep-forest); }
.resource-card--dark p{ color:rgba(250,248,244,.72); }
.resource-card--dark .text-link{ color:var(--rt-champagne-gold-on-forest); }
@media(max-width:1050px){ .resource-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .resource-grid{ grid-template-columns:1fr; } .resource-card{ min-height:260px; } }

.quote-banner{ background:var(--rt-pale-ivory); padding:clamp(4.5rem,9vw,8rem) 0; text-align:center; border-top:1px solid var(--rt-soft-stone); border-bottom:1px solid var(--rt-soft-stone); }
.quote-banner blockquote{ max-width:64rem; margin:0 auto; font-family:var(--rt-font-display); font-size:clamp(2.2rem,4.6vw,4.8rem); font-weight:500; line-height:1.08; }
.quote-banner p{ max-width:none; margin:var(--rt-space-4) 0 0; color:var(--rt-slate-gray-text); font-size:var(--rt-text-xs); letter-spacing:.15em; text-transform:uppercase; }

/* ---- Communities directory ---- */
.communities-hero{ position:relative; overflow:hidden; max-width:none; padding-bottom:var(--rt-space-7); background:linear-gradient(145deg,var(--rt-pale-ivory),var(--rt-warm-ivory)); }
.communities-hero::after{ content:"RT"; position:absolute; right:-.04em; top:-.16em; color:rgba(198,163,90,.08); font-family:var(--rt-font-display); font-size:clamp(15rem,36vw,36rem); line-height:1; pointer-events:none; }
.communities-hero .wrap{ position:relative; z-index:1; max-width:72rem; margin-left:max(0px,calc((100vw - var(--rt-content-max))/2)); }
.communities-hero h1{ max-width:48rem; }
.community-directory{ padding-top:var(--rt-space-6); }
.community-grid-pro{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--rt-space-4); }
.community-card-pro{ padding:0; display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1fr); overflow:hidden; color:var(--rt-rich-black); }
.community-card-pro .community-visual{ height:100%; min-height:310px; aspect-ratio:auto; border:0; }
.community-card-copy{ display:flex; flex-direction:column; padding:clamp(1.75rem,3vw,2.6rem); }
.community-card-copy h2{ font-size:var(--rt-text-h3); }
.community-card-copy p{ color:var(--rt-slate-gray-text); font-size:var(--rt-text-sm); }
.community-card-copy .text-link{ margin-top:auto; }
.community-card-pro:last-child{ grid-column:1/-1; max-width:calc(50% - var(--rt-space-2)); justify-self:center; }
.guidance-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.8fr); gap:clamp(3rem,8vw,8rem); align-items:end; }
.guidance-grid .lede{ margin-bottom:0; }
@media(max-width:1050px){ .community-grid-pro{ grid-template-columns:1fr; } .community-card-pro:last-child{ grid-column:auto; max-width:none; justify-self:stretch; } }
@media(max-width:720px){ .community-card-pro{ grid-template-columns:1fr; } .community-card-pro .community-visual{ min-height:240px; aspect-ratio:16/10; } .guidance-grid{ grid-template-columns:1fr; gap:var(--rt-space-3); } }

/* ---- Source/as-of metadata ---- */
.source-note{
  font-family:var(--rt-font-body); font-size:var(--rt-text-xs); color:var(--rt-slate-gray-text);
  border-left:2px solid var(--rt-soft-stone); padding-left:var(--rt-space-2); margin-top:var(--rt-space-2);
}

/* ---- Phone pair (locked format) ---- */
.phone-pair{ display:flex; flex-wrap:wrap; gap:var(--rt-space-1) var(--rt-space-4); align-items:baseline; font-family:var(--rt-font-body); }
.phone-pair a{ font-size:var(--rt-text-sm); }
.phone-pair .direct{ font-weight:600; }
.phone-pair .label{ color:var(--rt-slate-gray-text); margin-right:4px; }

/* ---- Forms ---- */
.form-card{ background:var(--rt-white); border:1px solid var(--rt-soft-stone); padding:var(--rt-space-5); border-radius:var(--rt-radius); }
.section-dark .form-card, .section-forest .form-card{ background:rgba(250,248,244,0.05); border-color:rgba(250,248,244,0.2); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--rt-space-3); margin-bottom:var(--rt-space-3); }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.field{ margin-bottom:var(--rt-space-3); }
.field label{ display:block; font-family:var(--rt-font-body); font-size:var(--rt-text-xs); letter-spacing:.03em; color:var(--rt-rich-black); margin-bottom:6px; font-weight:600; }
.section-dark .field label, .section-forest .field label{ color:var(--rt-warm-ivory); }
.field .hint{ font-weight:400; color:var(--rt-slate-gray-text); text-transform:none; letter-spacing:0; }
.field input, .field select, .field textarea{
  width:100%; padding:13px 14px; border:1px solid var(--rt-soft-stone); border-radius:var(--rt-radius);
  font-family:var(--rt-font-body); font-size:var(--rt-text-base); background:var(--rt-white); color:var(--rt-rich-black);
  min-height:44px;
}
.field textarea{ min-height:120px; resize:vertical; }
.field-error{ display:none; color:var(--rt-error); font-size:var(--rt-text-xs); margin-top:6px; }
.field-error.show{ display:block; }
.field.has-error input, .field.has-error select, .field.has-error textarea{ border-color:var(--rt-error); }
.consent-row{ display:flex; gap:10px; align-items:flex-start; margin:var(--rt-space-3) 0; }
.consent-row input{ width:20px; height:20px; margin-top:2px; flex:none; }
.consent-row label{ font-size:var(--rt-text-xs); color:var(--rt-slate-gray-text); font-weight:400; }
.section-dark .consent-row label, .section-forest .consent-row label{ color:rgba(250,248,244,0.75); }
.consent-row a{ text-decoration:underline; }
.form-legal{ font-family:var(--rt-font-body); font-size:var(--rt-text-xs); color:var(--rt-slate-gray-text); margin-top:var(--rt-space-3); }
.section-dark .form-legal, .section-forest .form-legal{ color:rgba(250,248,244,0.65); }
.form-status{ font-family:var(--rt-font-body); font-size:var(--rt-text-sm); margin-top:var(--rt-space-3); display:none; padding:12px 14px; border-radius:var(--rt-radius); }
.form-status.show{ display:block; }
.form-status.ok{ background:rgba(49,92,69,0.1); color:var(--rt-success); border:1px solid var(--rt-success); }
.form-status.err{ background:rgba(143,45,45,0.08); color:var(--rt-error); border:1px solid var(--rt-error); }
.form-status a{ text-decoration:underline; }
.form-error-summary{
  display:none; background:rgba(143,45,45,0.06); border:1px solid var(--rt-error); border-radius:var(--rt-radius);
  padding:var(--rt-space-3); margin-bottom:var(--rt-space-3);
}
.form-error-summary.show{ display:block; }
.form-error-summary h3{ font-family:var(--rt-font-body); font-size:var(--rt-text-sm); color:var(--rt-error); margin-bottom:8px; font-weight:600; }
.form-error-summary ul{ margin:0; padding-left:20px; list-style:disc; }
.form-error-summary a{ font-size:var(--rt-text-sm); text-decoration:underline; }

/* Honeypot — visually hidden, still reachable by bots, not by screen readers */
.hp-field{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* ---- Compliance footer ---- */
.site-footer{ background:var(--rt-rich-black); color:rgba(250,248,244,0.85); padding:var(--rt-space-6) 0 var(--rt-space-4); }
.footer-brand-stack{
  width:min(100%,460px); display:flex; flex-direction:column; align-items:center;
  gap:30px; margin:0 auto var(--rt-space-5); padding-bottom:var(--rt-space-4);
  border-bottom:1px solid rgba(198,163,90,.32);
}
.footer-rt-logo{ display:block; width:100%; height:auto; }
.footer-benchmark-card{
  display:inline-flex; align-items:center; justify-content:center; width:85%;
  padding:0; background:transparent; border:0;
}
.footer-benchmark-logo{ display:block; width:100%; height:auto; }
.footer-identity{ display:flex; flex-wrap:wrap; gap:var(--rt-space-5); padding-bottom:var(--rt-space-4); border-bottom:1px solid rgba(250,248,244,0.14); }
.footer-block h4{ font-family:var(--rt-font-body); font-size:var(--rt-text-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--rt-champagne-gold); margin-bottom:10px; font-weight:600; }
.footer-block p, .footer-block a{ font-size:var(--rt-text-sm); }
.footer-block li{ margin-bottom:6px; }
.footer-legal{ margin-top:var(--rt-space-4); }
.footer-legal p{ font-size:var(--rt-text-xs); color:rgba(250,248,244,0.6); max-width:none; }
.footer-links{ display:flex; flex-wrap:wrap; gap:var(--rt-space-3); margin-top:var(--rt-space-3); }
.footer-links a{ font-size:var(--rt-text-xs); text-decoration:underline; color:rgba(250,248,244,0.75); }
.eho-block{ display:flex; align-items:center; gap:10px; font-family:var(--rt-font-body); font-size:var(--rt-text-xs); color:rgba(250,248,244,0.7); margin-top:var(--rt-space-3); }
.eho-icon{ flex:0 0 auto; width:40px; height:40px; color:var(--rt-warm-ivory); filter:invert(1); opacity:.92; }
.eho-badge{ border:1px solid rgba(250,248,244,0.35); padding:4px 8px; border-radius:2px; font-size:10px; letter-spacing:.06em; }

/* ---- Reveal on scroll (understated, opacity/translate only) ---- */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity 520ms ease, transform 520ms ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---- Breadcrumbs ---- */
.breadcrumb{ font-family:var(--rt-font-body); font-size:var(--rt-text-xs); color:var(--rt-slate-gray-text); margin-bottom:var(--rt-space-2); }
.breadcrumb a{ text-decoration:underline; }
.breadcrumb .current{ color:var(--rt-rich-black); }

/* ---- Utility ---- */
.center{ text-align:center; }
.mt-0{ margin-top:0; }
.visually-hidden{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
