/* ==========================================================================
   STB l’Espace Fenêtre ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â template.css (Genesis v35 / WF32)
   BLOC 1 Foundation Ãƒâ€šÃ‚Â· BLOC 2 Components Ãƒâ€šÃ‚Â· BLOC 3 Layout Ãƒâ€šÃ‚Â· BLOC 4 Finishing
   ========================================================================== */
.france-renov {
    background: #FFF;
    padding: 15px 0 0;
}
a#pres {
    pointer-events: none;
}
.p-absolute {
position: absolute !important;
}
.txt-white {
--bs-text-opacity: 1;
color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
}
/* ==========================================================================
   BLOC 1 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â FOUNDATION
   ========================================================================== */

/* --- Fonts (Figma : Barlow + Barlow Semi Condensed) --- */
@font-face {
    font-family: 'KoHo';
    src: url('../fonts/KoHo-Bold.woff2') format('woff2'),
        url('../fonts/KoHo-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'KoHo';
    src: url('../fonts/KoHo-ExtraLight.woff2') format('woff2'),
        url('../fonts/KoHo-ExtraLight.woff') format('woff');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'KoHo';
    src: url('../fonts/KoHo-Italic.woff2') format('woff2'),
        url('../fonts/KoHo-Italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'KoHo';
    src: url('../fonts/KoHo-Light.woff2') format('woff2'),
        url('../fonts/KoHo-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'KoHo';
    src: url('../fonts/KoHo-Medium.woff2') format('woff2'),
        url('../fonts/KoHo-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'KoHo';
    src: url('../fonts/KoHo-Regular.woff2') format('woff2'),
        url('../fonts/KoHo-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'KoHo';
    src: url('../fonts/KoHo-SemiBold.woff2') format('woff2'),
        url('../fonts/KoHo-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-ExtraLight.woff2') format('woff2'),
        url('../fonts/Manrope-ExtraLight.woff') format('woff');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-ExtraLight_1.woff2') format('woff2'),
        url('../fonts/Manrope-ExtraLight_1.woff') format('woff');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-Light.woff2') format('woff2'),
        url('../fonts/Manrope-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-Medium.woff2') format('woff2'),
        url('../fonts/Manrope-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-Regular.woff2') format('woff2'),
        url('../fonts/Manrope-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-SemiBold.woff2') format('woff2'),
        url('../fonts/Manrope-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-Bold.woff2') format('woff2'),
        url('../fonts/Manrope-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-ExtraBold.woff2') format('woff2'),
        url('../fonts/Manrope-ExtraBold.woff') format('woff');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}






/* --- Tokens Figma ÃƒÂ¢Ã¢â‚¬Â Ã¢â‚¬â„¢ variables projet / BS5 --- */
:root {
    --primary-color: #24101F;      /* Primary/Marine */
    --secondary-color: #872C7B;    /* Secondary/Teal */
      --secondary-bg: #FBF8FB;
--violet-color: #86327E; /* Figma primary-color */
--violet-dark: #5E1F56; /* Figma brand/primary-dark */
--pink-color: #D08CB0; /* Figma brand/pink */
--field-border: #E7DCE6; /* Figma quaternary-color (champs) */ 
    --extra-color : #D08EB1 ;
    --dark-color: #1E141D;         /* Neutral/Dark */
    --dark-color2: #282828;
    --text-color: #574F56;         /* Text/Default */
    --gray-color: #60605F;         /* Text/Muted */
    --tertiary-color: #A6BDCB;     /* Accent/Gris-bleu */
    --quaternary-color: #F6EEF5;   /* Neutral/BG-Light */
    --color-quaternary: #F6EEF5;
    --border-color: #D9E3EA;       /* Neutral/Border */
    --white-color: #FFFFFF;
    --light-color: #FFFFFF;        /* light-color */
    --gold-from: #872C7B;          /* ÃƒÆ’Ã‚Â©toiles avis */
    --hp-light-70: #60605F;        /* placeholder (FormField Figma) */

    --font-body: 'Manrope';
    --font-title: 'KoHo';
    --fs-body: 16px;
    --lh-body: 1.6;
    --t-base: .3s ease;

    --shadow-card: 0 12px 16px rgba(0, 79, 135, .08);
    --shadow-card-lg: 0 24px 60px rgba(0, 79, 135, .12);
    --radius: 4px;

    --bs-primary: #24101F;
    --bs-primary-rgb: 0, 79, 135;
    --bs-secondary: #872C7B;
    --bs-secondary-rgb: 1, 128, 171;
    --bs-light: #F6EEF5;
    --bs-dark: #1E141D;
    --bs-body-color: #574F56;
    --bs-body-bg: #FFFFFF;
    --bs-body-font-family: 'Manrope';
    --bs-body-font-size: 16px;
    --bs-body-line-height: 1.6;
    --bs-link-color: #24101F;
    --bs-link-hover-color: #872C7B;
    --bs-border-color: #D9E3EA;
}

/* --- Resets --- */
body {
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--text-color);
    background: var(--white-color);
}
.fullsite {
    overflow-x: clip;
}
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-title);
    font-weight: 700;
    color: var(--dark-color);
    line-height: 1.1; 
    letter-spacing: -.72px;
    text-transform: uppercase
}
h1 { font-size: 50px;  }
h2 { font-size: 40px;  }
h3 { font-size: 30px;  }
h4 { font-size: 25px; }
h5 { font-size: 22px; }
h6 { font-size: 18px; }
p { margin: 0 0 16px; }
a {
    color: var(--primary-color);
    transition: color var(--t-base), background-color var(--t-base), border-color var(--t-base);
}
a:hover { color: var(--secondary-color); }
img { max-width: 100%; height: auto; }

/* --- FontAwesome sizing --- */
.fa-solid, .fa-regular, .fa-brands { line-height: 1; }

/* ==========================================================================
   CSS OBLIGATOIRE GNSDF (fourni par l'intÃƒÆ’Ã‚Â©grateur)
   ========================================================================== */
.fa-facebook::before {     content: "\f39e" !important; } .footer-b {     display: none; } html, body {   height: auto !important;   min-height: 100%;   overflow: visible !important;   scroll-behavior: auto !important; /* dÃƒÆ’Ã‚Â©sactive le smooth natif pour laisser Lenis gÃƒÆ’Ã‚Â©rer */ } .p-absolute { position: absolute !important; } .txt-white { --bs-text-opacity: 1; color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; } .grecaptcha-badge {     z-index: 99; } a#non-cliquable {     pointer-events: none;     display: inline-block; } 
a.btn-cookies-link i {     width: 20px!important ; } a.btn-cookies-link  {     color: var(--dark-color)!important ; } input{outline : none !important; }
a#scrollTopBtn { z-index:999;    right: 10px;     bottom: 95px;     transform: none !important;     border: 1px solid var(--bs-body-color); }
/*==================================================
# 1. BUTTONS ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â Unified system (BS5 override + Figma 2-pill pattern)
   Default: .btn-primary = single dark pill with text (works as plain CMS button)
   Enhanced: when wrapped with .btn-text + .btn-arrow spans ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ 2-pill layout
   The :has() selector switches between modes automatically.
==================================================*/

/* Base .btn ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â single pill by default (BS5-style) */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 12px !important;
    padding: 17px 28px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: .5px;
    text-decoration: none;
    color: var(--white-color);
    background: var(--primary-color);
    border: 1.5px solid var(--primary-color);
    border-radius: var(--radius);
    transition: background-color var(--t-base), color var(--t-base), border-color var(--t-base), transform var(--t-base);
}
.btn:hover {
    background: transparent;
    color:var(--primary-color);    text-decoration: none;
}
/* .btn-primary = DARK pill (default single-element + CMS .read-more .btn-primary) */
.btn-primary {
    background: var(--primary-color);
    color: var(--white-color);   text-decoration: none;
}
.btn-primary:hover {      background: transparent;
    color:var(--primary-color);    text-decoration: none; border:1.5px solid var(--primary-color)}
/* ==========================================================================
   BLOC 2 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â COMPONENTS
   ========================================================================== */

/* --- Container (Figma : contenu 1140px + 2 ÃƒÆ’Ã¢â‚¬â€ 15px) --- */
.container {
    max-width: 1170px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 15px;
}

/* --- Eyebrow / titres de section --- */
.eyebrow {
    display: inline-flex;
    margin: 0;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    letter-spacing:4px;
    text-transform: uppercase;
    color: var(--primary-color);
    gap: 12px;
    align-items: center;
}

.eyebrow-muted { color: var(--gray-color); }
.eyebrow-light { color: var(--tertiary-color); }
.section-title {
    margin: 0;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 45px;
    line-height: 56px;
    letter-spacing: -.72px;
    color: var(--primary-color);
}
.sec-logos .section-title {
    font-weight: 700;
    font-size: 42px;
    line-height: 1.05;
    letter-spacing: -.4px;
    color: var(--text-color);
}

/* --- Boutons (Figma : radius 4, hauteur 52) --- */
.btn-STB {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 56px;
padding: 18px 30px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    letter-spacing:0px;
    text-decoration: none;
    color: var(--white-color);
    background: var(--secondary-color);
    border:none;
    border-radius: 50px;
    transition: background-color var(--t-base), color var(--t-base), border-color var(--t-base), transform var(--t-base);
}
.btn-STB i { font-size: 16px; transition: transform var(--t-base); }
.btn-STB:hover { color: var(--white-color); background: var(--primary-color); border-color: var(--secondary-color); }
.btn-STB:hover i { transform: translateX(4px); }
.btn-STB-light {color: var(--white-color);background:  var(--secondary-color);border-color: var(--white-color);}
.btn-STB-light:hover { color: var(--secondary-color); background : var(--quaternary-color) ; border-color: var(--secondary-color); }
.btn-STB-outline { color: var(--primary-color); background: transparent; border-color: var(--primary-color); }
.btn-STB-outline:hover { color: var(--white-color); background: var(--primary-color); border-color: var(--primary-color); }
.btn-STB-outline-white { color: var(--white-color); background: transparent; border-color: var(--white-color); }
.btn-STB-outline-white:hover { color: var(--primary-color); background: var(--white-color); border-color: var(--white-color); }

.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.2;
    text-decoration: none;
    color: var(--primary-color);
}
.link-arrow i { font-size: 14px; transition: transform var(--t-base); }
.link-arrow:hover i { transform: translateX(4px); }

/* --- Pagination Swiper (dots Figma : 12px, contour marine) --- */
.logos-pagination.swiper-pagination,
.actus-pagination.swiper-pagination {
    position: static;
    display: flex;
    justify-content: center;
    align-items : center;
    gap: 16px;
    margin-top: 40px;
}
.logos-pagination .swiper-pagination-bullet,
.actus-pagination .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    margin: 0 !important;
    background: transparent;
    border: 2px solid var(--primary-color);
    opacity: 1;
}
.logos-pagination .swiper-pagination-bullet-active,
.actus-pagination .swiper-pagination-bullet-active {
    background: var(--extra-color);
    border-color: var(--extra-color);
}
.swiper-pagination-lock { display: none; }
.logos-pagination.confiance-pagination .swiper-pagination-bullet{
   background: var(--hp-light-70); 
    border : none;
    width : 5px;
    height: 5px;
}
.logos-pagination.confiance-pagination .swiper-pagination-bullet-active{
   background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color) 100%); 
    border : none;
    width : 10px;
    height: 10px;
}
/* ==========================================================================
   BLOC 3 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â LAYOUT
   ========================================================================== */
.part-nav-header {
    min-height: 127px;    position: relative;
}   
/* --- Navigation --- */
nav.navbar {
    padding: 0;
    z-index: 1020;
    transition: box-shadow var(--t-base);
    position: relative;
    background: var(--bs-body-bg);
}
nav.navbar .container {
    max-width: 1450px;
    min-height: 127px;
    flex-wrap: nowrap;
    transition: min-height var(--t-base);
}
nav.navbar .logo { display: block; flex-shrink: 0; }
nav.navbar .logo img {
    display: block;
    width: auto;
    height: 86px;
    transition: height var(--t-base);
}
nav.navbar.is-sticky {position: fixed;inset: 0;bottom: unset;}
nav.navbar.is-sticky .container { min-height: 100px; }
nav.navbar.is-sticky .logo img { height: 80px; }

nav.navbar .lang-nav { position: static; }
nav.navbar .sf-menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    margin: 0 !important;
    padding: 0;
    list-style: none;
}
nav.navbar .sf-menu > li { position: relative; }
nav.navbar .sf-menu > li > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 0 !important;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 16px;
    line-height:20px;
    letter-spacing: 0;
    color: var(--dark-color);
    text-decoration: none;
    white-space: nowrap;
}
nav.navbar .sf-menu > li > a:hover,
nav.navbar .sf-menu > li.selected > a {
    color: var(--secondary-color);

}
/*nav.navbar .sf-menu > li:has(> ul) > a::after {
    content: "\f107";
    font: var(--fa-font-solid, 900 1em/1 "Font Awesome 7 Pro");
    font-size: 12px;
}*/
.dropdown-toggle::after {
    display: inline-block;
    margin-left: .255em;
    vertical-align: .255em;
    content: "";
    border-top: none;
    border-right: none;
    border-bottom: 0;
    border-left: none;
    content: "\f107";
    font: var(--fa-font-solid, 900 1em / 1 "Font Awesome 7 Pro");
    font-size: 12px;
}
/* Sous-menu Expertises */
nav.navbar .sf-menu li ul {
    display: none;
    position: absolute;
    top: 100%;
    left: -20px;
    min-width: 280px;
    margin: 0;
    padding: 12px 0;
    list-style: none;
    background: var(--white-color);
    border-top: 2px solid var(--secondary-color);
    border-radius: 0 0 var(--radius) var(--radius);
    box-shadow: 0 12px 32px rgba(0, 79, 135, .12);
    z-index: 10;
}
nav.navbar .sf-menu li:hover > ul,
nav.navbar .sf-menu li:focus-within > ul { display: block; }
nav.navbar .sf-menu li ul li a {
    display: block;
    padding: 10px 20px;
    font-weight: 500;
    font-size: 15px;
    line-height: 1.3;
    color: var(--text-color);
    text-decoration: none;
}
nav.navbar .sf-menu li ul li a:hover,
nav.navbar .sf-menu li ul li.selected > a {
    color: var(--primary-color);
    background: var(--quaternary-color);
}

/* CTA tÃƒÆ’Ã‚Â©lÃƒÆ’Ã‚Â©phone */
.all-tels.d-flex {
    gap: 28px;
}
.nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-shrink: 0;
    padding: 18px 24px;
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: 0;
    color: var(--white-color);
    text-decoration: none;
    background: var(--secondary-color);
    border: none;
    border-radius: 50px;
}
.nav-cta i { font-size: 15px; color: var(--white-color); }
.nav-cta:hover i {  color: var(--secondary-color); }
.nav-cta:hover { color: var(--secondary-color); background : var(--quaternary-color) }

/* Burger (collapse BS5 natif) */
nav.navbar .navbar-toggler {
    width: 48px;
    height: 48px;
    background: var(--primary-color);
    border-radius: var(--radius);
}
nav.navbar .navbar-toggler-icon {
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.5' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
header.header.small section.banner {
    height: 500px;
}
/* RÃƒÆ’Ã‚Â©seaux sociaux fixes (Figma : 52px, marine) */
.sidebar-rs {
    position: fixed;
    top: 25%;
    right: 0;
    z-index: 1021;
}
.sidebar-rs ul,
.sidebar-rs .networks_linking {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.sidebar-rs a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: 14px;
    color: var(--white-color);
    text-decoration: none;
    background: var(--secondary-color);
    border-radius: 3px 0 0 3px;
}
.sidebar-rs a:hover { color: var(--white-color); background: var(--pink-color); }

/* --- Hero / banniÃƒÆ’Ã‚Â¨re --- */
header.header { /*overflow: hidden;*/ background: var(--dark-color); }
header.header .banner { position: relative; inset: 0;height: 700px; }
header.header .banner .container-fluid,
header.header .banner #slideshow,
header.header .banner .swiper,
header.header .banner .swiper-wrapper,
header.header .banner .swiper-slide,
header.header .banner .carousel,
header.header .banner .carousel-inner,
header.header .banner .carousel-item {
    height: 100%;
    width: 100%;
}
header.header .banner #slideshow,
header.header .banner .swiper { z-index: auto; }
header.header .banner .swiper-slide img,
header.header .banner .carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
header.header .banner .fade,
header.header .banner .carousel-item {
    opacity: 1 !important; /* BS5 .fade fix ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Rule 3 */
}
section.banner .carousel-caption {
    display: none !important;
}
section.banner .carousel-control-next, section.banner .carousel-control-prev {
	display: none;
}
.banner-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(36, 16, 31, 0.88) 0%, rgba(36, 16, 31, 0.60) 45%, rgba(36, 16, 31, 0.05) 80%);
}

.banner-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    top: unset;
    bottom: 189px;
    pointer-events: none;
}
.banner-content .container-fluid {
    max-width: 1350px;
    padding: 0 15px;
}
.banner-content .hero-box {
    max-width: 1060px;
    pointer-events: auto;
}

.eyebrow-light {
    display: inline-flex;
    gap: 12px;
    position: relative;
    color: var(--white-color);
    font-size: 16px;
    font-weight: 600;
    line-height: 20px;
    letter-spacing: 4px;
    text-transform: uppercase;
    align-items: center;
    margin-bottom: 20px;
}
.eyebrow:before {
    display: block;
    content: "";
    width: 26px;
    height: 34px;
    background: url(../images/title-banner.svg)no-repeat center;
    background-size: contain;
}
.hero-box h1,
.hero-box h2 {
    margin: 0 0 20px;
    font-family: var(--font-title);
    font-weight:700;
    font-size: 50px;
    line-height: 55px;
    letter-spacing: -1px;
    color: var(--white-color);
    text-transform: uppercase;
}
.color-g{color : var(--extra-color);}
.hero-box p {
    color: var(--white-color);
    margin: 0 0 32px;    max-width: 600px;
}

.text-banner{
    position: absolute;
    left : 50%;
    transform : translateX(-50%);
    text-wrap: nowrap;
    bottom: 94px;
    font-size: 200px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: 20px;
    text-transform: uppercase;
    opacity: 0.8;
    z-index: 1;
    pointer-events: none;
}

/* ContrÃƒÆ’Ã‚Â´les slider (flÃƒÆ’Ã‚Â¨ches + barres) alignÃƒÆ’Ã‚Â©s sur le container */
header.header.big .swiper-button-prev,
header.header.big .swiper-button-next,
header.header.big .carousel-control-prev,
header.header.big .carousel-control-next {
    top: auto;
    bottom: 140px;
    width: 52px;
    height: 52px;
    margin: 0;
    color: var(--white-color);
    border: 1.5px solid var(--white-color);
    border-radius: var(--radius);
    opacity: 1;
    z-index: 3;
    transition: background-color var(--t-base), color var(--t-base);
  display:none
}
header.header.big .swiper-button-prev,
header.header.big .carousel-control-prev { left: max(15px, calc((100% - 1140px) / 2)); }
header.header.big .swiper-button-next,
header.header.big .carousel-control-next { left: calc(max(15px, calc((100% - 1140px) / 2)) + 64px); right: auto; }
header.header.big .swiper-button-prev::after,
header.header.big .swiper-button-next::after { font-size: 16px; font-weight: 700; }
header.header.big .swiper-button-prev:hover,
header.header.big .swiper-button-next:hover { color: var(--primary-color); background: var(--white-color); }

header.header.big .carousel-control-next-icon,
header.header.big .carousel-control-prev-icon {
    width: 16px!important;
    height: 16px!important;
}

header.header .banner .carousel-indicators {
    position: absolute !important;
    right: 0 !important;
    bottom: 164px !important;
    left: 0 !important;
    z-index: 2;
    display: flex !important;
    justify-content: start !important;
    padding: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 148px !important;
    left: max(15px, calc((100% - 1140px) / 2)) !important;
}
header.header .banner .carousel-indicators [data-bs-target] {
    width: 12px!important;
    height: 4px!important;
    margin-right: 5px!important;
    margin-left: 5px!important;
    border-radius: 4px !important;
    border-top: none !important;
    border-bottom: none !important;
    opacity: .5!important;
}
header.header .banner .carousel-indicators .active {
    opacity: 1!important;
    width: 36px!important;
}

.dropdown-toggle:empty::after {
    margin-left: 0;
    margin-top: 12px;
}
/****************/

/* --- PrÃƒÆ’Ã‚Â©sentation (chapÃƒÆ’Ã‚Â´) --- */
.sec-chapo {
    padding:120px 0;
    z-index: 1;
}
.sec-chapo:before {
    position: absolute;
    content: "";
    left: 50%;
    top: 0;
    right: 0;
    bottom: 0;
    margin-left: -215px;
    clip-path: polygon(100% 0%, 100% 100%, 15% 100%, 0% 0%);
    background: var(--quaternary-color);
}
.sec-chapo .container {
    max-width: 1350px;
}
.card-chapo {
    position: relative;
    z-index: 3;

}
.card-chapo .chapo-flx { gap: 28px; align-items: center; display: flex; }
.card-chapo .chapo-text .eyebrow {margin-bottom: 10px;}

.card-chapo h1,
.card-chapo h2 {
    margin: 0;
    font-family: var(--font-title);
    color: var(--dark-color2);
    margin: 0px 0 28px;
}
.color-b{
    color : var(--bs-secondary);
}
.card-chapo .chapo-facts {
    /* padding-left: 40px;
    border-left: 1px solid var(--border-color); */
}
.card-chapo .chapo-flx > * {
    flex: 1;
}
.card-chapo .chapo-facts p {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 25px;
}
.card-chapo .chapo-facts p:last-child { margin-bottom: 0; }

/*==================================================
# 7. SECTION: PICTOS (Pourquoi choisir — box DCVE 2)
==================================================*/
.sec-pictos { padding: 120px 0; background: var(--primary-color); text-align: center; }
.sec-pictos h2 { margin: 0 0 48px; color: var(--bs-body-bg); }
.sec-pictos .container { max-width: 1850px; padding: 0 15px; }
.sec-pictos a.bx-pictos.swiper-slide { text-decoration: none !important; }
.sec-pictos .pictos-wrap,
.sec-pictos .all-pictos { position: relative; }
.sec-pictos .bx-pictos {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 30px;
}
.bx-pictos .pictos-icon {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100px !important;
height: 100px;
margin: 0 auto;
background: var(--secondary-color);
border-radius: 50%;
transition: all .3s;
}
.sec-pictos .bx-pictos:hover .pictos-icon { transform: scale(.95); }
.sec-pictos .bx-pictos img {
width: 100%;
height: 100%;
max-width: 100%;
margin: 0 auto;
object-fit: scale-down;
}
.sec-pictos .bx-pictos h5 {
margin: 0 0 10px;
font-size: 20px;
font-weight: 600;
line-height: 22px;
letter-spacing: -.1px;
text-align: center;
text-transform: uppercase;
color: var(--bs-body-bg);
}
.sec-pictos .bx-pictos p { margin: 0; line-height: 26px; color: var(--bs-body-bg); }
.sec-pictos .swiper-container-pictos { padding: 0; overflow: hidden; }
.sec-pictos .swiper-pagination { position: absolute; bottom: -35px !important; margin-top: 0; }
.sec-pictos .swiper-pagination-bullet {
width: 12px;
height: 12px;
margin: 0 6px !important;
background: transparent;
border: 1px solid var(--bs-body-bg);
border-radius: 50px;
opacity: 1;
}
.sec-pictos .swiper-pagination-bullet-active { background: var(--bs-body-bg); }
/*----------------------------------------------------
 #section-boxes
---------------------------------------------------*/
section.boxes {
    padding: 120px 0 120px;
    overflow: hidden;
    background: var(--secondary-bg);


}

section.boxes .container { max-width: 1350px; }
section.boxes .box { height: 420px !important; }
section.boxes .section-head {
    margin: 0 0 56px;
}
section.boxes h2 {
    position: relative;
    margin: 0 0 16px !important;
    font-weight: 700;
    font-size: 48px;
    line-height: 56px;
    letter-spacing: -.72px;
    color: var(--dark-color);
}
section.boxes .section-txt {
    max-width: 640px;
    font-size: 16px;
    line-height: 25px;
    color: var(--text-color);
}
section.boxes .section-txt p { margin: 0; }

section.boxes .boxes-slider {
    margin: 0 auto;
    position: relative;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 24px;
}
section.boxes .boxes-slider > div:nth-child(1) {
    grid-column-start: 1;
    grid-column-end: 3;
}
section.boxes .boxes-slider > div:nth-child(6) {
    grid-column-start: 3;
    grid-column-end: 5;
}
section.boxes .box-home .box {
    /* overflow: hidden; */
    border-radius: 20px;
    margin: 0 0 0;
  padding:0 ;
      transition: all .6s;
}
section.boxes .box.swiper-slide.position-relative {
    height: auto !important;
}
section.boxes .box-home .box:hover {
    /*height:100% !important ;*/
    padding: 0;
      transition: all .6s;
}
section.boxes .box .photo {
    max-width: 100%;
    transition: all .6s;
    overflow: hidden;
    width: 100%;    border-radius: 20px;

    height: 100%;
}
section.boxes .box:hover .photo {
    border-radius: 20px;
    transition: all .6s;
   /* height: 100% !important;*/
}

section.boxes .box .photo img {
    max-width: 100%;
    margin: 0;
    height: 100%;
    object-fit: cover;
    transition: all .6s;
    width: 100%;


}

section.boxes .box:hover .photo img {
    transform: scale(1.06);
}
section.boxes .box .cont-bx {
    padding: 24px;
    bottom: 0;
    left: 0;
    right: 0;
    position: absolute;
background: linear-gradient(180deg, rgba(36, 16, 31, 0.00) 35%, rgba(36, 16, 31, 0.85) 100%);
    transition: 0.3s all ease;
    z-index: 2;
    top: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px;
    align-content: end;
    align-items: center;
    column-gap: 16px;
    border-radius: 20px;
}
section.boxes .box .cont-bx::after {
    content: "\f105";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    font: var(--fa-font-solid);
    font-size: 16px;
    color: var(--white-color);
    background: var(--extra-color);
    border-radius: 100px;
    transition: background-color var(--t-base);
}
section.boxes .box:hover .cont-bx::after,
section.boxes .box:focus-within .cont-bx::after { background: var(--violet-color); }
section.boxes .box a:focus-visible {
    outline: 2px solid var(--violet-color);
    outline-offset: 3px;
    border-radius: 20px;
}
section.boxes .box:hover .cont-bx {
background: linear-gradient(180deg, rgba(36, 16, 31, 0.00) 35%, rgba(36, 16, 31, 0.85) 100%);
}




section.boxes .box a {
    position: absolute;
    inset: 0;
    font-size: 0;
    z-index: 2;
}
section.boxes .box h3 {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 0;
    font-weight: 600;
    font-size: 26px;
    line-height: 34px;
    letter-spacing: -.13px;
    text-align: left;
    text-transform: uppercase;
    color: var(--white-color);
    transition: all .6s;
}
/****/
section.boxes .swiper-pagination-boxes {
    position: relative;
    margin-top: 48px;display: none;

}
section.boxes .swiper-pagination-boxes .swiper-pagination-bullet {
    margin: 0px 6px !important;
      width: 12px;
    height: 12px;
    background:transparent;
    opacity: 1;
  border-radius:50px;
  border:1px solid var(--bs-body-color);
}
section.boxes .swiper-pagination-boxes .swiper-pagination-bullet-active {
    width: 12px;
    height: 12px;
    background: var(--bs-body-color);
      border:1px solid  var(--bs-body-color);
}

/***************************************************************************************/


/* --- Blocs 01 / 02 / 03 (boxes DCVE 4 / 5 / 6 — Figma) --- */
.sec-bloc { padding: 120px 0; overflow: hidden; }
.sec-bloc .container { max-width: 1350px; }
.sec-bloc-01 { background: var(--white-color); }
.sec-bloc-01::before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: calc(50% - 33.5px);
background: var(--quaternary-color);
clip-path: polygon(0 0, 100% 0, calc(100% - 175px) 100%, 0 100%);
pointer-events: none;
}
.sec-bloc-02 { background: var(--primary-color); }
.sec-bloc-02 a{
  color: #bb52ad;
}
.sec-bloc-02 a:hover{
  color: #fff;
}
.sec-bloc-03 { background: var(--secondary-bg); }
.sec-bloc .bloc {
position: relative;
display: flex;
align-items: center;
gap: 120px;
min-height: 647px;
}
.sec-bloc-02 .bloc { flex-direction: row-reverse; }
.sec-bloc .bloc-content { flex: 1 1 0; min-width: 0; }
.sec-bloc .bloc-content h2 {
max-width: 560px;
margin: 0 0 28px;
font-size: 48px;
line-height: 56px;
letter-spacing: -.72px;
color: var(--primary-color);
}
.sec-bloc .bloc-content p {
margin: 0 0 25px;
font-size: 16px;
line-height: 25px;
color: var(--text-color);
}
.sec-bloc .bloc-content p:last-child { margin-bottom: 0; }
.sec-bloc-02 .bloc-content h2 { color: var(--quaternary-color); }
.sec-bloc-02 .bloc-content p { color: var(--white-color); }
.sec-bloc-03 .bloc-content p { max-width: 560px; }
.sec-bloc .bloc-media { flex: 0 0 481.5px; max-width: 481.5px;    position: relative; }
.sec-bloc .bloc .bloc-media img,
.sec-bloc .bloc .bloc-signature img {
display: block;
width: 100%;
max-width: 100%;
height: auto;
margin: 0;
}
.sec-bloc .bloc .bloc-media img{
-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20476.589%20542.865'%20preserveAspectRatio%3D'none'%3E%3Cpath%20d%3D'M4.01475%2020.688C3.5786%2010.4581%2012.7306%202.45707%2022.8107%204.25538L423.288%2075.7017C430.427%2076.9755%20435.817%2082.892%20436.422%2090.1187L472.531%20521.53C473.329%20531.061%20465.64%20539.159%20456.08%20538.856L40.3722%20525.689C32.0005%20525.424%2025.2504%20518.747%2024.8937%20510.378L4.01475%2020.688Z'%20fill%3D'%23000'%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat;
mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20476.589%20542.865'%20preserveAspectRatio%3D'none'%3E%3Cpath%20d%3D'M4.01475%2020.688C3.5786%2010.4581%2012.7306%202.45707%2022.8107%204.25538L423.288%2075.7017C430.427%2076.9755%20435.817%2082.892%20436.422%2090.1187L472.531%20521.53C473.329%20531.061%20465.64%20539.159%20456.08%20538.856L40.3722%20525.689C32.0005%20525.424%2025.2504%20518.747%2024.8937%20510.378L4.01475%2020.688Z'%20fill%3D'%23000'%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat;
}
.sec-bloc .bloc .bloc-media::after {
    content: "";
    position: absolute;
    top: .707%;
    left: .808%;
    z-index: 2;
    width: 98.97%;
    height: 94.84%;
    background: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20476.589%20542.865'%20preserveAspectRatio%3D'none'%20fill%3D'none'%3E%3Cpath%20d%3D'M4.01475%2020.688C3.5786%2010.4581%2012.7306%202.45707%2022.8107%204.25538L423.288%2075.7017C430.427%2076.9755%20435.817%2082.892%20436.422%2090.1187L472.531%20521.53C473.329%20531.061%20465.64%20539.159%20456.08%20538.856L40.3722%20525.689C32.0005%20525.424%2025.2504%20518.747%2024.8937%20510.378L4.01475%2020.688Z'%20stroke%3D'%2386327E'%20stroke-width%3D'8'%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat;
    transform: scaleX(-1);
    pointer-events: none;
}
.sec-bloc.sec-bloc-02 .bloc .bloc-media::after {
    background: url(../images/before-img2.webp) center / 100% 100% no-repeat;
    transform: none;
}
.sec-bloc.sec-bloc-03 .bloc .bloc-media::after {
    background: url(../images/before-img3.webp) center / 100% 100% no-repeat;
    transform: none;
}
.sec-bloc-02 .bloc-signature {
position: absolute;
right: 30px;
bottom: -30px;
width: 333px;
pointer-events: none;
}
.sec-bloc-02 .bloc-signature {
    position: absolute;
    right: 0;
    bottom: -100px;
    width: 333px;
    pointer-events: none;
}
/************************************/
section.parallaxe {
    padding: 192px 0 212px;
    background : url(../images/parallaxe.webp)no-repeat center fixed;
    background-size : cover;
}
section.parallaxe:before {
    content: "";
    position: absolute;
    bottom: -15px;
    left: 0;
    right: 0;
    height: 124px;
    background: var(--white-color);
    clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
}
section.parallaxe article{
    position : relative;
    padding: 70px 50px 50px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.01);
    backdrop-filter: blur(25px);
    z-index: 1;
}
section.parallaxe article:before{
    content : "";
    position : absolute;
    width: 111px;
    height: 111px;
    left: -25px;
    bottom : -40px;
    border-radius: 200px;
    background: var(--bs-secondary);
    z-index : -2;
}
section.parallaxe article:after{
    content : "";
    position : absolute;
    width: 85px;
    height: 85px;
    top: -15px;
    right : -35px;
    border-radius: 200px;
    background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color) 100%);
    z-index : -2;
}
section.parallaxe .eyebrow:after {
    display: block;
    content: "";
    width: 28px;
    height: 8px;
    background: url(../images/bg-h.svg)no-repeat center;
    background-size: contain;
    transform: scaleX(-1);
}
section.parallaxe h2{
    color : var(--white-color);
    margin-bottom: 30px;
}
section.parallaxe a{
    color : var(--extra-color);
}
section.parallaxe a:hover{
    color : var(--extra-color);
}
/* --- Actualités accueil (Figma : 1 à la une + 2 compactes) --- */
.sec-actualites { padding: 120px 0; background: var(--white-color); }
.sec-actualites .container { max-width: 1350px; }
.sec-actualites .section-head { align-items: center; gap: 24px; margin-bottom: 56px; }
.sec-actualites .section-head-txt { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.sec-actualites .section-title {
font-weight: 700;
font-size: 48px;
line-height: 56px;
text-transform: uppercase;
}
.btn-all-news {
display: inline-flex;
align-items: center;
flex-shrink: 0;
padding: 18px 24px;
font-weight: 600;
font-size: 16px;
line-height: 20px;
color: var(--white-color);
text-decoration: none;
background: var(--violet-dark);
border-radius: 100px;
transition: background-color var(--t-base);
}
.btn-all-news:hover { color: var(--white-color); background: var(--violet-color); }
.sec-actualites #AllNews { display: block; margin: 0; padding: 0; overflow: hidden; }
.sec-actualites #AllNews > .swiper-wrapper { margin: 0; padding: 0; }
.sec-actualites .news-group {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
align-items: start;
}
.sec-actualites .news-featured { grid-row: 1 / span 2; }
.sec-actualites .news-col { width: auto; max-width: none; margin: 0; padding: 0; }
.sec-actualites .news-object.Item { position: relative; height: auto; margin: 0; }
.sec-actualites .news-featured .news-object.Item { display: flex; flex-direction: column; gap: 20px; }
.sec-actualites .news-small .news-object.Item {
display: flex;
align-items: center;
gap: 28px;
padding: 20px;
background: var(--quaternary-color);
border-radius: 20px;
}
.sec-actualites .news-object .photo,
.sec-actualites .news-object .nophoto {
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
background: var(--quaternary-color);
border-radius: 20px;
}
.sec-actualites .news-featured .photo,
.sec-actualites .news-featured .nophoto { width: 100%; height: 420px; }
.sec-actualites .news-small .photo,
.sec-actualites .news-small .nophoto { flex: 0 0 240px; width: 240px; height: 240px; }
.sec-actualites .news-object .photo img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform .6s ease;
}
.sec-actualites .news-object.Item:hover .photo img { transform: scale(1.05); }
.sec-actualites .news-object .news-desc { flex: 1 1 0; min-width: 0; }
.sec-actualites .news-object h3 {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 20px;
margin: 0 0 20px;
font-family: var(--font-title);
font-weight: 600;
font-size: 26px;
line-height: 34px;
letter-spacing: -.13px;
text-transform: uppercase;
color: var(--dark-color);
}
.sec-actualites .news-small h3 { gap: 14px; margin-bottom: 14px; }
.sec-actualites .news-object h3 a { color: inherit; text-decoration: none; }
.sec-actualites .news-object .date {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: var(--font-body);
font-weight: 400;
font-size: 15px;
line-height: 24px;
letter-spacing: 0;
text-transform: none;
color: var(--text-color);
}
.sec-actualites .news-object .date::before {
content: "\f133";
font: var(--fa-font-solid);
font-size: 13px;
color: var(--secondary-color);
}
.sec-actualites .news-object .news-abstract {
display: block;
margin: 0 0 20px;
font-size: 16px;
line-height: 25px;
color: var(--text-color);
}
.sec-actualites .news-small .news-abstract { margin-bottom: 14px; }
.sec-actualites .news-object .read-more a {
display: inline-flex;
padding: 0 0 5px;
font-weight: 600;
font-size: 16px;
line-height: 20px;
letter-spacing: 0;
color: var(--secondary-color);
text-decoration: none;
background: none;
border: 0;
border-bottom: 1px solid var(--violet-color);
border-radius: 0;
}
.sec-actualites .news-object .read-more a:hover { color: var(--violet-dark); background: none; }
.sec-actualites.single-slide .actus-pagination { display: none; }
.sec-actualites .actus-pagination.swiper-pagination-vertical { top: auto; right: auto; transform: none; }
.sec-actualites .actus-pagination.swiper-pagination-vertical .swiper-pagination-bullet { display: inline-block; margin: 0; }
.sec-actualites .swiper-vertical .news-group { height: 100%; }

/* === NEWS NOPHOTO FALLBACK ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â v34 MANDATORY === */
.news-col .news-object .nophoto,
.news-object .nophoto {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--quaternary-color);
    overflow: hidden;
}
.news-col .news-object .nophoto img,
.news-object .nophoto img {
    object-fit: scale-down;
    padding: 10px;
    max-width: 60%;
    max-height: 80%;
    opacity: 1;
    width: auto;
    height: auto;
}
.news-object .nophoto .fa-duotone.fa-image,
.news-object .nophoto .fa-solid.fa-image,
.news-object .nophoto i[class*="fa-image"] {
    display: none;
}
section.content article .NewsMasonry .NewsItem img.img-news-list, img.img-news {
    max-width: 190px !important;
    height: 150px !important;
    border-radius: 4px;
}
/* --- Contact accueil (Figma : carte infos violette + formulaire) --- */
.contact-home { position: relative; padding: 130px 0; background: var(--quaternary-color); }
.contact-home .container { max-width: 1350px; }
.contact-home .contact-card,
.contact-page .contact-card {
display: flex;
align-items: stretch;
overflow: hidden;
background: var(--white-color);
border-radius: 20px;
box-shadow: 0 24px 60px rgba(36, 16, 31, .1);
}
.contact-infos-home {
flex: 0 0 500px;
display: flex;
flex-direction: column;
gap: 28px;
padding: 56px;
background: var(--violet-color);
}
.contact-infos-home h2 {
max-width: 388px;
margin: 0;
font-size: 48px;
line-height: 56px;
letter-spacing: -.72px;
color: var(--white-color);
}
.contact-infos-home p {
max-width: 388px;
margin: 0;
font-size: 16px;
line-height: 25px;
color: rgba(255, 255, 255, .85);
}
.contact-infos-home .contact-line {
display: flex;
align-items: center;
gap: 14px;
font-weight: 600;
font-size: 16px;
line-height: 20px;
color: var(--white-color);
}
.contact-infos-home .contact-line-tel { margin-top: 12px; }
.contact-infos-home .contact-line + .contact-line { margin-top: -12px; }
.contact-infos-home .contact-line::before {
display: flex;
flex: 0 0 44px;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
font: var(--fa-font-solid);
font-size: 15px;
color: var(--white-color);
background: rgba(255, 255, 255, .14);
border-radius: 999px;
}
.contact-infos-home .contact-line-tel::before { content: "\f095"; }
.contact-infos-home .contact-line-mobile::before { content: "\f3cd"; }
.contact-infos-home .contact-line-adr::before { content: "\f3c5"; }
.contact-infos-home a { color: var(--white-color); text-decoration: none; }
.contact-infos-home a:hover { color: var(--extra-color); }
.contact-home .contact-form-wrap,
.contact-page .contact-form-wrap { flex: 1 1 0; min-width: 0; padding: 56px; }
.contact-home .contactForm,
.contact-page .contactForm {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-flow: row dense;
gap: 24px 20px;
}
.contact-home .contactForm > *,
.contact-page .contactForm > * { grid-column: 1 / -1; }
.contact-home .contactForm .contact-field-item,
.contact-page .contactForm .contact-field-item {
grid-column: auto;
width: 100%;
margin: 0 !important;
padding: 0;
float: none;
}
.contact-home .contactForm .contact-field-item:nth-child(n),
.contact-page .contactForm .contact-field-item:nth-child(n) { padding: 0; }
.contact-home .contactForm .contact-field-type_paragraph,
.contact-page .contactForm .contact-field-type_paragraph { grid-column: 1 / -1; }
.contact-home .contactForm .form-control,
.contact-page .contactForm .form-control {
height: 56px;
min-height: 56px;
padding: 0 20px;
font-size: 16px;
line-height: 25px;
color: var(--text-color);
background: var(--white-color);
border: 1.5px solid var(--field-border);
border-radius: 0;
}
.contact-home .contactForm textarea.form-control,
.contact-page .contactForm textarea.form-control { height: 170px; padding: 18px 20px; resize: vertical; }
.contact-home .contactForm .form-control::placeholder,
.contact-page .contactForm .form-control::placeholder { color: var(--text-color) !important; }
.contact-home .contactForm .form-control:focus,
.contact-page .contactForm .form-control:focus { border-color: var(--violet-color) !important; box-shadow: none !important; }
.contact-home .contactForm .gdpr,
.contact-page .contactForm .gdpr {
grid-column: 1;
align-self: center;
margin: 0;
float: none;
}
.contact-home .contactForm .gdpr,
.contact-home .contactForm .gdpr label,
.contact-page .contactForm .gdpr,
.contact-page .contactForm .gdpr label { font-weight: 400; font-size: 15px; line-height: 24px; color: var(--text-color); }
.contact-home .contactForm .gdpr a,
.contact-page .contactForm .gdpr a { color: var(--dark-color); }
.contact-home .contactForm .contact-submit,
.contact-page .contactForm .contact-submit {
position: relative;
grid-column: 2;
justify-self: end;
align-self: center;
float: none;
}
.contact-home .contact-submit .btn,
.contact-page .contact-submit .btn {
min-height: 56px;
padding: 18px 56px 18px 30px;
font-weight: 600;
font-size: 16px;
line-height: 20px;
letter-spacing: 0;
color: var(--white-color);
background-color: var(--extra-color);
background-image: none;
border: 0;
border-radius: 100px;
}
.contact-home .contact-submit .btn:hover,
.contact-page .contact-submit .btn:hover { color: var(--white-color); background-color: var(--violet-color); }
.contact-home .contact-submit::after,
.contact-page .contact-submit::after {
content: "\f1d8";
position: absolute;
top: 50%;
right: 30px;
transform: translateY(-50%);
font: var(--fa-font-solid);
font-size: 14px;
color: var(--white-color);
pointer-events: none;
}

.contact-card {
    position: relative;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border-radius: 40px;
   background: var(--dark-color);
}

.contact-media {
    position: relative;
    flex: 0 0 50%;
    min-height: 100%;
    order: 2;
}
.contact-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.contact-form-wrap {
    position : relative;
    flex: 1 1 0;
    min-width: 0;
    padding: 80px 40px; 
    z-index: 1;
}
.contact-form-wrap .section-title { margin-bottom: 24px;  }
.contact-form-wrap label,
.contact-form-wrap .form-label {
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.2;
    color: var(--text-color);
}
.contact-form-wrap label, .contact-form-wrap .form-label {
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.2;
    color: var(--text-color);
}
.contact-form-wrap span.text-danger {
    font-weight: 600;
    font-size: 14px;
    line-height: 1.2;
    color: var(--text-color) !important;
}
.contactForm input[type="text"],
.contactForm input[type="email"],
.contactForm input[type="tel"],
.contactForm textarea,
.contactForm select,
.contactForm .form-control {
    min-height: 52px;
    padding: 12px 16px;
    font-size: 16px;
    color: var(--gray-color);
    border: 1px solid var(--tertiary-color);
    border-radius: var(--radius);
}
.form-control::placeholder,
input::placeholder,
textarea::placeholder {
  color: var(--gray-color) !important;
  opacity: 1;
}
.contact-form-wrap .contactForm textarea.form-control { height: 120px !important; }
.contactForm  input:focus,
.contactForm  textarea:focus,
.contactForm  select:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(0, 79, 135, .12); }
.contact-form-wrap .gdpr,
.contact-form-wrap .gdpr label { font-weight: 400; font-size: 14px; line-height: 1.5; color: var(--gray-color); }
.contact-form-wrap .gdpr a { color: var(--primary-color); text-decoration: underline; }
.contact-form-wrap .btn, .contact-form-wrap button[type="submit"] {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 17px 56px 17px 28px;
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: .5px;
    color: var(--white-color);
    background: var(--primary-color);
    border: none;
    border-radius: var(--radius);
    background-image: url(../images/btn.svg);
    background-repeat: no-repeat;
    background-position: right 28px center;
}
.contact-form-wrap .btn:hover,
.contact-form-wrap button[type="submit"]:hover { background-color: var(--secondary-color); border-color: var(--secondary-color); }

.contact-page .contact-card { margin-top: 56px; }
section.content .contact-page .contact-infos-home h2,
.contact-page .contact-infos-home h2 { margin: 0; }
.contact-infos-home .contact-line-hours::before { content: "\f017"; }
.contact-infos-home .contact-line strong { font-weight: 700; }
.contact-infos-home .contact-rs ul,
.contact-infos-home .contact-rs .networks_linking { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
section.content .contact-infos-home .contact-rs li { margin: 0; padding: 0; background: none; }
.contact-infos-home .contact-rs a {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
font-size: 15px;
color: var(--white-color);
text-decoration: none;
background: rgba(255, 255, 255, .14);
border-radius: 999px;
}
.contact-infos-home .contact-rs a:hover { color: var(--white-color); background: var(--extra-color); }
.contact-infos-home .map-container { height: 250px; overflow: hidden; border-radius: 20px; }
.contact-infos-home .map-container iframe,
.contact-infos-home .map-container > div { display: block; width: 100%; height: 100%; border: 0; }


/********************/
/* Quel est votre projet ? — cases à cocher (choix multiple) */
section.contact-home .contactForm .contact-field-type_checkboxes > .form-label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
section.contact-home .contactForm .contact-field-type_checkboxes > div {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 25px;
}
section.contact-home .contactForm .contact-field-type_checkboxes .form-check {
  position: relative;
  min-height: 120px;
  margin: 0;
  padding: 0;
}
section.contact-home .contactForm .contact-field-type_checkboxes .form-check-input {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
section.contact-home .contactForm .contact-field-type_checkboxes .form-check-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 100%;
  margin: 0;
  padding: 10px 20px;
  font-weight: 400;
  font-size: 16px;
  line-height: 23px;
  text-align: center;
  color: var(--primary-color);
  background: var(--white-color);
  border: 1px solid rgba(87, 79, 86, 0.2);
  border-radius: 10px;
  transition: border-color var(--t-base), background-color var(--t-base);
}
section.contact-home .contactForm .contact-field-type_checkboxes .form-check-label::before {
  content: "";
  display: block;
  flex: 0 0 40px;
  width: 54px;
  height: 40px;
  background: center / contain no-repeat;
}
section.contact-home .contactForm .contact-field-type_checkboxes .form-check:nth-of-type(1) .form-check-label::before { background-image: url("../images/form1.svg"); }
section.contact-home .contactForm .contact-field-type_checkboxes .form-check:nth-of-type(2) .form-check-label::before { background-image: url("../images/form2.svg"); }
section.contact-home .contactForm .contact-field-type_checkboxes .form-check:nth-of-type(3) .form-check-label::before { background-image: url("../images/form3.svg"); }
section.contact-home .contactForm .contact-field-type_checkboxes .form-check:nth-of-type(4) .form-check-label::before { background-image: url("../images/form4.svg"); }
section.contact-home .contactForm .contact-field-type_checkboxes .form-check:nth-of-type(5) .form-check-label::before { background-image: url("../images/form5.svg"); }
section.contact-home .contactForm .contact-field-type_checkboxes .form-check:nth-of-type(6) .form-check-label::before { background-image: url("../images/form6.svg"); }
section.contact-home .contactForm .contact-field-type_checkboxes .form-check:hover .form-check-label {
  border-color: var(--violet-color);
}
section.contact-home .contactForm .contact-field-type_checkboxes .form-check-input:checked + .form-check-label {
  background: var(--quaternary-color);
  border-color: var(--violet-color);
}
section.contact-home .contactForm .contact-field-type_checkboxes .form-check-input:focus-visible + .form-check-label {
  outline: 2px solid var(--violet-color);
  outline-offset: 2px;
}

/* Accueil uniquement : masquer la navigation des avis */
body.homeTemplate .avis-clients #guestbookNav,
body.homeTemplate .avis-clients .swiper-pagination3 {
    display: none !important;
}

@media (max-width: 1599px) {
  section.contact-home .contactForm .contact-field-type_checkboxes > div { gap: 12px; }
  section.contact-home .contactForm .contact-field-type_checkboxes .form-check-label { padding: 10px 6px; }
}
@media (max-width: 1399px) {
  section.contact-home .contactForm .contact-field-type_checkboxes > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  section.contact-home .contactForm .contact-field-type_checkboxes .form-check { min-height: 100px; }
}
@media (max-width: 1199px) {
  section.contact-home .contactForm .contact-field-type_checkboxes > div { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  section.contact-home .contactForm .contact-field-type_checkboxes > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  section.contact-home .contactForm .contact-field-type_checkboxes > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  section.contact-home .contactForm .contact-field-type_checkboxes .form-check { min-height: 100px; }
}

/* Zone Message */
section.contact-home .contactForm textarea.form-control {
  height: auto;
  min-height: 120px;
  resize: vertical;
}
/* --- Page contact (4.tpl) --- */
.contact-card-page { margin-top: 40px; }
.form-check-input:checked {
    background-color:var(--primary-color)!important;
    border-color: var(--primary-color) !important;
}
.form-check-input:focus {
    border-color: var(--primary-color) !important;

    box-shadow:0 0 0 .25rem rgba(0, 79, 135, .25) !important;
}
.contactForm  .form-control:focus {
    border-color:var(--primary-color) !important;
    box-shadow: 0 0 0 .25rem rgba(0, 79, 135, .25)!important;
}
/* --- Contact accueil (Figma node 6:823) --- */
section.contact-home {
    padding: 120px 0;
    background: var(--quaternary-color);
}
section.contact-home .container {
    max-width: none;
    padding: 0 50px;
}
section.contact-home .contact-card {
    display: flex;
    align-items: stretch;
    overflow: hidden;
    background: var(--white-color);
    border-radius: 40px;
    box-shadow: none;
}
section.contact-home .contact-infos-home {
    position: relative;
    flex: 0 0 50%;
    max-width: 50%;
    min-width: 0;
    justify-content: center;
    align-items: flex-start;
    gap: 20px;
    padding: 50px 40px 50px max(40px, calc(50% - 457px));
    background: linear-gradient(268.16deg, rgb(235, 236, 242) 36.5%, rgba(235, 236, 242, .4) 70.18%), url(../images/img-contact.webp) center / cover no-repeat, #773A3A;
    border-radius: 40px 0 0 40px;
}
section.contact-home .contact-infos-home h2 {
    max-width: 600px;
    margin: 0;
    font-family: var(--font-title);
    font-weight: 700;
    font-size: 48px;
    line-height: 56px;
    letter-spacing: -.72px;
    text-transform: uppercase;
    white-space: pre-line;
    color: var(--violet-color);
}
section.contact-home .contact-infos-home p {
    max-width: 296px;
    margin: 0;
    font-size: 16px;
    line-height: 25px;
    color: var(--text-color);
}
section.contact-home .contact-infos-home .all-liste-li {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
section.contact-home .contact-infos-home .liste-li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 20px;
    line-height: 20px;
    letter-spacing: -.1px;
    color: var(--primary-color);
}
section.contact-home .contact-infos-home .liste-li::before {
    content: "\f058";
    flex: 0 0 25px;
    width: 25px;
    height: 25px;
    font: var(--fa-font-solid);
    font-size: 25px;
    line-height: 25px;
    color: var(--violet-color);
}
section.contact-home .contact-form-wrap {
    flex: 0 0 50%;
    max-width: 50%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 50px;
    background: var(--white-color);
    border-radius: 0 40px 40px 0;
}
section.content.page-content.content-page.contact-page.contact-page-part section.contact-home .contact-card {
    box-shadow: 0 0 10px rgb(0 0 0 /50%);
}
section.contact-home .contactForm {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-flow: row dense;
    gap: 25px 20px;
    counter-reset: gx-step;
}
section.contact-home .contactForm > * { grid-column: 1 / -1; }
section.contact-home .contactForm .contact-field-legend {
    display: flex;
    align-items: center;
    gap: 10px;
    float: none;
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 20px;
    line-height: 20px;
    letter-spacing: -.1px;
    text-transform: none;
    color: var(--primary-color);
    counter-increment: gx-step;
}
section.contact-home .contactForm .contact-field-legend::before {
    content: counter(gx-step);
    display: flex;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: var(--white-color);
    background: var(--violet-color);
    border-radius: 100px;
}
section.contact-home .contactForm .contact-field-item {
    grid-column: auto;
    position: relative;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    float: none;
}
section.contact-home .contactForm .contact-field-item.fullwidth { grid-column: 1 / -1; }
section.contact-home .contactForm .form-label {
    display: block;
    margin: 0 0 18px;
    font-weight: 700;
    font-size: 16px;
    line-height: 23px;
    color: var(--gray-color);
}


section.contact-home .contactForm .form-label span.text-danger {
    font: inherit;
    color: inherit !important;
}
section.contact-home .contactForm .form-control,
section.contact-home .contactForm .form-select {
    height: 42px;
    min-height: 42px;
    padding: 9px 20px;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 23px;
    color: var(--gray-color);
    background-color: var(--white-color);
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: 5px;
    box-shadow: none;
}
section.contact-home .contactForm .form-select {
    padding-right: 44px;
    background-image: none;
    appearance: none;
    cursor: pointer;
}
section.contact-home .contactForm .form-control::placeholder { color: var(--gray-color) !important; opacity: 1; }
section.contact-home .contactForm .form-control:focus,
section.contact-home .contactForm .form-select:focus {
    border-color: var(--violet-color) !important;
    box-shadow: none !important;
}
section.contact-home .contactForm .contact-field-type_select::after {
    content: "\f107";
    position: absolute;
    right: 20px;
    bottom: 0;
    display: flex;
    align-items: center;
    height: 42px;
    font: var(--fa-font-solid);
    font-size: 16px;
    color: var(--gray-color);
    pointer-events: none;
}
section.contact-home .contactForm .contact-field-help { display: none; }

section.contact-home .contactForm .contact-field-type_multiple {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 25px;
}
section.contact-home .contactForm .contact-field-type_multiple > .form-label,
section.contact-home .contactForm .contact-field-item.contact-field-type_upload > .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
section.contact-home .contactForm .contact-field-type_multiple .form-check {
    position: relative;
    min-height: 120px;
    margin: 0;
    padding: 0;
}
section.contact-home .contactForm .contact-field-type_multiple .form-check-input {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}
section.contact-home .contactForm .contact-field-type_multiple .form-check-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 100%;
    margin: 0;
    padding: 10px 20px;
    font-weight: 400;
    font-size: 16px;
    line-height: 23px;
    text-align: center;
    color: var(--primary-color);
    background: var(--white-color);
    border: 1px solid rgba(87, 79, 86, .2);
    border-radius: 10px;
    transition: border-color var(--t-base), background-color var(--t-base);
}
section.contact-home .contactForm .contact-field-type_multiple .form-check-label::before {
    content: "";
    display: block;
    flex: 0 0 40px;
    width: 54px;
    height: 40px;
    background: no-repeat center / contain;
}
section.contact-home .contactForm .contact-field-type_multiple .form-check:nth-of-type(1) .form-check-label::before { background-image: url(../images/form1.svg); }
section.contact-home .contactForm .contact-field-type_multiple .form-check:nth-of-type(2) .form-check-label::before { background-image: url(../images/form2.svg); }
section.contact-home .contactForm .contact-field-type_multiple .form-check:nth-of-type(3) .form-check-label::before { background-image: url(../images/form3.svg); }
section.contact-home .contactForm .contact-field-type_multiple .form-check:nth-of-type(4) .form-check-label::before { background-image: url(../images/form4.svg); }
section.contact-home .contactForm .contact-field-type_multiple .form-check:nth-of-type(5) .form-check-label::before { background-image: url(../images/form5.svg); }
section.contact-home .contactForm .contact-field-type_multiple .form-check:nth-of-type(6) .form-check-label::before { background-image: url(../images/form6.svg); }
section.contact-home .contactForm .contact-field-type_multiple .form-check:hover .form-check-label { border-color: var(--violet-color); }
section.contact-home .contactForm .contact-field-type_multiple .form-check-input:checked + .form-check-label {
    background: var(--quaternary-color);
    border-color: var(--violet-color);
}
section.contact-home .contactForm .contact-field-type_multiple .form-check-input:focus-visible + .form-check-label {
    outline: 2px solid var(--violet-color);
    outline-offset: 2px;
}

section.contact-home .contactForm .contact-field-item.contact-field-type_upload {
    grid-column: 1 / span 2;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 83px;
    padding: 10px 20px !important;
    background: var(--white-color);
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: 5px;
    transition: border-color var(--t-base);
}
section.contact-home .contactForm .contact-field-item.contact-field-type_upload:hover,
section.contact-home .contactForm .contact-field-item.contact-field-type_upload:focus-within { border-color: var(--violet-color); }
section.contact-home .contactForm .contact-field-item.contact-field-type_upload .form-control {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    min-height: 0;
    opacity: 0;
    cursor: pointer;
}
section.contact-home .contactForm .contact-field-item.contact-field-type_upload .contact-field-help {
    display: flex !important;
    align-items: center;
    gap: 45px;
    max-width: 330px;
    font-size: 16px;
    line-height: 23px;
    text-align: center;
    color: var(--gray-color);
}
section.contact-home .contactForm .contact-field-item.contact-field-type_upload .contact-field-help::before {
    content: "";
    flex: 0 0 53px;
    width: 53px;
    height: 42px;
    background: url(../images/fiche.svg) no-repeat center / contain;
}

section.contact-home .contactForm .gdpr {
    grid-column: 1 / -1;
    display: block;
    float: none;
    margin: 0;
}
section.contact-home .contactForm .gdpr,
section.contact-home .contactForm .gdpr label {
    margin-bottom: 0;
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    color: var(--text-color);
}
section.contact-home .contactForm .gdpr a { color: var(--primary-color); text-decoration: underline; }
section.contact-home .contactForm .contact-submit {
    position: relative;
    grid-column: 3;
    display: block;
    justify-self: stretch;
    align-self: stretch;
    float: none;
}
section.contact-home .contactForm .contact-submit .btn {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 56px;
    padding: 15px 74px 15px 40px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: 0;
    text-align: center;
    text-transform: uppercase;
    color: var(--white-color);
    background: var(--violet-color);
    background-image: none;
    border: 0;
    border-radius: 200px;
}
section.contact-home .contactForm .contact-submit .btn:hover,
section.contact-home .contactForm .contact-submit .btn:focus-visible {
    color: var(--white-color);
    background: var(--violet-dark);
}
section.contact-home .contactForm .contact-submit::after {
    content: "\f0a9";
    right: 40px;
    font: var(--fa-font-regular);
    font-size: 22px;
    line-height: 24px;
    color: var(--white-color);
}


/* --- Footer (Figma) --- */
footer.bottom {
position: relative;
padding: 100px 0 40px;
color: var(--white-color);
background: var(--primary-color);
}
footer.bottom .container { max-width: 1350px; }
.footer-wrapper { display: flex; align-items: flex-start; gap: 40px; }
.footer-brand { flex: 0 0 340px; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.footer-logo img { display: block; width: 276px; height: auto; }
.footer-desc { margin: 0; font-size: 15px; line-height: 24px; color: rgba(255, 255, 255, .7); }
.footer-rs ul,
.footer-rs .networks_linking { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
.footer-rs a {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
font-size: 14px;
color: var(--white-color);
text-decoration: none;
background: rgba(255, 255, 255, .2);
border-radius: 100px;
transition: background-color var(--t-base);
}
/*.footer-rs a[href*="instagram"],*/
.footer-rs a:hover { color: var(--white-color); background: var(--pink-color); }
.footer-col { flex: 0 0 260px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.footer-title {
margin: 0;
font-family: var(--font-title);
font-weight: 600;
font-size: 26px;
line-height: 34px;
letter-spacing: -.13px;
text-transform: uppercase;
color: var(--white-color);
}
.footer-info { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 24px; color: rgba(255, 255, 255, .85); }
.footer-info i { flex: 0 0 14px; margin-top: 5px; font-size: 14px; color: var(--pink-color); }
.footer-info .adr { display: flex; flex-direction: column; color: var(--white-color); }
.footer-info a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.footer-info a:hover { color: var(--pink-color); }
.footer-slot { display: flex; flex-direction: column; gap: 2px; font-size: 15px; line-height: 24px; color: var(--white-color); }
.footer-slot-day { font-weight: 600; font-size: 16px; line-height: 20px; }
.footer-map { flex: 0 0 340px; max-width: 340px; margin-left: auto; }
.footer-map .map-container { height: 260px; overflow: hidden; background: var(--white-color); border-radius: 20px; }
.footer-map iframe,
.footer-map .map-container > div { display: block; width: 100%; height: 100%; border: 0; }
.footer-bottom { margin-top: 64px; }
.footer-bottom .container {
position: relative;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 16px 32px;
padding-top: 28px;
font-size: 15px;
line-height: 24px;
color: var(--white-color);
}
.footer-bottom .container::before {
content: "";
position: absolute;
top: 0;
right: 15px;
left: 15px;
height: 1px;
background: rgba(255, 255, 255, .12);
}
.footer-bottom p { margin: 0; }
.footer-bottom .legal-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 32px; }
.footer-bottom a,
.footer-bottom .brand-skin { color: var(--white-color); text-decoration: none !important; }
.btn-cookies-settings { padding: 0; font: inherit; color: var(--white-color); background: none; border: 0; cursor: pointer; }
.footer-bottom a:hover,
.footer-bottom .brand-skin:hover,
.btn-cookies-settings:hover { color: var(--pink-color); }
.footer-bottom .brand-skin {
display: inline-block !important;
padding: 0 !important;
font-size: 15px !important;
line-height: 24px !important;
}
/* ==========================================================================
   PAGES INTERNES (CSS fourni par l'intÃƒÆ’Ã‚Â©grateur)
   ========================================================================== */
section.content ul {

  list-style-type : none !important;
}
section.content ul li{
	background: url(../images/bullet.webp)no-repeat left 6px;
	padding-left: 20px;
	margin-left: -20px;
}
.box-light, .box-border-left, .box-border-right {
	padding: 20px;
	margin: 0 0 20px;
	background: var(--bs-light);

}
.box-border-left {
    border-left: 7px solid var(--bs-primary);
}
.box-border-right {
    border-right: 7px solid var(--bs-primary);
}
.box-dark {
	padding: 20px;
	margin: 0 0 20px;
    color: var(--white-color);
	background: var(--dark-color);

}
.box-dark a {
    color: var(--white-color) !important;
}
h3.contact-field{
	display : none;
}
.content-page .tooltip {
    --bs-tooltip-color: var(--dark-color);
    opacity: 1;
}
/*************/
.content-page .networks_linking {
  display: flex;
  align-items: center;
  gap: 5px;
}
.content-page .networks_linking a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--white-color);
  font-size: 14px;
  text-decoration: none;
  transition: color .25s ease, transform .25s ease;
}
/*
.content-page .networks_linking a:hover i { color: var(--dark-color); transform: translateY(-2px); }*/
/**************/

/* Form inputs ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â dark theme (homepage) */
 input[type="text"],
 input[type="email"],
 input[type="tel"],
 textarea,
 select ,
 .form-control, .sec-contact  .form-select{
    display: block;
    width: 100%;
    padding: 10px 20px;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--tertiary-color);
    background: var(--white-color);
    border: 1px solid var(--tertiary-color);
    border-radius: 0;
    transition: border-color var(--t-base), box-shadow var(--t-base);
}
input::placeholder,
 textarea::placeholder { color: var(--hp-light-70); }
 input:focus,
 textarea:focus,
 select:focus {
    outline: none;
    border-color:  var(--gray-color);
}
.contactForm textarea.form-control {
    height: 105px;
}
.contactForm .contact-field-item {
	margin: 0 0 24px  !important;
	position: relative;
	display: block;
	padding: 0;
	width:50%;
	float: left;
	clear: none !important;
}
 .contactForm .contact-field-item:nth-child(even) {
padding-right: 12px;
}
.contactForm .contact-field-item:nth-child(odd) {
	padding-left: 12px;
}
.contactForm .contact-field-item.fullwidth {
	width: 100%;
	padding: 0 !important;
	float: none;
	clear: both !important;
}
.contactForm textarea.form-control {
height: 150px;
}
.contact-field-type_checkboxes .form-check {
    display: inline-block;
    margin-right: 10px;
}
.sec-contact label a:hover {
color: var(--light-color);
}
.gdpr.form-check {
    margin-top: 15px;
    display: inline-block;
    float: left;
}
.contact-submit {
    float: right;
}
.sec-contact  label { color: var(--light-color); font-size: 15px;    margin: 0; }
.sec-contact  label a { color: var(--light-color); }
.sec-contact  label a:hover {
    color: var(--light-color);
  text-decoration: underline;
}
.sec-contact .form-check .form-check-input {
    margin-top: 0;
}
.bg-success {
    background-color:  var(--light-color) !important;
}



/***********/
section.content.page-content.content-page .grid-gallery {
    display: flex;
    flex-wrap: wrap;
    grid-gap: 2%;
    justify-content: center;
}
section.content.page-content.content-page .grid-img .grid-gallery{
	display: block;
	width: 400px;

}
section.content.page-content.content-page .grid-img .link-picture {
	height: 320px;
}
section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
    width: 23.5%;
    background-size: cover;
    background-position: center;
    height: 300px;
    cursor: zoom-in;
    position: relative;
    transition: transform .4s,box-shadow .4s;
    border-radius: 15px;
    margin-bottom: 20px;
}
section.content.page-content.content-page .link-subgallery:hover, section.content.page-content.content-page .link-picture:hover {
	transform: scale(.95) !important;
}
section.content.page-content.content-page .pagination {
    margin-top: 20px;
    justify-content: center;
  flex-wrap: wrap;
}
section.content.page-content.content-page .pagination li{
  background-image : none !important;
}
section.content.page-content.content-page .pagination .page-link{
  color: var(--dark-color) !important ;
}
section.content.page-content.content-page .pagination .active>.page-link, section.content.page-content.content-page .pagination .page-link.active,
section.content.page-content.content-page .pagination .page-link:hover{
  color: var(--bs-white) !important ;
  background: var(--bs-primary) !important ;
  border-color: var(--bs-primary) !important ;
}
section.content.page-content.content-page span.title-subgallery{
	position : absolute;
  bottom: 0;
  left: 0 ;
  right: 0;
  padding : 10px;
  color : var(--bs-body-bg) ;
  text-align : center;
  background : rgba(0,0,0,0.7);
}
section.content.page-content.content-page .title-picture {
	display: none;
}

.fslightboxci h2 {

    color: var(--bs-white);
    font-size: 17px;
    font-weight: 400;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
/* --- Avis clients accueil (Figma node 5:666) --- */
section.avis.avis-clients {
    padding: 120px 0;
    background: var(--secondary-bg);
}
section.avis.avis-clients .container-fluid { padding: 0 15px; }
section.avis.avis-clients .grid-home {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 1140px;
    margin: 0 auto;
}
section.avis.avis-clients .section-head {
    display: grid !important;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 24px;
    row-gap: 10px;
    text-align: left;
}
section.avis.avis-clients .section-head .eyebrow {
    grid-column: 1;
    grid-row: 1;
    color: var(--primary-color);
}
section.avis.avis-clients .section-head .section-title {
    grid-column: 1;
    grid-row: 2;
    font-weight: 700;
    font-size: 48px;
    line-height: 56px;
    letter-spacing: -.72px;
    text-transform: uppercase;
    color: var(--primary-color);
}
section.avis.avis-clients .section-head .btn.link-arrow {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    justify-self: end;
    padding: 18px 24px;
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    letter-spacing: 0;
    color: var(--white-color);
    background: var(--violet-dark);
    border: 0;
    border-radius: 100px;
    transition: background-color var(--t-base);
}
section.avis.avis-clients .section-head .btn.link-arrow:hover,
section.avis.avis-clients .section-head .btn.link-arrow:focus-visible {
    color: var(--white-color);
    background: var(--violet-color);
}
section.avis.avis-clients .blc-avis {
    width: 100%;
    text-align: center !important;
}
section.avis.avis-clients #Guestbook .average-score,
section.avis.avis-clients #Guestbook #gb-messages,
section.avis.avis-clients #Guestbook .swiper-container2 > .swiper-pagination,
section.avis.avis-clients #Guestbook .gb-entry [itemprop="aggregateRating"],
section.avis.avis-clients #Guestbook .gb-entry [itemprop="reviewRating"],
section.avis.avis-clients #Guestbook .gb-entry [itemprop="author"],
section.avis.avis-clients #Guestbook .gb-entry .review-hour,
section.avis.avis-clients #Guestbook .gb-entry .link { display: none; }
section.avis.avis-clients #Guestbook .swiper-container2 { overflow: hidden; }
section.avis.avis-clients #Guestbook .swiper-wrapper { align-items: stretch; }
section.avis.avis-clients #Guestbook .gb-entry {
    display: flex;
    height: auto;
    margin: 0;
    padding: 60px 20px;
    background: var(--quaternary-color);
    border: 0;
    border-radius: 20px;
    box-shadow: none;
}
section.avis.avis-clients #Guestbook .gb-entry > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
}
section.avis.avis-clients #Guestbook .gb-entry [itemprop="review"] { display: contents; }
section.avis.avis-clients #Guestbook .gb-entry .review-user {
    order: 1;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 26px;
    line-height: 34px;
    letter-spacing: -.13px;
    text-transform: uppercase;
    color: var(--text-color);
}
section.avis.avis-clients #Guestbook .gb-entry .review-date {
    order: 2;
    float: none;
    margin-top: -6px;
    font-size: 16px;
    line-height: 23px;
    color: var(--text-color);
}
section.avis.avis-clients #Guestbook .gb-entry .gb-entry-score {
    order: 3;
    display: flex;
    justify-content: center;
    gap: 4px;
    line-height: 24px;
}
section.avis.avis-clients #Guestbook .gb-entry .gb-entry-score i {
    font-size: 14px;
    line-height: 24px;
    color: var(--violet-color) !important;
}
section.avis.avis-clients #Guestbook .gb-entry .gb-entry-score i:before { color: var(--violet-color) !important; }
section.avis.avis-clients #Guestbook .gb-entry .message {
    order: 4;
    width: 100%;
    margin: 0;
    font-size: 16px;
    line-height: 23px;
    color: var(--text-color);
}
section.avis.avis-clients .swiper-pagination3 {
    position: static;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-top: 40px;
}
section.avis.avis-clients .swiper-pagination3 .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    margin: 0 !important;
    background: transparent;
    border: 2px solid var(--primary-color);
    opacity: 1;
}
section.avis.avis-clients .swiper-pagination3 .swiper-pagination-bullet-active {
    background: var(--extra-color);
    border-color: var(--extra-color);
}
section.avis.avis-clients .swiper-pagination3.swiper-pagination-lock { display: none; }



/********* avis interne *********/
section.content.page-content.content-page div#Guestbook {
    clear: both;
}
section.content.page-content.content-page .star-rating label:has(~ :checked) i,section.content.page-content.content-page .star-rating label:is(:hover,:has(~ :hover)) i{
	color : var(--gold-from) !important;
}
section.content.page-content.content-page .fa-star:before{
	color : var(--gold-from) !important;
}
section.content.page-content.content-page .average-review {
    float: left;
  margin : 20px 0;
}

section.content.page-content.content-page span.count-messages {
    float: right;
  margin : 20px 0;
}
section.content.page-content.content-page .gb-entry {
    clear: both;
    margin: 20px 0;
    padding: 10px 15px;
    background: var(--color-quaternary);
    border-bottom: 2px solid var(--gold-from);
  box-shadow: 0 0 5px 0 rgb(255 255 255 / 50%);
}
section.content.page-content.content-page .gb-entry span.review-date{
    float: right;
}
section.content .star-rating label .fa-star:before {
    content: "\f005";
    font-weight: 400 !important;
}
section.content .star-rating label:has(~ :checked) .fa-star:before {
    font-weight: 900 !important;
}
section.content  .star-rating [type="radio"] {
    appearance: none;
  padding : 0;
  border : none;
}

h3.contact-field {
    display: none;
}
/***********************/
section.content .contact-field-item {
  margin-bottom : 15px;
}
section.content .contact-field-item input::placeholder, section.content .contact-field-item textarea::placeholder {
    color: var(--white-color);

}




/****************** accordion ********************/
.accordion-button {
    color: var(--bs-body-color) !important;
    background-color: var(--quaternary-color);
    font-size: 20px;
    font-weight: 700;
    text-transform: uppercase;
    box-shadow : none !important;
    padding: 5px 40px;
    border-radius: 50px !important;
}
.accordion-body {
    border: none;
    margin-top: 10px;
    background: var(--bs-body-bg);
}
.accordion-header {

     margin: 0 auto 10px;
}
.accordion-item {
    border: none !important;
  background : transparent;
}
.accordion-item h2{color: var(--bs-body-bg);}

.accordion-button:not(.collapsed), .accordion-button:hover  {
    color: var(--bs-accordion-active-color);
    background-color: var(--bs-primary);
}
.accordion-button::after {
	display:none
}
.accordion-item:last-of-type>.accordion-header .accordion-button span {
    position: absolute;
    right: 20px;
    font-size:20px;
      transition: all .3s;
}
.accordion-item:last-of-type>.accordion-header .accordion-button span.moi-acc {
    display: none;
      transition: all .3s;
}
.accordion-item:last-of-type>.accordion-header .accordion-button:not(.collapsed) span.moi-acc {
    display: block;
      transition: all .3s;
}
.accordion-item:last-of-type>.accordion-header .accordion-button span.plus-acc {
    display: block;
      transition: all .3s;
}
.accordion-item:last-of-type>.accordion-header .accordion-button:not(.collapsed) span.plus-acc {
    display: none;
      transition: all .3s;
}

/**********************/
.Item .link > a {
    position: absolute;
    inset: 0;
    font-size: 0;
    z-index: 2;
    outline: none;
    border-radius: 20px;
}
section.content .news-object .nophoto, section.content .news-object .photo{display:flex;align-items:center;justify-content:center;background:var(--white-color);height:230px;overflow:hidden; border-radius: 20px;}
section.content .news-object .nophoto img{object-fit:scale-down;padding:10px;max-width: 80%;max-height: 100%;opacity:1;width: 100%;height: 100%; border-radius: 20px;}
section.content .news-object .photo img{
    width: 100%;height: 100%;
    object-fit : cover;
    border-radius: 20px;
}
section.content .news-object .nophoto i[class*="fa-image"]{display:none;}
section.content .news-object.Item {
    margin-bottom: 20px;
    position : relative;
    background : var(--quaternary-color);
}
section.content .news-object.Item {
    padding :20px 15px 30px 15px;
  border-radius : 20px;
}
section.content .news-object.Item .news-body-desc{
    padding : 30px 0 0 ;
}
section.content .news-object.Item .news-abstract{
    display : block;
    margin-bottom : 15px;
}
section.content .news-object.Item h3{
    font-size : 20px;

}
section.content .news-object.Item h3 .date{
    display : none;
}
/*
section.content .news-object.Item .read-more a{
  color : var(--bs-body-bg);
  border : none;
}*/
section.content .news-object.Item:hover .read-more a{
    background: transparent;
    color:var(--primary-color);    text-decoration: none;
}
section.content article .NewsMasonry .NewsItem img.img-news-list, img.img-news {
    max-width: 180px!important;
    height: 170px!important;
    border-radius: 20px;
}
section.content img {
    max-width: 100%;
}

/**********************/
section.content .row.bx-grid {
    margin-bottom: 30px;
}
section.content .row.bx-grid .img-page {
    position: relative;
    height: 100%;
    min-height: 240px;
}
section.content .row.bx-grid .img-page img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    border-radius: 10px;
}
section.content .row.bx-grid .text-page {
    padding: 30px 0;
}

/* --- Pages internes : complÃƒÆ’Ã‚Â©ment Figma --- */
.page-content { padding: 80px 0; }
.page-content h1 { margin-bottom: 32px; color: var(--primary-color); }
.page-content h1 .sub-title { display: block; font-size: 24px; font-weight: 600; color: var(--secondary-color); }
.page-content h2 { margin: 32px 0 16px; }
.page-content p { color: var(--gray-color); }
.news-detail .news-meta { margin-bottom: 24px; font-size: 14px; color: var(--primary-color); }
.news-detail .news-hero-img { margin-bottom: 32px; }
.news-detail .news-body { color: var(--gray-color); }
.news-detail .btn-back { margin-top: 32px; }
.contact-page .contact-form-wrap input[type="text"],
.contact-page .contact-form-wrap input[type="email"],
.contact-page .contact-form-wrap input[type="tel"],
.contact-page .contact-form-wrap textarea { color: var(--text-color); }
section.content .contact-form-wrap .contact-field-item input::placeholder,
section.content .contact-form-wrap .contact-field-item textarea::placeholder { color: var(--hp-light-70); }


section.content.page-content.content-page .grid-home img { border-radius: 4px; }
section.content.page-content.content-page .grid-home {
    grid-gap: 40px;
    margin-bottom: 70px !important;
}

/* --- Pages produits : blocs texte / photo, avant / après, réalisations (brief DCv2) --- */
section.content.page-content.content-page .grid-home.page-bloc {
display: flex;
align-items: center;
gap: 80px;
margin: 80px 0 !important;
}
.page-bloc .text-part { flex: 1 1 0; min-width: 0; }
.page-bloc .text-part h2 { margin: 0 0 28px; font-size: 40px; line-height: 48px; letter-spacing: -.72px; color: var(--primary-color); }
.page-bloc .text-part p { margin: 0 0 25px; font-size: 16px; line-height: 25px; color: var(--text-color); }
.page-bloc .text-part p:last-child { margin-bottom: 0; }
.page-bloc .grid-img {
position: relative;
flex: 0 0 40%;
max-width: 481.5px;
aspect-ratio: 481.5 / 572.43;
overflow: visible;
border-radius: 0;
}
.page-bloc .grid-img::after {
content: "";
position: absolute;
top: .707%;
left: .808%;
z-index: 2;
width: 98.97%;
height: 94.84%;
background: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20476.589%20542.865'%20preserveAspectRatio%3D'none'%20fill%3D'none'%3E%3Cpath%20d%3D'M4.01475%2020.688C3.5786%2010.4581%2012.7306%202.45707%2022.8107%204.25538L423.288%2075.7017C430.427%2076.9755%20435.817%2082.892%20436.422%2090.1187L472.531%20521.53C473.329%20531.061%20465.64%20539.159%20456.08%20538.856L40.3722%20525.689C32.0005%20525.424%2025.2504%20518.747%2024.8937%20510.378L4.01475%2020.688Z'%20stroke%3D'%2386327E'%20stroke-width%3D'8'%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat;
transform: scaleX(-1);
pointer-events: none;
}
section.content.page-content.content-page .page-bloc .grid-img img {
position: absolute;
top: 4.773%;
left: .199%;
width: 99.08%;
max-width: 99.08%;
height: 95.1%;
margin: 0;
object-fit: cover;
border-radius: 0;
-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20476.589%20542.865'%20preserveAspectRatio%3D'none'%3E%3Cpath%20d%3D'M4.01475%2020.688C3.5786%2010.4581%2012.7306%202.45707%2022.8107%204.25538L423.288%2075.7017C430.427%2076.9755%20435.817%2082.892%20436.422%2090.1187L472.531%20521.53C473.329%20531.061%20465.64%20539.159%20456.08%20538.856L40.3722%20525.689C32.0005%20525.424%2025.2504%20518.747%2024.8937%20510.378L4.01475%2020.688Z'%20fill%3D'%23000'%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat;
mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20476.589%20542.865'%20preserveAspectRatio%3D'none'%3E%3Cpath%20d%3D'M4.01475%2020.688C3.5786%2010.4581%2012.7306%202.45707%2022.8107%204.25538L423.288%2075.7017C430.427%2076.9755%20435.817%2082.892%20436.422%2090.1187L472.531%20521.53C473.329%20531.061%20465.64%20539.159%20456.08%20538.856L40.3722%20525.689C32.0005%20525.424%2025.2504%20518.747%2024.8937%20510.378L4.01475%2020.688Z'%20fill%3D'%23000'%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat;
}
.before-after .ba-after { clip-path: inset(0 0 0 var(--ba-pos, 50%)); }
.before-after .ba-range {
position: absolute;
inset: 0;
z-index: 3;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
cursor: ew-resize;
opacity: 0;
}
.before-after .ba-handle {
position: absolute;
top: 6%;
bottom: 5%;
left: var(--ba-pos, 50%);
z-index: 2;
width: 3px;
background: var(--white-color);
transform: translateX(-50%);
pointer-events: none;
}
.before-after .ba-handle::after {
content: "\f337";
position: absolute;
top: 50%;
left: 50%;
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
font: var(--fa-font-solid);
font-size: 16px;
color: var(--white-color);
background: var(--violet-color);
border: 3px solid var(--white-color);
border-radius: 50%;
transform: translate(-50%, -50%);
}
.before-after .ba-range:focus-visible + .ba-handle::after { outline: 3px solid var(--extra-color); outline-offset: 2px; }
.before-after .ba-label {
position: absolute;
top: 12%;
z-index: 2;
padding: 6px 14px;
font-weight: 600;
font-size: 14px;
line-height: 20px;
color: var(--white-color);
background: rgba(36, 16, 31, .7);
border-radius: 100px;
pointer-events: none;
}
.before-after .ba-label-before { left: 8%; }
.before-after .ba-label-after { right: 14%; }
.realisations {
margin: 80px 0 0;
padding: 56px;
text-align: center;
background: var(--quaternary-color);
border-radius: 20px;
}
section.content .realisations h2 { margin: 0 0 40px; font-size: 40px; line-height: 48px; color: var(--primary-color); }
section.content.page-content.content-page .realisations .grid-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
section.content.page-content.content-page .realisations a.link-picture {
display: block;
width: auto;
height: auto;
margin: 0;
aspect-ratio: 4 / 3;
background-size: cover;
background-position: center;
border-radius: 20px;
}
.realisations .nav-gallery:empty { display: none; }

/* --- Barre de progression de lecture (créée par app.js) --- */
.scroll-progress {
position: fixed;
top: 0;
left: 0;
z-index: 1040;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--violet-color) 0%, var(--extra-color) 100%);
transform: scaleX(0);
transform-origin: 0 50%;
pointer-events: none;
}
.bx-pictos .gx-count { font-variant-numeric: tabular-nums; }

/* Hero accueil : vidéo d'intro puis slideshow + slogan + CTA */
.banner .hero-video {
    display: none;
}
.banner.is-video .hero-video,
.banner.is-video-done .hero-video {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 4;
    background: var(--dark-color, #24101F);
}
.banner.is-video-done .hero-video {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .8s ease, visibility 0s linear .8s;
}
.banner .hero-video-media {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.banner.is-video .banner-content,
.banner.is-video .banner-overlay {
    opacity: 0;
    visibility: hidden;
}
.banner .hero-video-skip {
    position: absolute;
    right: 24px;
    bottom: 24px;
    min-height: 44px;
    padding: 0 22px;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 22px;
    background: rgba(36, 16, 31, .55);
    color: #FFFFFF;
    font: 600 14px/1 "Manrope", sans-serif;
    cursor: pointer;
    transition: background-color .3s ease, border-color .3s ease;
}
.banner .hero-video-skip:hover,
.banner .hero-video-skip:focus-visible {
    background: var(--violet-color, #86327E);
    border-color: var(--violet-color, #86327E);
    outline: 2px solid #FFFFFF;
    outline-offset: 2px;
}
/************pdf******************************/
/* ===== STB — Boutons catalogues PDF ===== */
.stb-catalogues {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 24px 0 8px;
}
.stb-catalogues__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 12px 24px;
  border: 1px solid #872C7B;
  border-radius: 50px;
  background-color: #872C7B;
  color: #FFFFFF;
  font-family: 'Manrope', sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .3s, color .3s, border-color .3s, transform .3s;
}
.stb-catalogues__btn i { font-size: 18px; }
.stb-catalogues__btn:hover,
.stb-catalogues__btn:focus-visible {
  background-color: #FFFFFF;
  color: #872C7B;
  transform: translateY(-2px);
}
.stb-catalogues__btn:focus-visible { outline: 2px solid #24101F; outline-offset: 3px; }

@media (max-width: 575.98px) {
  .stb-catalogues { flex-direction: column; }
  .stb-catalogues__btn { justify-content: center; width: 100%; text-align: center; }
}

/* ==========================================================================
BLOC 4 — RESPONSIVE (toutes les media queries, desktop → mobile)
Ordre : ≥1200 · ≤1599 · ≤1399 · ≤1199 · ≤991 · ≤767 · ≤480 · reduced-motion
Maquettes de référence : Figma 6:2 (desktop 1920) et 10:73 / 11:238 (mobile 390)
========================================================================== */

/* ---------- ≥ 1200px : navigation horizontale (Rule 1) ---------- */
@media (min-width: 1200px) {
nav.navbar .navbar-nav,
nav.navbar .sf-menu { flex-direction: row !important; }
nav.navbar .lang-nav { flex: 1 1 auto; display: flex; justify-content: center; }
nav.navbar .sf-menu > li { display: flex; flex-shrink: 0; align-items: center; gap: 4px; }
}

/* ---------- ≤ 1599px ---------- */
@media (max-width: 1599px) {
.part-nav-header { min-height: 110px; }
nav.navbar .container { min-height: 110px; }
nav.navbar .logo img { height: 72px; }
nav.navbar .sf-menu { gap: 16px; }
nav.navbar .sf-menu > li > a { font-size: 15px; }
.all-tels.d-flex { gap: 12px; }
.nav-cta { padding: 14px 18px; font-size: 15px; }
.sidebar-rs a { width: 35px; height: 35px; }
.footer-brand {
    flex: 0 0 250px;
}
  .footer-col {
    flex: 0 0 220px;

}
  .footer-map {
    flex: 0 0 250px;
    max-width: 250px;
    margin-left: auto;
}
}
/* ---------- ≤ 1599px ---------- */
@media (max-width: 1599px) {
  section.contact-home .container {

    padding: 0 15px;
}
section.contact-home .contactForm .contact-field-type_multiple { gap: 12px; }
section.contact-home .contactForm .contact-field-type_multiple .form-check-label { padding: 10px 6px; }
}
/* ---------- ≤ 1399px ---------- */
@media (max-width: 1399px) {
.nav-cta { width: 48px; height: 48px; padding: 0; gap: 0; }
.nav-cta-number {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
}
.sec-bloc .bloc { gap: 80px; }
.contact-infos-home { flex-basis: 440px; padding: 48px; }
.contact-home .contact-form-wrap,
.contact-page .contact-form-wrap { padding: 48px; }
    
section.contact-home .contact-form-wrap { padding: 40px; }
section.contact-home .contactForm .contact-field-type_multiple { grid-template-columns: repeat(3, minmax(0, 1fr)); }
section.contact-home .contactForm .contact-field-type_multiple .form-check { min-height: 100px; }
section.contact-home .contactForm .contact-field-item.contact-field-type_upload .contact-field-help { gap: 20px; }
}
/* ---------- ≤ 1199px : header mobile + menu burger (Figma 10:74 / 11:238) ---------- */


@media (max-width: 1199px) {
.container,
.banner-content .container-fluid { padding: 0 15px; }
.part-nav-header { min-height: 76px; }
nav.navbar { z-index: 1022; border-bottom: 1px solid var(--field-border); }
nav.navbar .container,
nav.navbar.is-sticky .container {
flex-wrap: nowrap;
gap: 8px;
max-width: 100%;
min-height: 76px;
padding: 0 15px;
}
nav.navbar .logo { margin-right: auto; }
nav.navbar .logo img,
nav.navbar.is-sticky .logo img { width: auto; height: 48px; }
.all-tels.d-flex { order: 1; gap: 8px; }
.nav-cta {
width: 44px;
height: 44px;
color: var(--secondary-color);
background: var(--quaternary-color);
border-radius: 999px;
}
.nav-cta i { font-size: 15px; color: var(--secondary-color); }
.nav-cta:hover { background: var(--secondary-color); }
.nav-cta:hover i { color: var(--white-color); }
nav.navbar .lang-nav { order: 2; position: static; }
nav.navbar .navbar-toggler {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
background: var(--secondary-color);
border-radius: 999px;
}
nav.navbar .navbar-toggler-icon { width: 18px; height: 18px; }
nav.navbar .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M6 6l18 18M6 24l18-18'/%3e%3c/svg%3e");
}
nav.navbar .navbar-collapse {
position: absolute;
top: 100%;
right: 0;
left: 0;
max-height: calc(100vh - 76px);
overflow-y: auto;
padding: 16px 15px 32px;
background: var(--white-color);
box-shadow: 0 24px 40px rgba(36, 16, 31, .12);
}
nav.navbar .navbar-nav,
nav.navbar .sf-menu {
flex-direction: column !important;
align-items: stretch;
gap: 0;
padding: 0;
}
nav.navbar .sf-menu > li > a {
display: flex;
justify-content: space-between;
min-height: 60px;
padding: 16px 0 !important;
font-size: 20px;
line-height: 28px;
color: var(--dark-color);
border-bottom: 1px solid var(--field-border);
}
nav.navbar .sf-menu > li.selected > a { color: var(--secondary-color); }
nav.navbar .sf-menu > li > .dropdown-toggle {
position: absolute;
top: 16px;
right: 0;
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
color: var(--secondary-color);
pointer-events: none;
}
nav.navbar .sf-menu > li > .dropdown-toggle::after { content: "\f077"; margin: 0; font-size: 14px; }
nav.navbar .sf-menu li ul {
position: static;
display: block;
min-width: 0;
margin: 8px 0;
padding: 8px;
background: var(--quaternary-color);
border: 0;
border-radius: 16px;
box-shadow: none;
}
nav.navbar .sf-menu li ul li a {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 44px;
padding: 12px 14px;
font-weight: 600;
font-size: 16px;
line-height: 20px;
color: var(--dark-color);
}
nav.navbar .sf-menu li ul li a::after {
content: "\f054";
font: var(--fa-font-solid);
font-size: 11px;
color: var(--secondary-color);
}
nav.navbar .sf-menu li ul li a:hover,
nav.navbar .sf-menu li ul li.selected > a { color: var(--secondary-color); background: transparent; }
.mobile-menu-actions { display: flex; flex-direction: column; gap: 20px; padding-top: 24px; }
.mobile-menu-cta { justify-content: center; width: 100%; }
.mobile-menu-rs .networks_linking,
.mobile-menu-rs ul { display: flex; gap: 12px; margin: 0; padding: 0; list-style: none; }
.mobile-menu-rs a {
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
font-size: 18px;
color: var(--secondary-color);
text-decoration: none;
background: var(--quaternary-color);
border-radius: 999px;
}
header.header .banner { height: 600px; }
header.header.small .banner { height: 420px; }
.banner-content { bottom: 96px; }
.hero-box h1,
.hero-box h2 { font-size: 44px; line-height: 50px; }
section.boxes .box { height: 360px !important; }
section.boxes h2 { font-size: 40px; line-height: 48px; }
.sec-bloc .bloc-content h2,
.contact-infos-home h2,
.sec-actualites .section-title { font-size: 40px; line-height: 48px; }
.sec-actualites .news-small .news-object.Item { gap: 20px; }
.sec-actualites .news-small .photo,
.sec-actualites .news-small .nophoto { flex-basis: 180px; width: 180px; height: 180px; }
section.content.page-content.content-page .grid-home.page-bloc { gap: 48px; }
.page-bloc .text-part h2,
section.content .realisations h2 { font-size: 34px; line-height: 40px; }
.footer-wrapper { flex-wrap: wrap; }
.footer-map { flex: 1 1 100%; max-width: 100%; margin-left: 0; }*/
.footer-bottom { padding-bottom: 72px; }
.footer-bottom .container::before { right: 24px; left: 24px; }
    .footer-bottom .container {

    align-items: center;
    justify-content: center;
}
section.contact-home { padding: 96px 0; }
section.contact-home .container { padding: 0 30px; }
section.contact-home .contact-card { flex-direction: column; }
section.contact-home .contact-infos-home {
    flex: 0 0 auto;
    max-width: none;
    padding: 60px 40px;
    background: linear-gradient(90deg, rgba(235, 236, 242, .95) 40%, rgba(235, 236, 242, .4) 100%), url(../images/img-contact.webp) center / cover no-repeat, #773A3A;
    border-radius: 40px 40px 0 0;  
}
  section.boxes .box h3,.sec-actualites .news-object h3 {
    font-size: 20px;
    line-height: 26px;
}
  .sec-bloc-02 .bloc-signature {
    display: none;
}
section.contact-home .contact-infos-home h2 { font-size: 40px; line-height: 48px; }
section.contact-home .contact-form-wrap { flex: 0 0 auto; max-width: none; border-radius: 0 0 40px 40px; }
section.contact-home .contactForm .contact-field-type_multiple { grid-template-columns: repeat(6, minmax(0, 1fr)); }
section.avis.avis-clients { padding: 96px 0; }
section.avis.avis-clients .section-head .section-title { font-size: 40px; line-height: 48px; }
  a#scrollTopBtn {
	bottom: 5px;
}
  .footer-bottom {
	margin-top: 34px;
	padding-bottom: 20px;
}
}
/* ---------- ≤ 991px : tablette ---------- */

@media (max-width: 991px) {
header.header.big .swiper-button-prev,
header.header.big .swiper-button-next,
header.header.big .carousel-control-prev,
header.header.big .carousel-control-next { display: none; }
header.header .banner .carousel-indicators { display: none !important; }
.banner-content { bottom: 72px; }
.sec-chapo { padding: 72px 0; }
.sec-chapo:before { display: none; }
.card-chapo { margin: 0; padding: 0; }
.card-chapo .chapo-flx { flex-direction: column; align-items: stretch; gap: 24px; }
.card-chapo h1,
.card-chapo h2 { font-size: 36px; line-height: 42px; }
.section-title { font-size: 36px; line-height: 42px; }
.sec-pictos { padding: 72px 0 96px; }
section.boxes { padding: 72px 0; }
section.boxes .boxes-slider { grid-template-columns: repeat(2, 1fr); gap: 16px; }
section.boxes .boxes-slider > div:nth-child(1),
section.boxes .boxes-slider > div:nth-child(6) { grid-column: span 2; }
section.boxes .box { height: 280px !important; }
.sec-bloc { padding: 72px 0; }
.sec-bloc-01::before { display: none; }
.sec-bloc .bloc,
.sec-bloc-02 .bloc { flex-direction: column; align-items: stretch; gap: 40px; min-height: 0; }
.sec-bloc .bloc-content h2,
.sec-bloc-03 .bloc-content p { max-width: none; }
.sec-bloc .bloc-media { order: -1; flex: none; width: 100%; max-width: 400px; margin: 0 auto; }
.sec-bloc-02 .bloc-signature { position: static; width: 200px; margin: -16px 0 0 auto; }
.sec-actualites { padding: 72px 0; }
.sec-actualites .news-group { grid-template-columns: 1fr; }
.sec-actualites .news-featured { grid-row: auto; }
.sec-actualites .news-featured .photo,
.sec-actualites .news-featured .nophoto { height: 360px; }
.logos-pagination.swiper-pagination,
.actus-pagination.swiper-pagination { gap: 3px; }
.logos-pagination .swiper-pagination-bullet,
.actus-pagination .swiper-pagination-bullet { width: 8px; height: 8px; }
.contact-home { padding: 72px 0; }
.contact-card,
.contact-home .contact-card,
.contact-page .contact-card { flex-direction: column; }
.contact-infos-home { flex-basis: auto; }
.contact-infos-home h2,
.contact-infos-home p { max-width: none; }
.contact-form-wrap { padding: 48px 15px; }
.contactForm .contact-field-item {
position: relative;
display: block;
float: none;
width: 100% !important;
margin: 0 0 10px !important;
padding: 0;
clear: none !important;
}
.contactForm .contact-field-item:nth-child(even) { padding-right: 0; }
.contactForm .contact-field-item:nth-child(odd) { padding-left: 0; }
.page-content { padding: 56px 0; }
section.content.page-content.content-page .grid-home.page-bloc { flex-direction: column; align-items: stretch; margin: 48px 0 !important; }
.page-bloc .grid-img { order: -1; flex: none; width: 100%; max-width: 400px; margin: 0 auto; }
.realisations { padding: 40px 24px; }
section.content.page-content.content-page .realisations .grid-gallery { grid-template-columns: repeat(2, 1fr); gap: 16px; }
.img-page,
section.content article .NewsMasonry .NewsItem img.img-news-list,
img.img-news { display: table; margin-right: auto; margin-left: auto !important; }
section.content.page-content.content-page .grid-home .text-part,
section.content.page-content.content-page .grid-home .grid-img.w-25 { width: 100% !important; }
section.content.page-content.content-page .grid-home .grid-img {
width: 100% !important;
max-width: 400px;
height: 100% !important;
margin: 0 auto 50px;
}
section.content .row.bx-grid .img-page { max-width: 370px; height: 400px; min-height: inherit; margin: 0 auto; }
section.content.page-content.content-page .text-page { padding-bottom: 0 !important; }
section.content.page-content.content-page a.link-picture,
section.content.page-content.content-page a.link-subgallery { width: 49%; }
.footer-brand { flex: 1 1 100%; }
.footer-col { flex: 1 1 calc(50% - 20px); }
section.contact-home .contactForm .contact-field-type_multiple { grid-template-columns: repeat(3, minmax(0, 1fr)); }
section.avis.avis-clients { padding: 80px 0; }
section.avis.avis-clients #Guestbook .gb-entry { padding: 48px 20px; }
section.avis.avis-clients .swiper-pagination3 .swiper-pagination-bullet { width: 8px; height: 8px; border-width: 1px; }
  
 .footer-wrapper {
    flex-direction: column;
    align-content: center;
    text-align: center;
   align-items: center;
    flex-direction: column;
} 
 .footer-brand {

    flex-direction: column;
    align-items: center;
    align-content: center;
} 
.footer-col {
    flex-direction: column;
    align-items: center;
    align-content: center;
}  
.footer-info {
    align-items: center;
    justify-content: center;
    flex-direction: column;
}
  .realisations {
    padding: 40px 15px;
}
}
/* ---------- ≤ 767px : mobile (Figma 10:73 — 390px) ---------- */

@media (max-width: 767px) {
  .hero-box p {
    max-width: 100%;
}
  .sec-actualites .section-head-txt {
    align-items: center;
    text-align: center;
    align-content: center;
}
  section.boxes .section-head {

    text-align: center;
}
  .banner-content {

    text-align: center;
}
h1 { font-size: 32px; line-height: 38px; }
header.header.big .banner { height: 660px; }
header.header.small .banner { height: 320px; }
.banner-overlay { background: linear-gradient(180deg, rgba(36, 16, 31, .15) 10%, rgba(36, 16, 31, .85) 60%); }
.banner-content { bottom: 40px; }
.banner-content .hero-box { text-align: center; }
.hero-box .eyebrow { margin-bottom: 20px; font-size: 12px; letter-spacing: .96px; }
.hero-box h1,
.hero-box h2 { margin-bottom: 20px; font-size: 34px; line-height: 40px; letter-spacing: -.51px; }
.hero-box p { margin-bottom: 20px; font-size: 16px; line-height: 26px; }
.hero-box .btn-STB { justify-content: center; width: 100%; }
.card-chapo h1,
.card-chapo h2 { font-size: 30px; line-height: 38px; }
.section-title,
section.boxes h2,
.sec-pictos h2 { font-size: 30px; line-height: 38px; }
section.boxes .section-head { margin-bottom: 24px; }
section.boxes .boxes-slider { grid-template-columns: 1fr; }
section.boxes .boxes-slider > div:nth-child(1),
section.boxes .boxes-slider > div:nth-child(6) { grid-column: auto; }
section.boxes .box { height: 200px !important; }
section.boxes .box .cont-bx { grid-template-columns: minmax(0, 1fr) 44px; padding: 20px; }
section.boxes .box .cont-bx::after { width: 44px; height: 44px; }
section.boxes .box h3 { font-size: 22px; line-height: 28px; }
.sec-bloc .bloc-content h2,
.contact-infos-home h2,
.sec-actualites .section-title { font-size: 32px; line-height: 38px; }
.sec-bloc .bloc-media { max-width: 100%; }
.sec-bloc-02 .bloc-signature { width: 160px; }
.sec-actualites .section-head { flex-direction: column; align-items: center; margin-bottom: 32px; }
.sec-actualites .news-small .news-object.Item { flex-direction: column; align-items: stretch; }
.sec-actualites .news-small .photo,
.sec-actualites .news-small .nophoto,
.sec-actualites .news-featured .photo,
.sec-actualites .news-featured .nophoto { flex-basis: auto; width: 100%; height: 200px; }
.contact-infos-home,
.contact-home .contact-form-wrap,
.contact-page .contact-form-wrap { padding: 32px 24px; }
.contact-home .contactForm,
.contact-page .contactForm { grid-template-columns: 1fr; }
.contact-home .contactForm .gdpr,
.contact-home .contactForm .contact-submit,
.contact-page .contactForm .gdpr,
.contact-page .contactForm .contact-submit { grid-column: 1; justify-self: stretch; }
.contact-home .contact-submit .btn,
.contact-page .contact-submit .btn,
.contact-form-wrap .btn,
.contact-form-wrap button[type="submit"] { justify-content: center; width: 100%; }
.gdpr.form-check { display: block; float: none; margin-bottom: 10px; }
.contact-submit { display: table; float: none; }
.page-content { padding: 48px 0; }
.page-bloc .text-part h2,
section.content .realisations h2 { font-size: 28px; line-height: 34px; }
section.content.page-content.content-page .realisations .grid-gallery { gap: 12px; }
footer.bottom { padding: 56px 0 32px; }
.footer-wrapper { flex-direction: column; gap: 36px; }
.footer-brand,
.footer-col,
.footer-map { flex: none; width: 100%; max-width: 100%; }
.footer-logo img { width: 182px; }
.footer-map .map-container { height: 200px; }
.footer-bottom { margin-top: 40px; }
.footer-bottom .container { flex-direction: column; align-items: flex-start; }
.footer-bottom .legal-links { gap: 8px 24px; }
    
    
section.contact-home { padding: 64px 0; }
section.contact-home .container { padding: 0 15px; }
section.contact-home .contact-card { border-radius: 20px; }
section.contact-home .contact-infos-home { padding: 40px 24px; border-radius: 20px 20px 0 0; }
section.contact-home .contact-infos-home h2 { font-size: 32px; line-height: 38px; }
section.contact-home .contact-infos-home .liste-li { font-size: 18px; }
section.contact-home .contact-form-wrap { padding: 32px 20px; border-radius: 0 0 20px 20px; }
section.contact-home .contactForm { grid-template-columns: minmax(0, 1fr); gap: 20px; }
section.contact-home .contactForm .contact-field-type_multiple { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
section.contact-home .contactForm .contact-field-type_multiple .form-check { min-height: 100px; }
section.contact-home .contactForm .form-label { margin-bottom: 10px; }
section.contact-home .contactForm .form-control,
section.contact-home .contactForm .form-select { height: 48px; min-height: 48px; }
section.contact-home .contactForm .contact-field-type_select::after { height: 48px; }
section.contact-home .contactForm .contact-field-item.contact-field-type_upload,
section.contact-home .contactForm .contact-submit { grid-column: 1 / -1; }
section.contact-home .contactForm .contact-field-item.contact-field-type_upload .contact-field-help { gap: 16px; text-align: left; }
    
section.avis.avis-clients { padding: 64px 0; }
section.avis.avis-clients .grid-home { gap: 32px; }
section.avis.avis-clients .section-head { grid-template-columns: 1fr; }
section.avis.avis-clients .section-head .section-title { font-size: 32px; line-height: 38px; }
section.avis.avis-clients .section-head .btn.link-arrow {
    grid-column: 1;
    grid-row: 3;
    justify-self: start;
    min-height: 44px;
    margin-top: 14px;
}
section.avis.avis-clients #Guestbook .gb-entry { padding: 40px 20px; }
section.avis.avis-clients #Guestbook .gb-entry .review-user { font-size: 22px; line-height: 28px; }
    
    section.avis.avis-clients .section-head {
    text-align: center;
}
  section.avis.avis-clients .section-head .eyebrow {

    justify-content: center;
}
  section.avis.avis-clients .section-head .btn.link-arrow {
    margin: 14px auto 0;
}
  .footer-bottom .container {
    flex-direction: column;
    align-items: center;
}
  .footer-bottom .legal-links {
    gap: 5px;
    justify-content: center;
}
  footer.bottom .container {
    text-align: center;
}
}
/* ---------- ≤ 480px ---------- */
@media (max-width: 480px) {
  .eyebrow {
    letter-spacing: 0;
}
  .hero-box h1, .hero-box h2 {
    margin-bottom: 20px;
    font-size: 19px;
    line-height: 33px;
    letter-spacing: -.51px;
}
  .nav-cta i {
    font-size: 13px;
}
.nav-cta, nav.navbar .navbar-toggler {
    width: 34px;
    height: 34px;
}
  .sec-bloc .bloc-content h2, .contact-infos-home h2, .sec-actualites .section-title,section.avis.avis-clients .section-head .section-title {
    font-size: 21px;
    line-height: 33px;
}
section.content.page-content.content-page a.link-picture,
section.content.page-content.content-page a.link-subgallery { width: 100%; }
  .section-title, section.boxes h2, .sec-pictos h2 {
    font-size: 27px;
    line-height: 35px;
}
  section.content.page-content.content-page .realisations .grid-gallery {
    grid-template-columns: repeat(1, 1fr);
}
  .page-bloc .text-part h2, section.content .realisations h2 {
    font-size: 23px;
    line-height: 32px;
}
}

/* ---------- Accessibilité : réduction des animations ---------- */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
transition-duration: .01ms !important;
animation-duration: .01ms !important;
}
}