/* =====================================================
   RESOCOM — HEADER CUSTOM
====================================================== */

:root{
    --resocom-orange:#F6903D;
    --resocom-terracotta:#BE3F23;
    --resocom-blue:#16486B;
    --resocom-blue-dark:#0F2F46;
    --resocom-black:#010A1F;
    --resocom-grey:#F3F3F3;
    --resocom-white:#ffffff;
}

.resocom-skip-link{
    position:absolute;
    left:-999px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
}

.resocom-skip-link:focus{
    left:20px;
    top:20px;
    z-index:999999;
    width:auto;
    height:auto;
    padding:12px 18px;
    border-radius:999px;
    background:#fff;
    color:#010A1F;
}

.resocom-site-header,
.resocom-site-header *{
    box-sizing:border-box;
}

.resocom-site-header{
    position:sticky;
    top:0;
    z-index:9999;
    width:100%;
    background:rgba(255,255,255,.94);
    border-bottom:1px solid rgba(1,10,31,.08);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.resocom-site-header__inner{
    width:100%;
    max-width:1320px;
    min-height:82px;
    margin:0 auto;
    padding:0 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.resocom-site-header__logo{
    display:flex;
    align-items:center;
    gap:10px;
    flex:0 0 auto;
    color:var(--resocom-black);
    text-decoration:none;
}

.resocom-site-header__logo img,
.resocom-site-header__logo .custom-logo{
    display:block;
    width:auto;
    max-width:190px;
    max-height:54px;
    object-fit:contain;
}

.resocom-site-header__logo-text{
    display:block;
    color:var(--resocom-black);
    font-size:26px;
    line-height:1;
    font-weight:950;
    letter-spacing:-.04em;
}

.resocom-site-header__logo small{
    display:block;
    margin-top:2px;
    color:#667085;
    font-size:10px;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:800;
}

.resocom-site-nav{
    flex:1;
    display:flex;
    justify-content:center;
}

.resocom-site-nav__list{
    list-style:none;
    display:flex;
    align-items:center;
    gap:4px;
    margin:0;
    padding:0;
}

.resocom-site-nav__item{
    position:relative;
}

.resocom-site-nav__item > a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:44px;
    padding:0 14px;
    border-radius:999px;
    color:var(--resocom-black);
    font-size:14px;
    line-height:1;
    font-weight:850;
    text-decoration:none;
    text-transform:uppercase;
    letter-spacing:.035em;
    transition:background .25s ease, color .25s ease;
}

.resocom-site-nav__item > a:hover{
    background:rgba(22,72,107,.08);
    color:var(--resocom-blue);
}

.resocom-site-nav__chevron{
    display:inline-flex;
    font-size:16px;
    line-height:1;
    transform:translateY(-1px);
}

.resocom-site-nav__submenu{
    position:absolute;
    top:calc(100% + 14px);
    left:50%;
    width:360px;
    padding:14px;
    border-radius:24px;
    background:#ffffff;
    border:1px solid rgba(1,10,31,.08);
    box-shadow:0 28px 80px rgba(1,10,31,.14);
    transform:translateX(-50%) translateY(8px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
}

.resocom-site-nav__submenu::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:-16px;
    height:16px;
}

.resocom-site-nav__item--has-submenu:hover .resocom-site-nav__submenu,
.resocom-site-nav__item--has-submenu:focus-within .resocom-site-nav__submenu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(-50%) translateY(0);
}

.resocom-site-nav__submenu a{
    display:block;
    padding:15px 16px;
    border-radius:18px;
    color:var(--resocom-black);
    text-decoration:none;
    transition:background .22s ease, transform .22s ease;
}

.resocom-site-nav__submenu a:hover{
    background:var(--resocom-grey);
    transform:translateX(3px);
}

.resocom-site-nav__submenu strong{
    display:block;
    margin-bottom:5px;
    color:var(--resocom-black);
    font-size:15px;
    line-height:1.25;
    font-weight:900;
}

.resocom-site-nav__submenu span{
    display:block;
    color:#667085;
    font-size:13px;
    line-height:1.45;
    font-weight:600;
}

.resocom-site-nav__submenu--compact{
    width:310px;
}

.resocom-site-nav__submenu--compact a{
    padding:14px 15px;
}

.resocom-site-header__actions{
    display:flex;
    align-items:center;
    gap:14px;
    flex:0 0 auto;
}

.resocom-site-header__cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:0 22px;
    border-radius:999px;
    background:var(--resocom-orange);
    color:#ffffff;
    font-size:14px;
    line-height:1;
    font-weight:950;
    text-decoration:none;
    text-transform:uppercase;
    letter-spacing:.04em;
    box-shadow:0 16px 34px rgba(246,144,61,.28);
    transition:transform .25s ease, background .25s ease, box-shadow .25s ease;
}

.resocom-site-header__cta:hover{
    transform:translateY(-2px);
    background:var(--resocom-terracotta);
    color:#ffffff;
    box-shadow:0 22px 44px rgba(190,63,35,.32);
}

.resocom-site-header__burger{
    display:none;
    width:46px;
    height:46px;
    padding:0;
    border:1px solid rgba(1,10,31,.10);
    border-radius:999px;
    background:#ffffff;
    cursor:pointer;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
}

.resocom-site-header__burger span{
    width:20px;
    height:2px;
    border-radius:999px;
    background:var(--resocom-black);
    transition:transform .25s ease, opacity .25s ease;
}

.resocom-site-header.is-mobile-open .resocom-site-header__burger span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
}

.resocom-site-header.is-mobile-open .resocom-site-header__burger span:nth-child(2){
    opacity:0;
}

.resocom-site-header.is-mobile-open .resocom-site-header__burger span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
}

/* =====================================================
   MOBILE MENU
====================================================== */

.resocom-mobile-menu{
    display:none;
    border-top:1px solid rgba(1,10,31,.08);
    background:#ffffff;
}

.resocom-mobile-menu nav{
    max-width:1320px;
    margin:0 auto;
    padding:18px 24px 26px;
    display:flex;
    flex-direction:column;
    gap:8px;
}

.resocom-mobile-menu a,
.resocom-mobile-menu__group > button{
    width:100%;
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 16px;
    border:0;
    border-radius:16px;
    background:var(--resocom-grey);
    color:var(--resocom-black);
    font-size:15px;
    line-height:1;
    font-weight:850;
    text-decoration:none;
    text-align:left;
    cursor:pointer;
}

.resocom-mobile-menu__group > button span{
    font-size:20px;
    line-height:1;
    transition:transform .25s ease;
}

.resocom-mobile-menu__group.is-open > button span{
    transform:rotate(45deg);
}

.resocom-mobile-menu__group > div{
    display:none;
    padding:8px 0 0;
}

.resocom-mobile-menu__group.is-open > div{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.resocom-mobile-menu__group > div a{
    min-height:44px;
    background:#ffffff;
    border:1px solid rgba(1,10,31,.08);
    color:#344054;
    font-size:14px;
    font-weight:750;
}

.resocom-mobile-menu__cta{
    margin-top:10px;
    justify-content:center !important;
    background:var(--resocom-orange) !important;
    color:#ffffff !important;
    text-transform:uppercase;
    letter-spacing:.04em;
}

/* =====================================================
   RESPONSIVE
====================================================== */

@media(max-width:1120px){
    .resocom-site-nav{
        display:none;
    }

    .resocom-site-header__burger{
        display:flex;
    }

    .resocom-mobile-menu{
        display:block;
    }

    .resocom-mobile-menu[hidden]{
        display:none;
    }
}

@media(max-width:700px){
    .resocom-site-header__inner{
        min-height:74px;
        padding:0 18px;
    }

    .resocom-site-header__logo img,
    .resocom-site-header__logo .custom-logo{
        max-width:155px;
        max-height:46px;
    }

    .resocom-site-header__cta{
        display:none;
    }

    .resocom-mobile-menu nav{
        padding:16px 18px 24px;
    }
}

/* =====================================================
   RESOCOM — FOOTER CUSTOM
====================================================== */

.resocom-site-footer,
.resocom-site-footer *{
    box-sizing:border-box;
}

.resocom-site-footer{
    position:relative;
    width:100%;
    background:linear-gradient(135deg, #010A1F 0%, #0F2F46 58%, #16486B 100%);
    color:#ffffff;
    overflow:hidden;
}

.resocom-site-footer::before{
    content:"";
    position:absolute;
    top:-180px;
    right:-160px;
    width:440px;
    height:440px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(246,144,61,.22), transparent 68%);
    pointer-events:none;
}

.resocom-site-footer::after{
    content:"";
    position:absolute;
    bottom:-220px;
    left:-170px;
    width:480px;
    height:480px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(98,163,196,.20), transparent 68%);
    pointer-events:none;
}

.resocom-site-footer__inner{
    position:relative;
    z-index:2;
    width:100%;
    max-width:1320px;
    margin:0 auto;
    padding:76px 28px 52px;
    display:grid;
    grid-template-columns:minmax(280px, .85fr) minmax(0, 1.65fr);
    gap:70px;
}

.resocom-site-footer__brand{
    max-width:420px;
}

.resocom-site-footer__logo{
    display:inline-flex;
    align-items:center;
    margin-bottom:24px;
    color:#ffffff;
    text-decoration:none;
}

.resocom-site-footer__logo img,
.resocom-site-footer__logo .custom-logo{
    display:block;
    width:auto;
    max-width:220px;
    max-height:70px;
    object-fit:contain;
}

.resocom-site-footer__logo span{
    color:#ffffff;
    font-size:30px;
    line-height:1;
    font-weight:950;
    letter-spacing:-.04em;
}

.resocom-site-footer__brand p{
    margin:0 0 28px;
    color:rgba(255,255,255,.78);
    font-size:16px;
    line-height:1.75;
    font-weight:500;
}

.resocom-site-footer__linkedin{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:44px;
    padding:0 18px;
    border-radius:999px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.18);
    color:#ffffff;
    font-size:14px;
    line-height:1;
    font-weight:850;
    text-decoration:none;
    transition:background .25s ease, transform .25s ease;
}

.resocom-site-footer__linkedin:hover{
    background:#F6903D;
    color:#ffffff;
    transform:translateY(-2px);
}

.resocom-site-footer__columns{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:34px;
}

.resocom-site-footer__column h2{
    margin:0 0 18px;
    color:#ffffff;
    font-size:14px;
    line-height:1;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.075em;
}

.resocom-site-footer__column ul{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.resocom-site-footer__column a{
    color:rgba(255,255,255,.74);
    font-size:15px;
    line-height:1.35;
    font-weight:650;
    text-decoration:none;
    transition:color .22s ease, transform .22s ease;
}

.resocom-site-footer__column a:hover{
    color:#F6903D;
    transform:translateX(3px);
}

.resocom-site-footer__bottom{
    position:relative;
    z-index:2;
    width:100%;
    max-width:1320px;
    margin:0 auto;
    padding:24px 28px 30px;
    border-top:1px solid rgba(255,255,255,.12);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    color:rgba(255,255,255,.62);
    font-size:13px;
    line-height:1.5;
    font-weight:600;
}

@media(max-width:1100px){
    .resocom-site-footer__inner{
        grid-template-columns:1fr;
        gap:46px;
        padding-top:64px;
    }

    .resocom-site-footer__brand{
        max-width:680px;
    }

    .resocom-site-footer__columns{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:700px){
    .resocom-site-footer__inner{
        padding:54px 22px 38px;
    }

    .resocom-site-footer__columns{
        grid-template-columns:1fr;
        gap:30px;
    }

    .resocom-site-footer__bottom{
        padding:22px 22px 28px;
        flex-direction:column;
        align-items:flex-start;
    }

    .resocom-site-footer__logo img,
    .resocom-site-footer__logo .custom-logo{
        max-width:165px;
    }
}

/* =====================================================
   RESOCOM — RESET ESPACEMENTS ASTRA
   Supprime les marges ajoutées par Astra autour du contenu
====================================================== */

body.ast-plain-container.ast-no-sidebar #primary,
body.ast-separate-container.ast-no-sidebar #primary,
body.ast-page-builder-template #primary,
body.ast-page-builder-template .site-content,
body.ast-page-builder-template .site-content > .ast-container{
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
}

@media(min-width:1200px){
    body.ast-plain-container.ast-no-sidebar #primary.site-main,
    body.ast-plain-container.ast-no-sidebar main#primary,
    body.ast-plain-container.ast-no-sidebar #primary,
    body.ast-separate-container.ast-no-sidebar #primary{
        margin-top:0 !important;
        margin-bottom:0 !important;
    }
}

/* Pleine largeur propre pour les pages custom PHP et Elementor */
body .site-content > .ast-container,
body .site-content .ast-container{
    max-width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

/* Évite les marges parasites Gutenberg / Astra */
body .entry-content{
    margin-top:0 !important;
    margin-bottom:0 !important;
}

body .entry-content > :first-child{
    margin-top:0 !important;
}

body .entry-content > :last-child{
    margin-bottom:0 !important;
}