/*
 * Registro Comunicatori Digitali — gerarchia cromatica istituzionale.
 * Riferimento: combinazione cromatica del nuovo portale del Ministero della Salute,
 * costruita sulla palette canonica Bootstrap Italia / Blu Italia.
 *
 * Slim/topbar:              #0059B3  (primary-a7)
 * Header/menu/home hero:    #0066CC  (Blu Italia / primary)
 * Page hero + footer:       #003366  (primary-a10)
 *
 * Questo foglio e caricato per ultimo e sostituisce i colori legacy senza
 * duplicare la logica strutturale di header-refresh.css/institutional-hero.css.
 */
:root {
    --rcd-brand-slim: #0059B3;
    --rcd-brand-primary: #0066CC;
    --rcd-brand-page-hero: #003366;
    --rcd-brand-footer: #003366;
    --rcd-brand-footer-legal: #003366;

    /* Alias legacy mantenuti per compatibilita con il chrome esistente. */
    --rcd-chrome-navy: var(--rcd-brand-primary);
    --rcd-chrome-navy-2: var(--rcd-brand-primary);
    --rcd-chrome-accent: #ffffff;
    --rcd-hero-background: var(--rcd-brand-page-hero);
    --rcd-hero-accent: #ffffff;
    --rcd-hero-muted: rgba(255, 255, 255, .90);

    /* Token primari del portale. */
    --primary-color: var(--rcd-brand-primary);
    --primary-dark: var(--rcd-brand-footer);
}

/* ===== SLIM / TOPBAR ===== */
.acn-topbar,
.acn-topbar > .container {
    background: var(--rcd-brand-slim) !important;
}

.acn-topbar {
    border-bottom-color: rgba(255, 255, 255, .20) !important;
}

/* ===== HEADER + NAVIGAZIONE ===== */
.acn-header,
.acn-header > .container,
.acn-nav,
.acn-nav > .container {
    background: var(--rcd-brand-primary) !important;
}

.acn-header {
    border-bottom: 0 !important;
    box-shadow: none !important;
}

.acn-logo-title {
    color: #ffffff !important;
}

.acn-logo-subtitle {
    color: rgba(255, 255, 255, .88) !important;
}

.acn-header .navbar-toggler {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, .62) !important;
}

.acn-header .navbar-toggler:hover,
.acn-header .navbar-toggler:focus-visible {
    background: rgba(255, 255, 255, .10) !important;
    border-color: #ffffff !important;
}

.acn-nav {
    border-top: 1px solid rgba(255, 255, 255, .16) !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .92) !important;
    border-left: 0 !important;
}

.acn-nav-list > li > a,
.acn-nav-list > li:last-child > a {
    color: rgba(255, 255, 255, .96) !important;
    font-weight: 400 !important;
}

/* CTA di iscrizione: unica voce del menu volutamente evidenziata. */
.acn-nav-list > li:last-child > a {
    color: #5dcbde !important;
    font-weight: 700 !important;
}

@media (min-width: 992px) {
    .acn-nav-list > li > a,
    .acn-nav-list > li:last-child > a {
        font-size: 17px !important;
    }
}

.acn-nav-list > li > a:hover,
.acn-nav-list > li > a:focus-visible,
.acn-nav-list > li > a.active {
    background: rgba(0, 51, 102, .18) !important;
    color: #ffffff !important;
    font-weight: 400 !important;
}

.acn-nav-list > li:last-child > a:hover,
.acn-nav-list > li:last-child > a:focus-visible,
.acn-nav-list > li:last-child > a.active {
    color: #5dcbde !important;
    font-weight: 700 !important;
}

.acn-nav-list > li > a.active {
    box-shadow: inset 0 -3px 0 #ffffff !important;
}

.rcd-language-select:focus-visible {
    outline-color: #ffffff !important;
}

.rcd-language-floating {
    background: rgba(0, 89, 179, .97) !important;
    box-shadow: 0 4px 16px rgba(0, 51, 102, .20) !important;
}

/* ===== HERO ===== */
body.rcd-home .banner-slider {
    background: var(--rcd-brand-primary) !important;
}

.acn-page-hero,
.acn-page-hero > .container,
.faq-hero,
.faq-hero > .container,
.rcd-association-hero,
.rcd-association-hero > .container {
    background: var(--rcd-brand-page-hero) !important;
}

.acn-page-hero::after,
.faq-hero::after {
    border-color: rgba(255, 255, 255, .14) !important;
}

.acn-page-hero .rcd-kicker,
.acn-page-hero .registry-service-kicker,
.acn-page-hero .rcd-association-eyebrow,
.faq-hero .rcd-kicker,
.acn-page-hero .acn-breadcrumb a {
    color: #ffffff !important;
}

.acn-page-hero .lead,
.acn-page-hero > .container > p,
.acn-page-hero .acn-breadcrumb,
.acn-page-hero .acn-breadcrumb li,
.acn-page-hero .acn-breadcrumb [aria-current="page"],
.faq-hero > .container > p {
    color: var(--rcd-hero-muted) !important;
}

/* ===== HERO TYPOGRAPHY RESPONSIVE =====
 * Desktop resta invariato. Tablet e mobile usano una scala piu compatta per
 * mantenere titolo e descrizione leggibili senza occupare eccessivamente la hero.
 */
@media (min-width: 576px) and (max-width: 991.98px) {
    body.rcd-home .banner-content h2,
    body.rcd-home .acn-banner-content h2 {
        font-size: 36px !important;
        line-height: 44px !important;
    }

    body.rcd-home .banner-content p,
    body.rcd-home .acn-banner-content p,
    .acn-page-hero .lead,
    .acn-page-hero > .container > p,
    .faq-hero > .container > p {
        font-size: 20px !important;
        line-height: 30px !important;
    }

    .acn-page-hero h1,
    .faq-hero h1 {
        font-size: 42px !important;
        line-height: 50px !important;
    }
}

@media (max-width: 575.98px) {
    body.rcd-home .banner-content h2,
    body.rcd-home .acn-banner-content h2 {
        font-size: 30px !important;
        line-height: 36px !important;
    }

    body.rcd-home .banner-content p,
    body.rcd-home .acn-banner-content p,
    .acn-page-hero .lead,
    .acn-page-hero > .container > p,
    .faq-hero > .container > p {
        font-size: 18px !important;
        line-height: 28px !important;
    }

    .acn-page-hero h1,
    .faq-hero h1 {
        font-size: 34px !important;
        line-height: 40px !important;
    }
}

/* ===== ACCESSO / AUTENTICAZIONE ===== */
.auth-brand-panel {
    background: var(--rcd-brand-page-hero) !important;
}

.auth-brand-panel .auth-brand,
.auth-brand-panel .auth-brand strong,
.auth-brand-panel .auth-brand small,
.auth-brand-panel .auth-brand-copy,
.auth-brand-panel .auth-brand-copy h1,
.auth-brand-panel .auth-brand-copy p,
.auth-brand-panel .auth-kicker,
.auth-brand-panel .auth-back-link {
    color: #ffffff !important;
}

.auth-brand-panel::before,
.auth-brand-panel::after {
    border-color: rgba(255, 255, 255, .12) !important;
}

/* ===== FOOTER ===== */
.acn-footer-main,
.acn-footer-legal,
.acn-footer-bottom {
    background-color: var(--rcd-brand-footer-legal) !important;
}

.acn-footer-legal,
.acn-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .20) !important;
}

.acn-footer-main h5,
.acn-footer-main p,
.acn-footer-main li,
.acn-footer-legal p,
.acn-footer-bottom p,
.acn-footer a {
    color: #ffffff !important;
}

.acn-footer a:hover,
.acn-footer a:focus-visible {
    color: #ffffff !important;
    text-decoration-thickness: .1em;
    text-underline-offset: .18em;
}

/* Il tricolore nazionale non appartiene alla palette di brand e resta invariato. */
