.btn-sm, .btn-group-sm > .btn {
    font-size: 1em;
}

/* 1.4.10 C38 — search form must constrain itself within any container width */
.searchform,
#searchform {
    max-width: 100%;
    overflow-x: hidden;
}

.searchform input[type="search"],
.searchform input[type="text"],
#searchform input {
    max-width: 100%;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

/*
 * 1.4.10 Reflow (C38) — la modale di ricerca resta nel markup anche chiusa
 * e Mauve++ la valuta a 320 px. Vincoli sempre attivi, non solo nel media query.
 */
#search-modal.search-modal,
#search-modal .modal-dialog,
#search-modal .modal-content,
#search-modal .modal-body,
#search-modal form > .container,
#search-modal .container {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

#search-modal .modal-dialog {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}

#search-modal .modal-body,
#search-modal form > .container,
#search-modal .container {
    overflow-x: hidden;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

#search-modal .row {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
}

#search-modal .row.px-5,
#search-modal .row[class*="px-5"],
#search-modal .row.px-3,
#search-modal .row[class*="px-3"] {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
}

#search-modal .modal-body .form-group,
#search-modal .autocomplete-wrapper-big,
#search-modal #searchform,
#search-modal .searchform,
#search-modal #search-button,
#search-modal #search-button .col,
#search-modal .filtro-contenuti {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

#search-modal .autocomplete-wrapper-big input,
#search-modal .autocomplete-wrapper-big .autocomplete {
    max-width: 100%;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

#search-modal .modal-title {
    flex-wrap: wrap;
    gap: 0.5rem;
    max-width: 100%;
}

#search-modal .filtro-contenuti,
#search-modal #search-button .btn {
    max-width: 100%;
    white-space: normal;
}

/* 1.4.10 Reflow — prevent horizontal scroll at 320px viewport width */
@media (max-width: 320px) {
    .cmp-input-search .input-group {
        flex-wrap: wrap;
    }
    .cmp-input-search .input-group-prepend {
        width: 100%;
    }
    .bg-grey-card {
        overflow-x: hidden;
    }
}

/* 1.3.1 / 1.4.5 G140 — override Video.js fixed inline dimensions */
.video-js {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
}

.vjs-fluid:not(.vjs-audio-only-mode) {
    padding-top: 0 !important;
}

/* Touch: bottone Cerca ≥ 44px anche da breakpoint sm */
.it-header-wrapper .search-link {
    min-width: 44px;
    min-height: 44px;
    width: 2.75rem;
    height: 2.75rem;
}

@media (min-width: 576px) {
    .it-header-wrapper .search-link {
        min-width: 44px;
        min-height: 44px;
        width: 2.75rem;
        height: 2.75rem;
    }
}

.it-brand-title,
.it-brand-tagline {
    overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
    .it-header-wrapper,
    .it-header-wrapper .search-link,
    .it-header-wrapper.is-sticky,
    .modal.fade,
    .modal.fade .modal-dialog,
    .splide,
    .splide__track,
    .it-carousel-wrapper,
    .progress-bar,
    .it-navscroll-progressbar,
    .collapse,
    .collapsing,
    .accordion-collapse,
    .navbar-collapsable,
    .overlay {
        transition: none !important;
        animation: none !important;
    }

    .splide__toggle.is-pause {
        display: none;
    }

    .h2o-impersonation-header-notice .alert {
        animation: none !important;
    }
}

/* Prenota sala: posti ≥ 44px, contrasto da token Bootstrap Italia */
.sala-mappa {
    overflow-x: auto;
}

.sala-seat-map {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sala-seat-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.sala-seat-row-label {
    flex: 0 0 2rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
}

.sala-seat-gap {
    display: inline-block;
    min-width: 44px;
    min-height: 44px;
    margin: 2px;
}

.sala-seat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    margin: 2px;
    padding: 0 0.25rem;
    border: 1px solid transparent;
    border-radius: 4px 4px 0 0;
    background: var(--bs-primary);
    color: var(--bs-white, #fff);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.sala-seat:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.sala-seat--taken {
    background: var(--bs-danger, #d9364f);
    cursor: not-allowed;
}

.sala-seat--disabled {
    background: var(--bs-gray-400, #adb5bd);
    color: var(--bs-gray-800, #17324d);
    cursor: not-allowed;
}

.sala-seat--disabile {
    background: var(--bs-success, #008758);
}

.sala-seat--selected {
    box-shadow: inset 0 0 0 2px var(--bs-white, #fff);
    outline: 2px solid var(--bs-primary);
    outline-offset: 1px;
}

/* 2.5.8 — CTA pagamento e chip filtro ricerca ≥ 44px */
.table .btn-xs,
#filter-group .filtro-contenuti,
#filter-group .filtro-argomento {
    min-height: 44px;
    min-width: 44px;
}

button.dropdown-item.list-item {
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
}

/* Token ente: frecce carousel e link calendario (non solo home) */
.splide__arrow {
    color: var(--bs-primary);
}

.row-calendar .it-calendar-wrapper .card .card-text a:not(.text-danger) {
    color: var(--bs-primary);
}

.row-calendar .it-calendar-wrapper .card .card-text a:not(.text-danger):hover {
    color: color-mix(in srgb, var(--bs-primary) 72%, #000);
}

/* Toolbar accessibilità (slim header) — pattern menu profilo utente */
.it-accessibility-toolbar.it-user-wrapper {
    margin-right: 0.75rem;
}

.it-accessibility-toolbar .link-list button.dropdown-item.list-item {
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.it-accessibility-toolbar .link-list button.dropdown-item.list-item.active span {
    font-weight: 700;
}

/*
 * Accedi è figlio diretto di .header-slim-right-zone e usa .btn-full (height stretch).
 * Accessibilità e menu utente sono wrappati in .it-user-wrapper: senza stretch
 * l'icona resta disallineata in verticale su mobile.
 */
.header-slim-right-zone > .it-user-wrapper,
.header-slim-right-zone > .it-accessibility-toolbar {
    display: flex;
    align-self: stretch;
    align-items: stretch;
}

.header-slim-right-zone > .it-user-wrapper > .btn,
.header-slim-right-zone > .it-accessibility-toolbar > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

@media (max-width: 991.98px) {
    .it-accessibility-toolbar.it-user-wrapper {
        margin-right: 0.25rem;
        margin-bottom: 0;
        width: auto;
    }

    /* I margin negativi di .btn-full sono pensati per figlio diretto della zone */
    .header-slim-right-zone > .it-user-wrapper > .btn.btn-full,
    .header-slim-right-zone > .it-accessibility-toolbar > .btn.btn-full {
        margin-top: 0;
        margin-bottom: 0;
    }
}

/* Dimensione testo — html (rem Bootstrap Italia) */
html.accessibility-font-medium {
    font-size: 105%;
}

html.accessibility-font-large {
    font-size: 110%;
}

body.home.accessibility-font-medium #main-container,
body.home.accessibility-font-large #main-container {
    font-size: inherit;
}

/* Alto contrasto — attivato via cookie accessibility_theme */
body.accessibility-high-contrast {
    --bs-body-bg: #000;
    --bs-body-color: #ff0;
    --bs-primary: #ff0;
    --bs-link-color: #0ff;
    --bs-link-hover-color: #fff;
    --siagid-home-tint: #000;
    --siagid-home-tint-2: #111;
    --siagid-home-on-primary: #ff0;
    --siagid-home-on-primary-muted: #ff0;
    background-color: #000 !important;
    color: #ff0 !important;
}

body.accessibility-high-contrast a:not(.btn):not(.dropdown-item) {
    color: #0ff !important;
    text-decoration: underline;
}

body.accessibility-high-contrast a:not(.btn):not(.dropdown-item):hover,
body.accessibility-high-contrast a:not(.btn):not(.dropdown-item):focus {
    color: #fff !important;
}

body.accessibility-high-contrast .btn-primary,
body.accessibility-high-contrast .btn-outline-primary {
    background-color: #ff0 !important;
    border-color: #ff0 !important;
    color: #000 !important;
}

body.accessibility-high-contrast .text-primary,
body.accessibility-high-contrast .text-secondary,
body.accessibility-high-contrast .text-muted,
body.accessibility-high-contrast .u-grey-light {
    color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper,
body.accessibility-high-contrast .it-footer,
body.accessibility-high-contrast .card,
body.accessibility-high-contrast .it-card,
body.accessibility-high-contrast .bg-white,
body.accessibility-high-contrast .bg-grey-card,
body.accessibility-high-contrast .bg-100,
body.accessibility-high-contrast .section-muted {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

/* Site-wide — sezioni con immagine di sfondo (servizi, gallerie, assistenza) */
body.accessibility-high-contrast .section-background-header {
    background-color: #000 !important;
    color: #ff0 !important;
    background-image: none !important;
    box-shadow: none !important;
}

body.accessibility-high-contrast #main-container .section {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.accessibility-high-contrast #main-container .card.card-teaser,
body.accessibility-high-contrast #main-container article.it-card {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

/* Home — bande tinta e sezioni primary (home-color.css) */
body.accessibility-high-contrast.home #main-container .section-muted,
body.accessibility-high-contrast.home #main-container .section-muted.bg-100 {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.accessibility-high-contrast.home #argomento .section-background-header,
body.accessibility-high-contrast.home #hai-bisogno-di-aiuto .section-background-header {
    background-color: #000 !important;
    color: #ff0 !important;
    box-shadow: none !important;
}

body.accessibility-high-contrast.home #argomento .section-background-header .u-grey-light,
body.accessibility-high-contrast.home #argomento .section-background-header h3,
body.accessibility-high-contrast.home #hai-bisogno-di-aiuto .row-title .h3,
body.accessibility-high-contrast.home #hai-bisogno-di-aiuto .row-title p {
    color: #ff0 !important;
}

/* Card con colore ente via custom property (siti tematici, collegamenti) */
.siagidpa-a11y-colored-card[style*="--siagidpa-surface-bg"] {
    background-color: var(--siagidpa-surface-bg) !important;
}

body.accessibility-high-contrast .siagidpa-a11y-colored-card,
body.accessibility-high-contrast #main-container .card.card-teaser.card-bg-primary,
body.accessibility-high-contrast #main-container .it-card.it-card-banner.bg-primary {
    background-color: #000 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .text-white,
body.accessibility-high-contrast #main-container .card.card-teaser.card-bg-primary .text-white,
body.accessibility-high-contrast .siagidpa-a11y-colored-card .text-white,
body.accessibility-high-contrast .siagidpa-a11y-colored-card a.text-white {
    color: #ff0 !important;
}

body.accessibility-high-contrast.home #main-container .card.card-teaser:not(.card-bg-blue),
body.accessibility-high-contrast.home #main-container article.it-card:not(.it-card-banner),
body.accessibility-high-contrast.home #notizia .topics .border {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast.home #primo-piano-in-evidenza .card,
body.accessibility-high-contrast.home #primo-piano .card-teaser,
body.accessibility-high-contrast.home #siti-tematici .section-muted,
body.accessibility-high-contrast.home #protezione-civile .section,
body.accessibility-high-contrast.home #sponsor .section {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.accessibility-high-contrast.home #argomento .section-background-header .chip-primary,
body.accessibility-high-contrast.home #argomento .section-background-header .chip-primary .chip-label {
    background-color: #ff0 !important;
    color: #000 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast.home #argomento .section-background-header .btn-primary {
    background-color: #ff0 !important;
    color: #000 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast.home #calendario .card.card-bg,
body.accessibility-high-contrast.home #calendario .is-calendar-sheet .card-title,
body.accessibility-high-contrast.home #calendario .card-text,
body.accessibility-high-contrast.home #calendario .card-text a:not(.text-danger) {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast.home #cerca .section.section-image::before {
    opacity: 0.35;
}

body.accessibility-high-contrast.home #hai-bisogno-di-aiuto .section-background-header[style*="background-image"] {
    box-shadow: inset 0 0 0 100vmax rgba(0, 0, 0, 0.72) !important;
}

/* Chip Bootstrap Italia — varianti (argomenti, stato servizio, persone) */
body.accessibility-high-contrast .chip,
body.accessibility-high-contrast a.chip,
body.accessibility-high-contrast .chip.chip-primary,
body.accessibility-high-contrast .chip.chip-success,
body.accessibility-high-contrast .chip.chip-danger,
body.accessibility-high-contrast .chip.chip-warning,
body.accessibility-high-contrast .chip.chip-secondary,
body.accessibility-high-contrast .chip.chip-simple,
body.accessibility-high-contrast .chip.bg-tag,
body.accessibility-high-contrast .badge {
    background-color: #000 !important;
    border-color: #ff0 !important;
    color: #ff0 !important;
}

body.accessibility-high-contrast .chip .chip-label,
body.accessibility-high-contrast a.chip .chip-label {
    color: #ff0 !important;
}

body.accessibility-high-contrast .chip:hover,
body.accessibility-high-contrast .chip:focus,
body.accessibility-high-contrast a.chip:hover,
body.accessibility-high-contrast a.chip:focus {
    background-color: #ff0 !important;
    border-color: #ff0 !important;
    color: #000 !important;
}

body.accessibility-high-contrast .chip:hover .chip-label,
body.accessibility-high-contrast .chip:focus .chip-label,
body.accessibility-high-contrast a.chip:hover .chip-label,
body.accessibility-high-contrast a.chip:focus .chip-label {
    color: #000 !important;
}

/* Indice laterale cmp-navscroll — notizia, servizio, documento, pagina */
body.accessibility-high-contrast .cmp-navscroll,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper,
body.accessibility-high-contrast .cmp-navscroll .navbar-custom,
body.accessibility-high-contrast .cmp-navscroll .menu-wrapper,
body.accessibility-high-contrast .cmp-navscroll .link-list-wrapper,
body.accessibility-high-contrast .cmp-navscroll .accordion,
body.accessibility-high-contrast .cmp-navscroll .accordion-item,
body.accessibility-high-contrast .cmp-navscroll .accordion-collapse,
body.accessibility-high-contrast .cmp-navscroll .accordion-body,
body.accessibility-high-contrast .cmp-navscroll .link-list,
body.accessibility-high-contrast .cmp-navscroll .link-list .nav-item,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .menu-wrapper,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list-wrapper,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .accordion-item,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .accordion-collapse,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .accordion-body,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list {
    background-color: #000 !important;
    color: #ff0 !important;
}

body.accessibility-high-contrast .cmp-navscroll .accordion,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .accordion {
    --bs-accordion-bg: #000;
    --bs-accordion-active-bg: #111;
    --bs-accordion-color: #ff0;
    --bs-accordion-btn-color: #ff0;
    --bs-accordion-btn-bg: #000;
    --bs-accordion-active-color: #ff0;
    --bs-accordion-border-color: #ff0;
}

body.accessibility-high-contrast .cmp-navscroll .accordion-button,
body.accessibility-high-contrast .cmp-navscroll .accordion-button.text-primary,
body.accessibility-high-contrast .cmp-navscroll .accordion-button:not(.collapsed) {
    background-color: #000 !important;
    color: #ff0 !important;
    box-shadow: none !important;
}

body.accessibility-high-contrast .cmp-navscroll .accordion-button .icon {
    fill: #ff0 !important;
}

body.accessibility-high-contrast .cmp-navscroll .progress {
    background-color: #333 !important;
}

body.accessibility-high-contrast .cmp-navscroll .progress-bar,
body.accessibility-high-contrast .cmp-navscroll .it-navscroll-progressbar,
body.accessibility-high-contrast .it-navscroll-progressbar.bg-primary {
    background-color: #ff0 !important;
}

body.accessibility-high-contrast .cmp-navscroll .link-list-wrapper .nav-link,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list-wrapper ul li a {
    color: #ff0 !important;
    background-color: transparent !important;
}

body.accessibility-high-contrast .cmp-navscroll .link-list-wrapper .nav-link span,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list-wrapper ul li a span {
    color: #ff0 !important;
}

body.accessibility-high-contrast .cmp-navscroll .link-list-wrapper .nav-link.active,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active {
    border-left-color: #ff0 !important;
    background-color: #111 !important;
}

body.accessibility-high-contrast .cmp-navscroll .link-list-wrapper .nav-link.active span,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active span {
    color: #ff0 !important;
    text-decoration: underline !important;
}

body.accessibility-high-contrast .cmp-navscroll .link-list-wrapper .nav-link:hover,
body.accessibility-high-contrast .cmp-navscroll .link-list-wrapper .nav-link:focus,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list-wrapper ul li a:hover,
body.accessibility-high-contrast .navbar.it-navscroll-wrapper .link-list-wrapper ul li a:focus {
    color: #fff !important;
    background-color: #111 !important;
}

/* Menu hamburger / navigazione principale (#headerMenu) — mobile e tablet */
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable,
body.accessibility-high-contrast .it-header-wrapper #headerMenu.navbar-collapsable {
    background-color: transparent !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar .navbar-collapsable .menu-wrapper,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .menu-wrapper,
body.accessibility-high-contrast .it-header-navbar-wrapper .navbar .navbar-collapsable .menu-wrapper,
body.accessibility-high-contrast .it-header-navbar-wrapper.theme-light-desk .navbar .navbar-collapsable .menu-wrapper,
body.accessibility-high-contrast .it-header-navbar-wrapper.theme-dark-mobile .navbar .navbar-collapsable .menu-wrapper,
body.accessibility-high-contrast .navbar.theme-light-desk .navbar-collapsable .menu-wrapper,
body.accessibility-high-contrast .navbar.theme-dark-mobile .navbar-collapsable .menu-wrapper {
    background-color: #000 !important;
    color: #ff0 !important;
    box-shadow: none !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .logo-hamburger,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .logo-hamburger .it-brand-title,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .logo-hamburger .text-primary {
    color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .logo-hamburger .icon {
    fill: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .close-div,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .btn.close-menu {
    background-color: transparent !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .close-menu .icon {
    fill: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .custom-navbar-toggler,
body.accessibility-high-contrast .it-header-wrapper .custom-navbar-toggler .icon {
    color: #ff0 !important;
    fill: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > a.nav-link,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > button.nav-link,
body.accessibility-high-contrast .it-header-navbar-wrapper .navbar .navbar-collapsable .navbar-nav li > a.nav-link,
body.accessibility-high-contrast .it-header-navbar-wrapper .navbar .navbar-collapsable .navbar-nav li > button.nav-link,
body.accessibility-high-contrast .navbar .navbar-collapsable .navbar-nav li > a.nav-link,
body.accessibility-high-contrast .navbar .navbar-collapsable .navbar-nav li > button.nav-link {
    color: #ff0 !important;
    background-color: transparent !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > a.nav-link .icon,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > button.nav-link .icon,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > a.nav-link svg,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > button.nav-link svg,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li.dropdown .icon {
    fill: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > a.nav-link.active,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > button.nav-link.active,
body.accessibility-high-contrast .navbar .navbar-collapsable .navbar-nav li > a.nav-link.active,
body.accessibility-high-contrast .navbar .navbar-collapsable .navbar-nav li > button.nav-link.active {
    border-left-color: #ff0 !important;
    border-bottom-color: #ff0 !important;
    background-color: #111 !important;
    color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > a.nav-link:hover,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > a.nav-link:focus,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > button.nav-link:hover,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li > button.nav-link:focus {
    color: #fff !important;
    background-color: #111 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li.megamenu > button.nav-link::before,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav li.megamenu > a.nav-link::before,
body.accessibility-high-contrast .it-header-navbar-wrapper .navbar .navbar-collapsable .navbar-nav li.megamenu > button.nav-link::before,
body.accessibility-high-contrast .it-header-navbar-wrapper .navbar .navbar-collapsable .navbar-nav li.megamenu a.nav-link::before {
    background-color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .dropdown-menu,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav .dropdown-menu,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .nav-item.megamenu .dropdown-menu,
body.accessibility-high-contrast .it-header-navbar-wrapper .navbar .dropdown-menu,
body.accessibility-high-contrast .it-header-navbar-wrapper.theme-light-desk .navbar .dropdown-menu,
body.accessibility-high-contrast .navbar.theme-light-desk .dropdown-menu,
body.accessibility-high-contrast .navbar .navbar-collapsable .dropdown-menu {
    --bs-dropdown-bg: #000;
    --bs-dropdown-color: #ff0;
    --bs-dropdown-link-color: #ff0;
    --bs-dropdown-link-hover-color: #000;
    --bs-dropdown-link-hover-bg: #ff0;
    --bs-dropdown-link-active-color: #000;
    --bs-dropdown-link-active-bg: #ff0;
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
    box-shadow: none !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .dropdown-menu::before,
body.accessibility-high-contrast .it-header-navbar-wrapper .navbar .dropdown-menu::before,
body.accessibility-high-contrast .navbar.theme-light-desk .dropdown-menu::before {
    background-color: #000 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .dropdown-menu a,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .dropdown-menu .list-item,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .dropdown-menu .list-item span,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-heading-link,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-footer-link,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .link-list-wrapper a,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .link-list-wrapper .list-item,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .link-list-wrapper .list-item span {
    color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-heading-link svg,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-footer-link svg {
    fill: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-description p,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-vertical.it-description p {
    color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-heading-link-wrapper,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-footer-link-wrapper,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-footer-link-wrapper-vertical,
body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-vertical.it-description .description-content::before {
    border-color: #ff0 !important;
    background-color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .navbar-nav.navbar-secondary li > a.nav-link {
    color: #ff0 !important;
}

body.accessibility-high-contrast .it-header-wrapper .navbar-collapsable .it-socials ul li a svg {
    fill: #ff0 !important;
}

/* Layout dettaglio — colonna indice + sezioni */
body.accessibility-high-contrast .row-column-menu-left aside,
body.accessibility-high-contrast .row-column-menu-left aside .sticky-top,
body.accessibility-high-contrast .row-column-menu-left,
body.accessibility-high-contrast .it-page-sections-container,
body.accessibility-high-contrast .row-column-border,
body.accessibility-high-contrast .border-light,
body.accessibility-high-contrast .border-top.border-light {
    border-color: #ff0 !important;
}

/* Azioni testata (Condividi / Vedi azioni) accanto agli argomenti */
body.accessibility-high-contrast .btn-dropdown,
body.accessibility-high-contrast .btn-dropdown small,
body.accessibility-high-contrast .btn-dropdown .icon {
    color: #ff0 !important;
    fill: #ff0 !important;
}

body.accessibility-high-contrast .dropdown-menu .list-item,
body.accessibility-high-contrast .dropdown-menu .list-item span,
body.accessibility-high-contrast .dropdown-menu .dropdown-item {
    color: #ff0 !important;
}

body.accessibility-high-contrast .dropdown-menu .list-item:hover,
body.accessibility-high-contrast .dropdown-menu .list-item:focus,
body.accessibility-high-contrast .dropdown-menu .dropdown-item:hover,
body.accessibility-high-contrast .dropdown-menu .dropdown-item:focus {
    background-color: #ff0 !important;
    color: #000 !important;
}

body.accessibility-high-contrast .dropdown-menu .list-item:hover span,
body.accessibility-high-contrast .dropdown-menu .list-item:focus span {
    color: #000 !important;
}

body.accessibility-high-contrast .subtitle-small,
body.accessibility-high-contrast .text-black {
    color: #ff0 !important;
}

/* Timeline date (evento) */
body.accessibility-high-contrast .point-list-aside,
body.accessibility-high-contrast .point-list-aside.point-list-primary,
body.accessibility-high-contrast .point-list-aside.point-list-secondary,
body.accessibility-high-contrast .point-list-aside.point-list-success,
body.accessibility-high-contrast .point-list-aside.point-list-warning,
body.accessibility-high-contrast .point-list-aside.point-list-danger,
body.accessibility-high-contrast .point-list-aside.point-list-info {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .point-list-aside::after {
    background-color: #ff0 !important;
}

/* Legenda protezione civile */
body.accessibility-high-contrast .dot[style*="background-color"] {
    background-color: #ff0 !important;
    box-shadow: inset 0 0 0 1px #000;
}

body.accessibility-high-contrast img {
    filter: grayscale(1) contrast(1.2);
}

body.accessibility-high-contrast :focus-visible {
    outline: 3px solid #0ff !important;
    outline-offset: 2px;
}

body.accessibility-high-contrast .it-accessibility-toolbar .dropdown-menu {
    background-color: #000 !important;
    border: 1px solid #ff0 !important;
}

body.accessibility-high-contrast .it-accessibility-toolbar .link-list button.dropdown-item.list-item {
    color: #ff0 !important;
}

body.accessibility-high-contrast .it-accessibility-toolbar .link-list button.dropdown-item.list-item.active,
body.accessibility-high-contrast .it-accessibility-toolbar .link-list button.dropdown-item.list-item:hover,
body.accessibility-high-contrast .it-accessibility-toolbar .link-list button.dropdown-item.list-item:focus {
    background-color: #ff0 !important;
    color: #000 !important;
}

body.accessibility-high-contrast .it-accessibility-toolbar .link-list .divider {
    border-color: #ff0 !important;
}

/* Form, modali e area personale — alto contrasto site-wide */
body.accessibility-high-contrast .form-control,
body.accessibility-high-contrast .form-select,
body.accessibility-high-contrast textarea.form-control,
body.accessibility-high-contrast .select-wrapper select {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .form-control::placeholder,
body.accessibility-high-contrast textarea.form-control::placeholder {
    color: #ff0 !important;
    opacity: 0.85;
}

body.accessibility-high-contrast .form-label,
body.accessibility-high-contrast label,
body.accessibility-high-contrast legend {
    color: #ff0 !important;
}

body.accessibility-high-contrast .form-check-label {
    color: #ff0 !important;
}

body.accessibility-high-contrast .form-check-input {
    border-color: #ff0 !important;
    background-color: #000 !important;
}

body.accessibility-high-contrast .form-check-input:checked {
    background-color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .modal-content,
body.accessibility-high-contrast .modal-header,
body.accessibility-high-contrast .modal-body,
body.accessibility-high-contrast .modal-footer {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .table,
body.accessibility-high-contrast .table td,
body.accessibility-high-contrast .table th {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .alert {
    background-color: #000 !important;
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .nav-tabs .nav-link {
    color: #ff0 !important;
    border-color: #ff0 !important;
}

body.accessibility-high-contrast .nav-tabs .nav-link.active {
    background-color: #ff0 !important;
    color: #000 !important;
}

/* Toolbar fallback (header esterni YouCo/IsWeb) */
.it-accessibility-toolbar-fallback-wrap {
    position: fixed;
    bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    left: max(1rem, env(safe-area-inset-left, 0px));
    z-index: 1040;
}

.it-accessibility-toolbar-fallback-wrap .it-accessibility-toolbar .btn-primary {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

body:has(.it-header-slim-wrapper .it-accessibility-toolbar) .it-accessibility-toolbar-fallback-wrap {
    display: none;
}

/* Reflow 320px + scaling testo grande */
@media (max-width: 320px) {
    .it-accessibility-toolbar .it-accessibility-toolbar__label {
        max-width: 100%;
        white-space: normal;
        text-align: right;
        line-height: 1.3;
    }

    html.accessibility-font-large,
    html.accessibility-font-medium {
        overflow-x: hidden;
    }

    body.accessibility-font-large #main-container,
    body.accessibility-font-medium #main-container {
        overflow-x: hidden;
        word-wrap: break-word;
    }
}

@media (prefers-reduced-motion: reduce) {
    .it-accessibility-toolbar .dropdown-menu,
    .it-accessibility-toolbar .it-accessibility-toolbar__toggle,
    .it-accessibility-toolbar .link-list button.dropdown-item.list-item {
        transition: none !important;
        animation: none !important;
    }
}
