﻿: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:58px;width:auto}.nav-menu{display:flex;gap:26px;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(4,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:#0d2a43;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;
}

/* ---- 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; }
}

/* ---- 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: 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 !important;
}

.info-retenir .card-kicker,
.info-retenir h3,
.info-retenir p,
.info-retenir li,
.info-retenir span {
    color: var(--brand-white) !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;
}

/* ---- 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;
}


/* ---- 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;
}





/* ---- 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;
}

/* ---- Nouvelle charte graphique (site cible) ---- */
:root {
    --brand-dark: #022039;
    --brand-light: #8ca9c2;
    --brand-white: #ffffff;
}

body {
    background: linear-gradient(180deg, var(--brand-light) 0%, var(--brand-dark) 100%) !important;
    color: var(--brand-dark) !important;
}

.section:not(.photo-section):not(.dark-section):not(.hero),
.warm-panel,
.blocs-flexibles-section,
.info-card,
.hero-card,
.contact-form-card,
.contact-box {
    background: var(--brand-white) !important;
}

.navbar,
.site-footer,
.dark-section,
.hero-no-slides {
    background: var(--brand-dark) !important;
}

.brand-mark,
.nav-menu a,
.site-footer,
.site-footer a,
.dark-section,
.dark-section h1,
.dark-section h2,
.dark-section h3,
.dark-section p,
.dark-section li {
    color: var(--brand-white) !important;
}

.nav-menu a:hover,
.footer-menu a:hover,
.footer-socials a:hover {
    color: var(--brand-light) !important;
}

.section-heading h2,
.info-card h3,
.bloc-titre,
.bloc-highlight h3 {
    color: var(--brand-dark) !important;
}

.btn-primary {
    background: linear-gradient(180deg, var(--brand-light) 0%, var(--brand-dark) 100%) !important;
    color: var(--brand-white) !important;
}

.btn-secondary,
.btn-dark {
    border-color: var(--brand-light) !important;
    color: var(--brand-dark) !important;
    background: var(--brand-white) !important;
}

a {
    color: var(--brand-dark) !important;
}

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

/* ---- LeGambetta: bloc equipe + typo blanche ---- */
.section.experience-section:not(.photo-section):not(.dark-section):not(.hero) {
    background: var(--brand-white) !important;
}

.section.experience-section .section-tag,
.section.experience-section .section-heading h2,
.section.experience-section h2,
.section.experience-section p,
.section.experience-section li,
.section.experience-section span,
.section.experience-section .lead,
.section.experience-section .experience-side-caption {
    color: var(--brand-dark) !important;
}

.experience-side-media {
    display: grid;
    gap: 12px;
    align-content: start;
}

.experience-split {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 24px;
    align-items: start;
}

.experience-side-media .frame-card {
    background: var(--brand-white) !important;
    border: 1px solid rgba(2, 32, 57, 0.28);
}

.experience-side-media .frame-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.experience-side-caption {
    font-weight: 600;
}

.section.experience-section .content-grid,
.section.experience-section .content-grid > div,
.section.experience-section .frame-card,
.section.experience-section .eveil-empty-hint {
    background: var(--brand-white) !important;
}

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

/* ---- Bloc Projet de restauration: fond blanc + texte bleu ---- */
.section.programme-section {
    background: var(--brand-white) !important;
}

.section.programme-section .section-tag,
.section.programme-section .section-heading h2,
.section.programme-section h3,
.section.programme-section p,
.section.programme-section li,
.section.programme-section span,
.section.programme-section th,
.section.programme-section td {
    color: var(--brand-dark) !important;
}

.section.programme-section .glass-card,
.section.programme-section .overlay-grid .info-card.glass {
    background: var(--brand-white) !important;
    border: 1px solid rgba(2, 32, 57, 0.18) !important;
}

.projet-restauration-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: start;
}

.projet-restauration-lshape {
    width: 100%;
}

.projet-l-block {
    background: var(--brand-white) !important;
    border: 1px solid rgba(2, 32, 57, 0.2);
    padding: 20px;
}

.projet-table-card {
    background: linear-gradient(180deg, var(--brand-light) 0%, var(--brand-dark) 100%) !important;
    border: 1px solid rgba(2, 32, 57, 0.2);
    padding: 22px;
    overflow-x: auto;
}

.projet-table-card-full {
    width: 100%;
    margin-top: 20px;
}

.section.programme-section .projet-table-card h3,
.section.programme-section .projet-table-card p,
.section.programme-section .projet-table-card li,
.section.programme-section .projet-table-card th,
.section.programme-section .projet-table-card td {
    color: var(--brand-white) !important;
}

.section.programme-section .projet-table-card .rates-table th,
.section.programme-section .projet-table-card .rates-table td {
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}

.projet-chiffres-table {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
}

.projet-chiffres-table th,
.projet-chiffres-table td {
    padding: 10px 8px;
    text-align: left;
    white-space: nowrap;
    font-size: 0.92rem;
}

.projet-chiffres-table thead th {
    background: rgba(255, 255, 255, 0.14);
    font-weight: 700;
}

@media (max-width: 980px) {
    .projet-restauration-layout,
    .projet-l-bottom-row {
        grid-template-columns: 1fr;
    }
}

.projet-infos-integrated {
    margin-top: 28px;
    display: grid;
    gap: 18px;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    width: 100vw;
    padding: 28px clamp(20px, 5vw, 72px);
    background: linear-gradient(90deg, #022039 0%, #052641 100%) !important;
}

.info-retenir-heading {
    margin: 0 0 8px 0;
    color: #ffffff !important;
    font-family: var(--font-display) !important;
    font-size: clamp(2.2rem, 4.8vw, 4.2rem) !important;
    line-height: 1.05;
    font-weight: 600;
}

.info-retenir-text {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    box-shadow: none !important;
    padding: 20px !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.info-retenir-text .card-kicker,
.info-retenir-text h2,
.info-retenir-text p {
    color: var(--brand-white) !important;
}

.info-retenir.info-retenir-text,
.info-retenir.info-retenir-text * {
    color: #ffffff !important;
}

.info-retenir-text p {
    line-height: 1.7;
}

.projet-images-two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.projet-image-card {
    background: var(--brand-white) !important;
    border: 1px solid rgba(2, 32, 57, 0.2);
    min-height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.projet-image-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4 / 3;
}

.artisans-carousel .artisans-track {
    display: grid;
    grid-template-columns: repeat(8, minmax(260px, 1fr));
    gap: 18px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 10px;
}

.artisans-carousel .artisans-card {
    min-width: 260px;
    scroll-snap-align: start;
}

/* ---- Override final: pas de hover rouge ---- */
a:hover,
a:focus,
.nav-menu a:hover,
.nav-menu a:focus,
.footer-menu a:hover,
.footer-menu a:focus,
.footer-socials a:hover {
    color: #8ca9c2 !important;
}

.rates-table tr:hover th,
.rates-table tr:hover td {
    background: rgba(140, 169, 194, 0.22) !important;
    color: #022039 !important;
}

/* ---- Typographie charte LeGambetta ---- */
:root {
    --font-body: 'Avenir', 'Avenir Next', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --font-display: 'Juana Black', 'Juana', serif;
    --font-logo: 'Cyrillic Bodoni Condensed', 'Bodoni MT Condensed', 'Didot', serif;
}

body,
input,
textarea,
select,
button {
    font-family: var(--font-body) !important;
}

h1, h2, h3, h4, h5, h6,
.section-tag,
.eyebrow,
.card-kicker,
.slide-title,
.slide-subtitle {
    font-family: var(--font-display) !important;
}

.brand-mark,
.brand-mark span {
    font-family: var(--font-logo) !important;
}

/* ---- Override final: suppression rouge/jaune ---- */
:root {
    --yellow: #8ca9c2 !important;
    --orange: #8ca9c2 !important;
    --red: #8ca9c2 !important;
    --purple: #022039 !important;
}

.section-tag,
.eyebrow,
.card-kicker,
.nav-menu a:hover,
.footer-menu a:hover,
.footer-socials a:hover {
    color: #8ca9c2 !important;
}

.btn-primary,
.rates-table tr:hover th,
.rates-table tr:hover td {
    background: linear-gradient(90deg, #022039 0%, #052641 100%) !important;
    color: #ffffff !important;
}

.hero-card li:before,
.tarifs-list li:before,
.compact-list li:before,
.info-retenir li:before {
    color: #8ca9c2 !important;
}

/* ---- Override final: suppression violet restant ---- */
h1, h2, h3, h4, h5, h6,
p, li, span, label, small, strong, em, a,
.lead, .quote, .info-card h3,
.section-heading h2, .bloc-titre, .bloc-highlight h3,
.contact-box h2 {
    color: #022039 !important;
}

/* ---- Overrides demandes: textes blancs ---- */
.brand-mark,
.brand-mark span {
    color: #ffffff !important;
}

.section-heading.light h2 {
    color: #ffffff !important;
}

.programme-section .info-retenir.info-retenir-text,
.programme-section .info-retenir.info-retenir-text * {
    color: #ffffff !important;
}

.rates-note-row td,
.rates-note-row td * {
    color: #ffffff !important;
}

/* ---- Hero: overlay sombre pour lisibilite texte ---- */
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(2, 32, 57, 0.48) 0%, rgba(2, 32, 57, 0.62) 100%);
    z-index: 1;
    pointer-events: none;
}

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

@media (max-width: 980px) {
    .projet-images-two-cols {
        grid-template-columns: 1fr;
    }
}

/* ---- Final ajustements UI Le Gambetta ---- */

/* Footer gauche: LE GAMBETTA en uppercase + police logo */
.site-footer .footer-grid > div:first-child h3 {
    font-family: var(--font-logo) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em;
    color: #ffffff !important;
}

/* Section equipe: intro italique meme taille que le corps + image a la hauteur du bloc */
.experience-section .lead {
    font-size: 1rem !important;
    font-style: italic !important;
    font-weight: 400 !important;
}

.experience-text-block p + p {
    margin-top: 14px;
}

.experience-section .experience-split {
    align-items: stretch !important;
}

.experience-section .experience-side-media {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.experience-section .experience-side-media .frame-card {
    height: 100% !important;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
}

.experience-section .experience-side-media .frame-card img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    aspect-ratio: auto !important;
}

/* Section dispositif: espace entre paragraphes + image a la hauteur du bloc */
.story-section .glass-card p + p {
    margin-top: 16px;
}

.story-section .content-grid--story {
    align-items: stretch !important;
}

.story-section .stacked-photo,
.story-section .stacked-photo img {
    height: 100%;
}

.story-section .stacked-photo img {
    width: 100%;
    object-fit: cover;
}

/* Tableau chiffres cles: fond uni bleu clair + texte centre */
.programme-section .projet-table-card {
    background: #8ca9c2 !important;
}

.programme-section .projet-chiffres-table th,
.programme-section .projet-chiffres-table td {
    text-align: center !important;
    vertical-align: middle;
    color: #ffffff !important;
}

.programme-section .projet-table-card .rates-table th,
.programme-section .projet-table-card .rates-table td {
    border-bottom: 1px solid rgba(2, 32, 57, 0.22) !important;
    color: #ffffff !important;
}

.programme-section .rates-note-row td,
.programme-section .rates-note-row td * {
    color: #ffffff !important;
    background: #052641 !important;
}

.programme-section .projet-chiffres-table thead th,
.programme-section .projet-table-card .rates-table thead th {
    background: #052641 !important;
    color: #ffffff !important;
}

/* Travaux: heading harmonise et hors cadre blanc */
.programme-section .travaux-heading {
    margin-bottom: 16px;
}

.programme-section .travaux-heading .section-tag {
    color: #022039 !important;
}

.programme-section .travaux-heading h2 {
    color: #022039 !important;
    font-family: var(--font-display) !important;
    font-size: clamp(2.2rem, 4.8vw, 4.2rem) !important;
    line-height: 1.05;
}

/* Galerie realisations: image active/hover plus grande + note */
.artisans-carousel .artisans-track {
    align-items: center;
}

.artisans-carousel .artisans-card {
    transition: transform .25s ease, opacity .25s ease;
    opacity: .85;
}

.artisans-carousel .artisans-card:hover,
.artisans-carousel .artisans-card:focus-within {
    transform: scale(1.08);
    opacity: 1;
    z-index: 2;
}

.artisans-caption {
    margin-top: 10px;
    font-size: .86rem;
    font-style: italic;
    color: #022039 !important;
}

.artisans-carousel {
    position: relative;
}

.artisans-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: 0;
    background: rgba(2, 32, 57, 0.86);
    color: #fff !important;
    font-size: 1.9rem;
    line-height: 1;
    z-index: 5;
}

.artisans-prev {
    left: 8px;
}

.artisans-next {
    right: 8px;
}

@media (max-width: 768px) {
    .artisans-nav {
        width: 36px;
        height: 36px;
        font-size: 1.5rem;
    }
}

/* Hover tableau: texte blanc */
.programme-section .rates-table tr:hover th,
.programme-section .rates-table tr:hover td,
.programme-section .rates-table tr:hover th *,
.programme-section .rates-table tr:hover td * {
    color: #ffffff !important;
}

/* Plans logements avant formulaire */
.housing-plans-block {
    margin-bottom: 28px;
}

.housing-plans-block h3 {
    font-family: var(--font-display);
    color: var(--purple);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    margin-bottom: 14px;
}

.housing-plans-section .mini-gallery figure figcaption {
    padding: 10px 12px;
    font-size: .9rem;
    color: var(--purple);
    background: #fff;
    border-top: 1px solid rgba(80,32,106,.12);
}



/* 1) Afficher la légende sous chaque image */
.housing-plans-section .mini-gallery figure {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.housing-plans-section .mini-gallery figure figcaption {
  display: block !important;
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.4;
  color: #50206A;
  background: #fff;
}

/* 2) Supprimer l'effet "zoom/crop" des images plans */
.housing-plans-section .mini-gallery img {
  width: 100%;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important; /* au lieu de cover */
  background: #fff;
}

/* Option: hauteur fixe sans crop (desktop) */
.housing-plans-section .mini-gallery figure {
  min-height: 320px;
}
.housing-plans-section .mini-gallery img {
  max-height: 260px;
}

/* Mobile */
@media (max-width: 768px) {
  .housing-plans-section .mini-gallery figure {
    min-height: auto;
  }
  .housing-plans-section .mini-gallery img {
    max-height: none;
  }
}
/* Plans logements: clic + lightbox + navigation */
.housing-plans-section .plan-open-btn {
  border: 0;
  padding: 0;
  background: transparent;
  width: 100%;
  cursor: zoom-in;
}

.housing-plans-section .plan-open-btn img {
  display: block;
  width: 100%;
}

.plan-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(13, 42, 67, 0.88);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 24px 70px;
}

.plan-lightbox.is-open {
  display: flex;
}

.plan-lightbox-img {
  max-width: min(1100px, 88vw);
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
  background: #fff;
}

.plan-lightbox-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #0D2A43;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

.plan-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #0D2A43;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.plan-lightbox-prev { left: 16px; }
.plan-lightbox-next { right: 16px; }

@media (max-width: 768px) {
  .plan-lightbox {
    padding: 16px 54px;
  }

  .plan-lightbox-nav {
    width: 40px;
    height: 40px;
    font-size: 28px;
  }

  .plan-lightbox-prev { left: 8px; }
  .plan-lightbox-next { right: 8px; }
}

