/* Victory Wholesale Loans demo site. One stylesheet, no frameworks.
   Palette: Victory Blue (primary), Midnight Navy (dark), Graphite (body), Ice Gray (bands),
   Championship Silver (borders only on light backgrounds), Victory Gold (small accents only, never text on white).
   Layout rules: one 1160px content column, centered section heads, pill buttons, nothing under 13px.
   The first block of variables below is the brand palette (scripts/rebrand_pdfs.py reads it, keep it first).
   Everything else uses the semantic tokens after it, which have light and dark values. */

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/montserrat-latin-var.woff2") format("woff2");
}

:root {
  --blue: #1F479C;
  --blue-dark: #173878;
  --blue-tint: #E9EEF8;
  --white: #FFFFFF;
  --silver: #C0BDBB;
  --navy: #101D3A;
  --graphite: #252A34;
  --ice: #F3F5F8;
  --gold: #C8A45D;
  --muted: #4B5365;
  --soft: #5C6475;
  --line: #DDE1E8;
  --radius: 16px;
  --col: 1160px;
  --pad: 24px;
  --band: 80px;
  --shadow: 0 1px 2px rgba(16, 29, 58, .05), 0 8px 24px rgba(16, 29, 58, .06);
  --font: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
@media (max-width: 767px) { :root { --pad: 16px; --band: 48px; } }

/* ---- semantic tokens: light (default) ---- */
:root {
  color-scheme: light;
  --surface: var(--white);
  --surface-alt: var(--ice);
  --surface-card: var(--white);
  --surface-bar: var(--white);
  --text: var(--graphite);
  --text-muted: var(--muted);
  --text-soft: var(--soft);
  --heading: var(--navy);
  --link: var(--blue);
  --link-hover: var(--navy);
  --accent: var(--blue);
  --border: var(--line);
  --border-strong: #7A8296;
  --focus: var(--blue);
  --tint: var(--blue-tint);
  --tint-text: var(--blue-dark);
  --control-bg: var(--ice);
  --control-text: var(--navy);
  --btn-alt-bg: var(--white);
  --btn-alt-text: var(--blue);
  --btn-alt-border: var(--blue);
  --btn-alt-hover-bg: var(--blue-tint);
  --btn-alt-hover-text: var(--blue-dark);
  --disabled-bg: #E4E7ED;
  --disabled-border: #C9CEDA;
  --disabled-text: var(--muted);
  --danger: #9B1C1C;
  --input-bg: var(--white);
  --table-head-bg: var(--navy);
  --table-head-text: var(--white);
  --row-alt: var(--ice);
  --swatch-2: var(--navy);
  --bar-border: rgba(16, 29, 58, .08);
  --bar-shadow: 0 10px 30px rgba(16, 29, 58, .16);
  --card-shadow: var(--shadow);
  --card-shadow-hover: 0 4px 10px rgba(16, 29, 58, .08), 0 18px 40px rgba(16, 29, 58, .14);
  --deep: var(--navy);
  --deep-2: #142A5E;
  --on-deep: var(--white);
  --on-deep-muted: #DFE4EF;
  --footer-bg: var(--navy);
  --footer-text: #D5DAE6;
  --footer-legal: #C3C9D8;
  /* program families: a tag and icon color pair per document type, each pair 4.5:1 or better */
  --fam-noinc-bg: #DDF1EE; --fam-noinc-text: #0B5A50;
  --fam-alt-bg: #ECE6F7; --fam-alt-text: #4B2A86;
  --fam-full-bg: #E3EBFA; --fam-full-text: #173878;
  --fam-dscr-bg: #F6EBD0; --fam-dscr-text: #6B4A00;
  --fam-jumbo-bg: #F6E2E7; --fam-jumbo-text: #8A1F3D;
  --fam-equity-bg: #FDE7D3; --fam-equity-text: #8A3B00;
  /* State Licensing map */
  --lm-can: #1F479C; --lm-lic: #9DB3E0; --lm-no: #D6D9E0; --lm-sel: #101D3A; --lm-stroke: #FFFFFF;
  --lm-on-can: #FFFFFF; --lm-on-lic: #101D3A; --lm-on-no: #4B5365;
  --lm-label: #6F7482; --lm-ally-ink: #8F6B1F; --lm-no-ink: #1F479C; --lm-yes-ink: #B42318;
}

/* ---- semantic tokens: dark. Chosen by the toggle (data-theme) or, with no saved choice, by the device ---- */
:root[data-theme="dark"] {
  color-scheme: dark;
  --surface: #0B1428;
  --surface-alt: #101D3A;
  --surface-card: #16264A;
  --surface-bar: #16264A;
  --text: #DDE3EE;
  --text-muted: #A9B3C7;
  --text-soft: #A9B3C7;
  --heading: #FFFFFF;
  --link: #8FB0EE;
  --link-hover: #B4CAF4;
  --accent: #8FB0EE;
  --border: #24365F;
  --border-strong: #5A6B90;
  --focus: #8FB0EE;
  --tint: #22386A;
  --tint-text: #C9D7F5;
  --control-bg: #22386A;
  --control-text: #FFFFFF;
  --btn-alt-bg: transparent;
  --btn-alt-text: #FFFFFF;
  --btn-alt-border: #8FB0EE;
  --btn-alt-hover-bg: #22386A;
  --btn-alt-hover-text: #FFFFFF;
  --disabled-bg: #24365F;
  --disabled-border: #3A4E7A;
  --disabled-text: #A9B3C7;
  --danger: #FF9B9B;
  --input-bg: #0B1428;
  --table-head-bg: #1F479C;
  --table-head-text: #FFFFFF;
  --row-alt: #101D3A;
  --swatch-2: #A9B3C7;
  --bar-border: rgba(255, 255, 255, .1);
  --bar-shadow: 0 10px 30px rgba(0, 0, 0, .45);
  --card-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);
  --card-shadow-hover: 0 4px 10px rgba(0, 0, 0, .35), 0 18px 40px rgba(0, 0, 0, .4);
  --footer-bg: #070E1E;
  --fam-noinc-bg: rgba(45, 212, 191, .18); --fam-noinc-text: #8FE8DC;
  --fam-alt-bg: rgba(167, 139, 250, .18); --fam-alt-text: #D6C8F5;
  --fam-full-bg: rgba(110, 155, 255, .18); --fam-full-text: #BFD2FF;
  --fam-dscr-bg: rgba(224, 179, 74, .18); --fam-dscr-text: #F0D898;
  --fam-jumbo-bg: rgba(240, 112, 140, .18); --fam-jumbo-text: #F7B8C7;
  --fam-equity-bg: rgba(251, 146, 60, .18); --fam-equity-text: #FFC48F;
  --lm-can: #6F93E8; --lm-lic: #4A67A8; --lm-no: #2E3856; --lm-sel: #FFFFFF; --lm-stroke: #16264A;
  --lm-on-can: #0B1428; --lm-on-lic: #FFFFFF; --lm-on-no: #C9CFDD;
  --lm-label: #C0BDBB; --lm-ally-ink: #E2C383; --lm-no-ink: #8FB0EE; --lm-yes-ink: #FF8A80;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --surface: #0B1428;
    --surface-alt: #101D3A;
    --surface-card: #16264A;
    --surface-bar: #16264A;
    --text: #DDE3EE;
    --text-muted: #A9B3C7;
    --text-soft: #A9B3C7;
    --heading: #FFFFFF;
    --link: #8FB0EE;
    --link-hover: #B4CAF4;
    --accent: #8FB0EE;
    --border: #24365F;
    --border-strong: #5A6B90;
    --focus: #8FB0EE;
    --tint: #22386A;
    --tint-text: #C9D7F5;
    --control-bg: #22386A;
    --control-text: #FFFFFF;
    --btn-alt-bg: transparent;
    --btn-alt-text: #FFFFFF;
    --btn-alt-border: #8FB0EE;
    --btn-alt-hover-bg: #22386A;
    --btn-alt-hover-text: #FFFFFF;
    --disabled-bg: #24365F;
    --disabled-border: #3A4E7A;
    --disabled-text: #A9B3C7;
    --danger: #FF9B9B;
    --input-bg: #0B1428;
    --table-head-bg: #1F479C;
    --table-head-text: #FFFFFF;
    --row-alt: #101D3A;
    --swatch-2: #A9B3C7;
    --bar-border: rgba(255, 255, 255, .1);
    --bar-shadow: 0 10px 30px rgba(0, 0, 0, .45);
    --card-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);
    --card-shadow-hover: 0 4px 10px rgba(0, 0, 0, .35), 0 18px 40px rgba(0, 0, 0, .4);
    --footer-bg: #070E1E;
    --fam-noinc-bg: rgba(45, 212, 191, .18); --fam-noinc-text: #8FE8DC;
    --fam-alt-bg: rgba(167, 139, 250, .18); --fam-alt-text: #D6C8F5;
    --fam-full-bg: rgba(110, 155, 255, .18); --fam-full-text: #BFD2FF;
    --fam-dscr-bg: rgba(224, 179, 74, .18); --fam-dscr-text: #F0D898;
    --fam-jumbo-bg: rgba(240, 112, 140, .18); --fam-jumbo-text: #F7B8C7;
  --fam-equity-bg: rgba(251, 146, 60, .18); --fam-equity-text: #FFC48F;
    --lm-can: #6F93E8; --lm-lic: #4A67A8; --lm-no: #2E3856; --lm-sel: #FFFFFF; --lm-stroke: #16264A;
    --lm-on-can: #0B1428; --lm-on-lic: #FFFFFF; --lm-on-no: #C9CFDD;
    --lm-label: #C0BDBB; --lm-ally-ink: #E2C383; --lm-no-ink: #8FB0EE; --lm-yes-ink: #FF8A80;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 104px; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--surface);
}
img { max-width: 100%; height: auto; }
a { color: var(--link); text-underline-offset: 3px; }
a:hover { color: var(--link-hover); }
p { margin: 0 0 1rem; }
h1, h2, h3, h4, h5, h6 { color: var(--heading); line-height: 1.15; margin: 0 0 .75rem; font-weight: 800; text-wrap: balance; }
h1 { font-size: clamp(1.875rem, 4.2vw, 3rem); letter-spacing: -.02em; line-height: 1.08; }
h2 { font-size: clamp(1.75rem, 3.3vw, 2.75rem); letter-spacing: -.015em; }
h3 { font-size: 1.25rem; }
h4, h5, h6 { font-size: 1.125rem; }
ul, ol { padding-left: 1.25rem; }

.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;
}

:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
.hero :focus-visible, .site-footer :focus-visible, .demo-bar :focus-visible, .cta-card :focus-visible { outline-color: var(--white); }

.skip-link {
  position: absolute; left: 8px; top: -80px; z-index: 100;
  background: var(--deep); color: var(--on-deep); padding: .75rem 1rem; border-radius: 8px; font-weight: 600;
}
.skip-link:focus { top: 8px; }

.wrap { width: 100%; max-width: calc(var(--col) + 2 * var(--pad)); margin: 0 auto; padding: 0 var(--pad); }
.wrap.measure { max-width: calc(720px + 2 * var(--pad)); }

/* ---- demo bar ---- */
.demo-bar {
  background: var(--deep); color: var(--on-deep); text-align: center;
  font-size: .8125rem; font-weight: 600; padding: .5rem var(--pad); line-height: 1.4;
  border-bottom: 2px solid var(--gold);
}

/* ---- header: one floating bar ---- */
.site-header { position: sticky; top: 0; z-index: 50; height: 0; padding: 0 var(--pad); }
.bar {
  position: relative; top: 12px; max-width: var(--col); margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 .6rem;
  min-height: 64px; padding: 8px 10px 8px 22px;
  background: var(--surface-bar); border: 1px solid var(--bar-border); border-radius: 32px;
  box-shadow: var(--bar-shadow);
}
.logo { display: inline-flex; align-items: center; min-height: 44px; flex: none; margin-right: auto; }
/* Round 7.4 (V-092): the colour and white lockups are the same artwork at the same size, so one
   height keeps both the same width and swapping light and dark does not move the bar. */
.logo img { display: block; width: auto; height: 30px; }
.logo .logo-on-dark { display: none; }
:root[data-theme="dark"] .logo .logo-on-light { display: none; }
:root[data-theme="dark"] .logo .logo-on-dark { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .logo .logo-on-light { display: none; }
  :root:not([data-theme="light"]) .logo .logo-on-dark { display: block; }
}

.menu-toggle {
  display: inline-flex; align-items: center; gap: .6rem;
  font: inherit; font-weight: 700; font-size: .9375rem; min-height: 44px; padding: 0 1.1rem;
  background: var(--control-bg); color: var(--control-text); border: 0; border-radius: 999px; cursor: pointer;
}
.menu-toggle::before {
  content: ""; width: 18px; height: 12px; flex: none;
  background: linear-gradient(currentColor, currentColor) 0 0 / 100% 2px no-repeat,
              linear-gradient(currentColor, currentColor) 0 50% / 100% 2px no-repeat,
              linear-gradient(currentColor, currentColor) 0 100% / 100% 2px no-repeat;
}
.menu-toggle[hidden] { display: none; }
/* With scripting (html.js is set in <head> by theme.js) the button is drawn from the first paint, before site.js
   clears [hidden], so the header does not shift on page load (Round 7.2) */
html.js .menu-toggle[hidden] { display: inline-flex; }

/* light/dark switch: a round button fixed at the bottom right. A moon in light mode, a sun in dark mode.
   Below the header (z-index 50) so an open phone menu is never covered; above the page content. */
.theme-toggle {
  position: fixed; z-index: 40;
  right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; padding: 0; border-radius: 50%; cursor: pointer;
  background: var(--surface-card); color: var(--heading); border: 1px solid var(--border-strong);
  box-shadow: var(--bar-shadow);
}
.theme-toggle[hidden] { display: none; }
.theme-icon {
  display: block; width: 20px; height: 20px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.theme-toggle[aria-pressed="true"] .theme-icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 1.5v2.5M12 20v2.5M4.6 4.6l1.8 1.8M17.6 17.6l1.8 1.8M1.5 12H4M20 12h2.5M4.6 19.4l1.8-1.8M17.6 6.4l1.8-1.8'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 1.5v2.5M12 20v2.5M4.6 4.6l1.8 1.8M17.6 17.6l1.8 1.8M1.5 12H4M20 12h2.5M4.6 19.4l1.8-1.8M17.6 6.4l1.8-1.8'/%3E%3C/svg%3E");
}
.theme-toggle:hover { background: var(--tint); }
.theme-toggle:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }

@media (max-width: 479px) {
  .bar { padding-left: 16px; gap: 0 .5rem; }
  .logo img { height: 24px; }
  .menu-toggle { padding: 0 .9rem; white-space: nowrap; }
}

.site-nav { flex-basis: 100%; display: none; }
.site-nav.open { display: block; }
.nav-list { list-style: none; margin: 0; padding: 8px 0 10px; display: flex; flex-direction: column; }
.nav-list li { border-top: 1px solid var(--border); }
.nav-link {
  display: flex; align-items: center; min-height: 52px; padding: 0 6px;
  font-size: 1.0625rem; font-weight: 600; color: var(--heading); text-decoration: none;
}
.nav-link:hover { color: var(--link); }
.nav-link[aria-current="page"] { color: var(--link); }
.nav-list .nav-cta { padding-top: 14px; }
.nav-cta .btn { width: 100%; }
/* Resources group, phone and tablet: a plain heading with its links indented beneath, always shown */
.nav-group-btn { display: none; }
.nav-group-title {
  display: flex; align-items: center; min-height: 44px; padding: 8px 6px 0;
  font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted);
}
.nav-list .nav-sub { list-style: none; margin: 0; padding: 0 0 6px 16px; }
.nav-list .nav-sub li { border-top: 0; }
.nav-sub .nav-link { min-height: 48px; }
/* outside links (Victory HUB): an outline pill, first in the phone menu, left of the main button on a desktop */
.nav-list .nav-out-phone { border-top: 0; padding: 6px 0 12px; }
.nav-out .btn { width: 100%; }
.nav-out-desk { display: none; }
.btn.btn-outline { background: transparent; color: var(--btn-alt-text); border-color: var(--btn-alt-border); }
a.btn.btn-outline:hover { background: var(--btn-alt-hover-bg); color: var(--btn-alt-hover-text); border-color: var(--btn-alt-border); }
.btn.btn-outline::after { content: "\2197"; margin-left: .4rem; font-weight: 700; }
/* without scripting the menu is simply always open */
@media (scripting: none) {
  .site-header { height: auto; padding-bottom: 12px; background: var(--deep); }
  .site-nav { display: block; }
}

@media (min-width: 1240px) {
  .bar { flex-wrap: nowrap; border-radius: 999px; }
  .menu-toggle, .menu-toggle[hidden], html.js .menu-toggle[hidden] { display: none; }
  .site-nav, .site-nav.open { display: block; flex-basis: auto; }
  /* Round 7.1: more air between the menu items (was 2px apart with 10px padding) */
  .nav-list { flex-direction: row; align-items: center; gap: 12px; padding: 0; }
  .nav-list li { border: 0; }
  .nav-link { min-height: 44px; padding: 0 16px; border-radius: 999px; font-size: .9375rem; white-space: nowrap; }
  .nav-link:hover, .nav-link[aria-current="page"] { background: var(--control-bg); }
  /* Resources: a button with a caret that opens a white card of links. With scripting, site.js sets .open
     (hover, click, Escape, click outside); without it, hover and focus open the card. */
  .nav-group { position: relative; }
  .nav-group-title { display: none; }
  .nav-group-btn {
    display: inline-flex; align-items: center; gap: .4rem; font: inherit; font-size: .9375rem; font-weight: 600;
    color: var(--heading); background: none; border: 0; cursor: pointer;
  }
  .nav-group-btn:hover, .nav-group-btn[aria-expanded="true"], .nav-group-btn.is-current { background: var(--control-bg); }
  .nav-group-btn:hover { color: var(--link); }
  .nav-group-btn.is-current { color: var(--link); }
  .caret {
    width: 7px; height: 7px; flex: none; margin-top: -3px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);
    transition: transform .15s ease;
  }
  .nav-group-btn[aria-expanded="true"] .caret { transform: rotate(-135deg); margin-top: 3px; }
  .nav-list .nav-sub {
    display: none; position: absolute; top: calc(100% + 12px); left: 0; z-index: 60; min-width: 240px; padding: 8px;
    background: var(--surface-card); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--bar-shadow);
  }
  .nav-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
  .nav-group.open .nav-sub { display: block; }
  html:not(.js) .nav-group:hover .nav-sub, html:not(.js) .nav-group:focus-within .nav-sub { display: block; }
  .nav-sub .nav-link { min-height: 44px; padding: 0 14px; border-radius: 10px; }
  .nav-sub .nav-link:hover, .nav-sub .nav-link[aria-current="page"] { background: var(--control-bg); }
  .nav-list .nav-cta { padding: 0 0 0 6px; }
  .nav-cta .btn { width: auto; }
  .nav-out-phone { display: none; }
  .nav-out-desk { display: block; padding-left: 8px; }
  .nav-out .btn { width: auto; padding-left: 1.1rem; padding-right: 1.1rem; }
  @media (scripting: none) { .site-header { height: 0; padding-bottom: 0; background: none; } }
}

/* ---- buttons ---- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; text-align: center;
  min-height: 48px; padding: .5rem 1.65rem; border-radius: 999px; border: 2px solid var(--blue);
  background: var(--blue); color: var(--white); font: inherit; font-weight: 700; font-size: .96875rem; line-height: 1.25;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
a.btn:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: var(--white); transform: translateY(-1px); }
.btn-secondary { background: var(--btn-alt-bg); color: var(--btn-alt-text); border-color: var(--btn-alt-border); }
a.btn-secondary:hover { background: var(--btn-alt-hover-bg); color: var(--btn-alt-hover-text); border-color: var(--btn-alt-border); }
.btn-light { background: var(--white); color: var(--navy); border-color: var(--white); }
a.btn-light:hover { background: var(--blue-tint); color: var(--navy); border-color: var(--blue-tint); }
.btn-ghost { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .7); }
a.btn-ghost:hover { background: rgba(255, 255, 255, .12); color: var(--white); border-color: var(--white); }
.btn-small { min-height: 44px; padding: .4rem 1.35rem; font-size: .9375rem; }
.btn:disabled { background: var(--disabled-bg); border-color: var(--disabled-border); color: var(--disabled-text); cursor: not-allowed; }

.actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.75rem 0 0; align-items: center; }
@media (max-width: 639px) {
  .actions { flex-direction: column; align-items: stretch; }
  .actions .btn { width: 100%; white-space: normal; }
}

.eyebrow {
  font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent);
  margin: 0 0 .9rem;
}
.tag {
  display: inline-block; align-self: flex-start; margin: 0 0 .9rem; padding: .3rem .7rem; border-radius: 8px;
  background: var(--tint); color: var(--tint-text); font-size: .8125rem; font-weight: 700; line-height: 1.3;
}

/* ---- hero (dark in both themes) ---- */
.hero {
  position: relative; color: var(--on-deep); background: var(--deep);
  background-image: radial-gradient(900px 560px at 88% 12%, rgba(31, 71, 156, .9), rgba(31, 71, 156, 0) 70%),
                    linear-gradient(165deg, var(--deep) 0%, var(--deep-2) 100%);
  padding: 132px 0 64px; overflow: hidden;
}
.hero h1 { color: var(--on-deep); margin-bottom: 1.25rem; }
.hero .eyebrow { color: var(--gold); }
.hero a:not(.btn) { color: var(--on-deep); }
.hero-intro { color: var(--on-deep-muted); font-size: 1.125rem; line-height: 1.65; margin: 0; }

.hero-page { text-align: center; }
.hero-page .hero-copy { max-width: 820px; margin: 0 auto; }
.hero-page .hero-intro { max-width: 680px; margin: 0 auto; }
.hero-page .actions { justify-content: center; }

.hero-home { padding: 124px 0 80px; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: center; }
.hero-home h1 { font-size: clamp(1.875rem, 3.4vw, 2.75rem); line-height: 1.1; }
.hero-home .hero-copy { max-width: 720px; }
/* round 7 (V-060): a shorter, lighter paragraph: white text, a narrower measure and a looser line */
/* an override with a blank line in its text (home-0005, V-034) shows it as two paragraphs; the words are unchanged */
.hero-intro.has-breaks { white-space: pre-line; }
.hero-home .hero-intro { max-width: 620px; color: var(--on-deep); font-size: 1.0625rem; line-height: 1.7; }
.hero-art { display: none; position: relative; }
.hero-art img { display: block; width: 100%; height: auto; }
/* a slow light sweep across the V: the gradient moves, the V-shaped mask keeps it inside the mark. It crosses
   for about 3.5 seconds out of every 7 and is off for reduced motion (see the end of this file) */
.hero-sheen {
  position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(105deg, rgba(255, 255, 255, 0) 36%, rgba(255, 255, 255, .9) 50%, rgba(255, 255, 255, 0) 64%);
  background-size: 300% 100%; background-repeat: no-repeat; background-position: 0 0;
  -webkit-mask: url("../img/hero-mark.svg") center / contain no-repeat;
  mask: url("../img/hero-mark.svg") center / contain no-repeat;
  animation: v-sweep 7s ease-in-out infinite;
}
@keyframes v-sweep { 0%, 50% { background-position: 0 0; } 100% { background-position: 100% 0; } }
/* phones: about three lines of the intro, and a Read more button for the rest (site.js). Without scripting the
   button is not shown and the full paragraph is. */
.read-more {
  display: none; align-items: center; min-height: 44px; margin: .25rem 0 0; padding: 0; background: none; border: 0;
  font: inherit; font-weight: 700; font-size: .96875rem; color: var(--on-deep); text-decoration: underline;
  text-underline-offset: 4px; cursor: pointer;
}
.read-more:hover { text-decoration-thickness: 2px; }
@media (min-width: 1000px) {
  .hero-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 56px; }
  .hero-art { display: block; filter: drop-shadow(0 30px 60px rgba(4, 10, 28, .45)); }
}
@media (max-width: 767px) {
  .hero { padding: 116px 0 44px; }
  .hero-home { padding: 116px 0 52px; }
  .hero-intro { font-size: 1rem; line-height: 1.55; }
}
@media (max-width: 479px) {
  .hero-home { padding: 108px 0 40px; }
  .hero-home h1 { margin-bottom: 1rem; }
  .hero-home .hero-actions { margin-top: 1rem; }
  .js .hero-intro.is-collapsed {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden;
  }
  .js .read-more { display: inline-flex; }
}

.trust { background: var(--surface-alt); border-bottom: 1px solid var(--border); }
.trust p { margin: 0; padding: .95rem 0; font-size: .875rem; font-weight: 600; color: var(--text-muted); text-align: center; }
.trust-part { white-space: nowrap; }
/* Desktop (the 1240px breakpoint the rest of this file uses): one line at 13px, the smallest type the
   site allows. Below that: one part per line, no orphan word (V-086). Never size this line fluidly:
   it is a compliance disclosure and must not fall under the 13px floor scripts/ui_check.py enforces. */
@media (min-width: 1240px) {
  .trust p { font-size: .8125rem; white-space: nowrap; }
}
@media (max-width: 1239px) {
  /* stacked, so the band carries several lines: tighten it so it stays a strip, not a block of text */
  .trust p { padding: .55rem 0; line-height: 1.45; }
  .trust-part { display: block; }
  .trust-sep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (max-width: 599px) {
  .trust-part { white-space: normal; text-wrap: balance; }
}

/* ---- sections ---- */
.band { padding: var(--band) 0; }
.band-plain { background: var(--surface); }
.band-alt { background: var(--surface-alt); }
.band-compact { padding: 20px 0; background: var(--surface); border-bottom: 1px solid var(--border); }

.section-head { text-align: center; margin: 0 auto 44px; }
.section-head h2 { max-width: 860px; margin: 0 auto; }
.section-intro { max-width: 720px; margin: 1rem auto 0; font-size: 1.125rem; color: var(--text-muted); }
.section-head .actions { justify-content: center; }
@media (max-width: 767px) {
  .section-head { margin-bottom: 28px; }
  .section-intro { font-size: 1.0625rem; }
}

.sub-head {
  display: flex; align-items: center; gap: 16px; margin: 44px 0 20px;
  font-size: .875rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--heading);
  text-wrap: wrap;
}
.sub-head::after { content: ""; flex: 1; height: 1px; background: var(--border); min-width: 24px; }
.section-head + .sub-head, .wrap > .sub-head:first-child { margin-top: 0; }

/* ---- cards ---- */
.cards { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; gap: 20px; }
.cards > * { flex: 0 1 calc((100% - 40px) / 3); min-width: 0; }
.cards.n-1 > * { flex-basis: min(100%, 560px); }
.cards.n-2 > *, .cards.n-4 > * { flex-basis: calc((100% - 20px) / 2); }
@media (max-width: 959px) { .cards > * { flex-basis: calc((100% - 20px) / 2); } }
@media (min-width: 700px) and (max-width: 959px) { .cards.n-3 > * { flex-basis: calc((100% - 40px) / 3); } .cards.n-3 .card { padding: 22px 20px; } }
/* the partner cards carry uneven amounts of text, so they stack below desktop width */
@media (max-width: 959px) { .page-partner-with-us main > .band:not(.band-alt) .cards.n-3 > * { flex-basis: 100%; } }
@media (max-width: 639px) { .cards > *, .cards.n-2 > *, .cards.n-4 > * { flex-basis: 100%; } }

.card {
  background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 26px 26px 24px;
  display: flex; flex-direction: column; box-shadow: var(--card-shadow); min-width: 0; overflow-wrap: break-word;
}
.card > :last-child { margin-bottom: 0; }
.card p { color: var(--text-muted); font-size: .9375rem; line-height: 1.6; margin-bottom: .6rem; }
.card-title { font-size: 1.1875rem; font-weight: 800; line-height: 1.25; letter-spacing: 0; color: var(--heading); margin: 0 0 .5rem; }
.card .card-actions { margin-top: auto; padding-top: 1.1rem; }
.card .btn { white-space: normal; max-width: 100%; }
.card .card-more { margin: auto 0 0; padding-top: .9rem; }
.card-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .9375rem; font-weight: 700; text-decoration: none; }
.card-link::after { content: "\2192"; margin-left: .45rem; transition: transform .15s ease; }
.card-link:hover::after { transform: translateX(3px); }
.card .card-line { margin: .25rem 0 0; }
.card-contact { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.25rem; font-weight: 800; text-decoration: none; color: var(--link); }

.program-top { display: flex; align-items: center; gap: 12px; margin: 0 0 .9rem; min-height: 46px; }
/* every badge is at least two lines tall, so a long label rarely pushes the title down; a narrow card that needs a third line grows instead of spilling (round 7, V-055) */
.program-top .tag { margin: 0; align-self: center; min-width: 0; flex: 0 1 auto; min-height: 46px; display: flex; align-items: center; }
.program-icon {
  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px;
  border-radius: 12px; background: var(--tint); color: var(--tint-text);
}
.program-icon .icon { display: block; width: 22px; height: 22px; }
.program[data-family="noinc"] { --fam-bg: var(--fam-noinc-bg); --fam-text: var(--fam-noinc-text); }
.program[data-family="alt"] { --fam-bg: var(--fam-alt-bg); --fam-text: var(--fam-alt-text); }
.program[data-family="full"] { --fam-bg: var(--fam-full-bg); --fam-text: var(--fam-full-text); }
.program[data-family="dscr"] { --fam-bg: var(--fam-dscr-bg); --fam-text: var(--fam-dscr-text); }
.program[data-family="jumbo"] { --fam-bg: var(--fam-jumbo-bg); --fam-text: var(--fam-jumbo-text); }
.pm-group[data-group="documentation"] { --fam-bg: var(--fam-full-bg); --fam-text: var(--fam-full-text); }
.pm-group[data-group="investor"] { --fam-bg: var(--fam-noinc-bg); --fam-text: var(--fam-noinc-text); }
.pm-group[data-group="equity"] { --fam-bg: var(--fam-equity-bg); --fam-text: var(--fam-equity-text); }
.program[data-family] .tag, .program[data-family] .program-icon { background: var(--fam-bg); color: var(--fam-text); }
.program .card-title { font-size: 1.25rem; margin-bottom: .3rem; }
.card .program-sub { font-size: .875rem; font-weight: 700; color: var(--text); margin-bottom: .6rem; }
.card .program-desc { margin-bottom: 0; }
/* program cards: a soft lift on hover; a card with a link is clickable as a whole (the link stretches over it) */
.card.program { position: relative; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.card.program:hover { box-shadow: var(--card-shadow-hover); }
.card.program.has-link:hover { transform: translateY(-4px); border-color: var(--accent); }
.card.program.has-link .card-link::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.card.program.has-link:hover .card-link::after { transform: translateX(3px); }

/* ---- playbook: a vertical track on phones and tablets, a horizontal track with a connector line from 1100px.
   Each step is a gold numbered node; the line to the next node is drawn in on scroll (site.js adds .draw and
   .is-drawn; without scripting or with reduced motion the line is simply drawn). ---- */
.steps {
  --node: 44px; --gap: 28px; --n: 6;
  list-style: none; counter-reset: step; margin: 0 auto; padding: 0; max-width: 680px; display: grid; gap: var(--gap);
}
.steps.n-5 { --n: 5; } .steps.n-7 { --n: 7; } .steps.n-8 { --n: 8; }
.step { counter-increment: step; position: relative; padding: 0 0 0 calc(var(--node) + 20px); min-height: var(--node); }
.step::before {
  content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: 0; z-index: 1;
  display: flex; align-items: center; justify-content: center; width: var(--node); height: var(--node);
  border-radius: 50%; background: var(--gold); color: var(--navy); font-size: 1rem; font-weight: 800; line-height: 1;
}
.step::after {
  content: ""; position: absolute; left: calc(var(--node) / 2 - 1.5px); top: var(--node); bottom: calc(-1 * var(--gap));
  width: 3px; border-radius: 2px; background-color: var(--border-strong);
  background-image: linear-gradient(var(--accent), var(--accent)); background-repeat: no-repeat;
  background-size: 100% 100%; background-position: top;
}
.step:last-child::after { display: none; }
/* "Step N" labels (V-081): the gold node is a plain marker, the label carries the number */
.steps-labeled .step::before { content: ""; }
.step-label { margin: 0 0 .15rem; padding-top: 4px; font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.step .step-label + .card-title { padding-top: 0; }
.step .card-title { margin: 0 0 .35rem; padding-top: 9px; }
.step p { margin: 0; color: var(--text-muted); font-size: .9375rem; line-height: 1.6; }
.step:nth-child(1) { --i: 0; } .step:nth-child(2) { --i: 1; } .step:nth-child(3) { --i: 2; }
.step:nth-child(4) { --i: 3; } .step:nth-child(5) { --i: 4; } .step:nth-child(6) { --i: 5; } .step:nth-child(7) { --i: 6; }
.steps.draw .step::after { transition: background-size .55s ease; transition-delay: calc(var(--i, 0) * .45s); }
.steps.draw:not(.is-drawn) .step::after { background-size: 100% 0; }
@media (min-width: 1100px) {
  .steps { --gap: 20px; max-width: none; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); text-align: center; }
  .step { padding: 0; min-height: 0; }
  .step::before { position: static; margin: 0 auto 18px; }
  .step::after {
    left: auto; right: calc(50% + var(--node) / 2 + 5px); top: calc(var(--node) / 2 - 1.5px); bottom: auto;
    width: calc(100% + var(--gap) - var(--node) - 10px); height: 3px;
    background-size: 100% 100%; background-position: left;
  }
  /* each line runs from the node before to its own node, so it never reaches past the step's right edge */
  .step:first-child::after { display: none; }
  .step:last-child::after { display: block; }
  .step .card-title { padding-top: 0; font-size: 1.0625rem; }
  .steps.draw:not(.is-drawn) .step::after { background-size: 0 100%; }
}

/* ---- product pages, Resources band: three equal cards, each a whole-card link (V-068) ---- */
.res-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.res-card { position: relative; align-items: center; text-align: center; padding: 32px 24px 22px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.res-icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 1rem; border-radius: 16px; background: var(--tint); color: var(--tint-text); }
.res-icon .icon { display: block; width: 28px; height: 28px; }
.res-card .card-title { margin-bottom: .25rem; }
.res-card .card-more { margin: auto 0 0; padding-top: .6rem; }
.res-card .card-link::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.res-card:hover { transform: translateY(-4px); border-color: var(--accent); box-shadow: var(--card-shadow-hover); }
.res-card:hover .card-link::after { transform: translateX(3px); }
.res-card:focus-within { outline: 3px solid var(--focus); outline-offset: 3px; }
.res-card .card-link:focus-visible { outline: none; }
@media (max-width: 639px) { .res-cards { grid-template-columns: 1fr; } }

/* ---- closing call to action (dark in both themes) ---- */
.cta-card {
  text-align: center; color: var(--on-deep); border-radius: 28px; padding: 64px 32px;
  background: var(--deep);
  background-image: radial-gradient(700px 360px at 50% -20%, rgba(31, 71, 156, .95), rgba(31, 71, 156, 0) 70%),
                    linear-gradient(165deg, var(--deep) 0%, var(--deep-2) 100%);
  box-shadow: 0 24px 48px rgba(16, 29, 58, .18);
}
.cta-card h2 { color: var(--on-deep); font-size: clamp(1.625rem, 3vw, 2.375rem); max-width: 760px; margin: 0 auto; }
.cta-card .section-intro, .cta-card p { color: var(--on-deep-muted); max-width: 620px; margin: .9rem auto 0; font-size: 1.0625rem; }
.cta-card .card-title { color: var(--on-deep); font-size: 1.25rem; margin: 2rem 0 0; }
.cta-card .card-title + p { margin-top: .5rem; }
.cta-card .actions { justify-content: center; margin-top: 1.75rem; max-width: none; }
.cta-card a:not(.btn) { color: var(--on-deep); }
@media (max-width: 639px) { .cta-card { padding: 44px 22px; border-radius: 22px; } }
/* the slimmer closing band on short pages (Programs, Forms & Guidelines) */
.band-cta-slim { padding: 40px 0; }
.band-cta-slim .cta-card { padding: 34px 28px; border-radius: 22px; }
.band-cta-slim .cta-card h2 { font-size: clamp(1.375rem, 2.4vw, 1.75rem); }
.band-cta-slim .cta-card .section-intro, .band-cta-slim .cta-card p { margin-top: .5rem; font-size: 1rem; }
.band-cta-slim .cta-card .card-title { margin-top: 1rem; font-size: 1.125rem; }
.band-cta-slim .cta-card .actions { margin-top: 1.1rem; }
@media (max-width: 639px) { .band-cta-slim { padding: 32px 0; } .band-cta-slim .cta-card { padding: 28px 20px; } }

/* ---- Why Victory: a strip on navy, three across, an icon and a gold rule each; stacked on phones ---- */
.band-why {
  padding: var(--band) 0; color: var(--on-deep); background: var(--deep);
  background-image: linear-gradient(165deg, var(--deep) 0%, var(--deep-2) 100%);
  border-top: 1px solid rgba(255, 255, 255, .08); border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.band-why :focus-visible { outline-color: var(--white); }
.band-why .section-head h2 { color: var(--on-deep); }
.band-why .eyebrow { color: var(--gold); }
.band-why .section-intro { color: var(--on-deep-muted); }
.why-strip { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 719px) { .why-strip { grid-template-columns: minmax(0, 1fr); } }
.why-item {
  padding: 26px 26px 28px; border-top: 3px solid var(--gold); border-radius: 0 0 var(--radius) var(--radius);
  background: rgba(255, 255, 255, .07); min-width: 0; overflow-wrap: break-word;
}
.why-icon {
  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 16px;
  border-radius: 50%; background: rgba(255, 255, 255, .12); color: var(--on-deep);
}
.why-icon .icon { display: block; width: 24px; height: 24px; }
.why-item .card-title { color: var(--on-deep); margin: 0 0 .5rem; }
.why-item p { margin: 0; color: var(--on-deep-muted); font-size: .9375rem; line-height: 1.6; }
.why-item > :last-child { margin-bottom: 0; }

/* ---- About Us ---- */
.about-sections .card p { font-size: 1rem; }
.band-links .section-head { margin-bottom: 24px; }
.band-links .actions { justify-content: center; margin-top: 0; }

/* ---- contact ---- */
.contact-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 48px; align-items: center; padding: 34px 36px; border-left: 4px solid var(--accent); }
.contact-card .card-title { font-size: 1.5rem; margin-bottom: .35rem; }
.contact-card .tag { margin-bottom: .75rem; }
.card .cc-name { font-weight: 700; color: var(--heading); font-size: 1.0625rem; margin: 0; }
.card .cc-line { margin: 0 0 .25rem; font-size: 1.0625rem; font-weight: 600; color: var(--text); }
.cc-line a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.card .cc-note { margin: .6rem 0 0; font-size: .875rem; }
@media (max-width: 767px) { .contact-card { grid-template-columns: minmax(0, 1fr); padding: 26px; } }

.faq { max-width: 820px; margin: 0 auto; }
.faq-item { border: 1px solid var(--border); border-radius: 14px; background: var(--surface-card); margin-bottom: 12px; box-shadow: var(--card-shadow); }
.faq-item summary { list-style: none; cursor: pointer; font-weight: 700; color: var(--heading); padding: 18px 56px 18px 22px; position: relative; min-height: 60px; line-height: 1.4; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: ""; position: absolute; right: 24px; top: 24px; width: 9px; height: 9px; border-right: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(45deg); transition: transform .15s ease; }
.faq-item[open] summary::after { transform: rotate(-135deg); top: 28px; }
.faq-a { padding: 0 22px 20px; }
.faq-a p { margin: 0; color: var(--text-muted); font-size: 1rem; overflow-wrap: break-word; }

/* ---- quick links and documents ---- */
.quicklinks { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; }
.ql-label { margin: 0; font-size: .875rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--heading); }
.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.chip { display: inline-flex; align-items: center; min-height: 44px; padding: .35rem 1.1rem; border: 1px solid var(--border); border-radius: 999px; background: var(--control-bg); font-weight: 600; font-size: .9375rem; text-decoration: none; }
a.chip:hover { border-color: var(--accent); background: var(--tint); }
/* Forms & Guidelines: the quick links jump to a section, which briefly lights up (site.js adds .is-flash) */
a.chip { color: var(--control-text); }
.doc-groups { display: grid; gap: 20px; max-width: 880px; margin: 0 auto; }
.doc-stack { display: grid; gap: 56px; }
.doc-section { scroll-margin-top: 104px; border-radius: 24px; padding: 4px; outline: 3px solid transparent; outline-offset: 10px; }
.doc-section:focus { outline: none; }
.doc-section.is-flash { animation: doc-flash 1.8s ease-out; }
@keyframes doc-flash { 0%, 35% { outline-color: var(--gold); background: var(--tint); } 100% { outline-color: transparent; background: transparent; } }
.doc-section-title { font-size: clamp(1.5rem, 2.6vw, 2rem); margin: 0 0 20px; }
.doc-products { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.doc-products + .doc-card { margin-top: 20px; }
.doc-product .doc-list { margin-bottom: .25rem; }
.doc-cols { columns: 2 320px; column-gap: 32px; }
.doc-cols li { break-inside: avoid; }

.doc-list { list-style: none; margin: .5rem 0 0; padding: 0; }
.doc-list li { border-top: 1px solid var(--border); }
.doc-list li:first-child { border-top: 0; }
.doc-list { margin-top: .25rem; }
.doc-link { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 12px; margin: 0 -12px; border-radius: 10px; font-size: .9375rem; font-weight: 600; text-decoration: none; transition: background-color .15s ease; }
/* a document row (round 7, V-056): a muted file-type tag, then a 20px download icon, and a light highlight
   on the whole row when hovered or focused */
.doc-link[data-type]::before {
  content: attr(data-type); flex: none; width: auto; height: auto; border: 0; background: none;
  padding: .1rem .45rem; border-radius: 6px; background: var(--surface-alt); color: var(--text-muted);
  font-size: .8125rem; font-weight: 700; letter-spacing: .04em; line-height: 1.3;
}
.doc-link::after { content: "\2192"; margin-left: auto; padding-left: 12px; }
.doc-link[data-type]::after {
  content: ""; flex: none; width: 20px; height: 20px; margin-left: auto; padding: 0; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 11l5 5 5-5M5 20h14'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 11l5 5 5-5M5 20h14'/%3E%3C/svg%3E") center / contain no-repeat;
}
.doc-link:hover, .doc-link:focus-visible { color: var(--link-hover); background: var(--tint); }
/* a page link in a list of documents: no document icon (round 4, Consumer vs. Business Purpose) */
.doc-link:not([href*=".pdf"])::before { display: none; }

/* ---- licensing: two panels and the state table ---- */
.tabs { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 32px; }
@media (max-width: 767px) { .tabs { grid-template-columns: minmax(0, 1fr); } }
.tab-panel { background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; box-shadow: var(--card-shadow); min-width: 0; }
.tab-panel .card-title { font-size: 1.375rem; margin-bottom: .2rem; }
.tab-sub { color: var(--text-muted); font-weight: 600; font-size: .9375rem; margin-bottom: 1rem; }
.legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.legend li { position: relative; padding-left: 1.5rem; font-size: .9375rem; color: var(--text); }
.legend li::before { content: ""; position: absolute; left: 0; top: .5em; width: 10px; height: 10px; border-radius: 3px; background: var(--accent); }
.legend li:nth-child(2)::before { background: var(--swatch-2); }
.legend li:nth-child(3)::before { background: var(--silver); }
.legend li:nth-child(n+4)::before { background: var(--surface-card); border: 2px solid var(--accent); }
.tab-note { margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--border); font-size: .875rem; color: var(--text-muted); }
.tab-note + .tab-note { border-top: 0; padding-top: 0; margin-top: .6rem; }

.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-card); margin: 0 0 32px; box-shadow: var(--card-shadow); }
.table-wrap:focus-visible { outline-offset: -3px; }
table { border-collapse: collapse; width: 100%; font-size: .9375rem; }
th, td { text-align: left; vertical-align: top; padding: 14px 18px; border-bottom: 1px solid var(--border); overflow-wrap: break-word; }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }
thead th { background: var(--table-head-bg); color: var(--table-head-text); font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; }
tbody th { font-weight: 700; color: var(--heading); }
tbody tr:nth-child(even) { background: var(--row-alt); }
td.check { text-align: center; color: var(--accent); font-weight: 800; font-size: 1.125rem; width: 5.5rem; }
.page-licenses tbody th, .band-lm-home tbody th { width: 11rem; }
.page-licenses thead th:last-child, .band-lm-home thead th:last-child { text-align: center; }
.band:not(.longform) .wrap > p { font-size: .9375rem; color: var(--text-muted); max-width: 900px; overflow-wrap: break-word; }
@media (max-width: 639px) {
  table { font-size: .875rem; }
  th, td { padding: 10px 10px; }
  .page-licenses table, .band-lm-home table { table-layout: fixed; }
  .page-licenses thead th:first-child, .page-licenses tbody th, .band-lm-home thead th:first-child, .band-lm-home tbody th { width: 7.25rem; }
  .page-licenses thead th:last-child, .band-lm-home thead th:last-child, td.check { width: 3.25rem; padding-left: 4px; padding-right: 4px; }
  .page-licenses td, .band-lm-home td { overflow-wrap: anywhere; }
  .longform table { table-layout: fixed; }
  .longform th, .longform td { overflow-wrap: anywhere; padding: 10px 8px; }
  .longform thead th { letter-spacing: 0; }
  .longform thead th:first-child { width: 38%; }
}

/* ---- long-form legal pages ---- */
.longform h2 { font-size: clamp(1.5rem, 2.6vw, 1.875rem); margin: 0 0 1rem; text-wrap: wrap; }
.longform h3 { font-size: 1.1875rem; line-height: 1.35; margin: 2.5rem 0 .75rem; padding-top: 1.5rem; border-top: 1px solid var(--border); text-wrap: wrap; }
.longform h2 + h3 { margin-top: 1.5rem; }
.longform p { font-size: 1.0625rem; line-height: 1.75; color: var(--text); overflow-wrap: break-word; }
.longform .table-wrap { margin: 1.5rem 0 2rem; }
.longform tbody th { font-weight: 600; color: var(--text); }
.longform .actions { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--border); }

/* ---- forms ---- */
.form-card { max-width: 820px; margin: 0 auto; background: var(--surface-card); border: 1px solid var(--border); border-radius: 20px; padding: 40px; box-shadow: var(--card-shadow); }
@media (max-width: 767px) { .form-card { padding: 22px 18px; border-radius: 16px; } }
.notice {
  background: var(--surface-alt); border: 1px solid var(--border); border-left: 4px solid var(--gold); border-radius: 10px;
  padding: .85rem 1rem; font-weight: 700; color: var(--heading); margin-bottom: 1rem; font-size: .9375rem;
}
.band-legal { padding: 36px 0 56px; }
.band-legal .legal-pointer { margin: 0; }
.req-note { font-size: .875rem; color: var(--text-soft); margin-bottom: 1.5rem; }
/* The off-screen field in form_meta. Not display:none, because a script that skips hidden fields
   would skip it too, and then filling it in would stop telling us anything. */
.hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.preview-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; align-items: start; }
.field-wide, .form-foot, .form-actions { grid-column: 1 / -1; }
@media (max-width: 639px) { .preview-form { grid-template-columns: minmax(0, 1fr); } }
.field { min-width: 0; }
.field label, .field legend { display: block; font-weight: 600; font-size: .9375rem; color: var(--heading); margin-bottom: .4rem; padding: 0; }
.req { color: var(--danger); font-weight: 700; margin-left: .2rem; }
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], select, textarea {
  display: block; width: 100%; min-height: 48px; padding: .6rem .9rem; font: inherit; font-size: 1rem; color: var(--text);
  background: var(--input-bg); border: 1px solid var(--border-strong); border-radius: 10px;
}
textarea { min-height: 140px; resize: vertical; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; }
fieldset.field { border: 0; padding: 0; margin: 0; min-width: 0; }
.opts { display: grid; gap: 0 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.opt, .field-check { display: flex; align-items: flex-start; gap: 12px; }
.field-check { flex-wrap: wrap; padding: 14px 16px; background: var(--surface-alt); border-radius: 12px; }
.opt { min-height: 44px; align-items: center; }
.opt label, .field-check label { flex: 1; min-width: 0; margin: 0; font-weight: 500; font-size: .9375rem; line-height: 1.55; color: var(--text); }
.opt label { padding: .55rem 0; }
.field-check label { min-height: 24px; }
input[type="checkbox"] { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--blue); }
.field-check .help { flex-basis: 100%; }
.help { font-size: .8125rem; color: var(--text-soft); margin: .4rem 0 0; }
.form-foot { font-size: .875rem; color: var(--text-muted); margin: 0; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.hint { font-size: .875rem; color: var(--text-soft); }
@media (max-width: 639px) { .form-actions .btn { width: 100%; } }

/* ---- turn times ---- */
.tt-asof {
  display: inline-block; margin: 1rem 0 0; padding: .45rem 1rem; border-radius: 999px;
  background: var(--tint); color: var(--tint-text); font-size: .875rem; font-weight: 700; line-height: 1.4;
}
.hero .tt-asof { background: rgba(255, 255, 255, .12); color: var(--white); border: 1px solid rgba(255, 255, 255, .28); margin-top: 1.25rem; }
.jump { margin-top: 1.5rem; }
.jump-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
@media (max-width: 639px) {
  .jump-list { flex-direction: column; align-items: stretch; }
  .jump-list .btn { width: 100%; white-space: normal; }
}

.tt-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1099px) { .tt-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .tt-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .tt-tiles.n-5 > :last-child { grid-column: 1 / -1; }
}
.tt-tile {
  display: flex; flex-direction: column; justify-content: space-between; text-align: center; min-width: 0;
  background: var(--surface-card); border: 1px solid var(--border); border-top: 3px solid var(--gold);
  border-radius: var(--radius); padding: 20px 14px 18px; box-shadow: var(--card-shadow);
}
.tt-tile-label { margin: 0 0 .6rem; font-size: .9375rem; font-weight: 700; line-height: 1.3; color: var(--heading); }
.tt-tile .tt-value { margin: 0; font-size: .9375rem; font-weight: 600; color: var(--text-muted); }
.tt-count { display: block; font-size: 2.75rem; font-weight: 800; line-height: 1.05; color: var(--accent); font-variant-numeric: tabular-nums; }
.tt-more { justify-content: center; margin-top: 28px; }

.tt-notes { max-width: 820px; margin: 0 auto 32px; }
.tt-notes .notice { margin-bottom: 10px; }
/* Business Days Remaining and Holidays & Office Closures (Round 7.2) */
.tt-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; max-width: 820px; margin: 0 auto 32px; }
.tt-fact { background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 22px; text-align: center; }
.tt-fact dt { font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--heading); margin: 0 0 6px; }
.tt-fact dd { margin: 0; font-size: 1.125rem; font-weight: 700; color: var(--text); }
.tt-fact ul { list-style: none; margin: 0; padding: 0; font-size: 1rem; }
.tt-fact li + li { margin-top: 4px; }
.tt-holiday-date { color: var(--text-muted); font-weight: 600; }
.tt-groups { columns: 3 300px; column-gap: 20px; }
.tt-group {
  break-inside: avoid; margin: 0 0 20px; overflow: hidden;
  background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--card-shadow);
}
.tt-group-title {
  margin: 0; padding: 12px 18px; text-align: center; font-size: 1.0625rem; line-height: 1.35; letter-spacing: 0;
  background: var(--table-head-bg); color: var(--table-head-text);
}
.tt-group-note { font-weight: 500; }
.tt-metrics { margin: 0; }
.tt-metric { display: flex; align-items: baseline; justify-content: space-between; gap: 6px 14px; flex-wrap: wrap; padding: 12px 18px; border-top: 1px solid var(--border); }
.tt-metric:first-child { border-top: 0; }
.tt-metric dt { font-weight: 600; font-size: .9375rem; color: var(--text); }
.tt-metric dd { margin: 0 0 0 auto; font-weight: 800; font-size: .9375rem; color: var(--heading); white-space: nowrap; }
.tt-group > .tt-value { margin: 0; padding: 14px 18px; text-align: center; font-weight: 800; font-size: 1.0625rem; color: var(--heading); }
.tt-footer { text-align: center; margin-top: 12px; }
.tt-foot { margin: 0 auto; max-width: 760px; color: var(--text-muted); font-size: .9375rem; }

.tt-tables { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .tt-tables { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tt-table-wrap { overflow: hidden; background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--card-shadow); min-width: 0; }
.tt-table { table-layout: fixed; }
.tt-table caption { padding: 12px 16px; background: var(--blue); color: var(--white); font-weight: 800; font-size: 1.0625rem; text-align: center; }
.tt-table thead th { background: var(--tint); color: var(--tint-text); text-transform: none; letter-spacing: 0; font-size: .875rem; text-align: center; vertical-align: bottom; }
.tt-table .tt-corner { background: var(--tint); width: 36%; }
.tt-table th, .tt-table td { padding: 12px 10px; }
.tt-table tbody th { font-size: .9375rem; }
.tt-table td { text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 559px) {
  /* phones: each row's label goes full width and its three dates sit under the column names */
  .tt-table, .tt-table thead, .tt-table tbody, .tt-table caption { display: block; }
  .tt-table thead tr, .tt-table tbody tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tt-table .tt-corner { display: none; }
  .tt-table thead th { display: block; padding: 10px 6px; }
  .tt-table tbody th { grid-column: 1 / -1; padding: 12px 12px 2px; border-bottom: 0; text-align: center; }
  .tt-table td { padding: 4px 6px 12px; }
  .tt-table tbody tr:nth-child(even) { background: var(--row-alt); }
}

/* ---- footer (dark in both themes) ---- */
/* extra bottom room so the floating light/dark switch (48px + 16px + safe area) never sits over the last line */
/* Footer (round 7, V-057): one spacing scale, 48px between sections, 24px inside a section, 12px between lines */
/* Round 7.2 (V-072): footer spacing halved from the V-057 scale (48, 24, 12) to 24, 16, 8 */
.site-footer { background: var(--footer-bg); color: var(--footer-text); padding: 32px 0; font-size: .875rem; }
.site-footer a { color: var(--white); }
.f-top { display: grid; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid rgba(255, 255, 255, .16); }
/* Round 7.6 (V-096): the footer carries the horizontal lockup the top nav uses on dark, so the tall
   row V-093 needed is gone. 489x44 puts the tagline letters at about 9px; below 36px they stop
   being readable, so that is the floor. Under 489px of container the image shrinks to fit. */
.f-logo { display: inline-flex; align-items: center; min-height: 44px; justify-self: start; }
.f-logo img { display: block; width: 489px; max-width: 100%; height: auto; }
.f-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 24px; }
.f-nav-title { margin: 0 0 8px; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--white); }
.f-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 24px; }
.f-nav-link { display: inline-flex; align-items: center; min-height: 36px; font-size: .9375rem; font-weight: 600; text-decoration: none; }
.f-nav-link:hover, .f-link:hover { text-decoration: underline; color: var(--white); }
.f-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 24px; padding: 24px 0; }
.f-group-1 { grid-column: span 1; }
.f-group-3 { grid-column: span 3; }
.f-title { font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--white); margin: 0 0 8px; text-wrap: balance; }
.f-cols { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
.f-group-3 .f-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.f-line, .f-sub { margin: 0 0 8px; color: var(--footer-text); overflow-wrap: break-word; text-wrap: pretty; }
.f-sub { font-weight: 700; color: var(--white); }
.f-link { text-decoration: none; font-weight: 600; }
.f-legal { padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .16); font-size: .8125rem; color: var(--footer-legal); line-height: 1.7; }
.f-legal .legal { margin: 0; max-width: 960px; overflow-wrap: break-word; text-wrap: pretty; }
/* the floating light/dark switch sits at the bottom right: keep clear space under the legal text so it never covers it */
@media (max-width: 1199px) { .site-footer { padding-bottom: calc(80px + env(safe-area-inset-bottom)); } }
@media (max-width: 899px) {
  .f-details { grid-template-columns: minmax(0, 1fr); }
  .f-group-1, .f-group-3 { grid-column: auto; }
  .f-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
  .site-footer { padding: 28px 0 calc(96px + env(safe-area-inset-bottom)); }
  .f-top { padding-bottom: 24px; }
  .f-details { padding: 24px 0; }
  .f-legal { padding-top: 24px; }
  .f-group-3 .f-cols { grid-template-columns: minmax(0, 1fr); }
  .f-link { display: inline-flex; align-items: center; min-height: 32px; }
}

/* ---- State Licensing map (Licenses page). Layout: one band, centered head, map card and picker/detail column
   at equal height, document links, collapsed table, disclosures. Without scripting the map is not shown and the
   collapsed table still lists every license. ---- */
html:not(.js) .lm-grid { display: none; }
.lm-defs { max-width: 760px; margin: .875rem auto 0; font-size: .875rem; color: var(--text-muted); display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 28px; }
.lm-defs b { color: var(--heading); font-weight: 700; }
.lm-defs > span + span { position: relative; }
.lm-defs > span + span::before { content: ""; position: absolute; left: -15px; top: 50%; width: 4px; height: 4px; border-radius: 50%; background: var(--gold); transform: translateY(-50%); }
@media (max-width: 600px) { .lm-defs { flex-direction: column; align-items: center; } .lm-defs > span + span::before { display: none; } }
.lm-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
@media (max-width: 900px) { .lm-grid { grid-template-columns: minmax(0, 1fr); } }
.lm-card { background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--card-shadow); padding: 26px 26px 24px; min-width: 0; }
.lm-mapcard { display: flex; flex-direction: column; justify-content: center; }
.lm-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.lm-side .lm-detail { flex: 1; }
svg.lm-us { width: 100%; height: auto; display: block; }
svg.lm-us path[data-ab] { stroke: var(--lm-stroke); stroke-width: 1; cursor: pointer; }
svg.lm-us path[data-ab]:hover { filter: brightness(1.15); }
svg.lm-us path.can { fill: var(--lm-can); }
svg.lm-us path.lic { fill: var(--lm-lic); }
svg.lm-us path.no { fill: var(--lm-no); }
svg.lm-us .lm-ally path { fill: none; stroke: var(--gold); stroke-width: 6.5; stroke-linejoin: round; pointer-events: none; }
svg.lm-us .lm-borders path { fill: none; stroke: var(--lm-stroke); stroke-width: 2; stroke-linejoin: round; pointer-events: none; }
svg.lm-us .lm-sel path { fill: none; stroke: var(--lm-sel); stroke-width: 4; pointer-events: none; filter: drop-shadow(0 1px 3px rgba(16, 29, 58, .45)); }
/* No box around a clicked or focused state: the selection outline on the map already shows which state is active. */
svg.lm-us path:focus, svg.lm-us path:focus-visible { outline: none; }
.lm-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; font-size: .875rem; color: var(--text-muted); margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border); }
.lm-legend > span { display: inline-flex; align-items: center; gap: 8px; }
.lm-sw { width: 14px; height: 14px; border-radius: 4px; display: inline-block; flex: none; }
.lm-sw.can { background: var(--lm-can); }
.lm-sw.lic { background: var(--lm-lic); }
.lm-sw.ally { background: transparent; border: 2px solid var(--gold); }
.lm-picker label { display: grid; gap: 8px; }
.lm-picker label > span { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lm-label); }
.lm-picker select { font: inherit; font-size: .9375rem; font-weight: 600; color: var(--control-text); background: var(--control-bg); border: 1px solid var(--border); border-radius: 10px; min-height: 44px; padding: 0 12px; width: 100%; }
.lm-picker select:focus-visible, .lm-faq summary:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.lm-detail h3 { margin: 0; font-size: 1.5rem; line-height: 1.2; }
.lm-chip { display: inline-block; font-size: .8125rem; font-weight: 700; border-radius: 999px; padding: 4px 12px; width: max-content; max-width: 100%; margin-top: 10px; }
.lm-chip.can { background: var(--lm-can); color: var(--lm-on-can); }
.lm-chip.lic { background: var(--lm-lic); color: var(--lm-on-lic); }
.lm-chip.no { background: var(--lm-no); color: var(--lm-on-no); }
.lm-part { border-top: 1px solid var(--border); margin-top: 16px; padding-top: 16px; display: grid; gap: 6px; }
.lm-sub { margin: 0; font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lm-label); }
.lm-lic { margin: 0; font-size: .9375rem; color: var(--text); overflow-wrap: anywhere; }
.lm-allyline { margin: 0; font-size: .9375rem; font-weight: 800; color: var(--lm-ally-ink); }
.lm-detail dl { margin: 0; display: grid; grid-template-columns: 1fr auto; font-size: .9375rem; }
.lm-detail dt, .lm-detail dd { padding: 10px 0; border-bottom: 1px solid var(--border); }
.lm-detail dl > :nth-last-child(-n+2) { border-bottom: 0; }
.lm-detail dt { color: var(--text-muted); }
.lm-detail dd { margin: 0; font-weight: 800; text-align: right; }
.lm-detail dd.no { color: var(--lm-no-ink); }
.lm-detail dd.yes { color: var(--lm-yes-ink); }
.lm-note { font-size: .875rem; background: var(--surface-alt); border-radius: 10px; padding: 10px 12px; margin: 12px 0 0; color: var(--text); }
.lm-doclinks { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 32px; margin-top: 20px; }
.lm-faq { background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--card-shadow); margin-top: 32px; overflow: hidden; }
.lm-faq summary { list-style: none; cursor: pointer; position: relative; padding: 18px 56px 18px 22px; min-height: 60px; display: flex; align-items: center; font-weight: 700; color: var(--heading); }
.lm-faq summary::-webkit-details-marker { display: none; }
.lm-faq summary::after { content: ""; position: absolute; right: 24px; top: 50%; width: 9px; height: 9px; border-right: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.lm-faq[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.lm-tablewrap { padding: 0 22px 22px; }
.lm-tablewrap .table-wrap { margin: 0; box-shadow: none; }
/* the Texas disclosure sits in a full-width row directly under the Texas row (V-077) */
.lm-tablewrap tr.row-note td { background: var(--surface-alt); color: var(--text-muted); font-size: .8125rem; line-height: 1.6; text-align: left; white-space: normal; }
.lm-tablewrap tr.row-note p { margin: 0; max-width: none; font-size: inherit; color: inherit; }
/* Round 7.2 (V-082): a state's disclosure sits in its license cell, below the license name, smaller and in italics */
strong.caps { text-transform: uppercase; font-weight: 600; }
.cell-par { margin: 0 0 .6em; max-width: none; font-size: inherit; color: inherit; line-height: inherit; }
.cell-par:last-child { margin-bottom: 0; }
.cell-note { margin: 8px 0 0; max-width: none; font-size: .8125rem; font-style: italic; font-weight: 400; line-height: 1.6; color: var(--text-muted); white-space: normal; }
.cell-note p { margin: 0; max-width: none; font-size: inherit; color: inherit; }
.cell-note p + p { margin-top: .85em; }
.lm-disc { margin-top: 40px; border-top: 1px solid var(--border); padding-top: 28px; display: grid; gap: 12px; }
.band:not(.longform) .lm-disc > p { margin: 0; font-size: .8125rem; line-height: 1.6; color: var(--text-muted); max-width: none; }
@media (max-width: 767px) { .lm-card { padding: 20px 18px; } .lm-tablewrap { padding: 0 12px 16px; } }
@media (prefers-reduced-motion: reduce) { .lm-faq summary::after { transition: none; } }

/* ---- round 4: header search ---- */
.site-search { position: static; flex: none; order: 1; }
.site-search[hidden] { display: none; }
html.js .site-search[hidden] { display: block; }
.menu-toggle { order: 2; }
.site-nav { order: 3; }
.search-toggle {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0;
  border-radius: 50%; border: 0; background: var(--control-bg); color: var(--control-text); cursor: pointer;
}
.search-toggle:hover, .search-toggle[aria-expanded="true"] { background: var(--tint); color: var(--link); }
.search-icon .icon { display: block; width: 20px; height: 20px; }
.search-panel {
  position: absolute; left: 0; right: 0; top: calc(100% + 10px); z-index: 70; padding: 12px;
  background: var(--surface-card); border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--bar-shadow);
}
.search-panel[hidden] { display: none; }
.search-panel input[type="search"] { border-radius: 999px; padding-left: 1.1rem; }
.search-list { list-style: none; margin: 8px 0 0; padding: 0; max-height: min(60vh, 420px); overflow-y: auto; }
.search-list:empty { display: none; }
.search-list a {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 8px 12px;
  border-radius: 12px; color: var(--heading); text-decoration: none; font-weight: 600; font-size: .9375rem;
}
.search-list a:hover, .search-list [aria-selected="true"] a { background: var(--control-bg); color: var(--link); }
.search-title { min-width: 0; overflow-wrap: anywhere; }
.search-kind { flex: none; font-size: .8125rem; font-weight: 700; color: var(--text-muted); }
.search-empty { margin: 10px 12px 2px; font-size: .9375rem; color: var(--text-muted); }
@media (min-width: 1240px) {
  .site-search { order: 4; margin-left: 6px; }
  .search-panel { left: auto; width: 440px; }
}

/* ---- round 4: Resources menu label is a link, the caret beside it opens the card ---- */
.nav-group-split .nav-group-label { display: none; }
a.nav-group-title { text-decoration: none; }
a.nav-group-title:hover { color: var(--link); }
@media (min-width: 1240px) {
  .nav-group-split { display: flex; align-items: center; }
  /* equal padding on both sides so the label sits in the middle of its pill (Round 7.2) */
  .nav-group-split .nav-group-label { display: flex; }
  .nav-group-split .nav-caret-btn { width: 32px; min-height: 44px; padding: 0; justify-content: center; border-radius: 999px; }
  .nav-group-label.is-current { color: var(--link); background: var(--control-bg); }
}

/* ---- round 4: program cards with a product link and a document link ---- */
.card .card-more-2 { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; }
.card-dl { position: relative; z-index: 1; display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; font-weight: 600; color: var(--text-muted); }
.card-dl:hover { color: var(--link); }
.plain-name { font-weight: 600; color: var(--text); }

/* ---- round 4: product pages ---- */
.product-nav { background: var(--surface-alt); border-bottom: 1px solid var(--border); }
.pn-wrap { display: flex; justify-content: space-between; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
.pn-link {
  display: flex; flex-direction: column; min-width: 0; max-width: 48%; min-height: 44px; padding: 6px 12px;
  border-radius: 14px; text-decoration: none; color: var(--heading);
}
.pn-link:hover { background: var(--tint); }
.pn-next { text-align: right; margin-left: auto; }
.pn-dir { font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--link); }
.pn-prev .pn-dir::before { content: "\2190\00a0"; }
.pn-next .pn-dir::after { content: "\00a0\2192"; }
.pn-text { display: flex; flex-direction: column; }
.pn-name { font-weight: 800; font-size: 1rem; }
.pn-label { font-size: .875rem; color: var(--text-muted); overflow-wrap: anywhere; }
.product-grid { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 960px) { .product-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; } }
.pi-copy p { font-size: 1.0625rem; color: var(--text); }
.pi-title { font-size: clamp(1.625rem, 3vw, 2.25rem); }
.glance {
  background: var(--surface-card); border: 1px solid var(--border); border-top: 4px solid var(--gold);
  border-radius: var(--radius); padding: 26px; box-shadow: var(--card-shadow); min-width: 0; overflow-wrap: break-word;
}
.glance-eyebrow { margin-bottom: .5rem; }
.glance .glance-title { font-size: 1.1875rem; margin: 1rem 0 .5rem; letter-spacing: 0; }
.glance .glance-eyebrow + .glance-title { margin-top: 0; }
.glance-list { list-style: none; margin: 0 0 .75rem; padding: 0; }
.glance-list li { position: relative; padding: 7px 0 7px 26px; border-top: 1px solid var(--border); font-size: .9375rem; color: var(--text); }
.glance-list li:first-child { border-top: 0; }
.glance-list li::before {
  content: ""; position: absolute; left: 2px; top: 13px; width: 12px; height: 7px;
  border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg);
}
.glance .glance-note { font-size: .875rem; color: var(--text-muted); margin: .75rem 0; }
.glance .glance-actions { margin-top: .75rem; }
.glance-more { margin: 1rem 0 0; padding-top: .75rem; border-top: 1px solid var(--border); }

/* ---- round 4: Consumer vs. Business Purpose comparison ---- */
.cmp-wrap { border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-card); box-shadow: var(--card-shadow); overflow: hidden; }
.cmp-table { table-layout: fixed; }
.cmp-table thead th { font-size: .875rem; text-align: left; }
.cmp-corner { background: var(--table-head-bg); width: 22%; }
.cmp-table tbody th { font-size: 1rem; }
.cmp-table td p { margin: 0 0 .4rem; }
.cmp-col { display: none; }
.cmp-list { list-style: none; margin: 0; padding: 0; }
.cmp-list li { padding: 3px 0; }
.cmp-links li { padding: 0; }
.cmp-link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.cmp-more { margin: 0; }
@media (max-width: 767px) {
  .cmp-table, .cmp-table tbody, .cmp-table tr, .cmp-table th, .cmp-table td { display: block; width: auto; }
  .cmp-table thead { display: none; }
  .cmp-table tbody th { background: var(--table-head-bg); color: var(--table-head-text); }
  .cmp-table tbody tr:nth-child(even) { background: none; }
  .cmp-col { display: block; margin-bottom: .3rem; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
}

/* ---- round 4: Quick Pricer placeholder and product names ---- */
/* Round 7.6 (V-097): the live pricer, framed. It is a React app that fills whatever width it is given
   and has no outer scroller of its own, so the frame has to be tall enough or the app's own page
   scrolls inside it (the double scrollbar). Its height is not a pure function of width: the same
   width re-measured minutes apart gave 1026 and 1356, because the results panel changes. So each
   band is set above the tallest height measured across that band, and the extra shows as whitespace
   rather than a cut-off form. Measured 2026-11-06 at frame widths 350 to 1208: under 700 up to 2264,
   700 to 1079 up to 1408, 1080 and over up to 868. A first pass at 2250/1450/920 clipped the 390
   page by 14px, so each band now carries about 100px more than its worst measured render. */
.pricer-embed { margin: 0 auto 28px; }
.pricer-frame {
  display: block; width: 100%; height: 960px; border: 0;
  border-radius: 24px; background: var(--surface-card); box-shadow: var(--card-shadow);
}
/* The frame is the page width less the wrap padding (32px, 48px from 768 up), so these page
   breakpoints keep the frame inside one band of the app's own layout: 739 and under puts the frame
   at 690 or less, 1137 and under at 1089 or less. 1137 rather than 1199: the app switches to its
   wide, short layout between frame widths 1080 and 1090, so from viewport 1138 (frame 1090) up the
   960px band applies. Ending the tall band at 1199 left frames of 1090 to 1151 rendering the short
   layout inside a 1550px frame, about 745px of empty background at 1199. */
@media (max-width: 1137px) { .pricer-frame { height: 1550px; } }
@media (max-width: 739px) { .pricer-frame { height: 2450px; } }
.pricer-newtab-line { margin: 10px 0 0; text-align: center; font-size: .875rem; }
.pricer-newtab { color: var(--link); }
.pricer-box {
  position: relative; max-width: 880px; margin: 0 auto; text-align: center; padding: 40px 32px;
  border: 1px solid var(--border); border-radius: 24px; background: var(--surface-card); box-shadow: var(--card-shadow);
}
.pricer-icon { display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; border-radius: 50%; background: var(--tint); color: var(--tint-text); margin-bottom: 12px; }
.pricer-icon .icon { width: 28px; height: 28px; }
.pricer-box .pricer-tag { display: table; margin: 0 auto .75rem; }
.pricer-title { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.pricer-text { max-width: 560px; margin: 0 auto; color: var(--text-muted); }
.pricer-actions { justify-content: center; }
.name-list { max-width: 1080px; margin: 0 auto; }
.name-list .nl-title { text-align: center; margin-bottom: .35rem; }
.nl-sub { text-align: center; color: var(--text-muted); margin: 0 0 1.5rem; }
.pm-group { margin: 0 0 1.5rem; }
.pm-group-title { font-size: .875rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 .75rem; }
.pm-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pm-link { display: flex; align-items: center; gap: 14px; height: 100%; min-height: 76px; padding: 14px 18px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-card); text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
.pm-link:hover { border-color: var(--accent); box-shadow: var(--card-shadow-hover); }
.pm-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--fam-bg, var(--tint)); color: var(--fam-text, var(--tint-text)); }
.pm-icon .icon { width: 22px; height: 22px; }
.pm-text { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.pm-title { font-weight: 800; font-size: 1rem; line-height: 1.3; color: var(--heading); }
.pm-tag { margin: 0; padding: .15rem .55rem; background: var(--fam-bg, var(--tint)); color: var(--fam-text, var(--tint-text)); }
.pm-link:hover .pm-title { color: var(--link); }
.pm-more { margin: .5rem 0 0; text-align: center; }
@media (max-width: 900px) { .pm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .pm-grid { grid-template-columns: 1fr; } }
.pricer-disclaimer { max-width: 720px; margin: 1.25rem auto 0; text-align: left; font-size: .875rem; line-height: 1.55; color: var(--text-muted); }
.pricer-disclaimer p { margin: 0; }

/* ---- round 4: Resources hub ---- */
.hub-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.hub-card { position: relative; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.hub-card:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-hover); border-color: var(--accent); }
.hub-icon { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border-radius: 14px; background: var(--tint); color: var(--tint-text); margin-bottom: 16px; }
.hub-icon .icon { width: 24px; height: 24px; }
.hub-link { color: var(--heading); text-decoration: none; }
.hub-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.hub-link:hover { color: var(--link); }

/* ---- round 4: forms (Work With Victory) ---- */
.consent-note { margin: 0; padding: .7rem 1rem; border-radius: 10px; border-left: 4px solid var(--gold); background: var(--surface-alt); font-size: .875rem; font-weight: 700; color: var(--heading); }

/* ---- round 4: Work With Victory form, one step at a time (site.js adds .is-stepped). Without scripting every
   screen shows ---- */
.band-ww { padding-top: 40px; }
.ww-grid { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1000px) { .ww-grid { grid-template-columns: minmax(0, 280px) minmax(0, 1fr); } }
@media (max-width: 999px) { .ww-side { order: 2; } }
.ww-side { display: grid; gap: 12px; }
.ww-side-card { background: var(--surface-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--card-shadow); min-width: 0; overflow-wrap: anywhere; }
.ww-side-card p { margin: 0; }
.ww-side-eyebrow { font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin-bottom: .35rem !important; }
.ww-side-name { font-size: 1.0625rem; font-weight: 800; color: var(--heading); }
.ww-side-text { font-size: .9375rem; color: var(--text-muted); }
.ww-side-line a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.form-card.ww-frame { max-width: none; margin: 0; }
.ww-form { grid-template-columns: minmax(0, 1fr); }
.ww-screen { min-width: 0; }
.ww-screen + .ww-screen { padding-top: 28px; border-top: 1px solid var(--border); }
.ww-form.is-stepped .ww-screen + .ww-screen { padding-top: 0; border-top: 0; }
.ww-screen[hidden], .ww-form [hidden] { display: none !important; }
.ww-screen.is-entering { animation: sc-in .28s ease-out; }
@keyframes sc-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.ww-title { font-size: 1.375rem; margin: 0 0 .5rem; letter-spacing: 0; }
.ww-title:focus { outline: none; }
.ww-title:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.ww-intro { margin: 0 0 1rem; font-size: .9375rem; color: var(--text-muted); }
.ww-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; align-items: start; margin-top: 1rem; }
@media (max-width: 639px) { .ww-body { grid-template-columns: minmax(0, 1fr); } }
.ww-body > .field-wide, .ww-body > .ww-set, .ww-body > .field-group, .ww-body > .field-check { grid-column: 1 / -1; }
.ww-set { border: 0; margin: 0; padding: 0; min-width: 0; }
.ww-set legend { display: block; padding: 0; margin: 0 0 .6rem; font-weight: 600; font-size: .9375rem; color: var(--heading); }
.ww-cards { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.ww-two { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.ww-choice { position: relative; min-width: 0; }
.ww-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ww-cards .ww-choice label {
  display: flex; flex-direction: column; gap: 6px; height: 100%; min-height: 44px; margin: 0; padding: 16px 18px; cursor: pointer;
  border: 2px solid var(--border); border-radius: 14px; background: var(--input-bg);
}
.ww-choice-title { font-weight: 800; font-size: 1rem; color: var(--heading); }
.ww-choice-desc { font-size: .875rem; line-height: 1.45; color: var(--text-muted); font-weight: 500; }
.ww-choice-meta { font-size: .8125rem; font-weight: 700; color: var(--link); }
.ww-cards .ww-choice label:hover { border-color: var(--accent); }
.ww-cards .ww-choice input:checked + label { border-color: var(--blue); background: var(--tint); }
.ww-choice input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 2px; }
.ww-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ww-chips .ww-choice label {
  display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0 14px; cursor: pointer;
  border: 1px solid var(--border-strong); border-radius: 10px; background: var(--input-bg);
}
.ww-chips .ww-choice-title { font-size: .875rem; font-weight: 700; }
.ww-chips .ww-choice input:checked + label { background: var(--blue); border-color: var(--blue); }
.ww-chips .ww-choice input:checked + label .ww-choice-title { color: var(--white); }
.ww-choice input:target + label { outline: 3px solid var(--gold); outline-offset: 2px; }
.ww-bucket { margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--tint); color: var(--tint-text); font-size: .9375rem; }
.ww-bucket b { color: var(--heading); }
.ww-lic { padding: 14px 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-card); }
.ww-lic p { margin: 0; }
.ww-lic-title { font-weight: 800; color: var(--heading); font-size: .9375rem; }
.ww-lic-rows { margin: 8px 0; display: grid; gap: 4px; font-size: .9375rem; }
.ww-lic-rows > div { display: flex; justify-content: space-between; gap: 12px; }
.ww-lic-rows dt { color: var(--text-muted); }
.ww-lic-rows dd { margin: 0; font-weight: 800; }
.ww-lic-rows dd.yes { color: var(--lm-yes-ink); }
.ww-lic-rows dd.no { color: var(--lm-no-ink); }
.ww-lic-src { font-size: .8125rem; color: var(--text-soft); }
.ww-adv-wrap { display: grid; gap: 12px; }
.ww-adv-toggle {
  justify-self: start; min-height: 44px; padding: 0 16px; border-radius: 10px; border: 1px dashed var(--accent);
  background: var(--input-bg); color: var(--link); font: inherit; font-size: .875rem; font-weight: 700; cursor: pointer; text-align: left;
}
.ww-adv { display: grid; gap: 16px 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 767px) { .ww-adv { grid-template-columns: minmax(0, 1fr); } }
.ww-summary { max-height: 380px; overflow-y: auto; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-alt); padding: 4px 18px; }
.ww-sum-sec { padding: 14px 0; border-bottom: 1px solid var(--border); }
.ww-sum-sec:last-child { border-bottom: 0; }
.ww-sum-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ww-sum-head h3 { margin: 0; font-size: 1rem; letter-spacing: 0; }
.ww-edit { min-height: 44px; padding: 0 14px; border-radius: 8px; border: 1px solid var(--border-strong); background: var(--input-bg); color: var(--link); font: inherit; font-size: .875rem; font-weight: 700; cursor: pointer; }
.ww-summary dl { margin: 8px 0 0; display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 6px 16px; font-size: .875rem; }
@media (max-width: 639px) { .ww-summary dl { grid-template-columns: minmax(0, 1fr); gap: 0 0; } .ww-summary dd { margin-bottom: 8px; } }
.ww-summary dt { color: var(--text-muted); }
.ww-summary dd { margin: 0; font-weight: 600; color: var(--heading); overflow-wrap: anywhere; }
.ww-summary dd.is-empty { font-weight: 500; font-style: italic; color: var(--text-muted); }
.ww-progress-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; }
.ww-minutes { margin: 0 0 .6rem; font-size: .875rem; color: var(--text-muted); }
.ww-marks { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
.ww-help-actions { justify-content: center; margin-top: 0; }
.band-help { padding: 0 0 var(--band); background: var(--surface); }
.band-help .btn { display: inline-flex; align-items: center; justify-content: center; text-align: center; min-width: 220px; }
.band-ww .notice { margin-bottom: .5rem; }

.sc-nav { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--border); }
.sc-nav[hidden], .sc-nav [hidden] { display: none; }
.sc-nav .ww-next { margin-left: auto; }
.sc-nav .ww-next[aria-disabled="true"] { background: var(--disabled-bg); border-color: var(--disabled-border); color: var(--disabled-text); cursor: not-allowed; }
@media (max-width: 639px) { .sc-nav .btn { flex: 1 1 0; } }
.sc-progress { margin: 0 0 28px; }
.sc-progress[hidden] { display: none; }
.sc-count { margin: 0 0 .6rem; font-size: .9375rem; font-weight: 800; color: var(--heading); }
.sc-sep { margin-right: .1rem; }
.sc-name { color: var(--link); }
.sc-bar { height: 8px; border-radius: 999px; background: var(--control-bg); overflow: hidden; border: 1px solid var(--border); }
.sc-fill { display: block; height: 100%; width: 25%; border-radius: inherit; background: var(--blue); transition: width .3s ease; }
:root[data-theme="dark"] .sc-fill { background: var(--accent); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .sc-fill { background: var(--accent); } }
.sc-marks { list-style: none; counter-reset: scstep; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.sc-mark { counter-increment: scstep; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; min-width: 0; }
.sc-dot {
  display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
  border: 2px solid var(--border-strong); background: var(--surface-card); color: var(--text-muted); font-size: .8125rem; font-weight: 800;
}
.sc-dot::before { content: counter(scstep); }
.sc-mark-name { font-size: .8125rem; font-weight: 600; line-height: 1.3; color: var(--text-muted); overflow-wrap: anywhere; }
.sc-mark[aria-current="step"] .sc-dot { border-color: var(--blue); background: var(--blue); color: var(--white); }
.sc-mark[aria-current="step"] .sc-mark-name { color: var(--heading); font-weight: 800; }
.sc-mark.is-done .sc-dot { border-color: var(--accent); color: var(--accent); }
.sc-mark.is-done .sc-dot::before { content: "\2713"; }

/* ---- round 5: Broker Training. Time-zone switch and day cards (static/js/broker-training.js reveals the switch;
   without scripting the Pacific cards show and everything else stays hidden) ---- */
.bt-switch { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0 auto 28px; text-align: center; }
.bt-switch[hidden], .bt-panel[hidden] { display: none; }
.bt-switch-label { margin: 0; font-size: .875rem; font-weight: 700; color: var(--text-muted); }
.bt-segment { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px; padding: 4px; border-radius: 999px; background: var(--control-bg); border: 1px solid var(--border); }
.bt-zone-btn {
  min-width: 64px; min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background: transparent;
  color: var(--control-text); font: inherit; font-size: .9375rem; font-weight: 700; cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.bt-zone-btn:hover { background: var(--tint); }
.bt-zone-btn[aria-pressed="true"] { background: var(--blue); color: var(--white); }
:root[data-theme="dark"] .bt-zone-btn[aria-pressed="true"] { background: var(--accent); color: var(--surface); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .bt-zone-btn[aria-pressed="true"] { background: var(--accent); color: var(--surface); } }
.js .bt-switch:not([hidden]) ~ .bt-panels .bt-zone { display: none; }
.bt-zone { width: fit-content; margin: 0 auto 18px; padding: 4px 14px; border-radius: 999px; background: var(--tint); color: var(--tint-text); font-size: .875rem; font-weight: 800; }
.bt-days { list-style: none; margin: 0; padding: 14px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 24px 16px; }
.bt-days > li { flex: 0 1 calc((100% - 64px) / 5); min-width: 0; }
.bt-card {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%;
  padding: 22px 14px 18px; text-align: center; text-decoration: none; color: var(--text); background: var(--surface-card);
  border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--card-shadow);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.bt-card:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-hover); border-color: var(--accent); }
.bt-day-name { font-size: 1.0625rem; font-weight: 800; color: var(--heading); }
.bt-time { font-size: .9375rem; font-weight: 600; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.bt-join { display: inline-flex; align-items: center; margin-top: 10px; padding: .4rem 1rem; border-radius: 999px; background: var(--tint); color: var(--tint-text); font-size: .875rem; font-weight: 700; }
.bt-join::after { content: "\2197"; margin-left: .35rem; }
.bt-card.is-today { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent), var(--card-shadow); }
.bt-today {
  position: absolute; top: -13px; left: 50%; transform: translateX(-50%); padding: 3px 14px; border-radius: 999px;
  background: var(--gold); color: var(--navy); font-size: .8125rem; font-weight: 800; line-height: 1.3;
}
.bt-foot { max-width: 720px; margin: 28px auto 0; text-align: center; font-size: .875rem; color: var(--text-muted); }
.bt-guides { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.bt-guide { justify-content: space-between; gap: 16px; }
.bt-guide .card-title { margin: 0; }
.bt-guide .card-actions { margin-top: 0; padding-top: 0; }
@media (min-width: 640px) and (max-width: 959px) { .bt-days > li { flex-basis: calc((100% - 32px) / 3); } }
@media (max-width: 639px) {
  .bt-days > li { flex-basis: 100%; }
  .bt-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "day join" "time join"; align-items: center; text-align: left; gap: 2px 12px; padding: 16px 18px; }
  .bt-day-name { grid-area: day; }
  .bt-time { grid-area: time; }
  .bt-join { grid-area: join; margin-top: 0; }
  .bt-today { left: 18px; transform: none; top: -12px; }
}

/* ---- light motion. site.js adds .reveal only below the first screen, so nothing is hidden without it ---- */
.js .reveal { opacity: 0; transform: translateY(18px); }
.js .reveal.is-in { opacity: 1; transform: none; transition: opacity .55s ease, transform .55s ease; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .js .reveal { opacity: 1; transform: none; }
  .card.program.has-link:hover, a.btn:hover { transform: none; }
  .hero-sheen { display: none; }
  .hub-card:hover { transform: none; }
  .bt-card:hover { transform: none; }
  .doc-section.is-flash { outline-color: var(--gold); background: var(--tint); }
}
@media print {
  .site-header, .demo-bar, .hero-art, .theme-toggle { display: none; }
  .hero { padding-top: 32px; }
}

/* Solve Common Homebuyer Challenges (Equity First pages): icon cards (round 7, V-040, V-041) */
.challenge-list { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.challenge { display: flex; flex-direction: column; gap: .75rem; margin: 0; }
.challenge p { margin: 0; }
.challenge-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--tint); color: var(--tint-text); }
.challenge-note { margin: 1.5rem auto 0; max-width: 720px; text-align: center; }
@media (max-width: 800px) { .challenge-list { grid-template-columns: 1fr; } }

/* Privacy Policy and other stored paragraphs shown as short paragraphs and bullet lists (round 7, V-048) */
.rich p { margin: 0 0 .75rem; }
.rich .bullets { list-style: none; margin: 0 0 1rem; padding: 0 0 0 .25rem; }
.rich .bullets li { position: relative; margin: 0 0 .4rem; padding-left: 1.1rem; }
.rich .bullets .bullet-mark { position: absolute; left: 0; color: var(--accent); }

/* Form checks and the staging note (round 7, V-052) */
.field-error { margin: .35rem 0 0; font-size: .875rem; font-weight: 700; color: var(--danger); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--danger); }
.form-summary { flex: 1 1 100%; margin: 0 0 .5rem; font-weight: 700; color: var(--danger); }
.form-staging { margin: 0; padding: .6rem .9rem; border-radius: 10px; border-left: 4px solid var(--accent); background: var(--surface-alt); font-size: .875rem; color: var(--text); }
.ww-nav { flex-wrap: wrap; }
