/* Active SOS — shared site layer (Oct 2026 audit). Loaded AFTER each page's inline <style>. */

/* ── Self-hosted fonts (Montserrat headings/UI, Open Sans body) ── */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/montserrat-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/montserrat-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/montserrat-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/montserrat-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:900;font-display:swap;src:url(fonts/montserrat-latin-900-normal.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/open-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/open-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/open-sans-latin-600-normal.woff2) format('woff2')}

/* ── Images: width/height attributes reserve space; CSS classes still win ── */
:where(img[height]){height:auto}

/* ── Skip link + landmark ── */
.skip-link{position:absolute;left:12px;top:-80px;z-index:3000;background:#E8B64A;color:#0A1628;padding:12px 20px;font:800 .85rem/1 'Montserrat',sans-serif;letter-spacing:.04em;border-radius:0 0 8px 8px;text-decoration:none;transition:top .15s}
.skip-link:focus{top:0}
main:focus{outline:none}

/* ── Visible keyboard focus (white ring + navy ring works on light and dark) ── */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #fff;outline-offset:0;box-shadow:0 0 0 6px #0A1628;border-radius:4px}

/* ── Menus usable by keyboard, not just hover ── */
.drop:focus-within .dmenu{display:block}

/* ── Contrast: white text on gold fails (1.9:1); use navy (9.7:1) ── */
.ann{color:var(--n,#0A1628)}
.bor{color:var(--n,#0A1628)}
.bor:hover{color:var(--o,#E8B64A)}

/* ── Video play/pause control ── */
.vid-host{position:relative}
.vid-toggle{position:absolute;right:14px;bottom:14px;z-index:5;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:2px solid rgba(255,255,255,.85);border-radius:50px;background:rgba(10,22,40,.82);color:#fff;font:700 .75rem/1 'Montserrat',sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.vid-toggle:hover{background:#0A1628;border-color:#E8B64A}

/* ── Reduced motion: stop decorative animation and smooth scroll ── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1!important;transform:none!important}
}

/* Motion helpers (only active when motion.js runs; see assets/motion.js) */
.has-motion .hiwg::before{transform-origin:0 50%;transform:scaleX(var(--line,1))}

/* ---- Contrast fixes (WCAG AA) — Oct 2026 audit ---- */
.fbot p,.fbot a,.fbotl a,.fr-label,.art-cta p{color:#aeb6c2!important}
.fbotl a:hover,.fbot a:hover{color:var(--o,#E8B64A)!important}
.price-note,.share-bar>span,.form-note,.sample-label,.mock-label{color:#5a6678!important}
label a,.tos-row a,.sms-consent-row a{text-decoration:underline!important}

.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Org-code promo strip (PROTECT45) */
.promo-code{max-width:1100px;margin:28px auto 0;padding:18px 24px;border-radius:14px;background:#E8B64A;color:#0A1628;font-family:'Montserrat',sans-serif;font-size:.95rem;line-height:1.5;text-align:center}
.promo-code strong{font-weight:900}
.promo-code .cd{display:inline-block;margin:0 4px;padding:2px 12px;border-radius:8px;background:#0A1628;color:#E8B64A;font-weight:900;letter-spacing:.08em}
.promo-band{padding:20px 24px;background:#0A1628}
.promo-band .promo-code{margin:0 auto}
