/* Accessibility and small-screen safeguards. Original breakpoints live beside
   their component rules: 640, 768, 1024 and 1280 pixels. */
[hidden] { display: none !important; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; }
input, select, textarea { min-width: 0; max-width: 100%; }
html { scroll-padding-top: 90px; }
.skip-link { position: fixed; left: 16px; top: 8px; transform: translateY(-160%); z-index: 300; background: white; color: var(--primary); padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }
body.modal-open, body.menu-open { overflow: hidden; }
#site-header.is-scrolled { padding-block: 8px; background: rgb(255 255 255 / 90%); backdrop-filter: blur(24px); box-shadow: 0 10px 15px -3px rgb(13 27 62 / 6%), 0 4px 6px -4px rgb(13 27 62 / 6%); }
#site-header .header-nav-9 { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
#site-header nav a[aria-current="page"] { color: var(--primary); background: #eef2ff; }
[data-dropdown-toggle].is-active { color: var(--primary); }
[data-dropdown-toggle][aria-expanded="true"] svg { transform: rotate(180deg); }
[data-faq-toggle][aria-expanded="true"] > span:last-child { transform: rotate(45deg); }
[data-mobile-toggle][aria-expanded="true"] svg { visibility: hidden; }
[data-mobile-toggle][aria-expanded="true"] { position: relative; }
[data-mobile-toggle][aria-expanded="true"]::before,
[data-mobile-toggle][aria-expanded="true"]::after { content: ''; position: absolute; width: 20px; height: 2px; top: 50%; left: 8px; background: #0d1b3e; transform: rotate(45deg); }
[data-mobile-toggle][aria-expanded="true"]::after { transform: rotate(-45deg); }
[data-filter][aria-pressed="true"] { background: #0060e6; color: white; box-shadow: 0 4px 6px -1px rgb(0 96 230 / 25%),0 2px 4px -2px rgb(0 96 230 / 25%); }
[data-filter][aria-pressed="false"] { background: #eef2ff; color: #5a6a8a; box-shadow: none; }
[data-filter][aria-pressed="false"]:hover { background: rgb(0 96 230 / 10%); color: #0060e6; }
@media (max-width: 1279px) {
  #site-header .header-nav-9 { position: static; transform: none; }
  #mobile-menu { max-height: calc(100dvh - 130px); overscroll-behavior: contain; }
  footer { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
