/*
Theme Name: Energia Child
Theme URI: https://demo.farost.net/energia/
Author: Farost
Author URI: http://themeforest.net/user/farost
Description: Energia Child Theme for eConcept System
Version: 1.1.5
License: ThemeForest
License URI: https://themeforest.net/licenses
Text Domain: energia-child
Template:     energia
Tags: clean, creative, customizer, ecology, energy, green, modern, natural, organic, portfolio, recycling, renewable energy, solar, Solar Panels, Wind Turbines
*/

/* ===== Logo EC2S ===== */
.header-logo img,
.site-header .logo img,
.navbar-brand img,
header .logo img,
.header-default .logo img,
.logo-default img,
.logo-dark img,
.logo-light img {
    max-width: 350px;
    max-height: 70px;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: contrast(1.15) saturate(1.2);
}

.header-logo,
.navbar-brand,
header .logo,
.logo-default,
.logo-dark,
.logo-light {
    max-width: 360px;
    display: flex;
    align-items: center;
}

/* ===== Mobile : logo aligne a gauche ===== */
@media (max-width: 991px) {
    .header-logo img,
    .site-header .logo img,
    .navbar-brand img,
    header .logo img,
    .logo-default img,
    .logo-dark img,
    .logo-light img {
        max-width: 250px;
        max-height: 50px;
    }

    .header-logo,
    .navbar-brand,
    header .logo,
    .logo-default,
    .logo-dark,
    .logo-light {
        margin-left: 0;
        margin-right: auto;
        justify-content: flex-start;
    }
}

@media (max-width: 576px) {
    .header-logo img,
    .site-header .logo img,
    .navbar-brand img,
    header .logo img,
    .logo-default img,
    .logo-dark img,
    .logo-light img {
        max-width: 200px;
        max-height: 45px;
    }
}


/* ===== One-page smooth scroll ===== */
html {
    scroll-behavior: smooth;
}

/* Offset for fixed header */
section[id] {
    scroll-margin-top: 80px;
}

/* ===== Cartes services hauteur identique ===== */

/* 4 petites cartes (fancy box carousel) */
.cms-fancy-box-carousel .cms-slick-carousel .slick-track {
    display: flex !important;
}
.cms-fancy-box-carousel .carousel-item {
    display: flex;
    height: auto !important;
}
.cms-fancy-box-carousel .carousel-item-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}
.cms-fancy-box-carousel .item-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.cms-fancy-box-carousel .item-description {
    flex: 1;
}
.cms-fancy-box-carousel .item-button {
    margin-top: auto;
}

/* 3 grandes cartes (service carousel) */
.cms-service-carousel .cms-slick-carousel .slick-track {
    display: flex !important;
}
.cms-service-carousel .carousel-item {
    display: flex;
    height: auto !important;
}
.cms-service-carousel .grid-item-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}
.cms-service-carousel .entry-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.cms-service-carousel .entry-content {
    flex: 1;
}
.cms-service-carousel .entry-readmore {
    margin-top: auto;
}

/* ===== Section Introduction - Image CLEM ===== */



/* Espace entre slider et section intro */
.elementor-element-25c0ebf3 {
    margin-top: 60px !important;
}

/* Image intro CLEM - coins arrondis */
.elementor-element-715e4f44 .elementor-widget-image img {
    border-radius: 12px !important;
}
.elementor-element-715e4f44 {
    position: relative !important;
}

/* Compteur superpose a mi-hauteur */
.elementor-element-715e4f44 > .elementor-element-populated > .elementor-element-29e09f2a {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    left: 0 !important;
    z-index: 10 !important;
    width: auto !important;
    max-width: 340px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.elementor-element-29e09f2a > .elementor-container {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Inner column = bandeau vert, icone a gauche, compteur a droite */
.elementor-element-715e4f44 .elementor-element-29249817 > .elementor-element-populated {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: nowrap !important;
    background: #2BA349 !important;
    border-radius: 0 12px 12px 0 !important;
    padding: 14px 20px !important;
    box-shadow: 4px 4px 15px rgba(0,0,0,0.15) !important;
}


/* Force colonne compteur a 100% — ecrase le 35% Elementor compile */
.elementor-element-29249817 {
    width: 100% !important;
}

/* Icone widget - flex inline */
.elementor-element-715e4f44 .elementor-element-29249817 .elementor-widget-icon {
    flex-shrink: 0 !important;
    width: auto !important;
}

.elementor-element-715e4f44 .elementor-icon-wrapper .elementor-icon svg {
    fill: #ffffff !important;
    width: 48px !important;
    height: 48px !important;
}

/* Image compteur Pionniers (remplace icone SVG) */
.elementor-element-715e4f44 .counter-icon-img img {
    width: 80px !important;
    height: 80px !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
}


/* Compteur widget - flex inline */
.elementor-element-715e4f44 .elementor-element-29249817 .elementor-widget-cms_counter {
    flex: 1 !important;
    width: auto !important;
}

/* FORCER 48 et Mois sur la meme ligne */
.elementor-element-715e4f44 .cms-counter-text .cms-counter-number-wrapper {
    display: inline-block !important;
    font-size: 28px !important;
    margin-bottom: 0 !important;
    vertical-align: middle !important;
}

.elementor-element-715e4f44 .cms-counter-text .elementor-counter-number {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    line-height: 1 !important;
}

.elementor-element-715e4f44 .cms-counter-text .cms-counter-title {
    display: inline-block !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    line-height: 1 !important;
    margin: 0 !important;
    vertical-align: middle !important;
}

/* Sous-titre sur sa propre ligne */
.elementor-element-715e4f44 .cms-counter-text .counter-subtitle {
    display: block !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    color: rgba(255,255,255,0.9) !important;
    margin-top: 4px !important;
    line-height: 1.3 !important;
}

/* Mobile */
@media (max-width: 767px) {
    .elementor-element-715e4f44,
    .elementor-element-715e4f44 > .elementor-element-populated {
        min-width: auto;
        min-height: 400px;
    }
    .elementor-element-715e4f44 > .elementor-element-populated > .elementor-element-29e09f2a {
        max-width: 200px !important;
    }
    .elementor-element-715e4f44 .elementor-element-29249817 > .elementor-element-populated {
        padding: 10px 14px !important;
        gap: 8px !important;
    }
    .elementor-element-715e4f44 .cms-counter-text .elementor-counter-number,
    .elementor-element-715e4f44 .cms-counter-text .cms-counter-title {
        font-size: 22px !important;
    }
    .elementor-element-715e4f44 .cms-counter-text .counter-subtitle {
        font-size: 11px !important;
    }
}

/* Tag "Solution complete pour residences collectives" */
.elementor-element-274248e9 {
    margin-bottom: 5px !important;
}
.elementor-element-274248e9 .elementor-widget-container {
    padding: 0 !important;
    line-height: 1.4 !important;
}
.elementor-element-274248e9 p {
    margin: 0 !important;
    padding: 0 !important;
}

/* ===== Section Martinique - Colonne droite (texte sur fond sombre) ===== */

/* Tout le texte en blanc */
.elementor-element-30e32540 .elementor-widget-cms_heading .cms-custom-heading,
.elementor-element-30e32540 .elementor-widget-cms_heading .heading-tag {
    color: #ffffff !important;
}

/* Sur-titre CLEM en vert clair */
.elementor-element-30e32540 .elementor-widget-cms_heading .cms-heading-subheading,
.elementor-element-30e32540 .elementor-widget-cms_heading .sub-heading {
    color: #7dcea0 !important;
}

/* Paragraphes et texte editeur */
.elementor-element-30e32540 .elementor-widget-text-editor,
.elementor-element-30e32540 .elementor-widget-text-editor p,
.elementor-element-30e32540 .elementor-widget-text-editor span {
    color: rgba(255,255,255,0.85) !important;
}

/* Icon-list : texte des enumerations */
.elementor-element-30e32540 .elementor-widget-icon-list .elementor-icon-list-text,
.elementor-element-30e32540 .elementor-widget-icon-list .elementor-icon-list-item,
.elementor-element-30e32540 .elementor-icon-list-text {
    color: #ffffff !important;
}

/* Icon-list : icones coches */
.elementor-element-30e32540 .elementor-widget-icon-list .elementor-icon-list-icon i,
.elementor-element-30e32540 .elementor-widget-icon-list .elementor-icon-list-icon svg {
    color: #2BA349 !important;
    fill: #2BA349 !important;
}

/* Bouton En savoir plus */
.elementor-element-30e32540 .elementor-widget-cms_button .btn,
.elementor-element-30e32540 .elementor-widget-cms_button .cms-btn,
.elementor-element-30e32540 .elementor-widget-cms_button .elementor-button,
.elementor-element-30e32540 .elementor-widget-cms_button a {
    background: #2BA349 !important;
    color: #ffffff !important;
    border-color: #2BA349 !important;
    border-radius: 6px !important;
    padding: 12px 28px !important;
}

.elementor-element-30e32540 .elementor-widget-cms_button .btn:hover,
.elementor-element-30e32540 .elementor-widget-cms_button .cms-btn:hover,
.elementor-element-30e32540 .elementor-widget-cms_button a:hover {
    background: #239b3e !important;
    border-color: #239b3e !important;
}

/* Z-index pour eviter chevauchement */
.elementor-element-30e32540 {
    position: relative !important;
    z-index: 5 !important;
}

/* Section #253745 - empecher chevauchement */
.elementor-element-7920335 {
    margin-top: 0 !important;
}

.elementor-element-e6c7ad9 {
    margin-top: 0 !important;
    position: relative !important;
    top: 0 !important;
}




/* ===== Section Contact - carte et formulaire ===== */

/* Réduire espace entre colonnes */
.elementor-element-7c338f2a > .elementor-container {
    gap: 15px !important;
    display: flex !important;
    align-items: stretch !important;
}
.elementor-element-7c338f2a .elementor-column-gap-default > .elementor-column > .elementor-element-populated {
    padding: 0 8px !important;
}

/* Carte et formulaire même hauteur */
.elementor-element-7c338f2a .elementor-column {
    display: flex !important;
    flex-direction: column !important;
}
.elementor-element-7c338f2a .elementor-widget-wrap,
.elementor-element-7c338f2a .elementor-element-populated {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
.elementor-element-7c338f2a .elementor-widget-html {
    flex: 1 !important;
}
.elementor-element-7c338f2a iframe {
    height: 100% !important;
    min-height: 450px !important;
}

/* Texte sous le formulaire visible */
.elementor-element-2a481d97 .elementor-widget-text-editor:last-child .elementor-widget-container {
    color: #666666 !important;
    font-size: 13px !important;
    padding-top: 10px !important;
}

/* ===== Masquer les boutons En savoir plus des cartes services ===== */
.cms-service-carousel .service-readmore,
.cms-fancy-box-carousel .item-button {
    display: none !important;
}




/* Puces icones alignees en haut */
.elementor-icon-list-items .elementor-icon-list-item,
.elementor-widget-icon-list .elementor-icon-list-item {
    align-items: flex-start !important;
}
.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-icon,
.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-icon {
    align-self: flex-start !important;
    margin-top: 4px !important;
}
.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text,
.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-text {
    align-self: flex-start !important;
}

/* Supprimer espace entre section contact et footer */
.elementor-element-7c338f2a {
    margin-bottom: 0 !important;
    padding-bottom: 20px !important;
}
footer, .site-footer, .site-footer-custom, .footer-default, #colophon {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.page-id-12 #content,
.page-id-12 .site-content,
.page-id-12 .entry-content,
.page-id-12 #primary,
.page-id-12 .content-area {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
.page-id-12 article {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Espace entre carte et formulaire */
.elementor-element-7c338f2a .elementor-column:first-child > .elementor-element-populated {
    padding-right: 15px !important;
}
.elementor-element-7c338f2a .elementor-column:last-child > .elementor-element-populated {
    padding-left: 15px !important;
}

/* ===== Slider Revolution - boutons cliquables ===== */

/* Layers decoratifs ne capturent pas les clics */
#SR7_3_1-4-11, #SR7_3_1-4-17, #SR7_3_1-4-18, #SR7_3_1-4-19,
#SR7_3_1-5-11, #SR7_3_1-5-17, #SR7_3_1-5-18, #SR7_3_1-5-19 {
    pointer-events: none !important;
}

/* Boutons du slider toujours cliquables */
#SR7_3_1-4-4, #SR7_3_1-5-4 {
    pointer-events: auto !important;
    z-index: 20 !important;
    position: relative !important;
}

/* Icone recherche - remplacer par loupe SVG */
.h-btn-search .far.fa-search::before {
    content: "" !important;
    display: inline-block;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143852' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    font-size: 0 !important;
    vertical-align: middle;
}

/* Sélecteur de langue TranslatePress — visible */

/* Image popup marqueurs carte - inverser en blanc */
.cms-image-pointers .item-pointer .border-1 img,
.cms-image-pointers .item-pointer .customer-image img {
    filter: brightness(0) invert(1) !important;
}

/* Formulaire devis - fond blanc */
.elementor-element-7c338f2a .elementor-widget-cms_ctf7 .elementor-widget-container,
.elementor-element-7c338f2a .wpcf7 {
    background: #FFFFFF !important;
    border-radius: 12px !important;
    padding: 30px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
}


/* Coloriser images PNG cartes fancy box carousel en vert #2BA349 */
.elementor-element-baeb649 .item-icon img {
    width: 60px !important;
    height: 60px !important;
    object-fit: contain !important;
}
/* Motorisation : icon-gate-green.png agrandi 1.5x */
.elementor-element-baeb649 .item-icon img[src*="icon-gate-green"] {
    width: 180px !important;
    height: 180px !important;
}

/* Alignement puces cards service carousel */
.item-feature li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin-bottom: 6px !important;
}
.item-feature li i {
    flex-shrink: 0 !important;
    margin-top: 3px !important;
}

/* Positionnement pointeurs carte Martinique — nouveaux pointeurs */
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_car.item-pointer { top: 32.3%; left: 3.7%; }
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_stp.item-pointer { top: 23.2%; left: 4.7%; }
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_bpo.item-pointer { top: 1.2%;  left: 20.7%; }
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_lor.item-pointer { top: 6.4%; left: 31.4%; }
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_tri.item-pointer { top: 24.3%; left: 53.2%; }
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_fra.item-pointer { top: 38%; left: 62.6%; }
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_vau.item-pointer { top: 52%; left: 71.8%; }
.elementor-element-2f0c5da8 .elementor-repeater-item-mk_mar.item-pointer { top: 81%; left: 78.6%; }

/* Label commune sur .item-pointer::after (résiste au hover) */
.cms-image-pointers.layout3 .item-pointer::after {
    content: attr(data-title);
    position: absolute;
    top: 50%;
    left: 125px;
    transform: translateY(-50%);
    background-color: #6C599B;
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    padding: 3px 8px;
    border-radius: 4px;
    opacity: 0;
    pointer-events: none;
    z-index: 999;
    transition: none;
}
/* holder-left : label à gauche */
.cms-image-pointers.layout3 .item-pointer.holder-left::after {
    left: auto;
    right: 125px;
}
/* Affiche le label au hover */
.cms-image-pointers.layout3 .item-pointer:hover::after {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Image QR code + flèche sur même ligne */
.elementor-element-b6c6d > .elementor-widget-wrap {
    display: flex !important;
    flex-wrap: wrap !important;
}
.elementor-element-35d79674 {
    width: auto !important;
    margin-top: 16px !important;
}
.elementor-element-35d79675 {
    width: auto !important;
    margin-top: 16px !important;
    margin-left: 12px !important;
    display: flex !important;
    align-items: center !important;
}
.rfid-qr-icon img {
    width: 60px !important;
    height: 60px !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
}
.rfid-arrow .elementor-icon {
    color: #ffffff !important;
}

/* Fond hero-residence.jpg pendant chargement slider Revolution */
.elementor-element-f18e296 {
    background-image: url("https://econcept-system.fr/wp-content/uploads/2026/03/hero-residence.jpg") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    min-height: 600px !important;
}


/* Sélecteur de langue — adaptation thème EC2S */
.cms-language-switcher {
    margin-right: 15px !important;
    display: flex !important;
    align-items: center !important;
}
.header-top-right {
    display: flex !important;
    align-items: center !important;
}
/* Texte langue blanc comme template démo */
.cms-language-switcher .trp-language-item-name,
.cms-language-switcher .trp-language-item a,
.cms-language-switcher a {
    color: #ffffff !important;
}
.cms-language-switcher .trp-language-switcher {
    color: #ffffff !important;
}
/* Dropdown fond blanc texte sombre */
.cms-language-switcher .trp-switcher-dropdown-list {
    background: #ffffff !important;
}
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item-name,
.cms-language-switcher .trp-switcher-dropdown-list a {
    color: #333333 !important;
}
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item:hover a,
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item:hover .trp-language-item-name {
    color: #32C36C !important;
}
/* Masque floater */
.trp-floating-switcher {
    display: none !important;
}

/* Cache l item actif dans le dropdown TranslatePress */
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item__current,
.cms-language-switcher .trp-switcher-dropdown-list [aria-current="true"],
.cms-language-switcher .trp-switcher-dropdown-list .trp-current-language {
    display: none !important;
}

/* Dropdown langue — passe au-dessus du header */
.header-top-right {
    position: relative !important;
    z-index: 999999 !important;
}
.cms-language-switcher .trp-switcher-dropdown-list {
    z-index: 999999 !important;
}

/* Sélecteur langue — rendu identique template démo Energia */
.cms-language-switcher .trp-language-switcher {
    background-color: transparent !important;
    border: none !important;
}
.cms-language-switcher .trp-language-item__current,
.cms-language-switcher .trp-language-item__current a {
    background-color: #253745 !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 4px 8px !important;
    cursor: pointer !important;
}
.cms-language-switcher .trp-language-item__current .trp-language-item-name {
    display: inline !important;
    color: #ffffff !important;
    font-size: 13px !important;
}
.cms-language-switcher .trp-language-item__current .trp-flag-image {
    width: 34px !important;
    height: 24px !important;
}
/* Dropdown : fond blanc, texte sombre */
.cms-language-switcher .trp-switcher-dropdown-list {
    background: #ffffff !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 130px !important;
    padding: 4px 0 !important;
}
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item a,
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item-name {
    color: #333333 !important;
    font-size: 13px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 12px !important;
}
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item:hover a,
.cms-language-switcher .trp-switcher-dropdown-list .trp-language-item:hover .trp-language-item-name {
    color: #32C36C !important;
}
.cms-language-switcher .trp-switcher-dropdown-list .trp-flag-image {
    width: 34px !important;
    height: 24px !important;
}

/* Flèche après nom langue actif */
.cms-language-switcher .trp-language-item__current::after {
    content: "\25BE" !important;
    color: #ffffff !important;
    font-size: 12px !important;
    margin-left: 4px !important;
    display: inline-block !important;
}
/* Drapeaux 34x24px partout */
.cms-language-switcher .trp-flag-image {
    width: 34px !important;
    height: 24px !important;
    object-fit: cover !important;
}

/* Centrage vertical sélecteur dans header-top-right */
.header-top-right .cms-language-switcher {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
}

/* Centrage vertical sélecteur langue v2 */
.site-header-top .header-top-right {
    height: 60px !important;
    display: flex !important;
    align-items: center !important;
}
.site-header-top .header-top-right .cms-language-switcher {
    height: auto !important;
    line-height: normal !important;
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
}
.site-header-top .header-top-right .cms-language-switcher * {
    line-height: normal !important;
}

/* ===== Bouton Se connecter / Login header ===== */
.header-login-btn {
    display: flex !important;
    align-items: center !important;
    height: 60px !important;
    margin-left: 20px !important;
}
.header-login-btn .login-link {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: opacity 0.2s ease !important;
}
.header-login-btn .login-link:hover {
    opacity: 1 !important;
}
.header-login-btn .login-link:hover .login-icon {
    filter: invert(49%) sepia(53%) saturate(450%) hue-rotate(95deg) brightness(88%) contrast(95%) !important;
}
.header-login-btn .login-link:hover .login-text {
    color: #32C36C !important;
}
.header-login-btn .login-icon {
    width: 34px !important;
    height: 34px !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
}
.header-login-btn .login-text {
    color: #ffffff !important;
    white-space: nowrap !important;
}
@media (max-width: 991px) {
    .header-login-btn {
        height: auto !important;
        margin-left: 10px !important;
    }
    .header-login-btn .login-text {
        display: none !important;
    }
    .header-login-btn .login-icon {
        width: 18px !important;
        height: 18px !important;
    }
}

/* ── Menu utilisateur avatar ──────────────────────────────────── */
.header-login-btn .ecs-user-menu {
    position: relative;
    display: flex !important;
    align-items: center;
}
.header-login-btn .ecs-user-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #32C36C;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    letter-spacing: 0.5px;
    transition: opacity 0.2s;
    user-select: none;
}
.header-login-btn .ecs-user-menu:hover .ecs-user-avatar {
    opacity: 0.85;
}
.header-login-btn .ecs-user-dropdown {
    display: block;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 100%;
    right: 0;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    min-width: 200px;
    z-index: 9999;
    padding: 14px 0 6px;
    transition: opacity 0.2s ease, visibility 0s linear 0.3s;
}
.header-login-btn .ecs-user-menu:hover .ecs-user-dropdown {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.2s ease, visibility 0s linear 0s;
}
.header-login-btn .ecs-user-dropdown-name {
    padding: 0 16px 10px;
    font-size: 13px;
    font-weight: 700;
    color: #253745;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.header-login-btn .ecs-user-dropdown-sep {
    height: 1px;
    background: #eee;
    margin: 4px 0;
}
.header-login-btn .ecs-user-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    font-size: 13px;
    color: #253745;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
}
.header-login-btn .ecs-user-dropdown-item:hover {
    background: #f0faf4;
    color: #32C36C;
}
.header-login-btn .ecs-user-dropdown-item:hover svg {
    stroke: #32C36C;
}
.header-login-btn .ecs-user-dropdown-item--danger {
    color: #e74c3c;
}
.header-login-btn .ecs-user-dropdown-item--danger svg {
    stroke: #e74c3c;
}
.header-login-btn .ecs-user-dropdown-item--danger:hover {
    background: #fff5f5;
    color: #e74c3c;
}
@media (max-width: 991px) {
    .header-login-btn .ecs-user-avatar {
        width: 28px;
        height: 28px;
        font-size: 11px;
    }
}

/* Section contact — sur-titre et sous-titre en blanc */
.elementor-element-7c338f2a .custom-subheading,
.elementor-element-7c338f2a .cms-sub-heading {
    color: #ffffff !important;
    opacity: 1 !important;
    filter: none !important;
}
.elementor-element-7c338f2a .elementor-widget-text-editor p,
.elementor-element-7c338f2a .elementor-widget-text-editor {
    color: #ffffff !important;
    opacity: 1 !important;
}


/* ===== Formulaire inscription eCONCEPT SYSTEM ===== */
.ecs-register-wrapper {
    background: #ffffff;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}
.ecs-register-cols {
    display: flex;
    gap: 32px;
    align-items: flex-start;
}
.ecs-oauth-col {
    flex: 0 0 32%;
    max-width: 32%;
}
.ecs-oauth-title {
    font-size: 14px;
    font-weight: 600;
    color: #253745;
    margin-bottom: 16px;
    text-align: center;
}
.ecs-oauth-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 16px;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    margin-bottom: 10px;
    transition: opacity 0.2s;
    color: #ffffff;
}
.ecs-oauth-btn:hover { opacity: 0.85; }
.ecs-oauth-btn img { width: 32px !important; height: 32px !important; }
.ecs-google   { background: #4285F4; }
.ecs-facebook { background: #1877F2; }
.ecs-linkedin { background: #0A66C2; }
.ecs-apple    { background: #000000; }
.ecs-separator {
    display: flex;
    align-items: center;
    margin: 20px 0 0;
    color: #999;
    font-size: 12px;
}
.ecs-separator::before,
.ecs-separator::after {
    content: "";
    flex: 1;
    border-top: 1px solid #e0e0e0;
}
.ecs-separator span { padding: 0 10px; }
.ecs-form-col {
    flex: 1;
}
.ecs-form-row {
    display: flex;
    gap: 16px;
    margin-bottom: 14px;
}
.ecs-form-group {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.ecs-full-width {
    width: 100%;
    margin-bottom: 14px;
}
.ecs-full-width:has(.ecs-tel-wrapper) {
    width: calc(50% - 8px) !important;
    max-width: calc(50% - 8px) !important;
}
.ecs-form-group label {
    font-size: 12px;
    font-weight: 600;
    color: #253745;
    margin-bottom: 4px;
}
.ecs-form-group input,
.ecs-form-group select {
    padding: 9px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 13px;
    color: #333;
    transition: border-color 0.2s;
    background: #ffffff;
}
.ecs-form-group input:focus,
.ecs-form-group select:focus {
    outline: none;
    border-color: #32C36C;
}
.ecs-submit-btn {
    width: 100%;
    padding: 12px;
    background: #32C36C;
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    margin-top: 8px;
}
.ecs-submit-btn:hover { background: #28a85c; }
.ecs-submit-btn:disabled { background: #aaa; cursor: not-allowed; }
.ecs-login-link {
    text-align: center;
    font-size: 12px;
    color: #666;
    margin-top: 12px;
}
.ecs-login-link a { color: #32C36C; }
@media (max-width: 768px) {
    .ecs-register-cols { flex-direction: column; }
    .ecs-oauth-col { flex: 0 0 100%; max-width: 100%; }
    .ecs-form-row { flex-direction: column; }
    .ecs-register-wrapper { padding: 20px; }
}

/* Fix bouton Google OAuth */
.ecs-oauth-col #g_id_onload,
.ecs-oauth-col .g_id_signin {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 10px !important;
}
.ecs-oauth-col .g_id_signin > div {
    width: 100% !important;
}

/* === Corrections formulaire inscription === */

/* Bouton Google visible + espacement */
.ecs-oauth-col iframe,
.ecs-oauth-col .g_id_signin iframe {
    width: 100% !important;
    min-width: 200px !important;
}
.ecs-oauth-col .g_id_signin {
    width: 100% !important;
    margin-bottom: 12px !important;
    display: block !important;
    overflow: visible !important;
}

/* Espacement entre boutons OAuth */
.ecs-oauth-col .ecs-oauth-btn {
    margin-bottom: 12px !important;
}
.ecs-oauth-col .g_id_signin + .ecs-oauth-btn {
    margin-top: 12px !important;
}

/* Fonts plus grandes */
.ecs-form-group label {
    font-size: 14px !important;
}
.ecs-form-group input,
.ecs-form-group select {
    padding: 11px 14px !important;
}
.ecs-oauth-btn {
    font-size: 14px !important;
    padding: 12px 16px !important;
}
.ecs-oauth-title {
    font-size: 16px !important;
    font-weight: 700 !important;
}
.ecs-submit-btn {
    font-size: 16px !important;
    padding: 14px !important;
}
.ecs-login-link {
    font-size: 14px !important;
}
.ecs-form-hint {
    font-size: 13px !important;
}

/* Labels couleur */
.ecs-form-group label[for],
.ecs-form-group label {
    color: #253745 !important;
}
.ecs-form-group label::after {
    content: "";
}

/* Uniformise bouton Google avec les autres OAuth */
.ecs-oauth-col .g_id_signin {
    margin-bottom: 12px !important;
}
.ecs-oauth-col .g_id_signin > div > div {
    width: 100% !important;
}
/* Force hauteur et style identiques aux autres boutons */
.ecs-oauth-col .g_id_signin iframe {
    height: 46px !important;
    width: 100% !important;
    min-width: unset !important;
}
/* Séparateur visuel entre Google et Facebook */
.ecs-oauth-col .g_id_signin + .ecs-oauth-btn {
    margin-top: 4px !important;
}

/* OTP Email verification */
.ecs-step-title {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #253745 !important;
    margin-bottom: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}
.ecs-email-verify-row {
    display: flex !important;
    gap: 10px !important;
    align-items: flex-end !important;
}
.ecs-email-verify-row .ecs-form-group {
    flex: 1 !important;
}
.ecs-verify-btn {
    flex-shrink: 0 !important;
    padding: 11px 18px !important;
    background: #253745 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
    white-space: nowrap !important;
}
.ecs-verify-btn:hover { background: #32C36C !important; }
.ecs-verify-btn:disabled { background: #aaa !important; cursor: not-allowed !important; }
#ecs-step-form { margin-top: 16px !important; }

/* OTP 6 cases séparées */
.ecs-otp-boxes {
    display: flex !important;
    gap: 10px !important;
    justify-content: flex-start !important;
    margin-top: 8px !important;
}
.ecs-otp-box {
    width: 52px !important;
    height: 60px !important;
    text-align: center !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    color: #253745 !important;
    border: 2px solid #ddd !important;
    border-radius: 10px !important;
    background: #f9f9f9 !important;
    outline: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    padding: 0 !important;
}
.ecs-otp-box:focus {
    border-color: #32C36C !important;
    box-shadow: 0 0 0 3px rgba(50,195,108,0.15) !important;
    background: #ffffff !important;
}
.ecs-otp-box:not(:placeholder-shown) {
    border-color: #32C36C !important;
    background: #ffffff !important;
}

/* Bouton Valider OTP — même taille que Renvoyer */
#ecs-verify-otp-btn {
    width: auto !important;
    display: inline-block !important;
    padding: 11px 18px !important;
    margin-top: 8px !important;
}

/* ===== Mot de passe — force + règles + œil ===== */
.ecs-pwd-wrapper {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}
.ecs-pwd-wrapper input {
    flex: 1 !important;
    padding-right: 44px !important;
}
.ecs-pwd-toggle {
    position: absolute !important;
    right: 10px !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    padding: 4px !important;
    display: flex !important;
    align-items: center !important;
}
.ecs-pwd-toggle:hover svg { stroke: #32C36C !important; }
.ecs-pwd-strength {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-top: 6px !important;
}
.ecs-strength-bar {
    flex: 1 !important;
    height: 5px !important;
    background: #e0e0e0 !important;
    border-radius: 3px !important;
    overflow: hidden !important;
}
.ecs-strength-fill {
    height: 100% !important;
    width: 0% !important;
    border-radius: 3px !important;
    transition: width 0.3s, background 0.3s !important;
}
.ecs-strength-label {
    font-size: 11px !important;
    font-weight: 600 !important;
    min-width: 55px !important;
}
.ecs-pwd-rules {
    list-style: none !important;
    padding: 0 !important;
    margin: 8px 0 0 !important;
}
.ecs-pwd-rules li {
    font-size: 11px !important;
    color: #999 !important;
    margin-bottom: 3px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: color 0.2s !important;
}
.ecs-pwd-rules .rule-icon {
    font-size: 12px !important;
    font-weight: 700 !important;
    width: 14px !important;
}
.ecs-pwd2-status {
    font-size: 11px !important;
    margin-top: 6px !important;
    font-weight: 600 !important;
    min-height: 16px !important;
}

/* Fix barre force mot de passe — force rendu visible */
div#ecs-strength-fill,
.ecs-strength-bar .ecs-strength-fill,
.ecs-strength-fill {
    display: block !important;
    min-height: 5px !important;
    height: 5px !important;
    border-radius: 3px !important;
    transition: width 0.3s ease, background-color 0.3s ease !important;
}
.ecs-strength-bar {
    display: block !important;
    width: 100% !important;
    height: 5px !important;
    background: #e0e0e0 !important;
    border-radius: 3px !important;
    overflow: visible !important;
    position: relative !important;
}
.ecs-pwd-strength {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-top: 6px !important;
    width: 100% !important;
}

/* Bouton générer mot de passe */
.ecs-gen-pwd-btn {
    background: none !important;
    border: 1px dashed #32C36C !important;
    color: #32C36C !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 6px 12px !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin-top: 8px !important;
    transition: all 0.2s !important;
}
.ecs-gen-pwd-btn:hover {
    background: #32C36C !important;
    color: #ffffff !important;
}
.ecs-gen-pwd-btn svg {
    stroke: currentColor !important;
}

/* ===== Téléphone international ===== */
.ecs-tel-wrapper {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    overflow: visible !important;
    position: relative !important;
    width: 100% !important;
}
.ecs-tel-wrapper:focus-within {
    border-color: #32C36C !important;
}
.ecs-country-select {
    position: relative !important;
    flex-shrink: 0 !important;
}
.ecs-country-trigger {
    display: flex !important;
    align-items: center !important;
    align-self: stretch !important;
    gap: 6px !important;
    padding: 0 10px !important;
    cursor: pointer !important;
    border-right: 1px solid #ddd !important;
    background: transparent !important;
    border-radius: 6px 0 0 6px !important;
    min-width: 90px !important;
    user-select: none !important;
}
.ecs-country-trigger:hover {
    background: rgba(0,0,0,0.04) !important;
}
.ecs-country-flag {
    font-size: 22px !important;
}
.ecs-country-code {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #253745 !important;
}
.ecs-country-dropdown {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    z-index: 999999 !important;
    background: #ffffff !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
    width: 260px !important;
    max-height: 300px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
.ecs-country-search {
    padding: 8px 12px !important;
    border: none !important;
    border-bottom: 1px solid #eee !important;
    font-size: 14px !important;
    outline: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.ecs-country-list {
    overflow-y: auto !important;
    max-height: 250px !important;
}
.ecs-country-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 12px !important;
    cursor: pointer !important;
    font-size: 14px !important;
    transition: background 0.15s !important;
}
.ecs-country-item:hover {
    background: #f5f5f5 !important;
}
.ecs-ci-name {
    flex: 1 !important;
    color: #333 !important;
}
.ecs-ci-dial {
    color: #999 !important;
    font-size: 12px !important;
}
.ecs-tel-wrapper input[type="tel"] {
    flex: 1 !important;
    min-width: 0 !important;
    border: none !important;
    border-radius: 0 6px 6px 0 !important;
    padding: 11px 12px !important;
    outline: none !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
}

/* Fix dropdown pays — caché par défaut */
.ecs-country-dropdown {
    display: none !important;
}
.ecs-country-dropdown.ecs-open {
    display: flex !important;
}

/* ===== Formulaire contact section ===== */
.ecs-contact-wrapper {
    width: 100% !important;
}
#ecs-contact-form input[type="text"],
#ecs-contact-form input[type="email"],
#ecs-contact-form textarea {
    background: #ffffff !important;
    color: #333333 !important;
    border: 1px solid #dddddd !important;
    border-radius: 6px !important;
    padding: 9px 12px !important;
    font-size: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    display: block !important;
}
#ecs-contact-form input[type="text"]:focus,
#ecs-contact-form input[type="email"]:focus,
#ecs-contact-form textarea:focus {
    outline: none !important;
    border-color: #32C36C !important;
    box-shadow: 0 0 0 2px rgba(50,195,108,0.15) !important;
}
.ecs-contact-wrapper label {
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    margin-bottom: 5px !important;
    display: block !important;
}
.ecs-contact-wrapper .ecs-form-row {
    display: flex !important;
    gap: 16px !important;
    margin-bottom: 14px !important;
}
.ecs-contact-wrapper .ecs-form-group {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    margin-bottom: 14px !important;
}
.ecs-contact-wrapper .ecs-full-width {
    width: 100% !important;
    max-width: 100% !important;
}
.ecs-contact-wrapper .ecs-submit-btn {
    width: 100% !important;
    margin-top: 8px !important;
}

/* ===== Contact form — haute spécificité anti-Elementor ===== */
.elementor-element-ecs_register_w1 input[type="text"],
.elementor-element-ecs_register_w1 input[type="email"],
.elementor-element-ecs_register_w1 textarea,
.elementor-element-ecs_register_w1 input[type="text"]:not([class]),
.elementor-element-ecs_register_w1 input[type="email"]:not([class]),
body .elementor-element-ecs_register_w1 #ecs-contact-form input,
body .elementor-element-ecs_register_w1 #ecs-contact-form textarea {
    background-color: #ffffff !important;
    background: #ffffff !important;
    color: #333333 !important;
    border: 1px solid #dddddd !important;
    border-radius: 6px !important;
    padding: 9px 12px !important;
    font-size: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    -webkit-background-clip: padding-box !important;
    background-clip: padding-box !important;
}

/* ===== Contact wrapper — fond blanc ===== */
.elementor-element-ecs_register_w1 .ecs-contact-wrapper {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 40px !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.10) !important;
}
.elementor-element-ecs_register_w1 .ecs-contact-wrapper label {
    color: #253745 !important;
}
.elementor-element-ecs_register_w1 p {
    color: #253745 !important;
}
.elementor-element-ecs_register_w1 p a {
    color: #32C36C !important;
}

/* ===== Contact form — police alignée bouton + placeholders vides ===== */
.elementor-element-ecs_register_w1 .ecs-contact-wrapper label {
    font-size: 16px !important;
}
.elementor-element-ecs_register_w1 #ecs-contact-form input[type="text"],
.elementor-element-ecs_register_w1 #ecs-contact-form input[type="email"],
.elementor-element-ecs_register_w1 #ecs-contact-form textarea {
    font-size: 16px !important;
}

/* ===== Overlay inscription — grille CSS ===== */
#ecs-overlay-box .ecs-overlay-grid {
    display: grid !important;
    grid-template-columns: 280px 1fr !important;
    grid-template-rows: 1fr auto auto !important;
    gap: 0 32px !important;
}
#ecs-overlay-box .ecs-overlay-oauth {
    grid-column: 1 !important;
    grid-row: 1 !important;
    border-right: 1px solid #eee !important;
    padding-right: 32px !important;
}
#ecs-overlay-box .ecs-overlay-form {
    grid-column: 2 !important;
    grid-row: 1 !important;
}
#ecs-overlay-box .ecs-overlay-cancel {
    grid-column: 1 !important;
    grid-row: 2 !important;
    border-right: 1px solid #eee !important;
    padding-right: 32px !important;
    padding-top: 16px !important;
    display: flex !important;
    align-items: flex-end !important;
}
#ecs-overlay-box .ecs-overlay-submit {
    grid-column: 2 !important;
    grid-row: 2 !important;
    padding-top: 16px !important;
    display: flex !important;
    align-items: flex-end !important;
}
#ecs-overlay-box .ecs-overlay-cancel button,
#ecs-overlay-box .ecs-overlay-submit button {
    width: 100% !important;
}
#ecs-overlay-box .ecs-overlay-login-link {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    text-align: center !important;
    padding-top: 20px !important;
    border-top: 1px solid #eee !important;
    margin-top: 16px !important;
}
/* ===== Tel inline row ===== */
#ecs-tel-inline-row {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}
#ecs-tel-inline-row .ecs-tel-wrapper {
    flex-shrink: 0 !important;
    width: calc(50% - 8px) !important;
    min-width: 280px !important;
}
/* ===== Contact wrapper — fond blanc ===== */
.elementor-element-ecs_register_w1 .ecs-contact-wrapper {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 40px !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.10) !important;
}
.elementor-element-ecs_register_w1 .ecs-contact-wrapper label {
    color: #253745 !important;
}
.elementor-element-ecs_register_w1 p {
    color: #253745 !important;
}
.elementor-element-ecs_register_w1 p a {
    color: #32C36C !important;
}
/* ===== Contact form — haute spécificité anti-Elementor ===== */
.elementor-element-ecs_register_w1 input[type="text"],
.elementor-element-ecs_register_w1 input[type="email"],
.elementor-element-ecs_register_w1 textarea,
body .elementor-element-ecs_register_w1 #ecs-contact-form input,
body .elementor-element-ecs_register_w1 #ecs-contact-form textarea {
    background-color: #ffffff !important;
    background: #ffffff !important;
    color: #333333 !important;
    border: 1px solid #dddddd !important;
    border-radius: 6px !important;
    padding: 9px 12px !important;
    font-size: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
/* ===== Contact form — police alignée bouton ===== */
.elementor-element-ecs_register_w1 .ecs-contact-wrapper label,
.elementor-element-ecs_register_w1 #ecs-contact-form input[type="text"],
.elementor-element-ecs_register_w1 #ecs-contact-form input[type="email"],
.elementor-element-ecs_register_w1 #ecs-contact-form textarea {
    font-size: 16px !important;
}


/* ===== Supprimer fond jaune autocomplete navigateur ===== */
#ecs-overlay-box input:-webkit-autofill,
#ecs-overlay-box input:-webkit-autofill:hover,
#ecs-overlay-box input:-webkit-autofill:focus,
#ecs-login-box input:-webkit-autofill,
#ecs-login-box input:-webkit-autofill:hover,
#ecs-login-box input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
    box-shadow: 0 0 0 1000px #ffffff inset !important;
    -webkit-text-fill-color: #333333 !important;
    background-color: #ffffff !important;
}


/* ===== Menu actif — page Mon Espace ===== */
/* Géré nativement par WordPress via current-menu-item */


/* ===== Formulaires Mon Espace — champs compacts ===== */
#ecs-me-modifier-backdrop .ecs-overlay-box-inner,
#ecs-me-modifier-backdrop > div {
    max-width: 624px !important;
}
#ecs-me-modifier-backdrop input[type="text"],
#ecs-me-modifier-backdrop input[type="number"] {
    height: 42px !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
}
#ecs-me-modifier-backdrop input[type="tel"],
#ecs-me-modifier-backdrop select {
    padding: 7px 10px !important;
    height: auto !important;
}


/* ===== Champ téléphone Mon Espace — largeur correcte ===== */
#ecs-me-modifier-backdrop .ecs-full-width:has(.ecs-tel-wrapper) {
    width: 100% !important;
    max-width: 100% !important;
}
#ecs-me-modifier-backdrop .ecs-tel-wrapper {
    width: 100% !important;
    box-sizing: border-box !important;
}
#ecs-me-modifier-backdrop .ecs-tel-wrapper input[type="tel"] {
    flex: 1 !important;
    min-width: 0 !important;
    border: none !important;
    padding: 7px 10px !important;
    background: transparent !important;
    outline: none !important;
}


/* ===== Icônes actions Mon Espace (create/edit/delete) ===== */
#ecs-me-content-compte img,
#ecs-me-content-agence img {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    display: block !important;
}


/* ===== Overlay Mon Agence — standard hauteur champs ===== */
#ecs-agence-box input[type="text"],
#ecs-agence-box input[type="number"],
#ecs-agence-box input[type="tel"] {
    height: 42px !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
}
#ecs-agence-box select {
    padding: 7px 10px !important;
    height: auto !important;
}
#ecs-agence-box .ecs-tel-wrapper input[type="tel"] {
    height: 42px !important;
    padding: 0 10px !important;
    border: none !important;
    background: transparent !important;
}


/* ===== Overlay agence — espacement rangées ===== */
#ecs-agence-box .ecs-form-row {
    margin-bottom: 24px !important;
}


/* ===== Overlay agence — champ téléphone largeur ===== */
#ecs-agence-box .ecs-full-width:has(.ecs-tel-wrapper) {
    width: 100% !important;
    max-width: 100% !important;
}
#ecs-agence-box .ecs-tel-wrapper {
    width: 100% !important;
    box-sizing: border-box !important;
}


/* ===== Overlay agence — select Ville hauteur standard ===== */
#ecs-agence-box select,
#ecs-agence-box #ecs-ag-ville {
    height: 42px !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
}


/* ===== Désactiver nice-select dans overlays eCONCEPT ===== */
#ecs-agence-box .nice-select,
#ecs-me-modifier-backdrop .nice-select,
#ecs-overlay-box .nice-select,
#ecs-login-box .nice-select,
#ecs-devis-box .nice-select {
    display: none !important;
}
#ecs-agence-box select,
#ecs-me-modifier-backdrop select,
#ecs-overlay-box select,
#ecs-login-box select,
#ecs-devis-box select {
    display: block !important;
    -webkit-appearance: auto !important;
    appearance: auto !important;
}


/* ===== Toggles Nature Agence ===== */
#ecs-agence-box .ecs-nature-btn {
    flex: 1;
    padding: 10px 8px !important;
    border: 2px solid #ddd !important;
    border-radius: 8px !important;
    background: #fff !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    color: #999 !important;
    transition: all 0.2s !important;
}
#ecs-agence-box .ecs-nature-btn.active {
    border-color: #32C36C !important;
    background: #32C36C !important;
    color: #fff !important;
}
#ecs-agence-box .ecs-nature-btn:hover:not(.active) {
    border-color: #32C36C !important;
    color: #32C36C !important;
}


/* ===== Radio pills Nature agence — centrage + curseur ===== */
#ecs-agence-box .ecs-nature-radio {
    user-select: none !important;
    -webkit-user-select: none !important;
    cursor: pointer !important;
    outline: none !important;
}
#ecs-agence-box .ecs-nature-radio:focus,
#ecs-agence-box .ecs-nature-radio:focus-within {
    outline: none !important;
    caret-color: transparent !important;
}
#ecs-agence-box .ecs-radio-dot {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
}
#ecs-agence-box .ecs-radio-dot span {
    width: 10px !important;
    height: 10px !important;
    min-width: 10px !important;
    min-height: 10px !important;
    border-radius: 50% !important;
    display: block !important;
    flex-shrink: 0 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}


/* ===== Map agence — hauteur flex ===== */
#ecs-agence-step-2.ecs-step-visible {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
#ecs-agence-map {
    flex: 1 !important;
    min-height: 200px !important;
}

/* ===== Google Autocomplete dropdown au-dessus des overlays ===== */
.pac-container {
    z-index: 99999 !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15) !important;
    font-size: 13px !important;
}
.pac-item {
    padding: 8px 12px !important;
    cursor: pointer !important;
}
.pac-item:hover {
    background: #f0faf4 !important;
}
.pac-item-selected {
    background: #f0faf4 !important;
}

/* ===== Barre recherche Map agence ===== */
#ecs-agence-step-2 input#ecs-ag-map-search {
    color: #253745 !important;
    font-size: 14px !important;
    background: #fff !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    height: auto !important;
    padding: 9px 4px !important;
}
#ecs-agence-step-2 input#ecs-ag-map-search::placeholder {
    color: #aaa !important;
}
#ecs-ag-map-search-btn:hover svg {
    stroke: #32C36C;
}
#ecs-ag-map-clear:hover svg {
    stroke: #e74c3c;
}

/* ===================================================
   POLICE UNIFORME — TOUS LES OVERLAYS eCONCEPT
   Règle : non gras = gras + 4px (compensation visuelle)
   Gras actuel : 14px → Non gras : 18px
   S'applique à tous les overlays présents et futurs
   portant le préfixe #ecs-
   =================================================== */

/* Labels gras — 14px */
[id^="ecs-"][id$="-backdrop"] label,
[id^="ecs-"][id$="-box"] label {
    font-size: 14px !important;
}

/* Inputs, selects, textes non gras — 16px (labels 14px + 2px compensation) */
[id^="ecs-"][id$="-backdrop"] input,
[id^="ecs-"][id$="-backdrop"] select,
[id^="ecs-"][id$="-backdrop"] textarea,
[id^="ecs-"][id$="-backdrop"] p,
[id^="ecs-"][id$="-backdrop"] span:not(.ecs-country-code):not(.ecs-country-flag):not(#ecs-ag-tel-status):not(#ecs-ag-pp-tel-status):not(#ecs-ag-pp-synd-tel-status),
[id^="ecs-"][id$="-box"] input,
[id^="ecs-"][id$="-box"] select,
[id^="ecs-"][id$="-box"] textarea,
[id^="ecs-"][id$="-box"] p,
[id^="ecs-"][id$="-box"] span:not(.ecs-country-code):not(.ecs-country-flag):not(#ecs-ag-tel-status):not(#ecs-ag-pp-tel-status):not(#ecs-ag-pp-synd-tel-status) {
    font-size: 16px !important;
}

/* Boîtes de confirmation — non gras → 16px */
#ecs-agence-delete-confirm p,
#ecs-agence-delete-confirm span {
    font-size: 16px !important;
}

/* Exceptions — textes secondaires conservés en taille réduite */
[id^="ecs-"] .ecs-country-code,
[id^="ecs-"] .ecs-country-flag,
[id^="ecs-"][id$="-msg"],
[id$="-tel-msg"],
[id$="-tel-status"],
[id$="-dept"],
[id^="ecs-"] .ecs-ci-name,
[id^="ecs-"] .ecs-ci-dial {
    font-size: 12px !important;
}

/* ===== Overlay Devis CLEM — couleur texte champs ===== */
#ecs-devis-box input,
#ecs-devis-box select,
#ecs-devis-box textarea {
    color: #253745 !important;
}
#ecs-devis-box input::placeholder {
    color: #aaa !important;
}

/* ===== Overlay Devis CLEM — labels état et options ===== */
#ecs-devis-box .ecs-etat-radio,
#ecs-devis-box label {
    color: #253745 !important;
}

/* ===== Radio dots centrage forcé — tous les overlays ===== */
.ecs-radio-dot {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
    border-radius: 50% !important;
}
.ecs-radio-dot > span {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    display: block !important;
    border-radius: 50% !important;
}

/* ── Recherche header masquée ─────────────────────────────────── */
.site-header-search { display: none !important; }

/* ── Sélecteur langue + Avatar dans site-navigation ──────────── */
.ecs-nav-tools {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: 16px;
}

/* ── Bordure verte dropdowns ──────────────────────────────────── */
.trp-switcher-dropdown-list {
    border: 2px solid #32C36C !important;
    border-radius: 8px !important;
}
.header-login-btn .ecs-user-dropdown {
    border: 2px solid #32C36C !important;
}

/* ── Masquer sélecteur langue + avatar de header-top-right ───── */
.header-top-right .cms-language-switcher { display: none !important; }
.header-top-right .header-login-btn { display: none !important; }

/* ── CORRECTIONS navigation tools ────────────────────────────── */

/* 1. Masquer DÉFINITIVEMENT originaux dans header-top-right */
.site-header-top .header-top-right .cms-language-switcher,
.site-header-top .header-top-right .trp-shortcode-switcher__wrapper,
.site-header-top .header-top-right .header-login-btn {
    display: none !important;
    visibility: hidden !important;
}

/* 2. Fond transparent pour sélecteur langue dans header-main */
.ecs-nav-tools .trp-shortcode-switcher__wrapper,
.ecs-nav-tools .trp-language-switcher,
.ecs-nav-tools .trp-shortcode-anchor,
.ecs-nav-tools .trp-shortcode-overlay {
    background: transparent !important;
    background-color: transparent !important;
}
.ecs-nav-tools .trp-language-item,
.ecs-nav-tools .trp-language-item__current,
.ecs-nav-tools .trp-language-item-name {
    color: #ffffff !important;
    background: transparent !important;
}
.ecs-nav-tools .trp-shortcode-arrow path {
    stroke: #ffffff !important;
}

/* 3. Padding entre éléments et leurs popups */
.ecs-nav-tools .trp-shortcode-switcher__wrapper {
    padding-bottom: 12px !important;
}
.ecs-nav-tools .ecs-user-menu {
    padding-bottom: 0 !important;
}
/* Décaler les popups vers le bas */
.ecs-nav-tools .trp-switcher-dropdown-list {
    margin-top: 12px !important;
}
.ecs-nav-tools .ecs-user-dropdown {
    top: calc(100% + 4px) !important;
}

/* ── Couleur texte sélecteur langue dans header-main ─────────── */
.ecs-nav-tools .trp-shortcode-switcher__wrapper {
    --text: #253745 !important;
    --text-hover: #32C36C !important;
    --bg: transparent !important;
    --bg-hover: rgba(0,0,0,0.05) !important;
}
.ecs-nav-tools .trp-language-item,
.ecs-nav-tools .trp-language-item span,
.ecs-nav-tools .trp-language-item-name,
.ecs-nav-tools a.trp-language-item,
.ecs-nav-tools div.trp-language-item {
    color: #253745 !important;
}
.ecs-nav-tools .trp-shortcode-arrow path {
    stroke: #253745 !important;
}

/* ── Fix couleur texte sélecteur langue header-main ──────────── */
.ecs-nav-tools .trp-current-language-item__wrapper,
.ecs-nav-tools .trp-language-switcher.trp-shortcode-overlay,
.ecs-nav-tools .trp-language-switcher.trp-shortcode-anchor {
    color: #253745 !important;
}

/* ── Alignement vertical avatar dans ecs-nav-tools ───────────── */
.ecs-nav-tools .ecs-user-menu,
.ecs-nav-tools .header-login-btn {
    display: flex !important;
    align-items: center !important;
}
.ecs-nav-tools {
    align-items: center !important;
}

/* ── Fix hauteur avatar dans ecs-nav-tools ───────────────────── */
.ecs-nav-tools .header-login-btn {
    height: auto !important;
    margin-left: 0 !important;
}

/* ── Bannière page Mon Espace ─────────────────────────────────── */
.page-id-17119 #pagetitle {
    background-image: url('https://econcept-system.fr/wp-content/uploads/2026/04/banner_devis.png') !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* ── Page Mon Espace — pleine largeur ────────────────────────── */
.page-id-17119 .container.content-container {
    max-width: 100% !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
}
.page-id-17119 #ecs-monespace-wrapper {
    max-width: 100% !important;
    padding: 40px 0 !important;
}

/* ── Séparateur FAQ / contenu Mon Espace ─────────────────────── */
.page-id-17119 #ecs-faq-column {
    border-right: 1px solid #e0e0e0 !important;
    padding-right: 32px !important;
}
.page-id-17119 #ecs-main-column {
    padding-left: 32px !important;
}

/* ── Réduire padding page Mon Espace ────────────────────────── */
.page-id-17119 .container.content-container {
    padding-top: 0 !important;
}
.page-id-17119 .entry-content,
.page-id-17119 .page-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.page-id-17119 #ecs-monespace-wrapper {
    padding-top: 48px !important;
}

/* ── Réduire espace vertical page Mon Espace ─────────────────── */
.page-id-17119 .site-content {
    padding-top: 0 !important;
}
.page-id-17119 #pagetitle {
    padding-bottom: 48px !important;
    padding-top: 48px !important;
}

/* ── Breadcrumb page Mon Espace ──────────────────────────────── */
.page-id-17119 #pagetitle .cms-breadcrumb {
    display: none !important;
}
.page-id-17119 #ecs-breadcrumb-wrap .cms-breadcrumb {
    display: flex !important;
}
.page-id-17119 #ecs-breadcrumb-wrap .cms-breadcrumb,
.page-id-17119 #ecs-breadcrumb-wrap .cms-breadcrumb a,
.page-id-17119 #ecs-breadcrumb-wrap .cms-breadcrumb li,
.page-id-17119 #ecs-breadcrumb-wrap .cms-breadcrumb span {
    color: #253745 !important;
}
.page-id-17119 #ecs-breadcrumb-wrap .cms-breadcrumb a:hover {
    color: #32C36C !important;
}

/* ── Contour barres recherche Google Map ─────────────────────── */
#ecs-devis-map-search-wrap,
#ecs-ag-map-search-wrap {
    border: 2px solid #606060 !important;
    border-radius: 6px !important;
}
#ecs-devis-map-search-wrap:focus-within,
#ecs-ag-map-search-wrap:focus-within {
    border-color: #32C36C !important;
}
#ecs-devis-map-search,
#ecs-ag-map-search {
    border: none !important;
    outline: none !important;
}

/* ── Bouton devis dans ecs-nav-tools ─────────────────────────── */
.ecs-nav-tools .site-header-button {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    padding: 0 !important;
}
.ecs-nav-tools .site-header-button a.btn {
    padding: 8px 18px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    height: auto !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* ── Avatar couleur verte dans ecs-nav-tools ─────────────────── */
.ecs-nav-tools .ecs-user-avatar {
    background: #32C36C !important;
    color: #ffffff !important;
}
.ecs-nav-tools .ecs-user-menu:hover .ecs-user-avatar {
    background: #28a85a !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

/* ── Texte bouton Se connecter dans ecs-nav-tools ────────────── */
.ecs-nav-tools .login-link .login-text {
    color: #253745 !important;
}
.ecs-nav-tools .login-link:hover .login-text {
    color: #32C36C !important;
}
.ecs-nav-tools .login-link .login-icon {
    filter: brightness(0) !important;
}
.ecs-nav-tools .login-link:hover .login-icon {
    filter: brightness(0) saturate(100%) invert(58%) sepia(69%) saturate(400%) hue-rotate(95deg) !important;
}

/* ── ecs-nav-tools hauteur 100% header ───────────────────────── */
.site-navigation {
    display: flex !important;
    align-items: stretch !important;
}
.ecs-nav-tools {
    display: flex !important;
    align-items: center !important;
    align-self: stretch !important;
}
.ecs-nav-tools .site-header-button {
    align-self: stretch !important;
    display: flex !important;
    align-items: stretch !important;
    padding: 0 !important;
    height: auto !important;
}
.ecs-nav-tools .site-header-button a.btn {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    padding: 0 20px !important;
    border-radius: 0 !important;
}

/* ── Taille police bouton Se connecter = sélecteur langue ────── */
.ecs-nav-tools .login-text {
    font-size: 14px !important;
    font-weight: 600 !important;
}
