:root{
  /* Palette sombre — brun-sable foncé (café), plus le même "noir à part") */
  --bg:#362a1c;
  --bg-soft:#423323;
  --brown:#4a2f1c;
  --gold:#c8862e;
  --gold-bright:#e6a94b;
  --cream:#f2e8d9;
  --cream-dim:#cbb99a;
  --ember:#b23a2e;
  --line: rgba(242,232,217,0.16);

  /* Palette claire — sable/beige chaud, même famille que la palette sombre */
  --paper:#dcc9a3;
  --paper-soft:#d2bd93;
  --paper-card:#e8dabb;
  --ink:#2f2416;
  --ink-dim:#5c4a34;
  --gold-deep:#8a5a1f;
  --line-light: rgba(47,36,22,0.16);
  --seam: rgba(138,90,31,0.3);

  /* Ombres chaudes (jamais gris neutre) */
  --shadow-sm: 0 2px 10px rgba(36,26,16,0.07);
  --shadow-md: 0 14px 34px rgba(36,26,16,0.11);
  --shadow-lg: 0 26px 64px rgba(36,26,16,0.16);
  --shadow-dark-md: 0 18px 40px rgba(0,0,0,0.35);

  /* Rayons cohérents (langage "carte" plus doux, façon Hostinger) */
  --radius-lg:22px;
  --radius-md:16px;
  --radius-sm:10px;
  --radius-pill:999px;
}
*{margin:0;padding:0;box-sizing:border-box;}
/* Garde-fou : empêche les colonnes grid/flex de forcer un débordement horizontal
   à cause du min-width:auto par défaut sur leurs enfants. */
*, *::before, *::after{min-width:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--cream); font-family:'Inter', sans-serif; font-weight:400; line-height:1.65; overflow-x:hidden; overflow-wrap:break-word;}
img, video, svg{max-width:100%; height:auto;}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important;}}
h1,h2,h3{font-family:'Fraunces', serif; font-weight:600; line-height:1.08; letter-spacing:-0.01em;}
.eyebrow{font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:0.22em; font-size:0.72rem; font-weight:500; color:var(--gold-bright);}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
a:focus-visible, button:focus-visible{outline:2px solid var(--gold-bright); outline-offset:3px;}

/* ===== Sections claires (utilitaire réutilisable) ===== */
.section-light{background:var(--paper); color:var(--ink); border-top:1px solid var(--seam); border-bottom:1px solid var(--seam); box-shadow:inset 0 1px 0 rgba(255,255,255,0.5);}
.section-light h1, .section-light h2, .section-light h3{color:var(--ink);}
.section-light p{color:var(--ink-dim);}
.section-light .eyebrow{color:var(--gold-deep);}
.section-light .btn-ghost{border-color:var(--line-light); color:var(--ink);}
.section-light .btn-ghost:hover{border-color:var(--gold-deep); color:var(--gold-deep); background:rgba(156,100,35,0.06);}
.section-light .section-head p{color:var(--ink-dim);}

/* ===== Marquee ===== */
.marquee{background:linear-gradient(180deg, var(--brown), #2e1d11); border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; position:relative; padding:11px 0;}
.marquee::before, .marquee::after{content:""; position:absolute; top:0; bottom:0; width:60px; z-index:2;}
.marquee::before{left:0; background:linear-gradient(90deg, var(--brown), transparent);}
.marquee::after{right:0; background:linear-gradient(270deg, var(--brown), transparent);}
.marquee-track{display:flex; width:max-content; animation:scroll-left 28s linear infinite;}
.marquee-track span{font-family:'Oswald', sans-serif; font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--cream-dim); padding:0 26px; white-space:nowrap; display:flex; align-items:center; gap:26px;}
.marquee-track span.bulb::before{content:"●"; color:var(--gold); font-size:0.5rem; animation:bulb-flicker 1.6s ease-in-out infinite;}
@keyframes scroll-left{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@keyframes bulb-flicker{0%,100%{opacity:0.35;} 50%{opacity:1;}}

/* ===== Header ===== */
header.site-header{position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(54,42,28,0.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:box-shadow .3s;}
header.site-header.scrolled{box-shadow:var(--shadow-dark-md);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto;}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{height:38px; width:auto; border-radius:50%;}
.brand-name{font-family:'Oswald', sans-serif; font-size:1.05rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--cream);}
.brand-name b{color:var(--gold-bright); font-weight:600;}
nav ul{display:flex; gap:34px; list-style:none;}
nav ul li a{font-family:'Oswald', sans-serif; font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--cream-dim); position:relative; padding-bottom:4px; transition:color .25s;}
nav ul li a::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--gold-bright); transition:width .25s;}
nav ul li a:hover{color:var(--cream);}
nav ul li a:hover::after{width:100%;}
.nav-cta{font-family:'Oswald', sans-serif; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; background:var(--gold); color:#1a1109; padding:12px 26px; border-radius:var(--radius-pill); border:1px solid var(--gold); transition:background .25s, color .25s, transform .25s, box-shadow .25s;}
.nav-cta:hover{background:var(--gold-bright); color:#1a1109; transform:translateY(-2px); box-shadow:var(--shadow-md);}
.burger{display:none; flex-direction:column; justify-content:center; gap:5px; width:36px; height:36px; background:none; border:none; cursor:pointer; padding:6px; position:relative; z-index:60;}
.burger span{width:24px; height:2px; background:var(--cream); border-radius:2px; transition:transform .3s ease, opacity .2s ease;}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-menu{
  display:flex; flex-direction:column; gap:18px;
  background:linear-gradient(180deg, var(--bg-soft), var(--bg));
  border-top:1px solid var(--line);
  padding:0 22px; max-height:0; overflow:hidden; opacity:0;
  transition:max-height .38s cubic-bezier(.4,0,.2,1), opacity .28s ease, padding .38s ease;
}
.mobile-menu.open{max-height:520px; opacity:1; padding:22px 22px 26px;}
.mobile-menu-links{display:flex; flex-direction:column; gap:6px;}
.mobile-menu-links a{
  display:flex; align-items:center; gap:14px;
  padding:14px 16px; border-radius:var(--radius-md);
  font-family:'Oswald', sans-serif; letter-spacing:0.08em; text-transform:uppercase; font-size:0.84rem;
  color:var(--cream-dim); background:transparent; border:1px solid transparent;
  transition:background .2s, color .2s, border-color .2s, transform .2s;
}
.mobile-menu-links a:hover, .mobile-menu-links a:active{
  background:rgba(200,134,46,0.1); border-color:rgba(200,134,46,0.3); color:var(--cream); transform:translateX(3px);
}
.mobile-menu-links a .mm-icon{
  width:34px; height:34px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  border-radius:50%; background:rgba(242,232,217,0.06); color:var(--gold-bright);
}
.mobile-menu-cta{
  display:flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Oswald', sans-serif; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase;
  background:var(--gold); color:#1a1109; padding:15px; border-radius:var(--radius-pill);
  transition:background .25s, transform .2s;
}
.mobile-menu-cta:hover{background:var(--gold-bright); transform:translateY(-2px);}

.mobile-menu-backdrop{
  display:none; position:fixed; inset:0; z-index:40;
  background:rgba(21,17,13,0.55); backdrop-filter:blur(2px);
  opacity:0; transition:opacity .3s ease;
}
.mobile-menu-backdrop.open{display:block; opacity:1;}
body.menu-open{overflow:hidden;}

/* ===== Buttons (pill, façon Hostinger) ===== */
.btn-primary, .btn-ghost{font-family:'Oswald', sans-serif; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; padding:17px 34px; border-radius:var(--radius-pill); display:inline-flex; align-items:center; gap:10px; transition:transform .22s, background .25s, color .25s, border-color .25s, box-shadow .25s; border:none; cursor:pointer;}
.btn-primary{background:var(--gold); color:#1a1109; border:1px solid var(--gold);}
.btn-primary:hover{background:var(--gold-bright); transform:translateY(-3px); box-shadow:var(--shadow-md);}
.btn-ghost{border:1px solid var(--line); color:var(--cream); background:transparent;}
.btn-ghost:hover{border-color:var(--gold-bright); color:var(--gold-bright); transform:translateY(-3px);}
.btn-sm{padding:11px 22px; font-size:0.72rem;}

/* ===== Sections ===== */
section{padding:100px 0; position:relative;}
.section-head{max-width:640px; margin:0 auto 50px;}
.section-head.center{text-align:center;}
.section-head h2{font-size:clamp(1.8rem,3.2vw,2.4rem); color:var(--cream); margin-top:14px;}
.section-head p{color:var(--cream-dim); margin-top:14px;}

/* ===== Stats / trust bar (façon Hostinger, band clair sous le hero) ===== */
.stats-bar{background:var(--paper); padding:70px 0;}
.stats-bar-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px;}
.stat-item{padding:38px 26px; text-align:center; background:var(--paper-card); border:1px solid var(--line-light); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); transition:transform .25s, box-shadow .25s, border-color .25s;}
.stat-item:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--gold);}
.stat-icon{width:44px; height:44px; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(200,134,46,0.14); color:var(--gold-deep);}
.stat-value{font-family:'Fraunces', serif; font-weight:600; font-size:clamp(1.8rem,3vw,2.4rem); color:var(--ink);}
.stat-label{font-family:'Oswald', sans-serif; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-dim); margin-top:8px;}

/* ===== Cards claires réutilisables ===== */
.card-light{background:var(--paper-card); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); border:1px solid var(--line-light); transition:transform .25s, box-shadow .25s;}
.card-light:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg);}

/* ===== Events grid (homepage teaser + listing page) ===== */
.events-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px;}
.event-card{border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; background:var(--bg-soft); display:flex; flex-direction:column; transition:transform .3s, border-color .3s, box-shadow .3s;}
.event-card:hover{border-color:var(--gold); transform:translateY(-6px); box-shadow:var(--shadow-dark-md);}
.event-cover{aspect-ratio:4/3; background:var(--bg-soft); overflow:hidden;}
.event-cover img{width:100%; height:100%; object-fit:cover; transition:transform .5s;}
.event-card:hover .event-cover img{transform:scale(1.06);}
.event-body{padding:24px; display:flex; flex-direction:column; gap:8px; flex:1;}
.event-date{font-family:'Oswald', sans-serif; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-bright);}
.event-body h3{font-size:1.1rem; color:var(--cream); font-weight:600;}
.event-body p{font-size:0.88rem; color:var(--cream-dim); flex:1;}
.event-link{font-family:'Oswald', sans-serif; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-bright); margin-top:6px;}
.event-status{display:inline-block; font-family:'Oswald', sans-serif; font-size:0.62rem; letter-spacing:0.12em; text-transform:uppercase; padding:4px 12px; border-radius:var(--radius-pill); width:fit-content;}
.event-status.a_venir{background:rgba(200,134,46,0.15); color:var(--gold-bright); border:1px solid rgba(200,134,46,0.4);}
.event-status.passe{background:rgba(242,232,217,0.06); color:var(--cream-dim); border:1px solid var(--line);}
.empty-state{text-align:center; color:var(--cream-dim); padding:60px 0;}

/* ===== Footer ===== */
footer.site-footer{border-top:1px solid var(--line); padding:52px 0 30px; background:var(--bg-soft);}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:30px;}
.footer-brand{display:flex; align-items:center; gap:10px;}
.footer-brand img{height:32px; border-radius:50%;}
footer .legal{color:var(--cream-dim); font-size:0.78rem; line-height:1.8; max-width:420px;}
footer .legal b{color:var(--cream);}
.footer-bottom{margin-top:36px; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.78rem; color:var(--cream-dim);}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (max-width:900px){
  nav ul{display:none;}
  .nav-cta{display:none;}
  .burger{display:flex;}
  .events-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .stats-bar-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}
@media (max-width:560px){
  .events-grid{grid-template-columns:minmax(0,1fr);}
  .wrap{padding:0 20px;}
  .stats-bar-grid{grid-template-columns:minmax(0,1fr);}
}

/* ===== Corrections de contraste sections claires (priorité forcée) ===== */
.section-light .section-head h2,
.section-light h1,
.section-light h2,
.section-light h3{color:var(--ink) !important;}
.section-light .section-head p,
.section-light p{color:var(--ink-dim) !important;}
.section-light .eyebrow{color:var(--gold-deep) !important;}

/* Les cartes événements restent des cartes sombres (accent), même dans une section claire */
.section-light .event-card h3{color:var(--cream) !important;}
.section-light .event-card p{color:var(--cream-dim) !important;}

/* ===== Icônes contact footer ===== */
.footer-contact-list{display:flex; flex-direction:column; gap:10px;}
.footer-contact-list a{display:flex; align-items:center; gap:10px;}
.footer-contact-list a svg{flex-shrink:0; color:var(--gold-bright);}

/* ===== Bouton flottant WhatsApp (couleurs du site, pas le vert d'origine) ===== */
.whatsapp-float{
  position:fixed; right:26px; bottom:26px; z-index:35;
  display:flex; align-items:center;
  height:58px; padding:0 18px 0 0;
  border-radius:var(--radius-pill);
  background:linear-gradient(135deg, var(--gold-bright), var(--gold-deep));
  color:#1a1109; box-shadow:0 12px 30px rgba(138,90,31,0.45), 0 2px 8px rgba(0,0,0,0.25);
  transition:box-shadow .25s ease, transform .25s ease, padding .25s ease;
}
.whatsapp-float:hover{transform:translateY(-3px); box-shadow:0 16px 36px rgba(138,90,31,0.55), 0 4px 10px rgba(0,0,0,0.3);}
.wf-icon{
  width:58px; height:58px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; background:rgba(26,17,9,0.12); position:relative; z-index:1;
}
.wf-ring{
  position:absolute; inset:0; border-radius:var(--radius-pill);
  box-shadow:0 0 0 0 rgba(200,134,46,0.55);
  animation:wf-pulse 2.6s ease-out infinite;
}
@keyframes wf-pulse{
  0%{box-shadow:0 0 0 0 rgba(200,134,46,0.45);}
  70%{box-shadow:0 0 0 16px rgba(200,134,46,0);}
  100%{box-shadow:0 0 0 0 rgba(200,134,46,0);}
}
.wf-label{
  max-width:0; overflow:hidden; white-space:nowrap;
  font-family:'Oswald', sans-serif; font-size:0.76rem; letter-spacing:0.08em; text-transform:uppercase;
  opacity:0; transition:max-width .3s ease, opacity .25s ease, margin .3s ease;
}
.whatsapp-float:hover .wf-label{max-width:220px; opacity:1; margin-left:10px;}
@media (prefers-reduced-motion: reduce){.wf-ring{animation:none;}}
@media (max-width:640px){
  .whatsapp-float{right:16px; bottom:16px; height:52px;}
  .wf-icon{width:52px; height:52px;}
  .wf-label{display:none;}
}

/* ============================================================
   THÈMES ALTERNATIFS — choisis depuis Admin > Paramètres.
   Ces blocs ne font que redéfinir les variables de couleur ;
   aucune règle existante ci-dessus n'est modifiée.
   Thème par défaut ("dore") = celui du :root, inchangé.
   ============================================================ */

/* ----- Thème NOIR (façon mode sombre Facebook) ----- */
body[data-theme="noir"]{
  --bg:#18191A;
  --bg-soft:#242526;
  --brown:#242526;
  --gold:#0EA5A6;
  --gold-bright:#2DD4CF;
  --cream:#E4E6EB;
  --cream-dim:#B0B3B8;
  --ember:#F02849;
  --line: rgba(255,255,255,0.09);

  --paper:#242526;
  --paper-soft:#3A3B3C;
  --paper-card:#3A3B3C;
  --ink:#E4E6EB;
  --ink-dim:#B0B3B8;
  --gold-deep:#2DD4CF;
  --line-light: rgba(255,255,255,0.09);
  --seam: rgba(255,255,255,0.09);
}
body[data-theme="noir"] .marquee{background:linear-gradient(180deg, var(--brown), #18191A);}
body[data-theme="noir"] .marquee::before{background:linear-gradient(90deg, var(--brown), transparent);}
body[data-theme="noir"] .marquee::after{background:linear-gradient(270deg, var(--brown), transparent);}
body[data-theme="noir"] .nav-cta,
body[data-theme="noir"] .mobile-menu-cta,
body[data-theme="noir"] .btn-primary,
body[data-theme="noir"] .whatsapp-float .wf-icon{color:#ffffff;}
body[data-theme="noir"] .section-light{box-shadow:none;}

/* ----- Thème BLANC (façon mode clair Facebook) ----- */
body[data-theme="blanc"]{
  --bg:#ffffff;
  --bg-soft:#F0F2F5;
  --brown:#F0F2F5;
  --gold:#D97706;
  --gold-bright:#F59E0B;
  --cream:#050505;
  --cream-dim:#65676B;
  --ember:#F02849;
  --line: rgba(5,5,5,0.09);

  --paper:#F0F2F5;
  --paper-soft:#E4E6E9;
  --paper-card:#ffffff;
  --ink:#050505;
  --ink-dim:#65676B;
  --gold-deep:#D97706;
  --line-light: rgba(5,5,5,0.09);
  --seam: rgba(5,5,5,0.09);
  --shadow-sm: 0 2px 10px rgba(5,5,5,0.06);
  --shadow-md: 0 14px 34px rgba(5,5,5,0.10);
  --shadow-lg: 0 26px 64px rgba(5,5,5,0.14);
}
body[data-theme="blanc"] .marquee{background:linear-gradient(180deg, var(--brown), #E4E6E9);}
body[data-theme="blanc"] .marquee::before{background:linear-gradient(90deg, var(--brown), transparent);}
body[data-theme="blanc"] .marquee::after{background:linear-gradient(270deg, var(--brown), transparent);}
body[data-theme="blanc"] .nav-cta,
body[data-theme="blanc"] .mobile-menu-cta,
body[data-theme="blanc"] .btn-primary,
body[data-theme="blanc"] .whatsapp-float .wf-icon{color:#ffffff;}
body[data-theme="blanc"] .section-light{box-shadow:none;}