/* PP Editoral New */
@font-face {
    font-family: 'PP Editoral New';
    src: url('../fonts/PPEditorialNew-Italic.otf') format('opentype');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'PP Editoral New';
    src: url('../fonts/PPEditorialNew-Regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Editoral New';
    src: url('../fonts/PPEditorialNew-Ultrabold.otf') format('opentype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Editoral New';
    src: url('../fonts/PPEditorialNew-UltraboldItalic.otf') format('opentype');
    font-weight: 800;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'PP Editoral New';
    src: url('../fonts/PPEditorialNew-Ultralight.otf') format('opentype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Editoral New';
    src: url('../fonts/PPEditorialNew-UltralightItalic.otf') format('opentype');
    font-weight: 200;
    font-style: italic;
    font-display: swap;
}

/* PP Neue Montreal */
@font-face {
    font-family: 'PP Neue Montreal';
    src: url('../fonts/PPNeueMontreal-Bold.otf') format('opentype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Neue Montreal';
    src: url('../fonts/PPNeueMontreal-Book.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Neue Montreal';
    src: url('../fonts/PPNeueMontreal-Italic.otf') format('opentype');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'PP Neue Montreal';
    src: url('../fonts/PPNeueMontreal-Medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Neue Montreal';
    src: url('../fonts/PPNeueMontreal-SemiBolditalic.otf') format('opentype');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

/* Utilisation des fonts */

html, body {
  overflow-x: hidden;
}

body {
    font-family: 'PP Neue Montreal', sans-serif;
    font-weight: 400;
    color: #000;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'PP Editoral New', serif;
}

h3 {
    font-size: 2.1em;
}

.fw300 {
    font-weight: 300;
}

.fw400 {
    font-weight: 400;
}

.fw600 {
    font-weight: 600;
}

.display-5 {
    font-weight: 400;
}


p {
    font-weight: 300;
}

body.dark-mode {
    background-color: #0c0c18;
    color: #f5f5f5;
}

body.dark-mode .cGrey {
    color: #ccc;
}

body.dark-mode .bg-circle {
    opacity: 0.2;
}

body.dark-mode .video-background-holder {
    background-color: #0c0c18;
    transition: background-color 0.4s ease;
}

.google_button {
    position: relative;
    width: 100%;
    padding: 10px 20px;
    text-align: center;
    display: block;
    border: 1px solid #DADCE0;
    cursor: pointer;
}

.google_button:before {
    content: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath style='stroke:none;fill-rule:nonzero;fill:%234285f4;fill-opacity:1' d='M12.238 9.816v4.649h6.586c-.289 1.496-1.156 2.762-2.457 3.613l3.969 3.02c2.316-2.094 3.652-5.172 3.652-8.825 0-.851-.078-1.668-.222-2.457Zm0 0'/%3E%3Cpath style='stroke:none;fill-rule:nonzero;fill:%2334a853;fill-opacity:1' d='m5.379 14.285-.895.672-3.171 2.422A12.268 12.268 0 0 0 12.238 24c3.305 0 6.075-1.07 8.098-2.902l-3.973-3.02c-1.09.719-2.48 1.156-4.125 1.156-3.183 0-5.886-2.105-6.855-4.941Zm0 0'/%3E%3Cpath style='stroke:none;fill-rule:nonzero;fill:%23fbbc05;fill-opacity:1' d='M1.313 6.621A11.659 11.659 0 0 0 0 12c0 1.941.477 3.762 1.313 5.379 0 .012 4.074-3.098 4.074-3.098A7.047 7.047 0 0 1 4.997 12c0-.797.144-1.559.39-2.281Zm0 0'/%3E%3Cpath style='stroke:none;fill-rule:nonzero;fill:%23ea4335;fill-opacity:1' d='M12.238 4.777c1.801 0 3.403.614 4.684 1.79l3.504-3.434C18.3 1.187 15.543 0 12.238 0 7.453 0 3.328 2.695 1.313 6.621l4.07 3.098c.969-2.836 3.672-4.942 6.855-4.942Zm0 0'/%3E%3C/svg%3E");
}

.google_button:before {
    height: 24px;
    left: 14px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
}

.facebook_button {
    position: relative;
    width: 100%;
    padding: 10px 20px;
    text-align: center;
    display: block;
    border: 1px solid #1878F2;
    background-color: #1878F2;
    color: #ffffff;
    cursor: pointer;
}

.facebook_button:before {
    content: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25'%3E%3Cpath style='stroke:none;fill-rule:nonzero;fill:%23fff;fill-opacity:1' d='M25.008 12.504C25.008 5.594 19.406 0 12.504 0 5.594 0 0 5.594 0 12.504c0 6.238 4.574 11.414 10.55 12.351v-8.738H7.376v-3.613h3.176V9.75c0-3.137 1.863-4.867 4.719-4.867 1.367 0 2.8.242 2.8.242v3.082h-1.574c-1.555 0-2.039.965-2.039 1.95v2.347h3.469l-.555 3.613h-2.914v8.738c5.977-.937 10.55-6.113 10.55-12.351'/%3E%3Cpath style='stroke:none;fill-rule:nonzero;fill:%231877f2;fill-opacity:1' d='m17.371 16.117.555-3.613h-3.469v-2.348c0-.984.484-1.949 2.04-1.949h1.573V5.125s-1.433-.242-2.8-.242c-2.856 0-4.72 1.73-4.72 4.867v2.754H7.376v3.613h3.176v8.738c.636.098 1.289.153 1.953.153.664 0 1.316-.055 1.953-.153v-8.738h2.914'/%3E%3C/svg%3E");
}

.facebook_button:before {
    height: 24px;
    left: 14px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
}


.email_button {
    position: relative;
    width: 100%;
    padding: 10px 20px;
    text-align: center;
    display: block;
    border: 1px solid #DADCE0;
    cursor: pointer;
}

.separator {
    display: flex;
    align-items: center;
    text-align: center;
    color: #6c757d;
    margin: 20px 0;
    font-size: 16px;
}

.separator::before,
.separator::after {
    content: '';
    flex-grow: 1;
    height: 1px;
    background-color: #ced4da;
    margin: 0 10px;
}

.text-violet {
    color: #8013af;
}

.resume {
    border: 1px solid #DADCE0;
    padding: 25px;
}

.hero-mask-wave {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    z-index: 1;
}

.logoMenu {
    max-width: 200px;
}

.mouse {
    width: 40px;
    height: 60px;
    border: 3px solid #fff;
    border-radius: 60px;
    position: relative;

    &::before {
        content: '';
        width: 12px;
        height: 12px;
        position: absolute;
        top: 10px;
        left: 50%;
        transform: translateX(-50%);
        background-color: #fff;
        border-radius: 50%;
        opacity: 1;
        animation: wheel 2s infinite;
        -webkit-animation: wheel 2s infinite;
    }
}

@keyframes wheel {
    to {
        opacity: 0;
        top: 35px;
    }
}

@-webkit-keyframes wheel {
    to {
        opacity: 0;
        top: 35px;
    }
}

.posMouse {
    bottom: 2em;
    left: 50%;
    transform: translateX(-50%);
}

.posRs {
    right: 2em;
    top: 2em;
    z-index: 17001;
}

.posRs i {
    color: #fff;
    font-size: 1.8em;
    margin: 0 0 0 25px;
}

.posHamb {
    left: 2em;
    top: 2em;
    z-index: 2;
}

.posHamb i {
    color: #fff;
    font-size: 2em;
}

.btn-light {
    background-color: #CCDCDC !important;
    border-color: #CCDCDC !important;
}

.btn-light:hover {
    background-color: #CCDCDC !important;
    border-color: #CCDCDC !important;
}

.btn-primary {
    background-color: #8013af;
    border-color: #8013af;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.btn-primary:hover {
    background-color: #ffbd4a;
    border-color: #ffbd4a;
}

body.dark-mode .btn-primary {
    background-color: #8013af;
    border-color: #8013af;
}

body.dark-mode .btn-primary:hover {
    background-color: #333;
    border-color: #333;
}

.btn-success {
    background-color: #009752;
    border-color: #009752;
}

.btn-secondary {
    background-color: #333;
    border-color: #333;
}

.btn-secondary:hover {
    background-color: #009752;
    border-color: #009752;
}

.btn-outline-secondary {
    border: 2px solid #8013af;
    padding: 14px 30px;
    border-radius: 8px;
    font-weight: 600;
    color: #8013af;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.btn-outline-secondary:hover {
    background-color: #ffbd4a;
    border-color: #ffbd4a;
    color: #fff;
}

.btn-black {
    background-color: #000 !important;
    border-color: #000 !important;
    color: #fff;
}

.btn-black:hover {
    background-color: #000;
    border-color: #000;
    color: #fff !important;
}

.cat-filter.btn-primary,
.cat-filter.btn-primary.active {
    background-color: #8013af;
    border-color: #8013af;
}

.cat-filter.btn-outline-primary {
    color: #558c8c;
    border-color: #558c8c;
    background-color: transparent;
}

.cat-filter.btn-outline-primary:hover {
    background-color: #558c8c;
    border-color: #558c8c;
    color: #fff;
}

.cPurple {
    color: #8013af;
}

.cBlue {
    color: #283252;
}

.cGrey {
    color: #747990;
}

.cGreen1 {
    color: #558c8c;
}

.cGreen2 {
    color: #8DB9B9;
}

.cYellow {
    color: #ffbd4a;
}

.bgGrey {
    background-color: #eeeeee;
}

.bgGrey2 {
    background-color: #f5f6fa;
}

.bgBlack {
    background-color: #1d1d1d;
}

.bgBlue {
    background-color: #283252;
}

.bgWhite {
    background-color: #ffffff;
}

.bgYellow {
    background-color: #ffbd4a;
}

.bgGreen {
    background-color: #558c8c;
}

.video-background-holder {
    position: relative;
    background-color: #f5f6fa;
    height: 100vh;
    min-height: 25rem;
    width: 100%;
    overflow: hidden;
    transition: background-color 0.4s ease;
}

.video-background-holder video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 0;
    -ms-transform: translateX(-50%) translateY(-50%);
    -moz-transform: translateX(-50%) translateY(-50%);
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
}

.video-background-content {
    position: relative;
    z-index: 2;
    overflow: hidden;
}

.video-background-content h1 {
    color: #000;
    font-weight: 400;
}

body.dark-mode .video-background-content h1 {
    color: #fff;
}





/* états par défaut */
.menu-bar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background: #f5f6fa;
    z-index: 1030;
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    transition:
        box-shadow 0.4s ease,
        background-color 0.4s ease;
}

/* dark */
body.dark-mode .menu-bar {
    background: #0c0c18;
    transition: background-color .35s ease, box-shadow .25s ease, transform .25s ease;
}

.menu-bar.is-sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    box-shadow: 0 8px 24px rgba(16, 24, 40, .12);
}

.nav-link {
    color: #000;
}

.nav-link:hover {
    color: #8013af;
}

body.dark-mode .nav-link {
    color: #fff;
}

.logoMenu {
    transition: opacity 0.25s ease;
}

body.dark-mode .menu-bar.is-sticky {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05),
        0 8px 24px rgba(0, 0, 0, 0.4);
}

.theme-toggle {
    position: relative;
    width: 56px;
    height: 28px;
}

.theme-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle {
    position: relative;
    display: inline-block;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.track {
    position: absolute;
    inset: 0;
    background: #e8e8ec;
    border-radius: 999px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .1);
    transition: background .25s;
}

.knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s, background .25s;
}

.icon-sun,
.icon-moon {
    position: absolute;
    font-size: 14px;
    transition: opacity .2s;
    pointer-events: none;
}

.icon-sun {
    color: #1e1e2f;
    opacity: 1;
}

.icon-moon {
    color: #fff;
    opacity: 0;
}

.theme-toggle input:checked+.toggle .track {
    background: #4b0082;
}

.theme-toggle input:checked+.toggle .knob {
    transform: translateX(28px);
    background: #7b2ff7;
}

.theme-toggle input:checked+.toggle .icon-sun {
    opacity: 0;
}

.theme-toggle input:checked+.toggle .icon-moon {
    opacity: 1;
}

/* Bouton global backToTop */
.scroll-top {
    position: fixed;
    right: 28px;
    bottom: 100px;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
    background-color: #fff;
}

/* Apparition quand on a scroll */
.scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Svg */
.scroll-top__svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
    /* pour que ça commence en haut */
}

/* Cercle de fond */
.scroll-top__bg {
    fill: none;
    stroke: #d9d9e3;
    stroke-width: 6;
}

/* Cercle de progression */
.scroll-top__progress {
    fill: none;
    stroke: #8013af;
    stroke-width: 6;
    stroke-linecap: round;
    stroke-dasharray: 0 999;
    /* sera écrasé en JS */
    transition: stroke-dashoffset .1s linear;
}

/* Flèche au centre */
.scroll-top__arrow {
    position: absolute;
    top: 53%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(135deg);
    width: 12px;
    height: 12px;
    border-left: 2px solid #8013af;
    border-bottom: 2px solid #8013af;
}

/* Option : petit hover */
.scroll-top:hover .scroll-top__arrow {
    transform: translate(-50%, -50%) rotate(135deg) scale(1.1);
}






/* ===================================
   FIX SWIPER - Éviter le crop
   =================================== */

.services-section {
    position: relative;
    overflow: visible !important;
    /* Force le visible */
    padding: 60px 0;
    /* Espace supplémentaire */
}

.container {
    overflow: visible !important;
    /* Pas de limitation du container */
}

.servicesSwiper {
    /* padding: 50px 15px 90px !important;  */
    margin: 0 -15px;
    overflow: visible !important;
}

.swiper-wrapper {
    padding: 20px 0 !important;
    /* Espace vertical important */
}

.swiper-slide {
    height: auto !important;
    padding: 0 15px;
    /* Espace entre les slides */
}

/* Card principale */
.service-card-light {
    background: white;
    border-radius: 16px;
    padding: 0;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid #e9ecef;
    position: relative;
    overflow: hidden;
    height: 100%;
}

.service-card-light:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
    border: 2px solid #ffbd4a;
    z-index: 10;
}

/* Card Featured */
.service-card-featured {
    border: 2px solid #8013af;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);

}

.service-card-featured:hover {
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
    border: 2px solid #ffbd4a;
}

.featured-badge {
    position: absolute;
    top: 20px;
    right: -35px;
    background: linear-gradient(135deg, #ffbd4a, #ffbd4a);
    color: white;
    padding: 8px 45px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    transform: rotate(45deg);
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    z-index: 1;
}

/* Header */
.card-header-light {
    padding: 35px 30px 25px;
    text-align: center;
    border-bottom: 1px solid #f0f0f0;
}

.service-name {
    font-size: 2rem;
    margin-bottom: 10px;
}

.service-subtitle {
    font-size: 0.95rem;
    margin-bottom: 0;
}

/* Prix */
.card-price-section {
    padding: 35px 30px;
    text-align: center;
}

.price-display {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    line-height: 1;
    margin-bottom: 8px;
}

.currency {
    font-size: 2rem;
    font-weight: 600;
    margin-right: 5px;
    margin-top: 8px;
}

.amount {
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
}

.price-period {
    font-size: 0.8rem;
    font-weight: 600;
    color: #ffbd4a;
    letter-spacing: 1px;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.billing-info {
    font-size: 0.85rem;
    color: #8e44ad;
    font-weight: 500;
    margin-bottom: 0;
}

/* Divider */
.card-divider {
    height: 1px;
    background: repeating-linear-gradient(to right,
            #dee2e6 0px,
            #dee2e6 8px,
            transparent 8px,
            transparent 16px);
    margin: 0 30px;
}

/* Features */
.features-list {
    list-style: none;
    padding: 30px 30px 20px;
    margin: 0;
}

.features-list li {
    padding: 12px 0;
    font-size: 0.95rem;
    position: relative;
    padding-left: 25px;
    line-height: 1.5;
}

.features-list li:before {
    content: "\F270";
    position: absolute;
    left: 0;
    color: #8013af;
    font-weight: 400;
    font-family: "bootstrap-icons";
    /* Important ! */
}

/* Bouton - CORRIGÉ */
.btn-service-light {
    background: white;
    color: #8013af;
    border: 2px solid #8013af;
    padding: 14px 40px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
    text-decoration: none;
    display: block;
    /* Block au lieu de inline-block */
    text-align: center;
    margin: 0 30px 30px;
    /* Marges latérales au lieu de width 100% */
    max-width: calc(100% - 60px);
    /* Largeur max */
}

.btn-service-light:hover {
    background: #ffbd4a;
    border: 2px solid #ffbd4a;
    color: white;
    box-shadow: 0 4px 12px rgba(68, 156, 103, 0.3);
}



.btn-service-primary {
    background: #8013af;
    color: #fff;
    border: 2px solid #8013af;
    padding: 14px 40px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
    text-decoration: none;
    display: block;
    /* Block au lieu de inline-block */
    text-align: center;
    margin: 0 30px 30px;
    /* Marges latérales au lieu de width 100% */
    max-width: calc(100% - 60px);
    /* Largeur max */
}

.btn-service-primary:hover {
    background: #ffbd4a;
    border: 2px solid #ffbd4a;
    color: white;
    box-shadow: 0 4px 12px rgba(68, 156, 103, 0.3);
}




/* Navigation */
.servicesSwiper .swiper-button-next,
.servicesSwiper .swiper-button-prev {
    background: white;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
    color: #449C67;
    border: 1px solid #e9ecef;
    z-index: 20;
}

.servicesSwiper .swiper-button-next:after,
.servicesSwiper .swiper-button-prev:after {
    font-size: 18px;
    font-weight: 900;
}

.servicesSwiper .swiper-button-next:hover,
.servicesSwiper .swiper-button-prev:hover {
    background: #449C67;
    color: white;
    border-color: #449C67;
    transform: scale(1.1);
}

/* Pagination */
.servicesSwiper .swiper-pagination {
    position: relative !important;
    bottom: 0 !important;
    margin-top: 30px;
}

.servicesSwiper .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #dee2e6;
    opacity: 1;
}

.servicesSwiper .swiper-pagination-bullet-active {
    background: #449C67;
    width: 28px;
    border-radius: 5px;
}

/* Dark Mode */
body.dark-mode .services-section {
    background: #1a202c;
}

body.dark-mode .service-card-light {
    background: #1e2833;
    border-color: #2d3748;
}

body.dark-mode .card-header-light {
    border-bottom-color: #2d3748;
}

body.dark-mode .service-name {
    color: #f7fafc;
}

body.dark-mode .service-subtitle,
body.dark-mode .features-list li {
    color: #cbd5e0;
}

body.dark-mode .amount,
body.dark-mode .currency {
    color: #f7fafc;
}

body.dark-mode .price-period {
    color: #a0aec0;
}

body.dark-mode .card-divider {
    background: repeating-linear-gradient(to right,
            #2d3748 0px,
            #2d3748 8px,
            transparent 8px,
            transparent 16px);
}

body.dark-mode .btn-service-light {
    background: #1e2833;
    border-color: #449C67;
    color: #449C67;
}

body.dark-mode .btn-service-light:hover {
    background: #449C67;
    color: white;
}

body.dark-mode .servicesSwiper .swiper-button-next,
body.dark-mode .servicesSwiper .swiper-button-prev {
    background: #2d3748;
    border-color: #2d3748;
}

/* Responsive */

.view_popup {
    cursor: pointer;
}

a {
    color: #8013af;
}

a:link {
    text-decoration: none;
}

a:visited {
    text-decoration: none;
}

a:hover {
    text-decoration: none;
    color: #006637;
}

a:active {
    text-decoration: none;
}


.userMenu a {
    color: #000;
}

.userMenu a:hover {
    color: #8013af;
}

.nav-item {
    margin-top: 5px;
}


.scaleHover {
    transition: all 0.7s;
}

.scaleHover:hover {
    scale: 1.08;
}

.breadcrumb {
    font-size: .9em;
}

.container-recherche {
    z-index: 20000;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.9);

}

.close-recherche {

    position: absolute;
    top: 8px;
    right: 25px;
    cursor: pointer;

}

.input-recherche {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}


.image-background-overlay-2 {
    position: absolute;
    top: 0;
    right: 10px;
    bottom: 0;
    left: 12px;
    /* width: 100%; */
    height: 100%;
    overflow: hidden;
    background-attachment: fixed;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 1em;
    z-index: 2;
}

.anchorCompensation::before {
    content: "";
    display: block;
    height: 100px;
    margin-top: -100px;
    visibility: hidden;
}

#openMobile {
    position: fixed;
    top: 0px;
    left: -346px;
    bottom: 0px;
    width: 345px;
    background-color: #e1e1e1;
    z-index: 16000;
}

#openMobile.open {
    left: 0px !important;
}



#panPanier {
    position: fixed;
    top: 80px;
    right: -346px;
    bottom: 0px;
    width: 345px;
    background-color: #e1e1e1;
    z-index: 16000;
    border-top-left-radius: 1em;
}

.panResult {
    position: absolute;
    top: 140px;
    right: 0px;
    left: 20px;
    bottom: 60px;
    width: 100%;
    z-index: 16000;
    overflow-y: auto;
    overflow-x: hidden;
}


#panPanier.open {
    right: 0px !important;
}

.togglePanier {
    cursor: pointer;
}

.panierTitle {
    font-size: 18px;
    text-transform: uppercase;
}

.contenuPanier {
    width: 100%;
}

.icoPagination {
    display: inline-block;
    line-height: 41px !important;
    color: #fff;
    background: #333333;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    text-align: center;
    -webkit-transition: all .3s ease-in-out 0s;
    -moz-transition: all .3s ease-in-out 0s;
    -ms-transition: all .3s ease-in-out 0s;
    -o-transition: all .3s ease-in-out 0s;
    transition: all .3s ease-in-out 0s;
}

.icoPagination:hover,
.icoPagination:visited {
    color: #fff;
}

.icoPaginationActive {
    display: inline-block;
    line-height: 41px !important;
    color: #fff;
    background: #009752;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    text-align: center;
    -webkit-transition: all .3s ease-in-out 0s;
    -moz-transition: all .3s ease-in-out 0s;
    -ms-transition: all .3s ease-in-out 0s;
    -o-transition: all .3s ease-in-out 0s;
    transition: all .3s ease-in-out 0s;
}



.itemLogo {
    display: inline-block;
    width: 230px !important;
}





.sticky {
    top: 0 !important;
    left: 0;
    transform: none;
    z-index: 1000;
    width: 100%;
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    padding: 10px 0;
    transition: all 0.3s ease-in-out;
}

.hidden {
    opacity: 0;
    transition: opacity 0.6s;
}

.menuBgVid {
    top: 2em;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    transition: all 0.6s ease-in-out;
}

.menuBgVid a {
    color: #fff;
    margin: 0 30px 0 0;
    letter-spacing: .1em;
}

.menuBgVidScroll {
    top: 2em;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    transition: all 0.6s ease-in-out;
}

.menuBgVidScroll a {
    color: #333;
    margin: 0 30px 0 0;
    letter-spacing: .1em;
}

.menuBgVidScroll a:hover {
    color: #333;
}

.menu-transition {
    transition: margin 0.3s ease-in-out, padding 0.3s ease-in-out;
}

/* #mainContent {
    padding-top: 70px;
} */

.grow {
    transition: all .3s ease-in-out;
    cursor: pointer;
}

.grow:hover {
    transform: scale(1.05);
}



.with-shadow {
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.dropdown-menu li a {
    color: #333;
}

.dropdown-item {
    font-size: .9em;
    transition: background-color 0.6s ease-in-out, color 0.6s ease-in-out;
}

.dropdown-item:hover {
    background-color: #f8f9fa;
    color: #000;
}

.catHomeImg {
    border-radius: 1em;
    transition: transform 0.7s ease;
}

.catHomeText {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}

.catHomeIco {
    bottom: .3em;
    left: .5em;
    color: rgba(255, 255, 255, .7);
    font-size: 1.5em;
    z-index: 2;
}

.catCatalogueImg {
    border-radius: 1em;
    transition: transform 0.7s ease;
}

.catCatalogueImg2 {
    border-top-left-radius: 1em;
    border-top-right-radius: 1em;
}

.catalogueDesc {
    z-index: 4;
    bottom: 20px;
    left: 20px;
    right: 80px;
    color: #fff;
}

.catalogueOverlay {
    z-index: 2;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    background-color: rgba(0, 0, 0, 0);
}

.catalogueOverlay3 {
    z-index: 2;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    background-color: rgba(0, 0, 0, .3);
}

.catalogueOverlay2 {
    z-index: 2;
    top: 0px;
    left: 0px;
    right: 0px;
    background-color: rgba(0, 0, 0, .3);
}

.catalogueLinkIcon {
    z-index: 4;
    bottom: 20px;
    right: 20px;
    color: #fff !important;
    font-size: 3em;
}

.catalogueLinkIcon2 {
    z-index: 4;
    bottom: 20px;
    right: 20px;
    color: #fff !important;
    font-size: 2em;
}

.titreH2Catalogue {
    font-size: 2.7em;
    z-index: 2;
}

.elementProduct {
    transition: all 0.7s ease;
}

.image-background-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-attachment: fixed;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 1em;
    z-index: 2;
}

.catHome .prestaHome .position-relative {
    overflow: hidden;
    cursor: pointer;
    border-radius: 1em;
}

.catHome .prestaHome .position-relative:hover .catHomeImg {
    transform: scale(1.1);
}

.catHome .prestaHome .position-relative:hover .image-background-overlay {
    background-color: rgba(0, 0, 0, 0.5);
}

.catHome .catHomeImgHover .position-relative {
    overflow: hidden;
    cursor: pointer;
    border-radius: 1em;
}

.catHome .catHomeImgHover .position-relative:hover .catHomeImg {
    transform: scale(1.1);
}

.catHome .catHomeImgHover .position-relative:hover .image-background-overlay {
    background-color: rgba(0, 0, 0, 0);
}

.catHomeText2 {
    position: absolute;
    bottom: .9em;
    right: 1em;
    z-index: 3;
}

.catHomeImg1 {
    height: 578px;
}

.movText {
    transition: opacity 0.5s, transform 0.5s;
    opacity: 1;
    display: inline-block;
}

.hidden {
    opacity: 0;
    transform: translateY(-20px);
}

.footer {
    background-color: #f5f6fa;
    position: relative;
    z-index: 1;
}

.footer p {
    font-size: .9em;
}

.footer h4 {
    font-size: 1em;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 600;
    font-style: normal;
}

.footer .sectionText {
    font-size: .9em;
}

.footer a {
    color: #333;
    font-size: .9em;
}

.footer .btn {
    color: #fff;
}

.credits {
    color: #727472;
    font-size: .8em;
}

.legal {
    font-size: .8em;
}

.owl-carousel .owl-stage {
    display: flex;
    align-items: center;
}

.owl-carousel .caption {
    text-align: center;
}

.icoConceptPos {
    width: 150px;
    height: 150px;
    margin: 0 auto;
}

.icoConcept:not(:last-child):after {
    content: "";
    display: block;
    border-top: .25rem dotted #009752;
    width: 30%;
    position: absolute;
    left: 11.7rem;
    top: 4.3rem;
}

.icoConcept p {
    font-size: .9em;
}

.icoConcept2 p {
    font-size: .9em;
}

.icoConceptImg {
    width: 150px;
    height: 150px;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin: 0 auto;
    border: 4px solid #009752;
}

.icoConceptImg img {
    max-width: 70px;
}

.icoConceptNumber {
    background-color: #009752;
    right: 3px;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
}


.engagementsHome h4 {
    font-size: 1.2em;
}

.engagementsHome p {
    font-size: .9em;
    min-height: 65px;
}

/* .engagementsHome{border-radius: 0 0 1em 1em; border-top: 2px solid #fff;} */

.engagementsHome {
    border-radius: 0 0 1em 1em;
}

.engagementsIco {
    background-color: #009752;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin: 0 auto;
    width: 90px;
    height: 90px;
    top: -37px;
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid #fff;
}

.engagementsIco img {
    max-width: 50px;
}

.engagementsImg {
    border-radius: 1em 1em 0 0;
}

.AproposMarge img {
    border-radius: 1em;
}

.AproposHome3 {
    bottom: 0;
    left: 25px;
    border: 0px solid #fff;
    border-radius: 1em;
}

.AproposInfos {
    background-color: #009752;
    padding: 20px;
    top: 45px;
    left: 73px;
    border-radius: 1em;
}

.AproposInfos span {
    font-size: 2.5em;
}

.AproposInfosRow {
    max-width: 20em;
}

.image-hover {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 1s ease-out;
}

.image-hover:hover {
    opacity: 1;
}

.pictoMadeInFr {
    right: 1em;
}

.pictoMadeInFr img {
    max-width: 110px;
}



.half-screen .breadcrumb {
    z-index: 2;
    top: 1em;
    right: 2em;
    font-size: .9em;
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 1em;
}

.half-screen .breadcrumb a {
    color: #fff;
}

.half-screen .breadcrumb-item.active {
    color: #fff;
}

.half-screen .breadcrumb-item::before {
    color: #fff;
}

.blcContact i {
    font-size: 2em;
}

.blcContact h3 {
    font-size: 1.5em;
}


.shadow p {
    margin-bottom: 0;
}

.rsContact i {
    font-size: 2em;
    margin: 0 0 0 25px;
}



.br15 {
    border-radius: 1.5em;
}

.BlogAcc p {
    font-size: 1em;
}

.cardBlogImg {
    border-radius: 1.5em 1.5em 0 0;
}

.cardBlogApercu {
    font-size: .9em;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 300;
    font-style: normal;
}

.cardBlogFooter {
    border: 0;
    background-color: #eeeeee;
    border-radius: 0 0 1.5em 1.5em !important;
}

.blogTag {
    bottom: 1em;
}

.blogTag .btn-outline-primary {
    font-size: .8em;
    border-radius: 1.5em;
    color: #009752;
    border-color: #009752;
}

.blogTag .btn-outline-primary:hover {
    background-color: #009752;
    color: #fff;
}

.timePostBlog {
    font-size: .8em;
    color: #95a5a6;
}

.card {
    border: 0;
}

.global-image img {
    position: absolute;
    z-index: -2;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    transform: scale(1);
    transition: transform 0.9s ease-in-out;
}

.post-image-wrap {
    min-height: 66vh;
    z-index: 1;
}

.sticky-top {
    top: 80px;
    z-index: 999;
}

.partageBlog {
    background: #eeeeee;
    padding: 32px 16px 32px 32px;
    position: relative;
    z-index: 1;
}

.partageBlog p {
    font-size: .9em;
}

.partageBlog a {
    font-size: .9em;
}

.sommaireBlog {
    background: #eeeeee;
    padding: 32px 16px 32px 32px;
    position: relative;
    z-index: 1;
}

.sommaireBlog a:hover {
    color: #333;
}

.sommaireBlog ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

.sommaireBlog li {
    margin-bottom: .5rem;
    font-size: .85em;
}

.illuBlocBlog {
    right: 17px;
    top: 10px;
    font-size: 2em;
    color: #99acbd;
}

.iconCata i {
    background-color: #009752;
    color: #fff;
    border-radius: .3em;
}

.relatedArticles {
    top: 1em;
    left: 1em;
}

.relatedArticles h3 {
    font-size: 1.2em;
    z-index: 2;
}

.relatedArticles p {
    z-index: 2;
}

.NavArticles a {
    font-size: .9em;
}

.relatedArticlesOverlay {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-attachment: fixed;
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 1em;
    z-index: 2;
}

.megaMenuCatCatalogue img {
    border-radius: 1em;
    transition: transform 0.7s ease;
}

.megaMenuCatCatalogue img:hover {
    transform: scale(1.1);
}

.megaMenuCatCatalogue span {
    left: 1em;
    bottom: .5em;
    z-index: 3;
}

.megaMenuCatCatalogue a {
    z-index: 4;
}

.image-background-overlay-mega-menu {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-attachment: fixed;
    background-color: rgba(0, 0, 0, 0.4);
    border-radius: 1em;
    z-index: 2;
}

/* Asprect ratio */
.cont {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.box {
    width: 100%;
    background-color: #000;
    color: #fff;
}

/*.box{width: 100%;background-color: #000;display: flex;align-items: center;justify-content: center;color: #fff;}*/
.box-1 {
    aspect-ratio: 16/9;
}

.box-2 {
    aspect-ratio: 3/4;
}

.box-3 {
    aspect-ratio: 1/1;
}

.box-4 {
    aspect-ratio: 1/2;
}

.box-5 {
    aspect-ratio: 4/3;
}

.box-6 {
    aspect-ratio: 9/4;
}

.box-7 {
    aspect-ratio: 9/3;
}

.img-fluid-h {
    height: 100%;
    width: 100%;
    display: block;
}

.scrollbar1::-webkit-scrollbar {
    width: 12px;
}

.scrollbar1::-webkit-scrollbar-track {
    border-radius: 0px;
    background-color: #212529;
    border: 1px solid #212529;

}

.scrollbar1::-webkit-scrollbar-thumb {
    border-radius: 0px;
    background-color: #0D6EFD;
}

.scrollbar2::-webkit-scrollbar {
    width: 4px;
}

.scrollbar2::-webkit-scrollbar-track {
    border-radius: 0px;
    background-color: #212529;
    border: 1px solid #212529;

}

.scrollbar2::-webkit-scrollbar-thumb {
    border-radius: 0px;
    background-color: #0D6EFD;
}














.coach-card {
    border-radius: 2em;
    transition: transform .2s ease, box-shadow .2s ease;
    background-color: #f5f6fa;
}

.coach-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1rem 2rem rgba(0, 0, 0, .08);
}

.coach-avatar-wrapper {
    border-radius: 2em;
    overflow: hidden;
    border: 9px solid #ffbd4a;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, .08);
}

.coach-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.coach-presentation {
    line-height: 1.5;
}

.social-links .btn {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}




.coach-card {
    position: relative;
    overflow: hidden;
    /* indispensable pour couper les shapes */
}

/* Formes décoratives */
.coach-card .card-shape {
    position: absolute;
    height: 50px;
    width: 300px;
    border-radius: 50rem;
    background: #558c8c;
    opacity: .2;
    transform: rotate(-45deg);
}

/* Comme les shapes 4-5-6 de ta CTA */
.coach-card .shape-1 {
    bottom: 0;
    left: 0;
    transform: rotate(-45deg) translate(-40px, -90px);
}

.coach-card .shape-2 {
    bottom: 0;
    left: 0;
    transform: rotate(-45deg) translate(-120px, -20px);
}

.coach-card .shape-3 {
    bottom: 0;
    left: 0;
    transform: rotate(-45deg) translate(-80px, -160px);
}

/* Position spécifique pour le blob du HERO */

.blob-header {
    position: absolute;
    top: 36%;
    left: 62%;
    transform: translate(-50%, -50%);
    width: 700px;
    height: 700px;
    z-index: 0;
    pointer-events: none;
}

.blob-header svg {
    width: 100%;
    height: 100%;
}

.blob-background {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 600px;
    z-index: 0;
    pointer-events: none;
}

.blob-background svg {
    width: 100%;
    height: 100%;
}

.col-lg-6.position-relative {
    z-index: 1;
}

.col-lg-6.position-relative img {
    z-index: 2;
}

/* Section globale (fond gris clair autour de la box) */
.cta-section {

    display: flex;
    justify-content: center;
}

/* La box principale */
.cta-block.is-boxed {
    position: relative;
    background: #ffffff;
    border: 1px solid #efefef;
    margin: 0 auto;
    border-radius: 1.5rem;
    overflow: hidden;
    /* important pour couper les formes */
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
}

/* --- FORMES DÉCORATIVES --- */

.cta-block.is-boxed .box-shape {
    position: absolute;
    height: 50px;
    width: 300px;
    border-radius: 50rem;
    background: #558c8c;
    opacity: .3;
}

/* Haut droit */
.cta-block.is-boxed .box-shape.box-shape-1 {
    top: 0;
    right: 0;
    transform: rotate(-45deg) translate(50px, 100px);

}

.cta-block.is-boxed .box-shape.box-shape-2 {
    top: 0;
    right: 0;
    transform: rotate(-45deg) translate(150px, 20px);

}

.cta-block.is-boxed .box-shape.box-shape-3 {
    top: 0;
    right: 0;
    transform: rotate(-45deg) translate(100px, 180px);

}

/* Bas gauche */
.cta-block.is-boxed .box-shape.box-shape-4 {
    bottom: 0;
    left: 0;
    transform: rotate(-45deg) translate(-50px, -100px);

}

.cta-block.is-boxed .box-shape.box-shape-5 {
    bottom: 0;
    left: 0;
    transform: rotate(-45deg) translate(-150px, -20px);

}

.cta-block.is-boxed .box-shape.box-shape-6 {
    bottom: 0;
    left: 0;
    transform: rotate(-45deg) translate(-100px, -180px);

}

/* --- CONTENU --- */

.cta-content {
    position: relative;
    z-index: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /* équilibre haut / bas */
    min-height: 260px;
    /* ajuste selon la hauteur de ta box */
    transition: transform .35s ease;
}


/* Texte descriptif collé en bas de la box */
.cta-content>div:last-child {
    margin-top: auto;
    font-size: 0.95rem;
    color: #666;
}

.cta-title {
    font-size: 2rem;
    font-weight: 400;
    margin-bottom: .5rem;
}

.cta-subtitle {
    font-size: 1rem;
    color: #558C8C;
    margin-bottom: 2.5rem;
    font-weight: 700;
}

.cta-buttons {
    display: flex;
    justify-content: center;
}

.cta-button {
    border: none;
    cursor: pointer;
    font-weight: 600;
    border-radius: 999px;
    padding: 0.85rem 2.5rem;
    font-size: 0.95rem;
}

.cta-button-primary {
    background: linear-gradient(135deg, #8013af, #a200ff);
    color: #fff;
    box-shadow: 0 10px 25px rgba(128, 0, 255, 0.35);
}

.cta-button-primary:hover {
    color: #fff;
}


/* petite élévation de la box au survol */
.cta-block.is-boxed {
    transition: transform .35s ease;
}


.cta-block.is-boxed:hover {
    transform: translateY(-3px);

}

/* La section devient le conteneur relatif */
.services-section {
    position: relative;
    overflow: hidden;
    /* pour éviter les scrollbars horizontales */
}

/* Le SVG qui « lèche » le bord droit de l’écran */
.section-tongue-1 .tongue-1 {
    position: absolute;
    top: 75px;
    right: 0;
    width: 720px;
    height: 539px;
    z-index: 1;
    /* derrière le contenu, mais au-dessus du fond */
    pointer-events: none;
    /* pour ne pas gêner les clics sur les boutons */
}

/* Le contenu doit passer devant le SVG */
.section-tongue-1 .container {
    position: relative;
    z-index: 2;
}

/* Couleur de la langue */
.tongue-grey path {
    fill: #f5f6fa;
    /* ajuste selon ton design system */
}

/* Gestion de l'opacité du 2ᵉ path */
.tongue-grey path.opacity-50 {
    opacity: 0.5;
}




/* Container principal */
.testimonials-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

.testimonials-section h2 {
    text-align: center;
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: #2c3e50;
}

.testimonials-section .subtitle {
    text-align: center;
    font-size: 1.1rem;
    color: #7f8c8d;
    margin-bottom: 3rem;
}

/* Grille de témoignages */
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
    margin-top: 2rem;
}

/* Carte témoignage */
.testimonial-card {
    background: white;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid #e8e8e8;
    opacity: 0;
    transform: translateY(20px);
}

.testimonial-card.fade-in {
    animation: fadeInUp 0.5s ease forwards;
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.testimonial-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border-color: #3498db;
}

/* Header de la carte */
.testimonials-slider-wrapper {
    width: 100%;
    overflow: hidden;
}

.testimonials-slider {
    display: flex;
    gap: 20px;
}

@keyframes slide {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

@keyframes slideReverse {
    0% {
        transform: translateX(-50%);
    }

    100% {
        transform: translateX(0);
    }
}

.testimonials-slider-reverse {
    animation: slideReverse 30s linear infinite !important;
}

.slider-card {
    min-width: 350px;
    max-width: 350px;
    height: 200px;
    background: white;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
}

.slider-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.slider-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #558c8c;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    flex-shrink: 0;
}

.slider-info {
    flex: 1;
}

.slider-name {
    font-weight: 400;
}

.slider-role {
    font-size: 13px;
    color: #7f8c8d;
}

.slider-logo {
    font-size: 12px;
    color: #95a5a6;
}

.slider-comment {
    font-size: 14px;
    line-height: 1.6;
    color: #34495e;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    -webkit-box-orient: vertical;
}

/* Pause au survol */
.testimonials-slider-wrapper:hover .testimonials-slider {
    animation-play-state: paused;
}


.testimonial-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #f0f0f0;
}

.rating {
    font-size: 18px;
    color: #f39c12;
    letter-spacing: 2px;
}

.date {
    font-size: 13px;
    color: #95a5a6;
    font-weight: 500;
}

/* Corps de la carte */
.testimonial-body {
    margin: 16px 0;
}

.comment {
    font-size: 15px;
    line-height: 1.7;
    color: #34495e;
    font-style: italic;
    position: relative;
    margin: 0;
}

.comment::before {
    content: '"';
    font-size: 3rem;
    color: #ecf0f1;
    position: absolute;
    left: -10px;
    top: -20px;
    font-family: Georgia, serif;
    z-index: -1;
}

/* Footer de la carte */
.testimonial-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f0;
    font-size: 14px;
}

.coach {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: #2c3e50;
}

.coach .icon {
    width: 18px;
    height: 18px;
    color: #3498db;
}

.formula {
    font-size: 12px;
    color: #7f8c8d;
    background: #ecf0f1;
    padding: 4px 10px;
    border-radius: 12px;
    white-space: nowrap;
}

.stat-item h3 {
    font-size: 1.5em;
}

.stat-value {
    font-size: 1.3em;
}

/* États de chargement et erreur */
.loading,
.error-message {
    text-align: center;
    padding: 60px 20px;
    color: #7f8c8d;
}

.loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.spinner {
    width: 50px;
    height: 50px;
    border: 4px solid #ecf0f1;
    border-top-color: #3498db;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.error-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.error-message svg {
    width: 48px;
    height: 48px;
    color: #e74c3c;
}

.error-message p {
    font-size: 16px;
    margin: 0;
}

/* Responsive */




/* Mode sombre (optionnel) */


/* Animation d'entrée alternative (vague) */


/* Print styles */


/* Styles du carrousel des partenaires */
.partners-slider-wrapper {
    width: 100%;
    overflow: hidden;
    padding: 20px 0;
    position: relative;
}

.partners-slider {
    display: flex;
    gap: 30px;
    animation: slidePartners 15s linear infinite;
}

@keyframes slidePartners {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* Pause au survol */
.partners-slider-wrapper:hover .partners-slider {
    animation-play-state: paused;
}

.partner-logo-card {
    min-width: 250px;
    max-width: 250px;
    padding: 20px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.partner-logo-card:hover {
    transform: translateY(-5px);
}

.partner-logo-container {
    width: 100%;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.partner-logo-img {
    max-width: 100%;
    max-height: 100px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.9;
    transition: all 0.3s ease;
}

.partner-logo-card:hover .partner-logo-img {
    filter: grayscale(0%);
    opacity: 1;
}

.partner-info {
    text-align: center;
    width: 100%;
}

/* Responsive */





:root {
    --teal1: #558c8c;
    --teal2: #558c8c;
    --paper: #f4f4f4;
    --radius-lg: 2.25rem;
    --radius-md: 1.5rem;
    --shadow-lg: 0 22px 44px rgba(0, 0, 0, .14);
    --shadow-md: 0 12px 30px rgba(0, 0, 0, .08);
    --accent: #ffbd4a;
    --accent-soft: #ffbd4a;
    --text-soft: #ffbd4a;
}

/* =========================
   CARTES
   ========================= */

/* Col gauche (vert premium) */
.premium-teal {
    background: linear-gradient(160deg, var(--teal1), var(--teal2));
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
}

/* Col droite (papier/gris premium) */
.premium-paper {
    background: var(--paper);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    font-size: 1.05rem;
    line-height: 1.7;
}

/* =========================
   OVERLAY FORME CLAIRE
   ========================= */
.premium-shape::after {
    content: "";
    position: absolute;
    right: -18%;
    bottom: -12%;
    width: 65%;
    height: 85%;
    background: rgba(255, 255, 255, .12);
    border-radius: 2.3rem;
    transform: rotate(8deg);
}

/* contenu au-dessus de la forme */
.premium-shape>* {
    position: relative;
    z-index: 1;
}

/* =========================
   TYPO / COULEURS
   ========================= */
.premium-teal h2,
.premium-teal h3 {
    color: var(--accent);
    line-height: 1.2;
}

.premium-teal ul li {
    color: var(--text-soft);
    margin-bottom: .4rem;
}

.premium-accent {
    color: var(--accent);
}

.premium-highlight {
    color: var(--accent-soft);
    font-size: 1.05rem;
    font-weight: 600;
}

/* =========================
   LISTE (tirets discrets)
   ========================= */
.premium-list {
    padding-left: 0;
    list-style: none;
}

.premium-list li {
    position: relative;
    padding-left: 1.4rem;
    margin-bottom: .75rem;
}

.premium-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 0;
    opacity: .65;
}




/* Liste en 2 colonnes sur desktop */
.premium-list--cols {
    column-count: 2;
    column-gap: 2rem;
}

/* éviter que les items soient coupés entre colonnes */
.premium-list--cols li {
    break-inside: avoid;
    margin-bottom: .55rem;
    /* au lieu de .75rem */
}

/* Typo un peu plus compacte dans ce bloc */
.premium-paper {
    line-height: 1.55;
    /* au lieu de 1.7 */
    font-size: 1rem;
    /* au lieu de 1.05rem */
}

/* Sur mobile: revenir à 1 colonne */


/* =========================
   RESPONSIVE
   ========================= */



.lang-switcher .btn {
    border-radius: 999px;
    padding: .25rem .75rem;
    font-weight: 500;
}

.lang-switcher .dropdown-item.active {
    font-weight: 600;
}

/* Desktop : hover only (on neutralise le clic Bootstrap) */



.imgServicesBorder {
    border: 4px solid #8013af;
}

/* ===================================================================
   9. RESPONSIVE & MEDIA QUERIES (ISOLÉ POUR FACILITER LA MAINTENANCE)
   =================================================================== */

/* ===================================================================
   9. RESPONSIVE & MEDIA QUERIES
   =================================================================== 
   
   Breakpoints utilisés :
   - Mobile portrait      : < 480px
   - Mobile landscape     : 481px - 576px
   - Tablette portrait    : 577px - 768px
   - Tablette landscape   : 769px - 1023px
   - Laptop 13" (MacBook) : 1024px - 1439px  ⭐ NOUVEAU
   - Desktop standard     : 1440px - 1919px
   - Large desktop        : 1920px+
   
   =================================================================== */

/* =====================================
   PETIT MOBILE (max 480px)
   ===================================== */
@media (max-width: 480px) {
    .testimonials-section h2 {
        font-size: 1.5rem;
    }

    .testimonials-section .subtitle {
        font-size: 1rem;
    }

    .testimonial-card {
        padding: 16px;
    }

    .rating {
        font-size: 16px;
    }

    .date {
        font-size: 12px;
    }
}

/* =====================================
   MOBILE (max 576px)
   ===================================== */
@media (max-width: 576px) {
    .amount {
        font-size: 2.5rem;
    }

    .currency {
        font-size: 1.5rem;
    }
}

/* =====================================
   TABLETTE PORTRAIT (max 768px)
   ===================================== */
@media (max-width: 768px) {

    .coach-avatar-wrapper {
        width: 250px;
        height: 250px;
    }

    /* Video background */
    .video-background-content h1 {
        font-size: 2rem;
    }

    .video-background-content p {
        font-size: 1rem;
    }

    .video-background-content img {
        max-width: 250px;
        z-index: 1;
    }

    .video-background-content .btn {
        font-size: 1rem;
        font-weight: 700;
    }

    /* Services Swiper */
    .servicesSwiper {
        padding: 30px 10px 70px !important;
        margin: 0 -10px;
    }

    .swiper-slide {
        padding: 0 10px;
    }

    .service-card-light:hover {
        transform: translateY(-8px) scale(1.01);
    }

    .card-header-light {
        padding: 25px 20px 20px;
    }

    .service-name {
        font-size: 1.3rem;
    }

    .amount {
        font-size: 3rem;
    }

    .card-price-section {
        padding: 25px 20px;
    }

    .features-list {
        padding: 25px 20px 15px;
    }

    .btn-service-light {
        padding: 12px 30px;
    }

    .servicesSwiper .swiper-button-next,
    .servicesSwiper .swiper-button-prev {
        display: none;
    }

    /* Témoignages */
    .testimonials-section {
        padding: 30px 16px;
    }

    .testimonials-section h2 {
        font-size: 2rem;
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .testimonial-card {
        padding: 20px;
    }

    .comment {
        font-size: 14px;
    }

    .testimonial-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    /* Partenaires */
    .partner-logo-card {
        min-width: 160px;
        max-width: 160px;
        padding: 15px;
    }

    .partner-logo-container {
        height: 60px;
    }

    .partner-logo-img {
        max-height: 60px;
    }

    .partner-flag {
        font-size: 20px;
    }

    .partner-name {
        font-size: 12px;
    }

    .hero-diagonal-back {
        position: absolute;
        bottom: -200px;
        left: 0;
        width: 140%;
        height: 500px;
        background: rgba(128, 19, 175, 0.08);
        transform: skewY(-9deg);
        z-index: 0;
    }

    .hero-diagonal-front {
        position: absolute;
        bottom: -120px;
        left: 0;
        width: 120%;
        height: 380px;
        background: linear-gradient(135deg,
                rgba(128, 19, 175, 0.18),
                rgba(128, 19, 175, 0.05));
        transform: skewY(-6deg);
        z-index: 1;
    }

    .posMobSlideAcc {
        margin-top: 50px;
    }


}

/* =====================================
   TABLETTE LANDSCAPE (769px+)
   ===================================== */
@media (min-width: 769px) {

    .coach-avatar-wrapper {
        width: 350px;
        height: 350px;
    }

    /* Video background */
    .video-background-content h1 {
        font-size: 3rem;
    }

    .video-background-content p {
        font-size: 1.5rem;
    }

    .video-background-content img {
        max-width: 450px;
        z-index: 1;
    }

    .video-background-content .btn {
        font-size: 1.5rem;
    }

    /* Animations témoignages */
    .testimonial-card:nth-child(3n+1) {
        animation-delay: 0ms;
    }

    .testimonial-card:nth-child(3n+2) {
        animation-delay: 100ms;
    }

    .testimonial-card:nth-child(3n+3) {
        animation-delay: 200ms;
    }

    .hero-diagonal-back {
        position: absolute;
        bottom: -200px;
        left: -250px;
        width: 140%;
        height: 500px;
        background: rgba(128, 19, 175, 0.08);
        transform: skewY(-9deg);
        z-index: 0;
    }

    .hero-diagonal-front {
        position: absolute;
        bottom: -120px;
        left: -180px;
        width: 120%;
        height: 380px;
        background: linear-gradient(135deg,
                rgba(128, 19, 175, 0.18),
                rgba(128, 19, 175, 0.05));
        transform: skewY(-6deg);
        z-index: 1;
    }


}

/* =====================================
   DESKTOP HOVER / MENUS (992px+)
   ===================================== */
@media (min-width: 992px) {

    /* Menus dropdown */
    .mega-submenu {
        left: 100%;
        top: 0;
        min-width: 25rem;
        opacity: 0;
        transition: opacity 0.6s ease-in-out, visibility 0.6s ease-in-out;
        visibility: hidden;
    }

    .ktm-mega-menu {
        position: static;
    }

    .mega-menu {
        left: 0;
        right: 0;
        width: 100%;
        opacity: 0;
        transition: opacity 0.6s ease-in-out, visibility 0.6s ease-in-out;
        visibility: hidden;
        margin: 0 auto;
        width: 928px;
    }

    .dropdown-menu {
        display: block;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height 0.6s ease-in-out, opacity 0.6s ease-in-out;
        visibility: hidden;
    }

    .dropdown:hover>.dropdown-menu,
    .dropdown-menu>li:hover>.submenu {
        max-height: 500px;
        opacity: 1;
        visibility: visible;
    }

    .dropdown-menu li {
        position: relative;
    }

    .dropdown-menu .submenu {
        display: none;
        left: 100%;
        top: 0;
        opacity: 0;
        transition: opacity 0.6s ease-in-out, visibility 0.6s ease-in-out;
        visibility: hidden;
    }

    .dropdown-menu>li:hover>.submenu,
    .dropdown:hover>.dropdown-menu {
        display: block;
        opacity: 1;
        visibility: visible;
    }

    /* Sélecteur de langue */
    .lang-switcher:hover>.dropdown-menu {
        display: block;
        margin-top: 0;
    }

    .lang-switcher>.dropdown-toggle {
        pointer-events: none;
    }
}

/* =====================================
   TABLETTE / PETIT LAPTOP (max 991px)
   ===================================== */
@media (max-width: 991px) {

    /* Premium */
    .premium-list--cols {
        column-count: 1;
    }

    .premium-teal {
        border-radius: 1.6rem;
    }

    .premium-paper {
        border-radius: 1.25rem;
    }
}

/* =====================================
   TABLETTE LARGE (max 992px)
   ===================================== */
@media (max-width: 992px) {
    .servicesSwiper {
        padding: 40px 15px 80px !important;
    }
}

/* =====================================
   ⭐ LAPTOP 13" - MacBook / Petits PC
   (1024px - 1439px) - NOUVEAU !
   ===================================== */
@media (min-width: 1024px) and (max-width: 1439px) {

    /* Réduction générale des tailles de police */
    body {
        font-size: 15px;
    }

    h1 {
        font-size: 2.5rem;
    }

    h2 {
        font-size: 2rem;
    }

    h3 {
        font-size: 1.7rem;
    }

    /* Container plus compact */
    .container {
        max-width: 960px;
    }

    /* Video Background / Hero */
    .video-background-content h1 {
        font-size: 2.5rem !important;
    }

    .video-background-content p {
        font-size: 1.2rem !important;
    }

    .video-background-content img {
        max-width: 350px !important;
    }

    .video-background-content .btn {
        font-size: 1.2rem !important;
    }

    /* Services */
    .service-title {
        font-size: 1.3rem;
    }

    .service-description {
        font-size: 14px;
        line-height: 1.6;
    }

    .service-name {
        font-size: 1.6rem;
    }

    .amount {
        font-size: 3.2rem;
    }

    .currency {
        font-size: 1.8rem;
    }

    /* Cards premium */
    .premium-teal,
    .premium-paper {
        font-size: 0.9rem;
        padding: 30px;
    }

    /* Témoignages */
    .testimonials-section h2 {
        font-size: 2.2rem;
    }

    .testimonial-card {
        padding: 20px;
    }

    /* Réduction espacement sections */
    section {
        padding: 50px 0;
    }

    /* Mega menu plus compact */
    .mega-menu {
        width: 800px;
    }
}

/* =====================================
   DESKTOP STANDARD (1400px+)
   ===================================== */
@media (min-width: 1400px) {
    .AproposHomeXl {
        padding-right: 50px;
    }

    .AproposHomeXs {
        display: none;
    }

    .AproposMarge {
        padding: 120px 0;
    }

    .ps-10 {
        padding-left: 10% !important;
    }

    .imgBandeauPage {
        border-radius: 1em 0 0 0;
    }

    .borderRadiusImg {
        bottom: 0;
        z-index: 2;
        left: -2px;
    }

    .imgBandeauPage:after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(90deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, 0) 15%);
    }

    .bdnPageStat h2 {
        font-size: 1.7em;
        z-index: 2;
    }
}

/* =====================================
   DESKTOP MOYEN (max 1399px)
   ===================================== */
@media (max-width: 1399px) {
    .AproposHomeXl {
        display: none;
    }

    .AproposHomeXs {
        display: block;
    }

    .AproposMarge {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    .imgBandeauPage {
        border-radius: 1em;
    }

    .bdnPageStat h2 {
        font-size: 1.3em;
    }
}

/* =====================================
   LARGE DESKTOP (1921px+)
   ===================================== */
@media (min-width: 1921px) {
    .half-screen {
        height: 550px !important;
    }

    .bdnPageStat h2 {
        font-size: 2.7em !important;
    }
}

/* =====================================
   MODE SOMBRE SYSTÈME
   ===================================== */
@media (prefers-color-scheme: dark) {
    .testimonials-section h2 {
        color: #ecf0f1;
    }

    .testimonials-section .subtitle {
        color: #95a5a6;
    }

    .testimonial-card {
        background: #2c3e50;
        border-color: #34495e;
    }

    .testimonial-card:hover {
        border-color: #3498db;
    }

    .comment {
        color: #ecf0f1;
    }

    .comment::before {
        color: #34495e;
    }

    .coach {
        color: #ecf0f1;
    }

    .date {
        color: #7f8c8d;
    }

    .formula {
        background: #34495e;
        color: #bdc3c7;
    }

    .testimonial-header,
    .testimonial-footer {
        border-color: #34495e;
    }
}

/* =====================================
   IMPRESSION
   ===================================== */
@media print {
    .testimonial-card {
        break-inside: avoid;
        box-shadow: none;
        border: 1px solid #ddd;
    }

    .testimonial-card:hover {
        transform: none;
        box-shadow: none;
    }
}

.servicesSwiper .swiper-pagination-bullet-active {
    background: #8013af;
}



/*MENU MOBILE*/

@media (max-width: 991.98px) {

    /* Garder la barre de menu visible */
    #menuBar {
        position: fixed;
        z-index: 1060;
        background-color: var(--bs-body-bg);
    }

    /* Retirer la bordure de focus */
    .navbar-toggler:focus {
        box-shadow: none;
        outline: none;
    }

    /* Désactiver l'animation par défaut de Bootstrap */
    .navbar-collapse.collapsing {
        transition: none;
        height: auto !important;
        transform: translateX(-100%);
    }

    .navbar-collapse {
        position: fixed;
        top: 59px;
        left: 0;
        width: 100vw;
        height: calc(100vh - 60px);
        background-color: var(--bs-body-bg);
        z-index: 1050;
        padding: 1.5rem 1.5rem 1rem 1.5rem;
        /* Réduit le padding vertical */
        overflow: hidden;
        /* Masquer tout débordement */
        transform: translateX(-100%);
        transition: transform 0.3s ease-in-out;
        display: flex;
        flex-direction: column;
        display: block !important;
    }

    .navbar-collapse.show {
        transform: translateX(0);
    }

    /* Formes décoratives dans le menu mobile */
    .navbar-collapse .menu-shape {
        position: absolute;
        height: 50px;
        width: 300px;
        border-radius: 50rem;
        background: #558c8c;
        opacity: .3;
        z-index: 0;
        pointer-events: none;
    }

    /* Bas gauche - 3 formes */
    .navbar-collapse .menu-shape.menu-shape-1 {
        bottom: 10em;
        left: 0;
        transform: rotate(-45deg) translate(-50px, -100px);
    }

    .navbar-collapse .menu-shape.menu-shape-2 {
        bottom: 10em;
        left: 0;
        transform: rotate(-45deg) translate(-150px, -20px);
    }

    .navbar-collapse .menu-shape.menu-shape-3 {
        bottom: 10em;
        left: 0;
        transform: rotate(-45deg) translate(-100px, -180px);
    }

    /* Transformer le hamburger en X quand le menu est ouvert */
    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
        background-image: none;
        position: relative;
    }

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before,
    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
        content: '';
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: currentColor;
        top: 50%;
        left: 0;
    }

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
        transform: translateY(-50%) rotate(45deg);
    }

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
        transform: translateY(-50%) rotate(-45deg);
    }

    /* Navigation */
    .navbar-collapse .navbar-nav {
        position: relative;
        z-index: 1;
    }

    .navbar-collapse .nav-link {
        font-size: 1.25rem;
        padding: 0.5rem 0;
    }

    /* Éléments en bas du menu */
    .navbar-collapse .lang-switcher,
    .navbar-collapse .userMenu,
    .navbar-collapse .theme-toggle {
        margin-top: 1rem;
        /* Réduit de 2rem à 1rem */
        position: relative;
        z-index: 1;
    }

    /* Bloquer le scroll du body quand le menu est ouvert */
    body.menu-open {
        overflow: hidden;
    }
}