/* États publics : palettes annuelles conservées, géométrie et typographie intactes. */
:root {
  --cdg-state-paper-ink: var(--cdg-ink, #183229);
  --cdg-state-surface-ink: var(--cdg-ink, #183229);
  --cdg-state-paper-link: var(--cdg-blue, #244fc2);
  --cdg-state-surface-link: var(--cdg-blue, #244fc2);
  --cdg-state-partner-ink: var(--cdg-ink, #183229);
}
/* Éviter le passage texte/fond identiques au milieu d'une inversion de couleurs. */
body:is(.cdg-site-ready, .cdg-tools-offline-body)
  :is(.cdg-button, .cdg-button-outline, .cdg-mystery-button, .cdg-concert-favorite,
      .cdg-program-filters button, .cdg-tools-tabs button, .cdg-tools-map-filters button,
      .cdg-partner-controls button, .cdg-nav-ticket > a, .cdg-menu-toggle, [data-visitor-mode]) {
  transition-property: transform;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body)
  :is(#main-header, #main-content, .cdg-tools-offline-main, .cdg-footer, .cdg-artist-dialog, .cdg-audio-panel, .cmplz-cookiebanner)
  :is(a, button, summary, input, select, textarea, [role="button"], [role="tab"]) { transition-property: transform !important; }

/* Une couleur de contrôle sélectionné ne peut pas être remplacée par celle d'un lien. */
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-tools-app .cdg-tools-map-filters button[aria-pressed="true"],
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-tools-app .cdg-button-outline[aria-pressed="true"],
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-concert-favorite[aria-pressed="true"] {
  background: var(--tools-accent, var(--cdg-blue)) !important;
  color: var(--cdg-button-text, #fff) !important;
  border-color: var(--tools-accent, var(--cdg-blue)) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-tools-map-filters button:not([aria-pressed="true"]),
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-concert-favorite:not([aria-pressed="true"]),
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-inner-content .cdg-button-outline:not(.cdg-mystery-button):not([aria-pressed="true"]),
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-program-favorites .cdg-button-outline {
  background: var(--tools-surface, var(--cdg-surface, #fff)) !important;
  color: var(--cdg-state-surface-link) !important;
  border-color: currentColor !important;
}

body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-program-filters {
  background: var(--cdg-ink) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-program-filters button:not([aria-selected="true"]) {
  background: transparent !important;
  color: var(--cdg-footer-text, #fff) !important;
  opacity: 1;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-program-filters button[aria-selected="true"] {
  background: var(--cdg-program-highlight, var(--cdg-yellow)) !important;
  color: var(--cdg-program-action-text, #000) !important;
  opacity: 1;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-program-filters button > span { color: inherit; opacity: 1; }
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-tools-tabs button:not([aria-selected="true"]) {
  color: var(--cdg-state-paper-link) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-tools-tabs button[aria-selected="true"] {
  background: var(--tools-accent, var(--cdg-blue)) !important;
  color: var(--cdg-button-text, #fff) !important;
  border-bottom-color: currentColor;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-content [data-visitor-mode][aria-pressed="true"] {
  background: var(--cdg-blue) !important;
  color: var(--cdg-button-text, #fff) !important;
  border-color: var(--cdg-blue) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-content [data-visitor-mode]:not([aria-pressed="true"]) {
  background: var(--cdg-surface, #fff) !important;
  color: var(--cdg-state-surface-link) !important;
  border-color: currentColor !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-content [data-visitor-mode] > span { color: inherit; opacity: 1; }

body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-topic-nav a[aria-current],
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-content-toc a[aria-current] {
  background: var(--cdg-blue) !important;
  color: var(--cdg-button-text, #fff) !important;
  border-color: var(--cdg-blue) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-menu a[aria-current],
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-nav-group[aria-expanded="true"] {
  color: var(--cdg-state-paper-link) !important;
  text-decoration: underline;
  text-underline-offset: .2em;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-menu > li:not(.cdg-nav-ticket) > a:not([aria-current]),
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-nav-group:not([aria-expanded="true"]),
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-menu-toggle:not([aria-expanded="true"]) { color: var(--cdg-state-paper-ink) !important; }
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-menu .sub-menu a:not([aria-current]) { color: var(--cdg-state-surface-link) !important; }
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) .cdg-faq summary {
  background: var(--cdg-surface, #fff) !important;
  color: var(--cdg-state-surface-ink) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) .cdg-faq[open] summary,
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) .cdg-faq summary:hover { color: var(--cdg-state-surface-link) !important; }
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-faq .cdg-ui-faq-indicator { color: inherit; }
body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-content .cdg-inner-content .et_pb_toggle_title { color: var(--cdg-state-surface-ink) !important; }
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-menu-toggle[aria-expanded="true"] {
  background: var(--cdg-ink) !important;
  color: var(--cdg-footer-text, #fff) !important;
  border-color: var(--cdg-ink) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-menu .cdg-nav-ticket > a {
  background: var(--cdg-blue) !important;
  color: var(--cdg-button-text, #fff) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(.wpforms-container-full, .cdg-alert-form, .cdg-partner-search, .cdg-tools-app)
  :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], select, textarea) {
  background: var(--tools-surface, var(--cdg-surface, #fff)) !important;
  color: var(--cdg-state-surface-ink) !important;
  border-color: var(--cdg-state-surface-ink) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(.wpforms-container-full, .cdg-alert-form, .cdg-partner-search, .cdg-tools-app)
  :is(input, textarea)::placeholder { color: var(--cdg-state-surface-ink); opacity: 1; }

/* Les contrôles sur la vidéo ont un fond opaque, quelle que soit l'image courante. */
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-hero-immersive .cdg-hero-secondary,
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-video-controls :is(.cdg-video-toggle, .cdg-video-sound) {
  background: var(--cdg-ink) !important;
  color: var(--cdg-footer-text, #fff) !important;
  border-color: var(--cdg-footer-text, #fff) !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-motion-toggle[aria-pressed="true"],
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-audio-toggle[aria-expanded="true"] {
  text-decoration: underline;
  text-underline-offset: .25em;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(.cdg-button, .cdg-mystery-button):hover,
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-nav-ticket > a:hover { filter: none; }
body:is(.cdg-site-ready, .cdg-tools-offline-body) [data-partner-showcase] .cdg-partners-pause[aria-pressed="true"] {
  background: var(--cdg-partner-accent, var(--cdg-yellow)) !important;
  color: var(--cdg-state-partner-ink) !important;
  border-color: currentColor !important;
}
body:is(.cdg-site-ready, .cdg-tools-offline-body) [data-partner-showcase] .cdg-partner-controls button:not([aria-pressed="true"]) {
  color: var(--cdg-footer-text, #fff) !important;
  border-color: currentColor;
}

/* L'indicateur à deux couleurs reste visible sur une surface claire ou foncée. */
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-header, #main-content, .cdg-tools-offline-main, .cdg-footer, .cdg-artist-dialog, .cdg-audio-panel, .cmplz-cookiebanner)
  :is(a, button, summary, input, select, textarea, [role="button"], [role="tab"]):focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 7px #000 !important;
  transition: none !important;
}
/* Les filtres défilants et les repères de carte contiennent leur indicateur. */
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) :is(.cdg-program-filters, .cdg-tools-map-filters, .cdg-tools-tabs) button:focus-visible,
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) .cdg-tools-marker:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: -5px !important;
  box-shadow: inset 0 0 0 2px #000 !important;
  transition: none !important;
}

@media (hover: hover) {
  body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-content [data-visitor-mode]:hover:not(:disabled) {
    background: var(--cdg-blue) !important;
    color: var(--cdg-button-text, #fff) !important;
    border-color: var(--cdg-blue) !important;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-tools-map-filters button:hover:not(:disabled),
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-concert-favorite:hover:not(:disabled),
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-inner-content .cdg-button-outline:hover:not(:disabled):not(.cdg-mystery-button),
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-program-favorites .cdg-button-outline:hover,
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-tools-tabs button:hover:not(:disabled) {
    background: var(--tools-accent, var(--cdg-blue)) !important;
    color: var(--cdg-button-text, #fff) !important;
    border-color: var(--tools-accent, var(--cdg-blue)) !important;
    filter: none;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-program-filters button:hover:not(:disabled) {
    text-decoration: underline;
    text-underline-offset: .2em;
    box-shadow: inset 0 0 0 2px currentColor;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) [data-partner-showcase] .cdg-partner-controls button:hover:not(:disabled) {
    background: var(--cdg-partner-accent, var(--cdg-yellow)) !important;
    color: var(--cdg-state-partner-ink) !important;
    border-color: currentColor !important;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-band-onsite:hover {
    background: var(--cdg-footer-text, #fff) !important;
    color: var(--cdg-ink) !important;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(.cdg-button, .cdg-mystery-button):hover,
  body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-nav-ticket > a:hover {
    filter: none;
    text-decoration: underline !important;
    text-underline-offset: .2em;
  }
}

/* Les contrôles inactifs restent lisibles, sans simuler un état actif au survol. */
body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) button:disabled,
body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-header button:disabled,
body:is(.cdg-site-ready, .cdg-tools-offline-body) .cdg-footer button:disabled {
  opacity: 1 !important;
  background: var(--cdg-surface, #fff) !important;
  color: var(--cdg-state-surface-link) !important;
  border-color: currentColor !important;
  border-style: dashed;
  filter: none !important;
  box-shadow: none !important;
  cursor: default;
}

@media (forced-colors: active) {
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-header, #main-content, .cdg-tools-offline-main, .cdg-footer, .cdg-artist-dialog, .cdg-audio-panel, .cmplz-cookiebanner)
    :is(button, a, summary, input, select, textarea, [role="button"], [role="tab"]):focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main)
    :is(.cdg-program-filters, .cdg-tools-map-filters, .cdg-tools-tabs) button:focus-visible,
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) .cdg-tools-marker:focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main)
    :is(.cdg-program-filters, .cdg-tools-tabs) button[aria-selected="true"],
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) .cdg-tools-map-filters button[aria-pressed="true"],
  body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-content [data-visitor-mode][aria-pressed="true"] {
    forced-color-adjust: none;
    background: Highlight !important;
    color: HighlightText !important;
  }
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main)
    :is(.cdg-program-filters, .cdg-tools-tabs) button[aria-selected="true"]:focus-visible,
  body:is(.cdg-site-ready, .cdg-tools-offline-body) :is(#main-content, .cdg-tools-offline-main) .cdg-tools-map-filters button[aria-pressed="true"]:focus-visible,
  body:is(.cdg-site-ready, .cdg-tools-offline-body) #main-content [data-visitor-mode][aria-pressed="true"]:focus-visible { outline-color: HighlightText !important; }
}
