/* ==========================================================================
   energem - correctifs d'accessibilite RGAA 4.1.2
   --------------------------------------------------------------------------
   Ajoute le 24/08/2026 dans le cadre du ticket #1097 (audit du 28/04/2026).

   Cette feuille est chargee APRES bootstrap.min.css et composantsv11.css.
   Elle corrige par surcharge, sans toucher aux fichiers d'origine : la
   retirer se fait en supprimant la balise <link> de views/html-header.twig.

   Elle traite trois criteres :
     10.7  prise de focus visible
     10.14 equivalent clavier des effets de survol
     12.7  lien d'evitement
   ========================================================================== */


/* --------------------------------------------------------------------------
   12.7 - Lien d'evitement
   Masque tant qu'il n'a pas le focus, il apparait a la premiere tabulation.
   -------------------------------------------------------------------------- */
.skip-link {
    position: absolute;
    top: -100px;
    left: 8px;
    z-index: 100000;
    padding: 12px 20px;
    background: #ffffff;
    color: #12326b;
    font-weight: 700;
    text-decoration: underline;
    border: 2px solid #12326b;
    border-radius: 0 0 4px 4px;
    transition: top .15s ease-in-out;
}

.skip-link:focus {
    top: 0;
    outline: 3px solid #12326b;
    outline-offset: 2px;
}


/* --------------------------------------------------------------------------
   10.7 - Prise de focus visible
   Le theme et bootstrap neutralisent l'outline sur 13 regles :focus. On le
   retablit pour la navigation clavier uniquement (:focus-visible), afin de ne
   pas faire apparaitre d'anneau au clic souris.

   Double anneau noir + halo blanc : reste contraste aussi bien sur les fonds
   clairs du contenu que sur les fonds sombres de l'en-tete et du pied de page.
   Le !important est necessaire pour passer devant les regles bootstrap du type
   .form-control:focus { outline: 0 }, plus specifiques que ce selecteur.
   -------------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[contenteditable]:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible {
    outline: 2px solid #000000 !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px #ffffff !important;
}

/* Navigateurs sans :focus-visible : on retombe sur :focus, moins fin mais
   conforme. La regle est ignoree par les navigateurs qui le supportent. */
@supports not selector(:focus-visible) {
    a:focus,
    button:focus,
    input:focus,
    select:focus,
    textarea:focus,
    [tabindex]:focus {
        outline: 2px solid #000000 !important;
        outline-offset: 2px !important;
    }
}


/* --------------------------------------------------------------------------
   10.14 - Equivalent clavier des effets de survol
   Chaque regle :hover du theme recoit ici son equivalent au clavier, genere
   depuis composantsv11.css le 24/08/2026 :
     - :hover en fin de selecteur      -> :focus-visible (l'element se focalise)
     - :hover sur un conteneur parent  -> :focus-within  (le focus va a un enfant)
   -------------------------------------------------------------------------- */
#custom-dropdown-search .drowpdown-content li:focus-visible {font-weight:bold}
#custom-dropdown-search .drowpdown-content li:focus-within:before {max-width:50px;right:0;margin:auto;background:#fff;width:100%;height:2px;position:absolute;bottom:-10px;left:0;content:""}
.search-form-container #custom-dropdown-search .drowpdown-content li:focus-within:before {background:#fff}
form.search-form>.search-form--submit:focus-visible {background:#fff;color:var(--tooltip-color)}
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-inner .menu-menu-container ul li a:focus-visible {font-weight:600}
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-inner .menu-menu-container ul li a:focus-within:before {width:100%;height:2px;position:absolute;bottom:0;left:0;content:"";background:#fff}
/* Retire volontairement : cet equivalent clavier du survol ouvrait la liste
   des profils des la simple tabulation sur le bouton. Le menu principal, lui,
   demande Entree ; les deux commandes doivent se comporter pareil. L'ouverture
   au clavier passe donc par Entree sur le bouton (voir assets/js/a11y.js), et
   le survol a la souris continue de fonctionner par la regle d'origine.
   .menu-menu-container-ascenseur:focus-within .menu { display: block } */
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-inner .composant-top-button-01:focus-visible {border:2px solid #fff;padding:0 16px}
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-inner .composant-top-menu-01:focus-visible {background-color:hsla(0,0%,100%,.2)}
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-inner .composant-top-search-01:focus-visible {background-color:hsla(0,0%,100%,.2)}
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu .main-menu-container .main-menu .menu-item .nav-drop .nav-drop-item a:focus-visible {color:var(--tooltip-color)}
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu .main-menu-container .main-menu-options .main-menu-options-boutons a.actif:focus-visible {background:rgba(0,0,0,0);color:var(--tooltip-color)}
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu .main-menu-container .main-menu-options .main-menu-options-boutons a:focus-visible {background:var(--tooltip-color);color:#fff}
.composant-01 .composant-01-inner .composant-middle-01-container .composant-middle-01-arrows .composant-01-inner-slide-next:focus-visible, .composant-01 .composant-01-inner .composant-middle-01-container .composant-middle-01-arrows .composant-01-inner-slide-prev:focus-visible {color:#fff;background:var(--tooltip-color)}
.composant-01 .composant-01-inner .composant-middle-01-container .composant-middle-01-dots ul li:focus-within button {background:hsla(0,0%,100%,.5)}
.composant-01 .composant-01-inner .composant-middle-01-container .composant-middle-01 .composant-middle-01-lien:focus-visible {background-color:#fff;color:var(--tooltip-color)}
.composant-02 .container>div .composant-button-02:focus-visible {background-color:var(--tooltip-color);color:#fff}
.composant-03 .composant-inner-03 .composant-03-block .composant-button-03:focus-visible {background-color:#fff}
.composant-03 .composant-inner-03 .composant-03-block .composant-button-03:focus-within>* {color:var(--tooltip-color)}
.composant-04 .composant-04-inner .composant-04-block-container .composant-04-block .composant-04-block-right .composant-04-block-link:focus-visible {background-color:var(--tooltip-color);color:#fff}
.composant-06 .composant-06-inner .composant-06-column .composant-06-lien:focus-visible {color:#fff;background-color:var(--tooltip-color)}
.composant-07 .composant-07-blocs .composant-07-bloc .composant-07-bloc-lien:focus-visible {background-color:var(--tooltip-color);color:#fff}
.composant-08 .composant-08-inner .composant-08-inner-tab .composant-08-inner-tab-ul li:focus-visible {background:var(--tooltip-color);color:#fff}
.composant-09 .composant-09-inner .composant-09-lien:focus-visible {background-color:#fff;color:var(--tooltip-color)}
.composant-11 .composant-11-inner .slick-arrow:focus-visible {background:#4f4f4f}
.composant-15 .composant-15-inner .composant-15-blocs .composant-15-bloc.electricite .composant-15-bloc-lien:focus-visible {background:#fff;color:#0750a4}
.composant-15 .composant-15-inner .composant-15-blocs .composant-15-bloc.gaz .composant-15-bloc-lien:focus-visible {background:#fff;color:#6ab43c}
.composant-15 .composant-15-inner .composant-15-blocs .composant-15-bloc.demenagement .composant-15-bloc-lien:focus-visible {background:#fff;color:#0097db}
.composant-16 .composant-16-inner .composant-16-blocs .composant-16-bloc:focus-visible {text-decoration:underline}
.composant-17 .composant-17-inner .composant-17-inner-column-contact .composant-17-inner-column-contact-lien:focus-visible {background:var(--tooltip-color);color:#fff}
.composant-18 .composant-18-inner .composant-18-inner-table::-webkit-scrollbar-thumb:focus-visible {background:#b30000}
.composant-19 .composant-19-inner form input[type=submit]:focus-visible {background:#0d2789;color:#fff}
.composant-20 .composant-20-inner .composant-20-column .composant-20-lien:focus-visible {background:var(--tooltip-color);color:#fff}
.page-template-page-contact main .page-contact .page-contact-right .page-contact-right-column-contact .page-contact-right-column-contact-lien:focus-visible {color:#fff;background:var(--tooltip-color)}
.page-template-page-contact main .page-contact .page-contact-right .page-contact-recapitulatif .page-contact-recapitulatif-container-bloc .page-contact-recapitulatif-container-bloc-inner .page-contact-recapitulatif-container-bloc-inner-modify:focus-visible {text-decoration:underline}
.search .search-result-btn:focus-visible {background-color:var(--tooltip-color);color:#fff}
.search .tool-pagination .nav-links a:focus-visible {background:var(--tooltip-color);border-color:var(--tooltip-color);color:#fff}
.search .tool-pagination .page-numbers.current:focus-visible {background:rgba(0,0,0,0)}
footer .footer-top .footer-top-blocs .footer-top-bloc .footer-top-blocs-lien:focus-visible {background:var(--tooltip-color);color:#fff}
footer .footer-bottom .footer-bottom-liens-sites a:focus-visible {color:var(--tooltip-color);font-weight:600}
footer .footer-bottom .footer-bottom-blocs-liens .footer-bottom-blocs-liens-solo a:focus-visible {color:var(--tooltip-color)}
footer .footer-mentions .footer-mentions-container a:focus-visible {color:var(--tooltip-color)}
body.page-template-page-contact main .gform_wrapper form .gform_footer input[type=submit]:focus-visible {background:var(--tooltip-color);color:#fff}
body.page-template-page-contact main .gform_wrapper form .gform_fieldset_button_group .custom-button:focus-visible {background:var(--tooltip-color);color:#fff}
.breve--btn:focus-visible, .popup--close:focus-visible {background-color:#003974;color:#fefefe !important}

@media screen and (max-width: 1024px) {
    body.no-menu .composant-01 .composant-01-inner .composant-top-01 .composant-top-01-inner .menu-menu-container-ascenseur:focus-within .menu {display:none}
    body.tablet .composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu .main-menu-options-boutons-mobile a:focus-visible {background:var(--tooltip-color);color:#fff}
    body.tablet .composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu .main-menu-options-boutons-mobile a.actif:focus-visible {background:rgba(0,0,0,0);color:var(--tooltip-color)}
    body.tablet .composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu .menu-menu-container-mobile ul li a:focus-visible {font-weight:600}
    body.tablet .composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu .menu-menu-container-mobile ul li a:focus-within:before {width:100%;height:2px;position:absolute;bottom:0;left:0;content:"";background:#101010}
}

/* --------------------------------------------------------------------------
   Utilitaire - contenu reserve aux technologies d'assistance
   Visible des lecteurs d'ecran, invisible a l'ecran. Redevient visible si
   l'element prend le focus (cas d'un lien).
   -------------------------------------------------------------------------- */
.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.visually-hidden:focus:not(.visually-hidden--toujours) {
    position: static !important;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
}

/* --------------------------------------------------------------------------
   9.1 - Titre unique par page : consequence sur le carrousel
   Le titre de diapositive etait un <h1>, donc le carrousel produisait autant
   de titres de niveau 1 que de diapositives (7 mesures sur / et /entreprise/,
   clones slick compris). Il est passe en <div> dans views/base.twig.

   Sa taille venait de la balise (h1 { font-size: 2.5rem } dans composantsv11)
   et non de la classe : on la restaure ici a l'identique, meme specificite,
   pour que le rendu soit strictement celui d'avant la correction.
   -------------------------------------------------------------------------- */
.composant-01 .composant-01-inner .composant-middle-01-container .composant-middle-01 .composant-middle-01-title {
    font-size: 2.5rem;
}

/* --------------------------------------------------------------------------
   9.1 - Page de resultats de recherche
   Chaque resultat etait un <h1> : la page en comptait 9 pour un seul titre
   reel. Les resultats sont passes en <h2> dans views/templates/search.twig.

   Comme pour le carrousel, la mise en forme venait de la balise <h1> et non
   d'une classe. Valeurs relevees sur /?s=energie avant la correction :
   titre de resultat 40 px / 600 / uppercase / marge basse 16 px, et son lien
   20 px / bold / noir. Elles sont reproduites ici a l'identique.
   -------------------------------------------------------------------------- */
.search .post h2 {
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    margin-top: 0;
    margin-bottom: 16px;
}

.search .post h2 a {
    font-size: 1.25rem;
    color: #000;
    text-decoration: none;
    font-weight: bold;
}


/* --------------------------------------------------------------------------
   12.8 - Ce qui est masque ne doit pas etre atteignable au clavier
   Le menu principal et le bloc de recherche de l'en-tete sont replies par
   height: 0 et overflow: hidden. Cela les cache a l'oeil mais les laisse dans
   l'ordre de tabulation : mesure du 24/08/2026, 13 elements atteignables dans
   le menu ferme et 2 dans la recherche fermee, soit 15 arrets invisibles.

   visibility: hidden retire le sous-arbre du parcours clavier et de l'arbre
   d'accessibilite, sans rien changer a l'apparence.

   L'animation reste correcte sans toucher a la transition d'origine
   (transition: .3s sur ces deux blocs) : quand une des deux valeurs de
   visibility est « visible », elle le reste pendant toute la duree et ne
   bascule qu'a la fin. Le repli se voit donc jusqu'au bout.
   -------------------------------------------------------------------------- */
.composant-01 .composant-01-inner .composant-top-01 .composant-top-01-menu {
    visibility: hidden;
}

.composant-01.menu-actif .composant-01-inner .composant-top-01 .composant-top-01-menu {
    visibility: visible;
}

.composant-01 .composant-01-search.none {
    visibility: hidden;
}


/* --------------------------------------------------------------------------
   3.2 - Contraste des commandes de l'en-tete quand le menu est ouvert
   Les effets de survol d'origine ECLAIRCISSENT le fond de ces deux commandes
   (rgba(255,255,255,.2)) : ils sont concus pour un en-tete pose sur une image
   sombre, ou le libelle est blanc. Leurs equivalents clavier, generes plus
   haut, heritent de cette logique.

   Or, menu ouvert, l'en-tete passe sur fond blanc (background-color: #fff
   !important). Eclaircir encore donnait du blanc sur blanc : le libelle
   « Menu » et l'icone de recherche disparaissaient a la prise de focus.

   On assombrit donc au lieu d'eclaircir dans ce contexte. rgba(0,0,0,.6) sur
   blanc donne environ #666 : le blanc dessus reste au-dessus de 4,5:1.
   -------------------------------------------------------------------------- */
.composant-01.menu-actif .composant-01-inner .composant-top-01 .composant-top-01-inner .composant-top-menu-01:focus-visible,
.composant-01.menu-actif .composant-01-inner .composant-top-01 .composant-top-01-inner .composant-top-search-01:focus-visible {
    background-color: rgba(0, 0, 0, .6);
}
