:root{
  --bg0:#050506;--bg1:#0c0b10;
  --card:rgba(255,255,255,.06);--text:#f4f2ef;--muted:rgba(244,242,239,.68);
  --gold1:#f7d27a;--gold2:#caa24a;--shadow:0 24px 80px rgba(0,0,0,.45);
  --stroke:rgba(247,210,122,.14);--radius:20px;
  --section-gap:60px;
}
[data-theme="light"]{
  --bg0:#fbfaf7;--bg1:#f2efe8;--card:rgba(10,10,12,.06);
  --text:#131316;--muted:rgba(19,19,22,.62);
  --shadow:0 18px 60px rgba(0,0,0,.12);--stroke:rgba(145,110,30,.18);
}
*{box-sizing:border-box}html,body{height:100%}
body{
  margin:0;font-family:'Inter',ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 800px at 18% -10%, rgba(247,210,122,.18), transparent 52%),
    radial-gradient(900px 700px at 84% 5%, rgba(202,162,74,.12), transparent 45%),
    linear-gradient(180deg,var(--bg0),var(--bg1));
  overflow-x:hidden;
  transition:background .4s ease;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
[data-theme="light"] body{
  background:
    radial-gradient(1200px 800px at 18% -10%, rgba(247,210,122,.28), transparent 58%),
    radial-gradient(900px 700px at 84% 5%, rgba(202,162,74,.22), transparent 52%),
    linear-gradient(180deg,var(--bg0),var(--bg1));
}

/* --- Background scene: roman image + birds (keeps existing particles & noise) --- */
.bg-scene{position:fixed;inset:0;z-index:-4;overflow:hidden;pointer-events:none}
.bg-scene .bg-image{
  position:absolute;inset:0;
  background:
    linear-gradient(rgba(0,0,0,.62),rgba(0,0,0,.78)),
    url("assets/roman-parallax.png") center/cover no-repeat;
  filter:contrast(1.08) brightness(.78);
  transform:scale(1.04);
  transition:filter .4s ease,opacity .4s ease;
}
[data-theme="light"] .bg-scene .bg-image{
  background:
    linear-gradient(rgba(251,250,247,.75),rgba(251,250,247,.65)),
    url("assets/roman-parallax.png") center/cover no-repeat;
  filter:contrast(1.12) brightness(1.15) saturate(1.08);
  opacity:.55;
}
.bg-scene .birds-layer{position:absolute;inset:0;z-index:1}

.bg-scene .bird{
  position:absolute;left:-18%;
  top:var(--y);width:var(--size);
  opacity:.28;
  filter:blur(.2px);
  transform:translate3d(0,0,0);
  animation:fly var(--duration) linear infinite;
  will-change:transform;
  transition:opacity .4s ease,filter .4s ease;
}
[data-theme="light"] .bg-scene .bird{
  opacity:.18;
  filter:blur(.1px) brightness(1.1) contrast(1.08);
}

@keyframes fly{to{transform:translate3d(135vw,0,0)}}

#bg-canvas{position:fixed;inset:0;z-index:-3;width:100vw;height:100vh;pointer-events:none;opacity:.9;transition:opacity .4s ease}
[data-theme="light"] #bg-canvas{opacity:.35}
.noise{position:fixed;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:overlay;opacity:.12;transition:opacity .4s ease;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
}
[data-theme="light"] .noise{opacity:.05}
a{color:inherit;text-decoration:none}
.container{width:min(1120px,calc(100% - 48px));margin:0 auto}
.topbar{position:sticky;top:0;z-index:50;backdrop-filter:blur(20px) saturate(1.4);
  background:linear-gradient(180deg,rgba(5,5,6,.82),rgba(5,5,6,.48));
  border-bottom:1px solid rgba(247,210,122,.08);
}
[data-theme="light"] .topbar{
  background:linear-gradient(180deg,rgba(251,250,247,.88),rgba(251,250,247,.60));
  border-bottom:1px solid rgba(145,110,30,.10);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px}
.nav-left,.nav-right{display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center;justify-content:center;min-width:240px}
.brand img{height:40px;filter:drop-shadow(0 8px 20px rgba(0,0,0,.30));transition:filter .3s ease}
.brand img:hover{filter:drop-shadow(0 10px 24px rgba(247,210,122,.20))}
.pill{
  display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.03));
  border:1px solid rgba(247,210,122,.12);box-shadow:0 8px 28px rgba(0,0,0,.22);
  transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .22s ease,box-shadow .22s ease;
  font-size:13px;font-weight:500;letter-spacing:.2px;
}
[data-theme="light"] .pill{background:rgba(255,255,255,.72);border-color:rgba(145,110,30,.14);box-shadow:0 8px 28px rgba(0,0,0,.06)}
.pill:hover{transform:translateY(-2px);border-color:rgba(247,210,122,.28);box-shadow:0 12px 36px rgba(0,0,0,.28)}
.icon{width:18px;height:18px;fill:currentColor;opacity:.9}
.small{font-size:12px;color:var(--muted)}
.cta{
  display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;
  color:#0b0a0d;background:linear-gradient(135deg,var(--gold1),var(--gold2));
  border:1px solid rgba(0,0,0,.12);
  box-shadow:0 12px 40px rgba(202,162,74,.18),0 6px 20px rgba(0,0,0,.25);
  font-weight:700;font-size:14px;letter-spacing:.3px;user-select:none;
  transition:transform .22s cubic-bezier(.2,.8,.3,1),filter .22s ease,box-shadow .22s ease;
}
.cta:hover{transform:translateY(-2px);filter:saturate(1.06) brightness(1.04);box-shadow:0 16px 52px rgba(202,162,74,.28),0 8px 28px rgba(0,0,0,.32)}
.cta:active{transform:translateY(0) scale(.97)}
.cta.shake{animation:shake .45s ease}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
.toggle{width:46px;height:28px;border-radius:999px;border:1px solid rgba(247,210,122,.18);
  background:rgba(255,255,255,.06);display:inline-flex;align-items:center;padding:3px;cursor:pointer
}
.toggle .dot{width:22px;height:22px;border-radius:999px;background:linear-gradient(135deg,rgba(247,210,122,.95),rgba(202,162,74,.85));
  transform:translateX(0);transition:transform .18s ease;filter:drop-shadow(0 10px 20px rgba(0,0,0,.35))
}
[data-theme="light"] .toggle{background:rgba(0,0,0,.05);border-color:rgba(145,110,30,.18)}
[data-theme="light"] .toggle .dot{transform:translateX(18px);filter:drop-shadow(0 10px 18px rgba(0,0,0,.16))}
/* --- Hero Banner (devanture) --- */
.hero-banner{
  position:relative;width:100%;height:90vh;min-height:480px;max-height:900px;
  overflow:hidden;display:flex;align-items:center;justify-content:center;
}
.hero-banner__img{
  position:absolute;inset:0;z-index:0;
}
.hero-banner__img img{
  width:100%;height:100%;object-fit:cover;object-position:center 40%;
  display:block;
  filter:saturate(1.05) contrast(1.02);
  transform:scale(1.02);
  transition:transform 8s ease;
}
.hero-banner:hover .hero-banner__img img{
  transform:scale(1.06);
}
.hero-banner__overlay{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,
      rgba(5,5,6,.35) 0%,
      rgba(5,5,6,.15) 40%,
      rgba(5,5,6,.30) 70%,
      rgba(5,5,6,.75) 100%
    );
}
[data-theme="light"] .hero-banner__overlay{
  background:
    linear-gradient(180deg,
      rgba(251,250,247,.25) 0%,
      rgba(251,250,247,.05) 40%,
      rgba(251,250,247,.20) 70%,
      rgba(251,250,247,.60) 100%
    );
}
.hero-banner__content{
  position:relative;z-index:2;
  text-align:center;
  padding:20px;
  display:flex;flex-direction:column;align-items:center;gap:24px;
}

/* Boîte vitrée derrière le texte */
.hero-banner__box{
  padding:36px 52px;
  border-radius:var(--radius);
  background:rgba(5,5,6,.45);
  backdrop-filter:blur(14px) saturate(1.3);
  border:1px solid rgba(247,210,122,.18);
  box-shadow:
    0 24px 80px rgba(0,0,0,.40),
    inset 0 1px 0 rgba(247,210,122,.12);
}
[data-theme="light"] .hero-banner__box{
  background:rgba(255,255,255,.55);
  border-color:rgba(145,110,30,.22);
  box-shadow:
    0 24px 80px rgba(0,0,0,.10),
    inset 0 1px 0 rgba(255,255,255,.50);
}

/* Ornements décoratifs */
.hero-banner__ornament{
  display:flex;align-items:center;gap:12px;justify-content:center;
  margin-bottom:8px;
}
.hero-banner__ornament svg{
  color:var(--gold1);opacity:.6;flex-shrink:0;
}
.hero-banner__ornament--wide{
  margin:10px 0 4px;
}
.hero-banner__line{
  display:block;width:50px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold1),transparent);
  opacity:.5;
}
.hero-banner__ornament--wide .hero-banner__line{
  width:70px;
}
.hero-banner__diamond{
  width:8px;height:8px;
  background:var(--gold1);opacity:.55;
  transform:rotate(45deg);flex-shrink:0;
}

/* Kicker */
.hero-banner__kicker{
  display:block;
  font-size:14px;font-weight:700;letter-spacing:4px;text-transform:uppercase;
  color:var(--gold1);
  text-shadow:0 2px 12px rgba(247,210,122,.35);
  margin-bottom:4px;
}

/* Titre principal avec dégradé doré */
.hero-banner__title{
  margin:0;font-size:clamp(42px,7vw,82px);line-height:1.05;font-weight:800;
  letter-spacing:-1.5px;
  background:linear-gradient(180deg,#fff 20%,var(--gold1) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
  filter:drop-shadow(0 4px 16px rgba(0,0,0,.45));
}
[data-theme="light"] .hero-banner__title{
  background:linear-gradient(180deg,var(--text) 20%,var(--gold2) 100%);
  -webkit-background-clip:text;background-clip:text;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.10));
}

/* Sous-titre */
.hero-banner__sub{
  margin:0;font-size:18px;font-weight:500;
  color:rgba(244,242,239,.90);letter-spacing:1.5px;
  text-shadow:0 1px 8px rgba(0,0,0,.5);
  text-transform:uppercase;
}
[data-theme="light"] .hero-banner__sub{
  color:var(--muted);
  text-shadow:none;
}
.hero-banner__scroll{
  animation:bounceDown 2.5s ease-in-out infinite;
}
@keyframes bounceDown{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(6px)}
}

@media (max-width:720px){
  .hero-banner{height:70vh;min-height:380px}
  .hero-banner__box{padding:28px 24px}
  .hero-banner__title{letter-spacing:-.8px}
  .hero-banner__sub{font-size:14px;letter-spacing:1px}
  .hero-banner__line{width:36px}
  .hero-banner__ornament--wide .hero-banner__line{width:46px}
}

.hero{padding:80px 0 40px}
.hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:20px;align-items:stretch}
@media (max-width:920px){.hero-grid{grid-template-columns:1fr}.brand{min-width:0}}
.card{border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));
  border:1px solid rgba(247,210,122,.10);box-shadow:0 16px 56px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.12);overflow:hidden;
  backdrop-filter:blur(8px);
}
[data-theme="light"] .card{background:rgba(255,255,255,.88);border-color:rgba(145,110,30,.16);box-shadow:0 12px 48px rgba(0,0,0,.10),0 2px 6px rgba(0,0,0,.04)}
.hero-main{position:relative;min-height:460px;padding:36px 32px;display:flex;flex-direction:column;justify-content:flex-end}
.hero-main::before{content:"";position:absolute;inset:0;background:
  radial-gradient(1200px 500px at 25% 0%, rgba(247,210,122,.14), transparent 58%),
  linear-gradient(180deg, rgba(0,0,0,.32) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.78) 70%, rgba(0,0,0,.90) 100%);z-index:0}
.hero-main .bgimg{position:absolute;inset:0;background-image:url("assets/plat-2.jpg");
  background-size:cover;background-position:center;filter:saturate(1.05) contrast(1.02);z-index:-1;transform:scale(1.02)}
.hero-main .content{position:relative;z-index:1}
.kicker{display:inline-flex;align-items:center;gap:8px;color:rgba(247,210,122,.92);
  font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:11px;
  text-shadow:0 1px 6px rgba(0,0,0,.5)}
.h1{margin:14px 0 12px;font-size:clamp(36px,4.5vw,58px);line-height:1.08;letter-spacing:-.8px;font-weight:800;
  text-shadow:0 2px 12px rgba(0,0,0,.6),0 4px 24px rgba(0,0,0,.4)}
.sub{margin:0 0 24px;color:rgba(244,242,239,.85);font-size:16px;max-width:58ch;line-height:1.65;
  text-shadow:0 1px 8px rgba(0,0,0,.5)}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.chip{padding:8px 14px;border-radius:999px;border:1px solid rgba(247,210,122,.10);
  background:rgba(0,0,0,.42);font-size:12px;color:rgba(244,242,239,.90);backdrop-filter:blur(6px);letter-spacing:.2px;
  text-shadow:0 1px 4px rgba(0,0,0,.4)}
[data-theme="light"] .chip{background:rgba(255,255,255,.65);border-color:rgba(145,110,30,.18);color:rgba(19,19,22,.78)}
.hero-side{padding:24px}.side-title{font-weight:800;margin:4px 0 16px;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold1)}
.side-grid{display:grid;gap:10px}
.side-item{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:14px;
  border:1px solid rgba(247,210,122,.08);background:rgba(0,0,0,.16);transition:border-color .2s ease,background .2s ease}
.side-item:hover{border-color:rgba(247,210,122,.20);background:rgba(0,0,0,.22)}
[data-theme="light"] .side-item{background:rgba(255,255,255,.50);border-color:rgba(145,110,30,.12)}
[data-theme="light"] .side-item:hover{background:rgba(255,255,255,.65);border-color:rgba(145,110,30,.22)}
.side-item strong{display:block;font-size:13px;font-weight:700;letter-spacing:.2px}.side-item span{display:block;color:var(--muted);font-size:13px;margin-top:3px;line-height:1.5}
.section{padding:var(--section-gap) 0}.h2{margin:0 0 18px;font-size:24px;letter-spacing:-.3px;font-weight:800}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
@media (max-width:920px){.grid2{grid-template-columns:1fr}}
.info-box{padding:24px}.info-box p{margin:0;color:var(--muted);line-height:1.7;font-size:15px}
.divider{height:1px;background:linear-gradient(90deg,transparent,rgba(247,210,122,.14),transparent);margin:18px 0}
[data-theme="light"] .divider{background:linear-gradient(90deg,transparent,rgba(145,110,30,.12),transparent)}
.hours{display:grid;gap:8px;padding:16px 0}
.hours .row{display:flex;justify-content:space-between;gap:14px;padding:12px 16px;border-radius:12px;
  background:rgba(0,0,0,.14);border:1px solid rgba(247,210,122,.06);transition:background .2s ease}
.hours .row:hover{background:rgba(0,0,0,.20)}
[data-theme="light"] .hours .row{background:rgba(255,255,255,.50);border-color:rgba(145,110,30,.10)}
[data-theme="light"] .hours .row:hover{background:rgba(255,255,255,.65)}
.hours .label{color:var(--muted);font-size:14px}.hours .val{font-weight:700;font-size:14px}

/* Images des cartes de saison */
.menu-images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 20px;
}
.menu-images img {
  width: 100%;
  height: auto;
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.22);
  transition: transform 0.35s cubic-bezier(.2,.8,.3,1), box-shadow 0.35s ease;
  cursor: pointer;
  border: 1px solid rgba(247, 210, 122, 0.08);
}
.menu-images img:hover {
  transform: scale(1.03) translateY(-2px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.32);
}
[data-theme="light"] .menu-images img {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
  border-color: rgba(145, 110, 30, 0.10);
}
[data-theme="light"] .menu-images img:hover {
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.12);
}
@media (max-width: 600px) {
  .menu-images {
    grid-template-columns: 1fr;
  }
}

.gallery{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}
@media (max-width:920px){.gallery{grid-template-columns:1fr}}
.gbig{min-height:320px;background-image:url("assets/plat-1.jpg");background-size:cover;background-position:center}
.gstack{display:grid;gap:14px}
.gsmall{min-height:153px;background-size:cover;background-position:center}
.gsmall.one{background-image:url("assets/plat-2.jpg")}
.gsmall.two{background-image:url("assets/plat-1.jpg");filter:saturate(1.02) brightness(.98)}
.mapwrap{overflow:hidden;border-radius:var(--radius);border:1px solid rgba(247,210,122,.10);box-shadow:0 12px 48px rgba(0,0,0,.30)}
[data-theme="light"] .mapwrap{border-color:rgba(145,110,30,.12);box-shadow:0 10px 40px rgba(0,0,0,.08)}
.mapwrap iframe{width:100%;height:380px;border:0;display:block;filter:saturate(1.02) contrast(1.01)}
/* --- Footer --- */
.footer{
  padding:0;color:var(--muted);margin-top:40px;
  border-top:1px solid rgba(247,210,122,.08);
  background:
    radial-gradient(800px 400px at 20% 100%,rgba(247,210,122,.06),transparent 60%),
    rgba(5,5,6,.40);
  backdrop-filter:blur(6px);
}
[data-theme="light"] .footer{
  border-top-color:rgba(145,110,30,.10);
  background:
    radial-gradient(800px 400px at 20% 100%,rgba(247,210,122,.08),transparent 60%),
    rgba(255,255,255,.50);
}
.footer a{color:var(--text);transition:color .2s ease}
.footer a:hover{color:var(--gold1)}

/* Grille 3 colonnes */
.footer__grid{
  display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:40px;
  padding:48px 0 40px;
}

/* Colonne marque */
.footer__brand{display:inline-block;margin-bottom:16px}
.footer__logo{
  height:44px;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.25));
  transition:filter .3s ease;
}
.footer__brand:hover .footer__logo{
  filter:drop-shadow(0 6px 16px rgba(247,210,122,.20));
}
.footer__desc{
  font-size:14px;line-height:1.7;color:var(--muted);
  margin:0 0 20px;max-width:32ch;
}

/* Réseaux sociaux */
.footer__social{display:flex;gap:10px}
.footer__social-link{
  width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(247,210,122,.10);
  transition:all .22s cubic-bezier(.2,.8,.3,1);
}
[data-theme="light"] .footer__social-link{
  background:rgba(0,0,0,.04);border-color:rgba(145,110,30,.12);
}
.footer__social-link:hover{
  transform:translateY(-2px);
  background:rgba(247,210,122,.10);
  border-color:rgba(247,210,122,.28);
  box-shadow:0 8px 24px rgba(0,0,0,.20);
}
.footer__social-link svg{
  width:18px;height:18px;fill:currentColor;opacity:.8;
}
.footer__social-link:hover svg{opacity:1;color:var(--gold1)}

/* Titres colonnes */
.footer__heading{
  font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--gold1);margin:0 0 18px;
}

/* Listes */
.footer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.footer__list-item{
  display:flex;align-items:flex-start;gap:10px;
  font-size:14px;line-height:1.6;color:var(--muted);
}
.footer__list-item a{font-size:14px}
.footer__list-icon{
  width:16px;height:16px;fill:var(--gold1);opacity:.55;flex-shrink:0;margin-top:3px;
}

/* Séparateur */
.footer__divider{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(247,210,122,.12),transparent);
}
[data-theme="light"] .footer__divider{
  background:linear-gradient(90deg,transparent,rgba(145,110,30,.10),transparent);
}

/* Bas du footer */
.footer__bottom{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:16px;
  padding:20px 0 28px;
  font-size:12px;
}
.footer__copy{color:var(--muted)}
.footer__legal{display:flex;gap:18px;flex-wrap:wrap}
.footer__legal a{font-size:12px;color:var(--muted);transition:color .2s ease}
.footer__legal a:hover{color:var(--gold1)}

/* Responsive */
@media (max-width:920px){
  .footer__grid{grid-template-columns:1fr 1fr;gap:32px}
}
@media (max-width:600px){
  .footer__grid{grid-template-columns:1fr;gap:28px;padding:36px 0 28px}
  .footer__bottom{flex-direction:column;text-align:center;gap:12px}
  .footer__legal{justify-content:center}
}
.spark{position:fixed;width:8px;height:8px;border-radius:999px;pointer-events:none;z-index:9999;
  background:radial-gradient(circle, rgba(247,210,122,1) 0%, rgba(202,162,74,.9) 40%, rgba(202,162,74,0) 70%);
  animation:pop .65s ease forwards;mix-blend-mode:screen}
@keyframes pop{0%{transform:translate(0,0) scale(.7);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}


/* --- Carte de Saison — redesign --- */

/* Full-width layout when outside grid */
.carte-card--full{
  margin-top:20px;
}
.grid2--horaires{
  grid-template-columns:1fr;
}
@media (min-width:921px){
  .grid2--horaires{
    grid-template-columns:1fr;
  }
}

.carte-card{
  padding:0 !important;overflow:hidden;
  position:relative;
}
.carte-card::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(247,210,122,.08), transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 100%, rgba(202,162,74,.05), transparent 50%);
  pointer-events:none;z-index:0;
}
[data-theme="light"] .carte-card::before{
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(247,210,122,.12), transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 100%, rgba(202,162,74,.08), transparent 50%);
}

/* Header */
.carte-header{
  position:relative;z-index:1;
  padding:28px 28px 0;text-align:center;
}
.carte-header .h2{
  margin:4px 0 10px;font-size:22px;letter-spacing:-.2px;
}
.carte-kicker{
  display:inline-block;
  font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--gold1);opacity:.8;
}

/* Ornament */
.carte-ornament{
  display:flex;align-items:center;gap:10px;justify-content:center;
  margin-bottom:6px;
}
.carte-ornament-line{
  flex:1;max-width:60px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold1),transparent);
  opacity:.35;
}
.carte-ornament-icon{
  color:var(--gold1);opacity:.5;flex-shrink:0;
}

/* Menu grid */
.carte-menu-grid{
  position:relative;z-index:1;
  display:flex;flex-direction:column;gap:6px;
  padding:12px 24px 0;
}

/* Category rows */
.carte-category{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 16px;border-radius:12px;
  background:rgba(0,0,0,.14);
  border:1px solid rgba(247,210,122,.05);
  transition:background .2s ease, border-color .2s ease;
}
.carte-category:hover{
  background:rgba(0,0,0,.22);
  border-color:rgba(247,210,122,.12);
}
[data-theme="light"] .carte-category{
  background:rgba(255,255,255,.50);
  border-color:rgba(145,110,30,.08);
}
[data-theme="light"] .carte-category:hover{
  background:rgba(255,255,255,.70);
  border-color:rgba(145,110,30,.18);
}

/* Highlight variant (formule) */
.carte-category--highlight{
  background:rgba(247,210,122,.06);
  border-color:rgba(247,210,122,.14);
}
.carte-category--highlight:hover{
  background:rgba(247,210,122,.10);
  border-color:rgba(247,210,122,.22);
}
[data-theme="light"] .carte-category--highlight{
  background:rgba(247,210,122,.10);
  border-color:rgba(145,110,30,.16);
}
[data-theme="light"] .carte-category--highlight:hover{
  background:rgba(247,210,122,.16);
  border-color:rgba(145,110,30,.24);
}

/* Category label */
.carte-cat-label{
  display:flex;align-items:center;gap:10px;
  font-size:14px;font-weight:500;color:var(--text);
}
.carte-cat-label svg{
  color:var(--gold1);opacity:.65;flex-shrink:0;
}

/* Category price */
.carte-cat-price{
  font-size:15px;font-weight:800;color:var(--text);
  white-space:nowrap;letter-spacing:.2px;
}
.carte-cat-price--accent{
  color:var(--gold1);
  font-size:16px;
}

/* Divider inside carte */
.carte-card .divider{
  margin:16px 24px;
}

/* Info badges */
.carte-info-badges{
  position:relative;z-index:1;
  display:flex;flex-wrap:wrap;gap:8px;
  padding:0 24px 24px;
  break-inside:avoid;
}
.carte-menu-dynamic .carte-info-badges{
  column-span:all;
  padding:8px 0 0;
}
.carte-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:999px;
  font-size:12px;font-weight:500;color:var(--muted);
  background:rgba(0,0,0,.16);
  border:1px solid rgba(247,210,122,.06);
  transition:border-color .2s ease, color .2s ease;
}
.carte-badge:hover{
  border-color:rgba(247,210,122,.16);
  color:var(--text);
}
.carte-badge svg{
  color:var(--gold1);opacity:.55;flex-shrink:0;
}
[data-theme="light"] .carte-badge{
  background:rgba(0,0,0,.04);
  border-color:rgba(145,110,30,.10);
}
[data-theme="light"] .carte-badge:hover{
  border-color:rgba(145,110,30,.22);
}

/* Accent badge variant */
.carte-badge--accent{
  background:rgba(247,210,122,.06);
  border-color:rgba(247,210,122,.12);
  color:var(--text);
}
.carte-badge--accent svg{
  opacity:.75;
}
[data-theme="light"] .carte-badge--accent{
  background:rgba(247,210,122,.08);
  border-color:rgba(145,110,30,.14);
}

/* --- Dynamic carte (Google Sheets rendered) --- */
.carte-menu-dynamic{
  position:relative;z-index:1;
  padding:4px 28px 24px;
  columns:2;
  column-gap:28px;
}
@media (max-width:720px){
  .carte-menu-dynamic{columns:1}
}
.carte-dyn-section{
  margin-bottom:4px;
  break-inside:avoid;
}
.carte-dyn-cat{
  font-size:11px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;
  color:var(--gold1);margin:18px 0 10px;padding-left:2px;
  display:flex;align-items:center;gap:10px;
}
.carte-dyn-cat::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(90deg,rgba(247,210,122,.18),transparent 80%);
}
[data-theme="light"] .carte-dyn-cat::after{
  background:linear-gradient(90deg,rgba(145,110,30,.14),transparent 80%);
}
.carte-dyn-items{
  display:flex;flex-direction:column;gap:4px;
}
.carte-dyn-item{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:10px 14px;border-radius:10px;
  background:rgba(0,0,0,.12);
  border:1px solid rgba(247,210,122,.04);
  transition:background .2s ease, border-color .2s ease;
}
.carte-dyn-item:hover{
  background:rgba(0,0,0,.20);
  border-color:rgba(247,210,122,.10);
}
[data-theme="light"] .carte-dyn-item{
  background:rgba(255,255,255,.45);
  border-color:rgba(145,110,30,.06);
}
[data-theme="light"] .carte-dyn-item:hover{
  background:rgba(255,255,255,.65);
  border-color:rgba(145,110,30,.14);
}

/* Highlight (formules) */
.carte-dyn-item--highlight{
  background:rgba(247,210,122,.05);
  border-color:rgba(247,210,122,.10);
}
.carte-dyn-item--highlight:hover{
  background:rgba(247,210,122,.09);
  border-color:rgba(247,210,122,.18);
}
[data-theme="light"] .carte-dyn-item--highlight{
  background:rgba(247,210,122,.08);
  border-color:rgba(145,110,30,.12);
}

.carte-dyn-name{
  font-size:14px;font-weight:500;color:var(--text);
  line-height:1.4;
}
.carte-dyn-desc{
  display:block;font-size:12px;color:var(--muted);font-weight:400;
  margin-top:2px;line-height:1.4;font-style:italic;
}
.carte-dyn-price{
  font-size:15px;font-weight:800;color:var(--gold1);
  white-space:nowrap;flex-shrink:0;
}
.carte-dyn-price--accent{
  font-size:16px;
}

/* Divider inside dynamic carte */
.carte-dyn-divider{
  height:1px;margin:18px 0;
  background:linear-gradient(90deg,transparent,rgba(247,210,122,.14),transparent);
  break-inside:avoid;column-span:all;
}
[data-theme="light"] .carte-dyn-divider{
  background:linear-gradient(90deg,transparent,rgba(145,110,30,.12),transparent);
}

/* Legacy classes kept for backwards compat */
.carte-section{margin-top:4px}
.carte-section-title{
  font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--gold1);margin:16px 0 8px;padding-left:4px;
}
.carte-desc{
  display:block;font-size:12px;color:var(--muted);font-weight:400;
  margin-top:2px;line-height:1.5;font-style:italic;
}
.carte-prix{
  color:var(--gold1);font-weight:800;white-space:nowrap;
}

/* Responsive */
@media (max-width:480px){
  .carte-header{padding:22px 18px 0}
  .carte-menu-grid{padding:10px 16px 0}
  .carte-menu-dynamic{padding:4px 16px 20px}
  .carte-info-badges{padding:0 16px 20px}
  .carte-card .divider{margin:14px 16px}
  .carte-category{padding:10px 12px}
  .carte-cat-label{font-size:13px}
  .carte-cat-price{font-size:14px}
  .carte-dyn-item{padding:9px 12px}
  .carte-dyn-name{font-size:13px}
  .carte-dyn-price{font-size:14px}
}

/* Horaires dynamiques */
.horaire-periode{margin-bottom:4px}
.horaire-titre{font-size:14px;margin-bottom:8px;color:var(--text)}

/* --- Encarts supplémentaires (réservation, adresse) --- */
.box-extra{
  display:flex;align-items:flex-start;gap:14px;
  padding:16px;border-radius:14px;margin-top:12px;
  background:rgba(247,210,122,.06);border:1px solid rgba(247,210,122,.10);
  transition:background .2s ease;
}
.box-extra:hover{background:rgba(247,210,122,.10)}
[data-theme="light"] .box-extra{background:rgba(145,110,30,.04);border-color:rgba(145,110,30,.10)}
[data-theme="light"] .box-extra:hover{background:rgba(145,110,30,.07)}
.box-extra-icon{
  flex-shrink:0;width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(247,210,122,.15),rgba(202,162,74,.10));
}
.box-extra-icon svg{width:18px;height:18px;fill:var(--gold1)}
[data-theme="light"] .box-extra-icon{background:linear-gradient(135deg,rgba(145,110,30,.10),rgba(202,162,74,.08))}
[data-theme="light"] .box-extra-icon svg{fill:var(--gold2)}
.box-extra-content{display:flex;flex-direction:column;gap:2px}
.box-extra-content strong{font-size:13px;font-weight:700;letter-spacing:.2px}
.box-extra-content span{font-size:13px;color:var(--muted);line-height:1.5}
.box-extra-phone{
  font-size:15px;font-weight:800;color:var(--gold1);letter-spacing:.3px;
  transition:color .2s ease;
}
.box-extra-phone:hover{color:var(--gold2)}

/* --- Accroche Fait maison (carte) --- */
.carte-accroche{
  display:flex;align-items:flex-start;gap:14px;
  padding:18px;border-radius:14px;margin-top:4px;
  background:rgba(247,210,122,.06);border:1px solid rgba(247,210,122,.10);
}
[data-theme="light"] .carte-accroche{background:rgba(145,110,30,.04);border-color:rgba(145,110,30,.10)}
.carte-accroche-icon{
  flex-shrink:0;width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(247,210,122,.18),rgba(202,162,74,.12));
}
.carte-accroche-icon svg{width:20px;height:20px;fill:none;stroke:var(--gold1);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
[data-theme="light"] .carte-accroche-icon{background:linear-gradient(135deg,rgba(145,110,30,.12),rgba(202,162,74,.08))}
[data-theme="light"] .carte-accroche-icon svg{stroke:var(--gold2)}
.carte-accroche-text{display:flex;flex-direction:column;gap:4px}
.carte-accroche-text strong{font-size:14px;font-weight:700;color:var(--gold1)}
[data-theme="light"] .carte-accroche-text strong{color:var(--gold2)}
.carte-accroche-text span{font-size:13px;color:var(--muted);line-height:1.6}

/* CTA réservation carte */
.carte-cta-wrap{margin-top:18px;display:flex;justify-content:center}
.carte-reserve-cta{width:100%;justify-content:center}

/* Badge sync Google Sheets */
.sheet-sync-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;border-radius:999px;
  background:rgba(34,197,94,.10);border:1px solid rgba(34,197,94,.20);
  color:rgba(34,197,94,.90);font-size:12px;font-weight:600;letter-spacing:.3px;
}
.sheet-sync-badge .icon{width:16px;height:16px;fill:rgba(34,197,94,.85)}
[data-theme="light"] .sheet-sync-badge{
  background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.18);color:rgba(22,163,74,.85);
}
[data-theme="light"] .sheet-sync-badge .icon{fill:rgba(22,163,74,.80)}

/* --- Événements Layout (texte + widget FB) --- */
.events-layout{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch;
}
@media (max-width:920px){
  .events-layout{grid-template-columns:1fr}
}

/* --- Widget Facebook Page --- */
.fb-widget-card{
  padding:20px;display:flex;align-items:center;justify-content:center;overflow:hidden;
  min-height:400px;
}
.fb-widget-wrap{
  width:100%;max-width:420px;margin:0 auto;display:flex;align-items:center;justify-content:center;
}
.fb-widget-iframe{
  width:100%;height:520px;border:0;display:block;
  border-radius:14px;
  background:#fff;
}

@media (max-width:720px){
  .fb-widget-card{min-height:auto;padding:16px}
  .fb-widget-iframe{height:480px}
}

/* --- Gallery Premium --- */
.gallery-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;flex-wrap:wrap}
.gallery-filters{display:flex;gap:6px;flex-wrap:wrap}
.filter-btn{padding:10px 18px;border-radius:999px;border:1px solid rgba(247,210,122,.10);
  background:rgba(0,0,0,.10);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;
  transition:all .22s cubic-bezier(.2,.8,.3,1);letter-spacing:.3px
}
[data-theme="light"] .filter-btn{background:rgba(255,255,255,.50);border-color:rgba(145,110,30,.12)}
.filter-btn:hover{transform:translateY(-1px);border-color:rgba(247,210,122,.24);background:rgba(0,0,0,.18);color:var(--text)}
[data-theme="light"] .filter-btn:hover{background:rgba(255,255,255,.70)}
.filter-btn.is-active{background:linear-gradient(135deg,var(--gold1),var(--gold2));color:#0b0a0d;
  border-color:rgba(0,0,0,.12);box-shadow:0 8px 24px rgba(202,162,74,.22);font-weight:700
}

/* --- Gallery Carousel --- */
.gallery-carousel-wrap{position:relative;margin-bottom:24px}
.gallery-carousel{position:relative;overflow:hidden;border-radius:var(--radius);padding:10px 0}
.gallery-carousel-viewport{overflow:hidden}
.gallery-carousel-track{display:flex;will-change:transform}
.gallery-carousel-slide{flex:0 0 calc((100% - 28px) / 3);margin-right:14px;
  aspect-ratio:4/3;position:relative;overflow:hidden;border-radius:16px;cursor:pointer;
  border:1px solid rgba(247,210,122,.08);transition:border-color .35s ease,box-shadow .35s ease;box-sizing:border-box;
  box-shadow:0 8px 24px rgba(0,0,0,.2)
}
[data-theme="light"] .gallery-carousel-slide{border-color:rgba(145,110,30,.12);box-shadow:0 6px 20px rgba(0,0,0,.08)}
.gallery-carousel-slide:hover{border-color:rgba(247,210,122,.32);z-index:2;box-shadow:0 14px 40px rgba(0,0,0,.35)}
[data-theme="light"] .gallery-carousel-slide:hover{border-color:rgba(145,110,30,.32);box-shadow:0 12px 36px rgba(0,0,0,.14)}
.gallery-carousel-slide img{width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(1.04) contrast(1.01);transition:filter .5s ease,transform .5s cubic-bezier(.2,.8,.3,1)
}
.gallery-carousel-slide:hover img{filter:saturate(1.10) contrast(1.06) brightness(1.03);transform:scale(1.06)}

.gallery-slide-overlay{position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.68));
  display:flex;align-items:flex-end;justify-content:space-between;padding:16px 18px;
  opacity:0;transition:opacity .35s ease;pointer-events:none
}
.gallery-carousel-slide:hover .gallery-slide-overlay{opacity:1}

.gallery-slide-caption{color:#fff;font-size:12px;font-weight:600;letter-spacing:.4px;
  text-shadow:0 1px 6px rgba(0,0,0,.5);text-transform:uppercase}
.gallery-slide-icon{width:18px;height:18px;fill:none;stroke:rgba(247,210,122,.85);
  stroke-width:2;stroke-linecap:round;flex-shrink:0}

/* Gallery carousel navigation */
.gal-car-btn{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:999px;
  border:1px solid rgba(247,210,122,.14);background:rgba(0,0,0,.42);backdrop-filter:blur(12px);
  display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 32px rgba(0,0,0,.30);
  transition:all .22s cubic-bezier(.2,.8,.3,1);z-index:3
}
[data-theme="light"] .gal-car-btn{background:rgba(255,255,255,.70);box-shadow:0 10px 32px rgba(0,0,0,.10)}
.gal-car-btn svg{width:20px;height:20px;fill:currentColor;opacity:.90}
.gal-car-btn:hover{transform:translateY(-50%) scale(1.08);border-color:rgba(247,210,122,.32);background:rgba(0,0,0,.55)}
.gal-car-btn:active{transform:translateY(-50%) scale(.94)}
.gal-car-btn:disabled{opacity:.25;pointer-events:none}
.gal-car-prev{left:12px}
.gal-car-next{right:12px}

.gal-car-counter{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  padding:6px 16px;border-radius:999px;background:rgba(0,0,0,.40);backdrop-filter:blur(12px);
  border:1px solid rgba(247,210,122,.10);font-size:12px;font-weight:600;color:var(--text);
  letter-spacing:.8px;z-index:3
}
[data-theme="light"] .gal-car-counter{background:rgba(255,255,255,.75);border-color:rgba(145,110,30,.14)}

@media (max-width:920px){
  .gallery-carousel-slide{flex:0 0 calc((100% - 14px) / 2);margin-right:14px}
}
@media (max-width:560px){
  .gallery-carousel-slide{flex:0 0 100%;margin-right:0}
}

/* --- Lightbox Premium --- */
.lightbox{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center}
.lightbox.is-open{display:flex}
.lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.92);backdrop-filter:blur(20px);
  animation:fadeIn .3s ease forwards
}
[data-theme="light"] .lightbox-backdrop{background:rgba(251,250,247,.95)}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes zoomIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}

.lightbox-content{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  padding:80px 20px 20px;animation:slideUp .4s ease forwards
}

.lightbox-close{position:absolute;top:20px;right:20px;z-index:10;width:48px;height:48px;
  border-radius:999px;border:1px solid rgba(247,210,122,.24);background:rgba(0,0,0,.35);backdrop-filter:blur(10px);
  display:grid;place-items:center;cursor:pointer;transition:all .2s ease;box-shadow:0 14px 40px rgba(0,0,0,.35)
}
[data-theme="light"] .lightbox-close{background:rgba(255,255,255,.85);border-color:rgba(145,110,30,.24)}
.lightbox-close:hover{transform:scale(1.08);border-color:rgba(247,210,122,.48)}
.lightbox-close svg{width:24px;height:24px;stroke:currentColor;stroke-width:2;stroke-linecap:round;fill:none}

.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:52px;height:52px;
  border-radius:999px;border:1px solid rgba(247,210,122,.28);background:rgba(0,0,0,.40);backdrop-filter:blur(12px);
  display:grid;place-items:center;cursor:pointer;transition:all .2s ease;box-shadow:0 16px 48px rgba(0,0,0,.40)
}
[data-theme="light"] .lightbox-nav{background:rgba(255,255,255,.85);border-color:rgba(145,110,30,.28)}
.lightbox-nav:hover{transform:translateY(-50%) scale(1.08);border-color:rgba(247,210,122,.48)}
.lightbox-nav svg{width:26px;height:26px;fill:currentColor}
.lightbox-prev{left:20px}
.lightbox-next{right:20px}

.lightbox-image-wrap{position:relative;max-width:90vw;max-height:80vh;animation:zoomIn .4s ease forwards;
  cursor:zoom-in
}
.lightbox-image-wrap.is-zoomed{cursor:zoom-out}
.lightbox-image-wrap.is-zoomed .lightbox-image{transform:scale(1.5);cursor:move}

.lightbox-image{max-width:100%;max-height:80vh;display:block;border-radius:16px;
  box-shadow:0 24px 72px rgba(0,0,0,.55);transition:transform .3s ease;object-fit:contain;
  border:1px solid rgba(247,210,122,.12)
}
[data-theme="light"] .lightbox-image{box-shadow:0 24px 72px rgba(0,0,0,.22);border-color:rgba(145,110,30,.18)}

.lightbox-controls{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:14px;padding:10px 20px;border-radius:999px;
  background:rgba(0,0,0,.45);backdrop-filter:blur(20px);border:1px solid rgba(247,210,122,.14);
  box-shadow:0 12px 40px rgba(0,0,0,.40);animation:slideUp .5s ease forwards
}
[data-theme="light"] .lightbox-controls{background:rgba(255,255,255,.88);border-color:rgba(145,110,30,.16)}

.lightbox-zoom,.lightbox-play{width:40px;height:40px;border-radius:999px;border:1px solid rgba(247,210,122,.24);
  background:rgba(255,255,255,.08);display:grid;place-items:center;cursor:pointer;transition:all .2s ease
}
[data-theme="light"] .lightbox-zoom,[data-theme="light"] .lightbox-play{background:rgba(0,0,0,.06)}
.lightbox-zoom:hover,.lightbox-play:hover{transform:scale(1.08);border-color:rgba(247,210,122,.48);
  background:rgba(255,255,255,.14)
}
[data-theme="light"] .lightbox-zoom:hover,[data-theme="light"] .lightbox-play:hover{background:rgba(0,0,0,.10)}
.lightbox-zoom svg,.lightbox-play svg{width:20px;height:20px;fill:none;stroke:currentColor;
  stroke-width:2;stroke-linecap:round
}
.lightbox-play svg{fill:currentColor;stroke:none}
.lightbox-play.is-playing svg{fill:none;stroke:currentColor;stroke-width:2}

.lightbox-counter{font-size:14px;font-weight:700;color:var(--text);letter-spacing:.3px;min-width:60px;text-align:center}

/* --- Parallax & Micro-interactions --- */
.section{transition:transform .2s ease}
.hero-main,.card{transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s ease}
.hero-main:hover{transform:translateY(-3px);box-shadow:0 24px 72px rgba(0,0,0,.50)}
[data-theme="light"] .hero-main:hover{box-shadow:0 24px 72px rgba(0,0,0,.14)}
.card:hover{transform:translateY(-3px)}

.pill,.cta,.filter-btn{will-change:transform}
@media (prefers-reduced-motion:no-preference){
  .gallery-carousel-slide{will-change:transform}
  .lightbox-image{will-change:transform}
}

/* --- Panneau Événements Premium --- */
.events-panel{padding:40px;position:relative;overflow:hidden;min-height:240px;display:flex;align-items:center;justify-content:center}
.events-glow{position:absolute;inset:-2px;background:linear-gradient(135deg,rgba(247,210,122,.20),rgba(202,162,74,.14));
  border-radius:var(--radius);opacity:.45;filter:blur(24px);pointer-events:none;
  animation:pulseGlow 5s ease-in-out infinite alternate
}
[data-theme="light"] .events-glow{opacity:.25}

@keyframes pulseGlow{
  0%{opacity:.45;transform:scale(.98)}
  100%{opacity:.65;transform:scale(1.02)}
}

.events-content{position:relative;z-index:1;text-align:center;max-width:560px}
.events-header{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:18px}
.events-icon{width:38px;height:38px;fill:rgba(247,210,122,.85);filter:drop-shadow(0 6px 16px rgba(247,210,122,.25))}
[data-theme="light"] .events-icon{fill:rgba(145,110,30,.82)}
.events-text{color:var(--muted);line-height:1.72;margin:0 0 24px;font-size:15px}
.events-cta{display:inline-flex;transition:all .24s cubic-bezier(.2,.8,.3,1)}
.events-cta:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 18px 56px rgba(202,162,74,.30),0 10px 36px rgba(0,0,0,.38)}

/* Mobile: sticky events CTA */
@media (max-width:720px){
  .events-panel{padding:28px 20px}
  .events-cta{width:100%;justify-content:center}
  .hero{padding:60px 0 32px}
  .hero-main{min-height:380px;padding:28px 24px}
  .info-box{padding:20px}
  .section{padding:40px 0}
}

/* --- Google Maps Actions --- */
.gmaps-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.gmaps-pill{transition:all .22s cubic-bezier(.2,.8,.3,1);background:rgba(255,255,255,.06);border-color:rgba(247,210,122,.12)}
[data-theme="light"] .gmaps-pill{background:rgba(255,255,255,.62);border-color:rgba(145,110,30,.14)}
.gmaps-pill:hover{transform:translateY(-2px);background:rgba(255,255,255,.10);border-color:rgba(247,210,122,.28);
  box-shadow:0 12px 36px rgba(0,0,0,.28)
}
[data-theme="light"] .gmaps-pill:hover{background:rgba(255,255,255,.85);border-color:rgba(145,110,30,.30)}

@media (max-width:720px){
  .gmaps-actions{flex-direction:column}
  .gmaps-pill{width:100%;justify-content:center}
}

/* ==========================================================================
   PAGES LÉGALES
   ========================================================================== */

.legal-page {
  max-width: 800px;
  margin: 0 auto;
}

.legal-page h1.h2 {
  margin-bottom: 8px;
}

.legal-page .legal-update {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 24px;
}

.legal-page h2.h3 {
  font-size: 18px;
  margin: 24px 0 12px;
  color: var(--gold1);
}

.legal-page h3 {
  font-size: 15px;
  margin: 16px 0 8px;
  color: var(--text);
}

.legal-page p {
  margin: 0 0 12px;
  line-height: 1.7;
  color: var(--muted);
}

.legal-page ul {
  margin: 0 0 16px;
  padding-left: 24px;
}

.legal-page li {
  margin-bottom: 8px;
  line-height: 1.6;
  color: var(--muted);
}

.legal-page a {
  color: var(--gold1);
  text-decoration: underline;
  text-decoration-color: rgba(247, 210, 122, 0.3);
  transition: text-decoration-color 0.2s ease;
}

.legal-page a:hover {
  text-decoration-color: var(--gold1);
}

.legal-page .legal-note {
  font-size: 13px;
  padding: 12px;
  background: rgba(247, 210, 122, 0.08);
  border-radius: 8px;
  border: 1px solid rgba(247, 210, 122, 0.15);
}

.legal-page code {
  font-family: monospace;
  font-size: 13px;
  background: rgba(0, 0, 0, 0.2);
  padding: 2px 6px;
  border-radius: 4px;
}

[data-theme="light"] .legal-page code {
  background: rgba(0, 0, 0, 0.06);
}

.legal-table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 14px;
}

.legal-table th,
.legal-table td {
  padding: 12px;
  text-align: left;
  border: 1px solid rgba(247, 210, 122, 0.15);
}

.legal-table th {
  background: rgba(247, 210, 122, 0.1);
  color: var(--gold1);
  font-weight: 600;
}

.legal-table td {
  color: var(--muted);
}

[data-theme="light"] .legal-table th {
  background: rgba(145, 110, 30, 0.1);
}

[data-theme="light"] .legal-table th,
[data-theme="light"] .legal-table td {
  border-color: rgba(145, 110, 30, 0.15);
}

/* ==========================================================================
   BANNIÈRE COOKIES
   ========================================================================== */

.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10000;
  padding: 16px;
  transform: translateY(100%);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.cookie-banner.is-visible {
  transform: translateY(0);
}

.cookie-banner-content {
  max-width: 1120px;
  margin: 0 auto;
  padding: 20px 24px;
  background: var(--card);
  backdrop-filter: blur(20px);
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow), 0 -10px 40px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

[data-theme="light"] .cookie-banner-content {
  background: rgba(255, 255, 255, 0.95);
}

.cookie-banner-text {
  flex: 1;
  min-width: 280px;
}

.cookie-banner-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--text);
}

.cookie-banner-desc {
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  color: var(--muted);
}

.cookie-banner-desc a {
  color: var(--gold1);
  text-decoration: underline;
}

.cookie-banner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cookie-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
  white-space: nowrap;
}

.cookie-btn-accept {
  background: linear-gradient(135deg, var(--gold1), var(--gold2));
  color: #0b0a0d;
}

.cookie-btn-accept:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(247, 210, 122, 0.3);
}

.cookie-btn-reject {
  background: rgba(255, 255, 255, 0.08);
  color: var(--text);
  border: 1px solid var(--stroke);
}

[data-theme="light"] .cookie-btn-reject {
  background: rgba(0, 0, 0, 0.05);
}

.cookie-btn-reject:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: var(--gold1);
}

[data-theme="light"] .cookie-btn-reject:hover {
  background: rgba(0, 0, 0, 0.08);
}

.cookie-btn-settings {
  background: transparent;
  color: var(--muted);
  border: 1px solid transparent;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.2);
}

.cookie-btn-settings:hover {
  color: var(--gold1);
  text-decoration-color: var(--gold1);
}

@media (max-width: 640px) {
  .cookie-banner-content {
    flex-direction: column;
    text-align: center;
  }

  .cookie-banner-actions {
    width: 100%;
    flex-direction: column;
  }

  .cookie-btn {
    width: 100%;
  }
}

/* ==========================================================================
   MODALE COOKIES
   ========================================================================== */

.cookie-modal {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.cookie-modal.is-visible {
  opacity: 1;
  visibility: visible;
}

.cookie-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
}

.cookie-modal-content {
  position: relative;
  width: 100%;
  max-width: 560px;
  max-height: calc(100vh - 32px);
  background: var(--bg1);
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translateY(20px);
  transition: transform 0.3s ease;
}

.cookie-modal.is-visible .cookie-modal-content {
  transform: translateY(0);
}

[data-theme="light"] .cookie-modal-content {
  background: var(--bg0);
}

.cookie-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--stroke);
}

.cookie-modal-title {
  font-size: 18px;
  font-weight: 700;
  margin: 0;
  color: var(--text);
}

.cookie-modal-close {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--stroke);
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.2s ease;
}

.cookie-modal-close svg {
  width: 18px;
  height: 18px;
  stroke: var(--text);
  stroke-width: 2;
  fill: none;
}

.cookie-modal-close:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--gold1);
}

.cookie-modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
}

.cookie-modal-intro {
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
  margin: 0 0 20px;
}

.cookie-category {
  padding: 16px;
  background: var(--card);
  border: 1px solid var(--stroke);
  border-radius: 12px;
  margin-bottom: 12px;
}

.cookie-category-disabled {
  opacity: 0.5;
}

.cookie-category-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.cookie-category-info {
  flex: 1;
}

.cookie-category-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--text);
}

.cookie-category-desc {
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
  color: var(--muted);
}

.cookie-category-desc em {
  color: var(--gold2);
}

.cookie-toggle {
  flex-shrink: 0;
}

.cookie-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.cookie-toggle-label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 13px;
  color: var(--muted);
}

.cookie-toggle-disabled {
  cursor: not-allowed;
  font-style: italic;
}

.cookie-toggle-switch {
  width: 44px;
  height: 24px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid var(--stroke);
  border-radius: 12px;
  position: relative;
  transition: all 0.2s ease;
}

.cookie-toggle-switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: var(--text);
  border-radius: 50%;
  transition: transform 0.2s ease;
}

.cookie-toggle input:checked + .cookie-toggle-label .cookie-toggle-switch {
  background: var(--gold1);
  border-color: var(--gold1);
}

.cookie-toggle input:checked + .cookie-toggle-label .cookie-toggle-switch::after {
  transform: translateX(20px);
  background: #0b0a0d;
}

.cookie-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px 24px;
  border-top: 1px solid var(--stroke);
}

@media (max-width: 480px) {
  .cookie-modal-footer {
    flex-direction: column;
  }

  .cookie-modal-footer .cookie-btn {
    width: 100%;
  }
}

/* ==========================================================================
   PLACEHOLDER GOOGLE MAPS
   ========================================================================== */

.map-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 360px;
  padding: 40px 20px;
  background: var(--card);
  border: 1px dashed var(--stroke);
  border-radius: var(--radius);
  text-align: center;
}

.map-placeholder-icon {
  width: 48px;
  height: 48px;
  fill: var(--gold1);
  margin-bottom: 16px;
  opacity: 0.6;
}

.map-placeholder-title {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 8px;
  color: var(--text);
}

.map-placeholder-text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
  margin: 0 0 16px;
  max-width: 400px;
}

.map-placeholder-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.map-placeholder .pill {
  font-size: 13px;
}
