/* Riverview — mobile refinement pass (shared, loaded last). */

/* Global: no horizontal overflow, ever. */
html, body { overflow-x: hidden; max-width: 100%; }
img, video, svg { max-width: 100%; height: auto; }

@media (max-width: 720px) {
  /* ---------- Base type ---------- */
  body { font-size: 15px; line-height: 1.6; -webkit-text-size-adjust: 100%; }
  p { font-size: 15px; line-height: 1.6; }

  /* ---------- Nav: single row, wordmark + register, nothing else ---------- */
  .nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 18px !important;
    gap: 12px !important;
    box-shadow: 0 1px 0 rgba(255,255,255,0.05), 0 8px 24px rgba(0,0,0,0.35);
  }
  /* Hide desktop menus & side labels on phones */
  .nav-links,
  .nav-elite, .nav-elite-divider, .nav-elite-eyebrow,
  .nav-logo-sub, .nav-logo-by { display: none !important; }
  /* Hide text-only spans inside .nav-logo (e.g. "Caledonia" label) but keep
     wrappers that contain the wordmark image. */
  .nav-logo > span:not(:has(img)) { display: none !important; }
  .nav-logo-sub, .nav-logo-by { display: none !important; }

  .nav-logo { flex: 0 0 auto !important; gap: 0 !important; }
  .nav-logo img, .nav-logo-img {
    height: 22px !important;
    width: auto !important;
    display: block !important;
    filter: brightness(0) invert(1);
    opacity: 0.98;
  }

  /* Register pill — refined, no underline */
  .nav-btn, .nav-cta, a.nav-btn, a.nav-cta {
    display: inline-flex !important;
    align-items: center;
    padding: 8px 16px !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase;
    text-decoration: none !important;
    border-radius: 999px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    background: var(--accent, #9CAF88) !important;
    color: var(--primary, #0A0F1F) !important;
  }
  /* Back-to-home style link on register/thank-you */
  .nav-back {
    font-size: 10px !important;
    letter-spacing: 0.18em !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    color: rgba(255,255,255,0.75) !important;
  }

  /* ---------- Section padding: restore, don't zero it out ---------- */
  section { padding-left: 20px !important; padding-right: 20px !important; }
  .shell, .shell-wide, .container, .anchor-inner, .hero-strip, .hero-content {
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
  /* Full-bleed backgrounds keep their edges; only pad inner content */
  section.full-bleed, section[data-fullbleed] { padding-left: 0 !important; padding-right: 0 !important; }

  /* ---------- Hero: kill dead space, keep image behind copy ---------- */
  .hero, .hero-home, .hero-strip {
    min-height: 0 !important;
    padding-top: 80px !important;
    padding-bottom: 40px !important;
  }
  .hero-content { padding-top: 0 !important; }

  /* Hero eyebrow pill sits inline */
  .hero-pill, .hero-elite-badge, .hero-eyebrow-pill {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100%;
    padding: 5px 12px;
    margin-bottom: 18px;
    white-space: normal;
  }
  .hero-pill-txt { font-size: 10px; letter-spacing: 0.14em; }

  /* Headlines */
  .hero-content h1, .hero h1, .hero-strip h1 {
    font-size: clamp(34px, 9.2vw, 52px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.02em !important;
  }
  .hero-tagline { font-size: 15px !important; margin-bottom: 12px !important; }
  .hero-sub, .hero-strip p { font-size: 14.5px !important; line-height: 1.6 !important; }

  /* Stack hero buttons full-width */
  .hero-btns { flex-direction: column; align-items: stretch; gap: 10px; margin-top: 24px; }
  .hero-btns .btn-primary, .hero-btns .btn-outline-white, .hero-btns a { width: 100%; justify-content: center; }

  /* Hero stat row — pin to bottom of hero rather than mid-image, and shrink */
  .hero-stats {
    gap: 14px !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    display: grid !important;
  }
  .hero-stats .stat-v, .hero-stats .priced-num {
    font-size: clamp(20px, 6vw, 26px) !important;
    overflow-wrap: anywhere;
  }
  .hero-stats .stat-k, .hero-stats .stat-l { font-size: 9.5px !important; letter-spacing: 0.18em !important; }
  .stat-v-narrow { font-size: 18px !important; }

  /* Kill the duplicate sticky CTA on home; hero CTA is right there */
  .sticky-mobile { display: none !important; }

  /* ---------- Editorial anchor figures ($130K etc.) ---------- */
  .anchor-fig, .fig-huge, .fin-figure, .incentive-hero-fig,
  [class*="anchor-num"], [class*="anchor-fig"] {
    font-size: clamp(48px, 15vw, 88px) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.03em !important;
    overflow-wrap: anywhere;
  }

  /* Numbered/roman section marks shouldn't hang off the edge */
  .sec-num, .sec-mark, .roman, [class*="roman"], [class*="sec-num"] {
    margin-left: 0 !important;
    left: auto !important;
    position: static !important;
  }

  /* Trust strip on register: 2x2 stays readable */
  .trust-cell { padding: 18px 14px !important; }
  .trust-cell .v { font-size: 22px !important; }
  .trust-cell .v em { font-size: 14px !important; }
  .trust-cell .k { font-size: 9px !important; letter-spacing: 0.22em !important; }

  /* Cards / boxed content shouldn't touch viewport edges */
  .anchor, .anchor-box, .card, .box, .rebate-row { margin-left: 0 !important; margin-right: 0 !important; }
}

/* Very narrow phones (iPhone SE etc.) */
@media (max-width: 380px) {
  .hero-content h1, .hero h1, .hero-strip h1 { font-size: 30px !important; }
  .nav-btn, .nav-cta { padding: 7px 13px !important; font-size: 10px !important; }
  .nav-logo img, .nav-logo-img { height: 20px !important; }
}

/* ============================================================
   Mobile pop — sticky bottom action bar + refined nav on scroll
   ============================================================ */

/* Nav shrink + glass on scroll (all viewports) */
nav.nav { transition: padding .28s ease, background-color .28s ease, box-shadow .28s ease, backdrop-filter .28s ease; }
nav.nav.is-scrolled {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  background: rgba(10, 15, 31, 0.72) !important;
  backdrop-filter: saturate(140%) blur(18px);
  -webkit-backdrop-filter: saturate(140%) blur(18px);
  box-shadow: 0 8px 28px rgba(0,0,0,0.35), 0 1px 0 rgba(255,255,255,0.06);
}
nav.nav.is-scrolled .nav-logo img,
nav.nav.is-scrolled .nav-logo-img { height: 20px !important; transition: height .28s ease; }

/* Subtle press feedback on the header register pill */
.nav-btn, .nav-cta {
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  box-shadow: 0 6px 18px -8px rgba(156, 175, 136, 0.55);
}
.nav-btn:active, .nav-cta:active { transform: scale(0.97); }

/* Smooth in-page anchors */
html { scroll-behavior: smooth; }

/* ---------- Sticky mobile dock (Register + Call) ---------- */
.rv-dock {
  position: fixed;
  left: 12px; right: 12px;
  bottom: max(12px, env(safe-area-inset-bottom));
  z-index: 95;
  display: none;
  gap: 10px;
  padding: 8px;
  border-radius: 999px;
  background: rgba(10, 15, 31, 0.82);
  backdrop-filter: saturate(160%) blur(18px);
  -webkit-backdrop-filter: saturate(160%) blur(18px);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 18px 44px rgba(0,0,0,0.55), 0 2px 0 rgba(255,255,255,0.04) inset;
  animation: rv-dock-in .5s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes rv-dock-in {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.rv-dock-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 46px;
  border-radius: 999px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform .18s ease, background-color .2s ease;
}
.rv-dock-btn:active { transform: scale(0.97); }
.rv-dock-primary {
  flex: 1 1 auto;
  background: var(--accent, #9CAF88);
  color: var(--primary, #0A0F1F);
}
.rv-dock-ghost {
  flex: 0 0 46px;
  width: 46px;
  background: rgba(255,255,255,0.06);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.14);
}
@media (max-width: 720px) {
  .rv-dock { display: flex; }
  body.has-rv-dock { padding-bottom: 84px; }
  /* Kill the older per-page sticky-mobile — dock replaces it site-wide */
  .sticky-mobile { display: none !important; }
}

/* ============ Register Prompt Modal (all viewports) ============ */
.rv-prompt{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .28s ease}
.rv-prompt.is-open{opacity:1;pointer-events:auto}
.rv-prompt-backdrop{position:absolute;inset:0;background:rgba(10,15,31,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.rv-prompt-card{position:relative;max-width:460px;width:100%;background:#0A0F1F;color:#F5F1E8;border:1px solid rgba(156,175,136,.28);border-radius:6px;padding:36px 32px 28px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6),0 0 0 1px rgba(245,241,232,.04) inset;transform:translateY(14px) scale(.98);transition:transform .32s cubic-bezier(.2,.7,.2,1)}
.rv-prompt.is-open .rv-prompt-card{transform:translateY(0) scale(1)}
.rv-prompt-x{position:absolute;top:12px;right:12px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(245,241,232,.18);color:#F5F1E8;border-radius:999px;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.rv-prompt-x:hover{background:rgba(245,241,232,.08);border-color:rgba(245,241,232,.32)}
.rv-prompt-eyebrow{font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#9CAF88;margin-bottom:14px}
.rv-prompt-title{font-family:Fraunces,'Playfair Display',Georgia,serif;font-weight:400;font-size:clamp(24px,4.2vw,30px);line-height:1.15;letter-spacing:-.01em;margin:0 0 14px;color:#F5F1E8}
.rv-prompt-sub{font-family:Inter,system-ui,sans-serif;font-size:14.5px;line-height:1.55;color:rgba(245,241,232,.72);margin:0 0 22px}
.rv-prompt-sub strong{color:#9CAF88;font-weight:600}
.rv-prompt-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.rv-prompt-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#9CAF88;color:#0A0F1F;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:15px 22px;border-radius:3px;text-decoration:none;transition:transform .18s ease,background .18s ease,box-shadow .18s ease;box-shadow:0 10px 24px -12px rgba(156,175,136,.6)}
.rv-prompt-cta:hover{background:#adc19a;transform:translateY(-1px)}
.rv-prompt-cta:active{transform:translateY(0) scale(.99)}
.rv-prompt-ghost{background:transparent;border:none;color:rgba(245,241,232,.55);font-family:Inter,system-ui,sans-serif;font-size:12.5px;letter-spacing:.08em;padding:8px;cursor:pointer;transition:color .18s ease}
.rv-prompt-ghost:hover{color:#F5F1E8}
.rv-prompt-foot{font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.06em;color:rgba(245,241,232,.4);text-align:center;border-top:1px solid rgba(245,241,232,.08);padding-top:14px}
@media (max-width:520px){.rv-prompt-card{padding:30px 22px 22px}}
