/* ==========================================================================
   IONYX Industrie Environnement ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â template.css (Genesis v35 / WF32)
   BLOC 1 Foundation Ãƒâ€šÃ‚Â· BLOC 2 Components Ãƒâ€šÃ‚Â· BLOC 3 Layout Ãƒâ€šÃ‚Â· BLOC 4 Finishing
   ========================================================================== */
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: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-ExtraLight.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-ExtraLight.woff') format('woff');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-ExtraLightItalic.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-ExtraLightItalic.woff') format('woff');
    font-weight: 200;
    font-style: italic;
    font-display: swap;
}

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

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

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-LightItalic.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-LightItalic.woff') format('woff');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

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

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-MediumItalic.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-MediumItalic.woff') format('woff');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

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

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

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-SemiBoldItalic.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-SemiBoldItalic.woff') format('woff');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

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

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-BoldItalic.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-BoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-ExtraBold.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-ExtraBold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-ExtraBoldItalic.woff2') format('woff2'),
        url('../fonts/PlusJakartaSans-ExtraBoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}




/* --- Tokens Figma ÃƒÂ¢Ã¢â‚¬Â Ã¢â‚¬â„¢ variables projet / BS5 --- */
:root {
    --primary-color: #004F87;      /* Primary/Marine */
    --secondary-color: #0180AB;    /* Secondary/Teal */
    --extra-color : #349F4D ;
    --extra-color2 : #B0D02C ;
    --extra-color3 : #85CC17;
    --dark-color: #0A2A44;         /* Neutral/Dark */
    --dark-color2: #282828;
    --text-color: #1C2B36;         /* Text/Default */
    --gray-color: #4A5B68;         /* Text/Muted */
    --tertiary-color: #A6BDCB;     /* Accent/Gris-bleu */
    --quaternary-color: #F2F6F9;   /* Neutral/BG-Light */
    --color-quaternary: #F2F6F9;
    --border-color: #D9E3EA;       /* Neutral/Border */
    --white-color: #FFFFFF;
    --light-color: #FFFFFF;        /* light-color */
    --gold-from: #0180AB;          /* ÃƒÆ’Ã‚Â©toiles avis */
    --hp-light-70: #4A5B68;        /* placeholder (FormField Figma) */

    --font-body: 'Plus Jakarta Sans', sans-serif;
    --font-title: 'Plus Jakarta Sans', sans-serif;
    --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: #004F87;
    --bs-primary-rgb: 0, 79, 135;
    --bs-secondary: #0180AB;
    --bs-secondary-rgb: 1, 128, 171;
    --bs-light: #F2F6F9;
    --bs-light2: #F0F2F4;
    --bs-dark: #0A2A44;
    --bs-body-color: #1C2B36;
    --bs-body-bg: #FFFFFF;
    --bs-body-font-family: 'Plus Jakarta Sans', sans-serif;
    --bs-body-font-size: 16px;
    --bs-body-line-height: 1.6;
    --bs-link-color: #004F87;
    --bs-link-hover-color: #0180AB;
    --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: 800;
    color: var(--primary-color);
    line-height: 1.1; 
    letter-spacing: -.5px;
}
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 {     right: 50%;     bottom: 44px;     transform: translateX(50%);     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: 50px;
    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;}
/* ==========================================================================
   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: 700;
    font-size: 17px;
    line-height: 0.98em;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--primary-color);
    gap: 20px;
    align-items: center;
}
.eyebrow-green{
    background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.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: 40px;
    line-height: 1.1;
    letter-spacing: -.3px;
    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-ionyx {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 25px 38px;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
    letter-spacing: .8px;
    text-decoration: none;
    color: var(--white-color);
    background: var(--primary-color);
    border: 1.5px solid var(--primary-color);
    border-radius: 50px;
    transition: background-color var(--t-base), color var(--t-base), border-color var(--t-base), transform var(--t-base);
    text-transform: uppercase;
}
.btn-ionyx i { font-size: 16px; transition: transform var(--t-base); }
.btn-ionyx:hover { color: var(--white-color); background: var(--secondary-color); border-color: var(--secondary-color); }
.btn-ionyx:hover i { transform: translateX(4px); }
.btn-ionyx-light {color: var(--white-color);background: transparent;border-color: var(--white-color);}
.btn-ionyx-light:hover { color: var(--white-color); background: var(--secondary-color); border-color: var(--secondary-color); }
.btn-ionyx-outline { color: var(--primary-color); background: transparent; border-color: var(--primary-color); }
.btn-ionyx-outline:hover { color: var(--white-color); background: var(--primary-color); border-color: var(--primary-color); }
.btn-ionyx-outline-white { color: var(--white-color); background: transparent; border-color: var(--white-color); }
.btn-ionyx-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 ,
.swiper-pagination3{
    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,
.swiper-pagination3 .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-color3);
    border-color: var(--extra-color3);
}
.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-color2) 100%); 
    border : none;
    width : 10px;
    height: 10px;
}
.actus-pagination .swiper-pagination-bullet{
   background: var(--hp-light-70); 
    border : none;
    width : 5px;
    height: 5px;
}
.actus-pagination .swiper-pagination-bullet-active{
   background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%); 
    border : none;
    width : 10px;
    height: 10px;
}
.swiper-pagination3 .swiper-pagination-bullet{
   background: var(--white-color); 
    border : none;
    width : 5px;
    height: 5px;
}
.swiper-pagination3 .swiper-pagination-bullet-active{
   background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%); 
    border : none;
    width : 10px;
    height: 10px;
}
/* ==========================================================================
   BLOC 3 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â LAYOUT
   ========================================================================== */

/* --- Navigation --- */
nav.navbar {
    padding: 0;
    position: relative;
    z-index: 1020;
    transition: box-shadow var(--t-base);
}
nav.navbar:before{
    content : "";
    position : absolute;
    inset: 0;
    border-bottom: 1px solid var(--white-color);
    background: rgba(255, 255, 255, 0.90);
    backdrop-filter: blur(30px);
    z-index: -1;
    pointer-events : none;
}
nav.navbar .container {
    max-width: 1450px;
    min-height: 181px;
    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: 141px;
    transition: height var(--t-base);
}
nav.navbar.is-sticky {box-shadow: 0 8px 24px rgba(10, 41, 69, .12);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: 6px;
    padding: 12px 0 !important;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 15px;
    line-height: 1;
    letter-spacing: 0;
    color: var(--text-color);
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
}
nav.navbar .sf-menu > li > a:hover,
nav.navbar .sf-menu > li.selected > a {
    color: var(--secondary-color);
    border-bottom-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 */
.nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-shrink: 0;
    padding: 23px 31px;
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.8px;
    color: var(--white-color);
    text-decoration: none;
    background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%);
    border: none;
    border-radius: 50px;
}
.nav-cta i { font-size: 15px; color: var(--quaternary-color); }
.nav-cta:hover { color: var(--white-color); background : linear-gradient(270deg, var(--extra-color) 0%, var(--extra-color2) 100%) }

/* 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");
}

/* 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: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.sidebar-rs a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    font-size: 14px;
    color: var(--white-color);
    text-decoration: none;
    background: var(--primary-color);
}
.sidebar-rs a:hover { color: var(--white-color); background: var(--secondary-color); }

/* --- Hero / banniÃƒÆ’Ã‚Â¨re --- */
header.header {  background: var(--dark-color); }
header.header.big {height: 986px;}
header.header.small { height: 650px; }
header.header .banner { position: absolute; inset: 0; }
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 */
}
.banner-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.70) 0%, rgba(0, 0, 0, 0.00) 100%);
}
.banner-overlay:after {
    content : "";
    position : absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height : 124px;
    background : var(--white-color);
    clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
}
.banner-overlay1 {
     position : absolute;
     bottom: 0;
     left: 0;
     right: 0;
     height : 171px;
     background: rgba(255, 255, 255, 0.40);
     backdrop-filter: blur(2px);
     clip-path: polygon(0% calc(100% - 40px), 100% 0%, 100% 100%, 0% 100%);
}
.banner-overlay2 {
     position : absolute;
     bottom: 0;
     left: 0;
     width : 40.78%;
     height: 94px;
     background: var(--primary-color);
     backdrop-filter: blur(2px);
     clip-path: polygon(0% calc(100% - 40px), 100% 0%, 100% 100%, 0% 100%);
}
.banner-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    top: unset;
    bottom: 298px;
    pointer-events: none;
}
.banner-content .container-fluid{
    max-width : 1450px;
}
.banner-content .hero-box {/* max-width: 720px; */pointer-events: auto;}

 .eyebrow-light{
    display : inline-flex;
    gap : 20px;
    position : relative;
    color : var(--white-color);
    font-size: 17px;
    font-weight: 700;
    line-height: 0.94em;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    align-items : center;
    margin-bottom: 10px;
}
 .eyebrow:before{
    display : block;
    content : "";
    width : 28px;
    height: 8px;
    background : url(../images/bg-h.svg)no-repeat center;
    background-size : contain;
}
.hero-box h1,
.hero-box h2 {
    margin: 0 0 40px;
    font-family: var(--font-title);
    font-weight: 800;
    font-size: 60px;
    line-height: 1.2em;
    letter-spacing: -.5px;
    color: var(--white-color);
    text-transform: uppercase;
}
.color-g{color : var(--extra-color3);}
.hero-box p { color: var(--white-color); }

.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;
    background: linear-gradient(180deg, #FFF 0%, rgba(255, 255, 255, 0.00) 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    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);
}
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;
}
/****************/
.bg-certif-content:before{
    content : "";
    position : absolute;
    bottom: 0;
    left: 0;
    background : url(../images/before-content.svg)no-repeat left bottom;
    background-size : contain;
    z-index:0;
    pointer-events : none;
    width: 851px;
    height: 630px;
}
.bg-certif-content:after{
    content : "";
    position : absolute;
    top: -620px;
    right: 0;
    background : url(../images/after-content.svg)no-repeat right top;
    background-size : contain;
    z-index:0;
    pointer-events : none;
    width: 697px;
    height: 1211px;
    z-index: 1;
}
/* --- PrÃƒÆ’Ã‚Â©sentation (chapÃƒÆ’Ã‚Â´) --- */
.sec-chapo {
    padding: 60px 0 0;
    /* background: var(--white-color); */
    z-index: 1;
}
.card-chapo {
    position: relative;
    z-index: 3;
    /* margin-top: -120px; */
  max-width : 870px;
    margin : 0 auto;
}
.card-chapo .chapo-flx {/* --bs-gutter-x: 80px; *//* align-items: center; *//* display: flex; */text-align: center;}
.card-chapo .chapo-text .eyebrow {margin-bottom: 10px;}
.card-chapo .chapo-text .eyebrow:after{
        display: block;
    content: "";
    width: 28px;
    height: 8px;
    background: url(../images/bg-h.svg)no-repeat center;
    background-size: contain;
    transform : scaleX(-1);
}
.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: 1.6;
    color: var(--gray-color);
}
.card-chapo .chapo-facts p:last-child { margin-bottom: 0; }

/* --- Certifications / Confiance --- */
.sec-logos {padding: 50px 0 100px;background: var(--white-color);z-index: 1;}
.sec-confiance { padding: 100px 0; background: var(--quaternary-color); }
.sec-logos .section-head { margin-bottom: 40px; }
.sec-logos .eyebrow.eyebrow-green:after{
        display: block;
    content: "";
    width: 28px;
    height: 8px;
    background: url(../images/bg-h.svg)no-repeat center;
    background-size: contain;
    transform: scaleX(-1);
}
.logos-slider { overflow: hidden; }
.bx-logo {
    display: flex !important;
    align-items: center;
    justify-content: center;
    height: 100px !important;
    padding: 0;
    background: var(--white-color);
    border: 1px solid rgba(16, 16, 16, .4);
    border-radius: 10px;
    align-content: center;
}
.bx-logo a { display: flex; align-items: center; justify-content: center; height: 100%; }
.bx-logo img {
    width: auto;
    max-width: 100%;
    max-height: 90px;
    object-fit: contain;
    filter: none!important; 
}
.sec-certifications .bx-logo img { filter: grayscale(1); }

/* --- Blocs 01 / 02 / 03 (contenu des boxes DCVE 3/4/5) --- */
.sec-bloc { padding: 120px 0; background: var(--white-color); }
.sec-bloc-01 {padding: 120px 0;background: var(--dark-color); overflow : hidden;}
.sec-bloc-01 .ellipse-left{
    position: absolute;
    left: -378px;
    top: -36px;
    width: 655px;
    height: 445px;
    border-radius: 200px;
    opacity: 0.2;
    background: var(--extra-color3);
    filter: blur(150px);
    z-index: 0;
    pointer-events: none;
}
.sec-bloc-01 .ellipse-right{
    position: absolute;
    right: -131px;
    bottom: -63px;
    width: 655px;
    height: 445px;
    border-radius: 200px;
    opacity: 0.2;
    background: var(--extra-color3);
    filter: blur(150px);
    z-index: 1;
    pointer-events: none;
}
.sec-bloc-01 a{
    color : var(--extra-color3);
}
.sec-bloc-01 a:hover{
    color : var(--extra-color);
}
.sec-bloc-01 h2{
    color : var(--white-color);
}
.sec-bloc .container-fluid{
    max-width : 1450px;
}
.sec-bloc-01:before{
    content : "";
    position : absolute;
    inset: 0;
    background : url(../images/fond.webp)no-repeat center fixed;
    background-size : cover;
    background-color: var(--dark-color);
    background-blend-mode: normal, screen, normal;
    z-index : 0;
    pointer-events : none;
    opacity: 0.3;
}
.sec-bloc-01:after{
    content : "";
    position : absolute;
    inset: 0;
    background: radial-gradient(50% 50% at 50% 50%, #004F87 0%, rgba(0, 79, 135, 0.00) 100%);
    z-index : 0;
    pointer-events : none;
}
.sec-bloc-02 {/* background: var(--quaternary-color); */}
.sec-bloc-02:before{
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        background: url(../images/before-bloc2.svg)no-repeat left bottom;
        background-size: contain;
        z-index: 0;
        pointer-events: none;
        width: 869px;
        height: 808px;
}
.sec-bloc-02:after{
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        background: url(../images/after-bloc2.svg)no-repeat right top;
        background-size: contain;
        z-index: 0;
        pointer-events: none;
        width: 697px;
        height: 591px;
}
.sec-bloc-03 { position: relative; background: var(--primary-color); }
.sec-bloc-03 a{ color: var(--white-color); }
.sec-bloc-03::before {
content: '';
    position: absolute;
    inset: 0;
    background: url(../images/bg.webp) center / cover no-repeat, var(--primary-color);
    opacity: .2;
    pointer-events: none;
    background-blend-mode: multiply, normal;
}
.sec-bloc-03 .container { position: relative; }
.bloc-row .bloc {
    display: flex;
    align-items: center;
    gap: 100px;
}
.sec-bloc-01 .bloc,
.sec-bloc-03 .bloc { flex-direction: row-reverse; }
.bloc-content { flex: 1 1 0; min-width: 0; }
.bloc-content h2 {
    position: relative;
    margin: 0 0 35px;
    
    /* color: var(--primary-color); */
}

.bloc-content p {
    /* margin: 0 0 24px; */
    /* font-size: 16px; */
    /* line-height: 1.6; */
    /* color: var(--gray-color); */
}
.bloc-content .btn-ionyx { margin-top: 0; }
.bloc-media { position: relative; flex-shrink: 0; }
.bloc-media::before {
    content: '';
    position: absolute;
    border-radius: var(--radius);
}
.bloc-media img {
    position: relative;
    display: block;
    width: calc(100% - 27px);
    height: calc(100% - 3px);
    object-fit: cover;
    border-radius: 50%;
}
 .bloc-media {width: 597px;height: 573px;}
.sec-bloc-01 .bloc-media::before {right: 0;bottom: 0;width: 570px;height: 570px;background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%);border-radius: 50%;}

.sec-bloc-02 .bloc-media::before { left: 0;top: 0;width: 570px;height: 570px;background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%);border-radius: 50%; }
.sec-bloc-02 .bloc-media img {
    width: calc(100% - 25px);
    height: 100% ;
    object-fit: cover;
    border-radius: 50%; 
    margin-left: 25px;
}
.sec-bloc-02 .bloc-content { flex-basis: 440px; }
.sec-bloc-03 .bloc-media { width: 560px; height: 520px; }
.sec-bloc-03 .bloc-media::before { right: 0; bottom: 0; width: 336px; height: 312px; background: var(--secondary-color); }
.sec-bloc-03 .bloc-content h2 { color: var(--white-color); }
.sec-bloc-03 .bloc-content h2::after { background: var(--tertiary-color); }
.sec-bloc-03 .bloc-content p { color: var(--quaternary-color); opacity: .85; }
/************************************/
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;
    z-index: 1;
}
section.parallaxe article:before{
    content : "";
    position : absolute;
    inset : 0;
     border-radius: 20px;
    background: rgba(255, 255, 255, 0.01);
    backdrop-filter: blur(25px);
    z-index: -1;
}
section.parallaxe article .before-parallaxe{
    position : absolute;
    width: 111px;
    height: 111px;
    left: -25px;
    bottom : -40px;
    border-radius: 200px;
    background: var(--bs-secondary);
    z-index : -2;
}
section.parallaxe article .after-parallaxe{
    position : absolute;
    width: 85px;
    height: 85px;
    top: -15px;
    right : -35px;
    border-radius: 200px;
    background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 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 : #c0ff5e;
}
section.parallaxe a:hover{
    color : white;
}
/* --- ActualitÃƒÆ’Ã‚Â©s accueil (structure Figma : 1 ÃƒÆ’Ã‚Â  la une + 2 compactes) --- */
.sec-actualites { padding: 120px 0; background: var(--white-color); }
.sec-actualites:before {
    content: "";
    position: absolute;
    bottom: -357px;
    left: 0;
    background: url(../images/before-actus.svg)no-repeat left bottom;
    background-size: contain;
    z-index: 0;
    pointer-events: none;
    width: 950px;
    height: 1211px;
}
.sec-actualites .eyebrow.eyebrow-green:after{
        display: block;
    content: "";
    width: 28px;
    height: 8px;
    background: url(../images/bg-h.svg)no-repeat center;
    background-size: contain;
    transform: scaleX(-1);
}
.sec-actualites h2{
    margin-bottom: 60px;
}
.sec-actualites .container-fluid{
    max-width : 1450px;
}
.sec-actualites .section-head { margin-bottom: 56px; gap: 20px; }
.sec-actualites #AllNews {
    display: block;
    margin: 0;
    padding: 0 0 32px;
    overflow: hidden;    filter: drop-shadow(0 12px 32px rgba(0, 79, 135, 0.08));
}
.sec-actualites #AllNews > .swiper-wrapper { padding: 0; margin: 0; }
.sec-actualites .news-group {
    display: grid;
    grid-template-columns: 741fr 655fr;
    grid-template-rows: 286px 286px;
    gap: 24px;
    align-items: start;
}
.sec-actualites .news-col {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0; 
}
.sec-actualites .news-featured {grid-row: 1 / span 2;height: 100%;}
.sec-actualites .news-object.Item {
    position: relative;
    height: 100%;
    margin: 0;
    background: var(--bs-light2);
    border-radius: 10px;
    overflow: hidden;
    transition: transform var(--t-base), box-shadow var(--t-base);
    display: flex;
    align-items: stretch;
    padding: 20px;
}
/*
.sec-actualites .news-featured .news-object.Item { box-shadow: var(--shadow-card); }*/
.sec-actualites .news-small .news-object.Item {
    display: flex;
    align-items: stretch;
    padding-right: 0;
    /* gap:24px; */
    padding: 20px;
}
.sec-actualites .news-small .news-object.Item .read-more{
    display : none;
}
.sec-actualites .news-object.Item:hover {  background:var(--bs-link-color);}


.sec-actualites .news-object.Item:hover:before{
    content : "";
    position : absolute;
    inset: 0;
    background : url(../images/fond.webp)no-repeat center fixed;
    background-size : cover;
    background-color: var(--bs-link-color);
    background-blend-mode: normal, screen, normal;
    z-index : 0;
    pointer-events : none;
    opacity: 0.3;
}
.sec-actualites .news-object.Item:hover:after{
    content : "";
    position : absolute;
    inset: 0;
    background: radial-gradient(50% 50% at 50% 50%, #004F87 0%, rgba(0, 79, 135, 0.00) 100%);
    z-index : 0;
    pointer-events : none;
}
.sec-actualites .news-object .photo,
.sec-actualites .news-object .nophoto {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--chite-color);
}
.sec-actualites .news-featured .photo,
.sec-actualites .news-featured .nophoto {width: 100%;height: 100%;order: 2;grid-row: 1/3;grid-column: 2/3;border-radius: 10px;z-index: 1;position : relative;}
.sec-actualites .news-small .photo,
.sec-actualites .news-small .nophoto {flex: 0 0 292px;width: 292px;height: 246px;order: 2;border-radius: 10px;z-index: 1;position : relative;}
.sec-actualites .news-object .photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
    border-radius: 10px;
}
.sec-actualites .news-object.Item:hover .photo img { transform: scale(1.05); }
.sec-actualites .news-body-desc,
.sec-actualites .news-desc {/* min-width: 0; */}
.sec-actualites .news-desc {/* height: 100%; */padding: 50px 20px 0 0;position : relative;z-index: 1;display: flex;flex-direction: column;justify-content: end;}
.sec-actualites .news-featured .news-desc {padding: 50px 20px 0 0;display: flex;flex-direction: column;justify-content: end;}
.sec-actualites .news-object h3 {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0 0 20px;
    padding-bottom: 10px;
    font-family: var(--font-title);
    font-weight: 800;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: -0.5px;
    color: var(--dark-color2);
    border-bottom: 1px solid var(--border-color);
}
.sec-actualites .news-object:hover h3 {
    color: var(--white-color);
    border-color: var(--white-color);
}
.sec-actualites .news-small h3 {gap: 0 !important;margin-bottom: 10px;}
.sec-actualites .news-object h3 a { color: inherit; text-decoration: none; }
.sec-actualites .news-object .news-abstract {
    display: block;
    margin: 0 0 12px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--bs-body-color);
}
.sec-actualites .news-object:hover .news-abstract {
    color : var(--white-color);
}
.sec-actualites .news-small .news-abstract {/* display: none; */}
.sec-actualites .news-object .read-more a {
    display: block;
    /* align-items: center; */
    gap: 8px;
    padding: 0;
    font-weight: 600;
    font-size: 0;
    line-height: 1.2;
    color: var(--primary-color);
    text-decoration: none;
    background: none;
    border: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%);
    justify-content: center;
}
.sec-actualites .news-object .read-more a::after {
    content: "\f061";
    font: var(--fa-font-solid, 900 1em/1 "Font Awesome 7 Pro");
    font-size: 14px;
    transition: transform var(--t-base);
    color: var(--bs-body-bg);
    text-align: center;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sec-actualites .news-object.Item:hover .read-more a::after { transform: translateX(4px); }
.sec-actualites.single-slide .actus-pagination { display: none; }
/* Swiper vertical (desktop) : pagination conservÃƒÆ’Ã‚Â©e sous le slider */
.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%; }
.sec-actualites .news-object .news-body-desc .date,
.sec-actualites .news-object h3 .date {
    position : absolute;
    top: 0;
    left: 0;
    display: block;
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--white-color);
    text-transform : uppercase;
    padding: 8px 10px;
    border-radius : 50px;
    background: linear-gradient(90deg, #349F4D 0%, #B0D02C 100%);
}
/* === NEWS NOPHOTO FALLBACK ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â v34 MANDATORY === */
.news-col .news-object .nophoto,
.news-object .nophoto {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-tertiary-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;
}
/* Date dÃƒÆ’Ã‚Â©placÃƒÆ’Ã‚Â©e avant le titre (bloc A3) */
.news-object .news-body-desc .date,
.news-object h3 .date {
    
    display: block;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
    color: var(--primary-color);
}
section.content article .NewsMasonry .NewsItem img.img-news-list, img.img-news {
    max-width: 190px !important;
    height: 150px !important;
    border-radius: 4px;
}
/* --- Avis clients accueil --- */
.avis-clients { padding: 120px 0; background: var(--dark-color); overflow : hidden; }

.avis-clients  .container-fluid{
    max-width : 1450px;
}
.avis-clients .eyebrow.eyebrow-green:after {
    display: block;
    content: "";
    width: 28px;
    height: 8px;
    background: url(../images/bg-h.svg)no-repeat center;
    background-size: contain;
    transform: scaleX(-1);
}
.avis-clients .ellipse-left{
    position: absolute;
    left: -378px;
    top: -36px;
    width: 655px;
    height: 445px;
    border-radius: 200px;
    opacity: 0.2;
    background: var(--extra-color3);
    filter: blur(150px);
    z-index: 0;
    pointer-events: none;
}
.avis-clients .ellipse-right{
    position: absolute;
    right: -350px;
    bottom: -3px;
    width: 655px;
    height: 445px;
    border-radius: 200px;
    opacity: 0.2;
    background: var(--extra-color3);
    filter: blur(150px);
    z-index: 1;
    pointer-events: none;
}

.avis-clients h2{
    color : var(--white-color);
    margin-bottom: 40px;
}
.avis-clients:before{
    content : "";
    position : absolute;
    inset: 0;
    background : url(../images/fond.webp)no-repeat center fixed;
    background-size : cover;
    background-color: var(--dark-color);
    background-blend-mode: normal, screen, normal;
    z-index : 0;
    pointer-events : none;
    opacity: 0.3;
}
.avis-clients:after{
    content : "";
    position : absolute;
    inset: 0;
    background: radial-gradient(50% 50% at 50% 50%, #004F87 0%, rgba(0, 79, 135, 0.00) 100%);
    z-index : 0;
    pointer-events : none;
}

.avis-clients .container { position: relative; }
.avis-wrapper { display: flex; align-items: center; gap: 64px; }
.avis-intro {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    flex: 0 0 320px;
}
.avis-quote { font-size: 48px; color: var(--tertiary-color); }
.avis-desc { margin: 0; font-size: 16px; line-height: 1.6; color: var(--gray-color); }
.avis-arrows { display: flex; gap: 12px; }
.avis-arrows button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    padding: 0;
    font-size: 16px;
    border-radius: var(--radius);
    cursor: pointer;
    transition: background-color var(--t-base), color var(--t-base), border-color var(--t-base);
}
.avis-prev,.avis-next { color: var(--primary-color); background: var(--white-color); border: 1px solid var(--border-color); }

.avis-arrows button:hover { color: var(--white-color); background: var(--primary-color); border-color:var(--primary-color);  }
.avis-arrows .swiper-button-disabled { opacity: .5; cursor: default; }
.avis-track { flex: 1 1 0; min-width: 0; }
.avis-clients .guestbook-form,
.avis-clients #globalReviewMessages,
.avis-clients .count-messages,
.avis-clients #guestbookNav { display: none; }
.avis-clients .swiper-container2 {overflow: hidden;padding: 4px ;margin: -4px;}
.avis-clients .gb-entry {
    position: relative;
    height: auto;
    padding: 40px 20px;
    background: transparent;
    border-radius: 5px;
    box-shadow: none;
    border: 1px solid rgba(245, 245, 245, 0.20);
    color: var(--white-color);
}
.avis-clients .gb-entry:hover {
    background: rgba(245, 245, 245, 0.10)
}
.avis-clients .gb-entry > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.avis-clients .gb-entry-score {display: flex;gap: 4px;margin-bottom: 12px;font-size: 14px;color: var(--extra-color3);order: 0;}
.avis-clients .gb-entry div[itemprop="review"]{
    display : flex;
    flex-direction : column;
    position: relative;
}
.avis-clients .gb-entry div[itemprop="review"]:before{
    content : "";
    display : block;
    width : 31px;
    height: 28px;
    background : url(../images/quote.svg)no-repeat;
    margin : 0 0 12px;
    order: -1;
}
.avis-clients .gb-entry .message {
    margin-bottom: 12px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--white-color);
    order: -1;
}
.avis-clients .review-user {
    font-weight: 600;
    font-size: 14px;
    line-height: 17px;
    color: var(--primary-color);
    display: none;
}
.avis-clients span[itemprop="author"]{
    display : block;
    color: var(--light-color);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.60em;
}
.avis-clients .review-date {
    margin-top: 0px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.60em;
    color: var(--extra-color3);
}
.avis-clients .review-hour { display: none; }
.avis-clients .gb-entry .link {
    position: absolute;
    inset: 0;
    z-index: 2;
    font-size: 0;
}
.avis-clients article div#Guestbook .gb-entry-score .fullStar,
.avis-clients article div#Guestbook .gb-entry-score .emptyStar {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin: 0px 16px 0 0 !important;
	padding: 0;
}

.avis-clients .gb-entry-score .fullStar,
.avis-clients .gb-entry-score .emptyStar {
	display: inline-block;
	margin: 0 3px !important;
	padding: 0;
	color: var(--extra-color3);
}
.avis-clients .fa-star:before {
	content: "\f005";
}

.avis-clients .gb-entry-score strong {
	display: none;
}

.avis-clients .gb-entry .fa-star:before {
		color: var(--extra-color3);
}

.avis-clients .gb-entry .fa-star-o:before {
		color: var(--extra-color3);
	content: "\f006" !important;
}

/* .avis-clients .gb-entry:hover .fa-star:before,
.avis-clients .gb-entry:hover .fa-star-o:before {
	color: var(--bs-secondary) !important;

} */
/* --- Contact accueil --- */
.contact-home {padding: 80px 0;background: var(--white-color); position : relative;}
.contact-home:before{
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        background: url(../images/before-formhome.svg)no-repeat left bottom;
        background-size: contain;
        z-index: 0;
        pointer-events: none;
        width: 906px;
        height: 746px;
}
.contact-home:after{
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        background: url(../images/after-formhome.svg)no-repeat right top;
        background-size: contain;
        z-index: 0;
        pointer-events: none;
        width: 665px;
        height: 735px;
}
.contact-home .container{
    position : relative;
    z-index: 1;
}
.contact-card {
    position: relative;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border-radius: 40px;
   background: var(--dark-color);
}

.contact-home h2{
    color : var(--white-color);
    margin-bottom: 40px;
}
.contact-home .contact-card:before{
    content : "";
    position : absolute;
    inset: 0;
    background : url(../images/fond.webp)no-repeat center fixed;
    background-size : cover;
    background-color: var(--dark-color);
    background-blend-mode: normal, screen, normal;
    z-index : 0;
    pointer-events : none;
    opacity: 0.3;
}
.contact-home .contact-card:after{
    content : "";
    position : absolute;
    inset: 0;
    background: radial-gradient(50% 50% at 50% 50%, #004F87 0%, rgba(0, 79, 135, 0.00) 100%);
    z-index : 0;
    pointer-events : none;
}
.contact-home .contactForm input[type="text"],
.contact-home .contactForm input[type="email"],
.contact-home .contactForm input[type="tel"],
.contact-home .contactForm textarea,
.contact-home .contactForm select,
.contact-home .contactForm .form-control {
    min-height: 45px;
    padding: 7px 20px;
    font-size: 16px;
    background-color: transparent;
    color: var(--white-color);
    border: 1px solid rgba(180, 180, 180, 0.30);
    border-radius: 0;
}
.contact-home .form-control::placeholder,
.contact-home input::placeholder,
.contact-home textarea::placeholder {
  color: var(--white-color) !important;
  opacity: 1;
}
.contact-home .gdpr .form-label{
    color : var(--white-color)
}
.contact-home .contact-form-wrap .gdpr a{
    color : var(--white-color);
    text-decoration : underline;
}
.contact-home .contact-form-wrap .gdpr a:hover{
    text-decoration : none;
}
.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(--text-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: 111px; }
.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;
    padding: 15px 32px 14px;
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
    letter-spacing: .8px;
    color: var(--white-color);
    background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%);
    border: none;
    border-radius: 50px;
    background-repeat: no-repeat;
    text-transform: uppercase;
}
.contact-form-wrap .btn:hover,
.contact-form-wrap button[type="submit"]:hover { background: linear-gradient(270deg, var(--extra-color) 0%, var(--extra-color2) 100%); }

/* --- Page contact (4.tpl) --- */
.contact-card-page { margin-top: 40px; }
.contact-infos {
    flex: 0 0 400px;
    padding: 50px 15px;
    /* color: var(--white-color); */
    background: var(--quaternary-color);
}
.contact-infos .section-title { margin-bottom: 24px; /*color: var(--white-color);*/ }
.contact-infos .info-block {
    display: flex;
    gap: 9px;
    margin-bottom: 24px;
    /* color: var(--quaternary-color); */
}
.contact-infos .info-block i {
    flex: 0 0 17px;
    margin-top: 7px;
    font-size: 16px;
    color: var(--dark-color);
}
/*.contact-infos a { color: var(--white-color); }*/
.contact-infos .map-container { overflow: hidden; border-radius: var(--radius); }
.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;
}
/* --- Footer --- */
footer.bottom {
    position: relative;
    padding: 96px 0 98px;
    background: var(--dark-color);
    overflow : hidden;
}



footer.bottom .ellipse-left{
    position: absolute;
    left: -378px;
    top: -36px;
    width: 655px;
    height: 445px;
    border-radius: 200px;
    opacity: 0.2;
    background: var(--extra-color3);
    filter: blur(150px);
    z-index: 0;
    pointer-events: none;
}
footer.bottom .ellipse-right{
    position: absolute;
    right: -350px;
    bottom: -231px;
    width: 500px;
    height: 345px;
    border-radius: 200px;
    opacity: 0.2;
    background: var(--extra-color3);
    filter: blur(150px);
    z-index: 1;
    pointer-events: none;
}

footer.bottom:before{
    content : "";
    position : absolute;
    inset: 0;
    background : url(../images/fond.webp)no-repeat center fixed;
    background-size : cover;
    background-color: var(--dark-color);
    background-blend-mode: normal, screen, normal;
    z-index : 0;
    pointer-events : none;
    opacity: 0.3;
}
footer.bottom:after{
    content : "";
    position : absolute;
    inset: 0;
    background: radial-gradient(50% 50% at 50% 50%, #004F87 0%, rgba(0, 79, 135, 0.00) 100%);
    z-index : 0;
    pointer-events : none;
}
footer.bottom .container { position: relative; z-index: 1; }
.footer-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    
}
/* .footer-brand { display: flex; flex-direction: column; gap: 20px; } */
.footer-logo img { display: block; 
                  }
.footer-rs ul,
.footer-rs .networks_linking { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.footer-rs a,
.info-rs a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    font-size: 14px;
    color: var(--white-color);
    text-decoration: none;
    border: 1px solid var(--tertiary-color);
    border-radius: 50%;
    background: linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%);
}
.footer-rs a:hover,
.info-rs a:hover { background: var(--secondary-color); }
.footer-title {
    margin: 0 0 20px;
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 21px;
    line-height: 1.3;
    color: var(--white-color);
}
.footer-info { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 20px; font-size: 16px; line-height: 1.6; }
.footer-info i { flex: 0 0 20px; margin-top: 4px; font-size: 20px; 
                background: var(--Linear, linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
               }
.footer-info .adr { display: flex; flex-direction: column; gap: 2px; }
.footer-info a {  background: var(--Linear, linear-gradient(90deg, var(--extra-color) 0%, var(--extra-color2) 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent; text-decoration: none;
               font-size: 20px;
font-weight: 700;
               }
.footer-info a:hover { color: var(--white-color); }
.footer-map { flex: 0 0 38.8%; max-width: 38.8%; }
.footer-map .map-container {
    height: 170px;
    overflow: hidden;
    border-radius: 30px;
    filter: grayscale(1);
}
.footer-map iframe,.footer-map div { display: block; width: 100%; height: 100%; border: 0; }
.footer-bottom {
    position: relative;
    padding: 23px 0 24px 0;
    border-top: 1px solid var(--gray-color);
}
.footer-bottom .container {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    font-size: 14px;
    line-height: 1.5;
}
.footer-bottom p { margin: 0; }
.footer-bottom .legal-links { display: flex; flex-wrap: wrap; gap: 24px; }
.footer-bottom a ,.footer-bottom .brand-skin{ color: var(--tertiary-color); text-decoration: none !important; }
.footer-bottom a:hover,.footer-bottom .brand-skin:hover { color: var(--white-color); }
.footer-bottom .brand-skin {
    display: inline-block !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/**********/
.footer-b {
    DISPLAY: NONE;
}

.footer-nav {
    padding: 15px 0px !important;
}

.footer-nav a {
    PADDING: 0 1px;
     color: var(--bs-secondary)
    /* text-decoration: none; */
}

.footer-nav a:hover {
    color: var(--bs-secondary) !important;
    text-decoration: none; 
}
.footer-nav a.brand-skin {
    display: inline-block;
    padding: 0;
    color: var(--bs-secondary);
    font-size: inherit;
    line-height: inherit;
	text-decoration : underline;
}
.footer-nav a.brand-skin:hover {
	text-decoration : none;
}
/* ==========================================================================
   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 20px  !important;
	position: relative;
	display: block;
	padding: 0;
	width:50%;
	float: left;
	clear: none !important;
}
 .contactForm .contact-field-item:nth-child(even) {
padding-right: 10px;
}
.contactForm .contact-field-item:nth-child(odd) {
	padding-left: 10px;
}
.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;
    margin-bottom: 30px;
}
.contact-submit {
    position: relative;
    display: table;
    float: none;
  clear: both;
}
.contact-home .contact-submit:after{
    content : "";
    position : absolute;
    top : 50%;
    transform : translateY(-50%);
    right : 32px;
    background: url(../images/btn.svg)no-repeat;
    width: 16px;
    height: 16px;
}
.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 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: 20px 0 26px; }
.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 .contact-infos .networks_linking a {
    color: var(--white-color);
    background: var(--tertiary-color);
}
section.content .contact-infos .networks_linking a:hover {
    color: var(--white-color);
    background: var(--primary-color);
   border-color: var(--primary-color);
}
section.content.page-content.content-page .grid-home .grid-img{
  border-radius: 50%;
}

section.content.page-content.content-page .grid-home img { border-radius: 50%; }
section.content.page-content.content-page .grid-home {
    grid-gap: 40px;
    margin-bottom: 70px !important;
}
.page-content .contact-card {
    background: var(--white-color);
}
.swiper-pagination {
	position: relative !important;
	z-index: 2 !important;
	bottom: 0 !important;
	margin-top: 20px;
}
/**********/
.ionyx-chiffres {
    position: relative;
    color: var(--text-color);    padding: 0 0 80px 0;
}

.ionyx-chiffres__titre {
    position: relative;
    margin: 0 0 3rem;
    padding-bottom: 1rem;
    font-family: var(--font-title);

    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    color: var(--primary-color);
}

.ionyx-chiffres__titre::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 3.5rem;
    height: 3px;
    border-radius: var(--radius);
    background: var(--secondary-color);
    transform: translateX(-50%);
}

.ionyx-chiffres .ionyx-chiffres__slider {
    --swiper-pagination-color: var(--primary-color);
    --swiper-pagination-bullet-inactive-color: var(--tertiary-color);
    --swiper-pagination-bullet-inactive-opacity: 1;
    --swiper-pagination-bullet-size: 10px;
    --swiper-pagination-bullet-horizontal-gap: 8px;
    padding-bottom: 3rem;
}

.ionyx-chiffres__pagination .swiper-pagination-bullet {
    position: relative;
}

.ionyx-chiffres__pagination .swiper-pagination-bullet::after {
    content: "";
    position: absolute;
    inset: -17px;
}

.ionyx-chiffres__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: auto;
    padding-inline: 1rem;
    text-align: center;
}

.ionyx-chiffres__picto {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--border-color);
    border-radius: 50%;
    background: var(--white-color);
    box-shadow: var(--shadow-card);
    font-size: 1.75rem;
    color: var(--primary-color);
    transition: background-color var(--t-base), border-color var(--t-base), color var(--t-base);
}

.ionyx-chiffres__item:hover .ionyx-chiffres__picto {
    border-color: var(--primary-color);
    background: var(--primary-color);
    color: var(--white-color);
}

.ionyx-chiffres__nombre {
    margin: 0 0 .5rem;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    color: var(--primary-color);
}

.ionyx-chiffres__prefixe {
    margin-right: .15em;
    font-size: .45em;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--gray-color);
}

.ionyx-chiffres__label {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--text-color);
}

@media (min-width: 992px) {

    .ionyx-chiffres .ionyx-chiffres__slider {
        padding-bottom: 0;
    }

    .ionyx-chiffres__item:not(:first-child) {
        border-left: 1px solid var(--border-color);
    }
}

@media (max-width: 575.98px) {

    .ionyx-chiffres__titre {
        margin-bottom: 2rem;
    }

    .ionyx-chiffres__item {
        padding-inline: .5rem;
    }

    .ionyx-chiffres__picto {
        width: 3.75rem;
        height: 3.75rem;
        font-size: 1.5rem;
    }

    .ionyx-chiffres__label {
        font-size: .9375rem;
    }
}
/* ==========================================================================
   BLOC 4 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â FINISHING (responsive + motion)
   ========================================================================== */

@media (min-width: 992px) {
    /* NUCLEAR ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Nav horizontal (Rule 1) */
    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; }
}
@media (max-width: 1540px) {
  .nav-cta {
    gap: 5px;
    padding: 21px 25px;
    font-size: 15px;
    letter-spacing: 0.2px;
}
}
@media (max-width: 1440px) {
    nav.navbar .sf-menu { gap: 16px; }
    nav.navbar .logo img { height: 110px; }
    nav.navbar .container { min-height: 150px; }
  .sidebar-rs a {
    width: 35px;
    height: 35px;
}
    .text-banner {
      bottom: 110px;
      font-size: 120px;
  }
  section.parallaxe article .after-parallaxe {
      right: -25px;
  }
  .sec-actualites .news-small .photo, .sec-actualites .news-small .nophoto {
      flex: 0 0 202px;
      width: 202px;
  }
}


/* Header MD/LG : menu sur une seule ligne, CTA dans l'écran, espace menu/CTA */



@media (max-width: 1399px) {
    nav.navbar .container { column-gap: 20px; }
  nav.navbar .container { min-height: 130px; }
  nav.navbar .logo img { height: 110px; }
  nav.navbar .sf-menu { gap: 10px; }
  nav.navbar .sf-menu > li > a { font-size: 14px; }
  .nav-cta { padding: 12px 16px; font-size: 14px; }
  .nav-cta {
    gap: 5px;
    padding: 18px 20px;
    font-size: 14px;
    letter-spacing: 0;
}
}

@media (max-width: 1279px) {
  nav.navbar .logo img { height: 100px; }
  nav.navbar .sf-menu { gap: 8px; }
  nav.navbar .sf-menu > li > a { font-size: 13.5px; }
  .nav-cta { padding: 10px 14px; font-size: 13px; }
}
@media (max-width: 1139px) {
  nav.navbar .container { column-gap: 12px; }
  nav.navbar .sf-menu { gap: 6px; }
  nav.navbar .sf-menu > li > a { font-size: 13px; }
  .nav-cta { padding: 10px 12px; font-size: 13px; }
}


@media (max-width: 1199px) {
  nav.navbar.is-sticky .logo {
	width: 0;
	height: 0;
	opacity: 0;
}
nav.navbar .logo img {
    height:100px;
    margin: 0 auto;
}
  nav.navbar .logo {
    width: 100%;
    text-align: center;
    margin: 0px auto 0;
}
nav.navbar .container {
    min-height: 152px;
    flex-wrap: wrap;gap: 10px;
}
    nav.navbar .sf-menu { gap: 10px; }
    nav.navbar .sf-menu > li > a { font-size: 14px; }
    .nav-cta {
	padding: 10px 12px;
	font-size: 14px;
	margin: 0 auto;transform: none !important;
}
    nav.navbar.is-sticky .container {
  min-height: 85px;
}
    .card-chapo .row { --bs-gutter-x: 48px; }
    .bloc-row .bloc { gap: 48px; }
    .sec-bloc-01 .bloc-media,
    .sec-bloc-02 .bloc-media,
    .sec-bloc-03 .bloc-media { width: 400px; height: 400px; aspect-ratio: 400 / 400; }
    .sec-bloc-01 .bloc-media::before,
  .sec-bloc-02 .bloc-media::before	{ width: 400px; height: 400px; }
    .avis-wrapper { gap: 40px; }
    .avis-intro { flex-basis: 260px; }
    .footer-map { flex-basis: 360px; max-width: 360px; }
    section.parallaxe {
        padding: 100px 0 150px;
    }
  	section.parallaxe article .before-parallaxe{
        left : -8px;
      width : 70px;
      height : 70px;
    }
  section.parallaxe article .after-parallaxe{
        right : -8px;
      width : 70px;
      height : 70px;
    }
  nav.navbar {
    padding: 5px 0;
  }
  
  .sec-actualites .news-object.Item {
    padding: 15px;
}
  .sec-actualites .news-small .photo, .sec-actualites .news-small .nophoto {
    flex: 0 0 170px;
    width: 170px;
}
  .sec-actualites .news-object h3 {
    gap: 8px;
    margin: 0 0 10px;
    padding-bottom: 10px;
    font-size: 19px;
}
}

@media (max-width: 991px) {
  nav.navbar .logo {
    width: auto;
    text-align: center;
    margin: 0;
}
  nav.navbar {
	position: sticky;
}
    nav.navbar.is-sticky .logo {
	width: auto;
	height: inherit;
	opacity: 1;
}
    /* NUCLEAR ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Nav vertical mobile uniquement */
    nav.navbar .navbar-nav,
    nav.navbar .sf-menu {
        flex-direction: column !important;
    }
    nav.navbar .container {
        min-height: 85px;
        max-width: 100%;
        padding: 0 40px;
    }
    nav.navbar.is-sticky .container { min-height: 85px; }
    nav.navbar .logo { margin-right: auto; }
    nav.navbar .logo img,
    nav.navbar.is-sticky .logo img { height: 72px; }
    .nav-cta {
        order: 2;
        width: 48px;
        height: 48px;
        padding: 0;
        color: var(--primary-color);
        background: transparent;
        border-color: var(--primary-color);
        border-radius: var(--radius);margin: 0;
    }
    .nav-cta i { font-size: 18px; color: var(--primary-color); }
    .nav-cta:hover i { color: var(--white-color); }
    .nav-cta-number {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
    nav.navbar .lang-nav { order: 3; margin-left: 12px; }
    nav.navbar .navbar-collapse {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        max-height: calc(90vh - 105px);
        overflow-y: auto;
        background: var(--white-color);
        border-top: 1px solid var(--border-color);
        box-shadow: 0 12px 24px rgba(10, 41, 69, .12);
    }
    nav.navbar .sf-menu {
        align-items: stretch;
        gap: 0;
        padding: 12px 40px 24px;
    }
    nav.navbar .sf-menu > li > a {
        display: flex;
        min-height: 48px;
        padding: 14px 0;
        border-bottom: 1px solid var(--border-color);
    }
  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");
    transform: rotate(90deg);
    filter: none !important;
    /* filter: invert(1) !important; */
}
    nav.navbar .sf-menu > li.selected > a { border-bottom-color: var(--secondary-color); }
    nav.navbar .sf-menu li ul {
        position: static;
        display: block;
        min-width: 0;
        padding: 4px 0 8px 16px;
        border-top: 0;
        box-shadow: none;
    }
    nav.navbar .sf-menu li ul li a { min-height: 44px; padding: 12px 0; }
.card-chapo .chapo-flx {
    --bs-gutter-x: 80px;
    align-items: center;
    display: flex;
    flex-direction: column;
}

    header.header.big { height: 640px; }
    header.header.small { height: 240px; }
    .banner-content {
	padding-top: 0;
	display: flex;
	align-items: flex-end;
	/* padding-bottom: 130px; */
	bottom: 200px;
}
    .banner-content .container { width: 100%; }
    .hero-box h1,
    .hero-box h2 { margin-bottom: 28px; font-size: clamp(34px, 5vw, 44px); }
    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.big .swiper-pagination { bottom: 100px; left: 15px; }
header.header .banner .carousel-indicators{ display: none !important; }
    .sec-chapo { padding-bottom: 40px; }

  
    .card-chapo .row { --bs-gutter-x: 0; }
    .card-chapo .chapo-facts { margin-top: 28px; padding-left: 0; border-left: 0; }
    .card-chapo h1,
    .card-chapo h2 { font-size: 36px; }

    .section-title { font-size: 34px; }
    .sec-logos .section-title { font-size: 36px; }
    .sec-logos { padding: 40px 0 80px; }
    .sec-confiance { padding: 80px 0; }

    .sec-bloc,
    .sec-bloc-01 { padding: 96px 0; }
    .sec-bloc-01 { padding-top: 56px; }
    .bloc-row .bloc,
    .sec-bloc-01 .bloc,
    .sec-bloc-03 .bloc { flex-direction: column; align-items: stretch; gap: 24px; }
    .sec-bloc-01 .bloc-media,
    .sec-bloc-02 .bloc-media,
    .sec-bloc-01 .bloc-media, .sec-bloc-02 .bloc-media, .sec-bloc-03 .bloc-media {
	/* width: 100%; */
	/* height: 427px; */
      aspect-ratio: auto;
      margin: 0 auto;
  }
    .bloc-media::before { display: none; }
    .bloc-media img,
    .sec-bloc-02 .bloc-media img { width: 100%; height: 100%; margin: 0; }
    .sec-bloc-02 .bloc-content { flex-basis: auto; }
  section.parallaxe article {
      position: relative;
      padding: 40px 30px 30px;
      border-radius: 20px;
      background: rgba(255, 255, 255, 0.01);
      backdrop-filter: blur(25px);
      z-index: 1;
  }
.sec-actualites .news-featured .photo, .sec-actualites .news-featured .nophoto {
    width: 250px;
    flex: 0 0 250px;
}
.sec-actualites .news-group {

    grid-template-rows: auto;
}
    .sec-actualites { padding: 96px 0; }
    .sec-actualites .section-head { margin-bottom: 32px; }
    .sec-actualites .news-group { grid-template-columns: 1fr; }
    .sec-actualites .news-featured { grid-row: auto; }

    .avis-clients { padding: 96px 0; }
    .avis-wrapper {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-areas: "quote" "title" "desc" "track" "arrows";
        gap: 28px;
        align-items: stretch;text-align: center;
    }
    .sec-actualites .news-object.Item {
        padding: 15px;
        width: 100%;
        justify-content: space-between;        min-height: 290px;
    }
  .avis-clients .gb-entry {
    padding: 36px 15px;
}
  .avis-arrows {
    align-items: center;
    justify-content: center;
}
  .avis-clients .gb-entry > div {

    align-items: center;
}
    .avis-intro { display: contents; }
    .avis-intro > * { margin: 0; }
    .avis-intro .avis-quote { grid-area: quote; font-size: 40px; }
    .avis-intro .section-title { grid-area: title; }
    .avis-desc { grid-area: desc; }
    .avis-track { grid-area: track; }
    .avis-arrows { grid-area: arrows; }
    .avis-arrows button { width: 48px; height: 48px; }

    .contact-home { padding: 96px 0; }
    .contact-card { flex-direction: column; }
    .contact-media {
	flex-basis: auto;
	height: 388px;
	order: 0;
	z-index: 1;
}
.contact-infos {
    flex-basis: auto;
    padding: 48px 15px;
}
  .contact-form-wrap {
    padding: 48px 15px;
}
  footer.bottom {
      padding: 50px 0;
  }
.footer-wrapper {
   
    flex-direction: column;
    align-content: center;
    text-align: center;    align-items: center;
}
.footer-info {
    display: flex;
    align-items: center;
    gap: 8px;
      justify-content: center;
    flex-direction: column;
}
.footer-bottom .legal-links {
    gap: 2px;
    justify-content: center;
    align-items: center;
    align-content: center;
}
  .footer-bottom {

    text-align: center;
}
    .footer-map { flex: 1 1 100%; max-width: 100%; }
    .footer-map .map-container,
    .footer-map iframe { height: 220px; }
    .footer-bottom .container { flex-direction: column; gap: 8px; }
  .img-page, section.content article .NewsMasonry .NewsItem img.img-news-list, img.img-news {
    margin-left: auto !important;
    margin-right: auto;
    display: table;
}
  section.content.page-content.content-page .grid-home .text-part {
        width: 100% !important;
    }
  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 {
        margin: 0 auto 50px;
        height: 100% !important;
        max-width: 400px;
        width: 100% !important;
    }
  section.content.page-content.content-page .grid-home .text-part {
        width: 100% !important;
    }
    section.content .row.bx-grid .img-page {
        min-height: inherit;
        max-width: 370px;
        height: 400px;
        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%; }
    .contactForm .contact-field-item { width: 100%; padding: 0; float: none; }
  .logos-pagination.swiper-pagination,
.actus-pagination.swiper-pagination {
    gap: 3px;
}
.logos-pagination .swiper-pagination-bullet,
.actus-pagination .swiper-pagination-bullet {
    width: 8px;
    height:8px;
    
  
}
          .contactForm .contact-field-item {
        margin: 0 0 10px !important;
        position: relative;
        display: block;
        padding: 0;
        width: 100% !important;
        float: none;
        clear: none !important;
    }
    .contactForm .contact-field-item:nth-child(even) {
        padding-right: 0;
    }
    .contactForm .contact-field-item:nth-child(odd) {
        padding-left: 0;
    }
  .banner-content .hero-box {

    text-align: center;
}
}

@media (max-width: 767px) {
    nav.navbar .container { min-height: 72px; padding: 0 15px; }
    nav.navbar.is-sticky .container { min-height: 72px; }
    nav.navbar .logo img,
    nav.navbar.is-sticky .logo img { height: 60px; }
    nav.navbar .sf-menu { padding: 8px 15px 20px; }
    nav.navbar .navbar-collapse { max-height: calc(100vh - 72px); }

    h1 { font-size: 40px; }
    header.header.big { height: 560px; }
   .text-banner {
      bottom: 150px;
      font-size: min(50px, 10vw);
      letter-spacing: min(5px, 1vw);
  }
    .hero-box h1,
    .hero-box h2 { font-size: clamp(26px, 5.5vw, 34px); }
    header.header.big .swiper-pagination { bottom: 80px; }

    .card-chapo { margin-top: -60px; }
    .card-chapo h1,
    .card-chapo h2 { font-size: 30px; }

    .section-title { font-size: 30px; }
    .sec-logos .section-title { font-size: 32px; }
    .sec-bloc,
    .sec-bloc-01 { padding: 72px 0; }
    .sec-bloc-01 { padding-top: 56px; }
	
  h1 { font-size: 40px;  }
  h2 { font-size: 30px;  }
  h3 { font-size: 26px;  }
  h4 { font-size: 24px; }
  h5 { font-size: 22px; }
  h6 { font-size: 18px; }
  

    .sec-actualites { padding: 72px 0; }
.sec-actualites .section-head {
    flex-direction: column;
    align-items: center !important;
}
    .sec-actualites .news-small .news-object.Item { flex-direction: column; align-items: stretch; gap: 10px; padding-right: 0; }
    .sec-actualites .news-small .photo,
    .sec-actualites .news-small .nophoto { flex-basis: auto; width: 100%; height: 200px; }
  .sec-actualites .news-featured .news-desc,  

    .sec-actualites .news-small .news-desc { padding: 24px 0px 0px; }
    .sec-actualites .news-small .news-abstract { display: block; }
  .sec-actualites .news-object .news-body-desc .date, .sec-actualites .news-object h3 .date {
      position: relative;
      display: table;
      margin: 0 auto 12px 0;
  }
	.sec-actualites .news-object.Item, .sec-actualites .news-small .news-object.Item  {
      display: block;
      padding : 20px;
  }
  .sec-actualites .news-featured .photo, .sec-actualites .news-featured .nophoto {
      width: 100%;
      height: 200px;
      margin-bottom: 20px;
  }
    .avis-clients { padding: 72px 0; }
    .avis-clients .gb-entry { padding: 28px; }

    .contact-home { padding: 0; }
    .contact-home .container { padding: 0; }
    .contact-card { border-radius: 0; box-shadow: none; }
    .contact-media { height: 257px; }
    .contact-form-wrap { padding: 48px 15px; }
    .contact-infos { padding: 48px 15px; }
    .contact-form-wrap .btn,
    .contact-form-wrap button[type="submit"] { width: 100%; justify-content: center; }

    footer.bottom { padding-top: 56px; }
    .footer-brand { flex-direction: column; align-items: flex-start; }
    .footer-logo img { width: 140px; }
    .footer-coordonnees { flex-basis: 100%; }
.gdpr.form-check {
    display: block;
    margin-bottom: 10px;
    float: none;
}
  .contact-submit {
    float: none;
    display: table;

}
  .contact-form-wrap p.eyebrow.eyebrow-muted, .contact-form-wrap h2.section-title {
    text-align: center;
}
  .btn-ionyx {
    min-height: 42px;
    padding: 20px 30px;
    font-size: 15px;
    letter-spacing: .4px;
}
}

@media (max-width: 480px) {
  .sec-bloc-01 .bloc-media, .sec-bloc-02 .bloc-media, .sec-bloc-03 .bloc-media {
      width: 250px;
      height: 250px;
  }
  section.parallaxe article {
      padding: 40px 10px 30px;
  }
  .eyebrow {
      gap: 5px;
  }
  .btn-ionyx {
    padding: 14px 15px;
    font-size: 14px;
    min-height: auto !important;
}
    .hero-box h1,
    .hero-box h2 { font-size: 23px; }
    
  	  h1 { font-size: 28px;  }
      h2 { font-size: 24px;  }
      h3 { font-size: 22px;  }
      h4 { font-size: 20px; }
      h5 { font-size: 19px; }
      h6 { font-size: 18px; }
  
    
    .bx-logo { height: 84px; padding: 10px 12px; }
    section.content.page-content.content-page a.link-picture,
    section.content.page-content.content-page a.link-subgallery { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}