/* ════════════════════════════════════════════
   OASI OMG — base.css  (globale, caricato ovunque)
   Solo regole intenzionalmente globali: smoothing,
   offset per header fisso, focus accessibile.
   ════════════════════════════════════════════ */

html {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ── Offset per header fisso (34px topbar + 80px navbar = 114px) ──
   In home l'header è trasparente sopra l'hero → nessun padding.
   Le pagine interne usano il Page Header che include già lo spazio,
   quindi questo padding serve SOLO alle interne che NON hanno il
   Page Header (fallback). Se tutte le interne usano il Page Header,
   questo blocco resta innocuo. */
body { scroll-padding-top: calc(60px + var(--oasi-logo-h, 150px)); }

body:not(.home):not(.has-page-header) .oxy-inner-content > *:first-child {
  padding-top: calc(50px + var(--oasi-logo-h, 150px));
}

@media (max-width: 960px) {
  body { scroll-padding-top: 96px; }
  body:not(.home):not(.has-page-header) .oxy-inner-content > *:first-child {
    padding-top: 86px;
  }
}

/* ── Focus accessibile globale (fallback) ── */
:where(a, button):focus-visible {
  outline: 2px solid var(--oasi-sez-chisiamo, #1f5fa8);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
