/*==================================================================
# MSM CONSULTING — template.css — Genesis v35 (Figma → Nénuphar WF32)
# Bloc 1 Foundation · Bloc 2 Components · Bloc 3 Layout · Bloc 4 Finishing
==================================================================*/

/*------------------------------------------------------------------
# BLOC 1 — FOUNDATION : Fonts (Figma : Jost + Cormorant Garamond)
------------------------------------------------------------------*/
@font-face {
    font-family: 'Jost';
    src: url('../fonts/jost-v20-latin-regular.woff2') format('woff2'),
         url('../fonts/jost-v20-latin-regular.woff') format('woff');
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Jost';
    src: url('../fonts/jost-v20-latin-500.woff2') format('woff2'),
         url('../fonts/jost-v20-latin-500.woff') format('woff');
    font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Jost';
    src: url('../fonts/jost-v20-latin-700.woff2') format('woff2'),
         url('../fonts/jost-v20-latin-700.woff') format('woff');
    font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/cormorant-garamond-v21-latin-600.woff2') format('woff2'),
         url('../fonts/cormorant-garamond-v21-latin-600.woff') format('woff');
    font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/cormorant-garamond-v21-latin-700.woff2') format('woff2'),
         url('../fonts/cormorant-garamond-v21-latin-700.woff') format('woff');
    font-weight: 700; font-style: normal; font-display: swap;
}

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

/*------------------------------------------------------------------
# CSS Variables (tokens Figma)
------------------------------------------------------------------*/
:root {
    --dark-color: #351C44;     /* nav / footer / boutons foncés */
    --quaternary-color: #9D86BE; /* accent principal / boutons */
    --primary-color: #CF8DA8;  /* accent rose (menu actif) */
    --primary-bg: #FFF7F3;     /* fond sections claires */
    --white-color: #FFFFFF;
    --color-quaternary: #F3F3F3;
    --gold-from: #9D86BE;      /* étoiles avis */

    --bs-primary: #9D86BE;
    --bs-primary-rgb: 157, 134, 190;
    --bs-light: #F3F3F3;
    --bs-light-rgb: 243, 243, 243;
    --bs-dark: #351C44;
    --bs-dark2: var(--dark-color2);

    --bs-body-color: #5B5B5B;
    --bs-body-bg: #FFFFFF;
    --bs-body-font-family: "Jost", sans-serif;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 24px;
    --bs-body-font-size: 15px;

    --heading-font: "Cormorant Garamond", serif;

    --radius-card: 20px;
    --radius-btn: 20px 0 20px 0;  /* rounded-tl + rounded-br (Figma) */
    --shadow-card: 0 10px 40px rgba(53, 28, 68, 0.10);
}

a#no-page {
    pointer-events: none;
}
/*------------------------------------------------------------------
# General / Reset  (bloc OBLIGATOIRE client conservé verbatim)
------------------------------------------------------------------*/
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 */
}

body {
    font-family: var(--bs-body-font-family);
    font-size: var(--bs-body-font-size);
    font-weight: var(--bs-body-font-weight);
    line-height: var(--bs-body-line-height);
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    overflow-x: hidden;
}

img { max-width: 100%; height: auto; }

/* FA icônes — taille explicite (évite font-size:0 hérité des flex) */
.btn i, .nav-rs i, .footer-rs i, .fc-icon i, .info-block i, .social a i {
    font-size: 1em; display: inline-block; line-height: 1;
}

/*------------------------------------------------------------------
# BLOC 2 — COMPONENTS : container, typo, boutons, formulaires
------------------------------------------------------------------*/
/* NUCLEAR — Container discipline (Rule 2 + Rule 11) */
.container, .container-xl {
    max-width: 1250px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}
.container-fluid {
    max-width: 1540px;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--heading-font);
    font-weight: 700;
    color: var(--dark-color);
    margin: 0 0 .5em;
}
h1 { font-size: 54px; line-height: 1.05; font-weight: 600; }
h2 { font-size: 48px; line-height: 1.05; font-weight: 600; }
h3 { font-size: 30px; line-height: 1.1; }
h4 { font-size: 22px; line-height: 1.2; }
h5 { font-size: 18px; line-height: 1.25; }

p { margin: 0 0 1rem; }

a { color: var(--quaternary-color); text-decoration: none; transition: all .3s ease; }
a:hover { color: var(--dark-color); }


.dropdown-toggle::after {
   text-align: center;
    display: table;
    position: absolute;
    bottom: 0px;
    right: 0;
    left: 0;
    margin: 0px auto 0 !important;
    content: "\f107" !important;
    font-family: 'Font Awesome 6 Pro';
    border: 0;
    color: rgb(255 255 255) !important;
}
  /*  .navbar-expand-lg .navbar-nav .dropdown-menu {
       
        margin-top: 20px;
    }*/
/* Boutons (Figma : bg violet, rounded tl+br, flèche) */
.btn, .contact-submit button, .contact-form .btn, .banner-box-content .btn, button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--quaternary-color);
    color: var(--white-color);
    font-family: var(--bs-body-font-family);
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    padding: 18px 32px;
    border: none;
    line-height: 20px;
    border-radius: var(--radius-btn);
    transition: all .3s ease;
}
h3.tagline.light span {
    color: var(--primary-color) !important;
}
.btn:hover,
button[type="submit"]:hover {
    background: var(--primary-color);
    color: var(--white-color);
}
.btn i { transform: rotate(-45deg); }
/* Flèche diagonale → (Figma) ajoutée quand le contenu n'en fournit pas */
.banner-box-content .btn::after {
    display: inline-block;
    transform: rotate(-45deg);
    font-size: 16px;
    line-height: 1;
    content: "\f061";
    font-weight: 900;
    font-family: 'Font Awesome 6 Pro';
}

.txt-white { color: var(--white-color) !important; }

/* Champs de formulaire */
.contact-form .form-control,
.contact-form input,
.contact-form textarea,
.contact-form select,
input.form-control, textarea.form-control {
    width: 100%;
    background: var(--white-color);
    border: 1px solid transparent;
    border-radius: 5px;
    padding: 10px 20px;
    font-family: var(--bs-body-font-family);
    font-size: 15px;
    color: var(--dark-color2);
    margin-bottom: 0;
}
.contact-form .form-control:placeholder,
.contact-form input:placeholder,
.contact-form textarea:placeholder,
.contact-form select:placeholder,
input.form-control, textarea.form-control:placeholder {
    color: var(--dark-color2) !important;
}
.contact-form textarea { min-height: 108px; resize: vertical; }
input { outline: none !important; }
.contact-glass .contact-field-item input:focus, .contact-glass .contact-field-item textarea:focus, .contact-glass .contact-field-item .form-control:focus {
    box-shadow: none;
    border-color: var(--primary-color);
}
.page-content .contactForm .contact-field-item {
    margin: 0 0 15px;
}
/*------------------------------------------------------------------
# BLOC 3 — LAYOUT
------------------------------------------------------------------*/

/* ===== NAVIGATION ===== */
.navbar.sticky-top {
    background: var(--dark-color);
    padding: 21px 0 0;
    z-index: 1030;
    transition: padding .3s ease, box-shadow .3s ease;
}
.navbar.is-sticky {
    box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
    padding: 21px 0;
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
}
.navbar .lang-nav { gap: 30px; }

/* NUCLEAR — Nav horizontal fix (Rule 1) */
.navbar .sf-menu,
.navbar .navbar-nav {
    flex-direction: row !important;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    flex-wrap: wrap;
    justify-content: center;
}

.sf-menu > li { position: relative; }
.sf-menu > li > a {
display: block;
    color: var(--primary-bg);
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    padding: 8px 0 28px!important;
    transition: color .25s ease;
}
.navbar .sf-menu {
    justify-content: space-between;
    width: 100%;
}
.sf-menu > li > a:hover { color: var(--primary-color); }
/* Rule 10 — état courant = .selected (Nénuphar) */
.sf-menu > li.selected > a { color: var(--primary-color); }

/* Sous-menus déroulants */
.sf-menu ul {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 300px;
    background: var(--dark-color);
    list-style: none;
    margin: 0;
    padding: 8px 0;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all .25s ease;
    z-index: 1031;
}
.sf-menu > li:hover > ul { opacity: 1; visibility: visible; transform: translateY(0); }
.sf-menu ul li a {
    display: block;
    color: #FFF7F3;
    padding: 8px 20px;
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.sf-menu ul li a:hover,
.sf-menu ul li.selected a { color: var(--primary-color); background: rgba(255, 255, 255, .05); }

/* RS dans la nav */
.nav-rs .networks_linking { display: flex; align-items: center; gap: 10px; }
.nav-rs .networks_linking a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--white-color);
    color: var(--dark-color);
    font-size: 14px;
    transition: all .25s ease;
}
.nav-rs .networks_linking a.networks.networks_google {
    order: 3;
}
.nav-rs .networks_linking a:hover { background: var(--quaternary-color); color: var(--white-color); }

/* Burger (BS5 collapse — pas de JS custom, consigne client) */
.navbar-toggler-icon {
    display: inline-block;
    width: 28px; height: 2px;
    background: var(--white-color);
    position: relative;
}
.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
    content: ''; position: absolute; left: 0; width: 28px; height: 2px; background: var(--white-color);
}
.navbar-toggler-icon::before { top: -8px; }
.navbar-toggler-icon::after { top: 8px; }

/* ===== HERO (banner big) ===== */
.banner.big { position: relative;     height: calc(100vh - 82px);
    overflow: hidden;
    min-height: 560px;}
.banner.big .container-fluid,
#slideshow, .banner .swiper, .banner .swiper-wrapper, .banner .swiper-slide,
.banner .carousel, .banner .carousel-inner, .banner .carousel-item { height: 100%; }
.banner .swiper-slide img,
.banner .carousel-item img,
#carrousel_b_32 .carousel-item img,
#slideshow img { width: 100%; height: 100%; object-fit: cover; }
/* Carousel réel généré par gallery_simple_slideshow_b = #carrousel_b_XX.carousel-fade */
#carrousel_b_32, #carrousel_b_32 .carousel-inner, #carrousel_b_32 .carousel-item { height: 100%; }
/* Rule 3 — anti .fade invisible (conteneur uniquement, on laisse le carousel-fade gérer les items) */
#slideshow.fade, .banner .fade, .banner .carousel, #carrousel_b_32 { opacity: 1 !important; }
/* Flèches de carousel masquées (absentes du Figma) */
.banner .carousel-control-prev, .banner .carousel-control-next { display: none; }

.banner-overlay-box {
    top: 50%;
    left: calc((100vw - 1435px) / 2);
    transform: translateY(-50%);
    width: min(647px, 80%);
    min-height: 520px;
    background: var(--dark-color);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    border-radius: 20px;
    padding: 80px 60px 70px;
    z-index: 3;
    margin-top: -32px;
}
.banner-inner { gap: 15px; }
.banner-box-content p {
    margin: 0;
}
.banner-box-content { color: var(--white-color); }
.banner-box-content h1,
.banner-box-content h2,
.banner-box-content .slogan,
.banner-box-content p:first-of-type {
    font-family: var(--heading-font);
    font-weight: 600;
    font-size: 40px;
    line-height: 50px;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--white-color);
    margin-bottom: 24px;
}

/* Vague décorative bas de banner */
.banner-wave {
    position: absolute;
    left: 0;
    right: 0;
    height: 122px;
    background: url('../images/wave.webp') no-repeat center bottom;
    z-index: 4;
    pointer-events: none;
    bottom: 0;
	    background-size: 100% 100%;
}

/* ===== BANNER interne (small) ===== */
.banner.small {
    height: 600px;
}
.banner.small .banner-wave {
    height: 64px;
}

.banner.small h1 { color: var(--white-color); margin: 0; }


header.header.small {
    background: #30163f;padding-top:2px;
}
header.header.small .page-logo {
    margin: 15px auto;
    text-align: center;
}
.footer-nav-bar small {
    font-size: 15px;
}
/* ===== SECTION PRESENTATION ===== */
.sec-presentation { padding: 120px 0; }
.sec-presentation .presentation-content { position: relative; }
.sec-presentation .presentation-content h2, .sec-presentation .presentation-content h1 {
    font-family: var(--heading-font);
    font-weight: 600;
    font-size: 50px;
    line-height: 1.02;
    letter-spacing: 1.3px;
    color: var(--dark-color);
    text-transform: uppercase;
    margin: 0 0 48px;
}
.sec-presentation .presentation-text p:last-of-type {
    margin: 0;
}
.sec-presentation .presentation-content h3,
.sec-presentation .presentation-content .subtitle {
    font-family: var(--bs-body-font-family);
    font-weight: 400;
    font-size: 18px;
    letter-spacing: 3.6px;
    color: var(--dark-color);
    text-transform: uppercase;
}
.sec-presentation .presentation-content p { color: #5B5B5B; line-height: 24px; }

/* Composition split : texte gauche / images superposées droite */
.sec-presentation .presentation-wrapper {
    display: flex;  gap: 100px;
}
.sec-presentation .presentation-text { flex: 1 1 52%; min-width: 0;    padding: 66px 0; }
.sec-presentation .presentation-media {
        flex: 1 1 48%;
    position: relative;
}
/* Triangle décoratif violet (Figma) — coin haut-droit de la grande image */

.sec-presentation .presentation-media .pm-main {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0 80px 0 100px;
}
.sec-presentation .presentation-media .pm-float {
    position: absolute;
    right: -130px;
    bottom: -49px;
    width: 354px;
    height: 356px;
    object-fit: cover;
    border-radius: 30px;
    border: 10px solid var(--white-color);
}
.badge-home {
    position: absolute;
    width: 136px;
    height: 136px;
    right: -138px;
    top: 105px;
    background: url(/smarty/wireframe27/media/images/icon-badge.svg) no-repeat center;
}
.badge-home:before {
    content: "";
    position: absolute;
    inset: 0;
    background: url(/smarty/wireframe27/media/images/text-badge.svg) no-repeat center;
	 animation: rotate 12s linear infinite;
}
@keyframes rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
/* Fallback : image insérée seule dans le WYSIWYG */
.sec-presentation .presentation-content > p > img,
.sec-presentation .presentation-content > img {
    border-radius: 0 80px 0 100px; object-fit: cover;
}
@media (max-width: 991.98px) {
    .sec-presentation .presentation-wrapper { flex-direction: column; gap: 40px; }
    .sec-presentation .presentation-media { width: 100%; min-height: 0; }
    .sec-presentation .presentation-media .pm-main { width: 100%; height: auto; }
    .sec-presentation .presentation-media .pm-float {
        position: static; width: 70%; height: auto; margin: -40px auto 0; display: block;
    }
    .sec-presentation .presentation-media::before { display: none; }
}
.page-content .photo, .page-content .photo img {
    height: 100%;
    width: 100%;
    object-fit: cover;
	border-radius: 50px 0;
}
.chapo {
    text-align: center;
    margin: 0 0 40px;
}
.custom-table {
            width: 100%;
            border-collapse: collapse;
            margin: 0;
        }

        /* Style de l'en-tête (thead) */
        .custom-table thead th {
               background-color: var(--bs-primary);
			color: var(--bs-white);
			font-weight: 600;
			text-transform: uppercase;
			letter-spacing: 1px;
			padding: 15px 20px;
			border: none;
        }

        /* Arrondir les angles supérieurs du thead */
        .custom-table thead th:first-child {
            border-top-left-radius: 8px;
        }
        .custom-table thead th:last-child {
            border-top-right-radius: 8px;
        }

        /* Style des lignes du corps (tbody) */
        .custom-table tbody tr {
    border-bottom: 1px solid var(--primary-color);
    transition: background-color 0.2s ease;
}

        /* Alternance de couleur pour les lignes (effet zébré subtil) */
        .custom-table tbody tr:nth-child(even) {
            background-color: var(--light-bg);
        }

        /* Effet de survol sur les lignes */
        .custom-table tbody tr:hover {
            background-color: rgb(157 134 190 / 8%);
        }

        /* Style des cellules (td) */
        .custom-table tbody td {
            padding: 16px 20px;
            font-size: 0.95rem;
        }

        /* Alignement spécifique pour les prix */
        .text-price {
            font-weight: 600;
            color: var(--dark-color);
        }
/* Badge rotatif décoratif */
.deco-badge-contact.badge-home {
    left: 31%;
    right: auto;
    z-index: 3;
    top: 82px;
}
@keyframes badgeSpin { to { transform: rotate(360deg); } }

/* ===== SECTION HOME-BOXES (Swiper) ===== */
.sec-boxes { position: relative; padding: 120px 0; background: var(--primary-bg); }
.sec-boxes::before {
    content: ''; position: absolute; inset: 0;
    background: url('../images/texture-bg.webp') no-repeat center / cover;
    opacity: .5; z-index: 0;
}
.sec-boxes .container { z-index: 1; }
.boxes-swiper { position: relative; }
.boxes-swiper .swiper-slide { height: auto; }

/* === MODULE CSS — PROVISIONNEL (à réaligner après inspection DOM Pass 2) === */
.bx-home-wrap .bx-home,
.boxes-swiper .bx-home { display: flex; flex-direction: column; gap: 30px; height: 100%; }
.bx-home .img-box {
    position: relative;
    width: 100%; /*height: 651px;*/height: 400px;
    border-radius: 0 80px 0 0;
    overflow: hidden;
}
.bx-home .img-box img,
.bx-home > a img {
    width: 100%; height: 100%; object-fit: cover;
	    transition: all .6s;
}
/* Triangle décoratif violet (Figma) — coin haut-gauche de l'image */
.bx-home:hover .img-box img {
    transform: scale(1.2);
}
.bx-home h2, .bx-home h3, .bx-home .box-title {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 30px;
    line-height: 30px;
    color: var(--dark-color);
    margin: 0 0 20px;
    transition: color .3s ease;
}
.bx-home .txt-box {
    padding-right: 0;
}
.bx-home .bx-content {
    display: flex;
	gap: 20px;
}
.bx-home p, .bx-home .desc {  margin: 0; }
.bx-home .box-cta, .bx-home .readmore a {
    width: 59px;
    height: 59px;
    min-width: 59px;
    border-radius: 50%;
    background: var(--dark-color);
    color: var(--white-color);
    font-size: 0;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bx-home .box-cta:after {
    content: "";
    position: absolute;
    inset: 0;
}
.bx-home:hover .box-cta {
    background: var(--quaternary-color);
}
.bx-home a.box-cta:before {
    display: inline-block;
    transform: rotate(-45deg);
    font-size: 16px;
    line-height: 1;
    content: "\f061";
    font-weight: 900;
    font-family: 'Font Awesome 6 Pro';
}
.bx-home .box-cta i, .bx-home .readmore a i { transform: rotate(-45deg); }
/* Hover (Figma : carte "Nos tarifs" = titre violet) */
.boxes-swiper .swiper-slide:hover .bx-home h2,
.boxes-swiper .swiper-slide:hover .bx-home h3,
.boxes-swiper .swiper-slide.is-hover .bx-home h3 { color: var(--quaternary-color); }

.swiper-pagination-boxes {
	position: relative !important;
	text-align: center !important;
	margin-top: 40px;
}
.swiper-pagination-boxes .swiper-pagination-bullet {
	background: var(--dark-color) !important;
	opacity: 1 !important;
	width: 12px !important;
	height: 12px !important;
}
.swiper-pagination-boxes .swiper-pagination-bullet-active { background: var(--quaternary-color !important); opacity: 1; }

/* ===== SECTION CONTACT (Accueil) ===== */
.sec-contact-home {
    position: relative;
    padding: 190px 0 120px;
    background: #000;
}
.sec-contact-home::before {
    content: ''; position: absolute; inset: 0;
    background: url('../images/bg-contact.webp') no-repeat center / cover;
    z-index: 0;
}
.sec-contact-home::after {
    content: '';
    position: absolute;
    top: 0;
    z-index: 1;
    height: 142px;
    left: 0;
    width: 100%;
    background: url(../images/bg2.webp) no-repeat top;
    background-size: 100% 100%;
    pointer-events: none;
}
.sec-contact-home .container { z-index: 2; }
.contact-glass {
    padding: 60px 68px;
    position: relative;
}
.contact-glass:before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .2);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 0 80px 0 80px;
    z-index: -1;
}
.contact-glass .form-check {
    text-align: center;
    display: table;
    margin: 0 auto;
}
.contact-glass .contact-title {
    font-family: var(--heading-font); font-weight: 600; font-size: 40px; line-height: 50px;
    letter-spacing: .8px; text-transform: uppercase; color: var(--white-color); margin-bottom: 24px;
}
/* Grille alignée sur le DOM réel contact_b (#contactForm_1) */
.contact-glass form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
/* Champs cachés / techniques hors grille */
.contact-glass form > input,
.contact-glass form > h3.contact-field,
.contact-glass form > script,
.contact-glass #mail-valid { display: none !important; }
.contact-glass .form-group,
.contact-glass .contact-field-item { margin: 0; }
.contact-glass .contact-field-item { grid-column: span 1; }
/* Pleine largeur : message, recaptcha, alertes, submit */
.contact-glass .contact-field-item.fullwidth,
.contact-glass .contact-field-type_paragraph,
.contact-glass .form-check,
.contact-glass .g-recaptcha,
.contact-glass .alert,
.contact-glass .sendConfirm,
.contact-glass .contact-submit { grid-column: 1 / -1; }
.contact-glass label { color: var(--white-color); font-size: 15px; margin-bottom: 0; display: inline-block; }
.contact-glass .contact-field-item input,
.contact-glass .contact-field-item textarea,
.contact-glass .contact-field-item .form-control { width: 100%; }
.contact-glass .g-recaptcha { display: flex; justify-content: center; }
.contact-glass .contact-submit { display: flex; justify-content: center;margin-top: -20px; }
.contact-glass label a {
    color: var(--white-color);
}
.contact-glass label a:hover {
    color: var(--dark-color);
}
/* Bouton ENVOYEZ — foncé (Figma) */
.contact-glass .contact-submit button,
.contact-glass .contact-submit .btn { background: var(--dark-color);padding: 15px 40px; }
.contact-glass .contact-submit button:hover,
.contact-glass .contact-submit .btn:hover { background: var(--quaternary-color); }
h3.contact-field { display: none; }

/* ===== FOOTER (Figma) ===== */
footer.bottom {
    position: relative;
    background: var(--dark-color);
    color: var(--white-color);
    padding: 100px 0;
     padding: 50px 0;
    overflow: hidden;
}
.bg-footer {
    content: "";
    position: absolute;
    inset: 0;
    background: url(../images/texture-bg.webp) no-repeat center;
    background-size: cover;
}
.bg-footer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    mix-blend-mode: color-burn;
    opacity: .5;
    background-size: cover;
}
footer.bottom .container { position: relative; z-index: 1; }
.footer-grid { gap: 40px; flex-wrap: wrap; }
.footer-coords { color: var(--white-color); }
.footer-coords a { color: var(--white-color);    display: block; }
.fc-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 50px; height: 50px; min-width: 50px; border-radius: 50%;
    background: var(--quaternary-color); color: var(--white-color); font-size: 16px;
}
.footer-rs .networks_linking { display: flex; gap: 10px; }
.footer-rs .networks_linking a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 50px; height: 50px; border-radius: 50%;
    border: 1px solid var(--white-color); color: var(--white-color); font-size: 16px;
    transition: all .25s ease;
}
.footer-coords a:hover {
    color: var(--primary-color);
}
a.btn-cookies-link {
	background-color: var(--primary-color) !important;
}
.footer-rs .networks_linking a:hover { background: var(--quaternary-color); border-color: var(--quaternary-color); color: var(--white-color); }

/* Footer menu 2 colonnes */
.footer-menu .sf-menu-footer {
    display: grid;
    grid-template-columns: auto auto;
    gap: 20px 30px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.footer-menu .sf-menu-footer li a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--white-color);
    font-family: var(--bs-body-font-family);
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 23px;
}
.footer-info-item {
    gap: 10px !important;
	    margin-bottom: 20px !important;
}
.footer-menu .sf-menu-footer li a::before {
    content: ''; width: 10px; height: 10px; border-radius: 50%;
    background: var(--primary-color); flex: 0 0 10px;
}
.footer-rs .networks_linking a.networks.networks_google {
    order: 3;
}
.footer-menu .sf-menu-footer li.selected a,
.footer-menu .sf-menu-footer li a:hover { color: var(--primary-color); }

/* Barre signature */
.footer-nav-bar { background: #2a1636; color: var(--white-color); }
.footer-nav-bar a { color: var(--white-color); }
.footer-nav-bar a:hover { color: var(--primary-color); }
.footer-b { display: none; }

/* Scroll-to-top (bloc OBLIGATOIRE client) */
a#scrollTopBtn {
    position: fixed;
    right: 50%;
    bottom: 44px;
    transform: translateX(50%);
    border: 1px solid var(--bs-body-color);
    width: 46px; height: 46px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--quaternary-color); color: var(--white-color);
    opacity: 0; pointer-events: none; z-index: 1040;
}

/* ===== PAGES INTERNES (CSS OBLIGATOIRE client conservé) ===== */
section.content ul {
    list-style-type: none !important;
}
section.content ul li {
    background: url(../images/bullet.png) 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);
	border-radius: 20px;
}
.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);
	border-radius: 20px 0;
}
.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: 15px; }
.content-page .networks_linking a {
   display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-primary);
    font-size: 18px;
    text-decoration: none;
    transition: color .25s ease, transform .25s ease;
    border-color: var(--bs-primary);
}
/**********************/

.grid-block {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 20px;
}
.grid-block.grid-block2{
   grid-template-columns: 1fr 1fr 1fr ;
}
.grid-block.grid-block2 a{
  color:#000;
}
.grid-block .box-light:nth-child(even) {
   background: var(--primary-color);
     color: var(--white-color);
  border-top:7px solid var(--quaternary-color);
}
.grid-block .box-light{
background: var(--quaternary-color);
    color: var(--white-color);
}
.grid-block .box-light h3 {

    color: var(--white-color);

}
.grid-block .box-light li {
    filter: brightness(0) invert(1);
}
.grid-block.service {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
   
}
.grid-block.g2 {
    grid-template-columns: 1fr 1fr;
}
.box-dark.service{
    text-align: center;
}
.box-dark.service a{
      text-decoration: underline; 
}
.box-dark h2 {
     color: var(--white-color);
}


.grid-block.service .box-light:nth-child(even) {
    border-top: 7px solid var(--quaternary-color);
      background: rgb(195 183 217 / 20%);
      color: var(--bs-body-color);
}
.grid-block.service .box-light:nth-child(even) h3 {
    color: var(--quaternary-color);
}
.grid-block.service .box-light {
    border-top: 7px solid var(--primary-color);
      background: rgb(196 133 159 / 20%);
      color: var(--bs-body-color);
     width: 48%;
  
  
}
.box-light{
    border-top: 7px solid var(--primary-color);
      background: rgb(196 133 159 / 20%);
      color: var(--bs-body-color);
}
.grid-block.service .box-light h3 {
    color:  var(--primary-color);
}
.grid-block.service .box-light li {
     filter: none;
}

    /* ─────────────────────────────────────────
       UTILITIES
    ───────────────────────────────────────── */
    .tag {
      display: inline-block;
      font-family: var(--bs-body-font-family);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--primary-color);
      margin-bottom: 10px;
    }

    .section-title {
      font-size: clamp(1.9rem, 3vw, 2.6rem);
      font-weight: 700;
      color: var(--dark-color);
      margin-bottom: 10px;
    }

    .section-lead {
      font-size: 1rem;
      color: var(--bs-body-color);
      max-width: 640px;
      margin-bottom: 40px;
    }

    .divider {
      width: 48px;
      height: 3px;
      border-radius: 2px;
      background: linear-gradient(90deg, var(--primary-color), var(--quaternary-color));
      margin: 14px 0 28px;
    }

    /* Pill badge */
    .pill {
      display: inline-block;
      background: rgba(var(--bs-primary-rgb), 0.12);
      color: var(--quaternary-color);
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 1px;
      text-transform: uppercase;
      padding: 4px 14px;
      border-radius: 50px;
      margin-bottom: 14px;
    }

    /* ─────────────────────────────────────────
       BOUTON
    ───────────────────────────────────────── */
    .btn {
      display: inline-block;
      font-family: var(--bs-body-font-family);
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      padding: 13px 32px;
      border-radius: var(--radius-btn);
      border: none;
      cursor: pointer;
      transition: transform .2s, box-shadow .2s;
    }
    .btn-primary {
      background: var(--quaternary-color);
      color: var(--white-color);
      box-shadow: 0 6px 20px rgba(var(--bs-primary-rgb), 0.35);
    }
    .btn-primary:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 28px rgba(var(--bs-primary-rgb), 0.45);
    }
    .btn-outline {
      background: transparent;
      color: var(--white-color);
      border: 2px solid rgba(255,255,255,0.5);
    }
    .btn-outline:hover {
      background: rgba(255,255,255,0.1);
      border-color: var(--white-color);
    }

    /* ─────────────────────────────────────────
       HERO
    ───────────────────────────────────────── */
    .hero {
      background: var(--dark-color);
      background-image:
        radial-gradient(ellipse 70% 60% at 80% 50%, rgba(157,134,190,0.18) 0%, transparent 70%),
        radial-gradient(ellipse 50% 80% at 10% 80%, rgba(207,141,168,0.12) 0%, transparent 60%);
      color: var(--white-color);
      text-align: center;
      padding: 100px 24px 80px;
    }

    .hero .pill { background: rgba(207,141,168,0.2); color: var(--primary-color); }

    .hero h1 {
      font-family: var(--heading-font);
      font-size: clamp(2.8rem, 6vw, 4.4rem);
      font-weight: 700;
      color: var(--white-color);
      letter-spacing: 4px;
      margin-bottom: 16px;
    }

    .hero .hero-tagline {
      font-family: var(--heading-font);
      font-size: clamp(1.1rem, 2vw, 1.4rem);
      font-style: italic;
      color: var(--primary-color);
      margin-bottom: 20px;
    }

    .hero .hero-sub {
      font-size: 0.95rem;
      color: rgba(255,255,255,0.65);
      max-width: 520px;
      margin: 0 auto 36px;
    }

    .hero-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

    /* ─────────────────────────────────────────
       INTRO BAND
    ───────────────────────────────────────── */
    .intro-band {
      background: var(--primary-bg);
      padding: 56px 0;
    }

    .intro-inner {
      background: var(--white-color);
      border-radius: var(--radius-card);
      box-shadow: var(--shadow-card);
      padding: 44px 48px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 40px;
      align-items: center;
    }

    .intro-inner blockquote {
      font-family: var(--heading-font);
      font-size: 1.5rem;
      font-style: italic;
      color: var(--dark-color);
      border-left: 4px solid var(--primary-color);
      padding-left: 20px;
      line-height: 1.5;
    }

    .intro-inner p { color: var(--bs-body-color); margin-bottom: 14px; }
    .intro-inner p:last-child { margin-bottom: 0; }

    /* ─────────────────────────────────────────
       VISION
    ───────────────────────────────────────── */
    .vision { background: var(--white-color); }

    .vision-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
      margin-top: 8px;
    }

    .vision-card {
      background: var(--primary-bg);
      border-radius: var(--radius-card);
      padding: 36px 32px;
      box-shadow: var(--shadow-card);
      border-top: 4px solid transparent;
      background-clip: padding-box;
      position: relative;
      overflow: hidden;
    }
    .vision-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--primary-color), var(--quaternary-color));
    }

    .vision-card .icon {
      font-size: 2.2rem;
      margin-bottom: 14px;
      display: block;
    }

    .vision-card h3 {
      font-family: var(--heading-font);
      font-size: 1.35rem;
      font-weight: 700;
      color: var(--dark-color);
      margin-bottom: 12px;
    }

    .vision-card ul li {
      font-size: 0.93rem;
      color: var(--bs-body-color);
      padding: 5px 0 5px 20px;
      position: relative;
    }
    .vision-card ul li::before {
      content: '';
      position: absolute;
      left: 0; top: 13px;
      width: 8px; height: 8px;
      border-radius: 50%;
      background: var(--primary-color);
    }

    /* ─────────────────────────────────────────
       CIBLE
    ───────────────────────────────────────── */
    .cible { background: var(--color-quaternary); }

    .cible-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 22px;
      margin-top: 8px;
    }

    .cible-card {
      background: var(--white-color);
      border-radius: var(--radius-card);
      padding: 28px 22px;
      box-shadow: var(--shadow-card);
      transition: transform .25s;
    }
    .cible-card:hover { transform: translateY(-5px); }

    .cible-card .cible-icon {
      width: 44px; height: 44px;
      border-radius: 12px;
      background: linear-gradient(135deg, var(--primary-color), var(--quaternary-color));
      display: flex; align-items: center; justify-content: center;
      font-size: 1.3rem;
      margin-bottom: 14px;
    }

    .cible-card h3 {
      font-family: var(--heading-font);
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--dark-color);
      margin-bottom: 12px;
    }

    .cible-card ul li {
      font-size: 0.88rem;
      color: var(--bs-body-color);
      padding: 4px 0 4px 16px;
      position: relative;
      border-bottom: 1px solid var(--color-quaternary);
    }
    .cible-card ul li:last-child { border-bottom: none; }
    .cible-card ul li::before {
      content: '›';
      position: absolute; left: 0;
      color: var(--quaternary-color);
      font-weight: 700;
    }

    /* ─────────────────────────────────────────
       SERVICES
    ───────────────────────────────────────── */
    .services { background: var(--dark-color); padding: 80px 0; }
    .services .tag { color: var(--primary-color); }
    .services .section-title { color: var(--white-color); }
    .services .section-lead { color: rgba(255,255,255,0.55); }
    .services .divider { background: linear-gradient(90deg, var(--primary-color), var(--quaternary-color)); }

    .services-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
    }

    .service-block {
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-card);
      padding: 36px 32px;
    }

    .service-block-title {
      font-family: var(--heading-font);
      font-size: 1.6rem;
      font-weight: 700;
      color: var(--white-color);
      margin-bottom: 24px;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .service-block-title span.badge-icon {
      width: 36px; height: 36px;
      border-radius: 10px;
      background: linear-gradient(135deg, var(--primary-color), var(--quaternary-color));
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 1.1rem;
      flex-shrink: 0;
    }

    .service-sub {
      font-family: var(--heading-font);
      font-size: 1.1rem;
      font-weight: 600;
      color: var(--primary-color);
      margin: 20px 0 8px;
    }
    .service-sub:first-of-type { margin-top: 0; }

    .service-block ul li {
      font-size: 0.9rem;
      color: rgba(255,255,255,0.70);
      padding: 5px 0 5px 20px;
      position: relative;
    }
    .service-block ul li::before {
      content: '';
      position: absolute;
      left: 0; top: 12px;
      width: 7px; height: 7px;
      border-radius: 50%;
      background: var(--quaternary-color);
      opacity: .7;
    }

    /* ─────────────────────────────────────────
       POURQUOI EXTERNALISER
    ───────────────────────────────────────── */
    .why { background: var(--primary-bg); }

    .why-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }

    .why-card {
      background: var(--white-color);
      border-radius: var(--radius-card);
      padding: 32px 26px;
      box-shadow: var(--shadow-card);
      position: relative;
      overflow: hidden;
    }
    .why-card::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--primary-color), var(--quaternary-color));
    }

    .why-card .why-num {
      font-family: var(--heading-font);
      font-size: 3.5rem;
      font-weight: 700;
      color: rgba(var(--bs-primary-rgb), 0.12);
      line-height: 1;
      margin-bottom: 6px;
    }

    .why-card h3 {
      font-family: var(--heading-font);
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--dark-color);
      margin-bottom: 10px;
    }

    .why-card p, .why-card ul li {
      font-size: 0.9rem;
      color: var(--bs-body-color);
    }
    .why-card ul li {
      padding: 3px 0 3px 16px;
      position: relative;
    }
    .why-card ul li::before {
      content: '–';
      position: absolute; left: 0;
      color: var(--primary-color);
    }

    .why-row2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      margin-top: 24px;
    }

    /* ─────────────────────────────────────────
       POURQUOI NOUS
    ───────────────────────────────────────── */
    .whyus { background: var(--white-color); }

    .whyus-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      align-items: center;
    }

    .whyus-left .section-title { margin-bottom: 6px; }

    .whyus-checklist {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px 24px;
      margin-top: 8px;
    }

    .whyus-checklist li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: 0.93rem;
      color: var(--bs-body-color);
      font-weight: 500;
    }
    .whyus-checklist li::before {
      content: '';
      flex-shrink: 0;
      width: 20px; height: 20px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--primary-color), var(--quaternary-color));
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3E%3Cpath d='M13.485 1.431a1.473 1.473 0 0 0-2.084 0l-6.522 6.53-2.502-2.503a1.473 1.473 0 0 0-2.083 2.083l3.543 3.543c.28.281.664.438 1.063.433.398-.04.775-.218 1.050-.493l7.536-7.536a1.473 1.473 0 0 0 0-2.057z'/%3E%3C/svg%3E");
      background-size: 11px;
      background-repeat: no-repeat;
      background-position: center;
      margin-top: 1px;
    }

    .whyus-right {
      background: var(--primary-bg);
      border-radius: var(--radius-card);
      padding: 36px 32px;
      box-shadow: var(--shadow-card);
    }
    .whyus-right h3 {
      font-family: var(--heading-font);
      font-size: 1.5rem;
      font-weight: 700;
      color: var(--dark-color);
      margin-bottom: 16px;
    }
    .whyus-right p { font-size: 0.93rem; color: var(--bs-body-color); }

    /* ─────────────────────────────────────────
       ENGAGEMENT
    ───────────────────────────────────────── */
    .engagement { background: var(--color-quaternary); }

    .engagement-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
      margin-top: 8px;
    }

    .engagement-card {
      background: var(--white-color);
      border-radius: var(--radius-card);
      padding: 36px 32px;
      box-shadow: var(--shadow-card);
      text-align: center;
    }
    .engagement-card .eng-icon {
      font-size: 2.4rem;
      margin-bottom: 14px;
      display: block;
    }
    .engagement-card h3 {
      font-family: var(--heading-font);
      font-size: 1.35rem;
      font-weight: 700;
      color: var(--dark-color);
      margin-bottom: 10px;
    }
    .engagement-card p { font-size: 0.93rem; color: var(--bs-body-color); margin: 0; }

    .engagement-cta {
      background: var(--white-color);
      border-radius: var(--radius-card);
      box-shadow: var(--shadow-card);
      padding: 40px 48px;
      text-align: center;
      margin-top: 28px;
    }
    .engagement-cta p {
      font-family: var(--heading-font);
      font-size: 1.25rem;
      color: var(--dark-color);
      margin-bottom: 22px;
}
/***********/
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; }

/* ===== NEWS (Blog listing + cartes) — PROVISIONNEL Pass 2 ===== */
.blog-listing { padding: 0; }
.news-object.Item {
    background: var(--white-color);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    display: flex;
    flex-direction: column;
	margin: 0 0 30px;
}
.img-responsive.img-news {
    max-width: 200px;
    max-height: 180px;
    border-radius: 20px 0;
}
.clearfix {
    clear: both;
}
/* ===== SECTION PICTOS EXPÉRIENCE ===== */
.pictos-experience {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 30px 0;
}

.pictos-experience .picto-item {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  flex: 1 1 45%;
  min-width: 250px;
  background: #f9f7f3;
  border-left: 4px solid #7c63a1;
  border-radius: 6px;
  padding: 18px 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  transition: box-shadow 0.2s ease;
}

.pictos-experience .picto-item:hover {
  box-shadow: 0 4px 16px rgba(139,105,20,0.15);
}

.pictos-experience .picto-item i {
  font-size: 2em;
  color: #7c63a1;
  margin-top: 3px;
  flex-shrink: 0;
  width: 36px;
  text-align: center;
}

.pictos-experience .picto-item p {
  margin: 0;
  font-size: 0.95em;
  line-height: 1.5;
  color: #333;
}

/* ===== SECTION PICTOS POUR QUI ? ===== */
.pictos-pourqui {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 20px 0;
}

.pictos-pourqui .picto-item {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px 20px;
  background: #f9f7f3;
  border-radius: 6px;
  border-left: 4px solid #7c63a1;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.pictos-pourqui .picto-item:hover {
  background: #f2ede2;
  box-shadow: 0 4px 14px rgba(139,105,20,0.12);
}

.pictos-pourqui .picto-item i {
  font-size: 1.6em;
  color: #7c63a1;
  flex-shrink: 0;
  width: 36px;
  text-align: center;
}

.pictos-pourqui .picto-item p {
  margin: 0;
  font-size: 0.95em;
  line-height: 1.4;
  color: #333;
}
/* ===== SECTION PICTOS EXPÉRIENCE ===== */
.pictos-experience {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 30px 0;
}

/* ===== SECTION PICTOS POUR QUI ===== */
.pictos-pourqui {
    display: flex;
    flex-direction: inherit;
    gap: 15px;
    margin: 20px 0;
    flex-wrap: wrap;
}

.pictos-pourqui .picto-item {
    width: 30%;
}
/* ===== PICTO ITEM (commun aux deux sections) ===== */
.picto-item {
  display: flex;
  gap: 15px;
}

/* Picto-item dans .pictos-experience */
.pictos-experience .picto-item {
  align-items: flex-start;
  flex: 1 1 45%;
  min-width: 250px;
}

/* Picto-item dans .pictos-pourqui */
.pictos-pourqui .picto-item {
  align-items: center;
}

/* ===== ICÔNES ===== */
/* Icônes dans .pictos-experience */
.pictos-experience .picto-item i {
  font-size: 2em;
  color: #7c63a1;
  margin-top: 5px;
  flex-shrink: 0;
}

/* Icônes dans .pictos-pourqui */
.pictos-pourqui .picto-item i {
  font-size: 1.8em;
  color: #7c63a1;
  flex-shrink: 0;
  width: 40px;
  text-align: center;
}

/* ===== PARAGRAPHES DANS LES PICTO-ITEMS ===== */
.picto-item p {
  margin: 0;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
  .pictos-experience .picto-item {
    flex: 1 1 100%;
  }
}
.news-object .photo img,
.news-object .nophoto img { width: 100%; height: 220px; object-fit: cover;    border-radius: 0; }
.news-object .news-desc { padding: 20px; }
.news-object h3 { font-size: 22px; line-height: 1.15; }
.news-object .read-more a {
    display: inline-flex;  margin-top: 10px;
}
.news-object.Item span.news-abstract {
    display: block;
}
/* === NEWS NOPHOTO FALLBACK — Rule 23 === */
.news-object .nophoto {
    display: flex; align-items: center; justify-content: center;
    background: var(--bs-dark); min-height: 220px; overflow: hidden;
}
.news-object .nophoto img {
    object-fit: scale-down; padding: 10px; max-width: 60%; max-height: 80%;
    opacity: .6; 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 après reorder JS (Rule 22/23) */
.news-object .news-body-desc .date,
.news-object .news-desc .date {
    display: block; margin-bottom: 8px; font-size: .875rem;
    color: var(--quaternary-color); font-weight: 500; text-transform: uppercase; letter-spacing: .05em;
}

/* ===== NEWS DETAIL ===== */
.news-detail { position: relative; }
.news-detail .news-hero-img img {
    max-width: 45%; border-radius: var(--radius-card); margin-bottom: 1rem;
}
.news-detail .news-date { color: var(--quaternary-color); font-size: 14px; }
.btn-back {
    display: inline-flex; margin-top: 30px; color: var(--white-color);
    background: var(--dark-color); padding: 12px 24px; border-radius: var(--radius-btn);
}
.btn-back:hover { background: var(--quaternary-color); color: var(--white-color); }

/* ===== Contact info / map ===== */
.map-container {  width: 100%; border-radius: 12px; overflow: hidden; }
.box-contact-info h5 { color: var(--dark-color); }

/*------------------------------------------------------------------
# Divers (bloc OBLIGATOIRE client)
------------------------------------------------------------------*/
.fa-facebook::before { content: "\f39e" !important; }
.p-absolute { position: absolute !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(--bs-body-bg) !important; }



/* ========================================
   ACCORDION - couleurs & fonts du site
   ======================================== */

 .accordion-header {
    margin-bottom: 10px;
}
/* Item accordion */
.accordion-item {
  background-color: var(--white-color);
  border: none;
  border-top: 1px solid rgba(53, 28, 68, 0.15);
}

.accordion-item:last-child {
  border-bottom: 1px solid rgba(53, 28, 68, 0.15);
}

/* Bouton header */
.accordion-button {
  background-color: var(--primary-color);
  color: var(--white-color);
  font-family: var(--heading-font);
  font-size: 1.2rem;
  font-weight: 600;
  padding: 1.2rem 1.5rem;
  box-shadow: none;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.accordion-button h3 {
  font-family: var(--heading-font);
  font-size: 25px; 
  color: inherit;
  margin: 0;
}

/* Bouton ouvert (actif) */
.accordion-button:not(.collapsed) {
  background-color: var(--primary-bg);
  color: var(--dark-color);
  box-shadow: none;
}
 

/* Hover sur le bouton */
.accordion-button:hover {
  background-color: var(--primary-bg);
  color: var(--quaternary-color);
}

/* Corps du contenu */
.accordion-body {
  background-color: var(--primary-bg);
  color: var(--bs-body-color);
  font-family: var(--bs-body-font-family);
  font-size: 15px;
  line-height: 24px;
  padding: 1rem 1.5rem 1.5rem;
}

/* Focus sans outline bleu */
.accordion-button:focus {
  box-shadow: none;
  border-color: transparent;
}
/*------------------------------------------------------------------
# BLOC 4 — FINISHING : responsive + accessibilité
------------------------------------------------------------------*/
@media (max-height: 700px) {
  .banner-overlay-box{
    padding: 30px 106px 30px;
    min-height: 370px;
  }
  a.banner-logo {
    max-width: 200px;
}
  .banner-box-content h1, .banner-box-content h2, .banner-box-content .slogan, .banner-box-content p:first-of-type{
        font-size: 30px;
    line-height: 1.2em;
  }
}
@media (prefers-reduced-motion: reduce) {
    .deco-badge { animation: none; }
    * { scroll-behavior: auto !important; }
}
@media (max-width: 1600px) {
	.container-fluid {
	max-width: 1380px;
}
.banner-overlay-box {
  left: calc((100vw - 1365px) / 2);
}
.sec-presentation .presentation-media .pm-float {
  right: -60px;
}
.badge-home {
	right: -68px;
}
  .sf-menu > li > a {
    letter-spacing: 0;
}
}
@media (max-width: 1400px) {
	.sf-menu > li > a {
	letter-spacing: 0;
          font-size: 15px;
}
.banner-overlay-box {
	left: 15px;
}
.sec-presentation .presentation-media .pm-float {
	right: -10px;
	width: 284px;
	height: 286px;
}
 .badge-home {
    right: 62px;
    top: -100px;
  }
  
}
/* >=1200 → 992 */
@media (max-width: 1199.98px) {
.banner-overlay-box {
	width: min(480px, 82%);
	padding: 60px 30px;
	min-height: auto;
}
.banner-wave, .sec-contact-home::after {
  height: 72px;
}
    h1, .sec-presentation .presentation-content h2 { font-size: 48px; }
	.sf-menu > li > a {
letter-spacing: 0;
    font-size: 13px;
    text-align: center;
    line-height: 1.2em;
}
.sec-presentation, .sec-boxes, footer.bottom {
  padding: 60px 0;
}
.bx-home .img-box {
	height: 420px;
}
.badge-home {
	right: 11px;
	top: -57px;
	width: 100px;
	height: 100px;
	background-size: 30px;
}
.badge-home::before {
	background-size: contain;
}
.sec-presentation .presentation-content h2, .sec-presentation .presentation-content h1 {
	font-size: 55px;
	line-height: 1.02;
	letter-spacing: 0.3px;
	margin: 0 0 25px;
}
.sec-presentation .presentation-wrapper {
	gap: 40px;
}
.sec-contact-home {
  padding: 120px 0 60px;
}
.deco-badge-contact.badge-home {
	left: 24%;
	top: 49px;
}
.contact-glass {
  padding: 50px 68px;
}
.footer-grid {
	text-align: center;
}
.footer-info-item {
	flex-direction: column;
	margin: 15px 0;
}
footer .footer-rs {
	justify-content: center;
}
.footer-menu .sf-menu-footer {
	text-align: center;
	margin: 20px auto 0 !important;
	display: table;
}
.footer-menu .sf-menu-footer li a {;
	font-size: 15px;
	letter-spacing: 0.6px;
	padding: 5px 0 !important;
	justify-content: center;
}
.footer-menu .sf-menu-footer li a:before {
	display:none;
}
}

/* Tablette */
@media (max-width: 991.98px) {
  .grid-block {
    
    grid-template-columns: 1fr 1fr;
   
}img.image-personal {
    max-width: 410px;
    margin: 0 auto;
    display: table;
}
    /* Nav verticale UNIQUEMENT sur mobile (Rule 1) */
    .navbar .sf-menu, .navbar .navbar-nav { flex-direction: column !important; align-items: center; }
    .navbar .navbar-collapse {
	background: var(--dark-color);
	padding: 16px;
	border-radius: 0;
	position: absolute;
	left: 0;
	width: 100%;
	top: 100%;
	margin-top: 1px;
}
.page-content .row.mb-4 .photo {
	max-height: 350px;
	margin: 0 0 25px;
}
.pictos-pourqui .picto-item {
	width: 48%;
}
    .sf-menu ul { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; }
    .navbar .lang-nav { flex-wrap: wrap; }

    .banner.big { height: 640px; }
  .banner-overlay-box {
	left: 50%;
	transform: translate(-50%, -50%);
	width: 60%;
	padding: 40px 15px;
}
.banner-box-content h1, .banner-box-content h2, .banner-box-content .slogan, .banner-box-content p:first-of-type {
	font-size: 36px;
	line-height: 1.2em;
}
 .banner-wave, .sec-contact-home::after {
    height: 42px;
  }
  .sec-presentation .presentation-text {
	flex: inherit;
	padding: 0;
}
    .sec-presentation .presentation-content h2,
    .sec-presentation .presentation-content h1 { font-size: 40px; }
    .contact-glass { padding: 40px 28px; }
    .contact-glass form { grid-template-columns: 1fr; }
    .footer-grid { gap: 30px; }
	 .sec-presentation .presentation-wrapper {
    gap: 70px;
  }
  .badge-home {
	right: 50%;
	transform: translateX(50%);
}
.deco-badge-contact.badge-home {
	left: 50%;
	transform: translateX(-50%);
}
.page-content .row.mb-4 .photo {
	height: 350px;
}
  .navbar.sticky-top{
    padding:20px 0!important;
  }
  .box-border-left ul {
    margin-bottom: 0;
}
  
}
@media (max-width: 767px) {
  .grid-block.g2 {
    grid-template-columns: 1fr;
}
  .box-light.box{
    height:auto!important;
    min-height:inherit!important;
  }
  .page-content .photo, .page-content .photo {
    margin-bottom:20px;
  }
   .grid-block,.grid-block.grid-block2 {
    
    grid-template-columns: 1fr ;
   
}
  .grid-block.service .box-light {
    
    width: 100%;
}
  
  
.banner-box-content h1, .banner-box-content h2, .banner-box-content .slogan, .banner-box-content p:first-of-type {
	font-size: 26px;
}
.banner-overlay-box {
	width: 76%;
}
.sec-presentation .presentation-media .pm-main {
	border-radius: 0 20px 0 30px;
}

    h1, .sec-presentation .presentation-content h2 { font-size: 34px; }
	h2 {font-size: 28px;}
    .banner.big { height: 560px; }
    .banner-overlay-box { padding: 36px 24px; min-height: auto; }
    .banner-box-content h1, .banner-box-content h2 { font-size: 30px; line-height: 38px; }
    .contact-glass { border-radius: 0 50px 0 50px; }
    .news-object.Item, .news-col { max-width: 100%; }
    .deco-badge { width: 110px; height: 110px; top: -10px; }
    .footer-menu .sf-menu-footer { grid-template-columns: 1fr; }
    .news-detail .news-hero-img img { max-width: 100%; float: none !important; }
	.banner.small {
	height: 400px;
}
.banner.small .banner-wave {
	height: 34px;
}
.pictos-pourqui .picto-item {
	width: 100%;
}
  .img-responsive.img-news {
	max-width: 200px;
	max-height: 180px;
	border-radius: 20px 0;
	margin: 0 auto !important;
	display: block;
}
}
@media (max-width: 480px) {
.banner-overlay-box {
	width: auto;
	left: 15px;
	right: 15px;
	transform: translateY(-50%);
	padding: 25px 15px;
}
.banner-box-content h2, .banner-box-content .slogan, .banner-box-content p:first-of-type {
	font-size: 23px;
	letter-spacing: 0;
}
.btn, .contact-submit button, .contact-form .btn, .banner-box-content .btn, button[type="submit"] {
	letter-spacing: 0;
	padding: 13px 20px;
}
.sec-presentation .presentation-content h2, .sec-presentation .presentation-content h1 {
	font-size: 31px;
	letter-spacing: 0;
}
.bx-home .bx-content {
	gap: 20px;
	flex-direction: column;
}
  .contact-glass {
    border-radius: 0 10px 0 10px;
    padding: 30px 12px;
  }
  .contact-glass::before {
	border-radius: 0 20px 0 20px;
}
.contact-glass .contact-title {
	font-size: 25px;
	line-height: 1.1em;
	letter-spacing: 0;
}
}