/* ==========================================================
   SLIDER ACCUEIL — VERSION 3 LIGNES POUR LE TITRE
========================================================== */

#home-hero.pse-slider {
    position: relative;
    width: 100%;
    min-height: 75vh;
    padding-top: 90px;
    border-radius: 24px !important;
    overflow: hidden;
    margin-bottom: 0 !important;
    padding-bottom: 60px !important;
}

/* Images */
#home-hero.pse-slider img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1.4s ease-in-out;
}
#home-hero.pse-slider img.active { opacity: 1; }

/* Overlay */
#home-hero.pse-slider::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.25), rgba(0,0,0,0.65));
    z-index: 1;
}

/* ==========================================================
   TITRE — VERSION 3 LIGNES
========================================================== */

#home-hero .pse-caption {
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    width: 100%;
    text-align: center;
    margin: 0;
}

/* Le conteneur devient un bloc pour permettre 3 lignes */
#home-hero .pse-caption-inner {
    display: block !important;
    white-space: normal !important;
    line-height: 1.05 !important;
}

/* Chaque ligne forcée séparée */
#home-hero .pse-caption-expert,
#home-hero .pse-caption-en,
#home-hero .pse-caption-word {
    display: block !important;
    text-align: center !important;
}

/* Styles typographiques du titre */
#home-hero .pse-caption-expert,
#home-hero .pse-caption-en,
#home-hero .pse-caption-word {
    color: #fff;
    font-family: system-ui, Inter, sans-serif;
    font-weight: 900;
    font-size: clamp(28px, 6vw, 54px);
    text-transform: uppercase;
    letter-spacing: .02em;
    text-shadow: 0 0 32px rgba(0,0,0,0.65);
}

/* Mot animé */
#home-hero .pse-caption-word {
    transition: opacity .45s ease, transform .45s ease;
}
#home-hero .pse-caption-word.fade-out {
    opacity: 0;
    transform: translateY(10px);
}
#home-hero .pse-caption-word.fade-in {
    opacity: 1;
    transform: translateY(0);
}

/* ==========================================================
   BOUTONS
========================================================== */

#home-hero .pse-buttons {
    position: absolute;
    top: 56%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 6;
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: center;
    justify-content: center;
    width: 100%;
}

#home-hero .wp-block-button__link {
    padding: 14px 28px;
    border-radius: 999px;
    border: 2px solid #fff !important;
    color: #fff !important;
    background: rgba(0,0,0,0.35);
    backdrop-filter: blur(6px);
    font-weight: 700;
    font-size: 1rem;
    white-space: nowrap;
}

/* ==========================================================
   FLÈCHES
========================================================== */

.pse-arrows {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 10;
    pointer-events: none;
}
.pse-arrow {
    pointer-events: auto;
    color: #fff;
    font-size: 42px;
    padding: 0 14px;
    cursor: pointer;
    transition: opacity .25s;
}
.pse-arrow:hover { opacity: .55; }

/* ==========================================================
   POINTS
========================================================== */

.pse-dots {
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 11;
}
.pse-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255,255,255,0.45);
    cursor: pointer;
    transition: background .25s, transform .25s;
}
.pse-dot.active {
    background: #fff;
    transform: scale(1.2);
}

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

@media (orientation: landscape) and (max-width: 1024px) {
    #home-hero.pse-slider { min-height: 90vh; padding-top: 70px; }
    #home-hero .pse-buttons { flex-direction: row; gap: 14px; top: 62%; }
}

@media (max-width: 768px) {
    #home-hero.pse-slider { min-height: 78vh; }
    #home-hero .pse-caption { top: 28%; }
    #home-hero .pse-buttons { top: 52%; gap: 32px; }
    .pse-dots { bottom: 18px; }
    .pse-arrow { font-size: 32px; padding: 0 8px; }
}

@media (min-width: 1025px) {
    #home-hero.pse-slider { min-height: 82vh !important; }
}

/* ======================================================
   SLIDER — NOS LABELS
====================================================== */

#labels-hero.pdse-hero { position:relative; width:100%; height:420px; overflow:hidden; border-radius:22px !important; }
#labels-hero.pdse-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.4s; }
#labels-hero.pdse-hero img.active { opacity:1; }
#labels-hero.pdse-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,0.32),rgba(0,0,0,0.65)); z-index:1; }

/* Titre */
#labels-hero .pdse-caption { position:absolute; top:32%; left:50%; transform:translate(-50%,-50%); z-index:5; width:100%; text-align:center; padding:0 20px; }
#labels-hero .pdse-title-main { color:#fff; font-family:system-ui,Inter,sans-serif; font-weight:900; font-size:clamp(26px,5vw,54px); letter-spacing:.03em; text-shadow:0 0 32px rgba(0,0,0,0.65); white-space:nowrap; overflow:hidden; }

/* Flèches */
.labels-arrows { position:absolute; inset:0; display:flex; justify-content:space-between; align-items:center; z-index:10; pointer-events:none; }
.labels-arrow { pointer-events:auto; color:#fff; font-size:42px; padding:0 14px; cursor:pointer; transition:opacity .25s; }
.labels-arrow:hover { opacity:.55; }

/* Dots */
.labels-dots { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); display:flex; gap:10px; z-index:12; }
.labels-dot { width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,0.45); cursor:pointer; transition:background .25s, transform .25s; }
.labels-dot.active { background:#fff; transform:scale(1.25); }

/* Logos sous le slider */
.labels-logos-under { margin-top:50px; margin-bottom:40px; display:flex; justify-content:center; gap:34px; flex-wrap:wrap; }
.label-logo { width:150px; height:150px; border-radius:30px; padding:18px; display:flex; justify-content:center; align-items:center; background:rgba(255,255,255,.14); backdrop-filter:blur(14px); box-shadow:0 8px 24px rgba(0,0,0,.12); transition:.35s; animation:breathe 3.8s ease-in-out infinite; }
.label-logo img { width:100%; height:auto; transition:.35s; }
.label-logo:hover { transform:scale(1.06); background:rgba(255,255,255,.22); box-shadow:0 12px 28px rgba(0,0,0,.18); }
.label-logo:hover img { transform:scale(1.07); }
.label-logo.label-active { transform:scale(1.10) !important; background:rgba(255,255,255,0.28) !important; }

/* Animation */
@keyframes breathe { 0%{transform:scale(1);} 50%{transform:scale(1.025);} 100%{transform:scale(1);} }

/* Responsive — Labels */
@media (max-width:768px) {
    #labels-hero.pdse-hero { height:100vh !important; }
    .labels-arrow { font-size:32px; padding:0 8px; }
    .labels-dots { bottom:16px; }
    .label-logo { width:120px; height:120px; border-radius:26px; padding:14px; }
}
@media (max-width:900px) and (orientation:landscape) {
    #labels-hero.pdse-hero { height:80vh !important; }
    .label-logo { width:110px; height:110px; }
}

/* ======================================================
   SLIDER TARIFS — VERSION FINALE ALIGNÉE ACCUEIL / QSNOUS
====================================================== */

/* Base */
#tarifs-hero.pse-slider {
    position: relative;
    width: 100%;
    min-height: 75vh;
    overflow: hidden;
    border-radius: 22px !important;
}

/* Hauteur desktop */
@media (min-width: 1025px) {
    #tarifs-hero.pse-slider {
        min-height: 82vh !important;
    }
}

/* Slides */
#tarifs-hero.pse-slider img.slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1.4s ease-in-out;
}
#tarifs-hero.pse-slider img.active {
    opacity: 1;
}

/* Overlay */
#tarifs-hero.pse-slider::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.32),
        rgba(0,0,0,0.65)
    );
    z-index: 1;
}

/* Titre principal */
#tarifs-hero .pdse-caption {
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 4;
    width: 100%;
    text-align: center;
}

#tarifs-hero .pdse-title-main {
    color: #fff;
    font-family: system-ui, Inter, sans-serif;
    font-weight: 900;
    font-size: clamp(28px, 5vw, 54px);
    text-transform: uppercase;
    text-shadow: 0 0 32px rgba(0,0,0,0.65);
    white-space: nowrap;
}

/* ============================
   BOUTONS TARIFS (identiques aux autres sliders)
============================ */

#tarifs-hero .pse-buttons {
    position: absolute;
    top: 56%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 6;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 32px;
    width: 100%;
}

/* Style des boutons */
#tarifs-hero .wp-block-button__link {
    padding: 14px 28px;
    border-radius: 999px;
    border: 2px solid #fff !important;
    color: #fff !important;
    background: rgba(0,0,0,0.35);
    backdrop-filter: blur(6px);
    font-weight: 700;
    font-size: 1rem;
    white-space: nowrap;

    width: auto !important;         /* << largeur naturelle */
    display: inline-block !important;
    text-align: center;
}

/* Mode faible hauteur → grille 2x2 */
@media (max-height: 550px) {
    #tarifs-hero .pse-buttons {
        top: 62%;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 14px;
        justify-content: center;
        max-width: 420px;
    }

    #tarifs-hero .wp-block-button {
        width: 48% !important;
        margin: 0 !important;
    }

    #tarifs-hero .wp-block-button__link {
        padding: 10px 20px;
        font-size: 0.9rem;
    }
}

/* Paysage tablette/mobile */
@media (orientation: landscape) and (max-width: 1024px) {
    #tarifs-hero .pse-buttons {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 14px;
    }

    #tarifs-hero .wp-block-button {
        width: 48% !important;
    }
}

/* Flèches */
#tarifs-hero .tarifs-arrows {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 8;
    pointer-events: none;
}
#tarifs-hero .tarifs-arrow {
    pointer-events: auto;
    color: #fff;
    font-size: 42px;
    padding: 0 14px;
    cursor: pointer;
    transition: opacity .25s;
}
#tarifs-hero .tarifs-arrow:hover {
    opacity: .55;
}

/* Points */
#tarifs-hero .tarifs-dots {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 9;
}
#tarifs-hero .tarifs-dot {
    width: 12px;
    height: 12px;
    background: rgba(255,255,255,0.45);
    border-radius: 50%;
    transition: background .25s, transform .25s;
}
#tarifs-hero .tarifs-dot.active {
    background: #fff;
    transform: scale(1.25);
}

/* Responsive mobile portrait */
@media (max-width: 768px) {
    #tarifs-hero.pse-slider {
        min-height: 78vh !important;
    }
    #tarifs-hero .pdse-caption {
        top: 28%;
    }
    #tarifs-hero .pse-buttons {
        top: 52%;
        gap: 32px;
    }
}

/* ======================================================
   SLIDER — QUI SOMMES-NOUS (ALIGNÉ SUR ACCUEIL)
====================================================== */

/* Base slider */
#about-hero.pse-slider {
    position: relative;
    width: 100%;
    min-height: 75vh;
    border-radius: 22px !important;
    overflow: hidden;
}

/* FULL PAGE sur ordinateur */
@media (min-width: 1025px) {
    #about-hero.pse-slider {
        min-height: 82vh !important;
    }
}

/* Slides */
#about-hero.pse-slider img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1.4s ease-in-out;
}
#about-hero.pse-slider img.active {
    opacity: 1;
}

/* Overlay */
#about-hero.pse-slider::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.32),
        rgba(0,0,0,0.65)
    );
    z-index: 1;
}

/* Titre */
#about-hero .pdse-caption {
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    width: 100%;
    text-align: center;
    padding: 0 4vw;
}

#about-hero .pdse-caption span {
    display: inline-block;
    white-space: nowrap;
    font-size: clamp(24px, 4.8vw, 54px);
    font-weight: 900;
    color: #fff;
    letter-spacing: 0.03em;
    text-shadow: 0 0 32px rgba(0,0,0,0.65);
}

/* Boutons — même logique que l'accueil */
/* Mode par défaut : colonne centrée */
#about-hero .pse-buttons {
    position: absolute;
    top: 56%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 6;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 32px;

    width: 100%;
    margin: 0;
}

#about-hero .wp-block-button__link {
    padding: 14px 28px;
    border-radius: 999px;
    border: 2px solid #fff !important;
    color: #fff !important;
    background: rgba(0,0,0,0.35);
    backdrop-filter: blur(6px);
    font-weight: 700;
    font-size: 1rem;
    text-align: center;
    white-space: nowrap;
}

/* ------------------------------------------------------
   PETITE HAUTEUR (souvent mobile paysage)
   → grille 2 × 2 pour les 4 boutons
------------------------------------------------------ */
@media (max-height: 550px) {
    #about-hero .pse-buttons {
        top: 60%;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 14px;
        max-width: 420px;
    }

    #about-hero .wp-block-button {
        width: 48% !important;
        margin: 0 !important;
    }

    #about-hero .wp-block-button__link {
        font-size: 0.9rem;
        padding: 10px 20px;
    }
}

/* ------------------------------------------------------
   MODE PAYSAGE (mobile / tablette)
   → renforce le comportement grille
------------------------------------------------------ */
@media (orientation: landscape) and (max-width: 1024px) {
    #about-hero .pse-buttons {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 14px;
    }

    #about-hero .wp-block-button {
        width: 48% !important;
    }
}

/* Flèches & points */
#about-hero .about-arrows {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 7;
    pointer-events: none;
}

#about-hero .about-arrow {
    pointer-events: auto;
    color: #fff;
    font-size: 42px;
    padding: 0 14px;
    cursor: pointer;
    transition: opacity .25s;
}

#about-hero .about-dots {
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 8;
}

#about-hero .about-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255,255,255,0.45);
    transition: transform .25s;
}

#about-hero .about-dot.active {
    background: white;
    transform: scale(1.25);
}

/* Responsive portrait — même logique que l'accueil */
@media (max-width: 768px) {
    #about-hero.pse-slider {
        min-height: 78vh !important;
    }
    #about-hero .pdse-caption {
        top: 28%;
    }
    #about-hero .pse-buttons {
        top: 52%;
        gap: 32px;
    }
}

/* ======================================================
   SLIDER HISTOIRE
====================================================== */

#pdse-histoire-slider {
    position:relative; width:100%; height:420px;
    overflow:hidden; border-radius:22px; margin:40px 0;
}

#pdse-histoire-slider .slide { position:absolute; inset:0; opacity:0; transition:opacity 1s ease; }
#pdse-histoire-slider .slide.active { opacity:1; }

#pdse-histoire-slider .slide img { width:100%; height:100%; object-fit:cover; }

/* Flèches */
#pdse-histoire-slider .arrow {
    position:absolute; top:50%; transform:translateY(-50%);
    background:rgba(0,0,0,0.35); color:#fff; border:none;
    font-size:32px; padding:10px 16px; border-radius:50%;
    cursor:pointer; z-index:10; transition:background .3s;
}
#pdse-histoire-slider .arrow:hover { background:rgba(0,0,0,0.55); }
#pdse-histoire-slider .arrow.prev { left:20px; }
#pdse-histoire-slider .arrow.next { right:20px; }

/* Points */
#pdse-histoire-slider .slider-dots { position:absolute; bottom:18px; width:100%; text-align:center; z-index:12; }
#pdse-histoire-slider .slider-dots span { display:inline-block; width:10px; height:10px; margin:0 6px; background:rgba(255,255,255,0.5); border-radius:50%; transition:.3s; }
#pdse-histoire-slider .slider-dots span.active { background:#fff; transform:scale(1.28); }

/* Responsive */
@media (max-width:768px) and (orientation:landscape) {
    #pdse-histoire-slider { height:320px !important; }
    #pdse-histoire-slider .arrow { font-size:26px; padding:6px 12px; }
}
@media (max-width:768px) and (orientation:portrait) {
    #pdse-histoire-slider,
    #pdse-histoire-slider .slide,
    #pdse-histoire-slider .slide img {
        height:260px !important;
    }
}