:root {
    --m-covalia-focus-color: var(--e-global-color-5d3da3f, #0065EA);
    --m-covalia-focus-offset: 4px;
    --wpforms-label-error-color: #aa0b0b !important;
}

/* Focus clavier global, chargé après les règles du thème qui le neutralisent. */
body :where(
    a[href]:not([tabindex="-1"]),
    button:not([disabled]):not([tabindex="-1"]),
    input:not([disabled]):not([type="hidden"]):not([tabindex="-1"]),
    select:not([disabled]):not([tabindex="-1"]),
    textarea:not([disabled]):not([tabindex="-1"]),
    summary,
    [contenteditable="true"],
    [role="button"]:not([tabindex="-1"]),
    [role="link"]:not([tabindex="-1"]),
    [tabindex]:not([tabindex="-1"])
):focus-visible {
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: var(--m-covalia-focus-offset) !important;
}

body :where(
    a.btn,
    button.btn,
    .elementor-swiper-button
):focus-visible::before {
    opacity: 0 !important;
}

/* Utilitaire disponible pour les compléments de nom accessibles. */
.m-covalia-screen-reader-text {
    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;
    clip-path: inset(50%) !important;
    border: 0 !important;
    white-space: nowrap !important;
}

/* Lien d'évitement. */
.m-covalia-skip-link {
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 100000;
    display: inline-block;
    padding: 12px 16px;
    border-radius: 9999px;
    color: #fff !important;
    background-color: #008282;
    box-shadow: 0 4px 12px rgb(0 0 0 / 18%);
    font-family: var(--e-global-typography-e901459-font-family), Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.1429;
    text-decoration: none !important;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(-100% - 24px));
    transition: opacity 150ms ease, transform 150ms ease, background-color 150ms ease;
}

.m-covalia-skip-link:hover {
    color: #fff !important;
    background-color: #005a5a;
}

.m-covalia-skip-link:focus,
.m-covalia-skip-link:focus-visible {
    color: #fff !important;
    background-color: #008282;
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 4px !important;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.admin-bar .m-covalia-skip-link {
    top: 48px;
}

#contenu-principal,
[data-m-covalia-main-content],
[data-m-covalia-original-id],
#faq-telemedecine,
#faq-teleconsultation,
#faq-teleexpertise,
#faq-telesuivi,
#faq-telestaff {
    scroll-margin-top: 120px;
}

/* En-tête collant et sous-menus Elementor historiques. */
.elementor-location-header .elementor-sticky__spacer {
    pointer-events: none !important;
}

.main-header .menu-item-has-children > a.elementor-item[role="button"] {
    cursor: pointer;
}

.main-header .menu-item-has-children > a.elementor-item[role="button"]:focus-visible,
#menuSidebar .menu-item-has-children > a.elementor-item[role="button"]:focus-visible {
    border-radius: 9999px;
    color: var(--e-global-color-primary, #003da5) !important;
    background-color: var(--e-global-color-a140d48, #f1f1f2) !important;
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 4px !important;
}

.elementor-location-header .sub-menu[inert] {
    pointer-events: none !important;
}

/* Navigation mobile : déclencheurs, dialogue et éléments de navigation. */
.burger-menu .elementor-button,
#closeMenuSidebar .elementor-button {
    position: relative;
    z-index: 1;
    border-radius: 8px;
}

.burger-menu .elementor-button:focus-visible,
#closeMenuSidebar .elementor-button:focus-visible,
#menuSidebar a.elementor-item:focus-visible,
#menuSidebar a.elementor-sub-item:focus-visible,
#menuSidebar a.btn:focus-visible {
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 4px !important;
}

#menuSidebar[aria-hidden="true"] {
    pointer-events: none !important;
}

/* Cartes d'ancrage (FAQ et sommaires). */
.elementor-widget:has(> .elementor-widget-container > a > .comp-card-anchor),
.elementor-widget-container:has(> a > .comp-card-anchor) {
    overflow: visible !important;
}

.elementor-widget-container > a:has(> .comp-card-anchor) {
    display: block;
    border-radius: 24px;
}

.elementor-widget-container > a:has(> .comp-card-anchor):focus-visible {
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 4px !important;
}

.elementor-widget-container > a:has(> .comp-card-anchor):focus-visible > .comp-card-anchor {
    background-color: rgb(231 247 246 / 92%);
}

.elementor-widget-container > a:has(> .comp-card-anchor):focus-visible .title-anchor,
.elementor-widget-container > a:has(> .comp-card-anchor):focus-visible .icon-anchor > svg {
    color: #005a5a;
    fill: #005a5a;
}

/* Actualités : le lien superposé reste l'unique arrêt clavier de la carte. */
.item-actu:has(> .e-con-inner > a[data-m-covalia-card-link]:focus-visible) {
    border-radius: 24px;
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 4px !important;
}

.item-actu > .e-con-inner > a[data-m-covalia-card-link]:focus-visible {
    border-radius: 24px;
    outline: none !important;
}

.item-actu:has(> .e-con-inner > a[data-m-covalia-card-link]:focus-visible) .lpsa-button-tertiary .elementor-button-wrapper {
    width: 65px;
}

.item-actu:has(> .e-con-inner > a[data-m-covalia-card-link]:focus-visible) .lpsa-button-tertiary .elementor-button-text {
    width: 25px;
    opacity: 1;
}

.item-actu:has(> .e-con-inner > a[data-m-covalia-card-link]:focus-visible) .lpsa-button-tertiary .elementor-button-icon {
    margin-left: 8px !important;
    color: #0046bc;
}

a[data-m-covalia-duplicate-card-link] {
    pointer-events: none;
}

/* Filtre des actualités. */
.wrapper-filter .e-filter button.e-filter-item:focus-visible {
    border-radius: 9999px;
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 4px !important;
}

/* Carrousels : seules les diapositives réellement visibles restent actives. */
.elementor-swiper-button:focus-visible {
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 4px !important;
}

.elementor-swiper-button:focus-visible::after {
    content: "";
    position: absolute;
    inset: -4px;
    border: 2px solid var(--m-covalia-focus-color);
    border-radius: 9999px;
    pointer-events: none;
}

.swiper-slide[data-m-covalia-slide-visible="true"] > a:focus-visible,
.swiper-slide[data-m-covalia-slide-visible="true"] a[data-elementor-open-lightbox]:focus-visible {
    border-radius: 24px;
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: -4px !important;
}

/* Formulaires WPForms et Contact Form 7. */
body .wpforms-container,
body .wpforms-container-full {
    --wpforms-label-error-color: #aa0b0b !important;
}

body .wpforms-container .m-covalia-required-label,
body div.wpforms-container-full .m-covalia-required-label,
.wpcf7-form .m-covalia-required-label {
    margin-left: 4px;
    color: inherit !important;
    font-weight: 400 !important;
    font-style: italic;
}

.wpcf7-form .m-covalia-visual-required-marker {
    display: none !important;
}

body :where(
    .wpforms-form input:not([type="hidden"]),
    .wpforms-form select,
    .wpforms-form textarea,
    .wpcf7-form input:not([type="hidden"]),
    .wpcf7-form select,
    .wpcf7-form textarea
):focus-visible {
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 2px !important;
}

/* Formulaire de contact WPForms : bouton, consentement et lien CGU. */
body .wpforms-container .wpforms-form .wpforms-submit-container button[type="submit"].wpforms-submit,
body div.wpforms-container-full .wpforms-form .wpforms-submit-container button[type="submit"].wpforms-submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body .wpforms-container .wpforms-form .wpforms-submit-container button[type="submit"].wpforms-submit:focus,
body div.wpforms-container-full .wpforms-form .wpforms-submit-container button[type="submit"].wpforms-submit:focus {
    box-shadow: none !important;
}

body .wpforms-container .wpforms-form .wpforms-submit-container button[type="submit"].wpforms-submit:focus::after,
body div.wpforms-container-full .wpforms-form .wpforms-submit-container button[type="submit"].wpforms-submit:focus::after {
    display: none !important;
    content: none !important;
}

body .wpforms-container .wpforms-form .wpforms-field-checkbox input[type="checkbox"],
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    accent-color: #008282;
    appearance: auto !important;
}

body .wpforms-container .wpforms-form .wpforms-field-checkbox input[type="checkbox"]::before,
body .wpforms-container .wpforms-form .wpforms-field-checkbox input[type="checkbox"]::after,
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox input[type="checkbox"]::before,
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox input[type="checkbox"]::after {
    display: none !important;
    content: none !important;
}

body .wpforms-container .wpforms-form .wpforms-field-checkbox input[type="checkbox"]:focus,
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox input[type="checkbox"]:focus {
    box-shadow: none !important;
}

body .wpforms-container .wpforms-form .wpforms-field-checkbox input[type="checkbox"]:focus-visible,
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox input[type="checkbox"]:focus-visible {
    outline: 2px solid var(--m-covalia-focus-color) !important;
    outline-offset: 2px !important;
}

body .wpforms-container .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a,
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a {
    font-size: inherit !important;
    line-height: inherit !important;
}

body .wpforms-container .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a:hover,
body .wpforms-container .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a:focus-visible,
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a:hover,
body div.wpforms-container-full .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a:focus-visible {
    color: #008282 !important;
    font-size: inherit !important;
    font-weight: 700 !important;
}

[data-m-covalia-static-label] {
    cursor: default !important;
}

@media (max-width: 782px) {
    .admin-bar .m-covalia-skip-link {
        top: 62px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html:focus-within {
        scroll-behavior: auto !important;
    }

    .m-covalia-skip-link,
    .item-actu,
    .comp-card-anchor,
    .lpsa-button-tertiary .elementor-button-wrapper,
    .lpsa-button-tertiary .elementor-button-text,
    .lpsa-button-tertiary .elementor-button-icon {
        transition: none !important;
    }
}

@media (forced-colors: active) {
    body :where(
        a[href]:not([tabindex="-1"]),
        button:not([disabled]):not([tabindex="-1"]),
        input:not([disabled]):not([type="hidden"]):not([tabindex="-1"]),
        select:not([disabled]):not([tabindex="-1"]),
        textarea:not([disabled]):not([tabindex="-1"]),
        [role="button"]:not([tabindex="-1"]),
        [tabindex]:not([tabindex="-1"])
    ):focus-visible {
        outline-color: Highlight !important;
    }
}
