/* A Plus Credit Services — shared header + footer, loaded on every page after site.css.
   Sync markup/asset versions with tools/shared_chrome.py. Homepage-only rules stay in home.css. */

/* ---------- header ---------- */
html{ scroll-padding-top:calc(var(--nav-h) + 20px); }
.topbar{ z-index:70; }
.skip-link{ position:absolute; top:.75rem; left:var(--gutter); z-index:1; padding:.7rem 1rem; border-radius:var(--r-pill); background:var(--navy); color:var(--white); font-weight:600; text-decoration:none; transform:translateY(-200%); }
.skip-link:focus{ transform:translateY(0); }
/* An off-screen booking button must not become an invisible keyboard stop. */
.sticky-cta:not(.show){ visibility:hidden; pointer-events:none; }
.topbar__wrap{ gap:1rem; }
.topbar__logo{ flex-shrink:0; }
.topbar__logo img{ height:48px; width:auto; }
.nav{ gap:1rem; margin-left:auto; }
.nav a{ position:relative; padding:.65rem 0; white-space:nowrap; }
.nav a::after{ content:""; position:absolute; left:0; right:0; bottom:2px; height:2px; background:var(--navy); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.nav a:hover::after, .nav a:focus-visible::after, .nav a[aria-current="page"]::after{ transform:scaleX(1); }
.nav a[aria-current="page"]::after{ bottom:2px; }
.topbar__right{ margin-left:0; flex-shrink:0; }
.top-cta{ min-height:44px; justify-content:center; }
.topbar a:focus-visible, .burger:focus-visible{ outline:2px solid var(--sky); outline-offset:5px; }
.burger .burger__close, .topbar.is-open .burger__open{ display:none; }
.topbar.is-open .burger__close{ display:block; }
.topbar{ transition:transform .4s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease); }
.topbar.is-hidden{ transform:translateY(-100%); }
.topbar:focus-within{ transform:none; }
/* The full desktop menu stays readable before switching to the compact layout. */
@media (max-width:1460px){ .topbar__tel{ display:none; } }
.language-picker{ display:flex; align-items:center; gap:.45rem; font-size:.76rem; white-space:nowrap; }
.language-picker a{ display:inline-flex; align-items:center; min-height:44px; color:var(--ink-soft); text-decoration:none; }
.language-picker a[aria-current="true"]{ color:var(--navy); font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.language-picker a:focus-visible{ outline:2px solid var(--sky); outline-offset:3px; border-radius:3px; }
.language-picker > span{ color:var(--border); }
.language-picker--mobile{ padding:.35rem var(--gutter); border-bottom:1px solid var(--border); margin-bottom:.35rem; font-size:.9rem; }
.mnav .language-picker a{ padding:.4rem .5rem; min-height:44px; }
@media (max-width:1200px){
  .nav{ display:none; }
  .topbar__right > .language-picker{ display:none; }
  .burger{ display:grid; flex-shrink:0; background:var(--white); }
  .topbar__logo img{ height:44px; }
  .topbar__right{ margin-left:auto; gap:.75rem; }
  .mnav{ position:absolute; inset:100% 0 auto; max-height:calc(100vh - var(--nav-h)); max-height:calc(100dvh - var(--nav-h)); overflow-y:auto; overscroll-behavior:contain; box-shadow:var(--shadow-lg); padding:.4rem 0 1rem; }
  .mnav a{ min-height:48px; padding:.8rem var(--gutter); }
  .mnav a:hover, .mnav a:focus-visible{ background:var(--grey-card); }
  .mnav a[aria-current="page"]{ color:var(--navy); background:var(--sky-soft); box-shadow:inset 3px 0 var(--red); }
  .mnav .mnav__cta{ display:flex; justify-content:center; align-items:center; gap:.6rem; margin:1rem var(--gutter) 0; padding:.9rem 1.2rem; border:0; border-radius:var(--r-pill); color:var(--white); background:var(--navy); }
  .mnav .mnav__cta:hover{ background:var(--navy-hover); }
}
@media (min-width:1201px){ .topbar.is-open .mnav{ display:none; } }
@media (max-width:540px){
  .top-cta{ display:none; }
  .topbar__wrap{ gap:1rem; }
}
@media (prefers-reduced-motion:reduce){
  .topbar, .nav a::after{ transition:none; }
  .topbar.is-hidden{ transform:none; }
}

/* ---------- footer: white mark big, signature, grain, giant watermark bleeding off the bottom ---------- */
.ft{ position:relative; overflow:hidden; isolation:isolate; }
.ft__wrap{ position:relative; z-index:2; }
.ft__top{ grid-template-columns:minmax(0,1.25fr) minmax(0,.65fr) minmax(0,1.15fr) minmax(0,1fr); }
.ft__top > *{ min-width:0; }
.ft a:focus-visible{ outline:2px solid var(--white); outline-offset:5px; }
.ft__col a{ overflow-wrap:anywhere; }
.ft__nav a[aria-current="page"], .ft__bottom a[aria-current="page"]{ color:var(--white); text-decoration:underline; text-underline-offset:5px; }
.ft__col a:hover, .ft__bottom a:hover{ text-decoration:underline; text-underline-offset:5px; }
.ft__col a .ic{ display:inline-block; }
.ft__cta{ text-align:center; justify-content:center; }
.ft .grain{ position:absolute; inset:0; pointer-events:none; z-index:1; opacity:.06; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size:220px 220px; }
.ft__logo{ background:none; border-radius:0; padding:0; margin-bottom:1.4rem; }
.ft__logo img{ width:260px; max-width:100%; height:auto; }
.ft__rev{ flex-wrap:wrap; gap:.2rem .5rem; text-decoration:none; }
.ft__rev:hover{ color:var(--white); text-decoration:underline; text-underline-offset:4px; }
.ft__sig{ display:block; height:44px; width:auto; margin:.3rem 0 .35rem -4px; filter:invert(1) brightness(1.6); opacity:.9; }
.ft__sigby{ display:block; font-size:.78rem; color:rgba(255,255,255,.5); margin-bottom:1.1rem; }
.ft__disc{ max-width:72rem; }
.ft__mark{ position:relative; z-index:1; display:flex; justify-content:center; margin:clamp(2rem,5vw,3.5rem) 0 -22%; user-select:none; pointer-events:none; }
.ft__mark img{ width:min(92vw,1100px); height:auto; opacity:.09; }
@media (max-width:1040px){
  .ft__top{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2.5rem; }
  .ft__brand{ grid-column:auto; }
}
@media (max-width:600px){
  .ft__top{ grid-template-columns:minmax(0,1fr); gap:2rem; }
  .ft__nav{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 1.5rem; }
  .ft__nav h4{ grid-column:1 / -1; }
  .ft__col a{ padding:.35rem 0; margin-bottom:.2rem; }
  .ft__col .ft__cta{ padding:.85rem 1.2rem; margin-bottom:.8rem; }
  .ft__bottom{ align-items:flex-start; }
  .ft__bottom .links{ flex-wrap:wrap; }
}
