@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ========================================
   Variables
   ======================================== */

:root {
    --gutter-width: 15px;
    --heading-prefix-width: 30px;
    --heading-prefix-spacer: 15px;
}

/* ========================================
   Base / Layout
   ======================================== */

body,
main {
    overflow-x: hidden;
}

header > .elementor-element,
footer,
.page-content > .elementor,
main [data-elementor-type="wp-page"],
.elementor-location-single > .page-content{
    padding: 0 var(--gutter-width);
    overflow: visible;
}

footer >  .e-con-full > .e-con,
main [data-elementor-type="wp-page"] > .e-con-full > .e-con {
    max-width: calc(100% - 2 * var(--gutter-width));
    margin-left: auto;
    margin-right: auto;
}

.page-content > .elementor > .e-con-full,
footer > .e-con-full,
main .page-container [data-elementor-type="wp-page"] > .e-con-full{
    max-width: calc(100% + (2 * var(--gutter-width))) !important;
    margin-left: calc(-1 * var(--gutter-width));
    margin-right: calc(-1 * var(--gutter-width));
    width: auto;
}

.page-container{
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ========================================
   Header
   ======================================== */

.sticky-phone{
    width: auto;
    bottom: 0;
    transform: translateY(100%);
}

.header .logo-container .elementor-widget-image{
    transform: translateX(-50%);
}

.header .secondary-nabar-container .elementor-icon-wrapper{
    display: flex;
}

.header .navbar nav > ul{
    padding-top: 40px;
    padding-bottom: 10px;
}

/* ========================================
   Headings (h1, h2)
   ======================================== */

h1,
h2{
    position: relative;
}

h1 a,
h2 a {
    color: inherit !important;
}

/* Par défaut : tiret sur tous les H1/H2 */
h1::before,
h2::before,
body:not(.home) .no-indent h1::before,
body:not(.home) .no-indent h2::before {
    position: absolute;
    left: calc(-1 * var(--heading-prefix-spacer));
    content: "";
    height: 3px;
    background-color: var(--e-global-color-accent);
    border: none;
    width: var(--heading-prefix-width);
    display: flex;
    flex: 0 0 auto;
    margin-top: calc((var(--e-global-typography-primary-font-size) * var(--e-global-typography-primary-line-height)) / 2);
    transform: translate(-100%, -100%);
}

h2::before {
    background-color: var(--e-global-color-primary);
    margin-top: calc((var(--e-global-typography-secondary-font-size) * var(--e-global-typography-secondary-line-height)) / 2);
}

h2,
.home h2.no-indent,
.home .no-indent h2{
    text-indent: calc(var(--heading-prefix-width) + var(--heading-prefix-spacer));
}

.textIndent {
    padding-left: calc(var(--heading-prefix-width) + var(--heading-prefix-spacer));
}

body:not(.home) h2:not(.no-indent)::before,
.home h2.no-indent::before,
.home .no-indent h2::before {
    left: 0;
    transform: translate(0, -100%);
}

body:not(.home) .no-indent h2::before {
    left: calc(-1 * var(--heading-prefix-spacer));
    transform: translate(-100%, -100%);
    margin-top: calc((var(--e-global-typography-secondary-font-size) * var(--e-global-typography-secondary-line-height)) / 2);
}

.home h2,
h2.no-indent,
.no-indent h2,
.no-dash h2,
h2.no-dash,
.no-dash h1,
h1.no-dash {
    text-indent: 0;
}

/* H2 sur fond foncé : texte blanc + tiret bleu clair */
.dark-bg h2,
h2.dark-bg {
    color: #fff;
}

.dark-bg h2::before,
h2.dark-bg::before {
    background-color: var(--e-global-color-accent);
}

/* Opt-out : retirer le tiret sur un titre précis */
h1.no-dash::before,
h2.no-dash::before {
    display: none;
}

/* Opt-out sur une zone complète (section/container) */
.no-dash h1::before,
.no-dash h2::before {
    display: none;
}

/* ========================================
   Boutons
   ======================================== */

.btn-secondary,
#btn-secondary {
    background-color: #fff;
    color: var(--e-global-color-text);
}

.btn-secondary:hover,
#btn-secondary:hover {
    background-color: var(--e-global-color-secondary);
}

/* ========================================
   Custom Link
   ======================================== */

.customLink {
    cursor: pointer;
}

.customLink .elementor-icon-box-title{
    position: relative;
}

.customLink .elementor-icon-box-title:before{
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 1px;
    background-color: var(--e-global-color-primary);
    transition: width 250ms ease;
}

.customLink:hover .elementor-icon-box-title:before{
    width: 100%;
}

.elementor-widget-text-editor a {
    font-size: inherit;
    font-weight: inherit;
}

/* ========================================
   Mentions légales
   ======================================== */

#mentionsLegales h2 {
    margin-top: 2rem;
}

/* ========================================
   Bloc Motif
   ======================================== */

.e-con-full .e-con.blocMotif {
    margin-left: 0;
    margin-right: 0;
}

.blocMotif {
    position: relative;
    overflow: hidden;
    z-index: 1;
    aspect-ratio: 1 / 1;
}

.blocMotif:before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--e-global-color-primary);
    -webkit-mask: url('../img/motif-fond-bloc.svg') no-repeat center / cover;
    mask: url('../img/motif-fond-bloc.svg') no-repeat center / cover;
}

/* ========================================
   Formulaires
   ======================================== */

.elementor-field-type-acceptance *,
.elementor-field-type-acceptance label,
.elementor-field-type-acceptance small{
    cursor: pointer;
}

.elementor-field-type-acceptance a{
    font-size: inherit;
    color: var(--e-global-color-primary);
}

.elementor-field-type-acceptance a:hover{
    text-decoration: underline;
}

.elementor-field-type-acceptance .elementor-field-option label{
    vertical-align: baseline;
}

/* ========================================
   Flip Box
   ======================================== */

.elementor-flip-box{
    min-height: 100%;
}

/* ========================================
   Custom Align Box
   ======================================== */
.contactGuarantees > div:nth-child(2){
    position: relative;
}
.contactGuarantees .elementor-icon-box-wrapper{
    height: 100%;
}
.contactGuarantees .elementor-icon-box-icon{
    display: flex;
    height: 120px;
    align-items: center;
    justify-content: center;
}

.contactGuarantees .elementor-icon-box-content{
    display: flex;
    align-items: center;
    justify-content: center;
}

.contactGuarantees > div:nth-child(2):before,
.contactGuarantees > div:nth-child(2):after {
    content: '';
    position: absolute;
    width: min(250px, 60%);
    height: 2px;
    background-color: #fff;
    left: 50%;
    top: calc(-1 * var(--column-gap) / 2);
    transform: translate(-50%, -50%);
    opacity: 0.6;
}

.contactGuarantees > div:nth-child(2):after {
    top: auto;
    bottom: calc(-1 * var(--column-gap) / 2);
}

.elementor-element.customAlignBox .elementor-icon-box-wrapper{
    height: 100%;
}

.elementor-element.customAlignBox .elementor-icon-box-wrapper .elementor-icon-box-icon{
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.elementor-element.customAlignBox .elementor-icon-box-wrapper .elementor-icon-box-content{
    flex-grow: 0;
}

.companyContacts .customBtn {
    justify-self: center;
}

.categoriesLayout .elementor-cta__bg.elementor-bg {
    background-repeat: no-repeat;
    background-size: contain;
}

.categoriesLayout .elementor-cta{
    justify-content: space-between;
    height: 100%;
}
.categoriesLayout .elementor-cta__content{
    padding: 0 1rem;
}
.categoriesLayout .elementor-cta__title{
    margin-bottom: 0 !important;
    padding-bottom: 5px;
}

.customIconBaner .elementor-widget-text-editor a{
    font-size: inherit;
    font-weight: inherit;
}
.customIconBaner .elementor-widget-text-editor a:hover{
    text-decoration: underline;
}

.custom-counters .elementor-counter-title{
    text-align: center;
}

.companyServices > a {
    color: var(--e-global-color-primary);
}

#cookiesAcceptation {
    text-align: center;
}

#cookiesAcceptation .cmplz-revoke-custom {
    border-color: #fff;
    margin-bottom: 1.5rem;
    cursor: pointer;
    font-size: inherit;
}
#cookiesAcceptation .cmplz-revoke-custom:disabled{
    opacity: 1;
}

#cmplz-cookiebanner-container #cmplz-message-1-optin p a{
    font-size: inherit;
}


/* ========================================
   Media Queries
   ======================================== */

/* --- max-width: 767px (Mobile) --- */

@media (max-width: 767px) {
    footer .elementor-nav-menu--layout-vertical ul {
        margin-inline-end: auto;
        margin-inline-start: auto;
    }
    footer .elementor-nav-menu--layout-vertical ul a{
        justify-content: center !important;
    }
    
    .companyExpertises .e-con.blocMotif ,
    .companyContacts .e-con.blocMotif ,
    .companyServices .e-con.blocMotif {
        justify-content: space-around;
        width: min(100%, 300px);
    }
}

/* --- min-width: 768px / max-width: 991px (Tablet only) --- */

@media (min-width: 768px) and (max-width: 991px) {
    .containerHalfWidth{
        background: none !important;
    }

    .contactDetails ul.elementor-icon-list-items{
        display: flex;
        gap: 2rem;
        align-items: center;
        justify-content: center;
    }
    .contactDetails ul li{
        padding: 0 !important;
        align-self: center;
        justify-self: center;
        margin: 0 !important;
    }
}

/* --- min-width: 768px (Tablet+) --- */

@media (min-width: 768px) {
    .header .logo-container{
        flex: 0 0 40% !important;
    }
    .header .secondary-nabar-container{
        flex: 0 0 40% !important;
    }
    .header .navbar nav > ul {
        padding-top: 30px;
    }
    
    .contactGuarantees > div:nth-child(2):before,
    .contactGuarantees > div:nth-child(2):after {
        height: 90%;
        width: 2px;
        left: calc(-1 * var(--column-gap) / 2);
        bottom: 0;
        top: auto;
        transform: translate(-50%, 0);
    }

    .contactGuarantees > div:nth-child(2):after {
        left: auto;
        right: calc(-1 * var(--column-gap) / 2);
    }
    
    .companyContacts .customBtn a{
        padding-top: 8px;
        padding-bottom: 8px;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

/* --- min-width: 992px (Desktop) --- */

@media (min-width: 992px) {
    .contentHalfWidth{
        width: calc(var(--container-max-width) / 2 );
    }

    .header .navbar nav > ul {
        padding-top: 0;
        padding-bottom: 0;
    }
    .header .logo-container{
        flex: 0 0 15% !important;
    }
    .header .logo-container .elementor-widget-image{
        transform: none;
    }
    .header .secondary-nabar-container{
        flex: 0 0 30% !important;
    }
}

/* --- min-width: 1200px (Large Desktop) --- */

@media (min-width: 1200px) {
    :root {
        --heading-prefix-width: 48px;
        --heading-prefix-spacer: 27px;
    }
    
    .header .logo-container{
        flex: 0 0 20% !important;
    }
}

/* --- min-width: 1366px (XL Desktop) --- */

@media (min-width: 1366px) {
    .page-content > .elementor > .e-con-full > .elementor-element,
    footer > .e-con-full > .elementor-element,
    .page-content > .elementor > .e-con-full > .e-con-inner,
    footer > .e-con-full > .e-con-inner{
        max-width: min(calc(100vw - 2 * var(--gutter-width)), var(--container-max-width));
        margin-left: auto;
        margin-right: auto;
    }

    .contentHalfWidth{
        width: calc(min(calc(100vw - 2 * var(--gutter-width)), var(--container-max-width)) / 2 );
    }

    /* .header .logo-container{
        flex: 0 0 25% !important;
    }
    .header .secondary-nabar-container{
        flex: 0 0 28% !important;
    } */
}


/* --- min-width: 1420 --- */

@media (min-width: 1420px) {
    .header .logo-container{
        flex: 0 0 25% !important;
    }
    .header .secondary-nabar-container{
        flex: 0 0 28% !important;
    }
}
