/* =====================================================
   CASI — Soirées éphémères · CSS
   ===================================================== */

/* ── Reveal animation ──────────────────────────────── */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity:1; transform:none; }
.reveal[data-d="1"] { transition-delay:.1s; }
.reveal[data-d="2"] { transition-delay:.2s; }
.reveal[data-d="3"] { transition-delay:.32s; }

/* ── Shared buttons ────────────────────────────────── */
.s-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; background:var(--terra); color:#fff;
  border-radius:4px; font-size:.9rem; font-weight:500;
  transition:background var(--ease); cursor:pointer;
  border:none; text-decoration:none; white-space:nowrap;
}
.s-btn:hover { background:var(--terra-dk); }
.s-btn--outline {
  background:transparent; border:1.5px solid rgba(255,255,255,.35); color:#fff;
}
.s-btn--outline:hover { border-color:#fff; background:rgba(255,255,255,.06); }
.s-btn--dark { background:#1A0F06; color:#fff; }
.s-btn--dark:hover { background:#000; }

/* ── Encart boissons (réutilisable) ────────────────── */
.encart-boissons {
  background:var(--gold-lt); border:1.5px solid var(--gold);
  border-radius:12px; padding:20px 24px;
  display:flex; gap:16px; align-items:flex-start;
}
.encart-boissons__icon { font-size:1.7rem; flex-shrink:0; line-height:1.1; }
.encart-boissons__titre {
  font-size:.73rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; color:var(--terra-dk); margin-bottom:5px;
}
.encart-boissons p { font-size:.88rem; line-height:1.6; margin:0; color:var(--ink); }

/* ══════════════════════════════════════════════════
   PAGE LIEU
══════════════════════════════════════════════════ */
.lieu-hero {
  min-height:78vh; display:flex; align-items:center; justify-content:center;
  text-align:center; position:relative; overflow:hidden; padding:120px 24px 80px;
  background:#1A0F06 url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=1600&q=70') center/cover no-repeat;
}
.lieu-hero::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(14,7,1,.5) 0%, rgba(14,7,1,.75) 100%);
}
.lieu-hero__inner { position:relative; z-index:2; max-width:720px; margin:0 auto; }
.lieu-hero__tag {
  display:inline-block; font-size:.67rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.18em; color:var(--gold);
  margin-bottom:18px;
}
.lieu-hero h1 {
  font-family:var(--font-display); font-size:clamp(2.4rem,6vw,4.5rem);
  font-weight:300; color:#fff; line-height:1.1; margin-bottom:18px;
}
.lieu-hero h1 em { font-style:italic; color:var(--gold); }
.lieu-hero p { font-size:1rem; color:rgba(255,255,255,.68); font-weight:300; margin-bottom:32px; line-height:1.7; }
.lieu-hero__ctas { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }

.lieu-duo { padding:80px 24px; background:var(--cream); }
.lieu-duo__inner { max-width:900px; margin:0 auto; }
.lieu-section-titre {
  font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2.2rem);
  font-weight:300; text-align:center; margin-bottom:48px;
}
.lieu-duo__grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
@media(max-width:640px){ .lieu-duo__grid { grid-template-columns:1fr; } }

.lieu-card { background:var(--cream-2); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.lieu-card__img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.lieu-card__body { padding:24px; }
.lieu-card__badge { display:inline-block; font-size:.67rem; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--terra); margin-bottom:10px; }
.lieu-card h3 { font-family:var(--font-display); font-size:1.4rem; font-weight:400; margin-bottom:10px; }
.lieu-card p { font-size:.88rem; color:var(--stone); line-height:1.65; font-weight:300; }

.lieu-deroulé { background:#1A0F06; padding:80px 24px; }
.lieu-deroulé__inner { max-width:900px; margin:0 auto; }
.lieu-deroulé__titre { font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2.2rem); font-weight:300; color:#fff; text-align:center; margin-bottom:56px; }
.lieu-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; text-align:center; }
@media(max-width:680px){ .lieu-steps { grid-template-columns:1fr; } }
.lieu-step__num { font-family:var(--font-display); font-size:3rem; font-weight:300; color:var(--gold); line-height:1; margin-bottom:14px; }
.lieu-step h3 { font-family:var(--font-display); font-size:1.2rem; font-weight:400; color:#fff; margin-bottom:8px; }
.lieu-step p { font-size:.85rem; color:rgba(255,255,255,.52); font-weight:300; line-height:1.65; }

.lieu-boissons-section { padding:60px 24px; background:var(--cream-2); }
.lieu-boissons-section__inner { max-width:700px; margin:0 auto; }

.lieu-adresse { padding:80px 24px; background:var(--cream); }
.lieu-adresse__inner { max-width:900px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
@media(max-width:700px){ .lieu-adresse__inner { grid-template-columns:1fr; } }
.lieu-adresse__titre { font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2.2rem); font-weight:300; margin-bottom:22px; }
.lieu-adresse__infos { list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }
.lieu-adresse__infos li { display:flex; gap:10px; font-size:.9rem; color:var(--stone); line-height:1.5; }
.lieu-adresse__infos li strong { color:var(--ink); font-weight:500; min-width:110px; flex-shrink:0; }
.lieu-map iframe { width:100%; border-radius:12px; border:1px solid var(--border); min-height:280px; display:block; }

.lieu-partenaire { padding:60px 24px; background:#1A0F06; text-align:center; }
.lieu-partenaire p { color:rgba(255,255,255,.55); font-size:.9rem; margin-bottom:14px; }
.lieu-partenaire a { color:var(--gold); text-decoration:underline; font-weight:500; }

.lieu-cta-final { padding:80px 24px; background:var(--cream-2); text-align:center; }
.lieu-cta-final h2 { font-family:var(--font-display); font-size:clamp(1.8rem,4vw,3rem); font-weight:300; margin-bottom:16px; }
.lieu-cta-final p { color:var(--stone); font-size:.95rem; margin-bottom:32px; }

/* ══════════════════════════════════════════════════
   PAGE SOIRÉES LISTE
══════════════════════════════════════════════════ */
.soirees-hero {
  min-height:50vh; display:flex; align-items:center; justify-content:center;
  text-align:center; position:relative; overflow:hidden; padding:120px 24px 60px;
  background:#1A0F06 url('https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=1600&q=70') center/cover no-repeat;
}
.soirees-hero::before { content:''; position:absolute; inset:0; background:rgba(14,7,1,.68); }
.soirees-hero__inner { position:relative; z-index:2; max-width:680px; margin:0 auto; }
.soirees-hero__tag { display:inline-block; font-size:.67rem; font-weight:600; text-transform:uppercase; letter-spacing:.18em; color:var(--gold); margin-bottom:16px; }
.soirees-hero h1 { font-family:var(--font-display); font-size:clamp(2rem,5vw,3.8rem); font-weight:300; color:#fff; line-height:1.1; margin-bottom:16px; }
.soirees-hero h1 em { font-style:italic; color:var(--gold); }
.soirees-hero p { font-size:.95rem; color:rgba(255,255,255,.65); font-weight:300; line-height:1.7; }

.soirees-section { padding:80px 24px; background:var(--cream); }
.soirees-section__inner { max-width:900px; margin:0 auto; }
.soirees-vide { text-align:center; padding:60px 0; color:var(--stone); font-size:.95rem; }

/* Date cards */
.dates-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:28px; margin-bottom:64px; }
.date-card { background:var(--cream-2); border:1px solid var(--border); border-radius:14px; overflow:hidden; transition:box-shadow var(--ease); }
.date-card:hover { box-shadow:var(--shadow-md); }
.date-card__top { display:flex; justify-content:space-between; align-items:flex-start; padding:22px 22px 16px; }
.date-card__top h3 { font-family:var(--font-display); font-size:1.25rem; font-weight:400; margin-bottom:6px; }
.date-card__top .when { font-size:.82rem; color:var(--stone); font-weight:300; }
.date-badge { text-align:center; background:var(--terra); color:#fff; border-radius:8px; padding:8px 14px; flex-shrink:0; margin-left:14px; }
.date-badge .d { display:block; font-family:var(--font-display); font-size:1.8rem; font-weight:400; line-height:1; }
.date-badge .m { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; margin-top:2px; }
.date-card__body { padding:0 22px 16px; font-size:.87rem; color:var(--stone); line-height:1.65; font-weight:300; }
.date-card__foot { display:flex; justify-content:space-between; align-items:center; padding:16px 22px 20px; border-top:1px solid var(--border); }
.date-card__price { font-size:1.1rem; font-weight:500; }
.date-card__price small { font-size:.75rem; font-weight:300; color:var(--stone); }
.tag-soldout { display:inline-flex; align-items:center; padding:9px 16px; background:var(--cream-3); color:var(--stone); border-radius:4px; font-size:.82rem; font-weight:500; cursor:default; }

/* Menu soirée */
.menu-soiree { padding:0 0 80px; }
.menu-soiree__inner { max-width:700px; margin:0 auto; }
.menu-soiree__titre { font-family:var(--font-display); font-size:clamp(1.4rem,3vw,2rem); font-weight:300; text-align:center; margin-bottom:36px; }
.menu-plats { display:flex; flex-direction:column; gap:2px; }
.menu-plat { display:flex; gap:20px; padding:16px 0; border-bottom:1px solid var(--border); }
.menu-plat:last-child { border-bottom:none; }
.menu-plat__course { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--terra); min-width:90px; padding-top:2px; }
.menu-plat__nom { font-family:var(--font-display); font-size:1.05rem; font-weight:400; margin-bottom:3px; }
.menu-plat__desc { font-size:.83rem; color:var(--stone); font-weight:300; }

/* Formulaire de réservation */
.resa-form-section { padding:0 24px 80px; background:var(--cream); }
.resa-form-section__inner { max-width:620px; margin:0 auto; }
.resa-form-section h2 { font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2.2rem); font-weight:300; margin-bottom:8px; }
.resa-form-section > .resa-form-section__inner > p { font-size:.9rem; color:var(--stone); margin-bottom:32px; }

.resa-form { background:var(--cream-2); border:1px solid var(--border); border-radius:14px; padding:32px; display:flex; flex-direction:column; gap:20px; }
.s-champ label { display:block; font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--stone); margin-bottom:7px; }
.s-champ input, .s-champ select, .s-champ textarea {
  width:100%; padding:11px 14px; border:1.5px solid var(--border);
  border-radius:8px; font:inherit; font-size:.92rem; background:var(--white);
  color:var(--ink); transition:border-color var(--ease);
}
.s-champ input:focus, .s-champ select:focus { outline:none; border-color:var(--terra); }
.s-champ--2col { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:500px){ .s-champ--2col { grid-template-columns:1fr; } }
.s-champ__hint { font-size:.78rem; color:var(--stone); margin-top:5px; }

.s-total-preview { background:var(--terra-lt); border:1px solid var(--terra); border-radius:8px; padding:14px 18px; display:flex; justify-content:space-between; align-items:center; font-size:.95rem; }
.s-total-preview strong { font-size:1.15rem; }

.s-rgpd { display:flex; gap:10px; align-items:flex-start; }
.s-rgpd input[type="checkbox"] { margin-top:3px; flex-shrink:0; accent-color:var(--terra); }
.s-rgpd label { font-size:.83rem; color:var(--stone); line-height:1.55; cursor:pointer; }
.s-rgpd a { color:var(--terra); text-decoration:underline; }

.resa-form .s-btn { width:100%; justify-content:center; padding:15px; font-size:.95rem; }

/* Alerte erreur */
.s-alerte-erreur { background:#fef2f2; border:1.5px solid #fca5a5; border-radius:8px; padding:14px 18px; color:#991b1b; font-size:.88rem; margin-bottom:20px; }

/* ══════════════════════════════════════════════════
   PAGES SUCCES / ANNULE
══════════════════════════════════════════════════ */
.resa-confirmation { min-height:70vh; display:flex; align-items:center; justify-content:center; padding:80px 24px; }
.resa-confirmation__card { max-width:580px; width:100%; background:var(--cream-2); border:1px solid var(--border); border-radius:16px; padding:40px 36px; text-align:center; }
.resa-confirmation__icon { font-size:3rem; margin-bottom:20px; line-height:1; }
.resa-confirmation h1 { font-family:var(--font-display); font-size:2rem; font-weight:300; margin-bottom:10px; }
.resa-confirmation p { font-size:.92rem; color:var(--stone); line-height:1.65; margin-bottom:12px; }
.resa-confirmation__infos { background:var(--cream); border:1px solid var(--border); border-radius:10px; padding:18px 20px; text-align:left; margin:24px 0; }
.resa-confirmation__infos dt { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--stone); margin-bottom:2px; }
.resa-confirmation__infos dd { font-size:.92rem; font-weight:500; margin-bottom:12px; }
.resa-confirmation__infos dd:last-child { margin-bottom:0; }
.resa-confirmation__boissons { margin:20px 0; }
.resa-confirmation__links { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:28px; }
