/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Author: TotemWeb
Author URI: https://totemweb.design
Version: 1.0.0
Template: generatepress
Text Domain: generatepress-child
*/

/* VARIABLES DU THÈME
:root {
	--blanc: #ffffff;
	--gris: #f8f8f8;
	--noir: #000000;
	--rouge-pale: #d90018;
	--rouge-fonce: #ae0013;
} */

/* TYPOGRAPHIE */
h1 {
    font-size: 54px;
    line-height: 64px;
    font-weight: 700;
    letter-spacing: 1px;
    width: fit-content;
}
h2 {
    font-size: 50px;
    line-height: 50px;
    font-weight: 700;
    letter-spacing: 0px;
}
h3 {
    font-size: 30px;
    line-height: 40px;
    font-weight: 500;
    letter-spacing: 0px;
}
h4 {
    font-size: 24px;
    line-height: 30px;
    letter-spacing: 0px;
}
h5 {
    font-size: 22px;
    line-height: 28px;
    margin-bottom: 0px;
    font-weight: 700;
    letter-spacing: 0px;
}
p {
    font-size: 16px;
	line-height: 24px;
    letter-spacing: 0.5px;
}
a {
    font-size: 16px;
	line-height: 20px;
    letter-spacing: 0.5px;
}

/* GÉNÉRAL */
html, body { overflow-x:hidden; }
.site-content #primary.content-area-full { min-width:100%; }
.site-main > section { margin-bottom: 0px!important; }
.site {
	padding-top: 90px;
	min-width: 100%!important;
}
.section-padding {
	margin-bottom: 0px;
	padding: 100px 0px!important;
}
.separate-containers .site-main {
    margin: 0px;
}

/* IMAGES */
img { max-width: 100%; }

/* PADDING */
.pad10 { padding: 10px; }
.pad20 { padding: 20px; }
.pad30 { padding: 30px; }
.pad40 { padding: 40px; }
.pad50 { padding: 50px; }
.pad60 { padding: 60px; }
.pad80 { padding: 80px; }
.pad120 { padding: 120px; }

.padT10 { padding-top: 10px; }
.padT20 { padding-top: 20px; }
.padT30 { padding-top: 30px; }
.padT40 { padding-top: 40px; }
.padT50 { padding-top: 50px; }
.padT60 { padding-top: 60px; }
.padT80 { padding-top: 80px; }

.padB10 { padding-bottom: 10px; }
.padB20 { padding-bottom: 20px; }
.padB30 { padding-bottom: 30px; }
.padB40 { padding-bottom: 40px; }
.padB50 { padding-bottom: 50px; }
.padB60 { padding-bottom: 60px; }
.padB80 { padding-bottom: 80px; }

.padL10 { padding-left: 10px; }
.padL20 { padding-left: 20px; }
.padL30 { padding-left: 30px; }
.padL40 { padding-left: 40px; }
.padL50 { padding-left: 50px; }
.padL60 { padding-left: 60px; }
.padL80 { padding-left: 80px; }

.padR10 { padding-right: 10px; }
.padR20 { padding-right: 20px; }
.padR30 { padding-right: 30px; }
.padR40 { padding-right: 40px; }
.padR50 { padding-right: 50px; }
.padR60 { padding-right: 60px; }
.padR80 { padding-right: 80px; }

.noPad { padding: 0px; }
.noPadT { padding-top: 0px; }
.noMPadB { padding-bottom: 0px; }
.noPadR { padding-right: 0px; }
.noPadL { padding-left: 0px; }

/* MARGIN */
.marg10 { margin: 10px; }
.marg20 { margin: 20px; }
.marg30 { margin: 30px; }
.marg40 { margin: 40px; }
.marg50 { margin: 50px; }
.marg60 { margin: 60px; }
.marg80 { margin: 80px; }

.margT10 { margin-top: 10px; }
.margT20 { margin-top: 20px; }
.margT30 { margin-top: 30px; }
.margT40 { margin-top: 40px; }
.margT50 { margin-top: 50px; }
.margT60 { margin-top: 60px; }
.margT80 { margin-top: 80px; }

.margB4 { margin-bottom: 4px; }
.margB10 { margin-bottom: 10px; }
.margB20 { margin-bottom: 20px; }
.margB30 { margin-bottom: 30px; }
.margB40 { margin-bottom: 40px; }
.margB50 { margin-bottom: 50px; }
.margB60 { margin-bottom: 60px; }
.margB80 { margin-bottom: 80px; }

.margL10 { margin-left: 10px; }
.margL20 { margin-left: 20px; }
.margL30 { margin-left: 30px; }
.margL40 { margin-left: 40px; }
.margL50 { margin-left: 50px; }
.margL60 { margin-left: 60px; }
.margL80 { margin-left: 80px; }

.margR10 { margin-right: 10px; }
.margR20 { margin-right: 20px; }
.margR30 { margin-right: 30px; }
.margR40 { margin-right: 40px; }
.margR50 { margin-right: 50px; }
.margR60 { margin-right: 60px; }
.margR80 { margin-right: 80px; }

.noMarg { margin: 0px!important; }
.noMargT { margin-top: 0px!important; }
.noMargB { margin-bottom: 0px!important; }
.noMargR { margin-right: 0px!important; }
.noMargL { margin-left: 0px!important; }

/* DISPLAY */
.block { display: block; }
.inline-block { display: inline-block; }
.flex { display: flex; }
.hidden { display: none!important; }
.visibility-hidden { visibility: hidden; }
.fullwidth { width: 100%;}

/* FLEX */
.flex { display: flex; }
.flex-col-rev{ flex-direction: column-reverse; }
.flex-row-rev{ flex-direction: row-reverse; }
.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }
.justify-center { justify-content: flex-end; }
.justify-space-between { justify-content: space-between; }
.wrap { flex-wrap: wrap; }
.align-items-center { align-items: center; }
.align-items-end { align-items: flex-end; }
.align-content-center { align-content: center; }
.align-self-center { align-self: center; }
.row-reverse { flex-flow: row-reverse; }
.col-gap-20 { column-gap:20px; }
.col-gap-40 { column-gap:40px; }
.col-gap-60 { column-gap:60px; }

/* BORDER RADIUS */
.radius10 { border-radius: 10px; }
.radius20 { border-radius: 20px; }
.radius30 { border-radius: 30px; }

/* OPACITY */
.opacity-10 { opacity: 0.1;}
.opacity-20 { opacity: 0.2;}
.opacity-30 { opacity: 0.3;}
.opacity-40 { opacity: 0.4;}
.opacity-50 { opacity: 0.5;}
.opacity-60 { opacity: 0.6;}
.opacity-70 { opacity: 0.7;}
.opacity-80 { opacity: 0.8;}
.opacity-90 { opacity: 0.9;}

/* SHADOW */
.box-shadow { box-shadow: 0px 3px 6px rgba(0,0,0,0.2) }

/* FLOATS & CLEAR */
.float-right { float: right;}
.float-left { float: left;}
.clear { clear: both; }

/* COULEURS */
.coul-blanc, .coul-blanc, .coul-hover-blanc:hover { color:var(--blanc); }
.bg-blanc, .bg-blanc, .bg-hover-blanc:hover { background-color:var(--blanc); }
.border-blanc, .border-hover-blanc:hover { border: 4px solid var(--blanc); }

.coul-gris, .coul-hover-gris:hover { color:var(--gris); }
.bg-gris, .bg-hover-gris:hover { background-color:var(--gris); }
.border-gris, .border-hover-gris:hover { border: 4px solid var(--gris); }

.coul-noir, .coul-hover-noir:hover { color:var(--noir); }
.bg-noir, .bg-hover-noir:hover { background-color:var(--noir); }
.border-noir, .border-hover-noir:hover { border: 4px solid var(--noir); }

.coul-rouge-pale, .coul-hover-rouge-pale:hover { color:var(--rouge-pale); }
.bg-rouge-pale, .bg-hover-rouge-pale:hover { background-color:var(--rouge-pale); }
.border-rouge-pale, .border-hover-rouge-pale:hover { border: 4px solid var(--rouge-pale); }

.coul-rouge-fonce, .coul-hover-rouge-fonce:hover { color:var(--rouge-fonce); }
.bg-rouge-fonce, .bg-hover-rouge-fonce:hover { background-color:var(--rouge-fonce); }
.border-rouge-fonce, .border-hover-rouge-fonce:hover { border: 4px solid var(--rouge-fonce); }

/* FILTRES */
.filtre-noir { background-color: rgba(0, 0, 0, 0.6); background-blend-mode: multiply;}
.filtre-blanc { background-color: rgba(255, 255, 255, 0.9); background-blend-mode: overlay;}

/* ------------------------------------------ */

/* BOUTONS */
.bouton {
    padding: 15px;
    font-weight: bold;
    text-decoration: none;
    letter-spacing: 0.5px;
    font-size: 16px;
    line-height: 20px;
    text-transform: uppercase;
    width: fit-content;
}
.bouton:hover {
    background-color: var(--rouge-fonce);
    color: var(--blanc);
}
.section-boutons {
    padding-top: 20px;
}


/* ------------------------------------------ */

/* ACCUEIL */
/* Partout */
.divider {
   	/* border: 4px solid var(--rouge-pale); */
    border-right: 0px;
    border-left: 0px;
    height: 13px;
    display: inline-block;
    margin-bottom: 30px;
    margin-top: 10px;
    width: 80px;
    background-color: transparent;
    transform: skewY(-10deg);
}

/* Section Banniere Entete */
.home .section-banniere {
    min-height: 600px;
}
.section-banniere.background-type-video {
	background-color: transparent;
    height: 100vh;
}
.video-banniere {
    object-fit: cover;
    object-position: bottom;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -2;
    background-color: #333;
}
.section-banniere {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
	/* background-color:#333; */
}
.section-banniere p {
    font-size: 18px;
    line-height: 30px;
}
.section-banniere .section-content {
    height: fit-content;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
}
.section-banniere .section-content .entete-titre {
    margin-top: 30px;
    width: 75%;
	margin-bottom:10px;
}
.section-banniere .section-content .entete-texte {
    width: 75%;
}

/* Section Texte et Image */
.section-texte-image {
    display: flex;
    column-gap: 80px;
    padding-left: 80px !important;
    padding-right: 80px !important;
}
.section-texte-image.image-gauche {
	flex-direction: row;
}
.section-texte-image.image-droite {
	flex-direction: row-reverse;
}
.section-texte-image .col-texte {
	flex-direction: column;
    display: flex;
    justify-content: center;
    flex: 1;
}
.section-texte-image .col-image {
    width: 50%;
}

.section-texte-image .col-image img {
    width: 100%;
}

/* Section Pleine Largeur */
.section-pleine-largeur {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.section-pleine-largeur.texte-centre {
    text-align: center;
}
.section-pleine-largeur.texte-centre .divider {
    margin: 5px auto 25px;
}
.section-pleine-largeur.texte-gauche .titre, 
.section-pleine-largeur.texte-gauche .texte {
    width: 75%;
    text-align: start;
}

/* Section Liste */
.section-liste .section-content {
    display: flex;
    column-gap: 80px;
}
.section-liste .col-gauche {
    flex: 1;
}
.section-liste .col-droite {
    flex: 2;
    display: flex;
    flex-direction: column;
    row-gap: 40px;
}
.section-liste .col-droite .liste-item {
    display: flex;
    column-gap: 20px;
}
.section-liste .col-droite .liste-item .liste-image {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    flex: 1;
    aspect-ratio: 1/1;
}
.section-liste .col-droite .liste-item .liste-info {
    display: flex;
    flex-direction: column;
    flex: 2;
    justify-content: center;
}
.section-liste .col-droite .liste-item .liste-info p:last-of-type {
    margin-bottom: 0px;
}

/* Section Blocs en alternance */
.section-blocs .section-content {
    display: flex;
    flex-direction: column;
    row-gap: 40px;
}
.section-blocs .blocs {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
}
.section-blocs .blocs .bloc {
    display: flex;
    flex-direction: row;
    min-height: 400px;
}
.section-blocs .blocs .bloc:nth-of-type(even) {
    display: flex;
    flex-direction: row-reverse;
}
.section-blocs .blocs .bloc .image {
    flex: 1;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
}
.section-blocs .blocs .bloc .contenu {
    flex: 1;
    flex-direction: column;
    display: flex;
    row-gap: 20px;
    justify-content: center;
}
.section-blocs .blocs .bloc .contenu p {
    margin-bottom: 10px;
}
.section-blocs .blocs .bloc .contenu .top {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
    padding: 60px;
}
.section-blocs .blocs .bloc .contenu .titre {
    display: flex;
    column-gap: 20px;
    align-items: center;
    margin-bottom: 0px;
}
.section-blocs .blocs .bloc .contenu ul {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
    margin: 0px 0px 0px 20px;
}

/* Section Icones */
.section-icones {
    text-align: center;
    display: flex;
    flex-direction: column;
    row-gap: 40px;
}
.section-icones .divider {
    margin: auto;
}
.section-icones .icones {
    display: flex;
    padding-left: 80px !important;
    padding-right: 80px !important;
    flex-wrap: wrap;
    row-gap: 40px;
    column-gap: 40px;
    justify-content: center;
}
.section-icones .icone {
    flex: 0 0 340px;
    text-align: center;
}
.section-icones .icone i {
    font-size: 50px;
    margin-bottom: 20px;
}

/* Section Expertises */
.section-expertises .section-content {
    display: flex;
    flex-direction: column;
    row-gap: 40px;
}
.section-expertises .expertises {
    display: flex;
    column-gap: 40px;
    flex-wrap: wrap;
    row-gap: 40px;
}
.section-expertises .expertises .expertise {
    flex: 1 0 45%;
	min-height: 300px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 20px 40px;
	transition-duration: 0.5s;
}
.section-expertises .expertises .expertise:hover {
    background-color: rgba(255, 255, 255, 0.9); 
    background-blend-mode: overlay;
	justify-content: space-between;
}
.section-expertises .expertises .expertise-titre {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.section-expertises .expertises .expertise-titre h3 {
    margin-bottom: 0px;
    color: var(--blanc);
    width: 75%;
	transition-duration: 1s;
}

.section-expertises .expertises .expertise:hover .expertise-titre h3 {
    color: var(--noir);
}

.section-expertises .expertises .expertise-titre i {
    font-size: 30px;
    color: var(--rouge-pale);
    margin-top: 5px;
}

.section-expertises .expertises .expertise-description {
    margin-top:20px;
}

.section-expertises .expertises .expertise-description p {
	color:black;
	margin-bottom:0px;
	display:none;
	transition-duration: 1s;
}

.section-expertises .expertises .expertise:hover .expertise-description p {
	display:block;
}

/* Section Entreprises */
.section-entreprises-logo {
    border-radius: 10px;
    padding: 10px;
    background-color: black;
}
.section-texte-image hr {
    border: 4px solid var(--rouge-pale);
    border-right: 0px;
    border-left: 0px;
    height: 13px;
    display: inline-block;
    margin-bottom: 30px;
    margin-top: 10px;
    width: 80px;
    background-color: transparent;
    transform: skewY(-10deg);
}

/* FORMS */
.wpcf7 input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
    width: 100%;
    border-color: transparent;
    border: 0px;
}
.wpcf7 input[type="submit"] {
    float: right;
}
.wpcf7 form .wpcf7-response-output {
    margin: 44px 0px 0px;
    padding: 10px;
    font-size: 18px;
    line-height: 24px;
}

/* RESPONSIVE */
@media screen and (max-width : 1270px) {
    .section-padding {
        padding: 100px 40px !important;
    }
    .grid-container {
        max-width: 1270px;
    }
    .site-header .header-image {
        width: 180px;
    }
    .main-nav li.mega-menu > ul.sub-menu {
        padding-top: 15px;
    }

    /* Section Texte et Image */
    .section-texte-image {
        column-gap: 60px;
    }

    /* Section Icones */
    .section-icones {
        row-gap: 40px;
    }
    .section-icones .icones {
        padding-left: 0px !important;
        padding-right: 0px !important;
    }
    .section-icones .icone {
        flex: 0 0 47%;
        display: flex;
        flex-direction: column;
    }
    .section-icones .icone:nth-of-type(even) {
        border-right: 0px;
    }

    /* Section Expertises // Accueil */
    .section-expertises .expertises .expertise {
        justify-content: center;
        min-height: 250px;
    }
    .section-expertises .expertises .expertise:hover {
        justify-content: center;
    }
    .section-expertises .expertises .expertise-description {
        display: none;
    }

    footer {
        padding: 80px 40px 40px 40px;
    }
}

@media screen and (max-width : 1024px) {
    /* General */
    .site {
        padding-top: 70px;
    }
    .site-logo {
        background-color: var(--noir);
        padding: 20px;
    }
    .main-navigation {
        padding: 0px 10px;
    }
    .main-nav li.mega-menu > ul.sub-menu {
        padding-top: 0px;
    }

    /* Section Boutons */
    .section-texte-image .section-boutons {
        padding-bottom: 40px;
    }

    /* Section texte et image */
    .section-texte-image.image-gauche {
        flex-direction: column-reverse;
    }
    .section-texte-image.image-droite {
        flex-direction: column-reverse;
    }
    .section-texte-image .col-image {
        width: 100%;
    }
    .section-texte-image .col-texte {
        width: 100%;
    }
    .section-texte-image.image-gauche .col-texte {
        margin-bottom: 40px;
    }

    /* Section liste */
    .section-liste .section-content {
        flex-direction: column;
        row-gap: 40px;
    }

    /* Section blocs */
    .section-blocs .blocs .bloc .contenu {
        flex: 1;
    }
    .section-blocs .blocs .bloc .image {
        width: 50%;
        flex: none;
    }
    .section-blocs .blocs .bloc .contenu .top {
        padding: 20px !important;
    }

    /* section expertises */
    .section-expertises .expertises .expertise {
        min-height: 200px;
        padding: 20px;
    }

    /* footer */
    .footer-content .col-droite .menus-footer {
        flex-direction: column;
        row-gap: 20px;
    }
    footer .copyright {
        flex-wrap: wrap;
        row-gap: 20px;
    }
}

@media screen and (max-width : 960px) {
    .main-navigation .main-nav ul li a {
        padding-left: 10px;
        padding-right: 10px;
    }
    .main-navigation a {
        font-size: 16px;
    }

    /* Section expertises */
    .section-expertises h3 {
        font-size: 25px;
        line-height: 30px;
    }
}

@media screen and (max-width : 820px) { 
    /* Section icones */
    .section-icones .icones {
        flex-wrap: nowrap;
        flex-direction: column;
        row-gap: 20px;
    }
    .section-icones .icone {
        border: 0px;
    }

    /* section expertises */
    .section-expertises .expertises {
        flex-wrap: nowrap;
        row-gap: 20px;
        flex-direction: column;
    }
    .section-expertises .expertises .expertise-titre h3 {
        width: 90%;
    }

    /* section blocs */
    .section-blocs .blocs .bloc {
        flex-direction: column;
    }   
    .section-blocs .blocs .bloc .image {
        height: 350px;
        width: 100%;
    }
    .section-blocs .blocs .bloc:nth-of-type(even) {
        flex-direction: column;
    }

    /* footer */
    .footer-content {
        flex-direction: column;
        row-gap: 40px;
    }
    .footer-content .col-gauche {
        row-gap: 10px;
    }
}

@media screen and (max-width : 768px) {
    /* General */
    html #wpadminbar {
        z-index: -1000000;
    }
    .site {
        padding-top: 100px;
    }
    button.menu-toggle:hover, button.menu-toggle:focus {
        color: var(--rouge-pale);
    }
    #mobile-header {
        position: fixed;
        top: 0;
    }
    .main-navigation {
        padding: 0px;
    }
    .main-navigation a {
        font-size: 19px;
    }
    .main-navigation .inside-navigation {
        justify-content: flex-end;
    }
    .navigation-branding .main-title, .mobile-header-navigation .site-logo {
        margin-left: 0px !important;
    }
    .main-navigation .main-nav ul li a {
        line-height: 45px;
        font-weight: 600;
        text-align: end;
    }
    .main-navigation.toggled .menu-item-has-children .dropdown-menu-toggle {
        float: left;
    }
    .main-navigation .main-nav ul li.menu-item-has-children>a {
        padding-right: 10px;
        display: flex;
        flex-direction: row-reverse;
    }
    .main-navigation.toggled .main-nav li {
        width: 100% !important;
    }
    .main-nav li.mega-menu > ul.sub-menu > li {
        height: 75px;
    }
    .main-nav li.mega-menu > ul.sub-menu > li > a {
        padding: 10px 20px;
        height: 75px;
        justify-content: flex-start;
        text-align: start;
    }

    /* section bannière entête */
    .section-banniere .section-content .entete-titre {
        width: 100%;
        margin-top: 0px;
    }
    .section-banniere .section-content .entete-texte {
        width: 100%;
    }
    
    /* section pleine largeur */
    .section-pleine-largeur.texte-gauche .titre, 
    .section-pleine-largeur.texte-gauche .texte {
        width: 100%;
    }

    /* section liste */
    .section-liste .col-droite .liste-item .liste-image {
        aspect-ratio: auto;
    }
}

@media screen and (max-width : 600px) {
    h1 {
        font-size: 45px;
        line-height: 55px;
    }
    h3 {
        font-size: 28px;
        line-height: 38px;
    }
    /* section liste */
    .section-liste .col-droite .liste-item {
        flex-direction: column;
        row-gap: 20px;
    }
    .section-liste .col-droite .liste-item .liste-image {
        aspect-ratio: 2/1;
    }
}

@media screen and (max-width : 450px) {
    /* General */
    .site {
        padding-top: 65px;
    }
    .navigation-branding img, 
    .site-logo.mobile-header-logo img {
        height: 45px !important;
    }
    .site-logo {
        padding: 10px 15px;
    }
    h1 {
        font-size: 30px;
        line-height: 40px;
    }
    h2 {
        font-size: 35px;
        line-height: 40px;
    }
    h3 {
        font-size: 25px;
        line-height: 35px;
    }
    .section-padding {
        padding: 60px 20px !important;
    }

    /* footer */
    footer {
        padding: 60px 20px 40px 20px;
    }
    #menu-footer-colonne-3 {
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .footer-content .col-droite form input[type="email"] {
        flex: auto;
        width: 100%;
    }
}

@media screen and (max-width : 400px) {
    h1 {
        font-size: 34px;
        line-height: 44px;
    }
    h2 {
        font-size: 32px;
        line-height: 32px;
    }

    .footer-content .col-droite form p:has(.wpcf7-form-control-wrap) {
        flex-direction: column;
    }
    .footer-content input[type="submit"] {
        width: fit-content;
    }
}