/* Lien d'evitement visible au focus. */
.miltis-skip-link {
    position: fixed;
    z-index: 999999;
    top: 0.75rem;
    left: 0.75rem;
    padding: 0.75rem 1rem;
    background: #fff;
    color: #000;
    border: 2px solid currentColor;
    transform: translateY(-200%);
}

.miltis-skip-link:focus {
    transform: translateY(0);
}

/* Focus visible global. Le contraste doit etre verifie sur la charte reelle. */
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

/* Classe reutilisable pour un texte visible uniquement aux technologies d'assistance. */
.miltis-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.miltis-sr-only:focus,
.miltis-sr-only:active {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
}


/** DEBUT CSS ACEPTIO CONSENTEMENT */

/**
 * Axeptio — correction des contrastes signalés par Urbilog.
 *
 * Le gris initial #7a7a7a est trop clair sur fond blanc.
 * #595959 offre un contraste supérieur au minimum de 4,5:1.
 */

/* « Continuer sans accepter » et son icône */
#axeptio_overlay .ax-discardButton,
#axeptio_overlay .ax-discardButton span,
#axeptio_overlay .ax-discardButton svg {
    color: #595959 !important;
}

/* Textes descriptifs de la fenêtre */
#axeptio_overlay .axeptio_widget .sc-fvhFOF,
#axeptio_overlay .axeptio_widget .sc-fvhFOF p,
#axeptio_overlay .axeptio_widget .sc-fvhFOF li {
    color: #595959 !important;
}

/* « Consentements certifiés par Axeptio » */
#axeptio_overlay .axeptio_widget button[aria-expanded] {
    color: #595959 !important;
}

/* Contraste au survol du bouton de certification */
#axeptio_overlay .axeptio_widget button[aria-expanded]:hover,
#axeptio_overlay .axeptio_widget button[aria-expanded]:focus-visible {
    color: #ffffff !important;
    background-color: #595959 !important;
}

/* Bouton « Je choisis » */
#axeptio_overlay #axeptio_btn_configure {
    color: #595959 !important;
    background-color: #ffffff !important;
}

/* Autres écrans internes du widget Axeptio */
#axeptio_overlay .ax-screen,
#axeptio_overlay .ax-screen p,
#axeptio_overlay .ax-screen li {
    color: #595959 !important;
}

/** FIN CSS ACEPTIO CONSENTEMENT */

/* Focus global perceptible */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
[role="button"]:focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 2px #fff !important;
}

/* Boutons du menu off-canvas */
.ekit_navSidebar-button:focus-visible,
.ekit_close-side-widget:focus-visible,
.ekit-menu-close:focus-visible,
.ekit-menu-nav-link:focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 2px #fff !important;
}

/* Accordéons Elementor */
.elementor-tab-title:focus-visible,
.elementor-accordion-title:focus-visible,
.elementor-widget-accordion [role="button"]:focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #fff !important;
}

/* Liens dans les carrousels */
.elementor-carousel-item a:focus-visible,
.slick-slide a:focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: -4px !important;
    box-shadow: inset 0 0 0 2px #fff !important;
}

/* Flèches et pagination des carrousels */
.elementor-swiper-button:focus-visible,
.swiper-button-next:focus-visible,
.swiper-button-prev:focus-visible,
.swiper-pagination-bullet:focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px #fff !important;
}


/** MENU ACCORDEON */
.a11y-menu-accordion .elementor-tab-title {
    cursor: pointer;
}

.a11y-menu-accordion .elementor-tab-title:focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 2px #fff;
}

.a11y-menu-accordion .elementor-accordion-icon i,
.a11y-menu-accordion .elementor-accordion-icon svg {
    pointer-events: none;
}


/** BARRE DE RECHERCHE */
.a11y-region-search label {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    display: block !important;
    font-weight: 600;
}

.a11y-region-search input[type="search"]:focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 2px #fff;
}

.a11y-region-search input[type="search"] {
    color: #fff !important;
}

.elementor-image-carousel a:focus-visible,
.elementor-carousel-image:focus-visible,
.swiper-slide a:focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: -4px !important;
  box-shadow: inset 0 0 0 2px #fff !important;
}

.swiper-slide a[href]:focus-visible,
.elementor-image-carousel a[href]:focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: -4px !important;
  box-shadow: inset 0 0 0 2px #fff !important;
}

.swiper-slide:focus-within {
  outline: 3px solid #000 !important;
  outline-offset: -4px !important;
  box-shadow: inset 0 0 0 2px #fff !important;
}

@media (max-width: 767px) {
  /*
   * Tous les menus présents dans le footer global.
   */
  .elementor-location-footer .elementor-widget-nav-menu,
  .elementor-location-footer .elementor-widget-nav-menu .elementor-widget-container,
  .elementor-location-footer .elementor-widget-nav-menu .elementor-nav-menu--main,
  .elementor-location-footer .elementor-widget-nav-menu .elementor-nav-menu {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /*
   * Le menu horizontal devient vertical sur mobile.
   */
  .elementor-location-footer
    .elementor-widget-nav-menu
    .elementor-nav-menu--main
    > .elementor-nav-menu {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
  }

  .elementor-location-footer
    .elementor-widget-nav-menu
    .elementor-nav-menu
    > li,
  .elementor-location-footer
    .elementor-widget-nav-menu
    .elementor-nav-menu
    > li
    > a {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /*
   * Autorise les intitulés longs à revenir à la ligne.
   */
  .elementor-location-footer
    .elementor-widget-nav-menu
    .elementor-nav-menu
    > li
    > a {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
    text-align: center;
  }
}

/*
 * Autorise les URL et liens éditoriaux longs à revenir à la ligne.
 */
main#contenu-principal p a,
main#contenu-principal li a,
main#contenu-principal td a {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  max-width: 100%;
}

/*
 * RGAA - Les liens dans le contenu doivent être identifiables
 * autrement que par leur seule couleur.
 */
main#contenu-principal p a,
main#contenu-principal li a,
main#contenu-principal td a {
    text-decoration: underline !important;
    text-decoration-thickness: .08em;
    text-underline-offset: .14em;
}

main#contenu-principal p a:hover,
main#contenu-principal li a:hover,
main#contenu-principal td a:hover,
main#contenu-principal p a:focus-visible,
main#contenu-principal li a:focus-visible,
main#contenu-principal td a:focus-visible {
    text-decoration-thickness: .14em;
}
