/* =======================
   COOSSI — Design System
   ======================= */
:root{
  --primary:#dc3545;        /* rouge COOSSI */
  --primary-2:#b02a37;
  --secondary:#6c757d;
  --dark:#212529;
  --muted:#adb5bd;
  --light:#f8f9fa;
  --white:#fff;
  --radius:14px;
  --shadow-sm:0 6px 18px rgba(0,0,0,.08);
  --shadow-md:0 14px 34px rgba(0,0,0,.10);
  --shadow-lg:0 20px 48px rgba(0,0,0,.14);
}

html,body{height:100%}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;color:#111;background:#fff}

/* Bootstrap tuning */
.navbar{box-shadow:0 2px 10px rgba(0,0,0,.06); background:#fff !important;}
.navbar-brand{font-weight:800; letter-spacing:.2px}
.nav-link{color:#333}
.nav-link.active{color:var(--primary); text-decoration:underline; text-underline-offset:4px}

/* Dropdown "Prestations" : survol sur desktop, accordéon statique en mobile */
.navbar .dropdown-menu{border-radius:10px; box-shadow:var(--shadow-md); border:0; padding:.5rem}
.navbar .dropdown-item{border-radius:6px; padding:.5rem .75rem}
.navbar .dropdown-item:hover, .navbar .dropdown-item:focus{background:var(--light); color:var(--primary)}
.navbar .dropdown-item i{color:var(--primary); width:1.1em; text-align:center}

@media (min-width:992px){
  .navbar .nav-item.dropdown{position:relative}
  .navbar .dropdown-menu{display:block; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .15s ease, transform .15s ease, visibility .15s; margin-top:0}
  .navbar .nav-item.dropdown:hover > .dropdown-menu,
  .navbar .nav-item.dropdown:focus-within > .dropdown-menu{opacity:1; visibility:visible; transform:translateY(0)}
}

@media (max-width:991.98px){
  .navbar .dropdown-menu{display:block; position:static; box-shadow:none; padding-left:1rem}
}

.btn-primary{background:var(--primary);border-color:var(--primary)}
.btn-primary:hover{filter:brightness(.95)}
.btn-outline-danger{--bs-btn-color:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:var(--primary);--bs-btn-hover-border-color:var(--primary);}

/* Utilitaires spacing/rounded */
.section-padding{padding:72px 0}
.rounded-xl{border-radius:var(--radius)}
.shadow-smx{box-shadow:var(--shadow-sm)}
.shadow-mdx{box-shadow:var(--shadow-md)}
.shadow-lgx{box-shadow:var(--shadow-lg)}
.text-muted-2{color:var(--muted)}

/* =======================
   HERO / HEADER de page
   ======================= */
.hero-section,
.page-header{
  position:relative;
  color:#fff;
  padding:100px 0;
  /*border-radius:var(--radius);*/
  overflow:hidden;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
}
.hero-section::before,
.page-header::before{
  content:"";
  position:absolute; inset:0;
  /* motif léger SVG inline, pas d'asset externe */
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><defs><pattern id="p" width="24" height="24" patternUnits="userSpaceOnUse"><circle cx="2" cy="2" r="2" fill="rgba(255,255,255,0.06)"/></pattern></defs><rect width="100%" height="100%" fill="url(%23p)"/></svg>') repeat;
}
.hero-section .lead,
.page-header .lead{opacity:.95}
.hero-content{position:relative; z-index:1}


.hero-section:first-child {
  margin-top: 1rem; /* ajoute auto un espace si pas de breadcrumb au-dessus */
}

.badge.text-bg-light{background:#f1f3f5;color:#111;border:1px solid #e9ecef}
/* =======================
   CARTES PRESTATIONS
   ======================= */
.service-card{
  border:none; border-radius:var(--radius);
  background:#fff; height:100%;
  overflow:hidden; transition:transform .2s ease, box-shadow .25s ease;
  box-shadow:var(--shadow-sm);
}
.service-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.service-header{
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff; padding:28px 20px; text-align:center;
}
.service-icon{
  width:60px;height:60px;margin:0 auto 12px; border-radius:50%;
  background:rgba(255,255,255,.18); color:#fff; display:flex;align-items:center;justify-content:center; font-size:1.4rem;
}
.service-content{padding:22px 20px}
.service-content p{margin-bottom:18px}

/* =======================
   BLOCS EXPERTISE / PROCESS
   ======================= */
.expertise-section{background:var(--dark); color:#fff}
.expertise-item{text-align:center; padding:30px 16px}
.expertise-icon .expertise-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
}

.process-step{
  background:#fff; border-radius:var(--radius); padding:30px 22px; text-align:center; height:100%;
  box-shadow:var(--shadow-sm); transition:transform .2s ease
}
.process-step:hover{transform:translateY(-3px)}
.step-number{
  width:50px;height:50px;margin:0 auto 12px; border-radius:50%; background:var(--primary);
  color:#fff; display:flex;align-items:center;justify-content:center; font-weight:700
}

/* =======================
   CTA (bandeau)
   ======================= */
.cta-section{
  background:linear-gradient(135deg,var(--secondary),var(--dark)); color:#fff; border-radius:var(--radius);
}
/* Bouton principal (plein, fond rouge) */
.btn-custom {
  background: var(--primary);
  color: #fff;
}
.btn-custom:hover {
  background: #b31e2d; /* un rouge plus sombre au hover */
  color: #fff;
}

/* Bouton outline sombre (fond transparent par défaut) */
.btn-outline-dark:hover {
  color: #fff;
  background: #212529;
  border-color: #212529;
}

/* Bouton outline clair sur fond sombre */
.bg-dark .btn-outline-light:hover {
  color: var(--primary);
  background: #fff;
  border-color: #fff;
}
/* =======================
   RÉALISATIONS / TEMOIGNAGES
   ======================= */
.testimonial{
  background:#fff;border:1px solid #eee;border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-sm);
}
.testimonial .author{font-weight:700}
.stat-tile{
  background:var(--light); border-radius:var(--radius); padding:28px; text-align:center;
  box-shadow:var(--shadow-sm)
}

/* =======================
   SECTEURS / CONFIANCE
   ======================= */
/* .sector-card{
  background:#fff;border:1px solid #eee;border-radius:var(--radius);
  padding:24px;text-align:center; box-shadow:var(--shadow-sm)
}
.sector-card .title{font-weight:700; margin-top:8px} */
/* ===== Confiance — layout & header ===== */
.sector-section { --gap-y: 2.2rem; }
.sector-section .sector-header{ text-align:center; margin-bottom: calc(var(--gap-y) + .4rem); }
.sector-section .sector-header h3{
  font-weight:800; letter-spacing:.2px; margin-bottom:.25rem; color:#1f2b37;
}
.sector-section .sector-header p{ color:#8a97a6; margin:0; }

/* ===== Confiance — cards ===== */
.trust-card{
  height:100%;
  background:#fff;
  border:1px solid #eef1f5;
  border-radius:16px;
  padding:18px 16px;
  box-shadow:0 6px 18px rgba(31,43,55,.06);
  text-align:center;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.trust-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 24px rgba(31,43,55,.10);
  border-color:#e8ecf2;
}

/* icône ronde en tête */
.trust-card .client-logo{
  width:72px; height:72px; margin:2px auto 12px; border-radius:999px;
  background: radial-gradient(ellipse at 30% 30%, #fff, #f6f7f9);
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 6px 16px rgba(31,43,55,.08), inset 0 1px 0 #fff;
  color: var(--primary); font-size:1.55rem;
}

/* textes */
.trust-card .client-name{ font-weight:800; color:#1f2b37; margin-bottom:2px; }
.trust-card .client-sector{ font-size:.92rem; color:#8a97a6; margin-bottom:6px; }

/* accroche rouge */
.trust-card .mission-highlight{
  font-size:.93rem; font-weight:600; color:var(--primary);
  margin-top:4px;
}

/* ===== Confiance — grille & respirations ===== */
.sector-section .row.g-4 { row-gap: var(--gap-y); }
.stats-section.section-padding { padding-top: 48px; padding-bottom: 28px; }

/* ===== Responsif ===== */
@media (max-width: 1199.98px){
  .trust-card{ padding:16px 14px; }
  .trust-card .client-logo{ width:68px; height:68px; font-size:1.45rem; }
}
@media (max-width: 575.98px){
  .sector-section .sector-header{ margin-bottom:1.4rem; }
  .trust-card{ padding:14px; }
  .trust-card .client-logo{ width:64px; height:64px; font-size:1.35rem; }
}
/* =======================
   CONTACT
   ======================= */
.contact-card{
  border:1px solid #eee;border-radius:var(--radius); padding:22px; background:#fff; box-shadow:var(--shadow-sm)
}
.form-control, .form-select{border-radius:12px}
input::placeholder, textarea::placeholder{color:#999}

/* =======================
   FOOTER
   ======================= */
footer{background:var(--dark); color:#fff}
.footer-link{color:var(--muted); text-decoration:none}
.footer-link:hover{color:var(--primary)}


/* Badges nuage */
.badge.text-bg-light{background:#f1f3f5;color:#111;border:1px solid #e9ecef}
.badge-red{background:var(--primary); color:#fff; border:1px solid transparent; font-weight:800;}


/* Mentions légales */
.legal-section{background:#fff;border-radius:10px;padding:32px;box-shadow:0 10px 30px rgba(0,0,0,.08);border:1px solid #eee}
.legal-section h2{color:var(--primary);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--light)}
.info-box{background:var(--light);border-left:4px solid var(--primary);border-radius:6px;padding:18px}
.alert-info{background:rgba(220,53,69,.08);border:1px solid rgba(220,53,69,.25);border-radius:8px;padding:18px}
.contact-info{background:linear-gradient(135deg,var(--secondary),var(--dark));color:#fff;border-radius:10px;padding:20px}
.contact-info a{color:#fff;text-decoration:underline}


/* =======================
   PRESTATIONS (Services)
   ======================= */
.service-section h2 { line-height:1.15; }
.service-section .text-seo { opacity:.95; }

.technical-specs { margin-top:8px; }
.technical-specs .feature-list { margin:0; padding-left:1.15rem; }
.technical-specs .feature-list li { margin:6px 0; }

.zone-tag{
  display:inline-block; padding:.25rem .55rem; border-radius:999px;
  font-size:.85rem; font-weight:700; letter-spacing:.3px;
  color:var(--primary); background:#fff; border:1px solid rgba(220,53,69,.25);
}

.regulation-box{
  background:#fff; border:1px solid #eee; border-radius:var(--radius);
  padding:20px; box-shadow:var(--shadow-sm); display:inline-block; min-width:60%;
}

/* anchor offset quand on clique sur #id */
.service-section h2, .legal-section h2 { scroll-margin-top:120px; }

/* =======================
   RÉALISATIONS (Références)
   ======================= */
.stats-section .stat-item{
  background:#fff; border:1px solid #eee; border-radius:var(--radius);
  text-align:center; padding:28px 18px; box-shadow:var(--shadow-sm);
}
.stats-section .stat-number{
  display:block; font-size:2.25rem; font-weight:800; color:var(--primary);
  line-height:1; margin-bottom:6px;
}

.testimonial-card{
  background:#fff; border:1px solid #eee; border-radius:var(--radius);
  padding:22px; height:100%; box-shadow:var(--shadow-sm); position:relative;
}
.testimonial-card .rating-stars{ color:#f7b500; margin-bottom:8px; }
.testimonial-card .testimonial-content p{ margin-bottom:14px; }
.testimonial-card .client-name{ font-weight:700; }
.testimonial-card .client-company{ color:var(--muted); font-size:.95rem; }

.mission-card{
  background:#fff; border:1px solid #eee; border-radius:var(--radius);
  padding:20px; box-shadow:var(--shadow-sm);
}
.mission-card .mission-type{
  display:inline-block; margin-bottom:8px; font-size:.85rem; font-weight:700;
  color:#fff; background:var(--primary); border-radius:999px; padding:.25rem .6rem;
}

.geographic-coverage{
  background:#fff; border:1px solid #eee; border-radius:var(--radius);
  padding:22px; text-align:center; box-shadow:var(--shadow-sm)
}
.geographic-coverage i{ color:var(--primary); }

/* =======================
   BOUTONS & UTILITAIRES
   ======================= */
.btn-custom{ background:var(--primary); color:#fff; }
.btn-custom:hover{ color:#fff; }
.btn-outline-dark:hover{ color:#fff; background:#212529; border-color:#212529; }

/* =======================
   RESPONSIVE
   ======================= */
@media (max-width: 991.98px){
  .section-padding{ padding:56px 0; }
  .page-header, .hero-section{ padding:80px 0; }
  .service-section .regulation-box{ min-width:unset; width:100%; }
}

@media (max-width: 575.98px){
  .stats-section .stat-number{ font-size:1.85rem; }
  .testimonial-card{ padding:18px; }
  .mission-card{ padding:18px; }
}

/* =======================
   CONTRASTES & ACCESSIBILITÉ
   ======================= */
.bg-dark .btn-outline-light:hover{ color:var(--primary); background:#fff; border-color:#fff; }
.bg-dark .lead{ color:#e9ecef; }



/* =======================
   CONFIANCE (Ils nous font confiance)
   ======================= */
.trust-intro { max-width:800px; margin:0 auto; text-align:center; }
.trust-intro h2 { color:var(--primary); }

.sector-section .sector-header{ text-align:center; margin-bottom:32px; }
.sector-section .sector-header h3{
  font-weight:700; margin-bottom:10px; color:var(--dark);
}
.sector-section .sector-header p{ color:var(--muted); }

.client-logo{
  width:80px;height:80px;margin:0 auto 12px;border-radius:50%;
  background:var(--light); display:flex;align-items:center;justify-content:center;
  font-size:1.8rem; color:var(--primary); box-shadow:var(--shadow-sm);
}
.client-name{ font-weight:700; margin-bottom:4px; }
.client-sector{ font-size:.9rem; color:var(--muted); margin-bottom:6px; }
.mission-highlight{ font-size:.9rem; font-weight:500; color:var(--primary); }

.partnership-badge{
  background:#fff; border:1px solid #eee; border-radius:var(--radius);
  padding:24px; text-align:center; box-shadow:var(--shadow-sm);
}
.partnership-badge i{ color:var(--primary); }
.partnership-badge h5{ margin-top:8px; }

/* =======================
   CONTACT
   ======================= */
.contact-highlight,
.urgency-contact,
.service-hours{
  border-radius:var(--radius); padding:28px; color:#fff; text-align:center;
  box-shadow:var(--shadow-sm);
}
.contact-highlight{ background:var(--primary); }
.urgency-contact{ background:#ffc107; color:#212529; }
.service-hours{ background:#212529; }

.contact-card .contact-icon{
  width:60px;height:60px;margin:0 auto 12px;border-radius:50%;
  background:var(--light); display:flex;align-items:center;justify-content:center;
  font-size:1.4rem; color:var(--primary);
}

.contact-form{ background:#fff; border:1px solid #eee; border-radius:var(--radius); padding:28px; box-shadow:var(--shadow-sm); }
.contact-form h3 i{ color:var(--primary); }

.map-container .map-placeholder{
  background:var(--light); border:1px dashed var(--muted); border-radius:var(--radius);
  padding:30px; color:var(--muted);
}

.zone-intervention{
  background:#fff; border:1px solid #eee; border-radius:var(--radius);
  padding:24px; box-shadow:var(--shadow-sm);
}
.zone-intervention h5{ margin-bottom:12px; }

.accordion .accordion-button{
  font-weight:600; color:var(--dark);
}
.accordion .accordion-button:not(.collapsed){
  background:rgba(220,53,69,.08); color:var(--primary);
}
.accordion .accordion-body{ font-size:.95rem; color:#333; }

/* =======================
   RESPONSIVE (Confiance & Contact)
   ======================= */
@media (max-width: 991.98px){
  .contact-highlight, .urgency-contact, .service-hours{ padding:20px; }
}


/* === CONFIANCE : styles conformes au HTML statique === */

/* header rouge par secteur */
.sector-section { margin-bottom: 0; }
.sector-section .sector-header{
  background: var(--primary);
  color: #fff;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 30px;
  text-align: center;
}
.sector-section .sector-header h3{ margin-bottom: 10px; }
.sector-section .sector-header p{ margin-bottom: 0; opacity: .9; }

/* vignette logo client (tuile rectangulaire) */
.client-logo{
  background: #fff;
  border-radius: 10px;
  padding: 30px 20px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.08);
  height: 150px;
  display: flex; align-items: center; justify-content: center;
  transition: all .3s ease;
  margin-bottom: 30px;
  border: 1px solid #dee2e6;
}
.client-logo i{ font-size: 3rem; color: var(--primary); }
.client-logo:hover{
  transform: translateY(-5px);
  box-shadow: 0 15px 30px rgba(220, 53, 69, 0.15);
  border-color: var(--primary);
}

.client-name{ font-weight: 700; color: var(--dark); text-align:center; margin-top:10px; font-size:1.1rem; }
.client-sector{ color: var(--secondary); text-align:center; font-size:.9rem; }
.mission-highlight{
  background: rgba(220,53,69,.1);
  border: 1px solid rgba(220,53,69,.3);
  border-radius: 8px;
  padding: 15px;
  margin-top: 10px;
  font-size: .9rem;
  text-align: center;
}

/* stats sur fond sombre */
.trust-page .stats-section{ background: var(--dark); color: #fff; }
.trust-page .stats-section .stat-item{
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 40px 20px;
}
.trust-page .stats-section .stat-number{
  font-size: 3rem; font-weight: 800; color: var(--primary);
}
.trust-page .stats-section h5{ color: #fff; }



/* --- Confiance : forcer le texte en BLANC dans la bannière rouge --- */
.sector-section .sector-header { color:#fff !important; }
.sector-section .sector-header h3,
.sector-section .sector-header p {
  color:#fff !important;
  opacity: 0.95; /* comme sur ton statique */
}

/* --- Vignettes clients : un peu plus larges/visuelles --- */
.client-logo{
  height: 180px;                 /* + de présence */
  padding: 32px 26px;            /* + de largeur visuelle */
  border-radius: 12px;
}
.client-logo i{ font-size: 3.4rem; }

/* --- Encarts "mission-highlight" : occuper toute la largeur de la colonne --- */
.mission-highlight{
  display:block;                 /* prend 100% de la largeur dispo */
  width:100%;
  padding: 16px 18px;
  border-radius: 10px;
  font-weight: 600;
}

/* Optionnel : réduire un peu l'écart sous la bannière pour compacter */
.sector-section .sector-header { margin-bottom: 24px; }

/* === Ajustement largeur des cadres (confiance) === */
.client-logo {
  width: 100%;                /* occupe toute la largeur dispo de la colonne */
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #dee2e6;
  box-shadow: 0 5px 15px rgba(0,0,0,0.08);
  transition: all .3s ease;
}

.client-logo i {
  font-size: 3rem;
  color: var(--primary);
}

.client-logo:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(220,53,69,0.15);
  border-color: var(--primary);
}


/* Boutons dans la hero section */
.hero-section .btn-outline-custom {
  color: #fff;                /* texte blanc */
  border: 2px solid #fff;     /* contour blanc */
}

.hero-section .btn-outline-custom:hover {
  background: #fff;
  color: var(--primary);      /* au hover : texte rouge */
}


.content-section { padding: 60px 0; }
.section-title { font-size: 2rem; font-weight: 700; color: var(--dark, #212529); margin-bottom: 2rem; position: relative; padding-bottom: 1rem; }
.section-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 60px; height: 3px; background-color: var(--primary, #dc3545); }
.info-card { background:#fff; border-radius:10px; padding:2rem; margin-bottom:2rem; box-shadow:0 4px 15px rgba(0,0,0,.1); }
.info-card:hover { transform: translateY(-2px); box-shadow:0 8px 25px rgba(220,53,69,.2); transition:.3s; }
.info-card h3 { color: var(--primary, #dc3545); font-size:1.25rem; font-weight:700; margin-bottom:1rem; }
.info-card ul { list-style: none; padding-left: 0; }
.info-card ul li { padding:.5rem 0 .5rem 1.5rem; position:relative; }
.info-card ul li::before { content: "\f058"; font-family: "Font Awesome 6 Free"; font-weight:900; position:absolute; left:0; color: var(--primary, #dc3545); }
.highlight-box { background-color:#fff3cd; border-left:4px solid var(--primary,#dc3545); padding:1.5rem; border-radius:5px; }
.doc-type-badge { display:inline-block; padding:.5rem 1rem; background:var(--primary,#dc3545); color:#fff; border-radius:5px; font-weight:600; margin-bottom:1rem; }
.city-links { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1rem; }
.city-links a { background:#f8f9fa; color:#212529; padding:.5rem 1rem; border-radius:5px; text-decoration:none; transition:.2s; }
.city-links a:hover { background: var(--primary,#dc3545); color:#fff; }



        .number-badge {
            display: inline-block;
            width: 40px;
            height: 40px;
            background-color: var(--primary, #dc3545);
            color: white;
            border-radius: 50%;
            text-align: center;
            line-height: 40px;
            font-weight: bold;
            margin-right: 1rem;
        }






.content-section {
    background: white;
    border-radius: 10px;
    padding: 40px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    margin-bottom: 30px;
}

.phase-card {
    background: var(--light);
    border-left: 4px solid var(--primary);
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 25px;
    transition: transform 0.3s ease;
}

    .phase-card:hover {
        transform: translateX(5px);
    }

    .phase-card h4 {
        color: var(--primary);
        margin-bottom: 15px;
    }

.phase-icon {
    width: 50px;
    height: 50px;
    background: var(--primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.2rem;
    margin-bottom: 15px;
}

.mission-highlight {
    background: var(--dark);
    color: white;
    border-radius: 8px;
    padding: 25px;
    text-align: center;
    margin: 30px 0;
}

.cities-cloud {
    background: var(--light);
    border-radius: 10px;
    padding: 30px;
    text-align: center;
}

    .cities-cloud h3 {
        color: var(--primary);
        margin-bottom: 25px;
    }

.city-link {
    display: inline-block;
    background: white;
    color: var(--dark);
    padding: 8px 15px;
    margin: 4px;
    border-radius: 20px;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    transition: all 0.3s ease;
    border: 1px solid #dee2e6;
}

    .city-link:hover {
        background: var(--primary);
        color: white;
        border-color: var(--primary);
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(220, 53, 69, 0.3);
    }


/* =======================
   GRILLE EXPERTISE (Coordination SSI)
   ======================= */
.expertise-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.expertise-grid .expertise-item {
    background: #fff;
    border-radius: 10px;
    padding: 25px 20px;
    text-align: center;
    box-shadow: 0 6px 16px rgba(0,0,0,0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.expertise-grid .expertise-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(0,0,0,0.12);
}

    .expertise-grid .expertise-item i {
        display: block;
        font-size: 2rem;
        color: var(--primary);
        margin-bottom: 10px;
    }

    .expertise-item h6 {
        font-weight: 700;
        color: var(--dark);
        margin-bottom: 8px;
    }

    .expertise-item p {
        color: var(--secondary);
        font-size: 0.9rem;
        line-height: 1.4;
        margin: 0;
    }



.norm-badge {
    display: inline-block;
    padding: 0.3rem 0.8rem;
    background: #28a745;
    color: #fff;
    border-radius: 5px;
    font-size: 0.85rem;
    font-weight: 600;
    margin-right: 0.5rem;
    margin-bottom: 0.5rem;
}

.picto-box {
    background: #f8f9fa;
    border-radius: 10px;
    padding: 1.5rem;
    text-align: center;
    height: 100%;
    transition: all .3s ease;
}

    .picto-box:hover {
        background: #e9ecef;
        transform: translateY(-3px);
    }

.picto-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
}

/* =======================
   CAROUSEL TÉMOIGNAGES
   ======================= */
#testimonials-carousel {
  position: relative;
  padding: 0 50px 60px;
}
#testimonials-carousel .carousel-inner {
  overflow: visible;
}
#testimonials-carousel .carousel-item {
  transition: transform .5s ease-in-out;
}

/* Flèches prev/next stylisées */
.testimonials-control {
  width: 44px;
  height: 44px;
  background: var(--primary) !important;
  border-radius: 50%;
  opacity: 1;
  top: 50%;
  transform: translateY(calc(-50% - 30px)); /* compense le padding-bottom des indicateurs */
}
.testimonials-control:hover {
  background: var(--primary-2) !important;
}
.testimonials-control:focus {
  box-shadow: 0 0 0 3px rgba(220,53,69,.35);
}
.carousel-control-prev.testimonials-control { left: -6px; }
.carousel-control-next.testimonials-control { right: -6px; }
.testimonials-control i {
  color: #fff;
  font-size: 1rem;
}

/* Indicateurs positionnés en dessous */
.testimonials-indicators {
  position: relative;
  bottom: auto;
  margin-top: 28px;
  justify-content: center;
}
.testimonials-indicators button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--muted);
  border: none;
  margin: 0 5px;
  opacity: .5;
  transition: opacity .2s, background-color .2s;
}
.testimonials-indicators button.active {
  background-color: var(--primary);
  opacity: 1;
}

/* Mobile : 1 seule card visible par slide */
@media (max-width: 991.98px) {
  #testimonials-carousel { padding: 0 40px 50px; }
  .testimonial-extra { display: none; }
}
@media (max-width: 575.98px) {
  #testimonials-carousel { padding: 0 32px 45px; }
  .testimonials-control { width: 36px; height: 36px; }
  .testimonials-control i { font-size: .85rem; }
}

/* =======================
   DÉFILEMENT PRESTATAIRES
   ======================= */
.partners-marquee {
  overflow: hidden;
  position: relative;
  width: 100%;
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.partners-track {
  display: flex;
  gap: 24px;
  width: max-content;
  animation: partners-scroll 30s linear infinite;
}
.partners-marquee:hover .partners-track {
  animation-play-state: paused;
}
@keyframes partners-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.partner-card {
  flex: 0 0 220px;
  background: #fff;
  border: 1px solid #eee;
  border-radius: var(--radius);
  padding: 24px 18px;
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}
.partner-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.partner-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: var(--light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: var(--primary);
  box-shadow: var(--shadow-sm);
}
.partner-name {
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 4px;
}
.partner-desc {
  font-size: .88rem;
  color: var(--secondary);
  line-height: 1.35;
}

@media (max-width: 575.98px) {
  .partner-card { flex: 0 0 180px; padding: 18px 14px; }
  .partner-icon { width: 52px; height: 52px; font-size: 1.3rem; }
}
