/* ============================================================================
 * BYÜ — accessibilité clavier et lecteurs d'écran                 2026-10-09
 * ----------------------------------------------------------------------------
 * Feuille chargée sur TOUTES les pages, après les feuilles du thème.
 * Indépendante de byu-contrast-fix.css (qui reste retirable d'un geste).
 * Règle de couleur : texte BLANC sur l'orange #FF7A00 (retour au blanc décidé par le porteur le 11/10).
 * ========================================================================== */

/* 1. Indicateur de focus (WCAG 2.4.7).
 *    Le thème impose `:focus { outline: none !important }` sans remplacement.
 *    Anneau double : contour encre + liseré blanc, lisible sur clair, sur
 *    orange et sur photo. Seulement au clavier (:focus-visible). */
html body :focus-visible {
  outline: 3px solid #1a1a1a !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 2px #fff !important;
  /* le thème anime tout lien (`a { transition: all .4s }`) : anneau immédiat */
  transition-duration: 0s !important;
}

/* 2. Lien d'évitement « Aller au contenu » : hors écran, visible au focus. */
.byu-skip-link {
  position: absolute;
  top: 0;
  left: 8px;
  z-index: 100000;
  padding: 10px 16px;
  border-radius: 0 0 10px 10px;
  background: #ff7a00;
  color: #fff !important;
  font: 600 16px/1.2 Poppins, Arial, sans-serif;
  text-decoration: none;
  transform: translateY(-110%);
  transition: none !important;
}
.byu-skip-link:focus,
.byu-skip-link:focus-visible {
  transform: none;
}

/* 3. Texte réservé aux lecteurs d'écran (titres h1 sans titre visible). */
.byu-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* 4. Menu mobile FERMÉ : hors de l'ordre de tabulation et de l'arbre
 *    d'accessibilité (il est seulement translaté / replié hors écran).
 *    La visibilité bascule APRÈS l'animation de fermeture (0,45 s, durée du
 *    thème) et immédiatement à l'ouverture. byu-a11y.js pose aussi `inert`. */
.mobile_nav_wrapper .wgl-menu_outer {
  visibility: hidden;
  transition: transform 0.45s ease-in-out, height 0.45s cubic-bezier(0.5, 1, 0.89, 1), visibility 0s linear 0.45s;
}
body.mobile_switch_on .mobile_nav_wrapper .wgl-menu_outer {
  visibility: visible;
  transition-delay: 0s, 0s, 0s;
}
/* En-tête flottant (copie du menu qui apparaît en remontant la page) :
 * masqué par translateY(-100%) + opacity 0, mais ses liens restaient dans
 * l'ordre de tabulation (5 arrêts invisibles juste après le menu, relevés par
 * l'audit). Hors tabulation tant qu'il n'est pas affiché. */
.wgl-sticky-header:not(.sticky_active) {
  visibility: hidden;
  transition: all 0.3s, visibility 0s linear 0.3s;
}
.wgl-sticky-header.sticky_active {
  transition: all 0.3s, visibility 0s;
}

/* Boutons du menu (div role=button) : pointeur comme avant. */
.mobile-hamburger-toggle .hamburger-box[role="button"],
.mobile-hamburger-close .hamburger-box[role="button"] {
  cursor: pointer;
}

/* 5. Accordéons : le titre est un vrai <button>, sans habillage navigateur
 *    (police, couleur, taille viennent des règles du thème sur
 *    .wgl-accordion_title, inchangées). */
.wgl-accordion button.wgl-accordion_title {
  -webkit-appearance: none;
  appearance: none;
  background: none;
  border: 0;
  border-radius: 0;
  height: auto;          /* le thème donne height: 60px à tout <button> */
  margin: 0;
  padding: 0;
  text-align: inherit;
  text-transform: inherit;
  cursor: pointer;
}
/* Panneau ouvert par défaut : visible dès le premier rendu (le thème le
 * dépliait après chargement ⇒ décalage de mise en page, CLS). Un clic qui
 * le replie pose display:none en ligne, qui l'emporte. */
.wgl-accordion .wgl-accordion_panel[data-default="yes"] .wgl-accordion_content {
  display: block;
}

/* 6. Liens dans le texte courant des pages légales : soulignés
 *    (WCAG 1.4.1 — la couleur seule ne suffit pas). */
/*    CGU 4525, confidentialité 3, CGV 6469, remboursement 6482, suppression 4538. */
.elementor-4525 .elementor-widget-text-editor a,
.elementor-3 .elementor-widget-text-editor a,
.elementor-6469 .elementor-widget-text-editor a,
.elementor-6482 .elementor-widget-text-editor a,
.elementor-4538 .elementor-widget-text-editor a,
.byu-terms a,
.byu-privacy-policy a,
a.decorated-link {
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

/* 7. Titres promus en <h1> sans changement visuel : le <p> d'origine
 *    portait le style ; on neutralise les règles h1 du thème. */
h1.byu-h1-texte {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  margin: 0 0 16px;      /* marge des <p> du contenu */
}

/* ============================================================================
 * STABILITÉ DE MISE EN PAGE (CLS)
 * ========================================================================== */

/* 8. Police de repli calée sur Poppins (Arial ajustée) : tant que Poppins
 *    n'est pas arrivée (font-display: swap), le texte occupe déjà la même
 *    place ; le basculement ne fait plus sauter les lignes.
 *    Valeurs : métriques Poppins (ascender 1050, descender 350, interligne
 *    100 / 1000 UPM) rapportées à la largeur moyenne d'Arial. */
@font-face {
  font-family: "Poppins Fallback";
  src: local("Arial"), local("ArialMT"), local("Helvetica"), local("Liberation Sans");
  size-adjust: 112.81%;
  ascent-override: 93.08%;
  descent-override: 31.03%;
  line-gap-override: 8.86%;
}
html:root {
  --poity-content-font-family: Poppins, "Poppins Fallback";
  --poity-header-font-family: Poppins, "Poppins Fallback";
  --poity-menu-font-family: Poppins, "Poppins Fallback";
  --poity-submenu-font-family: Poppins, "Poppins Fallback";
  --poity-h1-font-family: Poppins, "Poppins Fallback";
  --poity-h2-font-family: Poppins, "Poppins Fallback";
  --poity-h3-font-family: Poppins, "Poppins Fallback";
  --poity-h4-font-family: Poppins, "Poppins Fallback";
  --poity-h5-font-family: Poppins, "Poppins Fallback";
  --poity-h6-font-family: Poppins, "Poppins Fallback";
}
html .elementor-kit-9 {
  --e-global-typography-primary-font-family: "Poppins", "Poppins Fallback";
  --e-global-typography-secondary-font-family: "Poppins", "Poppins Fallback";
  --e-global-typography-text-font-family: "Poppins", "Poppins Fallback";
  --e-global-typography-accent-font-family: "Poppins", "Poppins Fallback";
}

/* 9. /telecharger/ — carrousel de photos (Swiper, 2 / 3 / 5 / 7 vignettes
 *    selon la largeur). Avant l'initialisation, les vignettes prenaient leur
 *    largeur naturelle, puis rétrécissaient en 0,4 s (transition `all` du
 *    thème) : la page entière remontait. On donne d'emblée la largeur finale
 *    et on retire largeur/hauteur des propriétés animées. */
.elementor-element-aa1d529 .wgl-carousel_swiper:not(.swiper-initialized) .swiper-wrapper {
  display: flex;
}
.elementor-element-aa1d529 .wgl-carousel_swiper:not(.swiper-initialized) .swiper-slide {
  flex: 0 0 auto;
  width: 50%;
}
@media (min-width: 600px) {
  .elementor-element-aa1d529 .wgl-carousel_swiper:not(.swiper-initialized) .swiper-slide { width: 33.3333%; }
}
@media (min-width: 992px) {
  .elementor-element-aa1d529 .wgl-carousel_swiper:not(.swiper-initialized) .swiper-slide { width: 20%; }
}
@media (min-width: 1601px) {
  .elementor-element-aa1d529 .wgl-carousel_swiper:not(.swiper-initialized) .swiper-slide { width: 14.2857%; }
}
.elementor-element-aa1d529 .swiper-slide {
  transition-property: transform, opacity, margin, box-shadow, filter;
}

/* 10. Pied de page qui remonte après chargement (pages courtes : contacts,
 *     suppression-données, télécharger…). Le thème donne au contenu
 *     `min-height: calc(100vh - var(--footer-height, 0px) …)` et ne pose
 *     --footer-height qu'en JavaScript : au premier rendu le contenu fait
 *     toute la hauteur d'écran, puis rétrécit et le pied saute vers le haut.
 *     Valeur initiale = 100vh (min-height nulle) ; le script du thème la
 *     remplace par la vraie hauteur (style en ligne sur <html>, prioritaire).
 *     Pied plus haut que l'écran (cas courant) ⇒ plus aucun saut. */
html:root {
  --footer-height: 100vh;
}
