/* ============================================================================
   ROSTA BASKET — Accessibilità globale (WCAG 2.1 / 2.2 AA)
   ============================================================================ */

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Focus: mai solo outline:none senza :focus-visible */
:focus:not(:focus-visible) {
    outline: none;
}

:focus-visible {
    outline: 2px solid #005fcc;
    outline-offset: 3px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid #005fcc;
    outline-offset: 3px;
}

#main-content,
main[id="main-content"],
.news-filter-bar,
.cal-filter-bar {
    scroll-margin-top: calc(var(--hdr-height, 68px) + 16px);
}

/* Contrasto — eyebrow / label secondari (≥4.5:1 su sfondo chiaro) */
.hero-eyebrow,
.sq-hero-eyebrow,
.cnt-hero-eyebrow,
.priv-hero-eyebrow,
.ck-modal-eyebrow,
.page-seo-intro__label,
.section-label,
.partners-label {
    font-size: 0.7rem !important;
    letter-spacing: 2.5px;
    color: #8a1a22 !important;
}

/* Su hero scuro */
.news-hero .hero-eyebrow,
.staff-hero .hero-eyebrow,
.sponsor-hero .hero-eyebrow,
.cal-hero .hero-eyebrow,
.cnt-hero .cnt-hero-eyebrow,
.sq-hero .sq-hero-eyebrow {
    color: #ff6b73 !important;
}

.article-hero-meta {
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 0.8rem !important;
}

/* Hero outline testo — fallback ad alto contrasto */
.title-line-outline {
    color: rgba(255, 255, 255, 0.92) !important;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.35);
}

.header-nav .nav-link {
    color: rgba(15, 15, 15, 0.78);
}

/* Target minimo 24×24 (2.5.8) */
.nf-tab,
.filter-tab,
.share-btn,
.nf-search button,
.pg-btn,
.back-to-top,
.ck-btn,
.cnt-form-submit,
.drawer-close,
.nav-toggle {
    min-width: 24px;
    min-height: 24px;
}

.nf-tab {
    padding: 18px 22px !important;
    font-size: 0.8rem !important;
}

.filter-tab {
    padding: 18px 20px !important;
    min-height: 48px;
}

.share-btn {
    min-width: 44px;
    min-height: 44px;
    padding: 10px 12px;
}

.back-to-top {
    width: 48px;
    height: 48px;
}

.back-to-top:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

/* Form */
.cnt-form-input:focus-visible,
.cnt-form-select:focus-visible,
.cnt-form-textarea:focus-visible,
.form-control:focus-visible {
    outline: 2px solid #005fcc;
    outline-offset: 2px;
    border-bottom-color: oklch(54% 0.20 22);
}

.cnt-form-input[aria-invalid="true"],
.cnt-form-textarea[aria-invalid="true"] {
    border-bottom-color: #b30d12;
}

.ck-btn:focus-visible,
.cnt-form-submit:focus-visible {
    outline: 2px solid #005fcc;
    outline-offset: 2px;
}

.ck-toggle input:focus-visible + .ck-toggle-slider {
    outline: 2px solid #005fcc;
    outline-offset: 2px;
}

/* Toast cookie */
.ck-toast {
    position: fixed;
    bottom: 88px;
    left: 50%;
    transform: translateX(-50%) translateY(12px);
    z-index: 10002;
    background: oklch(15% 0.01 22);
    color: oklch(98% 0.005 22);
    padding: 12px 20px;
    font-size: 0.875rem;
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.ck-toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.cal-filter-bar [role="tab"][aria-selected="true"] {
    border-bottom-color: #e5101a;
    color: #111;
}

.nf-search input:focus,
.nf-search input:focus-visible {
    outline: 2px solid #005fcc;
    outline-offset: 2px;
}

.news-filter-bar {
    scroll-margin-top: calc(var(--hdr-height, 68px) + 16px);
}

/* Cookie banner — target e focus */
.ck-btn {
    min-height: 36px;
    padding: 8px 14px;
}

.ck-modal-close {
    min-width: 44px;
    min-height: 44px;
}

/* Riduzione movimento */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .sponsors-carousel,
    .academy-carousel,
    .float-element {
        animation: none !important;
    }

    .hero-bg,
    .hero-floats {
        transform: none !important;
    }

    .ck-toast {
        transition: none;
    }
}
