/* ==================================================
   Override finali contrasto alto (+ click galleria)
   Caricato DOPO styles.css e i CSS di pagina (WebsitePageCatalog),
   così batte bordi soft / rgba hard-coded delle pagine.
================================================== */

html.is-high-contrast {
  --icon-filter-hc-blue: brightness(0) saturate(100%) invert(10%) sepia(92%) saturate(3420%) hue-rotate(215deg) brightness(88%) contrast(105%);
  --icon-filter-root-yellow: brightness(0) saturate(100%) invert(91%) sepia(98%) saturate(1715%) hue-rotate(1deg) brightness(105%) contrast(103%);
  --icon-filter-white: brightness(0) invert(1);
  --hc-blue-rgb: 0, 43, 127;
  --blue: #002b7f;
  --yellow: #fff600;
  --white: #ffffff;
  --soft-gray: #f5f5f5;
  --mid-gray: #595959;
}

/* Pulsante play/pausa galleria: tutta l'area visiva deve essere cliccabile. */
.gallery-marquee {
  position: relative;
  isolation: isolate;
}

.gallery-marquee__pause {
  position: relative;
  z-index: 120;
  box-sizing: border-box;
  pointer-events: auto;
  touch-action: manipulation;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.gallery-marquee__pause *,
.gallery-marquee__pause::before,
.gallery-marquee__pause::after {
  pointer-events: none;
}

.gallery-marquee__belt {
  position: relative;
  z-index: 1;
}

/* ==================================================
   Superfici e separatori
================================================== */

html.is-high-contrast .hero {
  --hero-overlay-gradient: linear-gradient(
    90deg,
    rgba(var(--hc-blue-rgb), 0.98) 0%,
    rgba(var(--hc-blue-rgb), 0.92) 32%,
    rgba(var(--hc-blue-rgb), 0.55) 51%,
    rgba(var(--hc-blue-rgb), 0.04) 74%
  );
  color: var(--white) !important;
  background-color: var(--blue) !important;
}

html.is-high-contrast .page-vita__masthead {
  background: var(--blue) !important;
}

html.is-high-contrast .page-vita__masthead--photo {
  background-image: none !important;
}

html.is-high-contrast :is(.section-blue, .site-footer, .hero) {
  color: var(--white);
  background-color: var(--blue);
}

html.is-high-contrast :is(
  .page-documenti__results,
  .page-documento__detail,
  .page-attivita__more,
  .page-attivita__featured,
  .page-vita__section--closing,
  .page-vita__section--activities,
  .page-contatti__content,
  .page-faq__results
) {
  border-bottom: 11px solid var(--white) !important;
}

html.is-high-contrast .activities {
  border-top: 11px solid var(--white) !important;
}

html.is-high-contrast .site-footer .footer-main {
  border-bottom: 3px solid var(--white) !important;
}

html.is-high-contrast :is(
  .document-list li,
  .faq-accordion__item,
  .page-documento__menu-button,
  .page-vita__statute-article + .page-vita__statute-article
) {
  border-color: var(--white) !important;
}

html.is-high-contrast .social-post-card {
  background: var(--white) !important;
  border: 3px solid var(--blue) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

html.is-high-contrast .social-post-card--image-only {
  background-color: var(--soft-gray) !important;
}

html.is-high-contrast .donation-outline,
html.is-high-contrast .newsletter-card {
  box-shadow: none !important;
}

html.is-high-contrast .folder-scroll-card[aria-current="true"] {
  border: 3px solid var(--yellow) !important;
}

html.is-high-contrast .folder-scroll-card:not([aria-current="true"]) {
  border: 3px solid var(--blue) !important;
}

/* ==================================================
   Icone
================================================== */

html.is-high-contrast .hero .access-tools :is(.text-icon, .megaphone-icon) {
  filter: var(--icon-filter-root-yellow) !important;
}

html.is-high-contrast .activities .dropdown-icon,
html.is-high-contrast .slider-controls button img {
  filter: var(--icon-filter-root-yellow) !important;
}

html.is-high-contrast :is(.page-documenti__region, .page-documento__region, .page-attivita__region) img {
  filter: var(--icon-filter-root-yellow) !important;
}

html.is-high-contrast .document-list__kind-icon {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .page-contatti__social img {
  filter: var(--icon-filter-root-yellow) !important;
}

html.is-high-contrast .share-modal img[src*="icone/social"] {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .page-documenti__bottom .access-tools :is(.megaphone-icon, .text-icon),
html.is-high-contrast .page-documenti__bottom .access-tools .icon-range-trigger .text-icon {
  filter: var(--icon-filter-root-yellow) !important;
}

html.is-high-contrast .document-detail__access :is(.megaphone-icon, .text-icon),
html.is-high-contrast .document-detail__access .icon-range-trigger .text-icon {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .footer-badge img {
  filter: var(--icon-filter-white) !important;
}

html.is-high-contrast .activity-card .card-footer .mini-access :is(.megaphone-icon, .text-icon),
html.is-high-contrast .activity-card .card-footer .icon-range-trigger .text-icon,
html.is-high-contrast .activity-card .mini-access :is(.megaphone-icon, .text-icon) {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .folder-scroll-card:not([aria-current="true"]) :is(.dots-icon img, .folder-card-access img, .newsletter-access img),
html.is-high-contrast .folder-scroll-card:not([aria-current="true"]) :is(.megaphone-icon, .text-icon),
html.is-high-contrast .folder-scroll-card:not([aria-current="true"]) .icon-range-trigger .text-icon {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .folder-scroll-card[aria-current="true"] :is(.dots-icon img, .folder-card-access img, .newsletter-access img),
html.is-high-contrast .folder-scroll-card[aria-current="true"] :is(.megaphone-icon, .text-icon),
html.is-high-contrast .folder-scroll-card[aria-current="true"] .icon-range-trigger .text-icon {
  filter: var(--icon-filter-root-yellow) !important;
}

html.is-high-contrast .folder-scroll-controls {
  color: var(--blue);
}

html.is-high-contrast .folder-scroll-control img {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .folder-scroll-controls__status {
  color: var(--blue) !important;
}

html.is-high-contrast .social-section {
  color: var(--blue);
}

html.is-high-contrast .social-section :is(.social-icons img, .megaphone-icon, .text-icon, .social-post-control img),
html.is-high-contrast .social-section .icon-range-trigger .text-icon {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .site-footer .footer-social img {
  filter: var(--icon-filter-white) !important;
}

html.is-high-contrast .videos .video-card .video-access :is(.megaphone-icon, .text-icon),
html.is-high-contrast .videos .video-card .video-access .icon-range-trigger .text-icon {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .videos .video-card .video-access :is(.megaphone-button, .icon-range-trigger) {
  color: var(--blue) !important;
  background: transparent !important;
}

html.is-high-contrast .topbar .dropdown-icon,
html.is-high-contrast .main-nav .dropdown-icon,
html.is-high-contrast body.is-menu-open .main-nav .dropdown-icon {
  filter: var(--icon-filter-hc-blue) !important;
}

html.is-high-contrast .brand img {
  filter: brightness(0) saturate(100%) invert(11%) sepia(99%) saturate(3317%) hue-rotate(217deg) brightness(92%) contrast(111%) !important;
}

/* ==================================================
   Header / nav / footer tools
================================================== */

html.is-high-contrast .nav-toggle,
html.is-high-contrast .nav-menu-close {
  color: var(--blue) !important;
  border: 3px solid var(--blue) !important;
  background: var(--white) !important;
}

html.is-high-contrast .nav-toggle:hover,
html.is-high-contrast .nav-menu-close:hover {
  color: var(--blue) !important;
  background: var(--yellow) !important;
}

html.is-high-contrast .nav-toggle__bar {
  background: currentColor !important;
}

html.is-high-contrast .main-nav > a:is(:hover, :focus-visible),
html.is-high-contrast .dropdown-trigger:is(:hover, :focus-visible) {
  background: transparent !important;
}

html.is-high-contrast .dropdown-menu {
  border: 3px solid var(--blue) !important;
  box-shadow: none !important;
}

html.is-high-contrast .dropdown-menu :is(a, button):is(:hover, :focus-visible),
html.is-high-contrast .dropdown-menu :is(a, button)[aria-current="true"] {
  background: var(--yellow) !important;
  color: var(--blue) !important;
}

html.is-high-contrast .tax-link {
  color: var(--blue) !important;
  background: var(--yellow) !important;
}

html.is-high-contrast .tax-link::before {
  background: var(--yellow) !important;
  opacity: 1 !important;
}

html.is-high-contrast .footer-tool {
  color: var(--white) !important;
  border: 3px solid var(--white) !important;
  border-radius: 10px;
}

html.is-high-contrast .footer-tool[aria-pressed="true"] {
  color: var(--yellow) !important;
  border-color: var(--yellow) !important;
}

html.is-high-contrast .footer-tool[aria-pressed="true"] .footer-tool__icon {
  filter: none;
  color: var(--yellow);
}

html.is-high-contrast .footer-lang__trigger {
  border: 3px solid var(--white) !important;
  color: var(--white) !important;
}

/* ==================================================
   Bottoni
================================================== */

html.is-high-contrast .btn {
  border: 3px solid currentColor !important;
}

html.is-high-contrast .btn-outline {
  border: 3px solid var(--white) !important;
  color: var(--white) !important;
  background: transparent !important;
}

html.is-high-contrast .btn-outline:is(:hover, :focus-visible) {
  color: var(--blue) !important;
  background: var(--yellow) !important;
  border-color: var(--yellow) !important;
}

html.is-high-contrast .btn-yellow {
  color: var(--blue) !important;
  background: var(--yellow) !important;
  border: 3px solid var(--blue) !important;
}

html.is-high-contrast .btn-card {
  border: 3px solid var(--blue) !important;
}

/* ==================================================
   Filtri / ricerca
================================================== */

html.is-high-contrast .filter-chip:not(.filter-chip--yellow-card) {
  color: var(--white) !important;
  background: transparent !important;
  border: 3px solid var(--white) !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}

html.is-high-contrast .filter-chip--yellow-card {
  color: var(--blue) !important;
  background: var(--yellow) !important;
  border: 3px solid var(--blue) !important;
  box-shadow: none !important;
}

html.is-high-contrast .filter-trigger {
  color: var(--white) !important;
}

html.is-high-contrast .filter-trigger[aria-expanded="true"] {
  color: var(--yellow) !important;
}

html.is-high-contrast .filter-trigger span {
  background: currentColor !important;
}

html.is-high-contrast .document-search input,
html.is-high-contrast .contact-form input,
html.is-high-contrast .contact-form textarea,
html.is-high-contrast .newsletter-form input {
  border: 3px solid currentColor !important;
}

html.is-high-contrast .document-search input::placeholder,
html.is-high-contrast .contact-form input::placeholder,
html.is-high-contrast .contact-form textarea::placeholder,
html.is-high-contrast .newsletter-card[aria-current="true"] input::placeholder {
  color: var(--yellow) !important;
  opacity: 1;
}

html.is-high-contrast .page-documenti__toolbar {
  background: var(--blue) !important;
  box-shadow: 0 10px 24px rgba(var(--hc-blue-rgb), 0.55) !important;
}

/* ==================================================
   Folder / newsletter headings
================================================== */

html.is-high-contrast .donation-outline:not([aria-current="true"]) h2 {
  color: var(--blue) !important;
}

html.is-high-contrast .donation-outline:not([aria-current="true"]) h2 span {
  color: var(--blue) !important;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.08em;
}

html.is-high-contrast .donation-outline[aria-current="true"] h2 {
  color: var(--white) !important;
}

html.is-high-contrast .donation-outline[aria-current="true"] h2 span,
html.is-high-contrast .newsletter-card[aria-current="true"] h2 span {
  color: var(--yellow) !important;
}

html.is-high-contrast .newsletter-card:not([aria-current="true"]) h2,
html.is-high-contrast .newsletter-card:not([aria-current="true"]) h2 span {
  color: var(--blue) !important;
}

html.is-high-contrast .newsletter-card[aria-current="true"] {
  color: var(--white) !important;
  background: var(--blue) !important;
}

/* ==================================================
   Home headings on blue
================================================== */

html.is-high-contrast .activities-intro h2,
html.is-high-contrast .videos-heading h2,
html.is-high-contrast .social-copy h2 {
  color: inherit !important;
}

/* ==================================================
   Vita indipendente
================================================== */

html.is-high-contrast .page-vita__activity-link {
  border-color: var(--white) !important;
  background: transparent !important;
}

html.is-high-contrast .page-vita__activity-link:hover,
html.is-high-contrast .page-vita__activity-link:focus-visible {
  border-color: var(--yellow) !important;
  background: transparent !important;
}

html.is-high-contrast .page-vita__activity-date {
  color: var(--yellow) !important;
  opacity: 1 !important;
}

html.is-high-contrast .page-vita__media,
html.is-high-contrast .page-vita__gallery figure,
html.is-high-contrast .page-vita__gallery-item {
  background: var(--soft-gray) !important;
  border: 3px solid var(--white) !important;
}

/* ==================================================
   Notizie / marquee / loading
================================================== */

html.is-high-contrast .page-attivita__script-title {
  color: var(--yellow) !important;
}

html.is-high-contrast .page-attivita__marquee-control {
  border: 3px solid var(--white) !important;
  color: var(--white) !important;
  background: transparent !important;
  opacity: 1 !important;
}

html.is-high-contrast .page-attivita__marquee-control:is(:hover, :focus-visible, [aria-pressed="true"]) {
  color: var(--blue) !important;
  background: var(--yellow) !important;
  border-color: var(--yellow) !important;
}

html.is-high-contrast .page-attivita__selected-filters {
  scrollbar-color: var(--white) transparent !important;
}

html.is-high-contrast .page-attivita__selected-filters::-webkit-scrollbar-thumb {
  background: var(--white) !important;
  border: 2px solid var(--blue) !important;
}

html.is-high-contrast .page-attivita__news-loading-spinner {
  border: 4px solid var(--white) !important;
  border-top-color: var(--yellow) !important;
}

/* ==================================================
   FAQ
================================================== */

html.is-high-contrast .faq-accordion__summary,
html.is-high-contrast .faq-accordion__panel {
  color: var(--white) !important;
  background: var(--blue) !important;
}

html.is-high-contrast .faq-accordion__item {
  border-bottom: 3px solid var(--white) !important;
}

html.is-high-contrast .faq-accordion__arrow {
  color: var(--yellow) !important;
}

html.is-high-contrast .faq-accordion__answer a:hover,
html.is-high-contrast .faq-accordion__answer a:focus-visible {
  color: var(--yellow) !important;
}

/* ==================================================
   Contatti
================================================== */

html.is-high-contrast .page-contatti__map {
  border: 3px solid var(--white) !important;
  background: var(--white) !important;
}

html.is-high-contrast .page-contatti__map-cta {
  color: var(--blue) !important;
  background: var(--yellow) !important;
  outline: 3px solid var(--blue);
  outline-offset: 2px;
}

html.is-high-contrast .page-contatti__map-cta .page-contatti__pin::before {
  border-color: var(--blue) !important;
}

html.is-high-contrast .page-contatti__map-cta .page-contatti__pin::after {
  background: var(--blue) !important;
}

html.is-high-contrast .page-contatti__address,
html.is-high-contrast .page-contatti__directions,
html.is-high-contrast .contact-form__field > label {
  color: var(--white) !important;
}

html.is-high-contrast .page-contatti__address a,
html.is-high-contrast .page-contatti__directions {
  text-decoration-thickness: 0.12em;
}

/* ==================================================
   Galleria / video / lightbox
================================================== */

html.is-high-contrast :is(.video-thumb, .gallery-thumb--video) {
  background: var(--blue) !important;
}

html.is-high-contrast .video-thumb span {
  background: var(--yellow) !important;
}

html.is-high-contrast .gallery-thumb--image {
  background: var(--soft-gray) !important;
  border: 3px solid var(--blue);
}

html.is-high-contrast .gallery-marquee__pause {
  color: var(--yellow) !important;
  border: 3px solid var(--yellow) !important;
  background: transparent !important;
}

html.is-high-contrast .gallery-lightbox__backdrop,
html.is-high-contrast .cookie-notice__backdrop,
html.is-high-contrast .legal-modal__backdrop {
  background: rgba(var(--hc-blue-rgb), 0.92) !important;
  backdrop-filter: none !important;
}

html.is-high-contrast .gallery-lightbox__panel {
  background: var(--blue) !important;
  border: 3px solid var(--yellow) !important;
  color: var(--white) !important;
}

html.is-high-contrast .legal-modal__panel,
html.is-high-contrast .cookie-notice__panel,
html.is-high-contrast .cookie-preferences__panel {
  border: 4px solid var(--blue) !important;
  box-shadow: 14px 14px 0 var(--yellow) !important;
}

html.is-high-contrast .cookie-preferences__option {
  border: 3px solid var(--blue) !important;
}

html.is-high-contrast .legal-prose__table th {
  background: var(--yellow) !important;
  color: var(--blue) !important;
}

html.is-high-contrast :is(.legal-prose__table-wrap, .legal-prose__table th, .legal-prose__table td) {
  border-color: var(--blue) !important;
}

html.is-high-contrast :is(
  .cookie-notice__footer,
  .legal-prose__meta,
  .legal-prose__footer-note
) {
  color: var(--blue) !important;
}

/* ==================================================
   Focus / soft blues remapped
================================================== */

html.is-high-contrast :focus-visible {
  outline: 4px solid var(--yellow) !important;
  outline-offset: 4px;
  box-shadow: 0 0 0 7px var(--blue) !important;
}

html.is-high-contrast .megaphone-button.is-reading .megaphone-icon,
html.is-high-contrast .megaphone-icon.is-reading {
  filter: var(--icon-filter-hc-blue) drop-shadow(0 0 10px rgba(255, 246, 0, 0.85)) !important;
}

html.is-high-contrast .folder-scroll-card[aria-current="true"] .megaphone-button.is-reading .megaphone-icon,
html.is-high-contrast .folder-scroll-card[aria-current="true"] .megaphone-icon.is-reading,
html.is-high-contrast .hero .megaphone-button.is-reading .megaphone-icon,
html.is-high-contrast .page-documenti__bottom .megaphone-button.is-reading .megaphone-icon {
  filter: var(--icon-filter-root-yellow) drop-shadow(0 0 10px rgba(255, 246, 0, 0.85)) !important;
}
