:root {
  --yellow:#FFDA00;--orange:#F39200;--red:#E8431C;--purple:#50206A;--night:#140A1F;--white:#fff;--cream:#FFF5EB;--text:#2C2034;--muted:#6D6176;--line:rgba(80,32,106,.14);--shadow:0 20px 55px rgba(20,10,31,.14);--radius:26px;--font-body:'Poppins',sans-serif;--font-display:'The Seasons','Cormorant Garamond','Playfair Display',serif;
}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text);background:linear-gradient(180deg,#fffaf4 0%,#fff1e2 100%);line-height:1.65}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}ul{list-style:none}.container{width:min(1200px,calc(100% - 40px));margin:0 auto}.section{position:relative;padding:96px 0;overflow:hidden}.section-heading{margin-bottom:34px}.section-tag,.eyebrow,.card-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:700;display:inline-block}.section-tag{color:var(--red);margin-bottom:12px}.section-heading h2,.hero-title,.hero-card h2,.info-card h3,.contact-box h2,.site-footer h3,.site-footer h4{font-family:var(--font-display);line-height:1.05;font-weight:600}.section-heading h2{font-size:clamp(2.2rem,4.8vw,4.2rem);color:var(--purple)}.section-heading.light h2,.section-heading.light .section-tag{color:#fff}.navbar{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,rgba(38,18,59,.96),rgba(20,10,31,.92));backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08)}.nav-content{display:flex;justify-content:space-between;align-items:center;min-height:78px;gap:24px}.brand-mark{color:#fff;font-family:var(--font-display);font-size:1.8rem}.brand-mark img{max-height:100px;width:100px}.nav-menu{display:flex;gap:15px;align-items:center}.nav-menu a{color:rgba(255,255,255,.92)}.nav-menu a:hover{color:var(--red)}.mobile-menu-toggle{display:none;background:transparent;border:0}.mobile-menu-toggle span{display:block;width:26px;height:2px;background:#fff;margin:5px 0}.hero{position:relative;min-height:calc(100vh - 78px);display:flex;align-items:center;background:var(--night);overflow:hidden}.hero-slider,.hero-slide,.hero-overlay{position:absolute;inset:0}.hero-slide{background-size:cover;background-position:center;opacity:0;transform:scale(1.04);transition:opacity .8s ease,transform 5s ease}.hero-slide.is-active{opacity:1;transform:scale(1)}.hero-overlay{background:radial-gradient(circle at 18% 20%,rgba(255,218,0,.22),transparent 26%),radial-gradient(circle at 82% 18%,rgba(243,146,0,.18),transparent 24%),linear-gradient(90deg,rgba(20,10,31,.48) 0%,rgba(20,10,31,.34) 42%,rgba(20,10,31,.48) 100%),linear-gradient(180deg,rgba(20,10,31,.22),rgba(80,32,106,.15))}.hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,390px);gap:36px;align-items:end;padding:72px 0}.hero-copy{color:#fff;max-width:760px}.eyebrow{color:var(--yellow);margin-bottom:18px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.09);border:1px solid rgba(255,218,0,.25)}.hero-title{font-size:clamp(3.2rem,6vw,6rem);margin-bottom:18px;text-shadow:0 6px 24px rgba(20,10,31,.18)}.hero-title.small{font-size:clamp(2.3rem,5vw,4.8rem)}.hero-lead{font-size:clamp(1.1rem,2vw,1.45rem);color:rgba(255,255,255,.95);margin-bottom:22px}.hero-text{max-width:700px;color:rgba(255,255,255,.88);margin-bottom:28px}.hero-highlights{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}.highlight-pill{padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.16)}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 24px;border-radius:999px;font-weight:600;transition:.25s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,var(--yellow),var(--orange),var(--red));color:var(--night);box-shadow:0 18px 36px rgba(243,146,0,.28)}.btn-secondary{background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.24)}.btn-dark{color:var(--purple);border-color:rgba(80,32,106,.18);background:#fff}.slider-dots{display:flex;gap:10px;margin-top:24px}.slider-dot{width:12px;height:12px;border-radius:999px;border:0;background:rgba(255,255,255,.35);cursor:pointer}.slider-dot.is-active{background:var(--yellow);box-shadow:0 0 18px rgba(255,218,0,.7)}.hero-card{background:linear-gradient(180deg,rgba(255,247,239,.98),rgba(255,255,255,.96));padding:30px;border-radius:28px;box-shadow:0 24px 60px rgba(20,10,31,.22);border:1px solid rgba(255,255,255,.36)}.hero-card ul{margin-top:14px;display:grid;gap:10px}.hero-card li{padding-left:18px;position:relative}.hero-card li:before{content:'✦';position:absolute;left:0;color:var(--red)}.content-grid{display:grid;gap:28px}.content-grid--two{grid-template-columns:1.2fr .8fr}.content-grid--story{grid-template-columns:1.12fr .88fr;align-items:center}.lead{font-size:1.18rem;font-weight:500;color:var(--purple);margin-bottom:16px}.quote{margin-top:18px;padding:18px 22px;border-left:4px solid var(--red);background:rgba(255,255,255,.72);border-radius:18px;font-family:var(--font-display);font-size:1.3rem;color:var(--purple)}.quote.light{background:rgba(255,255,255,.08);color:#fff;border-left-color:var(--yellow)}.floating-panel,.glass-card,.frame-card,.info-card,.contact-form-card{background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.56);box-shadow:var(--shadow);border-radius:var(--radius)}.warm-panel{padding:26px;background:linear-gradient(180deg,#fff8f0,#fff1df)}.warm-panel h3{font-family:var(--font-display);font-size:2rem;margin-bottom:12px;color:var(--purple)}.gallery-carousel{margin-top:34px;overflow:hidden}.gallery-track{display:grid;grid-template-columns:repeat(6,minmax(220px,1fr));gap:18px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}.gallery-card{min-width:220px;scroll-snap-align:start;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}.gallery-card img{aspect-ratio:1.12/1;object-fit:cover;width:100%;height:100%}.photo-section{color:#fff}.section-background{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(1.08)}.section-shell{position:relative;z-index:1}.photo-section:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,10,31,.58),rgba(20,10,31,.44))}.stacked-photo img,.parcours-figure img,.frame-card img{border-radius:24px;overflow:hidden}.glass-card{padding:28px;background:rgba(20,10,31,.32);backdrop-filter:blur(10px);color:#fff}.smallpad{padding:22px}.feature-list{display:grid;gap:14px;margin-top:20px}.feature-list div{padding:16px 18px;background:#fff;border-radius:18px;box-shadow:var(--shadow)}.feature-list strong{display:block;color:var(--purple);margin-bottom:4px}.mini-gallery{display:grid;gap:18px;margin-top:28px}.mini-gallery.three-up{grid-template-columns:repeat(3,1fr)}.mini-gallery.four-up{grid-template-columns:repeat(4,1fr)}.mini-gallery figure{border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.mini-gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}.overlay-grid .info-card.glass{background:rgba(255,255,255,.13);color:#fff;backdrop-filter:blur(9px);border:1px solid rgba(255,255,255,.18)}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.info-card{padding:24px;background:#fff}.info-card h3{font-size:1.8rem;color:var(--purple);margin-bottom:10px}.info-card.glass h3{color:#fff}.info-card.compact h3{font-size:1.35rem}.tarifs-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center}.framed-grid{margin-top:26px}.tarifs-list{display:grid;gap:10px;margin-top:18px}.tarifs-list li{padding-left:18px;position:relative}.tarifs-list li:before{content:'•';left:0;position:absolute;color:var(--red)}.compact-list li:before{color:var(--yellow)}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px}.contact-box,.contact-form-card{padding:28px}.contact-list{display:grid;gap:10px;margin-top:18px}.form-field{display:grid;gap:8px;margin-bottom:16px}.form-field input,.form-field textarea{width:100%;padding:14px 16px;border-radius:16px;border:1px solid rgba(80,32,106,.18);font:inherit;background:#fff}.form-message{padding:14px 16px;border-radius:14px;margin-bottom:14px}.form-message.success{background:#e7f7eb;color:#166534}.form-message.error{background:#fdecec;color:#b42318}.site-footer{background:linear-gradient(180deg,#26123B,#140A1F);color:#fff;padding:56px 0 20px}.footer-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:28px}.site-footer h3,.site-footer h4{margin-bottom:12px}.footer-menu{display:grid;gap:10px}.footer-menu a:hover{color:var(--yellow)}.footer-bottom{display:flex;justify-content:space-between;gap:18px;align-items:center;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;margin-top:28px}.footer-legal-links{display:flex;gap:14px;flex-wrap:wrap}
@media (max-width: 980px){.hero-layout,.content-grid--two,.content-grid--story,.tarifs-grid,.contact-layout,.footer-grid,.cards-grid{grid-template-columns:1fr 1fr}.hero-layout{align-items:center}.cards-grid{grid-template-columns:1fr 1fr}.mini-gallery.four-up{grid-template-columns:1fr 1fr}}
@media (max-width: 768px){.mobile-menu-toggle{display:block}.nav-menu{display:none;position:absolute;top:78px;left:20px;right:20px;background:#26123B;border-radius:20px;padding:16px;flex-direction:column;align-items:flex-start;box-shadow:var(--shadow)}.nav-menu.active{display:flex}.hero-layout,.content-grid--two,.content-grid--story,.tarifs-grid,.contact-layout,.footer-grid,.cards-grid,.mini-gallery.three-up,.mini-gallery.four-up{grid-template-columns:1fr}.section{padding:72px 0}.hero{min-height:auto}.hero-layout{padding:56px 0}.gallery-track{grid-template-columns:repeat(6,76vw)}.footer-bottom{flex-direction:column;align-items:flex-start}}
/* ============================================================
   ADDITIONS main.css — FAQ, Blocs flexibles, Slide captions
   Ajouter à la fin de assets/css/main.css
   ============================================================ */

/* ---- Slide captions (carrousel dynamique) ---- */
.hero-slide { position: relative; }
.slide-caption {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 24px 32px;
    background: linear-gradient(transparent, rgba(20,10,31,.72));
    display: flex; flex-direction: column; gap: 6px;
}
.slide-title {
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    color: #fff;
    font-weight: 600;
    text-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.slide-subtitle {
    font-size: .95rem;
    color: rgba(255,255,255,.88);
    font-weight: 400;
}

/* ---- FAQ Accordion ---- */
.faq-section { background: #fff; }
.faq-list { max-width: 840px; margin: 0 auto; display: grid; gap: 12px; }
.faq-item {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 4px 18px rgba(20,10,31,.07);
    overflow: hidden;
    border: 1px solid rgba(80,32,106,.1);
    transition: box-shadow .2s;
}
.faq-item:has(.faq-question[aria-expanded="true"]) {
    box-shadow: 0 8px 32px rgba(80,32,106,.14);
    border-color: rgba(80,32,106,.22);
}
.faq-question {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 22px 26px;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    font-weight: 600;
    color: var(--purple);
    transition: color .2s;
}
.faq-question:hover { color: var(--red); }
.faq-icon {
    flex-shrink: 0;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--yellow), var(--orange));
    color: var(--night);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.3rem;
    font-weight: 700;
    font-family: var(--font-body);
    transition: transform .3s ease, background .2s;
}
.faq-question[aria-expanded="true"] .faq-icon {
    transform: rotate(45deg);
    background: linear-gradient(135deg, var(--red), var(--purple));
    color: #fff;
}
.faq-answer {
    padding: 0 26px 22px;
    color: var(--muted);
    line-height: 1.75;
    font-size: 1rem;
    animation: faqSlideIn .3s ease;
}
.faq-answer[hidden] { display: none; }
@keyframes faqSlideIn {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---- Blocs flexibles ---- */
.blocs-flexibles-section { background: #fff; }
.bloc { margin-bottom: 32px; }
.bloc:last-child { margin-bottom: 0; }
.bloc-titre {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3.2rem);
    color: var(--purple);
    margin-bottom: 14px;
}

/* Texte simple */
.bloc-texte { max-width: 800px; }

/* Encart highlight */
.bloc-highlight {
    background: #fff;
    border-left: 5px solid var(--red);
    border-radius: 0 20px 20px 0;
    padding: 28px 32px;
    box-shadow: var(--shadow);
}
.bloc-highlight h3 {
    font-family: var(--font-display);
    font-size: 2rem;
    color: var(--purple);
    margin-bottom: 10px;
}

/* Image + texte */
.bloc-image-texte {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 32px;
    align-items: center;
}
.bloc-image img {
    width: 100%;
    border-radius: 22px;
    box-shadow: var(--shadow);
    aspect-ratio: 4/3;
    object-fit: cover;
}
.bloc-text-content h3 {
    font-family: var(--font-display);
    font-size: 2rem;
    color: var(--purple);
    margin-bottom: 12px;
}

/* CTA */
.bloc-cta {
    text-align: center;
    background: linear-gradient(135deg, var(--purple), #26123B);
    color: #fff;
    border-radius: var(--radius);
    padding: 48px 32px;
    box-shadow: var(--shadow);
}
.bloc-cta h3 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    margin-bottom: 14px;
    color: #fff;
}
.bloc-cta p { color: rgba(255,255,255,.88); margin-bottom: 24px; font-size: 1.1rem; }
.bloc-cta .btn-primary { box-shadow: 0 12px 32px rgba(255,218,0,.28); }

/* Responsive blocs */
@media (max-width: 768px) {
    .bloc-image-texte { grid-template-columns: 1fr; }
    .faq-question { padding: 18px 20px; font-size: 1rem; }
    .faq-answer { padding: 0 20px 18px; }
}

/* ---- dark-section (quand pas d'image de fond) ---- */
.dark-section {
    background: linear-gradient(180deg, #26123B 0%, #140A1F 100%);
    color: #fff;
}
.dark-section .section-heading h2,
.dark-section .section-heading .section-tag { color: #fff; }
.dark-section .section-tag { color: var(--yellow); }

/* ---- hero sans slides ---- */
.hero-no-slides {
    background: linear-gradient(135deg, #26123B 0%, #140A1F 60%, #50206A 100%);
}

/* ---- hints admin vides (visibles uniquement si connecté) ---- */
.eveil-empty-hint {
    margin-top: 18px;
    padding: 14px 18px;
    background: #fffbe6;
    border-left: 3px solid #f39200;
    border-radius: 4px;
    font-size: 13px;
    color: #555;
    display: flex;
    align-items: center;
    gap: 6px;
}
.eveil-empty-hint--light {
    background: rgba(255,255,255,.1);
    border-left-color: rgba(255,218,0,.6);
    color: rgba(255,255,255,.7);
    font-size: 13px;
    padding: 18px 22px;
    text-align: center;
}
body:not(.logged-in) .eveil-empty-hint { display: none; }

/* ---- override: boutons et blocs sans radius ---- */
.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
    border-radius: 0 !important;
}

.hero-card,
.quote,
.floating-panel,
.glass-card,
.frame-card,
.info-card,
.contact-form-card,
.gallery-card,
.stacked-photo img,
.parcours-figure img,
.frame-card img,
.feature-list div,
.mini-gallery figure,
.form-field input,
.form-field textarea,
.form-message,
.bloc-highlight,
.bloc-image img,
.bloc-cta,
.eveil-empty-hint {
    border-radius: 0 !important;
}

/* ---- override: texte courant violet sur clair, blanc sur violet ---- */
body {
    color: var(--purple);
}

p,
li,
span,
label,
input,
textarea,
select,
a,
.muted {
    color: var(--purple);
}

.dark-section,
.photo-section,
.hero,
.site-footer,
.bloc-cta,
.overlay-grid .info-card.glass,
.glass-card {
    color: #fff;
}

.dark-section p,
.dark-section li,
.photo-section p,
.photo-section li,
.hero p,
.hero li,
.site-footer p,
.site-footer li,
.site-footer a,
.bloc-cta p,
.bloc-cta li,
.overlay-grid .info-card.glass p,
.overlay-grid .info-card.glass li,
.glass-card p,
.glass-card li {
    color: #fff;
}

/* ---- override: liens hypertexte rouge orangé ---- */
a {
    color: var(--red) !important;
}

a:hover,
a:focus {
    color: var(--orange) !important;
}

/* ---- override demandé: menu nav/footer blanc + hover rouge ---- */
.nav-menu a,
.footer-menu a {
    color: #fff !important;
}

.nav-menu a:hover,
.nav-menu a:focus,
.footer-menu a:hover,
.footer-menu a:focus {
    color: var(--red) !important;
}

/* ---- bloc "A retenir" deplace dans Infos pratiques ---- */
.hero-layout--solo {
    grid-template-columns: 1fr;
}

.info-retenir {
    margin-bottom: 20px;
    background: linear-gradient(135deg, #50206A 0%, #26123B 100%);
    border: 1px solid rgba(255,255,255,.16);
    color: #fff;
}

.info-retenir .card-kicker,
.info-retenir h3,
.info-retenir p,
.info-retenir li,
.info-retenir span {
    color: #fff !important;
}

.info-retenir ul {
    margin-top: 12px;
    display: grid;
    gap: 10px;
}

.info-retenir li {
    padding-left: 18px;
    position: relative;
}

.info-retenir li:before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--yellow);
}


/* ---- override demandé: sections claires en blanc ---- */
body {
    background: #fff !important;
}

.section:not(.photo-section):not(.dark-section):not(.hero) {
    background: #fff !important;
}

.warm-panel {
    background: #fff !important;
}


/* ---- override demandé: CTA billetterie/réservation rouge vers violet (haut -> bas) ---- */
.btn-primary {
    background: linear-gradient(180deg, var(--red) 0%, var(--purple) 100%) !important;
    color: #fff !important;
}

/* ---- override demandé: listes flottantes + étoiles stylées ---- */
.info-retenir li,
.tarifs-list li {
    padding: 12px 14px 12px 36px !important;
    border: 1px solid rgba(255,255,255,.22);
    box-shadow: 0 10px 22px rgba(20,10,31,.16);
    transform: translateY(0);
    transition: transform .2s ease, box-shadow .2s ease;
}

.info-retenir li {
    background: rgba(255,255,255,.14);
}

.tarifs-list li {
    background: rgba(255,255,255,.12);
}

.info-retenir li:hover,
.tarifs-list li:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(20,10,31,.22);
}

(--red)
}

/* ---- override demandé: texte noir -> violet ---- */
h1, h2, h3, h4, h5, h6,
p, li, span, label, small, strong, em, a,
input, textarea, select, button {
    color: var(--purple) !important;
}

.dark-section,
.photo-section,
.hero,
.site-footer,
.bloc-cta,
.overlay-grid .info-card.glass,
.glass-card,
.info-retenir {
    color: #fff !important;
}

.dark-section h1, .dark-section h2, .dark-section h3, .dark-section h4, .dark-section h5, .dark-section h6,
.dark-section p, .dark-section li, .dark-section span, .dark-section a,
.photo-section h1, .photo-section h2, .photo-section h3, .photo-section h4, .photo-section h5, .photo-section h6,
.photo-section p, .photo-section li, .photo-section span, .photo-section a,
.hero h1, .hero h2, .hero h3, .hero h4, .hero h5, .hero h6,
.hero p, .hero li, .hero span, .hero a,
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5, .site-footer h6,
.site-footer p, .site-footer li, .site-footer span, .site-footer a,
.bloc-cta h1, .bloc-cta h2, .bloc-cta h3, .bloc-cta h4, .bloc-cta h5, .bloc-cta h6,
.bloc-cta p, .bloc-cta li, .bloc-cta span, .bloc-cta a,
.overlay-grid .info-card.glass h1, .overlay-grid .info-card.glass h2, .overlay-grid .info-card.glass h3, .overlay-grid .info-card.glass h4, .overlay-grid .info-card.glass h5, .overlay-grid .info-card.glass h6,
.overlay-grid .info-card.glass p, .overlay-grid .info-card.glass li, .overlay-grid .info-card.glass span, .overlay-grid .info-card.glass a,
.glass-card h1, .glass-card h2, .glass-card h3, .glass-card h4, .glass-card h5, .glass-card h6,
.glass-card p, .glass-card li, .glass-card span, .glass-card a,
.info-retenir h1, .info-retenir h2, .info-retenir h3, .info-retenir h4, .info-retenir h5, .info-retenir h6,
.info-retenir p, .info-retenir li, .info-retenir span, .info-retenir a {
    color: #fff !important;
}


/* ---- override demandé: section-tag en rouge ---- */
.section-tag {
    color: var(--red) !important;
}


/* ---- override demandé: ombre boutons neutre ---- */
.btn,
.btn-primary,
.btn-secondary,
.btn-dark {
    box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
}

/* ---- section temoignages ---- */
.testimonials-section {
    background: #fff;
}

.testimonials-carousel {
    display: grid;
    grid-template-columns: 48px 1fr 48px;
    gap: 16px;
    align-items: center;
}

.testimonials-track-wrap {
    overflow: hidden;
}

.testimonials-track {
    display: flex;
    gap: 16px;
    transition: transform .45s ease;
}

.testimonial-card {
    min-width: calc((100% - 32px) / 3);
    background: #fff;
    border: 1px solid rgba(80,32,106,.15);
    box-shadow: 0 14px 32px rgba(20,10,31,.12);
    padding: 28px;
}

.testimonial-stars {
    color: var(--red) !important;
    font-size: 1.2rem;
    letter-spacing: .08em;
    margin-bottom: 10px;
}

.testimonial-text {
    font-size: 1.18rem;
    line-height: 1.55;
    margin-bottom: 14px;
}

.testimonial-author {
    font-weight: 700;
    color: var(--purple) !important;
}

.testimonial-nav {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(80,32,106,.22);
    background: #fff;
    color: var(--purple);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.testimonial-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 16px;
}

.testimonial-dot {
    width: 11px;
    height: 11px;
    border-radius: 999px;
    border: 0;
    background: rgba(80,32,106,.28);
    cursor: pointer;
}

.testimonial-dot.is-active {
    background: var(--red);
}

@media (max-width: 768px) {
    .testimonials-carousel {
        grid-template-columns: 1fr;
    }
    .testimonial-nav {
        display: none;
    }
    .testimonial-card {
        min-width: 100%;
        padding: 22px;
    }
    .testimonial-text {
        font-size: 1.05rem;
    }
}



/* ---- fix final: etoiles rouges A retenir + Dates & horaires ---- */
.info-retenir li::before,
.tarifs-list li::before,
.compact-list li::before {
    content: '✦' !important;
    color: var(--red) !important;
}


/* ---- override demandé: font-family boutons ---- */
.btn,
button,
input[type='button'],
input[type='submit'],
input[type='reset'] {
    font-family: 'Poppins',Helvetica,Arial,Lucida,sans-serif !important;
}


/* ---- fix serveur: image carousel via <img> ---- */
.hero-slide-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/* ---- fix carousel visibility: keep slides absolutely stacked ---- */
.hero-slider {
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden;
}

.hero-slide {
    position: absolute !important;
    inset: 0 !important;
}

.hero-slide-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}


/* ---- masquage scrollbar galerie principale ---- */
.gallery-track {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.gallery-track::-webkit-scrollbar {
    display: none;
}


/* ---- FAQ fond photo scrollant ---- */
.faq-photo-section .section-background {
    background-attachment: fixed;
}

.faq-photo-section:before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20,10,31,.58), rgba(20,10,31,.44));
}

.faq-photo-section .section-shell {
    position: relative;
    z-index: 1;
}

.faq-photo-section .section-heading h2,
.faq-photo-section .section-heading .section-tag {
    color: #fff !important;
}

@media (max-width: 980px) {
    .faq-photo-section .section-background {
        background-attachment: scroll;
    }
}


/* ---- fix FAQ photo: conserver texte FAQ en violet ---- */
.faq-photo-section .faq-question,
.faq-photo-section .faq-question span,
.faq-photo-section .faq-answer p,
.faq-photo-section .faq-item,
.faq-photo-section .faq-item p {
    color: var(--purple) !important;
}

.faq-photo-section .faq-icon {
    color: var(--night) !important;
}


/* ---- ajustements demandés: parcours + infos pratiques ---- */
.parcours-layout {
    display: grid;
    gap: 22px;
}

.parcours-main-image {
    width: 100%;
    margin: 0 auto;
}

.parcours-steps {
    max-width: 900px;
    margin: 0 auto;
}

.infos-merged-grid {
    grid-template-columns: repeat(3, 1fr);
}

.info-retenir li::before {
    left: 18px !important;
}

@media (max-width: 980px) {
    .parcours-main-image {
        width: 85%;
    }
    .infos-merged-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .parcours-main-image {
        width: 100%;
    }
    .infos-merged-grid {
        grid-template-columns: 1fr;
    }
}


/* ---- ajustement parcours: steps horizontales ---- */
.parcours-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

/* ---- ajustement etoiles tarifs compact-list ---- */
.tarifs-list.compact-list li::before,
.compact-list li::before {
    left: 18px !important;
}

@media (max-width: 980px) {
    .parcours-steps {
        grid-template-columns: 1fr;
    }
}


/* ---- FAQ alignement avec le titre ---- */
.faq-list {
    max-width: none !important;
    margin: 0 !important;
}


/* ---- Contact: alignement bloc texte avec le titre ---- */
.contact-section .contact-box,
.contact-section .contact-form-card {
    padding-left: 0 !important;
}


/* ---- fix contact layout: restaurer carte + alignement propre ---- */
.contact-section .contact-box,
.contact-section .contact-form-card {
    padding: 28px !important;
}

.contact-section .contact-box h2,
.contact-section .contact-box p,
.contact-section .contact-list {
    margin-left: 0 !important;
}


/* ---- alignement fin: texte contact-box sur l'axe du heading ---- */
.contact-section .contact-box {
    padding-left: 0 !important;
    padding-right: 28px !important;
    padding-top: 28px !important;
    padding-bottom: 28px !important;
}


/* ---- bouton contact: supprimer bordure noire ---- */
.contact-form .btn,
.contact-form button[type='submit'] {
    border: none !important;
    outline: none !important;
}


/* ---- header eyebrow: sans radius ---- */
.hero .eyebrow {
    border-radius: 0 !important;
}


/* ---- FAQ icon: symbole central en blanc ---- */
.faq-icon,
.faq-question[aria-expanded='true'] .faq-icon {
    color: #fff !important;
}


/* ---- Experience: content-grid pleine largeur ---- */
.experience-section .content-grid.content-grid--two {
    grid-template-columns: 1fr !important;
    width: 100%;
}

.experience-section .content-grid.content-grid--two > * {
    max-width: none;
}


/* ---- Infos pratiques: icones par carte ---- */
.infos-merged-grid .info-card-icon {
    position: relative;
    padding-top: 56px;
}

.infos-merged-grid .info-card-icon-mark {
    position: absolute;
    top: 18px;
    left: 24px;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    line-height: 1;
}


/* ---- Infos icones inline a cote du titre ---- */
.infos-merged-grid .info-card-icon {
    padding-top: 24px !important;
}

.infos-merged-grid .info-card-icon h3 {
    display: flex;
    align-items: center;
    gap: 8px;
}

.infos-merged-grid .info-card-icon-mark {
    position: static !important;
    width: auto;
    height: auto;
    display: inline-block;
    font-size: 1.05em;
}


/* ---- footer social icons ---- */
.footer-socials {
    display: flex;
    gap: 10px;
    margin-top: 16px;
}

.footer-socials a {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.38);
    color: #fff !important;
    font-weight: 700;
    text-transform: uppercase;
    font-size: .85rem;
}

.footer-socials a:hover {
    color: var(--red) !important;
    border-color: var(--red);
}


/* ---- header H1: largeur augmentee ---- */
.hero-title {
    max-width: 980px;
}


/* ---- header: elargir la zone de texte hero ---- */
.hero-copy {
    max-width: 980px !important;
}


/* ---- footer socials plus bas ---- */
.footer-socials {
    margin-top: 28px !important;
}


/* ---- footer socials plus grandes ---- */
.footer-socials a {
    width: 42px !important;
    height: 42px !important;
    font-size: 1rem !important;
}


/* ---- footer socials encore plus bas ---- */
.footer-socials {
    margin-top: 40px !important;
}


/* ---- footer socials: plus bas + centrees ---- */
.footer-grid > div:first-child .footer-socials {
    margin-top: 52px !important;
    justify-content: center;
}


/* ---- header eyebrow en blanc ---- */
.hero .eyebrow {
    color: #fff !important;
}


/* ---- header eyebrow: cadre sans teinte jaune ---- */
.hero .eyebrow {
    background: rgba(255,255,255,.16) !important;
    border-color: rgba(255,255,255,.35) !important;
    box-shadow: none !important;
}


/* ---- tableau des tarifs dynamique ---- */
.rates-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 8px;
}

.rates-table th,
.rates-table td {
    padding: 12px 10px;
    border-bottom: 1px solid rgba(255,255,255,.2);
    text-align: left;
}

.rates-table th {
    font-weight: 600;
}

.rates-table td {
    font-weight: 700;
    white-space: nowrap;
}

.rates-table tr:last-child th,
.rates-table tr:last-child td {
    border-bottom: 0;
}


/* ---- hover tableau tarifs: rouge vers violet ---- */
.rates-table tr:hover th,
.rates-table tr:hover td {
    background: linear-gradient(180deg, var(--red) 0%, var(--purple) 100%);
    color: #fff !important;
}


/* ---- Programme: blocs dates/tarifs meme hauteur ---- */
.tarifs-grid {
    align-items: stretch !important;
}

.tarifs-grid .glass-card.smallpad {
    height: 100%;
    display: flex;
    flex-direction: column;
}


/* ---- hover tableau tarifs: rouge uni ---- */
.rates-table tr:hover th,
.rates-table tr:hover td {
    background: var(--red) !important;
    color: #fff !important;
}


/* ---- curseur hover: main (pas fleche) ---- */
.btn,
button,
input[type='button'],
input[type='submit'],
input[type='reset'],
.nav-menu a,
.footer-menu a,
.rates-table tr,
.rates-table tr th,
.rates-table tr td {
    cursor: pointer !important;
}


/* ---- tableau tarifs: ligne note pleine largeur ---- */
.rates-note-row td {
    font-style: italic;
    opacity: .95;
}

.rates-note-row:hover td {
    background: transparent !important;
    color: inherit !important;
}


/* ---- icones images: social + infos pratiques ---- */
.footer-socials a {
    border: 0 !important;
    background: transparent !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0;
}

.footer-socials a img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.infos-merged-grid .info-card-icon-mark img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    display: block;
}


/* ---- ajustement icones infos + socials sans bordure ---- */
.infos-merged-grid .info-card-icon-mark img {
    width: 18px !important;
    height: 18px !important;
}

.footer-socials a,
.footer-socials a:hover,
.footer-socials a:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}


/* ---- infos pratiques: icones un peu plus grandes ---- */
.infos-merged-grid .info-card-icon-mark img {
    width: 21px !important;
    height: 21px !important;
}



.image-brand{
	width : 100px !important;
	height : 100px !important
}


/****** Voile Violet ******/

.hero-slider {
    position: relative;
    overflow: hidden;
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
   background: linear-gradient(
        rgba(0, 0, 0, 0.45), 
        rgba(0, 0, 0, 0.65)
    );
    z-index: 2;
    pointer-events: none;
}


@media (max-width: 768px) {
    .hero-overlay {
        background: linear-gradient(
            rgba(0, 0, 0, 0.55), 
            rgba(0, 0, 0, 0.75)
        );
    }
}


.hero-layout {
    position: relative;
    z-index: 3;
}

/* ====================== PARCOURS NOTICE ====================== */
.parcours-notice {
    background: rgba(80, 32, 106, 0.08);
    border-left: 5px solid #50206A;
    padding: 20px 15px;
    margin: 30px 0 35px 0;
    border-radius: 4px;
    color: #333;
    font-size: 1.05rem;
    line-height: 1.55;
}

.parcours-notice p {
    margin: 0 0 12px 0;
}

.parcours-notice p:last-child {
    margin-bottom: 0;
}

.parcours-notice strong {
    color: #50206A;
}

/* Version mobile */
@media (max-width: 768px) {
    .parcours-notice {
        padding: 18px 20px;
        margin: 25px 0 30px 0;
        font-size: 1rem;
    }
}


.parcours-notice {
    background: rgba(80, 32, 106, 0.08);
    border-left: 5px solid #50206A;
    padding: 20px 155px;
    margin: 30px 0 35px 0;
    border-radius: 4px;
    color: #333;
    font-size: 1.05rem;
    line-height: 1.55;
}

.parcours-notice p {
    margin: 0 0 12px 0;
}

.parcours-notice strong {
    color: #50206A;
}


/* ====================== PARCOURS NOTICE ====================== */
.parcours-notice {
    background: rgba(80, 32, 106, 0.08);
    border-left: 5px solid #50206A;
    padding: 22px 15px;
    margin: 32px 0 40px 0;
    border-radius: 4px;
    color: #333;
    font-size: 1.06rem;
    line-height: 1.6;
    box-shadow: 0 2px 8px rgba(80, 32, 106, 0.08);
}

.parcours-notice p {
    margin: 0 0 14px 0;
}

.parcours-notice p:last-child {
    margin-bottom: 0;
}

.parcours-notice strong {
    color: #50206A;
}

/* Version mobile */
@media (max-width: 768px) {
    .parcours-notice {
        padding: 18px 22px;
        margin: 25px 0 32px 0;
        font-size: 1rem;
    }
}


/* ====================== LANTERNES ANIMÉES - PARCOURS ====================== */
.parcours-section {
    position: relative;
    overflow: hidden;
}

.parcours-lanterns-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
    opacity: 0.25;
}

.lantern {
    position: absolute;
    width: 45px;
    height: 55px;
    background: radial-gradient(circle at 50% 30%, #ffeb3b, #ff9800 40%, #e91e63);
    border-radius: 50% 50% 40% 40%;
    box-shadow: 
        0 0 15px #ffeb3b,
        0 0 30px #ff9800,
        0 0 45px #e91e63;
    animation: floatLantern 18s linear infinite;
    opacity: 0.85;
}

/* Différentes tailles et positions */
.lantern-1 { 
    top: 15%; 
    left: 8%; 
    width: 38px; 
    height: 48px; 
    animation-duration: 22s; 
    animation-delay: 0s; 
}

.lantern-2 { 
    top: 35%; 
    right: 12%; 
    width: 52px; 
    height: 65px; 
    animation-duration: 16s; 
    animation-delay: -5s; 
}

.lantern-3 { 
    bottom: 25%; 
    left: 18%; 
    width: 35px; 
    height: 45px; 
    animation-duration: 25s; 
    animation-delay: -8s; 
}

.lantern-4 { 
    top: 55%; 
    right: 25%; 
    width: 42px; 
    height: 52px; 
    animation-duration: 19s; 
    animation-delay: -12s; 
}

.lantern-5 { 
    bottom: 40%; 
    left: 35%; 
    width: 48px; 
    height: 60px; 
    animation-duration: 21s; 
    animation-delay: -3s; 
}

/* Animation : flottement + pulsation lumineuse */
@keyframes floatLantern {
    0%   { transform: translateY(0) rotate(-8deg); }
    50%  { transform: translateY(-80px) rotate(8deg); }
    100% { transform: translateY(0) rotate(-8deg); }
}

/* Effet de scintillement doux */
.lantern::after {
    content: '';
    position: absolute;
    top: 12%;
    left: 50%;
    transform: translateX(-50%);
    width: 12px;
    height: 12px;
    background: rgba(255,255,255,0.9);
    border-radius: 50%;
    box-shadow: 0 0 12px #fff;
    animation: lanternGlow 3s ease-in-out infinite;
}

@keyframes lanternGlow {
    0%, 100% { opacity: 0.6; transform: scale(0.8); }
    50%      { opacity: 1; transform: scale(1.1); }
}

/* Réduction sur mobile */
@media (max-width: 768px) {
    .parcours-lanterns-bg {
        opacity: 0.18;
    }
    .lantern {
        width: 32px;
        height: 40px;
    }
}

.marg-btn{
	margin-top  : 10px !important
}


.glass-card p {
    margin-bottom: 1.6em; 
}

.glass-card p:last-child {
    margin-bottom: 0; 
}


@media (min-width: 992px) {
    .glass-card p {
        margin-bottom: 1.85em;
    }
}

/* ====================== ADAPTATION MENU ====================== */
.nav-menu li a {
    white-space: nowrap;
    padding: 8px 14px;
    font-size: 1.02rem;
}

@media (max-width: 1024px) {
    .nav-menu li a {
        font-size: 0.98rem;
        padding: 8px 12px;
    }
}

/* Si le menu devient trop large sur mobile */
@media (max-width: 768px) {
    .nav-menu {
        font-size: 1rem;
    }
}

.frame-card{
	box-shadow:none !important
}