/* ═══════════════════════════════════════════
   ACU UI ENHANCEMENTS
   Global polish, accessibility, and nav refinements.
   Loaded AFTER the base + page CSS so these win the cascade.
   ═══════════════════════════════════════════ */

/* 1. Right-size the brand logo ───────────────────────────────
   The original 120px logo overpowered the nav (and overlapped hero
   content on mobile). Scale it down and make it responsive. */
/* Bold white logo at the top → shrinks to the smaller colored logo on scroll
   (white/colored swap lives in the base .nav-logo img filter rules). */
.nav-logo img { height: 80px; width: auto; }
.nav.scrolled .nav-logo img { height: 40px; }
@media (max-width: 1024px) { .nav-logo img { height: 64px; } .nav.scrolled .nav-logo img { height: 38px; } }
@media (max-width: 768px)  { .nav-logo img { height: 52px; } .nav.scrolled .nav-logo img { height: 36px; } }

/* 2. Nav legibility over light hero photos ───────────────────
   A soft top scrim keeps the white logo + links readable against
   bright imagery, then fades out once the nav gains its solid
   scrolled background. */
.nav::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(17,29,51,0.60) 0%, rgba(17,29,51,0.26) 65%, transparent 100%);
  opacity: 1; transition: opacity 0.4s var(--ease-out-quart);
}
.nav.scrolled::before { opacity: 0; }
.nav:not(.scrolled) .nav-links a { text-shadow: 0 1px 10px rgba(17,29,51,0.45); }
.nav.scrolled .nav-links a { text-shadow: none; }

/* 3. Visible keyboard focus ──────────────────────────────────
   Neumorphism removes default outlines; restore a clear, on-brand
   focus ring for keyboard users only. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, .nav-toggle:focus-visible,
.appt-type:focus-visible, .service-card:focus-visible, .help-card:focus-visible,
.doc-item:focus-visible, .branch-card a:focus-visible {
  outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 8px;
}
:focus:not(:focus-visible) { outline: none; }

/* Hero copy and buttons are readable from the first paint: no fade from
   transparent and no staggered delay, only a short rise (audit ACU-20). */
@media (prefers-reduced-motion: no-preference) {
  .hero-est, .hero-title, .hero-subtitle, .hero-actions {
    opacity: 1 !important; animation: acuHeroRise 0.45s cubic-bezier(0.25, 1, 0.5, 1) both !important;
  }
}
@keyframes acuHeroRise { from { transform: translateY(10px); } to { transform: none; } }

/* 4. Respect reduced-motion ──────────────────────────────────*/
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; scroll-behavior: auto !important;
  }
  .reveal, .reveal-left, .reveal-right { opacity: 1 !important; transform: none !important; }
  .hero-est, .hero-title, .hero-subtitle, .hero-actions { opacity: 1 !important; animation: none !important; }
}

/* 5. Contrast (WCAG AA) ──────────────────────────────────────
   Nudge secondary text darker on the cream surface, and lift the
   faint footer text. */
:root { --midgray: #5b6471; }
.footer-col a { color: rgba(255,255,255,0.66); }
.footer-brand p { color: rgba(255,255,255,0.62); }
.footer-bottom p { color: rgba(255,255,255,0.55); }
.footer-bottom a { color: rgba(255,255,255,0.72) !important; }
.footer-contact-item { color: rgba(255,255,255,0.78); }

/* 6. Fixed-nav anchor offset ─────────────────────────────────
   So in-page jumps don't land underneath the fixed nav. */
[id] { scroll-margin-top: 96px; }
/* Form fields scroll far enough below the sticky header to show their label
   too, when focused for a validation error (audit ACU-17). */
input[id], select[id], textarea[id], input, select, textarea { scroll-margin-top: 150px; }

/* 7. On-brand selection + slim scrollbar ─────────────────────*/
::selection { background: var(--orange); color: #fff; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--surface-dark); }
::-webkit-scrollbar-thumb { background: #b9b3aa; border-radius: 8px; border: 3px solid var(--surface-dark); }
::-webkit-scrollbar-thumb:hover { background: var(--orange); }
html { scrollbar-color: #b9b3aa var(--surface-dark); scrollbar-width: thin; }

/* 8. Comfier mobile menu tap targets ─────────────────────────*/
@media (max-width: 1260px) {
  /* Repeated from acu-base.css: page stylesheets load after it and restate the
     desktop nav, and this file loads last (audit ACU-07). */
  .nav { padding: 16px 20px; } .nav.scrolled { padding: 12px 20px; }
  .nav-links { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(232,228,223,0.98); backdrop-filter: blur(20px); flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
  .nav-links.open { display: flex; } .nav-toggle { display: flex; }
  .nav-links.open a { color: var(--navy) !important; }
  .nav-links.open a:hover { background: rgba(27,42,74,0.06); }
  .nav-links.open a { font-size: 1.15rem; padding: 12px 26px; }
}

/* 9. Images never overflow their container ───────────────────*/
img { max-width: 100%; height: auto; }

/* ═══════════════════════════════════════════
   MEGA-MENU NAVIGATION
   ═══════════════════════════════════════════ */
.nav-links > li { position: relative; }
.nav-caret { width: 14px; height: 14px; margin-left: 4px; transition: transform 0.3s var(--ease-out-quart); opacity: 0.8; vertical-align: middle; }
.mega-trigger { display: inline-flex; align-items: center; }
.has-mega:hover .nav-caret, .has-mega:focus-within .nav-caret { transform: rotate(180deg); }
.nav-links-current { position: relative; }
.nav-links-current::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 2px; height: 2px; background: var(--orange); border-radius: 2px; }

/* The dropdown panel */
.mega {
  position: absolute; top: calc(100% + 2px); left: 0; z-index: 1200;
  min-width: 460px; padding: 8px;
  background: var(--surface); border-radius: 20px;
  box-shadow: 10px 16px 40px rgba(27,42,74,0.18), -6px -6px 18px rgba(255,255,255,0.6);
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity 0.26s var(--ease-out-quart), transform 0.26s var(--ease-out-quart), visibility 0.26s;
}
.has-mega.align-right .mega { left: auto; right: 0; }
.has-mega:hover .mega, .has-mega:focus-within .mega { opacity: 1; visibility: visible; transform: translateY(0); }
.mega-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 6px 10px; padding: 18px; }
.mega-col { display: flex; flex-direction: column; }
.mega-col h4,
.mega-col .mega-h {
  font-family: 'futura-pt', 'Futura PT','Futura','Baumans',sans-serif; font-size: 0.72rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--orange); margin-bottom: 8px; padding: 0 12px;
}
.mega-col a {
  display: block; padding: 8px 12px; border-radius: 10px; font-size: 0.88rem; font-weight: 500;
  color: var(--slate) !important; text-decoration: none; text-shadow: none !important; transition: all 0.2s ease;
}
.mega-col a:hover { background: rgba(199,91,18,0.08); color: var(--orange) !important; transform: translateX(3px); }
.mega-all {
  grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 6px; justify-self: start;
  margin: 4px 0 2px 12px; padding: 8px 16px; border-radius: 12px; font-size: 0.82rem; font-weight: 600;
  color: #fff !important; background: var(--navy); text-shadow: none !important; transition: all 0.25s ease;
}
.mega-all:hover { background: var(--orange); gap: 10px; }
.mega-all span { transition: transform 0.25s ease; }

/* Mobile: dropdowns become in-menu accordions */
@media (max-width: 1260px) {
  .nav-caret { width: 18px; height: 18px; opacity: 0.7; }
  .has-mega { width: 100%; text-align: center; }
  .has-mega.open .nav-caret { transform: rotate(180deg); }
  .mega {
    /* display:block overrides the per-page inline `.mega { display:none }`, which
       otherwise wins on mobile where no hover exists; max-height gates visibility */
    display: block; position: static; min-width: 0; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; background: transparent; padding: 0; max-height: 0; overflow: hidden;
    transition: max-height 0.35s var(--ease-out-quart), visibility 0s linear 0.35s;
  }
  /* Collapsed: hidden from the keyboard and screen readers too (audit ACU-08). */
  .has-mega:not(.open) .mega { visibility: hidden; }
  .has-mega.open .mega { max-height: 1600px; visibility: visible; transition: max-height 0.35s var(--ease-out-quart), visibility 0s; }
  .mega-inner { display: block; padding: 4px 0 10px; }
  .mega-col { margin-bottom: 6px; align-items: center; }
  .mega-col h4 { color: var(--orange); margin: 8px 0 2px; }
  .mega-col a { font-size: 1rem; padding: 7px 12px; }
  .mega-all { margin: 8px auto 4px; }
  .nav-links-current::after { display: none; }
}

/* ═══════════════════════════════════════════
   PLUGIN INTEGRATION STYLING
   ═══════════════════════════════════════════ */
/* Breadcrumb NavXT / Yoast output (printed by acu_breadcrumbs()) inherits the
   hero crumb styles; keep separators/current item legible. */
.crumbs, .b-crumbs { display: block; }
.crumbs span, .b-crumbs span { color: inherit; }
.crumbs .breadcrumb_last, .b-crumbs .breadcrumb_last,
.crumbs .breadcrumb-current, .b-crumbs .breadcrumb-current { opacity: 0.85; }


.contact-form-card .gform_wrapper { margin: 0; }
.contact-form-card .gform_wrapper .gform_required_legend { display: none; }
.contact-form-card .gform_wrapper .gfield { margin-bottom: 18px; }
.contact-form-card .gform_wrapper .gfield_label,
.contact-form-card .gform_wrapper legend.gfield_label {
  font-size: 0.82rem; font-weight: 600; color: var(--navy); margin-bottom: 8px; display: block;
}
.contact-form-card .gform_wrapper .gfield_required { color: var(--orange); }
.contact-form-card .gform_wrapper input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.contact-form-card .gform_wrapper textarea,
.contact-form-card .gform_wrapper select {
  font-family: inherit; font-size: 0.95rem; color: var(--slate);
  background: var(--surface); border: none; border-radius: 14px; padding: 14px 18px;
  box-shadow: var(--shadow-inset); width: 100%;
}
.contact-form-card .gform_wrapper textarea { min-height: 130px; resize: vertical; }
.contact-form-card .gform_wrapper input:focus,
.contact-form-card .gform_wrapper textarea:focus,
.contact-form-card .gform_wrapper select:focus {
  outline: none; box-shadow: var(--shadow-inset), 0 0 0 2px rgba(199,91,18,0.35);
}
.contact-form-card .gform_wrapper .gform_footer { padding: 8px 0 0; margin: 0; }
.contact-form-card .gform_wrapper .gform_footer input[type=submit],
.contact-form-card .gform_wrapper .gform_button {
  display: inline-flex; align-items: center; gap: 10px; background: var(--navy); color: #fff;
  border: none; border-radius: 18px; padding: 16px 36px; font-size: 0.95rem; font-weight: 600;
  cursor: pointer; box-shadow: 6px 6px 16px rgba(27,42,74,0.35), -3px -3px 10px rgba(255,255,255,0.5);
  transition: all 0.35s var(--ease-out-quart);
}
.contact-form-card .gform_wrapper .gform_footer input[type=submit]:hover,
.contact-form-card .gform_wrapper .gform_button:hover { background: var(--orange); transform: translateY(-3px); }
.contact-form-card .gform_wrapper .gform_validation_errors {
  background: rgba(199,91,18,0.08); border: 1px solid rgba(199,91,18,0.25); border-radius: 12px; padding: 12px 16px; margin-bottom: 16px;
}
.contact-form-card .gform_wrapper .gfield_description.validation_message { color: var(--orange); font-size: 0.8rem; margin-top: 6px; }
.contact-form-card .gform_confirmation_message { font-size: 1rem; color: var(--navy); padding: 16px 0; }



/* Find Us, network stat badges */
.findus-network { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:1040px; margin:0 auto 44px; }
.findus-network > div { justify-content:flex-start; }
@media (max-width:820px){ .findus-network { grid-template-columns:repeat(2,1fr); max-width:680px; } }
@media (max-width:520px){ .findus-network { grid-template-columns:1fr; max-width:380px; } }

/* ═══════════════════════════════════════════
   US NETWORK MAP  (Find Us)
   ═══════════════════════════════════════════ */
.usmap-stage { position: relative; max-width: 1120px; margin: 0 auto 40px; background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%); border-radius: 28px; box-shadow: var(--shadow-raised); padding: clamp(18px,3.5vw,40px); overflow: hidden; }
.usmap-stage::before { content:""; position:absolute; width:620px; height:620px; background: radial-gradient(circle, rgba(199,91,18,0.16), transparent 64%); top:-220px; left:-140px; pointer-events:none; }
.usmap-stage::after { content:""; position:absolute; width:520px; height:520px; background: radial-gradient(circle, rgba(212,149,43,0.12), transparent 64%); bottom:-220px; right:-120px; pointer-events:none; }
.usmap-svg { width:100%; height:auto; display:block; position:relative; z-index:1; }
.usmap-outline { fill:rgba(255,255,255,0.02); stroke:rgba(255,255,255,0.55); stroke-width:1.9; stroke-linejoin:round; stroke-linecap:round; }
.usmap-outline-glow { fill:none; stroke:var(--gold); stroke-width:3.5; opacity:0.22; filter:url(#usGlow); stroke-linejoin:round; }
.usmap-node:nth-child(3n) .usmap-node-core { animation-delay: -1.7s; }
.usmap-dot { fill:#ffffff; opacity:0.16; }
.usmap-line { stroke: url(#usmapLine); stroke-width:1.1; fill:none; opacity:0.45; stroke-dasharray:3 7; animation: usmapFlow 2.8s linear infinite; }
@keyframes usmapFlow { to { stroke-dashoffset:-40; } }
.usmap-node-core { transform-box: fill-box; transform-origin: center; animation: usmapPulse 2.4s ease-in-out infinite; }
@keyframes usmapPulse { 0%,100% { opacity:1; } 50% { opacity:0.5; } }
.usmap-ripple { transform-box: fill-box; transform-origin: center; animation: usmapRipple 2.4s ease-out infinite; }
@keyframes usmapRipple { 0% { transform: scale(0.6); opacity:0.9; } 100% { transform: scale(2.8); opacity:0; } }
.usmap-hub-ripple { animation-duration: 2s; }
.usmap-node:nth-child(odd) .usmap-node-core, .usmap-node:nth-child(odd) .usmap-ripple { animation-delay: -1.1s; }
.usmap-legend { display:flex; flex-wrap:wrap; gap:14px 26px; justify-content:center; margin-top:18px; position:relative; z-index:1; }
.usmap-legend span { display:inline-flex; align-items:center; gap:8px; font-size:0.82rem; color:rgba(255,255,255,0.72); }
.usmap-legend i { width:11px; height:11px; border-radius:50%; display:inline-block; flex-shrink:0; }
.usmap-label { fill:#ffffff; font-family:'futura-pt', 'Futura PT','Futura','Baumans',sans-serif; font-size:16px; font-weight:600; }
.usmap-sublabel { fill:rgba(255,255,255,0.65); font-size:11.5px; font-family:'Inter',sans-serif; }
.usmap-hit { cursor:pointer; }
.usmap-city { fill:#ffffff; font-family:'Inter',sans-serif; font-size:11px; font-weight:600; opacity:0; pointer-events:none; paint-order:stroke; stroke:var(--navy-dark); stroke-width:3px; stroke-linejoin:round; transition:opacity .14s ease; }
.usmap-node:hover .usmap-city { opacity:1; }
.usmap-row { display:flex !important; flex-wrap:wrap; justify-content:center; gap:10px; max-width:1020px; margin:0 auto; }
@media (prefers-reduced-motion: reduce){ .usmap-line, .usmap-node-core, .usmap-ripple { animation: none !important; } }
@media (max-width:600px){ .usmap-stage { padding:14px; } .usmap-label { font-size:18px; } .usmap-sublabel { font-size:13px; } }

/* Hide the decorative scroll hint on short viewports so it never overlaps hero content */
@media (max-height: 880px) { .scroll-indicator { display: none; } }

/* Keep the desktop nav on one line between the compact header and full width
   (1261-1365px, for example 1280px laptops): tighter spacing and an
   icon-only Search (audit ACU-07). */
.nav-links a { white-space: nowrap; }
@media (min-width: 1261px) and (max-width: 1365px) {
  .nav { padding-left: 22px; padding-right: 22px; }
  .nav-links { gap: 2px; }
  .nav-links > li > a { padding: 8px 9px; font-size: 0.82rem; }
  .nav-links a.nav-cta, .nav-links a.nav-login { padding: 9px 15px !important; margin-left: 4px; }
  .nav-search-label { display: none; }
  .nav-caret { margin-left: 2px; width: 11px; height: 11px; }
}

/* ═══════════════════════════════════════════
   ONLINE-BANKING LOGIN  (tethered-login trigger in nav)
   Ghost/outline pill that reads clearly over the hero (white) and on the
   scrolled light nav (navy). Sits left of the orange "Join Us" CTA.
   ═══════════════════════════════════════════ */
/* Log In (ghost) + Become a Member (solid), identical size/shape, differ only
   by fill. Both share padding, border box, radius, and type so they line up. */
.nav-links a.nav-login,
.nav-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 9px 22px !important;
  border: 1.5px solid transparent !important;
  border-radius: 999px !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.01em !important;
  transition: all .25s ease !important;
}
/* Log In, ghost/outline */
.nav-links a.nav-login { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,0.6) !important; box-shadow: none !important; }
.nav-links a.nav-login:hover { background: rgba(255,255,255,0.14) !important; border-color: #fff !important; transform: translateY(-2px); }
/* Become a Member, solid */
.nav-cta { background: var(--orange) !important; color: #fff !important; box-shadow: 0 4px 15px rgba(199,91,18,0.3) !important; }
.nav-cta:hover { background: var(--gold) !important; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(212,149,43,0.4) !important; }
/* Scrolled (light) nav */
.nav.scrolled .nav-links a.nav-login { color: var(--navy) !important; border-color: rgba(27,42,74,0.45) !important; }
.nav.scrolled .nav-links a.nav-login:hover { background: rgba(27,42,74,0.07) !important; border-color: var(--navy) !important; }
.nav.scrolled .nav-cta { background: var(--navy) !important; box-shadow: var(--shadow-raised-sm) !important; }
.nav.scrolled .nav-cta:hover { background: var(--orange) !important; }
@media (max-width: 1260px) { .nav-links a.nav-login { display: inline-flex; color: var(--navy) !important; border-color: rgba(27,42,74,0.4) !important; margin: 4px 0; } }

/* ═══════════════════════════════════════════
   SHARED FRAMED PDF VIEWER MODAL
   Auto-wired to every <a href="*.pdf"> by site.js
   (opt out with data-no-viewer). See site.js.
   ═══════════════════════════════════════════ */
.pdf-modal-overlay {
  display: none; position: fixed; inset: 0; z-index: 10000;
  background: rgba(17,29,51,0.92); backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  align-items: center; justify-content: center; padding: 24px;
}
.pdf-modal-overlay.active { display: flex; }
.pdf-modal {
  position: relative; width: 100%; max-width: 1000px; height: 92vh;
  background: var(--surface, #E8E4DF); border-radius: 24px;
  box-shadow: 0 40px 100px rgba(10,16,30,0.6); overflow: hidden;
  display: flex; flex-direction: column;
}
.pdf-modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px; background: var(--navy, #1B2A4A); color: #fff; flex-shrink: 0; gap: 12px;
}
.pdf-modal-title {
  font-family: 'futura-pt', 'Futura PT','Futura','Baumans', sans-serif;
  font-size: 0.95rem; font-weight: 600; letter-spacing: 0.02em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pdf-modal-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.pdf-modal-btn {
  display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px;
  border-radius: 12px; border: none; cursor: pointer; font-size: 0.82rem; font-weight: 600;
  text-decoration: none; background: rgba(255,255,255,0.12); color: #fff;
  transition: background 0.2s ease; white-space: nowrap;
}
.pdf-modal-btn:hover { background: var(--orange, #C75B12); }
.pdf-modal-btn svg { width: 16px; height: 16px; fill: currentColor; }
.pdf-modal-close { width: 40px; height: 40px; padding: 0; justify-content: center; }
.pdf-modal-body { flex: 1; position: relative; background: #52565c; }
.pdf-modal-body iframe { width: 100%; height: 100%; border: none; display: block; }
@media (max-width: 768px) {
  .pdf-modal { height: 94vh; border-radius: 16px; }
  .pdf-modal-overlay { padding: 12px; }
  .pdf-modal-btn span { display: none; }
  .pdf-modal-btn { padding: 0 12px; }
}

/* ═══════════════════════════════════════════
   Exit interstitial: "you are leaving ACU" notice
   for links marked data-exit (NCUA badge). See site.js.
   ═══════════════════════════════════════════ */
.exit-modal-overlay {
  display: none; position: fixed; inset: 0; z-index: 10000;
  background: rgba(17,29,51,0.88); backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  align-items: center; justify-content: center; padding: 24px;
}
.exit-modal-overlay.active { display: flex; }
.exit-modal {
  width: 100%; max-width: 520px; background: var(--surface, #E8E4DF);
  border-radius: 24px; box-shadow: 0 40px 100px rgba(10,16,30,0.6);
  padding: 28px 30px 26px; color: var(--navy, #1B2A4A);
}
.exit-modal-header { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.exit-modal-header svg { width: 26px; height: 26px; fill: var(--orange-text, #A84A0D); flex-shrink: 0; }
.exit-modal-title {
  font-family: 'futura-pt', 'Futura PT','Futura','Baumans', sans-serif;
  font-size: 1.25rem; font-weight: 600; line-height: 1.25; margin: 0;
}
.exit-modal-text { font-size: 1rem; line-height: 1.55; margin: 0 0 10px; word-break: break-word; }
.exit-modal-fine { font-size: 0.85rem; line-height: 1.55; color: var(--midgray, #5B6470); margin: 0 0 22px; }
.exit-modal-actions { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.exit-modal-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px;
  border-radius: 12px; border: none; cursor: pointer; font-size: 0.9rem; font-weight: 600;
  text-decoration: none; transition: background 0.2s ease, color 0.2s ease;
}
.exit-modal-stay { background: rgba(27,42,74,0.1); color: var(--navy, #1B2A4A); }
.exit-modal-stay:hover { background: rgba(27,42,74,0.18); }
.exit-modal-go { background: var(--orange-text, #A84A0D); color: #fff; }
.exit-modal-go:hover { background: var(--navy, #1B2A4A); }
.exit-modal-btn:focus-visible { outline: 3px solid var(--orange-text, #A84A0D); outline-offset: 3px; }
@media (max-width: 480px) {
  .exit-modal { padding: 22px 20px 20px; border-radius: 16px; }
  .exit-modal-actions { flex-direction: column-reverse; }
  .exit-modal-btn { width: 100%; }
}

/* NCUA badge as a link (footer) and the homepage trust tile. */
.footer-badges-link { display: inline-flex; align-items: center; gap: 20px; color: inherit; text-decoration: none; border-radius: 8px; }
.footer-badges-link:hover .footer-badges-text { text-decoration: underline; }
.footer-badges-link:hover img { opacity: 1; }
.footer-badges-link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.trust-link { display: flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; }
.trust-link:focus-visible { outline: 3px solid var(--orange-text, #A84A0D); outline-offset: 3px; border-radius: 12px; }

/* ── Nav logo scaling fix (site-wide) ─────────────────────────────────
 * Pages set a fixed logo height while the global img rule applies
 * max-width:100%. When the nav flex row squeezes the logo anchor, width
 * clamps but height does not, distorting the aspect ratio. Fix: never
 * let the anchor shrink, never clamp the width, and scale the large
 * transparent-nav logo fluidly with the viewport so it fits every
 * browser size before the mobile breakpoint. */
.nav-logo { flex-shrink: 0; position: relative; z-index: 1001; }
.nav-logo img { width: auto; max-width: none; }
/* When the mobile menu overlay is open, the nav background is cream:
 * lift the logo above the overlay and drop the white filter so it does
 * not disappear. */
.nav:has(.nav-links.open) .nav-logo img { filter: none; }

/* ── Mobile fixes: menu reachability + inline step grids ──────────────
 * 1. The open mobile menu is a fixed, centered flex overlay with no
 *    scrolling. With an accordion section expanded it grows taller than
 *    the screen and items past the fold become unreachable. Make the
 *    overlay scroll and top-align its content.
 * 2. Several pages build 3-step / 3-card rows with inline
 *    grid-template-columns styles, which media queries cannot override.
 *    Collapse any inline multi-column grid to one column on phones so
 *    the third card is never clipped off-screen. */
@media (max-width: 1260px) {
  .nav-links.open {
    justify-content: flex-start;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 96px 0 48px;
  }
}
@media (max-width: 768px) {
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns: repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(2,1fr)"],
  [style*="grid-template-columns: repeat(2,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* Testimonial attribution: name with branch below */
.testimonial-branch { display: block; margin-top: 5px; font-size: 0.76rem; letter-spacing: 0.1em; opacity: 0.65; }

/* Decorative quote-glyph kill switch: quotes carry their own curly marks now */
.testimonial-quote::before, .testimonial-quote::after,
.chk-testimonial-quote::before, .tc-quote::before, .testi-quote::before { content: none !important; }

/* ── Media download deterrents (companion to site.js) ── */
img, video {
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-touch-callout: none;
}
/* Hero background video overlay, position, fade-in, motion gating */
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.hero-video.playing { opacity: 1; }
@media (max-width: 1024px), (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
}
.hero-right img, .hero-video, .testimonial-avatar, .rich-hero__img {
  user-select: none;
  -webkit-user-select: none;
}

/* ═══════════════════════════════════════════
   SITE SEARCH (button injected by site.js)
   ═══════════════════════════════════════════ */
.nav-search-btn { display: inline-flex; align-items: center; gap: 6px; }
.nav-search-btn svg { width: 16px; height: 16px; fill: currentColor; }
.nav-search-label { font-size: 0.875rem; font-weight: 500; }

.search-overlay {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(27,42,74,0.45);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  display: none; align-items: flex-start; justify-content: center;
  padding: clamp(60px, 12vh, 140px) 20px 40px;
  overflow-y: auto;
}
.search-overlay.open { display: flex; }

.search-panel {
  width: 100%; max-width: 640px;
  background: var(--surface); border-radius: 24px;
  box-shadow: 0 24px 80px rgba(17,29,51,0.35);
  padding: 20px;
}

.search-inputwrap { position: relative; display: flex; align-items: center; }
.search-inputicon {
  position: absolute; left: 18px; width: 18px; height: 18px;
  fill: var(--midgray); pointer-events: none;
}
.search-input {
  width: 100%; padding: 16px 52px 16px 48px;
  font-family: 'Inter', sans-serif; font-size: 1rem; color: var(--navy);
  background: var(--surface-light); border: none; border-radius: 16px;
  box-shadow: var(--shadow-inset); outline: none;
}
.search-input::placeholder { color: var(--midgray); }
.search-input:focus { box-shadow: var(--shadow-inset), 0 0 0 2px rgba(199,91,18,0.35); }
.search-close {
  position: absolute; right: 10px; width: 34px; height: 34px;
  border: none; border-radius: 12px; cursor: pointer;
  background: var(--surface); box-shadow: var(--shadow-raised-sm);
  color: var(--navy); font-size: 1.3rem; line-height: 1;
}
.search-close:hover { color: var(--orange); }

.search-quick {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 16px 4px 4px;
}
.search-quick-label {
  font-size: 0.72rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--midgray); margin-right: 4px;
}
.search-quick a {
  padding: 6px 14px; border-radius: 18px; font-size: 0.82rem; font-weight: 500;
  color: var(--navy); text-decoration: none;
  background: var(--surface); box-shadow: var(--shadow-raised-sm);
  transition: all 0.25s ease;
}
.search-quick a:hover { color: var(--orange); transform: translateY(-1px); }

.search-results { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; max-height: 52vh; overflow-y: auto; }
.search-result {
  display: block; padding: 14px 16px; border-radius: 16px;
  background: var(--surface); box-shadow: var(--shadow-raised-sm);
  text-decoration: none; transition: box-shadow 0.2s ease;
}
.search-result:hover, .search-result.active { box-shadow: var(--shadow-raised); }
.search-result.active { outline: 2px solid rgba(199,91,18,0.4); }
.search-result-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.search-result-title { font-weight: 600; font-size: 0.95rem; color: var(--navy); }
.search-result-section {
  flex-shrink: 0; font-size: 0.68rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--orange);
}
.search-result-desc { display: block; margin-top: 3px; font-size: 0.82rem; color: var(--midgray); line-height: 1.5; }

.search-empty { padding: 18px 16px; font-size: 0.9rem; color: var(--slate); line-height: 1.6; }
.search-empty a { color: var(--orange); font-weight: 600; text-decoration: none; }

.search-hint { padding: 12px 6px 2px; font-size: 0.72rem; color: var(--midgray); text-align: right; }

@media (max-width: 768px) {
  .search-overlay { padding: 16px 12px; }
  .search-panel { padding: 14px; }
  .search-hint { display: none; }
}
@media (max-width: 1260px) {
  .nav-search-label { display: none; }
  .nav-links .nav-search-btn svg { width: 20px; height: 20px; }
}

/* ── Leaving-site interstitial ── */
.acu-leave-overlay { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; background: rgba(17,29,51,0.55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); padding: 20px; }
.acu-leave-overlay.open { display: flex; }
.acu-leave-card { position: relative; max-width: 720px; width: 100%; background: #fff; border-radius: 18px; padding: 36px 40px; box-shadow: 0 24px 60px rgba(17,29,51,0.35); }
.acu-leave-card h3 { font-family: 'futura-pt', 'Futura PT','Futura','Baumans',sans-serif; font-size: 1.2rem; color: var(--navy, #1B2A4A); margin: 0 0 14px; }
.acu-leave-card p { font-size: 0.95rem; color: #4B5563; line-height: 1.7; margin: 0 0 22px; }
.acu-leave-proceed { font-weight: 600; color: var(--gold, #D4952B); text-decoration: none; }
.acu-leave-proceed:hover { text-decoration: underline; color: var(--orange, #C75B12); }
.acu-leave-close { position: absolute; top: 14px; right: 16px; background: none; border: none; font-size: 1.5rem; line-height: 1; color: #6B7280; cursor: pointer; padding: 6px; }
.acu-leave-close:hover { color: var(--navy, #1B2A4A); }
@media (max-width: 600px) { .acu-leave-card { padding: 28px 22px; } }

/* Ask-Ken handoff inside the search overlay (visible only when the page provides acuAskKen) */
.search-ask-ken {
  display: inline-block; margin-top: 14px; margin-left: 6px;
  padding: 6px 14px; border: none; border-radius: 18px;
  font-family: 'Inter', sans-serif; font-size: 0.82rem; font-weight: 600;
  color: var(--orange, #C75B12); background: var(--surface, #E8E4DF);
  box-shadow: var(--shadow-raised-sm); cursor: pointer; transition: all 0.25s ease;
}
.search-ask-ken:hover { transform: translateY(-1px); box-shadow: var(--shadow-raised); }
.interface-ai-widget-iframe-parent { z-index: 99999 !important; }

/* Ken launcher head suppressed sitewide: the chat opens only from Ask Ken
   actions and stays contained to its panel. */
.interface-ai-image-container,
.interface-ai-expandable-image-container,
.interface-ai-hover-container,
.interface-ai-close-button-container { display: none !important; }

/* ── Accessibility options panel ── */
.a11y-open-btn { background: none; border: none; padding: 0; font: inherit; color: rgba(255,255,255,0.45); text-decoration: underline; cursor: pointer; }
.a11y-open-btn:hover { color: var(--gold, #D4952B); }
.a11y-overlay { position: fixed; inset: 0; z-index: 2100; display: none; align-items: center; justify-content: center; background: rgba(17,29,51,0.55); backdrop-filter: blur(4px); padding: 20px; }
.a11y-overlay.open { display: flex; }
.a11y-panel { position: relative; max-width: 420px; width: 100%; background: #fff; border-radius: 18px; padding: 30px 32px; box-shadow: 0 24px 60px rgba(17,29,51,0.35); }
.a11y-panel h3 { font-family: 'futura-pt', 'Futura PT','Futura','Baumans',sans-serif; font-size: 1.2rem; color: #1B2A4A; margin: 0 0 6px; }
.a11y-sub { font-size: 0.82rem; color: #5A6270; margin: 0 0 18px; line-height: 1.5; }
.a11y-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid rgba(27,42,74,0.08); font-size: 0.95rem; color: #1F2937; }
.a11y-toggle { min-width: 96px; padding: 8px 14px; border-radius: 12px; border: 1.5px solid rgba(27,42,74,0.25); background: #f0ede9; font: inherit; font-size: 0.85rem; font-weight: 600; color: #1B2A4A; cursor: pointer; }
.a11y-toggle.on { background: #1B2A4A; color: #fff; border-color: #1B2A4A; }
.a11y-reset { margin-top: 16px; background: none; border: none; font: inherit; font-size: 0.85rem; font-weight: 600; color: #A84A0D; text-decoration: underline; cursor: pointer; padding: 0; }
.a11y-close { position: absolute; top: 12px; right: 14px; background: none; border: none; font-size: 1.5rem; line-height: 1; color: #5A6270; cursor: pointer; padding: 6px; }
.a11y-close:hover { color: #1B2A4A; }

/* ── Applied settings ── */
html.a11y-text-lg { font-size: 18px; }
html.a11y-text-xl { font-size: 20px; }
html.a11y-font body, html.a11y-font body * { font-family: Verdana, Arial, sans-serif !important; letter-spacing: 0.01em; }
html.a11y-underline a { text-decoration: underline !important; }
html.a11y-contrast { --midgray: #3F4854; --orange: #A84A0D; --gold: #8a5a0f; }
html.a11y-contrast body { color: #111827; }
html.a11y-contrast .hero-subtitle, html.a11y-contrast .cta-desc, html.a11y-contrast .section-desc { color: rgba(255,255,255,0.92); }
html.a11y-contrast .section-desc { color: #3F4854; }
html.a11y-contrast .footer, html.a11y-contrast .footer a, html.a11y-contrast .footer p, html.a11y-contrast .footer-col a, html.a11y-contrast .footer-brand p, html.a11y-contrast .footer-bottom p, html.a11y-contrast .a11y-open-btn { color: #ffffff; }
html.a11y-nomotion *, html.a11y-nomotion *::before, html.a11y-nomotion *::after { animation: none !important; transition: none !important; }
html.a11y-nomotion .reveal, html.a11y-nomotion .reveal-left, html.a11y-nomotion .reveal-right { opacity: 1 !important; transform: none !important; }
html.a11y-nomotion .hero-est, html.a11y-nomotion .hero-title, html.a11y-nomotion .hero-subtitle, html.a11y-nomotion .hero-actions, html.a11y-nomotion .fs-ndip-strip { opacity: 1 !important; }
html.a11y-nomotion video { display: none !important; }

/* ── WCAG AA contrast: darker text tones, same brand family. Icons, badges,
   and large display elements keep the vivid orange; running text darkens. ── */
:root { --midgray: #5B6470; --orange-text: #A84A0D; }
a { color: var(--orange-text); }
.section-label { color: var(--orange-text); }
.section-label::before, .section-label::after { background: var(--orange-text); }
.shimmer-text {
  background: linear-gradient(90deg, #A84A0D 0%, #8A5A0F 50%, #A84A0D 100%);
  background-size: 200% auto; -webkit-background-clip: text; background-clip: text;
}
.product-cta, .product-card-link, .cash-card-arrow, .ken-guide-answer,
.article-back, .testimonial-name, .fs-team-role, .fs-card a, .help-ask-ken a,
.search-ask-ken, .chk-testimonial-author, .faq-answer-inner a, .a11y-reset { color: var(--orange-text); }
.btn-glow { background: linear-gradient(135deg, #A84A0D, #B85410); }
/* Home hero primary button: same AA gradient (white text 4.9:1 or more; audit ACU-15). */
.hero .btn-primary { background: linear-gradient(135deg, #A84A0D, #B85410); }
.nav-cta { background: #B85410 !important; }
.nav-cta:hover { background: #A84A0D !important; }
.btn-primary:hover { background: #B85410; }
.footer-bottom p, .footer-bottom a, .a11y-open-btn { color: rgba(255,255,255,0.55); }

/* ── Skip link (injected by site.js) ── */
.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 3000;
  background: var(--navy, #1B2A4A); color: #fff; font-weight: 600;
  padding: 12px 20px; border-radius: 0 0 12px 12px; text-decoration: none;
  transition: top 0.2s ease;
}
.skip-link:focus { top: 0; color: #fff; }

/* ── Honor prefers-reduced-motion for page animations ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .reveal, .reveal-left, .reveal-right { opacity: 1 !important; transform: none !important; }
  .hero-est, .hero-title, .hero-subtitle, .hero-actions, .fs-ndip-strip { opacity: 1 !important; }
}

/* ── axe follow-ups: footer links distinguishable without color; fine print
   on the darker surface needs deeper tones ── */
.footer-bottom a { text-decoration: underline; }
.chk-disclosures p, .chk-rates-note { color: #474F5A; }
.chk-disclosures a, .chk-rates-note a { color: #8F3F0B; }

/* ── Footer compliance badges: larger and more legible ── */
.footer-badges img { height: 48px; opacity: 0.85; }
.footer-badges { flex-wrap: wrap; }
.footer-badges-text { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.01em; color: rgba(255,255,255,0.85); }
@media (max-width: 768px) { .footer-badges img { height: 40px; } }

/* ── P0-1: mobile menu (2026-08-19 readiness review) ──────────────────────
   The overlay is position:fixed inside .nav; when .nav.scrolled applies
   backdrop-filter the nav becomes the overlay's containing block and the
   menu renders inside the ~56px bar. Drop the filter while open, lock the
   page scroll, and let long menus scroll inside a true viewport overlay. */
.nav-toggle { background: none; border: 0; font: inherit; color: inherit; }
@media (max-width: 1260px) {
  html.nav-open, html.nav-open body { overflow: hidden; }
  html.nav-open .nav,
  html.nav-open .nav.scrolled {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(232,228,223,0.98) !important;
  }
  .nav-links.open {
    display: flex;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    justify-content: flex-start;
    padding: 96px 24px 48px;
  }
}


/*
   wrapper around every do_shortcode embed). Restyles GF markup to the ACU
   Payment gateway iframes (PayPal/card hosted fields) style themselves. */
[data-gravity-form] { background:var(--surface); border-radius:24px; padding:44px 40px; box-shadow:var(--shadow-raised); }
@media (max-width:768px){ [data-gravity-form] { padding:28px 20px; } }
[data-gravity-form] .gform_title, [data-gravity-form] .gform_description { display:none !important; }
[data-gravity-form] .gform_wrapper { margin:0 !important; }
[data-gravity-form] .gform_wrapper input[type="text"],
[data-gravity-form] .gform_wrapper input[type="email"],
[data-gravity-form] .gform_wrapper input[type="tel"],
[data-gravity-form] .gform_wrapper input[type="number"],
[data-gravity-form] .gform_wrapper input[type="url"],
[data-gravity-form] .gform_wrapper select,
[data-gravity-form] .gform_wrapper textarea {
  font-family:inherit !important; font-size:0.95rem !important; color:var(--slate) !important;
  background:var(--surface) !important; border:none !important; border-radius:14px !important;
  padding:13px 16px !important; box-shadow:var(--shadow-inset) !important; width:100%;
}
[data-gravity-form] .gform_wrapper input:focus,
[data-gravity-form] .gform_wrapper select:focus,
[data-gravity-form] .gform_wrapper textarea:focus {
  outline:none !important; box-shadow:var(--shadow-inset), 0 0 0 2px rgba(199,91,18,0.35) !important;
}
[data-gravity-form] .gfield_label, [data-gravity-form] legend.gfield_label {
  font-size:0.85rem !important; font-weight:600 !important; color:var(--navy) !important; letter-spacing:0.01em;
}
[data-gravity-form] .gfield_required { color:var(--orange) !important; }
[data-gravity-form] .gfield_description { font-size:0.8rem !important; color:var(--midgray) !important; }
[data-gravity-form] .ginput_complex label, [data-gravity-form] .gform-field-label--type-sub {
  font-size:0.72rem !important; color:var(--midgray) !important; font-weight:500 !important;
}
[data-gravity-form] .gsection { border:none !important; padding:0 !important; margin-top:16px; }
[data-gravity-form] .gsection_title, [data-gravity-form] .gsection .gsection_title {
  font-family:'futura-pt', 'Futura PT','Futura','Baumans',sans-serif !important; font-size:1.25rem !important;
  color:var(--navy) !important; border-bottom:2px solid rgba(199,91,18,0.25); padding-bottom:8px;
}
/* radio and checkbox choices as selectable cards */
[data-gravity-form] .gchoice {
  display:flex; align-items:flex-start; gap:12px; background:var(--surface-light);
  border-radius:12px; padding:12px 16px; margin-bottom:8px; box-shadow:var(--shadow-raised-sm);
}
[data-gravity-form] .gchoice input[type="radio"],
[data-gravity-form] .gchoice input[type="checkbox"] {
  accent-color:var(--orange); width:17px; height:17px; margin-top:2px; flex-shrink:0;
}
[data-gravity-form] .gchoice label { font-size:0.92rem !important; color:var(--navy) !important; font-weight:500 !important; }
[data-gravity-form] .ginput_price, [data-gravity-form] .ginput_product_price { color:#A84A0D !important; font-weight:700 !important; }
[data-gravity-form] .ginput_total, [data-gravity-form] .gfield_total .ginput_container {
  font-family:'futura-pt', 'Futura PT','Futura','Baumans',sans-serif !important; font-size:1.5rem !important; color:var(--navy) !important;
}
/* buttons */
[data-gravity-form] .gform_button, [data-gravity-form] .gform_next_button {
  font-family:inherit !important; font-size:0.95rem !important; font-weight:600 !important;
  background:var(--navy) !important; color:#fff !important; border:none !important;
  border-radius:14px !important; padding:15px 32px !important; cursor:pointer;
  box-shadow:0 8px 24px rgba(27,42,74,0.25) !important; transition:transform 0.25s ease, box-shadow 0.25s ease;
}
[data-gravity-form] .gform_button:hover, [data-gravity-form] .gform_next_button:hover {
  transform:translateY(-2px); box-shadow:0 12px 30px rgba(27,42,74,0.35) !important;
}
[data-gravity-form] .gform_previous_button {
  font-family:inherit !important; font-size:0.95rem !important; font-weight:600 !important;
  background:transparent !important; color:var(--navy) !important; border:2px solid var(--navy) !important;
  border-radius:14px !important; padding:13px 28px !important; cursor:pointer;
}
/* multi-page progress */
[data-gravity-form] .gf_progressbar { background:var(--surface-light) !important; border-radius:20px !important; box-shadow:var(--shadow-inset); }
[data-gravity-form] .gf_progressbar_percentage {
  background:linear-gradient(90deg, var(--orange), var(--gold)) !important; border-radius:20px !important;
}
[data-gravity-form] .gf_progressbar_title { font-size:0.8rem !important; color:var(--midgray) !important; }
/* validation */
[data-gravity-form] .gform_validation_errors {
  background:rgba(199,91,18,0.08) !important; border:1px solid rgba(199,91,18,0.35) !important;
  border-radius:12px !important; box-shadow:none !important; padding:14px 18px !important;
}
[data-gravity-form] .gform_validation_errors h2, [data-gravity-form] .gform_submission_error { font-size:0.95rem !important; color:#8F3F0B !important; }
[data-gravity-form] .gfield_validation_message, [data-gravity-form] .validation_message {
  background:transparent !important; border:none !important; color:#8F3F0B !important; font-size:0.8rem !important; padding:4px 0 0 !important;
}
[data-gravity-form] .gfield_error input, [data-gravity-form] .gfield_error select, [data-gravity-form] .gfield_error textarea {
  box-shadow:var(--shadow-inset), 0 0 0 2px rgba(143,63,11,0.45) !important;
}
/* file upload dropzone */
[data-gravity-form] .gform_drop_area {
  background:var(--surface-light) !important; border:2px dashed rgba(91,100,112,0.4) !important;
  border-radius:16px !important; color:var(--midgray) !important;
}
[data-gravity-form] .gform_drop_area .gform_button_select_files {
  background:var(--surface) !important; color:var(--navy) !important; border:none !important;
  border-radius:12px !important; padding:10px 20px !important; font-weight:600 !important;
  box-shadow:var(--shadow-raised-sm) !important; cursor:pointer;
}
/* confirmation */
[data-gravity-form] .gform_confirmation_message {
  text-align:center; font-size:1.05rem; color:var(--navy); line-height:1.7; padding:24px 8px;
}

/* ── Cookie consent: compact bottom-right card + preferences dialog ── */
.acu-consent { position: fixed; right: 20px; bottom: 20px; z-index: 2050; width: min(380px, calc(100vw - 40px)); background: #fff; color: #1F2937; border: 1px solid rgba(27,42,74,0.12); border-radius: 14px; box-shadow: 0 10px 30px rgba(17,29,51,0.16); padding: 18px 18px 16px; display: none; opacity: 0; transform: translateY(12px); transition: opacity 0.35s ease, transform 0.35s ease; }
.acu-consent.open { display: block; animation: acuConsentIn 0.4s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes acuConsentIn { to { opacity: 1; transform: translateY(0); } }
.acu-consent__title { font-family: 'futura-pt', 'Futura PT','Futura','Baumans',sans-serif; font-size: 0.98rem; margin: 0 0 6px; color: #1B2A4A; }
.acu-consent__text { margin: 0; font-size: 0.82rem; line-height: 1.5; color: #3F4854; }
.acu-consent__gpc { margin: 8px 0 0; font-size: 0.76rem; line-height: 1.45; color: #8A5A0F; }
.acu-consent__link { color: #1B2A4A; text-decoration: underline; }
.acu-consent__link:hover { color: #A84A0D; }
.acu-consent__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.acu-consent__btn { font: inherit; font-size: 0.82rem; font-weight: 600; padding: 9px 16px; border-radius: 999px; border: 1.5px solid #1B2A4A; background: transparent; color: #1B2A4A; cursor: pointer; }
.acu-consent__btn:hover { background: rgba(27,42,74,0.06); }
.acu-consent__btn--primary { background: #1B2A4A; color: #fff; }
.acu-consent__btn--primary:hover { background: #243658; }
.acu-consent__settings { font: inherit; font-size: 0.82rem; font-weight: 600; background: none; border: none; padding: 9px 4px; color: #A84A0D; text-decoration: underline; cursor: pointer; margin-left: auto; }
.acu-consent__settings:hover { color: #1B2A4A; }
.acu-consent__btn:focus-visible, .acu-consent__settings:focus-visible, .acu-consent-dialog__close:focus-visible { outline: 3px solid #D4952B; outline-offset: 2px; }
/* Preferences dialog */
.acu-consent-overlay { position: fixed; inset: 0; z-index: 2100; display: none; align-items: center; justify-content: center; background: rgba(17,29,51,0.5); backdrop-filter: blur(3px); padding: 20px; }
.acu-consent-overlay.open { display: flex; }
html.acu-consent-lock { overflow: hidden; }
.acu-consent-dialog { position: relative; width: 100%; max-width: 480px; background: #fff; border-radius: 16px; padding: 28px 28px 24px; box-shadow: 0 24px 60px rgba(17,29,51,0.35); color: #1F2937; }
.acu-consent-dialog__title { font-family: 'futura-pt', 'Futura PT','Futura','Baumans',sans-serif; font-size: 1.2rem; color: #1B2A4A; margin: 0 0 6px; }
.acu-consent-dialog__sub { font-size: 0.84rem; color: #5A6270; line-height: 1.5; margin: 0 0 14px; }
.acu-consent-dialog__close { position: absolute; top: 10px; right: 12px; background: none; border: none; font-size: 1.5rem; line-height: 1; color: #5A6270; cursor: pointer; padding: 6px; }
.acu-consent-dialog__close:hover { color: #1B2A4A; }
.acu-consent-row { border-top: 1px solid rgba(27,42,74,0.1); }
.acu-consent-row__head { display: flex; align-items: center; gap: 12px; padding: 12px 0; }
.acu-consent-row__toggle { flex: none; width: 22px; height: 22px; border: 1.5px solid rgba(27,42,74,0.3); border-radius: 4px; background: #fff; cursor: pointer; position: relative; padding: 0; }
.acu-consent-row__toggle span::before, .acu-consent-row__toggle span::after { content: ''; position: absolute; left: 5px; right: 5px; top: 50%; height: 2px; margin-top: -1px; background: #1B2A4A; }
.acu-consent-row__toggle[aria-expanded="false"] span::after { transform: rotate(90deg); }
.acu-consent-row__label { flex: 1; font-weight: 700; font-size: 0.95rem; color: #1B2A4A; }
.acu-consent-row__always { flex: none; font-weight: 700; font-size: 0.85rem; color: #1B2A4A; }
.acu-consent-row__body { background: #F2F0EC; border-radius: 8px; padding: 12px 14px 12px 46px; margin: 0 0 12px; }
.acu-consent-row.collapsed .acu-consent-row__body { display: none; }
.acu-consent-row__desc { margin: 0 0 8px; font-size: 0.82rem; color: #3F4854; line-height: 1.55; }
.acu-consent-row__details { font-size: 0.8rem; letter-spacing: 0.04em; color: #1B2A4A; text-decoration: underline; }
.acu-consent-row__details:hover { color: #A84A0D; }
.acu-consent-dialog { max-width: 560px; max-height: calc(100vh - 40px); overflow-y: auto; }
.acu-switch { position: relative; flex: none; width: 44px; height: 26px; }
.acu-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.acu-switch__track { position: absolute; inset: 0; border-radius: 999px; background: #C9CDD3; transition: background 0.2s ease; }
.acu-switch__track::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.25); transition: transform 0.2s ease; }
.acu-switch input:checked + .acu-switch__track { background: #1B2A4A; }
.acu-switch input:checked + .acu-switch__track::after { transform: translateX(18px); }
.acu-switch input:disabled + .acu-switch__track { background: #8A5A0F; opacity: 0.55; cursor: not-allowed; }
.acu-switch input:focus-visible + .acu-switch__track { outline: 3px solid #D4952B; outline-offset: 2px; }
.acu-consent-dialog__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.acu-consent-dialog__meta { margin: 14px 0 0; font-size: 0.72rem; color: #8A8F98; }
.acu-consent-dialog__actions .acu-consent__settings { margin-left: auto; }
@media (max-width: 560px) {
  .acu-consent { right: 10px; left: 10px; bottom: 10px; width: auto; padding: 16px; }
  .acu-consent__actions .acu-consent__btn { flex: 1 1 45%; text-align: center; }
  .acu-consent__settings { margin-left: 0; flex: 1 1 100%; text-align: center; }
  .acu-consent-dialog { padding: 22px 18px 18px; }
  .acu-consent-row__body { padding-left: 14px; }
}
@media (prefers-reduced-motion: reduce) { .acu-consent.open { animation: none; opacity: 1; transform: none; } }
