:root {
    --main-color: #022845;
    --secondary-color: #9cb0ba;
    --orange-color: #e66123;
}


/*
  ####  ###### #    # ###### #####    ##   #
 #    # #      ##   # #      #    #  #  #  #
 #      #####  # #  # #####  #    # #    # #
 #  ### #      #  # # #      #####  ###### #
 #    # #      #   ## #      #   #  #    # #
  ####  ###### #    # ###### #    # #    # ######
*/

body {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    color: var(--main-color);
}

h2 {
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 30px;
}

.btn-sam {
    border: 3px solid var(--main-color);
    color: var(--main-color);
    border-radius: 0;
    font-weight: 900;
}

.btn-sam:hover {
    background: var(--main-color);
    color: #fff;
}

.perturbed .btn-sam {
    color: #fff;
    border-color: #fff;
}

.perturbed .btn-sam:hover {
    background: #fff;
    color: var(--main-color);
}

.perturbed a {
    color: #fff;
}

.bigger {
    font-size: 1.3em;
}

.bolder {
    font-weight: bolder;
}

.input-group>.input-group-prepend~.form-control {
    border-top-right-radius: .25rem;
    border-bottom-right-radius: .25rem;
}

.input-group>.form-control~.input-group-append>.input-group-text {
    border-top-right-radius: .25rem;
    border-bottom-right-radius: .25rem;
}


/*
 #    # ######   ##   #####
 #    # #       #  #  #    #
 ###### #####  #    # #    #
 #    # #      ###### #    #
 #    # #      #    # #    #
 #    # ###### #    # #####
*/


/*
 #    # ###### #    # #    #
 ##  ## #      ##   # #    #
 # ## # #####  # #  # #    #
 #    # #      #  # # #    #
 #    # #      #   ## #    #
 #    # ###### #    #  ####
*/

.navbar {
    background: transparent;
    text-transform: uppercase;
    font-weight: 900;
}

.navbar-toggler-icon {
    color: var(--orange-color);
}

.navbar .nav-link {
    color: var(--secondary-color);
}

.navbar .nav-link.active:before {
    content: "> ";
}

.entete {
    transition: 0.3s all;
    background: var(--main-color);
}


/*
  ####   ####  #    # ##### ###### #    # #    #
 #    # #    # ##   #   #   #      ##   # #    #
 #      #    # # #  #   #   #####  # #  # #    #
 #      #    # #  # #   #   #      #  # # #    #
 #    # #    # #   ##   #   #      #   ## #    #
  ####   ####  #    #   #   ###### #    #  ####
*/

h1 {
    font-weight: 300;
    text-transform: uppercase;
}

.perturbed {
    color: #fff;
}

#accueil {
    background: url('../images/vtc-chauffeur-prive-la-rochelle.jpg') no-repeat center;
    background-size: cover;
}

#chauffeur {
    background: var(--main-color);
}

#tarifs {
    background: var(--main-color);
}

fieldset {
    border: 2px solid var(--main-color);
    padding: 0 1.4em 1.4em 1.4em;
    margin: 0 0 1.5em 0;
    -webkit-box-shadow: 0px 0px 0px 0px #000;
    box-shadow: 0px 0px 0px 0px #000;
}

legend {
    font-size: 1.2em;
    font-weight: bold;
    text-align: center;
    width: auto;
    padding: 0 10px;
    border-bottom: none;
    text-transform: uppercase;
    font-weight: 900
}

.service-wrapper-image {
    background-size: cover;
    min-height: 400px;
}

@media(min-width: 576px) {
    .service-wrapper-image {
        min-height: 630px;
    }
}

.service-transport .service-wrapper-image {
    background-image: url('../images/vtc-toyota-proace-la-rochelle-mobile.jpg');
    background-position: right;
}

@media(min-width: 576px) {
    .service-transport .service-wrapper-image {
        background-image: url('../images/vtc-toyota-proace-la-rochelle.jpg');
        background-position: right;
    }
}

.service-equipements .service-wrapper-image {
    background-image: url('../images/interieur-vtc-toyota-proace-la-rochelle.jpg');
}

.service-disposition .service-wrapper-image {
    background-image: url('../images/transfert-aeroport-vtc-la-rochelle.jpg');
}

.service-reservation .service-wrapper-image {
    background-image: url('../images/chauffeur-prive-vtc-la-rochelle.jpg');
    background-position: right;
}

.service-wrapper-image h3 {
    color: #fff;
    text-align: center;
    text-transform: uppercase;
    position: absolute;
    bottom: 5px;
    left: 0;
    right: 0;
}

.service-wrapper-content {
    background: #eae9e9;
    padding: 20px;
}

.service-wrapper-content .btn-sam {
    border-color: var(--orange-color);
}

.service-wrapper-content .btn-sam:hover {
    background-color: var(--orange-color);
}

.service-content {
    padding: 30px;
    padding-top: 0;
}

.watermark {
    margin: 0;
    color: var(--main-color);
    text-transform: uppercase;
    font-size: 2.6rem;
    font-weight: 900;
}

.service {
    margin-bottom: 60px;
}

.main-color {
    color: var(--main-color);
}

.secondary-color {
    color: var(--secondary-color);
}

.orange-color {
    color: var(--orange-color);
}

.contact-entete {
    font-size: 1.5em;
}


/*
 ######  ####   ####  ##### ###### #####
 #      #    # #    #   #   #      #    #
 #####  #    # #    #   #   #####  #    #
 #      #    # #    #   #   #      #####
 #      #    # #    #   #   #      #   #
 #       ####   ####    #   ###### #    #
*/

footer {
    background: var(--main-color);
}

.custom-avis h5 {
    text-transform: uppercase;
}

g-review-stars {
    white-space: nowrap;
}

g-review-stars .empty {
    background-size: 14px 13px;
    height: 13px;
    top: 1px;
    width: 69px;
    background-repeat: repeat-x;
    display: inline-block;
    overflow: hidden;
    position: relative;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAQAAAAz1Zf0AAAAWklEQVR4AY3O0QbDQBCG0UNYQi0hhBJqr8Iy7/94vewYlp65/Ay//4WlLnQLt3BbeIRH5jBFPVMHmlHS0CRnSqdiT3GH1edb8RGmoy4GwrBhM4Qmebn8XDrwBW7xChrojlOZAAAAAElFTkSuQmCC)
}

g-review-stars .note {
    background-size: 14px 13px;
    height: 13px;
    top: 1px;
    background-repeat: repeat-x;
    display: block;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAYAAACZ3F9/AAAAcklEQVQoz2NgoDZ4Xij9nxxNASCNIJpUjQugGheQqvEBVOMDfIoSgPg9VCEh/B7F+UCOAhDvJ6AJJK+Ay/Z8HJryCfnNAIdGA0IaC3BonEBI4wakQIgH4vsEQxeqERYIAlC+AFKg4QwYByCuxyFXj56KAEHuodjGnEtTAAAAAElFTkSuQmCC)
}


/*
 #####  ######  ####  #####   ####  #    #  ####  # #    # ######
 #    # #      #      #    # #    # ##   # #      # #    # #
 #    # #####   ####  #    # #    # # #  #  ####  # #    # #####
 #####  #           # #####  #    # #  # #      # # #    # #
 #   #  #      #    # #      #    # #   ## #    # #  #  #  #
 #    # ######  ####  #       ####  #    #  ####  #   ##   ######
*/


/* Small devices (landscape phones, 576px and up) */

@media (min-width: 576px) {}


/* Medium devices (tablets, 768px and up) */

@media (min-width: 768px) {}


/* Large devices (desktops, 992px and up) */

@media (min-width: 992px) {
    h1 {
        font-size: 50px;
    }
    #accueil {
        min-height: 110vh;
        position: relative;
        background-attachment: fixed;
    }
    .accueil-content {
        position: absolute;
        bottom: 250px;
    }
    .vtc {
        position: relative;
    }
    .vtc:before {
        content: "";
        background: url('../images/fond-header-vtc-la-rochelle.png') no-repeat top left;
        height: 382px;
        position: absolute;
        width: auto;
        top: -250px;
        left: 0;
        right: 0;
    }
    #vtc {
        position: relative;
        top: -250px;
    }
    .navbar {
        background: transparent;
    }
    .navbar .nav-link {
        color: #fff;
    }
    .navbar .nav-link:hover {
        color: var(--orange-color);
    }
    /*.navbar .nav-link:hover,
  .navbar .nav-link.active{
    color:var(--orange-color);
  }*/
    .passed .navbar .nav-link:hover,
    .passed .navbar .nav-link.active {
        color: var(--secondary-color);
    }
    footer {
        background: url('../images/fond-pied-page-vtc-la-rochelle.png') no-repeat bottom center;
        height: 454px;
        display: flex;
        margin-top: -220px;
    }
    footer .container {
        align-self: flex-end;
    }
    .service-wrapper-content {
        min-height: 500px;
    }
    .entete.passed {
        background: var(--main-color);
    }
    .entete {
        background: transparent;
    }
    #chauffeur {
        background: url('../images/chauffeur-prive-la-rochelle-fond.jpg') center top;
        background-repeat: no-repeat;
    }
}

@media(min-width:2000px) {
    .vtc:before {
        content: "";
        background: url('../images/fond-header-vtc-v2.png') no-repeat top center;
        height: 382px;
        position: absolute;
        width: auto;
        top: -250px;
        left: 0;
        right: 0;
        background-size: cover;
    }
}

.chauffeur_mobile {
    background: url('../images/chauffeur-prive-la-rochelle-mobile.jpg') center top var(--main-color);
    height: 450px;
    background-size: cover;
}


/* Extra large devices (large desktops, 1200px and up) */

@media (min-width: 1200px) {
    #tarifs {
        background: url('../images/tarifs-vtc-la-rochelle.png') top center #fff;
        height: 700px;
        display: flex;
        margin-top: -120px;
        background-repeat: no-repeat;
    }
    #tarifs .container {
        align-self: flex-end;
    }
}

.wrapper {
    overflow-x: hidden;
}

/* (Ancien slider partenaires retire : remplace par le bandeau .partners-marquee.
   On NE force plus la hauteur globale des .slick-slide, sinon le carrousel
   d'avis est ecrase.) */

.logos img {
    /* object-fit: contain; */
    height: 80px;
}

@media(min-width:992px) {
    .logos img {
        height: 50px;
    }
}

.toit-mobile {
    position: absolute !important;
    top: -56% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

.col-toit {
    height: 30px !important;
}

.div-toit {
    height: unset !important;
    margin: 60px auto !important;
}

@media(min-width:768px) {
    .toit-mobile {
        position: absolute;
        left: -69px !important;
        top: 0 !important;
        transform: none !important;
    }
    .col-toit {
        height: 100% !important;
    }
    .div-toit {
        margin: 30px auto !important;
        display: flex;
        height: 111px !important;
        max-width: 990px;
        position: relative;
        padding: .75rem 1.25rem;
        margin-bottom: 1rem;
        border: 3px solid transparent;
        border-radius: .25rem;
        background-color: none;
        border-color: #eae9e9;
    }
}


/* ═══════════════════════════════════════════════════════════
   SAM DRIVE SERVICE — Améliorations design (surcharge propre)
═══════════════════════════════════════════════════════════ */

html { scroll-behavior: smooth; }

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: .1px;
    font-size: 16px;
}

/* ───────── Typographie (échelle harmonisée) ───────── */
h1 {
    font-weight: 700;
    letter-spacing: .3px;
    line-height: 1.15;
    font-size: clamp(1.85rem, 1.25rem + 2.6vw, 2.9rem);
}
h2 {
    font-weight: 700;
    letter-spacing: .3px;
    line-height: 1.28;
    margin-bottom: 30px;
    font-size: clamp(1.35rem, 1.05rem + 1.2vw, 1.85rem);
}
h2 .bigger { font-size: 1.05em; font-weight: 600; display: block; }
h3 { font-weight: 600; letter-spacing: .2px; line-height: 1.3; font-size: clamp(1.05rem, .95rem + .5vw, 1.25rem); }
p { line-height: 1.7; font-size: 1rem; }
.bolder { font-weight: 700 !important; }
.bigger { font-size: 1.2em; }
.contact-entete .bigger { font-size: 1.15em; }

/* Largeur de lecture confortable pour les intros centrées */
#vtc .col-12 > p.text-center,
#tarifs .col-12 > p {
    max-width: 740px;
    margin-left: auto;
    margin-right: auto;
}

/* ───────── Boutons ───────── */
.btn-sam {
    display: inline-block;
    border: 2px solid var(--main-color);
    color: var(--main-color);
    background: transparent;
    border-radius: 6px;
    font-weight: 600;
    letter-spacing: .04em;
    padding: 12px 32px;
    text-transform: uppercase;
    font-size: .82rem;
    line-height: 1.3;
    transition: background .22s ease, color .22s ease, border-color .22s ease, transform .15s ease, box-shadow .22s ease;
}
.btn-sam:hover {
    background: var(--main-color);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(2,40,69,.22);
    text-decoration: none;
}
.btn-sam-orange {
    border-color: var(--orange-color);
    background: var(--orange-color);
    color: #fff;
}
.btn-sam-orange:hover {
    background: #cf4f17;
    border-color: #cf4f17;
    color: #fff;
    box-shadow: 0 8px 22px rgba(230,97,35,.38);
}
.perturbed .btn-sam-orange,
.perturbed .btn-sam-orange:hover { color: #fff; }
.perturbed .btn-sam-orange { border-color: var(--orange-color); background: var(--orange-color); }
.perturbed .btn-sam-orange:hover { background: #cf4f17; border-color: #cf4f17; }

/* ───────── Titres de section : accent orange ───────── */
h2.section-h2 { position: relative; }
h2.section-h2::after {
    content: '';
    display: block;
    width: 50px;
    height: 3px;
    background: var(--orange-color);
    margin: 16px auto 0;
    border-radius: 3px;
}
.perturbed h2.section-h2::after { background: var(--orange-color); }

/* ═════════════ HERO ═════════════ */
#accueil {
    position: relative;
    background: url('../images/vtc-chauffeur-prive-la-rochelle.jpg') no-repeat center center;
    background-size: cover;
}
#accueil::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(2,40,69,.82) 0%, rgba(2,40,69,.55) 45%, rgba(2,40,69,.25) 100%);
    z-index: 0;
    pointer-events: none;
}
/* Le contenu (positionné, z-index 2) passe au-dessus de l'overlay sans positionner .container
   afin de ne pas casser le positionnement absolu du contenu en desktop (référencé sur #accueil). */
.accueil-content { position: relative; z-index: 2; }
#accueil h1 {
    text-shadow: 0 2px 16px rgba(0,0,0,.55);
    margin-bottom: 18px;
}
#accueil .accueil-content > p { text-shadow: 0 1px 8px rgba(0,0,0,.5); }

@media (max-width: 991px) {
    #accueil {
        min-height: 78vh;
        display: flex;
        align-items: center;
        padding-top: 90px;
        padding-bottom: 50px;
    }
}
@media (min-width: 992px) {
    .accueil-content { position: absolute; bottom: 250px; z-index: 2; }
    /* Parallax : le shorthand background ci-dessus réinitialisait l'attachment, on le rétablit */
    #accueil { background-attachment: fixed; }
}

/* ═════════════ BLOCS SERVICE ═════════════ */
.service { transition: transform .25s ease; }
.service:hover { transform: translateY(-4px); }
.service-wrapper-image { overflow: hidden; position: relative; transition: transform .45s ease; }
.service-wrapper-image::before {
    content: '';
    position: absolute; inset: 0;
    background: rgba(2,40,69,.18);
    transition: background .3s ease;
    z-index: 0;
}
.service:hover .service-wrapper-image::before { background: rgba(2,40,69,.38); }
.service:hover .service-wrapper-image { transform: scale(1.03); }
.service-wrapper-image h3 { z-index: 1; }
.service-wrapper-content { transition: box-shadow .25s ease; }
.service:hover .service-wrapper-content { box-shadow: 0 10px 30px rgba(2,40,69,.12); }

/* ═════════════ PARTENAIRES (bandeau défilant) ═════════════ */
#partenaires { padding: 84px 0 76px; overflow: hidden; }
.montransport-widget {
    display: flex;
    justify-content: center;
    margin: 4px 0 8px;
}
.montransport-widget iframe {
    max-width: 100%;
    border: 0;
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(2,40,69,.10);
}
.partners-marquee {
    position: relative;
    width: 100%;
    margin: 42px 0 30px;
    padding: 14px 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.partners-track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: partners-scroll 40s linear infinite;
}
.partners-marquee:hover .partners-track { animation-play-state: paused; }
.partners-track a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    margin-right: 64px;
    transition: transform .3s ease;
}
.partners-track a:hover { transform: scale(1.08); }
.partners-track img {
    height: 56px;
    width: auto;
    object-fit: contain;
    display: block;
}
/* -50% = exactement la moitié (8 logos sur 16) -> boucle sans saut */
@keyframes partners-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@media (max-width: 575px) {
    .partners-marquee { margin: 30px 0 22px; }
    .partners-track { animation-duration: 28s; }
    .partners-track a { margin-right: 44px; }
    .partners-track img { height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .partners-track { animation: none; flex-wrap: wrap; justify-content: center; }
}

/* ═════════════ AVIS GOOGLE ═════════════ */
#avis { background: #f5f7f8; padding: 64px 0; }
.custom-avis { max-width: 1160px; margin: 0 auto; }
.reviews-rating {
    text-align: center;
    margin-bottom: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.reviews-rating g-review-stars { transform: scale(1.5); margin-bottom: 10px; }
.reviews-rating-score { font-size: 2.1rem; font-weight: 700; color: var(--main-color); line-height: 1; }
.reviews-rating-label {
    font-size: .82rem; text-transform: uppercase; letter-spacing: .08em;
    color: #7d8c95; font-weight: 600;
}

.reviews-slider { margin: 0 -14px; padding-bottom: 50px; }
.reviews-slider.slick-initialized { display: block; }
.reviews-slider:not(.slick-initialized) { display: flex; flex-wrap: wrap; }
.reviews-slider:not(.slick-initialized) > .review-card { width: calc(33.333% - 28px); margin: 14px; }
.reviews-slider .slick-track { display: flex !important; align-items: stretch; }
.reviews-slider .slick-slide { height: auto; padding: 14px; }
.reviews-slider .slick-slide > div { height: 100%; }

.review-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 6px 22px rgba(2,40,69,.07);
    padding: 30px 28px 26px;
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    border: 1px solid rgba(2,40,69,.06);
    text-align: left;
    transition: transform .25s ease, box-shadow .25s ease;
}
.review-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(2,40,69,.13); }
.review-card::before {
    content: '\201C';
    position: absolute;
    top: 4px; right: 22px;
    font-size: 4.4rem;
    line-height: 1;
    color: rgba(230,97,35,.15);
    font-family: Georgia, serif;
}
.review-card h5 {
    text-transform: none;
    font-size: 1rem;
    font-weight: 700;
    color: var(--main-color);
    margin-bottom: 14px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 10px;
}
.review-card h5 small {
    font-weight: 500; color: #9aa6ad; font-size: .76rem;
    text-transform: uppercase; letter-spacing: .03em; width: 100%;
}
.review-card h5 g-review-stars { flex-basis: 100%; margin-bottom: 10px; transform: scale(1.05); transform-origin: left; }
.review-card p {
    font-size: .92rem; color: #4a565e; line-height: 1.68; margin: 0;
    position: relative; z-index: 1;
}

/* Flèches & points Slick (avis) */
.reviews-slider .slick-prev, .reviews-slider .slick-next { width: 40px; height: 40px; z-index: 2; }
.reviews-slider .slick-prev { left: -8px; }
.reviews-slider .slick-next { right: -8px; }
.reviews-slider .slick-prev:before, .reviews-slider .slick-next:before {
    color: var(--main-color); font-size: 32px; opacity: .5; transition: opacity .2s ease, color .2s ease;
}
.reviews-slider .slick-prev:hover:before, .reviews-slider .slick-next:hover:before { opacity: 1; color: var(--orange-color); }
.reviews-slider .slick-dots { bottom: 0; }
.reviews-slider .slick-dots li button:before { font-size: 11px; color: var(--main-color); opacity: .3; }
.reviews-slider .slick-dots li.slick-active button:before { color: var(--orange-color); opacity: 1; }

.reviews-cta { text-align: center; margin-top: 38px; }

g-review-stars { white-space: nowrap; display: inline-block; }

/* ═════════════ CONTACT ═════════════ */
#contact { padding: 60px 0; }
.contact-entete {
    background: var(--main-color);
    color: #fff;
    border-radius: 14px;
    padding: 30px 26px;
    font-size: 1rem;
    border: none;
    margin-bottom: 34px;
    box-shadow: 0 10px 34px rgba(2,40,69,.16);
}
.contact-entete a { color: #fff; transition: color .18s ease; }
.contact-entete a:hover { color: var(--orange-color); text-decoration: none; }
.contact-entete .phonenumber_link { font-size: 1.55rem; font-weight: 700; }

/* ═════════════ FAQ ACCORDÉON (cartes séparées) ═════════════ */
#faq { background: linear-gradient(180deg, #f5f7f8 0%, #fff 100%); padding: 66px 0 74px; }
#faq .container { max-width: 860px; }
#faq h2 { margin-bottom: 40px; }
#faq-accordion { width: 100%; max-width: 820px; margin: 0 auto; }

.faq-item {
    background: #fff;
    border: 1px solid rgba(2,40,69,.07);
    border-radius: 12px;
    margin-bottom: 14px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 3px 14px rgba(2,40,69,.05);
    transition: box-shadow .25s ease, border-color .25s ease;
}
.faq-item::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--orange-color);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform .3s ease;
}
.faq-item:has(.faq-question-btn[aria-expanded="true"]) { box-shadow: 0 10px 30px rgba(2,40,69,.10); border-color: rgba(230,97,35,.25); }
.faq-item:has(.faq-question-btn[aria-expanded="true"])::before { transform: scaleY(1); }

.faq-question-btn {
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    padding: 20px 26px;
    font-family: 'Poppins', sans-serif;
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--main-color);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    line-height: 1.45;
    transition: color .2s ease;
}
.faq-question-btn:hover { color: var(--orange-color); }
.faq-question-btn:focus { outline: none; }
.faq-question-btn[aria-expanded="true"] { color: var(--orange-color); }
.faq-question-btn .faq-icon {
    flex-shrink: 0;
    width: 28px; height: 28px;
    border: 2px solid var(--orange-color);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 19px; font-weight: 400; line-height: 1;
    color: var(--orange-color);
    transition: transform .3s ease, background .2s ease, color .2s ease;
}
.faq-question-btn[aria-expanded="true"] .faq-icon { transform: rotate(135deg); background: var(--orange-color); color: #fff; }
.faq-answer { padding: 2px 26px 22px; font-size: .94rem; color: #4a565e; line-height: 1.75; }
.faq-answer p { margin: 0; }
.faq-answer a { color: var(--orange-color); font-weight: 600; }

/* ═════════════ FOOTER (propre, sans chevauchement) ═════════════ */
footer { background: var(--main-color); }
.footer-inner { padding: 14px 0; }
.footer-brand {
    font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
    font-size: 1.1rem; color: #fff; margin-bottom: 16px;
}
.footer-brand .orange-color { color: var(--orange-color); }
.footer-nav {
    list-style: none; padding: 0; margin: 0 0 16px;
    display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
}
.footer-nav li { display: flex; align-items: center; }
.footer-nav li:not(:last-child)::after {
    content: ''; width: 4px; height: 4px; background: var(--secondary-color);
    border-radius: 50%; margin: 0 14px; opacity: .55;
}
.footer-nav a { color: #cdd6db; font-size: .85rem; transition: color .18s ease; }
.footer-nav a:hover { color: var(--orange-color); text-decoration: none; }
.footer-copy { color: #8b9aa3; font-size: .78rem; margin: 0; }
.footer-copy a { color: #b9c4ca; }
.footer-copy a:hover { color: var(--orange-color); }

/* Footer : on neutralise le chevauchement (image vague + marge négative) sur desktop */
@media (min-width: 992px) {
    footer {
        background: var(--main-color) !important;
        height: auto !important;
        margin-top: 0 !important;
        display: block !important;
    }
    footer .container { align-self: auto !important; }
}

/* ═════════════ PAGES ANNEXES (CGV, mentions, etc.) ═════════════ */
.page-legal { padding: 120px 15px 70px; }
.page-legal .container { max-width: 880px; }
.page-legal h1 { font-size: clamp(1.7rem, 1.2rem + 2vw, 2.4rem); text-transform: uppercase; margin-bottom: 28px; }
.page-legal h2 { text-align: left; text-transform: uppercase; font-size: 1.25rem; margin: 38px 0 14px; }
.page-legal h2::after { display: none; }
.page-legal h3 { font-size: 1.05rem; margin: 26px 0 10px; }
.page-legal p, .page-legal li { color: #3f4b53; line-height: 1.75; }
.page-legal ul, .page-legal ol { margin-bottom: 1rem; }

/* Bouton retour accueil */
.back-home {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 30px;
    font-weight: 600;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--main-color);
    border: 2px solid var(--main-color);
    padding: 9px 20px;
    border-radius: 6px;
    transition: background .2s ease, color .2s ease, transform .15s ease;
}
.back-home:hover { background: var(--main-color); color: #fff; text-decoration: none; transform: translateX(-3px); }
.back-home .arrow { font-size: 1.1em; line-height: 1; }

/* ═════════════ FADE-IN AU SCROLL ═════════════ */
.fade-in { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.fade-in.visible { opacity: 1; transform: translateY(0); }
.slick-slide .fade-in { opacity: 1; transform: none; }

/* ═════════════ reCAPTCHA v3 badge ═════════════ */
.grecaptcha-badge { opacity: .35; transition: opacity .3s ease; }
.grecaptcha-badge:hover { opacity: 1; }

/* ═════════════ RESPONSIVE ═════════════ */
@media (max-width: 991px) {
    .reviews-slider:not(.slick-initialized) > .review-card { width: calc(50% - 28px); }
    #partenaires { padding: 44px 0 34px; }
    #avis, #faq { padding: 52px 0; }
    .page-legal { padding: 100px 18px 56px; }
}
@media (max-width: 767px) {
    .reviews-slider:not(.slick-initialized) > .review-card { width: calc(100% - 28px); }
}
@media (max-width: 575px) {
    body { font-size: 15.5px; }
    h2 { margin-bottom: 22px; }
    .btn-sam { padding: 11px 24px; font-size: .76rem; }
    .reviews-rating g-review-stars { transform: scale(1.25); }
    .reviews-rating-score { font-size: 1.8rem; }
    .review-card { padding: 24px 22px 22px; }
    #avis, #faq, #contact, #partenaires { padding: 44px 0; }
    /* FAQ compacte */
    .faq-question-btn { padding: 16px 18px; font-size: .95rem; gap: 12px; }
    .faq-question-btn .faq-icon { width: 24px; height: 24px; font-size: 16px; }
    .faq-answer { padding: 0 18px 18px; }
    /* Contact */
    .contact-entete { padding: 24px 18px; }
    .contact-entete .phonenumber_link { font-size: 1.3rem; }
    /* Widget montransport : ne déborde pas */
    .montransport-widget iframe { width: 100%; max-width: 340px; }
    /* Footer empilé proprement */
    .footer-nav { flex-direction: column; }
    .footer-nav li:not(:last-child)::after { display: none; }
    .footer-nav li { margin-bottom: 9px; }
    /* Pages légales */
    .page-legal { padding: 92px 16px 48px; }
    .back-home { font-size: .8rem; padding: 8px 16px; margin-bottom: 22px; }
}


/* ═════════════════════════ BLOG ═════════════════════════ */
.blog-wrap, .blog-article { background: #f5f7f8; }

/* En-tête de la page blog */
.blog-hero {
    background: linear-gradient(120deg, #022845 0%, #06375c 100%);
    color: #fff;
    padding: 140px 0 60px;
    text-align: center;
}
.blog-hero-kicker {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .8rem;
    font-weight: 600;
    color: var(--orange-color);
    margin-bottom: 12px;
}
.blog-hero h1 { color: #fff; margin: 0 auto 16px; max-width: 760px; }
.blog-hero-sub { color: #cdd6db; max-width: 620px; margin: 0 auto; font-size: 1.02rem; }

.blog-section { padding: 56px 15px 70px; }

/* Grille d'articles */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
}
.blog-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(2,40,69,.08);
    border: 1px solid rgba(2,40,69,.05);
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(2,40,69,.14); }
.blog-card-media { position: relative; display: block; overflow: hidden; aspect-ratio: 16/10; }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.blog-card:hover .blog-card-media img { transform: scale(1.06); }
.blog-card-cat {
    position: absolute; top: 14px; left: 14px;
    background: var(--orange-color); color: #fff;
    font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
    padding: 5px 12px; border-radius: 30px;
}
.blog-card-body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex-grow: 1; }
.blog-card-date { font-size: .76rem; color: #9aa6ad; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.blog-card-title { font-size: 1.18rem; line-height: 1.3; margin: 0 0 12px; text-transform: none; text-align: left; }
.blog-card-title a { color: var(--main-color); transition: color .2s ease; }
.blog-card-title a:hover { color: var(--orange-color); text-decoration: none; }
.blog-card-desc { font-size: .92rem; color: #4a565e; line-height: 1.6; margin: 0 0 18px; flex-grow: 1; }
.blog-card-link { font-weight: 600; color: var(--orange-color); font-size: .9rem; align-self: flex-start; }
.blog-card-link:hover { color: #cf4f17; text-decoration: none; }
.blog-card-link span { transition: transform .2s ease; display: inline-block; }
.blog-card-link:hover span { transform: translateX(4px); }

/* CTA bas de page blog */
.blog-cta {
    margin-top: 56px;
    background: #fff;
    border: 1px solid rgba(2,40,69,.06);
    border-radius: 18px;
    padding: 40px 30px;
    text-align: center;
    box-shadow: 0 6px 22px rgba(2,40,69,.07);
}
.blog-cta h2 { margin-bottom: 12px; }
.blog-cta p { color: #4a565e; max-width: 560px; margin: 0 auto 22px; }

/* ───────── Article ───────── */
.blog-article { padding-bottom: 70px; }
.blog-article .container { max-width: 800px; }
.blog-breadcrumb { padding: 110px 0 18px; font-size: .82rem; color: #7d8c95; }
.blog-breadcrumb a { color: #7d8c95; }
.blog-breadcrumb a:hover { color: var(--orange-color); }
.blog-breadcrumb span { margin: 0 4px; }
.blog-article-cat {
    display: block; width: fit-content; background: var(--orange-color); color: #fff;
    font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
    padding: 5px 12px; border-radius: 30px; margin: 30px 0 14px;
}
.blog-article h1 { text-transform: none; margin-bottom: 12px; }
.blog-article-meta { color: #9aa6ad; font-size: .85rem; margin-bottom: 26px; }
.blog-article-hero {
    width: 100%; aspect-ratio: 16/9; object-fit: cover;
    border-radius: 16px; margin-bottom: 34px; box-shadow: 0 10px 34px rgba(2,40,69,.12);
}
.blog-article-body { font-size: 1.02rem; color: #3f4b53; line-height: 1.8; }
.blog-article-body .lead { font-size: 1.15rem; color: var(--main-color); font-weight: 500; line-height: 1.6; margin-bottom: 26px; }
.blog-article-body h2 { text-align: left; text-transform: none; font-size: 1.4rem; margin: 36px 0 14px; color: var(--main-color); }
.blog-article-body h2::after { display: none; }
.blog-article-body h3 { font-size: 1.12rem; margin: 24px 0 8px; color: var(--main-color); }
.blog-article-body p { margin-bottom: 16px; }
.blog-article-body ul { margin: 0 0 18px; padding-left: 22px; }
.blog-article-body li { margin-bottom: 8px; }
.blog-article-body a { color: var(--orange-color); font-weight: 600; }
.blog-article-body a:hover { color: #cf4f17; }

.blog-inline-cta {
    background: linear-gradient(120deg, #022845 0%, #06375c 100%);
    color: #fff; border-radius: 16px; padding: 28px 30px; margin: 36px 0 10px;
    text-align: center;
}
.blog-inline-cta p { color: #e8edf0; margin-bottom: 18px; }

.blog-article .back-home { margin-top: 36px; }

/* Bloc "articles liés" (maillage interne) */
.article-related {
    margin: 40px 0 6px; padding: 26px 28px;
    background: #fff; border: 1px solid rgba(2,40,69,.08);
    border-left: 4px solid var(--orange-color); border-radius: 14px;
}
.article-related h2 { font-size: 1.15rem; margin: 0 0 14px; }
.article-related ul { list-style: none; padding: 0; margin: 0; }
.article-related li { padding: 7px 0; border-bottom: 1px solid rgba(2,40,69,.06); }
.article-related li:last-child { border-bottom: 0; }
.article-related a { color: var(--main-color); font-weight: 600; text-decoration: none; }
.article-related a:hover { color: var(--orange-color); }
.article-related a::before { content: "→"; color: var(--orange-color); margin-right: 8px; }

@media (max-width: 767px) {
    .blog-hero { padding: 116px 0 44px; }
    .blog-section { padding: 40px 15px 54px; }
    .blog-grid { gap: 22px; }
    .blog-breadcrumb { padding-top: 96px; }
    .blog-article-body { font-size: 1rem; }
    .blog-article-body h2 { font-size: 1.25rem; }
    .blog-cta { padding: 32px 22px; }
}


/* ═════════════ SECTION BLOG (home) ═════════════ */
#home-blog { background: #f5f7f8; padding: 64px 0; }
.home-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 6px;
}
#home-blog .blog-card-body { padding: 22px 22px 24px; }
#home-blog .blog-card-title { font-size: 1.1rem; }
@media (max-width: 991px) { .home-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .home-blog-grid { grid-template-columns: 1fr; gap: 22px; } #home-blog { padding: 48px 0; } }

/* ═════════════ PAGES ANNEXES — design amélioré ═════════════ */
/* Bandeau d'en-tête commun aux pages légales / contenu */
.legal-page .entete { background: var(--main-color); }

.page-legal {
    max-width: 840px;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 20px;
}
.page-legal h1 {
    text-transform: uppercase;
    font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.2rem);
    letter-spacing: .4px;
    margin-bottom: 10px;
    position: relative;
    padding-bottom: 16px;
}
.page-legal h1::after {
    content: '';
    display: block;
    position: absolute;
    left: 0; bottom: 0;
    width: 56px; height: 3px;
    background: var(--orange-color);
    border-radius: 3px;
}
.page-legal h2 {
    text-align: left;
    text-transform: uppercase;
    font-size: 1.2rem;
    letter-spacing: .3px;
    color: var(--main-color);
    margin: 40px 0 14px;
}
.page-legal h2::after { display: none; }
.page-legal h3 { font-size: 1.05rem; margin: 26px 0 10px; color: var(--main-color); }
.page-legal p, .page-legal li { color: #44515a; line-height: 1.8; }
.page-legal p { margin-bottom: 14px; }
.page-legal ul, .page-legal ol { margin: 0 0 18px; padding-left: 22px; }
.page-legal li { margin-bottom: 7px; }
.page-legal a:not(.back-home):not(.btn) { color: var(--orange-color); font-weight: 600; }
.page-legal strong { color: var(--main-color); }
.page-legal hr { border: 0; border-top: 1px solid rgba(2,40,69,.1); margin: 30px 0; }

/* Sur les pages annexes, on enlève le chevauchement footer en desktop (déjà géré globalement) */

/* ── Pictos section Chauffeur privé : taille réduite ── */
#chauffeur .col-6 img { max-width: 78px; height: auto; }
@media (min-width: 992px) { #chauffeur .col-6 img { max-width: 88px; } }

/* ── Parallax du contenu hero (titre + bouton) ── */
.accueil-content { will-change: transform, opacity; }

/* ═════════════ LOGO header + footer (pastille sur fond fonce) ═════════════ */
.navbar-brand { padding: 0; margin: 0 16px 0 0; display: inline-flex; align-items: center; }
.navbar-brand img { height: 44px; width: auto; display: block; }
.footer-logo { display: inline-block; margin-bottom: 20px; }
.footer-logo img { height: 56px; width: auto; display: block; }
@media (max-width: 991px) {
    .navbar-brand img { height: 38px; }
    .navbar-brand { margin-right: auto; }
}
@media (max-width: 575px) {
    .footer-logo img { height: 48px; }
}

/* ═════════════ AVIS : raffinements ═════════════ */
.reviews-rating {
    background: #fff;
    border-radius: 14px;
    padding: 22px 28px;
    box-shadow: 0 6px 22px rgba(2,40,69,.07);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    margin: 0 auto 42px;
}
#avis .custom-avis { text-align: center; }
.reviews-rating-score { color: var(--orange-color); }
.reviews-rating::after {
    content: 'sur Google';
    font-size: .72rem; text-transform: uppercase; letter-spacing: .1em;
    color: #aab4ba; margin-top: 4px; font-weight: 600;
}
.reviews-rating .reviews-rating-label { display: none; }

/* ═════════════ CONTACT : modernisation ═════════════ */
#contact { background: #f5f7f8; }
#contact form.needs-validation {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 10px 34px rgba(2,40,69,.08);
    border: 1px solid rgba(2,40,69,.05);
    padding: 32px;
}
#contact fieldset {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}
#contact legend {
    font-size: 1rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .04em; color: var(--main-color);
    border: none; margin-bottom: 18px; padding: 0; width: auto;
}
#contact label { font-weight: 600; font-size: .82rem; color: var(--main-color); margin-bottom: 6px; }
#contact .form-control,
#contact .custom-select {
    border: 1px solid #d7dde1;
    border-radius: 8px;
    padding: .62rem .9rem;
    font-size: .95rem;
    height: auto;
    transition: border-color .18s ease, box-shadow .18s ease;
}
#contact .form-control:focus,
#contact .custom-select:focus {
    border-color: var(--orange-color);
    box-shadow: 0 0 0 .18rem rgba(230,97,35,.15);
}
#contact .input-group-text {
    background: #f5f7f8;
    border: 1px solid #d7dde1;
    color: var(--main-color);
    border-radius: 8px 0 0 8px;
}
#contact .input-group > .input-group-prepend ~ .form-control,
#contact .input-group > .form-control {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
#contact input[type="submit"].btn-sam {
    background: var(--orange-color);
    border-color: var(--orange-color);
    color: #fff;
    padding: 13px 40px;
    font-size: .9rem;
}
#contact input[type="submit"].btn-sam:hover {
    background: #cf4f17; border-color: #cf4f17;
    box-shadow: 0 8px 22px rgba(230,97,35,.35);
}

/* ═════════════ AVIS : nouvelle mise en forme (override final) ═════════════ */
#avis { background: #eef1f3; padding: 72px 0; }
#avis .custom-avis { max-width: 1180px; }
.reviews-rating {
    background: #fff;
    border-radius: 50px;
    padding: 14px 30px;
    box-shadow: 0 6px 20px rgba(2,40,69,.08);
    flex-direction: row;
    gap: 14px;
    align-items: center;
    margin-bottom: 46px;
}
.reviews-rating g-review-stars { transform: scale(1.25); margin: 0; order: 2; }
.reviews-rating-score { font-size: 1.7rem; font-weight: 800; color: var(--main-color); order: 1; }
.reviews-rating::after {
    order: 3; margin-top: 0;
    content: 'Avis Google'; color: #87949b;
}
.review-card {
    display: flex;
    flex-direction: column;
    border: none;
    box-shadow: 0 8px 26px rgba(2,40,69,.09);
    border-radius: 16px;
    padding: 30px 26px 24px;
}
.review-card::before {
    content: '\201C';
    top: 10px; right: 22px;
    font-size: 4.4rem;
    color: rgba(230,97,35,.14);
}
.review-card p { order: 1; font-size: .94rem; color: #3f4b53; line-height: 1.66; }
.review-card h5 {
    order: 2;
    margin: 18px 0 0;
    padding-top: 16px;
    border-top: 1px solid rgba(2,40,69,.09);
    font-size: .92rem;
}
.review-card h5 g-review-stars { flex-basis: auto; margin: 0 0 0 auto; order: 3; }
.review-card h5 small { width: 100%; order: 4; margin-top: 2px; }

/* ═════════════ CONTACT : modernisation (override final) ═════════════ */
#contact { background: linear-gradient(180deg, #f5f7f8 0%, #eef1f3 100%); padding: 72px 0; }
#contact .col-12 { max-width: 900px; margin: 0 auto; }
.contact-entete {
    background: linear-gradient(125deg, #022845 0%, #06375c 100%) !important;
    border-radius: 18px !important;
    padding: 32px 26px !important;
    box-shadow: 0 14px 40px rgba(2,40,69,.22) !important;
    margin-bottom: 30px;
}
.contact-entete .bolder.bigger { font-size: 1.25rem; letter-spacing: .04em; margin-bottom: 6px; }
.contact-entete .phonenumber_link {
    font-size: 1.9rem !important; font-weight: 800; display: inline-block; margin: 4px 0 14px;
}
.contact-entete .fab {
    width: 38px; height: 38px; line-height: 38px; text-align: center;
    border-radius: 50%; background: rgba(255,255,255,.12); margin-right: 6px;
    transition: background .2s ease, transform .2s ease;
}
.contact-entete a:hover .fab { background: var(--orange-color); transform: translateY(-2px); }

/* ════════════════════════════════════════════════════════════
   REFONTE v3 — header, footer, titres, partenaires, avis, contact
   (override final)
════════════════════════════════════════════════════════════ */

/* ---------- Hierarchie titres / sous-titres ---------- */
h2.section-h2 {
    text-transform: none;
    font-size: .95rem;
    font-weight: 400;
    color: #6b7884;
    line-height: 1.45;
    letter-spacing: .2px;
}
h2.section-h2 .bigger {
    display: block;
    font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.15rem);
    font-weight: 700;
    color: var(--main-color);
    text-transform: uppercase;
    letter-spacing: .4px;
    line-height: 1.12;
    margin-bottom: 7px;
}
.perturbed h2.section-h2 { color: rgba(255,255,255,.8); }
.perturbed h2.section-h2 .bigger { color: #fff; }

/* ---------- HEADER ---------- */
.entete { padding: 6px 0; transition: background .3s ease, box-shadow .3s ease, padding .3s ease; }
.entete.passed { box-shadow: 0 4px 20px rgba(2,40,69,.18); }
.navbar { padding-top: .4rem; padding-bottom: .4rem; }
.navbar-nav .nav-link {
    position: relative;
    font-size: .82rem;
    letter-spacing: .04em;
    padding: .5rem .9rem !important;
    transition: color .2s ease;
}
/* soulignement anime au survol (desktop) */
@media (min-width: 992px) {
    .navbar-nav .nav-link::after {
        content: '';
        position: absolute;
        left: .9rem; right: .9rem; bottom: .25rem;
        height: 2px; background: var(--orange-color);
        transform: scaleX(0); transform-origin: left;
        transition: transform .25s ease;
    }
    .navbar-nav .nav-link:hover::after,
    .navbar-nav .nav-link.active::after { transform: scaleX(1); }
    .navbar-nav .nav-link.active::before { content: none; }
}

/* ---------- HEADER MOBILE : menu en panneau ---------- */
@media (max-width: 991px) {
    .entete { background: var(--main-color) !important; padding: 8px 0; }
    .entete .navbar { flex-wrap: nowrap; align-items: center; }
    .navbar-toggler { border: none; padding: 6px 8px; font-size: 1.5rem; color: #fff; }
    .navbar-toggler:focus { outline: none; box-shadow: none; }
    .navbar-toggler-icon i { color: #fff; }
    .navbar-collapse {
        background: #06375c;
        border-radius: 12px;
        margin-top: 10px;
        padding: 8px;
        box-shadow: 0 16px 40px rgba(0,0,0,.3);
    }
    .navbar-nav .nav-link {
        color: #fff !important;
        padding: 13px 16px !important;
        border-radius: 8px;
        font-size: .95rem;
    }
    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link.active { background: rgba(255,255,255,.08); color: var(--orange-color) !important; }
    .navbar-nav .nav-item + .nav-item { border-top: 1px solid rgba(255,255,255,.06); }
    .navbar-brand img { height: 40px; }
}

/* ---------- PARTENAIRES : aere ---------- */
#partenaires { padding: 92px 0 86px; }
#partenaires .section-h2 { margin-bottom: 34px; }
.montransport-widget { margin: 28px auto 38px; }
.partners-marquee { margin: 52px 0 12px; padding: 20px 0; }

/* ---------- AVIS : nouvelle grille / cartes ---------- */
#avis { background: #eef1f3; padding: 80px 0; }
.reviews-rating {
    background: #fff; border-radius: 999px; padding: 12px 26px;
    box-shadow: 0 8px 24px rgba(2,40,69,.10);
    display: inline-flex; flex-direction: row; align-items: center; gap: 12px; margin-bottom: 52px;
}
.reviews-rating-score { font-size: 1.55rem; font-weight: 800; color: var(--main-color); order: 1; }
.reviews-rating g-review-stars { transform: scale(1.15); order: 2; }
.reviews-rating::after { content: 'Note Google'; order: 3; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: #9aa6ad; font-weight: 600; }

.review-card {
    background: #fff;
    border-radius: 18px;
    border: none;
    border-top: 3px solid var(--orange-color);
    box-shadow: 0 10px 30px rgba(2,40,69,.10);
    padding: 30px 26px 26px;
}
.review-card::before { content: '\201C'; top: 14px; right: 24px; font-size: 4.6rem; color: rgba(230,97,35,.16); }
.review-card p { order: 1; font-size: .95rem; color: #41505a; line-height: 1.7; }
.review-card h5 {
    order: 2; margin-top: 20px; padding-top: 16px;
    border-top: 1px solid rgba(2,40,69,.08);
    display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px;
    font-size: .95rem; font-weight: 700; color: var(--main-color);
}
.review-card h5 g-review-stars { order: 3; margin-left: auto; flex-basis: auto; transform: scale(.92); }
.review-card h5 small { order: 4; flex-basis: 100%; color: #9aa6ad; font-weight: 400; }

/* ---------- CONTACT : modernisation ---------- */
#contact { background: linear-gradient(180deg,#f5f7f8,#e9eef1); padding: 84px 0; }
.contact-entete {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    text-align: center;
}
.contact-entete .phonenumber_link {
    background: rgba(255,255,255,.10); padding: 8px 22px; border-radius: 999px;
    border: 1px solid rgba(255,255,255,.18);
}
#contact form.needs-validation { padding: 36px; border-radius: 18px; }
#contact legend { color: var(--orange-color); border-bottom: 2px solid #eef1f3; padding-bottom: 10px; }
#contact .form-control, #contact .custom-select { background: #fafbfc; }

/* ---------- FOOTER : refonte ---------- */
footer { background: var(--main-color); }
.footer-inner { padding: 16px 0 6px; }
.footer-logo { margin-bottom: 22px; }
.footer-logo img { height: 58px; }
.footer-nav { gap: 6px 0; margin-bottom: 18px; max-width: 760px; margin-left: auto; margin-right: auto; }
.footer-nav a { font-size: .86rem; }
.footer-copy { padding-top: 16px; border-top: 1px solid rgba(255,255,255,.10); max-width: 600px; margin: 0 auto; }

/* ---------- FIX : CTA articles (texte invisible orange/orange) ---------- */
.blog-article-body a.btn-sam,
.blog-inline-cta a.btn-sam,
.blog-cta a.btn-sam { color: #fff !important; font-weight: 600; }
.blog-article-body a.btn-sam:hover,
.blog-inline-cta a.btn-sam:hover { color: #fff !important; }

/* ---------- Back-home sur index blog (visible) ---------- */
.blog-section > .back-home { margin-bottom: 26px; }

/* ════════════ AJUSTEMENTS v4 ════════════ */

/* Footer : menu sur 2 lignes */
.footer-nav { margin-bottom: 10px; }
.footer-nav.footer-nav-secondary { margin-bottom: 18px; }
.footer-nav.footer-nav-secondary a { color: #aeb9c0; font-size: .82rem; }

/* FAQ : section plus large + titre visible */
#faq .container { max-width: 1000px; }
#faq-accordion { max-width: 900px; }
#faq .section-h2 { text-align: center; }

/* Contact en bouton dans le header (desktop) */
@media (min-width: 992px) {
  .navbar-nav .nav-link[href$="#contact"] {
    background: var(--orange-color);
    color: #fff !important;
    border-radius: 8px;
    padding: .5rem 1.2rem !important;
    margin-left: .5rem;
    transition: background .2s ease, transform .15s ease;
  }
  .navbar-nav .nav-link[href$="#contact"]:hover {
    background: #cf4f17;
    transform: translateY(-1px);
  }
  .navbar-nav .nav-link[href$="#contact"]::after { display: none; }
}

/* ════════════ HEADER MOBILE — réparation ════════════ */
@media (max-width: 991px) {
  .entete .navbar {
    flex-wrap: wrap !important;
    align-items: center;
  }
  .navbar-brand { margin: 0 auto 0 0 !important; order: 0; }
  .entete .navbar > ul.d-lg-none { order: 1; margin: 0 6px 0 0; display: flex; }
  .navbar-toggler { order: 2; margin-left: 8px; display: inline-flex; align-items: center; }
  #navbarSupportedContent { order: 3; flex-basis: 100%; width: 100%; }
  /* Le bouton contact reprend le style lien dans le menu mobile */
  .navbar-nav .nav-link[href$="#contact"] {
    background: var(--orange-color);
    color: #fff !important;
    text-align: center;
    margin-top: 6px;
  }
}

/* ════════════════════ HEADER v5 (override final) ════════════════════ */

/* Drapeaux langue a cote du logo, sur toutes les tailles */
.entete .navbar > ul.d-lg-none { display: inline-flex !important; align-items: center; margin: 0 0 0 14px; padding: 0; list-style: none; }
.entete .navbar > ul.d-lg-none .nav-item { margin: 0 3px !important; }
.entete .navbar > ul.d-lg-none img { display: block; border-radius: 2px; opacity: .85; transition: opacity .2s ease; }
.entete .navbar > ul.d-lg-none a:hover img { opacity: 1; }
/* On masque les drapeaux dupliques places dans le menu */
.navbar-nav > li.d-lg-flex { display: none !important; }

/* Liens du menu (desktop) */
@media (min-width: 992px) {
  .navbar { flex-wrap: nowrap; }
  .navbar-collapse { flex-grow: 1; }
  .navbar-nav { align-items: center; }
  .navbar-nav .nav-link { font-size: .82rem; font-weight: 500; }
}

/* CTA "Reserver ma course" */
.navbar-nav .nav-link.nav-cta {
  background: var(--orange-color);
  color: #fff !important;
  border-radius: 999px;
  padding: .55rem 1.35rem !important;
  margin-left: .7rem;
  font-weight: 600;
  letter-spacing: .02em;
  transition: background .2s ease, transform .15s ease;
}
.navbar-nav .nav-link.nav-cta:hover {
  background: #cf4f17;
  color: #fff !important;
  transform: translateY(-1px);
}
.navbar-nav .nav-link.nav-cta::after { display: none !important; }

/* ── Mobile : alignement + menu ── */
@media (max-width: 991px) {
  .entete { background: var(--main-color) !important; padding: 6px 0; }
  .entete .navbar { flex-wrap: wrap !important; align-items: center; }
  .navbar-brand { margin: 0 !important; order: 0; }
  .entete .navbar > ul.d-lg-none { order: 1; margin-left: 12px; }
  .navbar-toggler { order: 2; margin-left: auto; border: none; color: #fff; font-size: 1.5rem; padding: 6px 10px; }
  .navbar-toggler:focus { outline: none; box-shadow: none; }
  #navbarSupportedContent { order: 3; flex-basis: 100%; width: 100%; }
  .navbar-collapse {
    background: #06375c;
    border-radius: 12px;
    margin-top: 12px;
    padding: 10px 8px;
    box-shadow: 0 16px 40px rgba(0,0,0,.30);
  }
  .navbar-nav .nav-link {
    color: #fff !important;
    padding: 13px 16px !important;
    border-radius: 8px;
    font-size: .98rem;
  }
  .navbar-nav .nav-item + .nav-item .nav-link:not(.nav-cta) { border-top: 1px solid rgba(255,255,255,.07); }
  .navbar-nav .nav-link:hover { background: rgba(255,255,255,.08); color: var(--orange-color) !important; }
  .navbar-nav .nav-link.nav-cta { text-align: center; margin: 10px 6px 4px; padding: 13px 16px !important; }
}

/* ── Avis : garantir l'espacement des cartes du carrousel ── */
.reviews-slider .slick-list { margin: 0 -14px; }
.reviews-slider .slick-slide { height: auto; padding: 0 14px; box-sizing: border-box; }
.reviews-slider .slick-slide > div { height: 100%; }
.reviews-slider .review-card { height: 100%; }

/* ════════════════════ CORRECTIFS v6 (override final) ════════════════════ */

/* ---- Ancres : compenser le header fixe ---- */
#accueil,#vtc,#chauffeur,#services,#tarifs,#avis,#contact,#faq,#partenaires,#home-blog {
  scroll-margin-top: 90px;
}

/* ---- HEADER : pas de retour a la ligne ---- */
.navbar-nav .nav-link { white-space: nowrap; }
.navbar-nav .nav-link.nav-cta { white-space: nowrap; }
@media (min-width: 992px) {
  .navbar { flex-wrap: nowrap !important; }
  .navbar-nav .nav-link { padding: .5rem .7rem !important; font-size: .8rem; }
  .navbar-nav .nav-link.nav-cta { padding: .55rem 1.2rem !important; }
  .entete .navbar > ul.d-lg-none { margin: 0 6px 0 14px; }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .navbar-nav .nav-link { padding: .5rem .55rem !important; font-size: .76rem; }
  .navbar-brand img { height: 38px; }
}

/* ---- Drapeaux : rendu propre ---- */
.entete .navbar > ul.d-lg-none img {
  width: 22px !important; height: 16px !important;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.35);
  object-fit: cover;
}
.entete .navbar > ul.d-lg-none .nav-item { margin: 0 2px !important; }

/* ════════ AVIS : carrousel CSS scroll-snap (robuste, sans Slick) ════════ */
#avis .custom-avis { overflow: visible; }
#avis .reviews-slider {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 20px 4px 38px;
  margin: 0 !important;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--secondary-color) transparent;
}
#avis .reviews-slider::-webkit-scrollbar { height: 8px; }
#avis .reviews-slider::-webkit-scrollbar-thumb { background: var(--secondary-color); border-radius: 10px; }
#avis .reviews-slider::-webkit-scrollbar-track { background: transparent; }
#avis .reviews-slider > .review-card {
  flex: 0 0 calc((100% - 48px) / 3);
  width: auto !important;
  margin: 0 !important;
  scroll-snap-align: start;
  height: auto;
}
@media (max-width: 991px) { #avis .reviews-slider > .review-card { flex-basis: calc((100% - 24px) / 2); } }
@media (max-width: 640px)  { #avis .reviews-slider > .review-card { flex-basis: 85%; } }
/* indice de glissement */
.reviews-hint { text-align: center; font-size: .8rem; color: #9aa6ad; margin-top: 4px; }

/* ════════ MENU MOBILE : version propre (override final) ════════ */
@media (max-width: 991px) {
  .entete { background: var(--main-color) !important; padding: 8px 0; box-shadow: 0 2px 14px rgba(0,0,0,.25); }
  .entete .container { display: block; }
  .entete .navbar { display: flex; flex-wrap: wrap; align-items: center; row-gap: 0; }
  .navbar-brand { margin: 0 !important; order: 0; }
  .navbar-brand img { height: 40px; }
  .entete .navbar > ul.d-lg-none { order: 1; margin: 0 0 0 12px !important; }
  .navbar-toggler { order: 2; margin-left: auto !important; background: rgba(255,255,255,.10); border-radius: 8px; color: #fff; border: none; padding: 8px 12px; }
  .navbar-toggler:focus { outline: none; box-shadow: none; }
  .navbar-toggler-icon i, .navbar-toggler i { color: #fff; }
  #navbarSupportedContent { order: 3; flex-basis: 100%; width: 100%; }
  .navbar-collapse {
    background: #06375c;
    border-radius: 14px;
    margin-top: 12px;
    padding: 8px;
    box-shadow: 0 18px 44px rgba(0,0,0,.35);
  }
  .navbar-nav { width: 100%; }
  .navbar-nav .nav-link {
    color: #fff !important;
    padding: 14px 18px !important;
    border-radius: 10px;
    font-size: 1rem;
    white-space: normal;
  }
  .navbar-nav .nav-link::after { display: none !important; }
  .navbar-nav .nav-item + .nav-item .nav-link:not(.nav-cta) { border-top: 1px solid rgba(255,255,255,.08); }
  .navbar-nav .nav-link:hover, .navbar-nav .nav-link.active { background: rgba(255,255,255,.08); color: var(--orange-color) !important; }
  .navbar-nav .nav-link.nav-cta { background: var(--orange-color); color: #fff !important; text-align: center; margin: 12px 8px 6px; box-shadow: none; }
  .navbar-nav .nav-link.nav-cta:hover { background: #cf4f17; }
}

/* ════════════════════ v7 — header/menu/avis (override final) ════════════════════ */

/* ---- Drapeaux : plus d'air ---- */
.entete .navbar > ul.d-lg-none { gap: 8px; }
.entete .navbar > ul.d-lg-none .nav-item { margin: 0 5px !important; }
.entete .navbar > ul.d-lg-none img { width: 24px !important; height: 17px !important; }

/* ---- Cohérence header : barre alignée verticalement ---- */
.entete .navbar { min-height: 60px; align-items: center; }
.navbar-brand { display: inline-flex; align-items: center; }

/* ════════ BURGER animé + centré ════════ */
.navbar-toggler { display: inline-flex; align-items: center; justify-content: center; height: 44px; width: 46px; }
.navbar-toggler .navbar-toggler-icon i { display: none !important; }
.navbar-toggler .navbar-toggler-icon {
  position: relative; display: block; width: 26px; height: 2px;
  background: #fff; border-radius: 2px; transition: background .2s ease;
}
.navbar-toggler .navbar-toggler-icon::before,
.navbar-toggler .navbar-toggler-icon::after {
  content: ''; position: absolute; left: 0; width: 26px; height: 2px;
  background: #fff; border-radius: 2px; transition: transform .3s ease, top .3s ease;
}
.navbar-toggler .navbar-toggler-icon::before { top: -8px; }
.navbar-toggler .navbar-toggler-icon::after { top: 8px; }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon { background: transparent; }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before { top: 0; transform: rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after { top: 0; transform: rotate(-45deg); }

/* ════════ MENU MOBILE PLEIN ÉCRAN ════════ */
@media (max-width: 991px) {
  .entete { background: var(--main-color) !important; padding: 8px 0; }
  .entete .navbar { flex-wrap: wrap; }
  .navbar-toggler { position: relative; z-index: 1060; }
  #navbarSupportedContent {
    position: fixed;
    inset: 0;
    background: linear-gradient(160deg, #022845 0%, #06375c 100%);
    margin: 0;
    padding: 92px 26px 40px;
    z-index: 1050;
    overflow-y: auto;
    flex-basis: auto;
  }
  /* l'entete (logo + burger) reste au-dessus du menu */
  .entete { z-index: 1055; position: fixed; left: 0; right: 0; top: 0; }
  .navbar-collapse { box-shadow: none; border-radius: 0; }
  .navbar-nav { width: 100%; max-width: 480px; margin: 0 auto; }
  .navbar-nav .nav-link {
    color: #fff !important;
    padding: 16px 8px !important;
    font-size: 1.15rem;
    text-align: center;
    border-radius: 10px;
    border: none !important;
  }
  .navbar-nav .nav-item { border-bottom: 1px solid rgba(255,255,255,.08); }
  .navbar-nav .nav-item:last-child { border-bottom: none; }
  .navbar-nav .nav-link:hover, .navbar-nav .nav-link.active { color: var(--orange-color) !important; background: transparent; }
  .navbar-nav .nav-link.nav-cta {
    background: var(--orange-color); color: #fff !important;
    margin: 22px auto 0; max-width: 280px; padding: 15px 24px !important;
    border-radius: 999px;
  }
}

/* ════════ AVIS : mise en forme repensée (sans date) ════════ */
.review-card {
  background: #fff;
  border: none;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(2,40,69,.10);
  padding: 34px 28px 30px;
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
}
.review-card::before {
  content: '\201C';
  position: absolute; top: 12px; right: 24px;
  font-size: 4.2rem; line-height: 1; font-family: Georgia, serif;
  color: rgba(230,97,35,.16);
}
.review-card h5 {
  order: 1;
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  margin: 0 0 16px; padding: 0; border: none;
  font-size: 1.02rem; font-weight: 700; color: var(--main-color);
  text-transform: none;
}
.review-card h5 g-review-stars { order: -1; transform: scale(1.05); transform-origin: left; margin: 0; flex-basis: auto; }
.review-card p {
  order: 2; margin: 0;
  font-size: .96rem; color: #44515a; line-height: 1.7; font-style: italic;
}

/* ════════════════════ v8 — correctifs header/menu ════════════════════ */

/* Double burger : masquer l'icone FontAwesome (i ET svg injecte par le kit) + le fond Bootstrap */
.navbar-toggler .navbar-toggler-icon i,
.navbar-toggler .navbar-toggler-icon svg { display: none !important; }
.navbar-toggler-icon { background-image: none !important; }

/* CTA qui chevauche le separateur en mobile : pas de bordure sur sa ligne + espace */
@media (max-width: 991px) {
  .navbar-nav .nav-item:has(.nav-cta) { border-bottom: none !important; }
  .navbar-nav li.nav-item:last-child { border-bottom: none !important; }
  .navbar-nav .nav-link.nav-cta { margin-top: 24px; }
}

/* ════════════════════════════════════════════════════════════
   v9 — REFONTE Carrousel AVIS + Carte CONTACT (override final)
════════════════════════════════════════════════════════════ */

/* ---------- Bandeau note Google ---------- */
#avis { padding: 78px 0; }
.reviews-rating {
  flex-direction: row !important;
  align-items: center !important;
  gap: 14px;
  padding: 16px 26px !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 26px rgba(2,40,69,.10) !important;
  margin: 0 auto 46px !important;
}
.reviews-rating::before {
  content: '';
  width: 26px; height: 26px; flex: 0 0 26px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'><path fill='%234285F4' d='M45.12 24.5c0-1.56-.14-3.06-.4-4.5H24v8.51h11.84c-.51 2.75-2.06 5.08-4.39 6.64v5.52h7.11c4.16-3.83 6.56-9.47 6.56-16.17z'/><path fill='%2334A853' d='M24 46c5.94 0 10.92-1.97 14.56-5.33l-7.11-5.52c-1.97 1.32-4.49 2.1-7.45 2.1-5.73 0-10.58-3.87-12.31-9.07H4.34v5.7C7.96 41.07 15.4 46 24 46z'/><path fill='%23FBBC05' d='M11.69 28.18C11.25 26.86 11 25.45 11 24s.25-2.86.69-4.18v-5.7H4.34C2.85 17.09 2 20.45 2 24s.85 6.91 2.34 9.88l7.35-5.7z'/><path fill='%23EA4335' d='M24 10.75c3.23 0 6.13 1.11 8.41 3.29l6.31-6.31C34.91 4.18 29.93 2 24 2 15.4 2 7.96 6.93 4.34 14.12l7.35 5.7c1.73-5.2 6.58-9.07 12.31-9.07z'/></svg>") no-repeat center / contain;
}
.reviews-rating-score { font-size: 1.7rem !important; font-weight: 800 !important; color: var(--main-color) !important; order: 0 !important; }
.reviews-rating g-review-stars { transform: scale(1.25) !important; margin: 0 !important; order: 0 !important; }
.reviews-rating::after { content: 'Avis Google vérifiés' !important; margin: 0 !important; }

/* ---------- Carte d'avis ---------- */
#avis .reviews-slider { scroll-padding-left: 4px; gap: 26px; padding: 24px 4px 30px; }
.review-card {
  background: #fff !important;
  border: 1px solid rgba(2,40,69,.06) !important;
  border-radius: 20px !important;
  box-shadow: 0 12px 34px rgba(2,40,69,.09) !important;
  padding: 30px 28px 26px !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.review-card:hover { transform: translateY(-6px); box-shadow: 0 20px 46px rgba(2,40,69,.15) !important; }
.review-card::before {
  content: '\201C' !important;
  top: 10px !important; right: 26px !important;
  font-size: 5rem !important; color: rgba(230,97,35,.14) !important;
}
.review-card h5 {
  display: flex !important; flex-direction: column !important; align-items: flex-start !important;
  gap: 12px !important; margin: 0 0 14px !important;
  font-size: 1.05rem !important; font-weight: 700 !important; color: var(--main-color) !important;
  text-transform: none !important; padding-left: 56px; min-height: 46px; justify-content: center;
  position: relative;
}
/* pastille initiale (avatar) */
.review-card h5::before {
  content: attr(data-initial);
  position: absolute; left: 0; top: 0;
  width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg, var(--orange-color), #f0813f);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 1.15rem; font-weight: 700; line-height: 1;
  text-transform: uppercase;
}
.review-card h5 g-review-stars { order: -1; transform: scale(1.05); transform-origin: left; margin: 0 !important; }
.review-card p { font-size: .97rem !important; color: #44515a !important; line-height: 1.72 !important; font-style: italic !important; }
.reviews-hint { text-align: center; font-size: .82rem; color: #9aa6ad; margin: 2px 0 0; }
.reviews-hint i { color: var(--orange-color); }

/* ---------- Carte CONTACT ---------- */
.contact-entete {
  max-width: 640px; margin: 0 auto 34px !important;
  padding: 38px 32px !important;
  border-radius: 22px !important;
  background: linear-gradient(140deg, #022845 0%, #06375c 100%) !important;
  box-shadow: 0 18px 48px rgba(2,40,69,.26) !important;
}
.contact-card-name {
  color: #fff; font-weight: 800; text-transform: uppercase;
  letter-spacing: .06em; font-size: 1.25rem; margin: 0 0 2px;
}
.contact-card-role { color: #aebfcc; font-size: .92rem; margin: 0 0 22px; }
.contact-entete .contact-call {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--orange-color); color: #fff !important;
  font-size: 1.15rem !important; font-weight: 700;
  padding: 12px 26px; border-radius: 999px;
  transition: transform .2s ease, background .2s ease;
  border: none;
}
.contact-entete .contact-call i { font-size: 1.05rem; }
.contact-entete .contact-call:hover { background: #cf4f17; transform: translateY(-2px); color: #fff !important; }

.contact-socials {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
  margin-top: 26px; padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.contact-entete .contact-social {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: 12px;
  background: rgba(255,255,255,.08); color: #fff !important;
  font-size: .9rem; font-weight: 600;
  border: 1px solid rgba(255,255,255,.12);
  transition: background .2s ease, transform .2s ease, border-color .2s ease;
}
.contact-entete .contact-social i { font-size: 1.05rem; width: auto; height: auto; line-height: 1; background: none; border-radius: 0; margin: 0; }
.contact-entete .contact-social:hover { transform: translateY(-2px); color: #fff !important; }
.contact-entete .contact-social-wa:hover { background: #25D366; border-color: #25D366; }
.contact-entete .contact-social-ig:hover { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); border-color: transparent; }
.contact-entete .contact-social-fb:hover { background: #1877F2; border-color: #1877F2; }
.contact-entete .contact-social-gg:hover { background: #EA4335; border-color: #EA4335; }

@media (max-width: 575px) {
  .contact-entete { padding: 30px 20px !important; }
  .contact-entete .contact-call { font-size: 1.02rem !important; padding: 11px 20px; }
  .contact-socials { gap: 9px; }
  .contact-entete .contact-social { padding: 8px 13px; font-size: .82rem; }
}

/* ════════ AVIS : carrousel à flèches (override final) ════════ */
.reviews-carousel { position: relative; padding: 0 6px; }
/* masquer la barre de défilement, navigation par flèches */
#avis .reviews-slider { scrollbar-width: none !important; -ms-overflow-style: none; }
#avis .reviews-slider::-webkit-scrollbar { height: 0 !important; width: 0 !important; display: none !important; }
.reviews-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: 50%;
  background: #fff; border: 1px solid rgba(2,40,69,.10);
  color: var(--main-color); font-size: 1.05rem;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 22px rgba(2,40,69,.16);
  cursor: pointer; z-index: 3;
  transition: background .2s ease, color .2s ease, transform .2s ease, opacity .2s ease;
}
.reviews-arrow:hover { background: var(--orange-color); color: #fff; border-color: var(--orange-color); }
.reviews-arrow:focus { outline: none; }
.reviews-arrow-prev { left: -10px; }
.reviews-arrow-next { right: -10px; }
.reviews-arrow[disabled] { opacity: .35; cursor: default; box-shadow: none; }
.reviews-arrow[disabled]:hover { background: #fff; color: var(--main-color); border-color: rgba(2,40,69,.10); }
@media (max-width: 991px) {
  .reviews-arrow { width: 42px; height: 42px; }
  .reviews-arrow-prev { left: -6px; }
  .reviews-arrow-next { right: -6px; }
}
@media (max-width: 575px) {
  .reviews-arrow-prev { left: 2px; }
  .reviews-arrow-next { right: 2px; }
}

/* ════════ Bouton retour plus discret sur le blog ════════ */
.blog-article .back-home,
.blog-section .back-home,
.blog-wrap .back-home {
  font-size: .72rem;
  font-weight: 600;
  padding: 6px 14px;
  gap: 6px;
  border-width: 1px;
  border-radius: 6px;
  margin-bottom: 22px;
}
.blog-article .back-home.back-home-top { margin-bottom: 18px; }
.blog-article .back-home .arrow,
.blog-section .back-home .arrow,
.blog-wrap .back-home .arrow { font-size: 1em; }
.blog-article .back-home:hover,
.blog-section .back-home:hover,
.blog-wrap .back-home:hover { transform: translateX(-2px); }

/* ════════ Notifications du formulaire de contact ════════ */
#result:empty { display: none; }
.form-notice {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 16px 18px; border-radius: 12px;
  font-size: .98rem; font-weight: 500; line-height: 1.5;
  margin: 4px 0 8px; animation: fadeInNotice .3s ease;
}
.form-notice-icon {
  flex: 0 0 26px; width: 26px; height: 26px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; color: #fff; font-size: .95rem;
}
.form-notice-success { background: #e8f6ec; border: 1px solid #b6e2c4; color: #1e6b3a; }
.form-notice-success .form-notice-icon { background: #2e9e54; }
.form-notice-error { background: #fdecec; border: 1px solid #f1c4c4; color: #9b2c2c; }
.form-notice-error .form-notice-icon { background: #d64545; }
@keyframes fadeInNotice { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.btn-sam.is-loading { opacity: .7; cursor: progress; }

/* ════════ Modale de validation du formulaire ════════ */
.sds-modal { position: fixed; inset: 0; z-index: 2000; display: none; }
.sds-modal.is-open { display: block; }
body.sds-modal-open { overflow: hidden; }
.sds-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(2, 40, 69, .55); backdrop-filter: blur(3px);
  animation: sdsFade .25s ease;
}
.sds-modal-card {
  position: relative; z-index: 1;
  width: min(440px, calc(100% - 36px));
  margin: 0 auto; top: 50%; transform: translateY(-50%);
  background: #fff; border-radius: 20px; padding: 38px 30px 30px;
  text-align: center; box-shadow: 0 24px 60px rgba(2, 40, 69, .3);
  animation: sdsPop .3s cubic-bezier(.2, .8, .3, 1);
}
.sds-modal-x {
  position: absolute; top: 12px; right: 14px;
  background: none; border: none; font-size: 1.7rem; line-height: 1;
  color: #9aa6ad; cursor: pointer; padding: 4px 8px;
}
.sds-modal-x:hover { color: var(--main-color); }
.sds-modal-icon {
  width: 68px; height: 68px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 18px; font-size: 2rem; font-weight: 700; color: #fff;
}
.sds-modal.is-ok  .sds-modal-icon { background: linear-gradient(135deg, #2e9e54, #38b863); box-shadow: 0 8px 22px rgba(46, 158, 84, .4); }
.sds-modal.is-err .sds-modal-icon { background: linear-gradient(135deg, #d64545, #e76b6b); box-shadow: 0 8px 22px rgba(214, 69, 69, .4); }
.sds-modal-title { font-size: 1.3rem; font-weight: 700; color: var(--main-color); margin: 0 0 10px; }
.sds-modal-msg { color: #51606a; font-size: 1rem; line-height: 1.6; margin: 0 0 24px; }
.sds-modal-ok { min-width: 140px; }
@keyframes sdsFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sdsPop { from { opacity: 0; transform: translateY(-50%) scale(.92); } to { opacity: 1; transform: translateY(-50%) scale(1); } }

/* ════════ Pages annexes (CGV, mentions…) : marges mobiles fiables ════════ */
/* Règle finale : padding latéral garanti + césure des longues URL pour éviter
   tout débordement horizontal qui colle le texte aux bords de l'écran. */
.page-legal {
  padding-left: 18px;
  padding-right: 18px;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.page-legal p, .page-legal li, .page-legal h1, .page-legal h2, .page-legal h3 { overflow-wrap: break-word; }
.page-legal a { overflow-wrap: anywhere; word-break: break-word; }
@media (max-width: 575px) {
  .page-legal { padding-left: 16px; padding-right: 16px; }
}
