/* ═══════════════════════════════════════════════════════
   RYAN RENTALS MANAGEMENT SOLUTIONS — Main Stylesheet
   Design tokens: Navy #0A2540 · Gold #C9A84C · Teal #1a7a6e · Cream #F5F2EE
═══════════════════════════════════════════════════════ */

:root {
  /* ── Color: core brand ── */
  --navy:        #0A2540;   /* midnight navy */
  --navy2:       #0d2d4a;   /* secondary navy, gradients */
  --navy-black:  #071a2e;   /* near-black navy, deepest panels */
  --gold:        #C9A84C;   /* Ryan Rentals gold */
  --bronze:      #9C7A3C;   /* muted bronze, secondary accent */
  --teal:        #1a7a6e;   /* restrained teal accent */
  --fp-blue:     #3fc6ff;   /* cool-blue glow, interactive/supporting */
  --cream:       #F5F2EE;   /* warm ivory surface */
  --white:       #ffffff;

  /* ── Color: text & borders ── */
  --text:        #2c2c2c;
  --text-muted:  #6b6b6b;
  --text-on-dark: rgba(255,255,255,.85);
  --text-on-dark-muted: rgba(255,255,255,.6);
  --border:      #d8d3cb;
  --border-soft: #ece8e1;
  --border-dark: rgba(255,255,255,.18);

  /* ── Shadow & glow ── */
  --shadow-sm: 0 2px 8px rgba(10,37,64,.08);
  --shadow-md: 0 8px 22px rgba(10,37,64,.14);
  --shadow-lg: 0 16px 38px rgba(10,37,64,.22);
  --shadow-xl: 0 20px 50px rgba(0,0,0,.6);
  --glow-gold: 0 0 0 1px rgba(201,168,76,.35), 0 0 26px 4px rgba(201,168,76,.4);
  --glow-blue: 0 0 0 1px rgba(63,198,255,.3), 0 0 20px 3px rgba(63,198,255,.32);

  /* ── Spacing scale ── */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-7: 32px; --space-8: 48px;
  --space-9: 64px; --space-10: 96px;

  /* ── Radii ── */
  --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 22px; --radius-pill: 999px;

  /* ── Typography scale (fluid, used with clamp() at call sites) ── */
  --font-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-sans:  'Segoe UI', system-ui, sans-serif;
  --fs-eyebrow: .74rem;
  --fs-body:    .9rem;
  --fs-h3: clamp(1.15rem, 2.4vw, 1.4rem);
  --fs-h2: clamp(1.6rem, 4vw, 2.3rem);
  --fs-h1: clamp(2.1rem, 6vw, 3.6rem);

  /* ── Motion ── */
  --transition-fast: .15s ease;
  --transition-med:  .25s cubic-bezier(.22,1,.36,1);
  --transition-slow: .5s cubic-bezier(.22,1,.36,1);

  /* ── Z-index layers ── */
  --z-sticky-header: 50;
  --z-bottom-nav: 40;
  --z-float-call: 45;
  --z-drawer: 200;
  --z-lang-popover: 60;
  --z-modal: 500;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-x: hidden; width: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 600;
  background: var(--gold);
  color: var(--navy);
  font-weight: 800;
  font-size: .85rem;
  padding: 12px 20px;
  border-radius: 0 0 10px 0;
  text-decoration: none;
}
.skip-link:focus {
  left: 0;
}

body {
  font-family: 'Segoe UI', system-ui, sans-serif;
  background: var(--cream);
  color: var(--text);
  min-height: 100vh;
  padding-bottom: 56px;
  overflow-x: hidden;
  width: 100%;
}
@media (min-width: 768px) { body { padding-bottom: 0; } }

/* ── SPA Views ── */
.view { display: none; }
.view.active { display: block; animation: fadeUp .2s ease both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; } }
@keyframes rr-spin { to { transform: rotate(360deg); } }
#submitBtn[disabled] { opacity: .7; cursor: not-allowed; }

/* ── Utility bar ──
   Compact navy bar above the white header. Mobile: email on its own
   row, Language control centered on a second, shorter row. Desktop
   (>=700px): both sit in a single row, email left / language right. ── */
.util-bar { background: var(--navy); padding: 7px 16px; }
.util-controls {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 4px 10px; width: 100%;
}
.util-row-break { flex-basis: 100%; width: 0; height: 0; margin: 0; }

.util-email-btn {
  display: inline-flex; align-items: center;
  font-weight: 600; font-size: .78rem;
  text-decoration: none; white-space: nowrap;
  color: rgba(255,255,255,.85);
  max-width: 240px; overflow: hidden; text-overflow: ellipsis;
  transition: color .15s;
}
.util-email-btn:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.util-email-btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 2px; }

/* ── Language control: plain-text "English | Español" trigger + popover
   limited to exactly English / Español / More languages ── */
.lang-menu-wrap { position: relative; flex-shrink: 0; }
.lang-menu-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: none; padding: 4px 2px;
  color: rgba(255,255,255,.85);
  font-weight: 600; font-size: .78rem; font-family: inherit;
  cursor: pointer; white-space: nowrap;
}
.lang-menu-btn:hover { color: #fff; }
.lang-menu-btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 2px; }
.lang-menu-btn[aria-expanded="true"] { color: #fff; }
.lang-current { transition: color .15s, font-weight .15s; }
.lang-current.active { color: var(--gold); font-weight: 800; }
.lang-sep { margin: 0 6px; color: rgba(255,255,255,.35); font-weight: 400; }
.lang-menu-chev { transition: transform .15s ease; flex-shrink: 0; margin-left: 2px; }
.lang-menu-btn[aria-expanded="true"] .lang-menu-chev { transform: rotate(180deg); }

.lang-menu-popover {
  position: absolute; top: calc(100% + 8px); right: 0;
  min-width: 190px; max-width: calc(100vw - 32px);
  background: #fff; border-radius: 12px;
  box-shadow: 0 12px 28px rgba(10,37,64,.28), 0 2px 8px rgba(10,37,64,.14);
  padding: 6px; z-index: 60;
}
.lang-menu-popover[hidden] { display: none; }
.lang-menu-item {
  position: relative;
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; text-align: left;
  padding: 10px 12px; border-radius: 8px;
  background: none; border: none; cursor: pointer;
  font-family: inherit; font-weight: 600; font-size: .84rem; color: var(--navy);
  transition: background-color .12s;
}
button.lang-menu-item:hover { background: var(--cream); }
button.lang-menu-item:focus-visible { outline: 3px solid var(--gold); outline-offset: -2px; }
.lang-menu-check { opacity: 0; color: var(--gold); flex-shrink: 0; }
.lang-menu-item[aria-checked="true"] { color: var(--navy); font-weight: 800; background: var(--cream); }
.lang-menu-item[aria-checked="true"] .lang-menu-check { opacity: 1; }

@media (min-width: 700px) {
  .util-bar { padding: 7px 16px; }
  .util-controls { flex-wrap: nowrap; justify-content: space-between; }
  .util-row-break { display: none; }
  .lang-menu-popover { right: 0; left: auto; }
}

/* ── Floating call button ──
   Always visible while scrolling. Sits above the fixed bottom nav on
   mobile (bottom nav is 56px tall) and respects the iOS safe area. */
.float-call {
  position: fixed;
  right: 16px;
  bottom: calc(56px + 14px + env(safe-area-inset-bottom, 0px));
  z-index: 45;
  display: flex; align-items: center; gap: 8px;
  height: 52px; width: 52px; padding: 0;
  border-radius: 50%;
  background: var(--gold); color: var(--navy);
  box-shadow: 0 8px 20px rgba(10,37,64,.3), 0 2px 6px rgba(10,37,64,.18);
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease;
  overflow: hidden;
  white-space: nowrap;
}
.float-call svg { flex-shrink: 0; margin: 0 auto; }
.float-call-text { display: none; }
.float-call:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(10,37,64,.36), 0 3px 8px rgba(10,37,64,.2); }
.float-call:active { transform: scale(.96); }
.float-call:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .float-call { transition: none; } }

@media (min-width: 768px) {
  .float-call {
    bottom: 24px;
    width: auto; height: 50px;
    padding: 0 22px 0 18px;
    border-radius: 99px;
  }
  .float-call-text { display: inline; font-weight: 800; font-size: .86rem; }
  .float-call-num { font-weight: 700; }
}
@media (min-width: 768px) and (max-width: 999px) {
  .float-call-num { display: none; }
}

/* ── Header ── */
#hdr {
  background: #fff; border-bottom: 2px solid var(--gold);
  position: sticky; top: 0; z-index: 50;
  box-shadow: 0 2px 12px rgba(10,37,64,.08);
}
.hdr-inner {
  max-width: 1100px; margin: 0 auto; padding: 12px 16px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-logo-wrap {
  width: 64px; height: 44px;           /* matches 1344:896 ≈ 3:2 ratio */
  border-radius: 8px;
  border: 2px solid var(--gold);
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  padding: 3px;
}
.brand-logo-wrap img {
  width: 100%; height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}
.brand-text p:first-child { font-weight: 700; font-size: .9rem; color: var(--navy); }
.brand-text p:last-child { font-size: .67rem; color: #888; text-transform: uppercase; letter-spacing: .06em; }
.desk-nav { display: none; }
@media (min-width: 768px) { .desk-nav { display: flex; align-items: center; } .ham-btn { display: none; } }
.dnav-btn {
  padding: 8px 14px; font-size: .78rem; font-weight: 600; color: #666;
  background: none; border: none; cursor: pointer;
  border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; white-space: nowrap;
}
.dnav-btn.active { color: var(--navy); border-bottom-color: var(--gold); }
.dnav-btn:hover  { color: var(--navy); }
.dnav-cta {
  margin-left: var(--space-2, 8px);
  padding: 9px 20px;
  font-size: .78rem; font-weight: 700;
  color: var(--navy); background: var(--gold);
  border: 2px solid var(--gold); border-radius: var(--radius-pill, 999px);
  cursor: pointer; white-space: nowrap;
  transition: background-color var(--transition-fast, .15s ease), transform var(--transition-fast, .15s ease);
}
.dnav-cta:hover { background: #e0c169; }
.dnav-cta:active { transform: scale(.97); }
.dnav-cta:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
.ham-btn {
  background: none; border: none; cursor: pointer; padding: 6px;
  display: flex; flex-direction: column; gap: 5px;
}
.ham-btn span { display: block; width: 22px; height: 2px; background: var(--navy); border-radius: 2px; transition: all .25s; }
.ham-btn.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.ham-btn.open span:nth-child(2) { opacity: 0; }
.ham-btn.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* ── Slide drawer ── */
#mDraw { position: fixed; inset: 0; z-index: 200; pointer-events: none; }
#mDraw.open { pointer-events: all; }
#drawOv { position: absolute; inset: 0; background: transparent; transition: background .25s; }
#mDraw.open #drawOv { background: rgba(0,0,0,.5); }
#drawPanel {
  position: absolute; top: 0; right: -300px; width: 280px; height: 100%;
  background: #fff; transition: right .28s cubic-bezier(.4,0,.2,1);
  overflow-y: auto; box-shadow: -4px 0 24px rgba(0,0,0,.2);
}
#mDraw.open #drawPanel { right: 0; }
.draw-hdr { background: var(--navy); padding: 20px 16px; display: flex; align-items: center; gap: 10px; position: relative; }
.draw-hdr img { width: 40px; height: 40px; border-radius: 50%; border: 2px solid var(--gold); object-fit: cover; }
.draw-hdr-text p:first-child { color: #fff; font-weight: 700; font-size: .84rem; }
.draw-hdr-text p:last-child { color: var(--gold); font-size: .65rem; text-transform: uppercase; letter-spacing: .06em; }
.draw-close { position: absolute; top: 14px; right: 14px; background: rgba(255,255,255,.18); border: none; border-radius: 50%; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #fff; font-size: .9rem; }
.draw-item { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; font-weight: 600; font-size: .88rem; color: var(--navy); border-bottom: 1px solid #f0ece6; cursor: pointer; transition: background .12s; user-select: none; }
.draw-item-left { display: flex; align-items: center; gap: 12px; }
.draw-icon { flex-shrink: 0; color: #9a9488; transition: color .12s; }
.draw-item:hover .draw-icon, .draw-item.active .draw-icon { color: var(--gold); }
.draw-item:hover, .draw-item.active { background: #f5f2ee; color: var(--gold); }
.draw-call-btn {
  display: flex; align-items: center; justify-content: center;
  width: 100%; gap: 6px;
  background: var(--gold); color: var(--navy);
  font-weight: 800; font-size: .86rem;
  padding: 12px; border-radius: 10px;
  text-decoration: none;
}
.draw-call-btn:hover { opacity: .9; }

/* ── Bottom nav ── */
#bottomNav {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 40;
  background: #fff; border-top: 1px solid #e5e0d8;
  display: grid;
  grid-template-columns: repeat(6, 1fr);  /* exactly 6 equal columns */
  height: 56px;
}
@media (min-width: 768px) { #bottomNav { display: none; } }
.bnav {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 1px;
  background: none; border: none; cursor: pointer; color: #999;
  font-size: .5rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: .02em; transition: color .15s;
  padding: 0 2px; overflow: hidden; min-width: 0;
  white-space: nowrap;
}
.bnav.active { color: var(--navy); }
.bnav svg { width: 18px; height: 18px; flex-shrink: 0; }
/* at very narrow widths shrink label text further */
@media (max-width: 359px) {
  .bnav { font-size: .44rem; letter-spacing: 0; }
  .bnav svg { width: 16px; height: 16px; }
}

/* ── Shared section helpers ── */
.section-label { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--teal); }
.section-title { font-size: 1.9rem; font-weight: 800; color: var(--navy); line-height: 1.15; }

/* ── Resource category tab grid ── */
.res-tab-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 20px;
}
@media (min-width: 540px) {
  .res-tab-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 768px) {
  .res-tab-grid { grid-template-columns: repeat(6, 1fr); }
}
/* 7 categories does not divide evenly at 2, 3, or 6 columns — rather than
   leave "Transportation" stranded alone in its own row at every
   breakpoint, give it a deliberate full-width closing row instead. */
.res-tab-btn:last-child {
  grid-column: 1 / -1;
}
.res-tab-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px 6px;
  border-radius: 10px;
  font-size: .73rem;
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
  border: 2px solid #d8d3cb;
  background: #fff;
  color: var(--navy);
  transition: transform .12s, box-shadow .12s, background .15s, border-color .15s;
  min-height: 44px;
  width: 100%;
}
.res-tab-btn:hover:not(.active),
.res-tab-btn:focus-visible:not(.active) {
  border-color: var(--navy);
  box-shadow: 0 2px 8px rgba(10,37,64,.12);
}
.res-tab-btn:active { transform: scale(0.98); }
.res-tab-btn.active,
.res-tab-btn[aria-selected="true"] {
  background: var(--navy);
  color: #fff;
  border-color: var(--gold);
  box-shadow: inset 0 0 0 1px var(--gold);
}
.res-tab-btn:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

/* ── Home hero ── */
.home-hero {
  position: relative;
  background:
    linear-gradient(180deg, rgba(7,26,46,.88) 0%, rgba(10,37,64,.94) 55%, var(--navy) 100%),
    url('../images/properties/featured-home-01.jpg') center 30% / cover no-repeat;
  padding: clamp(56px, 12vw, 108px) 20px clamp(48px, 8vw, 76px);
}
.home-hero-inner { max-width: 700px; margin: 0 auto; position: relative; }
.hero-eyebrow {
  font-size: .74rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .14em; color: var(--gold); margin-bottom: 14px;
}
.hero-headline {
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif;
  font-weight: 600;
  font-size: clamp(2.1rem, 6vw, 3.6rem);
  line-height: 1.08;
  color: #fff;
  letter-spacing: -.01em;
  margin-bottom: 18px;
}
.hero-headline-accent { color: var(--gold); font-style: italic; }
.hero-sub {
  color: rgba(255,255,255,.82);
  font-size: clamp(.9rem, 1.6vw, 1.02rem);
  line-height: 1.75;
  max-width: 600px;
}
.pillar { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 14px; padding: 22px; }
.pillar-icon { width: 44px; height: 44px; border-radius: 12px; background: rgba(201,168,76,.18); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }

/* ── Pricing cards ── */
/* ── Housing Options: two asymmetric cards, dark suite / light room ── */
.hopt-section { background: var(--cream); }
.hopt-grid { display: grid; grid-template-columns: 1fr; gap: 22px; }
.hopt-card { border-radius: var(--radius-lg, 16px); overflow: hidden; box-shadow: var(--shadow-md, 0 8px 22px rgba(10,37,64,.14)); }
.hopt-card-dark { background: var(--navy); }
.hopt-card-light { background: #fff; border: 1px solid var(--border-soft, #ece8e1); }
.hopt-img { height: 200px; background: #e8e4de; overflow: hidden; }
.hopt-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hopt-body { padding: 26px 24px 24px; }
.hopt-range { font-family: var(--font-serif, 'Fraunces', Georgia, serif); font-weight: 700; font-size: 1.6rem; color: var(--gold); margin-bottom: 4px; }
.hopt-range span { font-size: .8rem; font-weight: 600; color: var(--text-on-dark-muted, rgba(255,255,255,.6)); }
.hopt-range-dark { color: var(--navy); }
.hopt-range-dark span { color: var(--text-muted, #888); }
.hopt-title { font-size: 1.15rem; font-weight: 800; color: #fff; margin-bottom: 4px; }
.hopt-title-dark { color: var(--navy); }
.hopt-tagline { font-size: .8rem; color: var(--text-on-dark-muted, rgba(255,255,255,.6)); margin-bottom: 16px; }
.hopt-card-light .hopt-tagline { color: var(--text-muted, #888); }
.hopt-amenities { list-style: none; display: grid; gap: 8px; margin-bottom: 20px; }
.hopt-amenities li { font-size: .82rem; color: rgba(255,255,255,.82); padding-left: 18px; position: relative; }
.hopt-amenities li::before { content: "—"; position: absolute; left: 0; color: var(--gold); }
.hopt-amenities-dark li { color: #444; }
.hopt-cta { display: block; width: 100%; text-align: center; font-weight: 700; font-size: .86rem; padding: 13px; border-radius: var(--radius-md, 10px); border: none; cursor: pointer; transition: opacity var(--transition-fast, .15s); }
.hopt-cta:hover { opacity: .9; }
.hopt-cta-gold { background: var(--gold); color: var(--navy); }
.hopt-cta-navy { background: var(--navy); color: #fff; }
.hopt-secondary-link { display: block; text-align: center; margin-top: 12px; font-size: .78rem; font-weight: 600; color: var(--gold); text-decoration: none; }
.hopt-secondary-link:hover { text-decoration: underline; }
.hopt-secondary-link-dark { color: var(--navy); }
.hopt-policy { list-style: none; margin-top: 26px; display: grid; gap: 8px; max-width: 720px; }
.hopt-policy li { font-size: .8rem; color: #666; line-height: 1.6; padding-left: 18px; position: relative; }
.hopt-policy li::before { content: "•"; position: absolute; left: 2px; color: var(--gold); font-weight: 800; }
@media (min-width: 780px) {
  .hopt-grid { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .hopt-card-dark { margin-top: -14px; }
}

/* ── Property cards ── */
.avail { background: var(--teal); color: #fff; font-size: .62rem; font-weight: 700; padding: 5px 12px; border-radius: 99px; }
.chev { transition: transform .28s; color: #fff; width: 18px; height: 18px; }

/* ── Resource cards ── */
.res-card { background: #fff; border-radius: 14px; padding: 18px; box-shadow: 0 2px 12px rgba(10,37,64,.07); transition: box-shadow .2s, transform .15s, border-color .15s; text-decoration: none; color: inherit; display: flex; align-items: flex-start; gap: 14px; border: 2px solid transparent; min-width: 0; overflow: hidden; }
.res-empty-note {
  grid-column: 1 / -1;
  background: var(--cream, #F5F2EE);
  border: 1px dashed var(--border, #d8d3cb);
  border-radius: 12px;
  padding: 20px 22px;
  font-size: .85rem;
  line-height: 1.65;
  color: #555;
}
.res-empty-note a { color: var(--navy); font-weight: 700; text-decoration: underline; }
.res-card:hover, .res-card:focus-visible { box-shadow: 0 6px 24px rgba(10,37,64,.12); transform: translateY(-2px); border-color: var(--gold); }
.res-card:active { transform: translateY(-1px) scale(0.99); }
.res-card:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.res-card > div { min-width: 0; flex: 1; overflow: hidden; }
.res-logo { width: 52px; height: 52px; border-radius: 10px; object-fit: contain; background: #f5f5f5; flex-shrink: 0; padding: 4px; }
.res-icon { width: 52px; height: 52px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1.4rem; }
.res-title { font-weight: 700; font-size: .88rem; color: var(--navy); overflow-wrap: anywhere; word-break: break-word; }
.res-sub { font-size: .75rem; color: #777; margin-top: 4px; line-height: 1.5; overflow-wrap: anywhere; }
.res-link { font-size: .7rem; font-weight: 700; color: var(--teal); margin-top: 6px; display: block; overflow-wrap: anywhere; }

/* ── Video cards ── */
.vid-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 12px rgba(10,37,64,.07); }
.vfw { position: relative; aspect-ratio: 16/9; background: #0a0a0a; }
.vfw iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* Fallback card shown when embed is blocked (Error 153 / file://) */
.vid-fallback {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px;
  background: var(--navy);
  text-decoration: none;
  cursor: pointer;
}
.vid-fallback-play {
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: 2px solid rgba(255,255,255,.4);
  display: flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.vid-fallback:hover .vid-fallback-play { background: rgba(201,168,76,.5); }
.vid-fallback-title {
  color: #fff; font-weight: 700; font-size: .82rem;
  text-align: center; padding: 0 12px; line-height: 1.35;
}
.vid-fallback-src {
  color: rgba(255,255,255,.55); font-size: .72rem;
}
.vid-fallback-btn {
  background: var(--gold); color: var(--navy);
  font-weight: 700; font-size: .72rem;
  padding: 6px 16px; border-radius: 99px;
  margin-top: 4px;
}
/* iframe is shown, fallback hidden by default */
.vfw .vid-fallback { display: none; }
/* When iframe errors, JS adds .embed-error to .vfw — shows fallback */
.vfw.embed-error iframe { display: none; }
.vfw.embed-error .vid-fallback { display: flex; }
.vtag { display: inline-flex; align-items: center; font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; background: #f5ead8; color: var(--gold); padding: 3px 10px; border-radius: 99px; margin-bottom: 4px; }
.vtitle { font-size: .84rem; font-weight: 700; color: var(--navy); }
.vdesc { font-size: .75rem; color: #777; margin-top: 4px; line-height: 1.55; }

/* ── Form ── */
.step-bar { background: #fff; border-bottom: 1px solid #ece8e1; padding: 12px 20px; position: sticky; top: 78px; z-index: 30; }
.s-pills { display: flex; align-items: center; gap: 0; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; }
.s-pills::-webkit-scrollbar { display: none; }
.step-meter-readout { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:9px; font-size:.66rem; font-weight:800; color:#5f6872; letter-spacing:.015em; }
.step-meter-readout #step-meter-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.step-meter-readout #step-percent { flex-shrink:0; color:var(--teal); font-variant-numeric:tabular-nums; }
.spill { display: flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 99px; font-size: .72rem; font-weight: 700; cursor: pointer; border: none; transition: all .18s; flex-shrink: 0; white-space: nowrap; }
.spill.active  { background: var(--navy); color: #fff; }
.spill.done    { background: var(--teal); color: #fff; }
.spill.pending { background: #f0ece6; color: #bbb; cursor: default; }
.sconn { flex: 0 0 20px; height: 2px; background: #e5e0d8; }
.sconn.done { background: var(--teal); }
.sbar { height: 4px; background: #ece8e1; border-radius: 99px; overflow: hidden; margin-top: 6px; }
.sbar-fill { height: 100%; background: linear-gradient(90deg,var(--navy),var(--teal)); border-radius: 99px; transition: width .35s; }
.fstep { display: none; } .fstep.active { display: block; animation: fadeUp .2s ease; }
.flabel { display: block; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #777; margin-bottom: 6px; line-height: 1.4; }
.req { color: #e05252; }
.finput { width: 100%; border: 1.5px solid #ddd8d0; border-radius: 10px; padding: 12px 14px; font-size: 1rem; font-family: inherit; background: #fff; color: var(--navy); outline: none; transition: border-color .15s; }
.finput:focus { border-color: var(--navy); box-shadow: 0 0 0 3px rgba(10,37,64,.08); }
.finput.invalid, .fsel.invalid { border-color: #c0392b; }
.finput.invalid:focus, .fsel.invalid:focus { box-shadow: 0 0 0 3px rgba(192,57,43,.12); }
/* Mobile-first: one field per row with comfortable vertical rhythm.
   Two columns only kick in once there is genuinely enough width for
   labels, inputs, and placeholders to sit comfortably side by side. */
.fgrid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 769px) {
  .fgrid { grid-template-columns: 1fr 1fr; gap: 18px 16px; }
}
.field-err { display: none; font-size: .72rem; font-weight: 600; color: #c0392b; margin-top: 5px; }
.field-err.show { display: block; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.fsel { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.fcard { background: #fff; border-radius: 16px; padding: 22px 18px; box-shadow: 0 2px 16px rgba(10,37,64,.07); max-width: 680px; margin: 0 auto; }
@media (min-width: 640px) {
  .fcard { padding: 30px 34px; }
}

/* ── FAQ scrollable window ── */
.faq-outer { max-width: 760px; margin: 0 auto; padding: 36px 20px 60px; }
.faq-tab-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}
@media (max-width: 479px) {
  .faq-tab-bar { grid-template-columns: 1fr 1fr; }
  /* 10 categories in a 2-column grid leaves the 9th ("After Approval")
     alone in its row with an empty cell beside it, directly above the
     already-full-width final category. Giving the last TWO categories
     their own full-width rows removes that empty cell and reads as a
     deliberate two-row "featured" pairing rather than leftover space. */
  .faq-tab-bar .faq-tab:last-child,
  .faq-tab-bar .faq-tab:nth-last-child(2) { grid-column: 1 / -1; }
  .faq-tab-bar .faq-tab:nth-last-child(2) { margin-top: 2px; }
}
.faq-tab {
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 10px 8px; min-height: 44px;
  border-radius: 10px; font-size: .73rem; font-weight: 700;
  line-height: 1.25; cursor: pointer; border: 2px solid #d8d3cb;
  background: #fff; color: var(--navy);
  transition: background .15s, color .15s, border-color .15s, box-shadow .12s;
  width: 100%; font-family: inherit;
}
.faq-tab.active, .faq-tab[aria-selected="true"] {
  background: var(--navy); color: #fff;
  border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold);
}
.faq-tab:hover:not(.active) {
  border-color: var(--navy); color: var(--navy);
  box-shadow: 0 2px 8px rgba(10,37,64,.1);
}
.faq-tab:active { transform: scale(0.98); }
.faq-tab:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.faq-scroll-window {
  max-height: 630px; min-height: 200px;
  overflow-y: auto; overflow-x: hidden;
  -webkit-overflow-scrolling: touch; scrollbar-gutter: stable;
  background: #fff; border: 1.5px solid #e5e0d8;
  border-radius: 16px; box-shadow: 0 4px 24px rgba(10,37,64,.08);
  outline: none;
}
.faq-scroll-window:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.faq-scroll-window::-webkit-scrollbar { width: 8px; }
.faq-scroll-window::-webkit-scrollbar-track { background: #f5f2ee; border-radius: 0 14px 14px 0; }
.faq-scroll-window::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 99px; border: 2px solid #f5f2ee; }
.faq-scroll-window::-webkit-scrollbar-thumb:hover { background: var(--navy); }
.faq-scroll-window { scrollbar-width: thin; scrollbar-color: var(--gold) #f5f2ee; }
.faq-panel-inner { padding: 20px 24px; }
.faq-entry { padding: 20px 0; border-bottom: 1px solid #f0ece6; }
.faq-entry:last-child { border-bottom: none; padding-bottom: 8px; }
.faq-entry:first-child { padding-top: 8px; }
.faq-q { font-size: .92rem; font-weight: 700; color: var(--navy); line-height: 1.45; margin: 0 0 8px; }
.faq-a { font-size: .84rem; color: #555; line-height: 1.75; margin: 0; }
.faq-section-pill { display: inline-block; font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--gold); background: var(--navy); padding: 6px 14px; border-radius: 8px; margin: 20px 0 14px; }
.faq-disclaimer { background: #fff9ed; border: 1px solid #f0e4c0; border-radius: 12px; padding: 14px 16px; margin-top: 14px; }
.faq-disclaimer p { font-size: .75rem; color: #7a5520; line-height: 1.6; margin: 0; }

/* ── Accordion (for resources section) ── */
.acc-icon { transition: transform .28s; color: #aaa; width: 18px; height: 18px; flex-shrink: 0; }
.acc-wrap { max-height: 0; overflow: hidden; transition: max-height .3s cubic-bezier(.4,0,.2,1); }
.acc-wrap.open { max-height: 500px; }

/* ── Responsive ── */
@media (max-width: 359px) {
  .util-email-btn { padding: 0 10px; font-size: .7rem; }
  .util-controls { gap: 4px 8px; }
  .lang-menu-btn { padding: 0 10px; font-size: .7rem; }
  .lang-menu-popover { min-width: 170px; right: -8px; }
}
@media (max-width: 767px) {
  .faq-outer { padding: 28px 16px 48px; }
  .faq-scroll-window { max-height: 560px; border-radius: 12px; }
  .faq-panel-inner { padding: 16px; }
  .faq-q { font-size: .88rem; } .faq-a { font-size: .82rem; }
}
@media (max-width: 374px) { .faq-scroll-window { max-height: 525px; } }
@media (prefers-reduced-motion: reduce) { .faq-tab, .dnav-btn, .bnav { transition: none; } }
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-thumb { background: #ddd; border-radius: 2px; }

/* ── Resource search ── */
.res-search-wrap {
  position: relative;
  margin-bottom: 12px;
}
.res-search-input {
  width: 100%;
  padding: 10px 36px 10px 14px;
  border: 1.5px solid #ddd8d0;
  border-radius: 10px;
  font-size: .84rem;
  font-family: inherit;
  color: var(--navy);
  background: #fff;
  outline: none;
  transition: border-color .15s;
}
.res-search-input:focus {
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(10,37,64,.08);
}
.res-search-clear {
  position: absolute; right: 10px; top: 50%;
  transform: translateY(-50%);
  background: none; border: none; cursor: pointer;
  color: #aaa; font-size: 1rem; line-height: 1;
  padding: 4px; display: none;
}
.res-search-clear.visible { display: block; }
.res-no-results {
  display: none;
  padding: 24px;
  text-align: center;
  color: #888;
  font-size: .84rem;
  background: #fff;
  border-radius: 12px;
  border: 1.5px dashed #ddd8d0;
}
.res-no-results.visible { display: block; }

/* ── Application & Placement Process: connected pathway ── */
.process-track {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 34px;
  margin-bottom: 30px;
}
.process-track::before {
  content: "";
  position: absolute;
  left: 22px; top: 4px; bottom: 4px;
  width: 2px;
  background: linear-gradient(180deg, var(--gold), rgba(201,168,76,.12));
  z-index: 1;
}
.process-step { position: relative; padding-left: 62px; }
.process-num {
  position: absolute; left: 0; top: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--navy); color: var(--gold);
  font-family: var(--font-serif, 'Fraunces', Georgia, serif);
  font-weight: 700; font-size: .92rem;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 5px var(--cream), var(--shadow-sm, 0 2px 8px rgba(10,37,64,.12));
  z-index: 2;
}
.process-title { font-weight: 800; font-size: 1rem; color: var(--navy); margin-bottom: 6px; padding-top: 6px; }
.process-body { font-size: .84rem; color: var(--text-muted, #666); line-height: 1.65; max-width: 44ch; }
@media (min-width: 860px) {
  .process-track { grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .process-track::before { left: 0; right: 0; top: 22px; bottom: auto; height: 2px; width: auto; background: linear-gradient(90deg, var(--gold), rgba(201,168,76,.12)); }
  .process-step { padding-left: 0; padding-top: 62px; text-align: center; }
  .process-num { left: 50%; top: 0; transform: translateX(-50%); }
  .process-body { max-width: none; margin: 0 auto; }
}

/* ── Confidentiality: dark near-black, premium editorial, no icon clutter ── */
.conf-section {
  background: linear-gradient(180deg, var(--navy-black) 0%, var(--navy) 100%);
  padding: clamp(48px, 9vw, 88px) 20px;
}
.conf-inner { max-width: 760px; margin: 0 auto; }
.conf-eyebrow { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--gold); margin-bottom: 14px; }
.conf-headline {
  font-family: var(--font-serif, 'Fraunces', Georgia, serif);
  font-weight: 600;
  font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: #fff;
  line-height: 1.12;
  margin-bottom: 8px;
}
.conf-headline::after { content: ""; display: block; width: 56px; height: 2px; background: var(--gold); margin-top: 18px; }
.conf-lead { font-size: .92rem; line-height: 1.75; color: rgba(255,255,255,.72); max-width: 62ch; margin: 20px 0 30px; }
.conf-list { list-style: none; display: grid; gap: 14px; }
.conf-list li { font-size: .88rem; line-height: 1.6; color: rgba(255,255,255,.85); display: flex; gap: 12px; }
.conf-mark { color: var(--gold); font-weight: 800; flex-shrink: 0; }

/* ── Reentry Housing Support: cream, dignified, direct mission statement ── */
.reentry-section { background: var(--cream); padding: clamp(48px, 9vw, 88px) 20px; }
.reentry-inner { max-width: 780px; margin: 0 auto; }
.reentry-headline {
  font-family: var(--font-serif, 'Fraunces', Georgia, serif);
  font-weight: 600;
  font-size: clamp(1.7rem, 4.6vw, 2.4rem);
  color: var(--navy);
  line-height: 1.16;
  margin: 4px 0 18px;
}
.reentry-lead { font-size: .92rem; line-height: 1.75; color: #555; max-width: 66ch; margin-bottom: 30px; }
.reentry-points { display: grid; grid-template-columns: 1fr; gap: 16px; margin-bottom: 30px; }
.reentry-point { background: #fff; border-radius: var(--radius-md, 12px); padding: 18px 20px; border-left: 3px solid var(--gold); box-shadow: var(--shadow-sm, 0 2px 8px rgba(10,37,64,.06)); }
.reentry-point-title { font-weight: 800; font-size: .88rem; color: var(--navy); margin-bottom: 5px; }
.reentry-point-body { font-size: .8rem; color: #666; line-height: 1.6; }
@media (min-width: 700px) {
  .reentry-points { grid-template-columns: repeat(2, 1fr); }
}

/* ── Final CTA: cinematic closing section ── */
.final-cta-section {
  background: linear-gradient(155deg, var(--navy) 0%, var(--navy-black) 100%);
  padding: clamp(52px, 10vw, 96px) 20px;
  text-align: center;
}
.final-cta-inner { max-width: 640px; margin: 0 auto; }
.final-cta-headline {
  font-family: var(--font-serif, 'Fraunces', Georgia, serif);
  font-weight: 600;
  font-size: clamp(1.7rem, 4.6vw, 2.5rem);
  line-height: 1.25;
  color: #fff;
  margin-bottom: 14px;
}
.final-cta-copy {
  font-size: .92rem;
  color: rgba(255,255,255,.72);
  line-height: 1.65;
  margin-bottom: 30px;
}
.final-cta-buttons { display: flex; flex-direction: column; gap: 12px; align-items: center; }
@media (min-width: 480px) {
  .final-cta-buttons { flex-direction: row; justify-content: center; flex-wrap: wrap; }
}

/* ── Trust strip ── */
.trust-strip {
  background: var(--navy);
  padding: 24px 20px;
}
.trust-item {
  text-align: center;
}
.trust-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.trust-grid .trust-item-wide {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: left;
  padding: 8px 0 0;
}
.trust-item-wide .trust-item-icon { margin-bottom: 0; }
.trust-item-wide .trust-item-label,
.trust-item-wide .trust-item-sub { margin: 0; }
@media (min-width: 640px) {
  .trust-grid { grid-template-columns: repeat(5, 1fr); gap: 20px; }
  .trust-grid .trust-item-wide {
    grid-column: auto;
    flex-direction: column;
    text-align: center;
    padding: 0;
  }
  .trust-item-wide .trust-item-icon { margin-bottom: 6px; }
}
.trust-item-icon {
  font-size: 1.5rem; margin-bottom: 6px;
  display: flex; justify-content: center;
  color: var(--gold);
}
.trust-item-label {
  font-weight: 700; font-size: .84rem; color: #fff;
}
.trust-item-sub {
  font-size: .72rem; color: rgba(255,255,255,.55); margin-top: 2px;
}

/* ── Who We Serve: editorial grid, staggered offset, hover elevation ── */
.wws-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  padding-bottom: 8px;
}
.wws-card {
  background: #fff;
  border: 1px solid var(--border-soft, #ece8e1);
  border-radius: var(--radius-lg, 16px);
  padding: 28px 22px;
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(10,37,64,.06));
  transition: transform var(--transition-med, .25s ease), box-shadow var(--transition-med, .25s ease), border-color var(--transition-med, .25s ease);
}
.wws-card:hover, .wws-card:focus-visible {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md, 0 10px 24px rgba(10,37,64,.14));
  border-color: rgba(201,168,76,.4);
}
.wws-card:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.wws-icon {
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: rgba(201,168,76,.14);
  font-size: 1.4rem;
  margin-bottom: 16px;
}
.wws-title {
  font-weight: 800;
  font-size: .96rem;
  color: var(--navy);
  line-height: 1.3;
  margin-bottom: 8px;
}
.wws-desc {
  font-size: .82rem;
  color: var(--text-muted, #666);
  line-height: 1.6;
}
@media (min-width: 600px) {
  .wws-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .wws-grid { grid-template-columns: repeat(4, 1fr); }
  .wws-card:nth-child(2), .wws-card:nth-child(4) { margin-top: 22px; }
}

/* ── Housing Options compact cards (small thumbnail, no gallery repeat) ── */
.opt-card {
  background: #fff;
  border: 1px solid #ece8e1;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(10,37,64,.05);
  display: flex;
  flex-direction: column;
  height: 100%;
}
.opt-thumb {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
}
.opt-card-body {
  padding: 16px 18px 18px;
}
.opt-price {
  font-weight: 800;
  font-size: 1.05rem;
  color: #0A2540;
}
.opt-price span {
  font-weight: 600;
  font-size: .72rem;
  color: #888;
}
.opt-title {
  font-weight: 700;
  font-size: .86rem;
  color: #1a7a6e;
  margin-top: 2px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.opt-desc {
  font-size: .8rem;
  color: #666;
  line-height: 1.55;
  margin-top: 8px;
}

/* ── Hero CTA group: clear primary → secondary → secondary hierarchy ── */
.hero-cta-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  margin-top: 26px;
}
.hero-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 10px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  text-decoration: none;
  transition: transform .15s ease, background-color .15s ease, border-color .15s ease;
}
.hero-btn:active {
  transform: scale(.97);
}
.hero-btn-arrow {
  transition: transform .15s ease;
}
.hero-btn:hover .hero-btn-arrow {
  transform: translateX(3px);
}
.hero-btn-primary {
  background: var(--gold);
  color: #0A2540;
  font-size: 1rem;
  padding: 16px 34px;
  border: 2px solid var(--gold);
  box-shadow: 0 6px 18px rgba(201,168,76,.35);
}
.hero-btn-primary:hover {
  background: #d9bc63;
  border-color: #d9bc63;
}
.hero-btn-secondary {
  background: var(--navy);
  color: #fff;
  font-size: .88rem;
  padding: 13px 26px;
  border: 1.5px solid var(--gold);
  min-width: 236px;
}
.hero-btn-secondary:hover {
  background: #123258;
  border-color: #e0c169;
}
@media (min-width: 480px) {
  .hero-cta-group { flex-direction: row; flex-wrap: wrap; align-items: center; }
}

/* ═══════════════════════════════════════════════════════
   PURPOSE — premium editorial statement, cream, asymmetric
═══════════════════════════════════════════════════════ */
.purpose-section {
  background: var(--cream);
  padding: clamp(48px, 9vw, 96px) 20px;
}
.purpose-inner {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
.purpose-lead .section-label { color: var(--gold); margin-bottom: 14px; }
.purpose-headline {
  font-family: var(--font-serif, 'Fraunces', Georgia, serif);
  font-weight: 600;
  font-size: clamp(1.7rem, 4.6vw, 2.7rem);
  line-height: 1.22;
  color: var(--navy);
  letter-spacing: -.01em;
  max-width: 16ch;
}
.purpose-headline em { font-style: italic; color: var(--gold); }
.purpose-support { display: flex; align-items: flex-end; }
.purpose-copy {
  font-size: .95rem;
  line-height: 1.75;
  color: var(--text-muted, #6b6b6b);
  max-width: 42ch;
}
@media (min-width: 860px) {
  .purpose-inner {
    grid-template-columns: 1.35fr 1fr;
    align-items: end;
    gap: 60px;
  }
  .purpose-support { margin-bottom: 6px; padding-left: 24px; border-left: 2px solid rgba(201,168,76,.35); }
}

/* ═══════════════════════════════════════════════════════
   FEATURED PHOTOS — dark showcase, gold/blue glow cards, lightbox
═══════════════════════════════════════════════════════ */
.fp-section {
  background: linear-gradient(180deg, #071a2e 0%, var(--navy) 100%);
}
.fp-heading-block { max-width: 640px; margin: 0 0 28px; }
.fp-heading {
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif;
  font-weight: 700;
  font-size: clamp(2.2rem, 7vw, 3.4rem);
  line-height: 1.02;
  color: #fff;
  letter-spacing: -.01em;
}
.fp-heading .fp-gold { color: var(--gold); }
.fp-rule {
  width: 64px; height: 2px;
  background: var(--gold);
  margin: 16px 0 14px;
}
.fp-copy { font-size: .88rem; color: rgba(255,255,255,.65); line-height: 1.6; max-width: 40ch; }

/* ── Photo grid: 1 hero (gold glow) + 2 medium + 4 small (blue glow) ── */
.fp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  width: 100%;
  background: transparent;
}
.fp-tile {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 16px;
  overflow: hidden;
  cursor: pointer;
  background: transparent;
  aspect-ratio: 4 / 3;
}
.fp-tile img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 50%; display: block;
  margin: 0; padding: 0; border: none; border-radius: inherit;
  background: transparent;
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
/* Per-photo object-position corrections: these three source photos have
   a bright sidewalk/driveway strip or curb marking near the bottom edge
   that reads as an unfinished-looking white/pale band when center-cropped
   by default. Shifting the visible crop window upward keeps the house as
   the primary subject and removes the pale strip without cropping into
   the roofline. Chosen by visual comparison, not a fixed formula. */
.fp-med-1 img { object-position: center 15%; }
.fp-sm-2 img  { object-position: center 20%; }
.fp-tile {
  transition: transform .25s cubic-bezier(.22,1,.36,1);
}
.fp-tile:hover { transform: translateY(-5px); }
.fp-tile:hover img { transform: scale(1.03); }


/* Featured Home 2 — match Home 1's deliberate exterior/interior color framing.
   !important is required because legacy inline styles set border:none. */
.fhe-gold-glow {
  border: 3px solid var(--gold) !important;
  box-shadow: 0 0 0 1px rgba(201,168,76,.35), 0 0 24px 3px rgba(201,168,76,.30), 0 10px 24px rgba(0,0,0,.48) !important;
}
.fhe-blue-glow {
  border: 3px solid var(--fp-blue) !important;
  box-shadow: 0 0 0 1px rgba(63,198,255,.30), 0 0 20px 3px rgba(63,198,255,.28), 0 8px 22px rgba(0,0,0,.46) !important;
}
.fhe-gold-glow:hover {
  box-shadow: 0 0 0 1px rgba(201,168,76,.50), 0 0 30px 5px rgba(201,168,76,.42), 0 14px 30px rgba(0,0,0,.55) !important;
}
.fhe-blue-glow:hover {
  box-shadow: 0 0 0 1px rgba(63,198,255,.50), 0 0 27px 5px rgba(63,198,255,.42), 0 12px 27px rgba(0,0,0,.52) !important;
}

/* Featured Housing Example showcase */
.fhe-hero-btn, .fhe-thumb-btn { transition: transform .3s ease, box-shadow .3s ease; box-shadow: 0 0 0 1px rgba(201,168,76,.35), 0 8px 22px rgba(0,0,0,.35); }
.fhe-hero-btn img, .fhe-thumb-btn img { transition: transform .5s cubic-bezier(.22,1,.36,1); }
.fhe-hero-btn:hover, .fhe-thumb-btn:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px rgba(201,168,76,.6), 0 12px 28px rgba(0,0,0,.45); }
.fhe-hero-btn:hover img, .fhe-thumb-btn:hover img { transform: scale(1.04); }
.fhe-hero-btn:focus-visible, .fhe-thumb-btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
@media (max-width: 767px) {
  .fhe-section > div > div[style*="grid-template-columns:1.4fr 1fr"] { grid-template-columns: 1fr !important; }
  .fhe-section > div > div[style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: 1fr 1fr !important; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-tile, .fp-tile img { transition: none; }
  .fp-tile:hover { transform: none; }
}
.fp-tile:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.fp-gold-glow {
  border: 3px solid var(--gold);
  box-shadow: 0 0 0 1px rgba(201,168,76,.35), 0 0 26px 4px rgba(201,168,76,.4), 0 10px 26px rgba(0,0,0,.55);
}
.fp-blue-glow {
  border: 3px solid var(--fp-blue);
  box-shadow: 0 0 0 1px rgba(63,198,255,.3), 0 0 20px 3px rgba(63,198,255,.32), 0 8px 22px rgba(0,0,0,.5);
}
.fp-tile.fp-gold-glow:hover { box-shadow: 0 0 0 1px rgba(201,168,76,.5), 0 0 34px 6px rgba(201,168,76,.55), 0 14px 30px rgba(0,0,0,.6); }
.fp-tile.fp-blue-glow:hover { box-shadow: 0 0 0 1px rgba(63,198,255,.5), 0 0 28px 5px rgba(63,198,255,.5), 0 12px 26px rgba(0,0,0,.55); }

/* ── Mobile & tablet (<900px): hero full width + remaining 6 in a
   balanced, compact 2-column grid — every photo stays visible, the
   featured image stays dominant, and nothing is squeezed into the
   full desktop composition too early on tablet-width screens. ── */
.fp-hero { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
.fp-med, .fp-sm { aspect-ratio: 4 / 3; }
/* Eighth photo: an intentional standout accent below the four-tile small
   grid on mobile/tablet — not automatic ":last-child" styling, since that
   breaks the moment tile count changes again. Named explicitly so it stays
   correct regardless of how many photos the grid holds in the future. */
.fp-sm-5 { grid-column: 1 / -1; aspect-ratio: 21 / 9; margin-top: 4px; }
@media (min-width: 600px) and (max-width: 899px) {
  .fp-grid { gap: 16px; }
  .fp-hero { aspect-ratio: 21 / 10; }
}

/* ── Desktop (>=900px): fully explicit placement, no auto-flow guessing,
   with a subtle staggered composition — small vertical offsets plus a
   restrained 0.5–1.5° rotation on a few supporting tiles for the
   editorial feel. Kept small and controlled so nothing looks crooked
   or overflows; the hero stays perfectly level and dominant. ── */
@media (min-width: 900px) {
  .fp-grid {
    grid-template-columns: repeat(60, 1fr);
    grid-auto-rows: 56px;
    align-items: start;
  }
  .fp-tile { aspect-ratio: auto; }

  .fp-hero    { grid-column: 1 / 36;  grid-row: 1 / 10; }
  .fp-med-1   { grid-column: 36 / 61; grid-row: 1 / 6; transform: rotate(-.6deg); }
  .fp-med-2   { grid-column: 36 / 61; grid-row: 6 / 11; margin-top: -6px; transform: rotate(.5deg); }

  .fp-sm-1    { grid-column: 1 / 13;   grid-row: 11 / 15; transform: rotate(.7deg); }
  .fp-sm-2    { grid-column: 13 / 25;  grid-row: 11 / 15; margin-top: 14px; }
  .fp-sm-3    { grid-column: 25 / 37;  grid-row: 11 / 15; transform: rotate(-.8deg); }
  .fp-sm-4    { grid-column: 37 / 49;  grid-row: 11 / 15; margin-top: 14px; transform: rotate(.6deg); }
  .fp-sm-5    { grid-column: 49 / 61;  grid-row: 11 / 15; transform: rotate(-.5deg); }

  .fp-med-1:hover, .fp-med-2:hover, .fp-sm-1:hover, .fp-sm-3:hover, .fp-sm-4:hover, .fp-sm-5:hover { transform: translateY(-5px) rotate(0deg); }
}
@media (min-width: 900px) and (prefers-reduced-motion: reduce) {
  .fp-med-1, .fp-med-2, .fp-sm-1, .fp-sm-3, .fp-sm-4, .fp-sm-5 { transform: none; }
}

/* ── Trust bar ── */
.fp-trustbar {
  margin-top: 32px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  padding: 20px 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px 20px;
}
.fp-trust-item {
  display: flex; align-items: center; gap: 10px;
  font-size: .82rem; font-weight: 600; color: #fff;
  line-height: 1.3;
}
.fp-trust-icon { width: 24px; height: 24px; flex-shrink: 0; }
.fp-trust-icon.fp-gold { color: var(--gold); }
.fp-trust-icon.fp-blue { color: var(--fp-blue); }
.fp-trust-div { width: 1px; height: 28px; background: rgba(255,255,255,.18); }
@media (max-width: 640px) { .fp-trust-div { display: none; } }

/* ── Lightbox ── */
.fp-lightbox {
  position: fixed; inset: 0; z-index: 500;
  background: rgba(4,12,22,.98);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.fp-lightbox[hidden] { display: none; }
.fp-lb-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(92vw, 1400px);
  height: 78vh;
  max-height: 78vh;
}
.fp-lb-stage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 10px;
  box-shadow: 0 20px 50px rgba(0,0,0,.6);
  background: transparent;
  display: block;
  margin: 0;
  padding: 0;
}
.fp-lb-counter { color: rgba(255,255,255,.7); font-size: .8rem; margin-top: 14px; letter-spacing: .04em; flex-shrink: 0; }
.fp-lb-caption { color: rgba(255,255,255,.55); font-size: .74rem; margin-top: 4px; flex-shrink: 0; }
.fp-lb-error {
  color: rgba(255,255,255,.85);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 10px;
  padding: 24px 32px;
  font-size: .88rem;
  text-align: center;
}
.fp-lb-btn {
  position: absolute;
  background: rgba(255,255,255,.08);
  border: 1.5px solid rgba(255,255,255,.25);
  color: #fff;
  border-radius: 50%;
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background-color .15s;
  z-index: 1;
}
.fp-lb-btn:hover { background: rgba(255,255,255,.18); }
.fp-lb-btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.fp-lb-close { top: 18px; right: 18px; }
.fp-lb-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.fp-lb-next { right: 16px; top: 50%; transform: translateY(-50%); }
@media (max-width: 600px) {
  .fp-lb-stage { height: 62vh; max-height: 62vh; }
  .fp-lb-prev { left: 8px; }
  .fp-lb-next { right: 8px; }
  .fp-lb-btn { width: 40px; height: 40px; }
}

/* ── Checklist ── */
.apply-checklist {
  background: #f5f2ee;
  border-radius: 14px;
  padding: 20px 22px;
  margin-bottom: 24px;
  max-width: 680px;
  margin-left: auto; margin-right: auto;
}
.apply-checklist h3 {
  font-size: .9rem; font-weight: 800; color: var(--navy); margin-bottom: 14px;
}
.checklist-item {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: .82rem; color: #444; padding: 6px 0;
  border-bottom: 1px solid #ece8e1;
  line-height: 1.5;
}
.checklist-item:last-child { border-bottom: none; }
.checklist-item svg { color: var(--teal); flex-shrink: 0; margin-top: 2px; }

/* ── Legal disclaimer notice ── */
.legal-notice {
  background: #f0f4ff;
  border: 1px solid #c8d4f0;
  border-radius: 10px;
  padding: 14px 16px;
  margin-top: 16px;
}
.legal-notice p {
  font-size: .75rem; color: #2a4fa8; line-height: 1.6; margin: 0;
}

/* ── Availability note ── */
.avail-note {
  font-size: .72rem; color: #888; font-style: italic;
  margin-top: 6px;
}


/* ════ Inside Our Homes Gallery ════ */
.gallery-section {
  max-width: 1100px;
  margin: 0 auto;
  padding: 48px 20px 56px;
}
.gallery-header {
  margin-bottom: 28px;
}
.gallery-h2 {
  font-size: 2rem;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.15;
  margin-top: 4px;
  margin-bottom: 8px;
}
.gallery-sub {
  font-size: .88rem;
  color: #777;
  line-height: 1.6;
  max-width: 560px;
}

/* Masonry-style responsive grid */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media (min-width: 600px) {
  .gallery-grid { grid-template-columns: repeat(4, 1fr); gap: 14px; }
}

/* Each photo tile */
.gallery-tile {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  font: inherit;
  border-radius: 12px;
  overflow: hidden;
  background: #e8e4de;
  cursor: pointer;
  aspect-ratio: 4/3;
}
.gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.gallery-tile:hover img {
  transform: scale(1.04);
}
.gallery-tile-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(10,37,64,.75));
  color: #fff;
  padding: 20px 12px 10px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity .25s;
}
.gallery-tile:hover .gallery-tile-caption,
.gallery-tile:focus .gallery-tile-caption {
  opacity: 1;
}
.gallery-tile:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}
/* 16 photos divide evenly at 2 and 4 columns (8 and 4 complete rows) at
   every breakpoint used here, so every tile is deliberately equal-sized —
   no ":last-child" auto-styling that breaks the moment the photo count
   changes again. */

/* ── Lightbox ── */
#gallery-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 500;
  background: rgba(0,0,0,.92);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
}
#gallery-lightbox.open { display: flex; }
#lb-img {
  max-width: 100%;
  max-height: 80vh;
  border-radius: 10px;
  object-fit: contain;
  display: block;
}
#lb-caption {
  color: rgba(255,255,255,.8);
  font-size: .82rem;
  text-align: center;
  max-width: 560px;
  line-height: 1.5;
}
.lb-close {
  position: absolute;
  top: 14px; right: 18px;
  background: rgba(255,255,255,.15);
  border: none;
  border-radius: 50%;
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  color: #fff;
  font-size: 1.1rem;
  transition: background .15s;
}
.lb-close:hover { background: rgba(255,255,255,.3); }
.lb-arrow {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  border: none; border-radius: 50%;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: #fff; font-size: 1.2rem;
  transition: background .15s;
}
.lb-arrow:hover { background: rgba(255,255,255,.3); }
.lb-prev { left: 10px; }
.lb-next { right: 10px; }
#lb-counter {
  position: absolute;
  top: 14px; left: 18px;
  color: rgba(255,255,255,.6);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
}
@media (max-width: 767px) {
  .gallery-grid { gap: 8px; }
  .gallery-tile { border-radius: 8px; }
  .lb-arrow { width: 34px; height: 34px; }
}


/* ── Final featured-home + applicant-pathway additions ── */
.featured-home-section { background: var(--navy); padding: 56px 20px 60px; }
.featured-home-section.alt { background: #071d31; }
.featured-home-inner { max-width: 1100px; margin: 0 auto; }
.featured-home-title { color: #fff; text-align: center; margin-top: 4px; }
.featured-home-sub { font-size: .86rem; color: rgba(255,255,255,.68); text-align: center; max-width: 620px; margin: 12px auto 0; line-height: 1.7; }
.home-gallery-preview { background: #fff; padding: 54px 20px 58px; border-bottom: 1px solid #ece8e1; }
.home-gallery-preview-inner { max-width: 1080px; margin: 0 auto; }
.home-gallery-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 28px; }
.home-gallery-preview-tile { border: 0; padding: 0; background: none; border-radius: 14px; overflow: hidden; aspect-ratio: 4/3; cursor: pointer; position: relative; }
.home-gallery-preview-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.home-gallery-preview-tile:hover img { transform: scale(1.035); }
.home-gallery-preview-tile:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
.home-gallery-caption { position: absolute; left: 9px; bottom: 9px; background: rgba(10,37,64,.88); color: #fff; font-size: .7rem; font-weight: 700; padding: 5px 9px; border-radius: 99px; }
.pathway-panel { margin-bottom: 22px; padding: 18px; border: 1.5px solid #d8e4e1; border-radius: 14px; background: #f6fbfa; }
.pathway-eyebrow { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; color: var(--teal); margin-bottom: 6px; }
.pathway-title { font-size: 1rem; font-weight: 800; color: var(--navy); margin-bottom: 5px; }
.pathway-help { font-size: .76rem; color: #6f7777; line-height: 1.55; margin-bottom: 13px; }
.pathway-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.pathway-option { display: flex; gap: 11px; align-items: flex-start; padding: 13px; border: 1.5px solid #d7deda; border-radius: 11px; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s, background .15s; }
.pathway-option:hover { border-color: var(--teal); }
.pathway-option:has(input:checked) { border-color: var(--teal); background: #eff9f6; box-shadow: 0 0 0 3px rgba(26,122,110,.08); }
.pathway-option input { width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; accent-color: var(--teal); }
.pathway-option strong { display: block; color: var(--navy); font-size: .83rem; line-height: 1.35; }
.pathway-option span { display: block; color: #777; font-size: .73rem; line-height: 1.45; margin-top: 3px; }
.pathway-error { display: none; color: #c0392b; font-size: .72rem; font-weight: 700; margin-top: 8px; }
.dc-highlight { grid-column: 1 / -1; background: #f4f8ff; border: 1.5px solid #c8d8f0; border-radius: 12px; padding: 14px; }
.dc-highlight .flabel { color: var(--navy); }
.reentry-only.is-hidden { display: none !important; }
@media (max-width: 768px) {
  .home-gallery-preview-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
}
@media (max-width: 420px) {
  .home-gallery-preview-grid { grid-template-columns: 1fr; }
}

@media (min-width: 900px) {
  .featured-home-section .fp-sm-1 { grid-column: 1 / 16; }
  .featured-home-section .fp-sm-2 { grid-column: 16 / 31; margin-top: 0; }
  .featured-home-section .fp-sm-3 { grid-column: 31 / 46; }
  .featured-home-section .fp-sm-4 { grid-column: 46 / 61; margin-top: 0; }
}


/* ── Expanded rental application integration ── */
.application-fee-notice,.application-privacy-notice,.application-submit-note{border-radius:14px;padding:15px 17px;margin-bottom:16px;line-height:1.65;font-size:.8rem}.application-fee-notice{background:#fffbf0;border:1.5px solid #f0e4c0;color:#5a4a2e}.application-privacy-notice{background:#f4f8ff;border:1.5px solid #c8d8f0;color:#42566a}.application-submit-note{margin-top:18px;background:#f7faf9;border:1.5px solid #cfe1dc;color:#43534f}.application-fee-notice strong,.application-privacy-notice strong,.application-submit-note strong{display:block;color:var(--navy);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.application-fee-notice span,.application-privacy-notice span,.application-submit-note span{display:block}.application-checklist-compact{margin-bottom:20px}.application-step-heading{font-size:1.06rem;font-weight:800;color:var(--navy);margin-bottom:5px;outline:none}.application-step-copy{font-size:.78rem;color:#777;line-height:1.55;margin-bottom:20px}.application-fieldset{border:1.5px solid #e3ded6;border-radius:13px;padding:14px;margin:18px 0;background:#fcfbf9}.application-fieldset legend{padding:0 7px;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--navy)}.field-help{font-size:.7rem;color:#74808a;line-height:1.5;margin-top:5px}.date-segments{display:grid;grid-template-columns:1.5fr .85fr 1fr;gap:10px;margin-top:10px}.subsection-card,.history-card{background:#faf9f7;border:1.5px solid #e7e1d8;border-radius:13px;padding:15px;margin-top:18px}.subsection-card h4,.history-card h4{font-size:.8rem;font-weight:800;color:var(--navy);margin:0 0 12px}.history-card summary{font-size:.8rem;font-weight:800;color:var(--navy);cursor:pointer;list-style-position:inside}.details-grid{margin-top:14px}.yesno-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(130px,.7fr);gap:10px 14px;align-items:center;margin-top:13px}.yesno-grid label{font-size:.78rem;color:#4f5660;line-height:1.4;font-weight:650}.form-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px}.form-nav.end{justify-content:flex-end}.form-next,.form-back,.form-submit,.copy-contact-btn{font-family:inherit;border-radius:10px;cursor:pointer;font-weight:800}.form-next{background:var(--navy);color:#fff;border:none;padding:12px 19px;font-size:.82rem}.form-back{background:transparent;color:var(--navy);border:2px solid #ddd8d0;padding:10px 18px;font-size:.8rem}.form-submit{background:var(--gold);color:var(--navy);border:none;padding:12px 20px;font-size:.84rem;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:190px}.copy-contact-btn{background:#f4f8ff;color:var(--navy);border:1.5px solid #c8d8f0;padding:9px 12px;font-size:.74rem;margin-bottom:14px}.consent-box{display:flex;align-items:flex-start;gap:10px;margin-top:14px;cursor:pointer;font-size:.78rem;color:#444;line-height:1.55;background:#fffbf0;border:1.5px solid #f0e4c0;border-radius:10px;padding:12px}.consent-box input{flex-shrink:0;width:18px;height:18px;margin-top:2px;accent-color:var(--navy);cursor:pointer}.consent-error{display:none;font-size:.72rem;color:#c0392b;margin-top:6px;padding-left:4px}.application-review-box{display:none;background:#f5f2ee;border-radius:10px;padding:14px;margin-top:18px}.review-title{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#888;margin-bottom:8px}.review-row{display:grid;grid-template-columns:110px 1fr;gap:8px;font-size:.77rem;padding:3px 0}.review-row span:first-child{color:#888}.review-row span:last-child{font-weight:650;color:#333}.submit-error-box{display:none;margin-top:14px;background:#fdecec;border:1.5px solid #f0b8b8;border-radius:10px;padding:12px 14px;font-size:.8rem;color:#8a2a2a;line-height:1.6}.phone-mask,.date-mask{font-variant-numeric:tabular-nums}.reentry-grid{margin-top:14px}
@media (max-width:768px){.date-segments{grid-template-columns:1.35fr .8fr 1fr}.yesno-grid{grid-template-columns:1fr}.form-nav{align-items:stretch}.form-next,.form-back,.form-submit{min-height:46px}.form-nav:not(.end) .form-next{flex:1}.review-row{grid-template-columns:92px 1fr}.history-card,.subsection-card{padding:13px}}
@media (max-width:430px){.date-segments{grid-template-columns:1fr;gap:8px}.form-nav{flex-direction:column-reverse}.form-nav.end{flex-direction:column}.form-next,.form-back,.form-submit{width:100%}.yesno-grid{gap:6px}.yesno-grid select{margin-bottom:8px}}

/* Pathway-driven application panels — 2026-08-24 */
.path-detail{margin-top:18px;padding:18px;border:1.5px solid #d9e6e3;border-radius:16px;background:#fbfdfc;box-shadow:0 8px 22px rgba(10,37,64,.04)}
.path-detail-title{margin:0 0 10px;color:#0A2540;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.path-detail.is-hidden,.community-contact-only.is-hidden,.general-only.is-hidden,.recent-only.is-hidden,.current-only.is-hidden,.reentry-only.is-hidden,.community-residence-only.is-hidden,.current-history-note.is-hidden{display:none!important}
.family-contact-card{margin-top:16px;background:#fffdf7;border-color:#ead9a5}
.current-history-note{margin:0 0 16px;padding:14px 16px;border:1.5px solid #d9e6e3;border-radius:12px;background:#f4fbf9;color:#35525d;font-size:.84rem;line-height:1.6}
.pathway-option b{font-weight:700;color:#8a5a00}
@media(max-width:768px){.path-detail{padding:16px 14px}.pathway-grid{gap:12px}}


/* Authorize.Net Accept Hosted — embedded $60 application payment */
.authorize-payment-box{margin:22px auto 0;max-width:680px;text-align:left;background:#fff;border:1.5px solid #dcd7cf;border-radius:14px;padding:18px;box-shadow:0 8px 22px rgba(10,37,64,.06)}
.authorize-payment-box h4{margin:0;color:var(--navy);font-size:1rem;font-weight:800}
.authorize-payment-intro{margin:8px 0 0;color:#505963;font-size:.8rem;line-height:1.6}
.authorize-payment-security{margin:10px 0 0;padding:9px 11px;border-radius:9px;background:#edf8f5;color:#315c55;font-size:.72rem;line-height:1.55}
.authorize-payment-status{margin:12px 0 0;font-size:.78rem;font-weight:700;line-height:1.5;color:#59636d}
.authorize-payment-status[data-kind="success"]{color:#176b5d}.authorize-payment-status[data-kind="error"]{color:#9b2f2f}.authorize-payment-status[data-kind="warning"]{color:#8a5a00}
.authorize-order-summary{margin:16px 0 4px;border:1.5px solid #e4ded4;border-radius:12px;background:#fbfaf8;overflow:hidden}
.authorize-order-summary[hidden]{display:none}
.authorize-order-title{margin:0;padding:14px 15px 11px;color:var(--navy);font-size:.9rem;font-weight:800;border-bottom:1px solid #ece7df;background:#fff}
.authorize-order-row,.authorize-order-total{display:grid;grid-template-columns:minmax(118px,.75fr) minmax(0,1.35fr);gap:14px;align-items:start;padding:11px 15px;font-size:.76rem;line-height:1.45}
.authorize-order-row{border-bottom:1px solid #eee9e2}
.authorize-order-row span,.authorize-order-total span{color:#6d747b;font-weight:650}
.authorize-order-row strong{color:#263746;font-weight:750;overflow-wrap:anywhere;word-break:normal}
.authorize-order-reference{font-family:monospace;letter-spacing:.01em}
.authorize-order-total{background:#f4f8f7;align-items:center}
.authorize-order-total span{color:var(--navy);font-weight:800}
.authorize-order-total strong{color:var(--navy);font-size:1.08rem;font-weight:900;text-align:right;white-space:nowrap}
.authorize-payment-form{display:none}
.authorize-payment-frame{display:block;width:100%;max-width:none;min-height:620px;margin:14px auto 0;border:0;background:#fff}
.authorize-payment-frame[hidden]{display:none}
.authorize-payment-retry{margin:12px 0 0;border:0;border-radius:9px;background:var(--navy);color:#fff;padding:10px 14px;font:700 .78rem inherit;cursor:pointer}
.authorize-payment-retry[hidden]{display:none}
@media(max-width:560px){.authorize-payment-box{padding:14px}.authorize-payment-frame{min-height:680px}.authorize-order-row,.authorize-order-total{grid-template-columns:1fr;gap:4px;padding:10px 12px}.authorize-order-total{grid-template-columns:1fr auto;gap:10px}.authorize-order-total strong{text-align:right}.authorize-order-title{padding:12px}}

/* Aug 29 pre-payment identity verification hotfix */
.prepayment-review-callout{background:#eef7f5;border:1.5px solid #bcded6;border-radius:12px;padding:15px 16px;margin:18px 0 10px;color:#314d47;line-height:1.55;font-size:.78rem}.prepayment-review-callout strong{display:block;color:var(--navy);font-size:.82rem;margin-bottom:5px}.prepayment-review-callout span{display:block}.review-edit-btn{margin-top:11px;background:#fff;color:var(--navy);border:1.5px solid #b9c9c5;border-radius:9px;padding:9px 12px;font-family:inherit;font-size:.75rem;font-weight:800;cursor:pointer}.review-edit-btn:focus-visible{outline:3px solid rgba(201,168,76,.45);outline-offset:2px}@media(max-width:430px){.review-edit-btn{width:100%;min-height:44px}}
