/* Orbitrio site shell — one header, one footer, one breakpoint (960px). */
:root{
  --navy:#0B3E91; --deep:#022A61; --ink:#14355F; --muted:#44546F; --soft:#68789A;
  --lime:#C2D152; --paper:#FAF9F5; --line:#EEEDE4; --card-line:#E4E4DB;
  --header-height:72px; --z-header:100; --z-drawer:110; --z-totop:70;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 14px);scrollbar-gutter:stable;background:#fff}
body{margin:0;background:#fff;color:var(--ink);font-family:'Plus Jakarta Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
bdi,code,[data-bdi],[style*="Spline Sans Mono"]{unicode-bidi:isolate}
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}
::selection{background:var(--navy);color:#fff}
a{color:var(--navy)}a:hover{color:var(--deep)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.skip-link{position:absolute;top:-60px;left:8px;z-index:200;background:var(--navy);color:#fff;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:700;text-decoration:none}
.skip-link:focus{top:8px;color:#fff}

/* Header */
.site-header{position:sticky;top:0;z-index:var(--z-header);background:#fff;border-bottom:1px solid var(--line);view-transition-name:site-header}
.site-header__inner{min-height:var(--header-height);box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(14px,2vw,26px);padding:0 clamp(16px,3vw,40px)}
.site-logo{display:inline-flex;align-items:center;min-height:44px;flex:none}
.site-logo img{height:26px;width:auto;display:block}
.primary-nav{display:flex;flex-wrap:nowrap;align-items:center;gap:clamp(10px,1.6vw,22px);min-width:0;overflow:hidden;font-size:13.5px;font-weight:600}
.primary-nav__link{display:inline-flex;align-items:center;min-height:44px;line-height:1;border-bottom:2px solid transparent;padding:2px 1px 0;box-sizing:border-box;white-space:nowrap;color:var(--muted);text-decoration:none;transition:color .12s ease}
.primary-nav__link:hover{color:var(--deep);text-decoration:none}
.primary-nav__link:active{color:var(--deep);transform:translateY(1px)}
.primary-nav__link[aria-current="page"]{color:var(--deep);border-bottom-color:var(--lime)}
.header-actions{display:flex;align-items:center;gap:clamp(8px,1.4vw,16px);flex:none}
.lang-chip{display:inline-flex;align-items:center;gap:7px;min-height:44px;box-sizing:border-box;border:1px solid #D8D7CB;border-radius:999px;padding:0 14px;font-weight:700;font-size:12.5px;letter-spacing:.04em;color:var(--deep);white-space:nowrap}
.lang-chip__flag{width:19px;height:13px;border-radius:2.5px;display:block;flex:none;box-shadow:0 0 0 1px rgba(27,42,68,.14);background:center/cover no-repeat var(--flag,none)}
.header-cta{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box;background:var(--deep);color:#fff;border-radius:999px;padding:0 22px;font-size:13.5px;font-weight:700;white-space:nowrap;text-decoration:none}
.header-cta:hover{background:var(--navy);color:#fff;text-decoration:none}
.header-login{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-size:13.5px;font-weight:700;color:var(--navy);text-decoration:none;white-space:nowrap;transition:color .12s ease}
.header-login:hover{color:var(--deep);text-decoration:none}
.header-login:active{transform:translateY(1px)}
.header-cta:active,.mobile-menu__cta:active{transform:translateY(1px)}
.site-logo:active{opacity:.75}
.mobile-menu__link:active{background:#F2F6FC;color:var(--deep)}
.menu-toggle{display:none;appearance:none;background:#fff;border:1px solid #D8D7CB;border-radius:10px;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;padding:0;flex:none}
.menu-toggle span{width:16px;height:2px;background:var(--deep);border-radius:2px;display:block}
@media (max-width:960px){
  /* Mobile scrollbars are overlay: a stable gutter reserves 15px that is never
     painted, leaving a dead strip on the right of every page. */
  html{scrollbar-gutter:auto}
  .primary-nav,.header-cta,.header-login{display:none}
  .menu-toggle{display:inline-flex}
  .site-header__inner{grid-template-columns:auto 1fr}
  .header-actions{justify-self:end}
}

/* Mobile menu: dropdown card under the header */
.mobile-menu{position:fixed;top:calc(var(--header-height) + 8px);inset-inline:12px;bottom:auto;margin:0;width:auto;max-width:560px;margin-inline:auto;height:auto;max-height:calc(100dvh - var(--header-height) - 24px);border:1px solid var(--card-line);border-radius:16px;padding:0;background:#fff;box-shadow:0 24px 60px rgba(2,42,97,.22);z-index:var(--z-drawer)}
.mobile-menu[open]{animation:menu-drop .18s ease}
@keyframes menu-drop{from{opacity:0;transform:translateY(-6px)}}
.mobile-menu::backdrop{background:rgba(2,42,97,.32)}
.mobile-menu__inner{display:flex;flex-direction:column;gap:2px;padding:10px;max-height:calc(100dvh - var(--header-height) - 24px);box-sizing:border-box;overflow:auto}
.mobile-menu__close{align-self:flex-end;width:40px;height:40px;border:none;border-radius:10px;background:transparent;cursor:pointer;font:400 20px 'Plus Jakarta Sans',sans-serif;color:var(--navy)}
.mobile-menu__close:hover{background:#F2F6FC}
.mobile-menu__link{display:flex;align-items:center;min-height:48px;font:600 15px 'Plus Jakarta Sans',sans-serif;color:var(--muted);text-decoration:none;padding:0 14px;border-radius:10px}
.mobile-menu__link:hover{color:var(--deep);background:#F2F6FC;text-decoration:none}
.mobile-menu__link[aria-current="page"]{color:var(--deep);font-weight:700;background:#F4F6FB;box-shadow:inset 3px 0 0 var(--lime)}
.mobile-menu__cta{margin-top:16px;display:flex;align-items:center;justify-content:center;min-height:48px;background:var(--deep);color:#fff;border-radius:999px;font:700 15px 'Plus Jakarta Sans',sans-serif;text-decoration:none}
.mobile-menu__cta:hover{background:var(--navy);color:#fff;text-decoration:none}
.mobile-menu__login{display:flex;align-items:center;justify-content:center;min-height:48px;font:700 14px 'Plus Jakarta Sans',sans-serif;color:var(--navy);text-decoration:none}
body.menu-open{overflow:hidden}

/* Footer + newsletter states */
.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}
.f-link{text-decoration:none;display:inline-flex;align-items:center}
@media (pointer:coarse){.f-link{min-height:44px}}
.f-link:hover{color:#fff !important;text-decoration:none}
.js-nl [hidden]{display:none !important}
.nl-btn:hover{background:#D3E263}

/* Back to top */
.to-top{position:fixed;bottom:22px;inset-inline-end:22px;z-index:var(--z-totop);width:50px;height:50px;border-radius:50%;border:none;padding:3px;background:conic-gradient(var(--lime) 0deg,rgba(2,42,97,.18) 0deg);cursor:pointer;box-shadow:0 10px 26px rgba(2,42,97,.32)}
.to-top__inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:var(--navy);color:#fff}
.to-top:hover .to-top__inner{background:var(--deep)}

/* Footer layout */
.ft-grid{display:grid;gap:36px 44px;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
@media (min-width:920px){.ft-grid{grid-template-columns:1.25fr .85fr .9fr 1.35fr;column-gap:clamp(44px,4.5vw,64px)}}

/* Page transitions — curved fluid reveal.
   One system only (cross-document view transitions): no standalone page-entry
   fades. Old content fades fully out as new content fades in; the header is
   its own pinned group and the default root cross-fade is disabled so the
   shell never dims or ghosts. */
main{view-transition-name:page-content}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-group(site-header){animation-duration:0s}
::view-transition-image-pair(page-content){isolation:isolate}
::view-transition-old(page-content){animation:110ms ease-out both vt-old-fade}
::view-transition-new(page-content){animation:200ms cubic-bezier(.22,1,.36,1) both vt-new-in}
@keyframes vt-old-fade{to{opacity:0;transform:translateY(-6px)}}
@keyframes vt-new-in{from{opacity:0;transform:translateY(9px)}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  @view-transition{navigation:none}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
  [data-marquee]{animation:none !important}
  .mobile-menu[open]{animation:none}
}

/* FAQ */
.faq-q:focus-visible,.faq-chip:focus-visible,.faq-ctx a:focus-visible{outline:2px solid #033A84;outline-offset:2px;border-radius:10px}
#faq-search:focus-visible{outline:2px solid #033A84;outline-offset:1px}
