/*
Theme Name: Ultra SEO Fast
Theme URI: /
Author: Ultra SEO Fast
Description: Thème WordPress universel, mobile-first, léger et optimisé pour les performances et le SEO.
Version: 2.2.0
Text Domain: ultra-seo-fast
*/

:root {
    --ultra-seo-bg-card:#fff;
    --ultra-seo-text-main:#0f172a;
    --ultra-seo-text-secondary:#475569;
    --ultra-seo-border-color:#e2e8f0;
    --ultra-seo-navy-trust:#1e3a8a;
    --ultra-seo-primary-btn:#2563eb;
    --ultra-seo-primary-btn-hover:#1d4ed8;
    --ultra-seo-phone:#0f766e;
    --ultra-seo-phone-hover:#115e59;
    --ultra-seo-radius-box:10px;
    --ultra-seo-shadow-card:0 4px 12px rgba(15,23,42,.06);
}
body.ultra-seo-theme *{box-sizing:border-box}
body.ultra-seo-theme{scroll-behavior:smooth}
body.ultra-seo-theme{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ultra-seo-text-main);background:#fff;line-height:1.6}
body.ultra-seo-theme img{max-width:100%;height:auto}
body.ultra-seo-theme a{color:inherit}
body.ultra-seo-theme button,body.ultra-seo-theme input,body.ultra-seo-theme textarea,body.ultra-seo-theme select{font:inherit}

#ultra-seo-custom-header{width:100%;background:#fff;border-bottom:1px solid var(--ultra-seo-border-color);position:relative;z-index:99999}
.ultra-seo-header-inner{width:min(1200px,calc(100% - 32px));margin:0 auto}
.ultra-seo-header-top{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:10px 0;border-bottom:1px solid var(--ultra-seo-border-color)}
.ultra-seo-logo a{text-decoration:none;display:inline-flex;align-items:center}
.ultra-seo-logo img{width:200px;height:53px;max-width:100%;object-fit:contain;display:block}
.ultra-seo-site-name{color:var(--ultra-seo-navy-trust);font-weight:800;font-size:1.3rem}

.ultra-seo-header-actions{display:flex;align-items:center;gap:10px}
.ultra-seo-action-buttons{display:flex;align-items:center;gap:8px}
.ultra-seo-action-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border-radius:8px;text-decoration:none!important;font-weight:700;font-size:.92rem;white-space:nowrap;transition:background .15s ease,transform .15s ease}
.ultra-seo-action-btn:hover{transform:translateY(-1px)}
.ultra-seo-action-btn-primary{background:var(--ultra-seo-primary-btn);color:#fff!important}
.ultra-seo-action-btn-primary:hover{background:var(--ultra-seo-primary-btn-hover)}
.ultra-seo-action-btn-phone{background:var(--ultra-seo-phone);color:#fff!important}
.ultra-seo-action-btn-phone:hover{background:var(--ultra-seo-phone-hover)}

.ultra-seo-header-menu-wrap{border-bottom:1px solid var(--ultra-seo-border-color);background:#fff}
#ultra-seo-main-menu{list-style:none!important;display:flex!important;gap:12px!important;margin:0!important;padding:0!important;align-items:center!important;width:100%!important;flex-wrap:wrap!important}
#ultra-seo-main-menu>li{position:relative!important;list-style:none!important;margin:0!important;padding:0!important}
#ultra-seo-main-menu>li>a{text-decoration:none!important;color:var(--ultra-seo-text-main)!important;font-weight:600!important;font-size:.9rem!important;padding:8px 13px!important;border-radius:8px!important;background:#f8fafc!important;border:1px solid var(--ultra-seo-border-color)!important;display:flex!important;align-items:center!important;gap:6px!important}
#ultra-seo-main-menu>li>a:hover,#ultra-seo-main-menu>li>a:focus-visible,#ultra-seo-main-menu>li.current-menu-item>a,#ultra-seo-main-menu>li.current-menu-ancestor>a{background:var(--ultra-seo-navy-trust)!important;color:#fff!important;border-color:var(--ultra-seo-navy-trust)!important}
#ultra-seo-main-menu .sub-menu{list-style:none!important;position:absolute!important;top:calc(100% + 4px)!important;left:0;background:#fff!important;border:1px solid var(--ultra-seo-border-color)!important;box-shadow:0 10px 25px -3px rgba(0,0,0,.12)!important;border-radius:8px!important;padding:7px 0!important;min-width:240px;display:none!important;z-index:999999!important;max-height:400px;overflow-y:auto;margin:0!important}
@media (min-width:769px){
#ultra-seo-main-menu>li:hover>.sub-menu,#ultra-seo-main-menu>li:focus-within>.sub-menu{display:block!important}
}
#ultra-seo-main-menu .sub-menu li{margin:0!important;padding:0!important;list-style:none!important}
#ultra-seo-main-menu .sub-menu li a{display:block!important;padding:8px 15px!important;color:var(--ultra-seo-text-secondary)!important;background:#fff!important;text-decoration:none!important;font-size:.86rem!important;font-weight:500!important;white-space:nowrap}
#ultra-seo-main-menu .sub-menu li a:hover{background:#f1f5f9!important;color:var(--ultra-seo-navy-trust)!important}

.ultra-seo-burger-btn{display:none;flex-direction:column;justify-content:space-between;width:42px;height:42px;background:#f8fafc;border:1px solid var(--ultra-seo-border-color);border-radius:9px;padding:10px 8px;cursor:pointer}
.ultra-seo-burger-btn span{width:100%;height:2px;background:var(--ultra-seo-text-main);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.ultra-seo-burger-btn.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.ultra-seo-burger-btn.active span:nth-child(2){opacity:0}
.ultra-seo-burger-btn.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.ultra-seo-main-container{max-width:1200px;margin:1.75rem auto;padding:0 20px}
.ultra-seo-entry-content{color:var(--ultra-seo-text-main)}
.ultra-seo-entry-content h1:first-of-type,.ultra-seo-entry-title,h1.page-title{font-size:clamp(1.9rem,4.5vw,2.75rem);font-weight:800;color:var(--ultra-seo-navy-trust);text-transform:none;line-height:1.15;margin:1.25rem 0 2rem;letter-spacing:-.02em}
.ultra-seo-entry-content h1:first-of-type::after,.ultra-seo-entry-title::after,h1.page-title::after{content:"";display:block;margin-top:10px;width:64px;height:4px;background:var(--ultra-seo-primary-btn);border-radius:8px}
.ultra-seo-entry-title a{text-decoration:none}
.ultra-seo-entry-content h2{font-size:1.6rem;line-height:1.25;color:var(--ultra-seo-navy-trust);border-left:4px solid var(--ultra-seo-primary-btn);padding-left:11px;margin:2rem 0 1rem}
.ultra-seo-entry-content h3{line-height:1.3}
.ultra-seo-service-card{position:relative;background:#fff;border:1px solid var(--ultra-seo-border-color);border-radius:10px;padding:18px;margin:0 0 12px;box-shadow:var(--ultra-seo-shadow-card);overflow:hidden;cursor:pointer}
.ultra-seo-service-card h3{color:var(--ultra-seo-navy-trust)!important;font-size:1.15rem!important;font-weight:700!important;margin:0!important;display:flex!important;justify-content:space-between!important;align-items:center!important}
.ultra-seo-service-card h3::after{content:"+";font-size:1.4rem;font-weight:300;color:var(--ultra-seo-text-secondary)}
.ultra-seo-service-card.active h3::after{content:"×"}
.ultra-seo-service-card p{max-height:0;opacity:0;margin:0!important;overflow:hidden;line-height:1.7!important;transition:max-height .25s ease,opacity .15s ease,margin-top .25s ease}
.ultra-seo-service-card.active p{max-height:600px;opacity:1;margin-top:12px!important}
.ultra-seo-urgence-sos{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;background:#be123c!important;color:#fff!important;padding:11px 16px;border-radius:8px;text-decoration:none!important;font-weight:700}

.ultra-seo-footer{margin-top:3rem;border-top:1px solid var(--ultra-seo-border-color);background:#f8fafc}
.ultra-seo-footer-inner{width:min(1200px,calc(100% - 32px));margin:0 auto;padding:18px 0}
.ultra-seo-copyright{margin:0;color:var(--ultra-seo-text-secondary);font-size:.88rem;text-align:center}

@media (max-width:768px){
.ultra-seo-header-inner{width:min(100% - 24px,1200px)}
.ultra-seo-header-top{min-height:64px;gap:8px}
.ultra-seo-logo img{width:150px;height:auto;max-height:44px}
.ultra-seo-header-actions{gap:7px}
.ultra-seo-action-buttons{gap:5px}
.ultra-seo-action-btn{min-height:40px;padding:8px 10px;font-size:.78rem}
.ultra-seo-burger-btn{display:flex}
.ultra-seo-header-menu-wrap{display:none}
.ultra-seo-header-menu-wrap.is-open{display:block}
.ultra-seo-header-bottom{width:100%;margin:0;padding:9px 0 12px}
#ultra-seo-main-menu{flex-direction:column!important;align-items:stretch!important;gap:7px!important}
#ultra-seo-main-menu>li>a{width:100%;min-height:44px;padding:11px 14px!important;font-size:.94rem!important;border-radius:9px!important;justify-content:space-between!important}
 #ultra-seo-main-menu .sub-menu, #ultra-seo-main-menu .sub-menu,.ultra-seo-header-bottom  #ultra-seo-main-menu .sub-menu{position:static!important;display:none!important;box-shadow:none!important;border:none!important;background:#f1f5f9!important;border-radius:9px!important;margin-top:5px!important;padding:5px 0!important;min-width:100%!important;max-height:none!important;overflow:visible!important}
#ultra-seo-main-menu .sub-menu li a{padding:10px 18px!important;font-size:.87rem!important;white-space:normal!important}
.ultra-seo-main-container{margin-top:1.15rem;padding:0 12px}
.ultra-seo-entry-content h2{font-size:1.4rem!important}
}
@media (max-width:430px){
.ultra-seo-logo img{width:125px}
.ultra-seo-action-btn{padding:8px 7px;font-size:.72rem}
.ultra-seo-action-btn-phone{max-width:112px;overflow:hidden;text-overflow:ellipsis}
}
@media (prefers-reduced-motion:reduce){
body.ultra-seo-theme * ,body.ultra-seo-theme *::before,body.ultra-seo-theme *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


/* Ultra SEO Fast — en-tête/menu mobile isolé */
.ultra-seo-mobile-menu-head{display:none}
.ultra-seo-phone-number{display:inline}
@media (max-width:768px){
    .ultra-seo-header-top{position:relative;flex-wrap:wrap}
    .ultra-seo-logo{width:calc(100% - 58px)}
    .ultra-seo-header-actions{width:100%;justify-content:center}
    .ultra-seo-action-buttons{width:100%;display:flex;gap:8px}
    .ultra-seo-action-btn{flex:1;min-width:0}
    .ultra-seo-burger-btn{position:absolute;right:0;top:10px}
    /* Menu mobile : calque juste sous tout l’en-tête, sans recouvrir le logo/titre. */
    .ultra-seo-header-menu-wrap{
        position:absolute!important;
        top:100%!important;
        left:0!important;
        right:0!important;
        width:100%!important;
        height:auto!important;
        max-height:calc(100dvh - 120px)!important;
        overflow-y:auto!important;
        background:#fff!important;
        z-index:1000000!important;
        padding:12px 16px 20px!important;
        border:1px solid var(--ultra-seo-border-color)!important;
        border-top:0!important;
        box-shadow:0 12px 28px rgba(0,0,0,.12)!important;
        box-sizing:border-box!important;
    }
    .ultra-seo-header-menu-wrap:not(.is-open){display:none!important}
    .ultra-seo-header-menu-wrap.is-open{display:block!important}
    .ultra-seo-mobile-menu-head{display:none!important;}
    .ultra-seo-mobile-menu-logo{
        display:inline-flex;
        align-items:center;
        text-decoration:none;
        min-width:0;
    }
    .ultra-seo-mobile-menu-logo img{width:150px;height:auto;max-height:44px;object-fit:contain}
    .ultra-seo-mobile-menu-logo .ultra-seo-site-name{font-size:1.15rem}
    .ultra-seo-mobile-close{
        width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;
        border:1px solid var(--ultra-seo-border-color);border-radius:9px;background:#f8fafc;
        color:var(--ultra-seo-text-main);cursor:pointer;font-size:1.35rem;line-height:1;
    }
    .ultra-seo-header-bottom{padding:0!important}
    .ultra-seo-header-menu-wrap ul.ultra-seo-menu,
    .ultra-seo-header-menu-wrap ul.nav-menu,
    #ultra-seo-main-menu{
        width:100%!important;
    }
}
@media (min-width:769px){
    .ultra-seo-mobile-menu-head{display:none!important}
}


/* Ultra SEO Fast — largeur commune header/contenu, sans modifier les extensions */
.ultra-seo-site-main-container{
    width:min(1200px, calc(100% - 40px));
    max-width:1200px;
    margin:1.75rem auto 0;
    padding:0;
    box-sizing:border-box;
}
.ultra-seo-site-main-container > .ultra-seo-main-container,
.ultra-seo-site-main-container > .ultra-seo-entry-content{
    width:100%;
    max-width:100%;
    margin-left:0;
    margin-right:0;
    box-sizing:border-box;
}

/* Mobile : bloc principal aligné sur le même bord que l'en-tête */
@media (max-width:768px){
    .ultra-seo-site-main-container{
        width:calc(100% - 24px);
        max-width:none;
        margin:1.15rem auto 0;
        padding:0;
    }

    /* Les boutons du thème uniquement : un par ligne */
    .ultra-seo-header-actions{
        width:100%;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:8px;
    }
    .ultra-seo-action-buttons{
        width:100%;
        display:flex;
        flex-direction:column;
        gap:8px;
        margin-top:8px;
    }
    .ultra-seo-action-btn{
        width:100%;
        flex:0 0 auto;
        box-sizing:border-box;
    }

    /* La ligne logo + hamburger reste compacte au-dessus des boutons */
    .ultra-seo-header-top{
        align-items:flex-start;
    }
    .ultra-seo-logo{
        width:calc(100% - 58px);
    }
}

/* Très petits écrans */
@media (max-width:430px){
    .ultra-seo-site-main-container{
        width:calc(100% - 20px);
    }
}


/* Ultra SEO Fast — mobile : sous-menus et boutons uniquement */
@media (max-width:768px){
    #ultra-seo-custom-header .ultra-seo-action-buttons{
        display:flex;
        flex-direction:column;
        width:100%;
        gap:10px;
        margin-top:10px;
    }

    #ultra-seo-custom-header .ultra-seo-action-btn{
        display:flex;
        align-items:center;
        justify-content:center;
        width:100%;
        min-height:48px;
        box-sizing:border-box;
        font-size:16px;
        line-height:1.2;
        padding:12px 16px;
    }

    /* Sous-menu fermé par défaut sur mobile */
    #ultra-seo-custom-header .menu-item-has-children > .sub-menu{
        display:none;
        width:100%;
        margin:0;
        padding:4px 0 4px 14px;
        box-sizing:border-box;
    }

    #ultra-seo-custom-header .menu-item-has-children.ultra-seo-submenu-open > .sub-menu{
        display:block;
    }

    #ultra-seo-custom-header .ultra-seo-submenu-toggle{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:42px;
        min-width:42px;
        height:42px;
        margin-left:8px;
        padding:0;
        border:0;
        background:transparent;
        color:inherit;
        font:inherit;
        font-size:22px;
        line-height:1;
        cursor:pointer;
        vertical-align:middle;
    }

    #ultra-seo-custom-header .menu-item-has-children.ultra-seo-submenu-open > .ultra-seo-submenu-toggle{
        transform:rotate(180deg);
    }
}

@media (min-width:769px){
    #ultra-seo-custom-header .ultra-seo-submenu-toggle{
        display:none;
    }
}


/* Final mobile corrections — thème uniquement */
@media (max-width:768px){
    #ultra-seo-custom-header .ultra-seo-header-actions{
        width:100%!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:stretch!important;
        justify-content:flex-start!important;
    }
    #ultra-seo-custom-header .ultra-seo-action-buttons{
        width:100%!important;
        max-width:none!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:10px!important;
        box-sizing:border-box!important;
    }
    #ultra-seo-custom-header .ultra-seo-action-btn{
        display:flex!important;
        width:100%!important;
        min-width:100%!important;
        max-width:100%!important;
        flex:0 0 48px!important;
        min-height:48px!important;
        box-sizing:border-box!important;
        margin:0!important;
    }

    #ultra-seo-custom-header .menu-item-has-children{
        position:relative!important;
    }
    #ultra-seo-custom-header .menu-item-has-children > .ultra-seo-submenu-toggle{
        display:inline-flex!important;
        align-items:center!important;
        justify-content:center!important;
        float:right!important;
        width:44px!important;
        min-width:44px!important;
        height:44px!important;
        margin:-45px 0 0 8px!important;
        padding:0!important;
        border:0!important;
        border-radius:8px!important;
        background:transparent!important;
        color:inherit!important;
        font:inherit!important;
        font-size:22px!important;
        line-height:1!important;
        cursor:pointer!important;
        position:relative!important;
        z-index:2!important;
    }
    #ultra-seo-custom-header .menu-item-has-children > .sub-menu{
        display:none!important;
        width:100%!important;
        box-sizing:border-box!important;
    }
    #ultra-seo-custom-header .menu-item-has-children.ultra-seo-submenu-open > .sub-menu{
        display:block!important;
    }
    #ultra-seo-custom-header .menu-item-has-children.ultra-seo-submenu-open > .ultra-seo-submenu-toggle{
        transform:rotate(180deg);
    }
}
