/* Accessibility rules complement the design without depending on a third-party overlay. */
.skip-link { position: fixed; left: 1rem; top: -10rem; z-index: 10000; background: #fff; color: #000; padding: 1rem; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid #000 !important; outline-offset: 3px; box-shadow: 0 0 0 6px #fff !important; }
[hidden] { display: none !important; }
.motion-toggle { position: fixed; top: .75rem; left: .75rem; z-index: 101; border: 2px solid #fff; border-radius: 4px; background: #000; color: #fff; padding: .6rem .8rem; font: 600 .875rem/1.4 Arial, sans-serif; max-width: 60vw; }
#c-button--slide-right { color: #fff; background: #000; border: 0; font: inherit; padding: .5rem; }
.c-menu__close { background: transparent; border: 0; font: inherit; }
#c-menu--slide-right a, #c-menu--slide-right button { color: #000 !important; }
#c-menu--slide-right a:hover, #c-menu--slide-right a:focus-visible { text-decoration: underline; }
#c-menu--slide-right { overflow-y: auto; }
.heroSectionHome #annonce .festival-name { color: #fff; background: #000; display: table; margin: 0 auto .5rem; padding: .3rem .7rem; }
.heroSectionHome #annonce .section-title { color: #fff; background: #000; display: table; margin-inline: auto; padding: .25em; line-height: 1.25; white-space: normal; font-size: clamp(1.75rem, 3.5vw, 4rem); }
.heroSectionHome #annonce .section-title span { display: inline !important; }
.heroSectionHome #menu a { color: #000; background: #9ab158; border: 2px solid #000; backdrop-filter: none; }
.heroSectionHome #menu a:hover, .heroSectionHome #menu a:focus-visible { color: #fff; background: #000; }
.page-accessible-title { margin-block: 2rem; font-size: clamp(2rem, 5vw, 4rem); line-height: 1.2; }
.section-title { overflow-wrap: break-word; }
.section.block-repeater .title, .section.news .title, #map .section-title { color: #fff; background: #000; padding: .2em .35em; }
#infos a, .section.bg-white a { color: #263c13; text-decoration: underline; }
.slick-arrow { background: #000 !important; color: #fff !important; min-width: 44px; min-height: 44px; }
.card .date { color: #bdbdbd; }
video { max-width: 100%; }
html:not([data-motion="playing"]) *, html:not([data-motion="playing"]) *::before, html:not([data-motion="playing"]) *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media (max-width: 600px) { .heroSectionHome #annonce { padding-inline: 1rem; } .heroSectionHome #menu a { line-height: 1.5; } }

#c-menu--slide-right .c-menu__close span { color: #000; display: inline; }
#c-menu--slide-right .c-menu__close .wrapper::before, #c-menu--slide-right .c-menu__close .wrapper::after { background: #000; }

#getyourticket { background-color: #000 !important; color: #fff !important; }

/* WordPress quick links beside the existing burger. */
.header-actions { position: fixed; top: 20px; right: 4vw; z-index: 999; display: flex; align-items: center; gap: .75rem; max-width: calc(100% - 8vw); }
.header-actions #burger { position: static; flex: 0 0 auto; }
.header-quick-nav { min-width: 0; }
.header-quick-menu { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.header-quick-menu li { margin: 0; padding: 0; }
.header-quick-menu a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: .5rem .75rem; background: #000; color: #fff; font: inherit; font-size: 1rem; line-height: 1.25; text-transform: uppercase; text-decoration: none; }
.header-quick-menu a:hover, .header-quick-menu a:focus-visible, .header-quick-menu a[aria-current="page"] { text-decoration: underline; text-underline-offset: .2em; }
.header-actions #c-button--slide-right { min-height: 44px; min-width: 44px; }
@media (max-width: 767.98px) {
  .header-actions { top: 12px; right: 12px; max-width: calc(100% - 24px); gap: .5rem; }
  .header-quick-menu a { font-size: .8125rem; padding-inline: .25rem; }
  .motion-toggle { top: 68px; left: 12px; }
}

/* Compact, labelled pause/play control; the accessible name follows the action. */
.motion-toggle { width: 44px; height: 44px; min-width: 44px; padding: 8px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.motion-toggle .motion-icon { flex: none; pointer-events: none; }
.motion-toggle[data-state="playing"] .motion-icon-play,
.motion-toggle[data-state="paused"] .motion-icon-pause { display: none; }
