/* ══════════════════════════════════════════════
   EVB BOOKING MODAL — Design System
   Palette dynamique via --evb-f-* (EVB_Settings)
══════════════════════════════════════════════ */

:root {
  --evb-m-bg:         var(--evb-f-bg,      #D8C7A1);
  --evb-m-surface:    var(--evb-f-surface,  #F2E6C8);
  --evb-m-text:       var(--evb-f-text,     #1F1A17);
  --evb-m-muted:      color-mix(in srgb, var(--evb-f-text, #1F1A17) 60%, transparent);
  --evb-m-border:     var(--evb-f-border,   rgba(196,183,156,0.18));
  --evb-m-accent:     var(--evb-f-accent,   #C85A3A);
  --evb-m-accent-rgb: 200,90,58;
  --evb-m-ok:         #10b981;
  --evb-m-warn:       #f59e0b;
  --evb-m-danger:     #ef4444;
  --evb-m-radius:     20px;
  --evb-m-font:       var(--evb-f-font, 'Inter', system-ui, sans-serif);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

/* ── Overlay ────────────────────────────── */
#evb-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 99990;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  font-family: var(--evb-m-font);
  opacity: 0;
  transition: opacity .25s ease;
  will-change: opacity;
}

#evb-modal-overlay.is-open {
  display: flex;
  opacity: 1;
  pointer-events: auto;
}

/* ── Modal box ──────────────────────────── */
.evb-modal-box {
  background: var(--evb-m-bg);
  border-radius: var(--evb-m-radius);
  width: 100%;
  max-width: 820px;
  max-height: 92vh;
  overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,.22), 0 0 0 1px rgba(0,0,0,.06);
  transform: translateY(28px) scale(.97);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
  position: relative;
}
#evb-modal-overlay.is-open .evb-modal-box {
  transform: translateY(0) scale(1);
}

/* ── Modal header ────────────────────────── */
.evb-m-header {
  padding: 28px 32px 0;
  position: sticky;
  top: 0;
  background: var(--evb-m-bg);
  z-index: 2;
  border-radius: var(--evb-m-radius) var(--evb-m-radius) 0 0;
}
.evb-m-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.evb-m-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--evb-m-text);
}
.evb-m-close {
  width: 36px; height: 36px;
  border: none;
  background: var(--evb-m-border);
  border-radius: 50%;
  font-size: 18px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: var(--evb-m-muted);
  transition: background .15s, transform .15s;
  flex-shrink: 0;
}
.evb-m-close:hover { background: color-mix(in srgb, var(--evb-m-border) 80%, var(--evb-m-surface)); transform: rotate(90deg); }

/* ── Progress bar ────────────────────────── */
.evb-m-progress {
  display: flex;
  gap: 0;
  margin-bottom: 0;
}
.evb-m-step-label {
  flex: 1;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: var(--evb-m-muted);
  padding-bottom: 10px;
  border-bottom: 3px solid var(--evb-m-border);
  transition: color .3s, border-color .3s;
  position: relative;
  cursor: default;
}
.evb-m-step-label .evb-step-num {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--evb-m-border);
  color: var(--evb-m-muted);
  font-size: 11px;
  font-weight: 700;
  margin-right: 6px;
  transition: background .3s, color .3s;
}
.evb-m-step-label.is-active {
  color: var(--evb-f-accent);
  border-bottom-color: var(--evb-f-accent);
}
.evb-m-step-label.is-active .evb-step-num {
  background: var(--evb-f-accent);
  color: #fff;
}
.evb-m-step-label.is-done {
  color: var(--evb-f-accent);
  border-bottom-color: var(--evb-f-accent);
}
.evb-m-step-label.is-done .evb-step-num {
  background: var(--evb-f-accent);
  color: #fff;
}

/* ── Content area ────────────────────────── */
.evb-m-body {
  padding: 28px 32px 32px;
}

/* ── Step panels ─────────────────────────── */
.evb-step-panel {
  display: none;
  animation: evb-step-in .3s ease both;
}
.evb-step-panel.is-active {
  display: block;
}
@keyframes evb-step-in {
  from { opacity:0; transform: translateX(16px); }
  to   { opacity:1; transform: translateX(0); }
}

/* Step titles */
.evb-step-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--evb-m-text);
  margin-bottom: 4px;
}
.evb-step-sub {
  font-size: 13px;
  color: var(--evb-m-muted);
  margin-bottom: 22px;
}

/* ════════════════════════════════════════════
   STEP 1 — Date & Convives
════════════════════════════════════════════ */
.evb-step1-grid {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 24px;
}
@media (max-width: 640px) { .evb-step1-grid { grid-template-columns: 1fr; } }

/* Mini calendar */
.evb-cal-wrap { }
.evb-cal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.evb-cal-nav button {
  width: 32px; height: 32px;
  border: 1px solid var(--evb-m-border);
  border-radius: 8px;
  background: var(--evb-m-surface);
  color: var(--evb-m-text);
  font-size: 16px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.evb-cal-nav button:hover { background: var(--evb-m-border); }
.evb-cal-month {
  font-weight: 700;
  font-size: 15px;
  color: var(--evb-m-text);
}
.evb-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}
.evb-cal-dow {
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  color: var(--evb-m-muted);
  text-transform: uppercase;
  padding: 4px 0;
}
.evb-cal-day {
  text-align: center;
  padding: 8px 4px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, color .15s, transform .1s;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid transparent;
}
.evb-cal-day:hover:not(.is-past):not(.is-empty) {
  background: rgba(var(--evb-m-accent-rgb),.08);
  transform: scale(1.05);
}
.evb-cal-day.is-today { font-weight: 700; }
.evb-cal-day.is-past  { color: color-mix(in srgb, var(--evb-m-text) 25%, transparent); cursor: default; }
.evb-cal-day.is-empty { cursor: default; }
.evb-cal-day.is-selected {
  background: var(--evb-m-accent);
  color: #fff;
  border-color: var(--evb-m-accent);
  box-shadow: 0 3px 10px rgba(var(--evb-m-accent-rgb),.35);
}
.evb-cal-day.is-loading { opacity:.5; pointer-events:none; }

/* Guests selector */
.evb-guests-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--evb-m-text);
  margin-bottom: 10px;
  margin-top: 16px;
}
.evb-guests-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-bottom: 10px;
}
.evb-guest-btn {
  padding: 9px 4px;
  border: 1.5px solid var(--evb-m-border);
  border-radius: 10px;
  background: var(--evb-m-surface);
  color: var(--evb-m-text);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  transition: all .15s;
}
.evb-guest-btn:hover {
  border-color: var(--evb-m-accent);
  color: var(--evb-m-accent);
  transform: translateY(-1px);
}
.evb-guest-btn.is-active {
  background: var(--evb-m-accent);
  border-color: var(--evb-m-accent);
  color: #fff;
  box-shadow: 0 3px 8px rgba(var(--evb-m-accent-rgb),.3);
}
.evb-guests-more {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
}
.evb-guests-input {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--evb-m-border);
  border-radius: 10px;
  font-family: var(--evb-m-font);
  font-size: 13px;
  font-weight: 600;
  outline: none;
  background: var(--evb-m-surface);
  color: var(--evb-m-text);
  box-shadow: inset 0 2px 4px rgba(0,0,0,.05);
  transition: border-color .2s;
}
.evb-guests-input:focus { border-color: var(--evb-m-accent); }

/* Large group warning */
.evb-group-warn {
  background: #fff7ed;
  border: 1px solid #fde68a;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 13px;
  color: #92400e;
  display: none;
}
.evb-group-warn a { color: var(--evb-m-accent); font-weight: 700; text-decoration: none; }

/* Step 1 summary panel */
.evb-s1-summary {
  background: var(--evb-m-surface);
  border: 1.5px solid var(--evb-m-border);
  border-radius: 16px;
  padding: 20px;
}
.evb-s1-summary h4 {
  font-size: 13px;
  font-weight: 700;
  color: var(--evb-m-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 14px;
}
.evb-s1-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--evb-m-border);
  font-size: 13px;
}
.evb-s1-row:last-child { border-bottom: none; }
.evb-s1-key  { color: var(--evb-m-muted); }
.evb-s1-val  { font-weight: 700; color: var(--evb-m-text); }
.evb-s1-val--accent { color: var(--evb-m-accent); }

/* Date info message */
.evb-date-info {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
  display: none;
}
.evb-date-info--warn {
  background: #fef3c7;
  color: #92400e;
  display: block;
}
.evb-date-info--ok {
  background: rgba(var(--evb-m-accent-rgb),.08);
  color: var(--evb-m-accent);
  display: block;
}
.evb-date-info--error {
  background: #fee2e2;
  color: #991b1b;
  display: block;
}

/* ════════════════════════════════════════════
   STEP 2 — Créneaux
════════════════════════════════════════════ */
.evb-step2-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.evb-step2-date-badge {
  font-size: 15px;
  font-weight: 700;
  color: var(--evb-m-text);
}
.evb-legend-box {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 11px;
  color: var(--evb-m-muted);
  flex-shrink: 0;
}
.evb-legend-row {
  display: flex;
  align-items: center;
  gap: 6px;
}
.evb-legend-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.evb-legend-dot--green  { background: #10b981; }
.evb-legend-dot--orange { background: #f59e0b; }
.evb-legend-dot--red    { background: #ef4444; }
.evb-legend-dot--grey   { background: #d1d5db; }

/* Service sections */
.evb-service-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--evb-m-muted);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.evb-slots-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 8px;
  margin-bottom: 18px;
}
.evb-slot-btn {
  padding: 12px 8px;
  border: 1.5px solid var(--evb-m-border);
  border-radius: 12px;
  background: var(--evb-m-surface);
  cursor: pointer;
  text-align: center;
  transition: all .18s;
  position: relative;
  overflow: hidden;
}
.evb-slot-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .18s;
  border-radius: 11px;
}
.evb-slot-btn--green::before  { background: rgba(16,185,129,.08); }
.evb-slot-btn--orange::before { background: rgba(245,158,11,.08); }
.evb-slot-btn--red::before    { background: rgba(239,68,68,.08); }

.evb-slot-btn:not(.is-full):hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0,0,0,.1);
}
.evb-slot-btn:not(.is-full):hover::before { opacity: 1; }

.evb-slot-btn.is-selected {
  border-color: var(--evb-m-accent);
  background: rgba(var(--evb-m-accent-rgb),.06);
  box-shadow: 0 0 0 2px rgba(var(--evb-m-accent-rgb),.25);
}
.evb-slot-btn.is-full {
  opacity: .45;
  cursor: not-allowed;
  background: color-mix(in srgb, var(--evb-m-surface) 60%, transparent);
}
.evb-slot-time {
  font-size: 16px;
  font-weight: 700;
  color: var(--evb-m-text);
  display: block;
  margin-bottom: 3px;
}
.evb-slot-info {
  font-size: 10px;
  font-weight: 600;
  display: block;
}
.evb-slot-info--green  { color: #10b981; }
.evb-slot-info--orange { color: #f59e0b; }
.evb-slot-info--red    { color: #ef4444; }
.evb-slot-info--grey   { color: #9ca3af; }

/* Closed / call message */
.evb-no-slots {
  text-align: center;
  padding: 28px 20px;
  background: color-mix(in srgb, var(--evb-m-surface) 60%, transparent);
  border-radius: 14px;
  font-size: 13px;
  color: var(--evb-m-muted);
}
.evb-no-slots a {
  color: var(--evb-m-accent);
  font-weight: 700;
  text-decoration: none;
}

/* ════════════════════════════════════════════
   STEP 3 — Coordonnées
════════════════════════════════════════════ */
.evb-step3-grid {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 24px;
}
@media (max-width: 640px) { .evb-step3-grid { grid-template-columns: 1fr; } }

/* Recap card */
.evb-recap {
  background: color-mix(in srgb, var(--evb-m-surface) 80%, transparent);
  border: 1.5px solid var(--evb-m-border);
  border-radius: 16px;
  padding: 20px;
  height: fit-content;
}
.evb-recap h4 {
  font-size: 13px;
  font-weight: 700;
  color: var(--evb-m-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 14px;
}
.evb-recap-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--evb-m-border);
  font-size: 13px;
}
.evb-recap-row:last-child { border-bottom: none; }
.evb-recap-icon { font-size: 16px; flex-shrink: 0; }
.evb-recap-info {}
.evb-recap-key  { font-size: 10px; color: var(--evb-m-muted); text-transform: uppercase; letter-spacing: .05em; display: block; }
.evb-recap-val  { font-weight: 700; color: var(--evb-m-text); }

/* Timer */
.evb-timer-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #92400e;
  margin-bottom: 20px;
}
.evb-timer-count {
  font-family: 'Courier New', monospace;
  font-weight: 800;
  color: var(--evb-m-accent);
  min-width: 42px;
}
.evb-timer-banner.is-urgent { background:#fee2e2; border-color:#fca5a5; color:#991b1b; }

/* Form fields */
.evb-form-group {
  margin-bottom: 14px;
}
.evb-m-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--evb-m-text);
  margin-bottom: 6px;
}
.evb-m-label span { color: var(--evb-m-danger); }
.evb-m-input,
.evb-m-textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid var(--evb-m-border);
  border-radius: 12px;
  font-family: var(--evb-m-font);
  font-size: 14px;
  color: var(--evb-m-text);
  background: var(--evb-m-surface);
  outline: none;
  box-shadow: inset 0 2px 5px rgba(0,0,0,.05), inset 0 1px 2px rgba(0,0,0,.03);
  transition: border-color .2s, box-shadow .2s;
}
.evb-m-input:focus,
.evb-m-textarea:focus {
  border-color: var(--evb-m-accent);
  box-shadow: inset 0 2px 5px rgba(0,0,0,.05), 0 0 0 3px rgba(var(--evb-m-accent-rgb),.12);
}
.evb-m-textarea { resize: vertical; min-height: 80px; }

/* ── Anti-bot hold button ───────────────── */
.evb-robot-wrap {
  margin-bottom: 16px;
}
.evb-robot-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--evb-m-text);
  margin-bottom: 8px;
  display: block;
}
.evb-robot-btn {
  width: 100%;
  padding: 14px;
  border: 2px solid var(--evb-m-border);
  border-radius: 12px;
  background: var(--evb-m-surface);
  font-family: var(--evb-m-font);
  font-size: 13px;
  font-weight: 600;
  color: var(--evb-m-muted);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
  transition: border-color .2s;
}
.evb-robot-btn::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 0%;
  background: linear-gradient(90deg, rgba(var(--evb-m-accent-rgb),.12), rgba(var(--evb-m-accent-rgb),.06));
  transition: width .05s linear;
  border-radius: 10px;
}
.evb-robot-btn span { position: relative; z-index: 1; }
.evb-robot-btn.is-done {
  border-color: var(--evb-m-accent);
  background: rgba(var(--evb-m-accent-rgb),.08);
  color: var(--evb-m-accent);
}
.evb-robot-btn.is-done::before { width: 100%; }

/* ── GDPR note ──────────────────────────── */
.evb-gdpr {
  font-size: 11px;
  color: var(--evb-m-muted);
  line-height: 1.6;
  border-top: 1px solid var(--evb-m-border);
  padding-top: 10px;
  margin-top: 14px;
}

/* ── Powered by ─────────────────────────── */
.evb-powered {
  text-align: center;
  font-size: 10px;
  color: color-mix(in srgb, var(--evb-m-text) 40%, transparent);
  margin-top: 16px;
}
.evb-powered a { color: inherit; text-decoration: none; }
.evb-powered a:hover { color: var(--evb-m-accent); }

/* ── Nav buttons ────────────────────────── */
.evb-m-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--evb-m-border);
}
.evb-m-btn {
  padding: 12px 28px;
  border-radius: 12px;
  font-family: var(--evb-m-font);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: all .15s;
}
.evb-m-btn--back {
  background: transparent;
  color: var(--evb-m-muted);
  border: 1.5px solid var(--evb-m-border);
}
.evb-m-btn--back:hover { border-color: #999; color: var(--evb-m-text); }
.evb-m-btn--next {
  background: var(--evb-m-accent);
  color: #fff;
  box-shadow: 0 4px 0 rgba(0,0,0,.2), 0 6px 16px rgba(var(--evb-m-accent-rgb),.3);
}
.evb-m-btn--next:hover { transform: translateY(-2px); box-shadow: 0 6px 0 rgba(0,0,0,.18), 0 10px 20px rgba(var(--evb-m-accent-rgb),.35); }
.evb-m-btn--next:active { transform: translateY(1px); box-shadow: 0 2px 0 rgba(0,0,0,.18); }
.evb-m-btn--next:disabled { opacity:.5; cursor:not-allowed; transform:none; }

/* ════════════════════════════════════════════
   CONFIRMATION SCREEN + PANCAKE ANIMATION
════════════════════════════════════════════ */
#evb-confirm-screen {
  display: none;
  text-align: center;
  padding: 20px 32px 40px;
  background: var(--evb-m-bg);
  border-radius: var(--evb-m-radius);
  /* Correction absolute pour superposition parfaite */
  position: absolute;
  inset: 0;
  z-index: 10;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
#evb-confirm-screen.is-active {
  display: flex;
}

/* Ajustement couleur du texte du bouton anti-bot quand validé */
.evb-robot-btn.is-done span {
  color: var(--evb-m-accent);
}

/* Amélioration de l'accessibilité sur les éléments cliquables au clavier */
.evb-cal-nav button:focus-visible,
.evb-guest-btn:focus-visible,
.evb-slot-btn:focus-visible,
.evb-m-btn:focus-visible {
  outline: 3px solid rgba(var(--evb-m-accent-rgb), .4);
  outline-offset: 2px;
}

/* Pancake */
#evb-cooking {
  position: relative;
  width: 160px;
  height: 160px;
  margin: 0 auto 10px;
  overflow: hidden;
}
#evb-cooking .evb-bubble {
  position: absolute;
  border-radius: 100%;
  opacity: 0;
}
#evb-cooking .evb-bubble:nth-child(1) {
  left:58%;width:14px;height:14px;background:var(--evb-m-muted);
  animation:evb-bubble 2s cubic-bezier(.53,.16,.39,.96) infinite;
  margin-top:12px;
}
#evb-cooking .evb-bubble:nth-child(2) {
  left:52%;width:11px;height:11px;background:var(--evb-m-muted);
  animation:evb-bubble 2s ease-in-out .35s infinite;
  margin-top:14px;
}
#evb-cooking .evb-bubble:nth-child(3) {
  left:50%;width:9px;height:9px;background:var(--evb-m-muted);
  animation:evb-bubble 1.5s cubic-bezier(.53,.16,.39,.96) .55s infinite;
  margin-top:10px;
}
#evb-cooking .evb-bubble:nth-child(4) {
  left:56%;width:8px;height:8px;background:var(--evb-m-muted);
  animation:evb-bubble 1.8s cubic-bezier(.53,.16,.39,.96) .9s infinite;
  margin-top:13px;
}
#evb-cooking .evb-bubble:nth-child(5) {
  left:63%;width:7px;height:7px;background:var(--evb-m-muted);
  animation:evb-bubble 1.6s ease-in-out 1s infinite;
  margin-top:13px;
}
#evb-area {
  position:absolute;bottom:0;right:0;
  width:50%;height:50%;
  transform-origin:15% 60%;
  animation:evb-flip 2.1s ease-in-out infinite;
}
#evb-sides {
  position:absolute;width:100%;height:100%;
  transform-origin:15% 60%;
  animation:evb-switchSide 2.1s ease-in-out infinite;
}
#evb-handle {
  position:absolute;bottom:18%;right:80%;width:35%;height:20%;
  background:transparent;
  border-top:5px solid var(--evb-m-text);border-left:5px solid transparent;
  border-radius:100%;
  transform:rotate(20deg) rotateX(0deg) scale(1.3,.9);
}
#evb-pan {
  position:absolute;bottom:20%;right:30%;
  width:50%;height:8%;
  background:var(--evb-m-text);border-radius:0 0 1.4em 1.4em;
  transform-origin:-15% 0;
}
#evb-pancake {
  position:absolute;top:24%;width:100%;height:100%;
  transform:rotateX(85deg);
  animation:evb-jump 2.1s ease-in-out infinite;
}
#evb-pastry {
  position:absolute;bottom:26%;right:37%;
  width:40%;height:45%;
  background:var(--evb-m-text);
  box-shadow:0 0 3px 0 var(--evb-m-text);
  border-radius:100%;
  transform-origin:-20% 0;
  animation:evb-fly 2.1s ease-in-out infinite;
}

@keyframes evb-jump {
  0%   { top:24%;transform:rotateX(85deg); }
  25%  { top:10%;transform:rotateX(0deg); }
  50%  { top:30%;transform:rotateX(85deg); }
  75%  { transform:rotateX(0deg); }
  100% { transform:rotateX(85deg); }
}
@keyframes evb-flip {
  0%   { transform:rotate(0deg); }
  5%   { transform:rotate(-27deg); }
  30%, 50% { transform:rotate(0deg); }
  55%  { transform:rotate(27deg); }
  83.3%{ transform:rotate(0deg); }
  100% { transform:rotate(0deg); }
}
@keyframes evb-switchSide {
  0%   { transform:rotateY(0deg); }
  50%  { transform:rotateY(180deg); }
  100% { transform:rotateY(0deg); }
}
@keyframes evb-fly {
  0%   { bottom:26%;transform:rotate(0deg); }
  10%  { bottom:40%; }
  50%  { bottom:26%;transform:rotate(-190deg); }
  80%  { bottom:40%; }
  100% { bottom:26%;transform:rotate(0deg); }
}
@keyframes evb-bubble {
  0%   { transform:scale(.15);top:80%;opacity:0; }
  50%  { transform:scale(1.1);opacity:1; }
  100% { transform:scale(.33);top:60%;opacity:0; }
}

/* Cooking text */
.evb-cooking-label {
  font-family: 'Amatic SC', 'Courier New', cursive;
  font-size: 28px;
  color: var(--evb-m-text);
  opacity: .8;
  animation: evb-pulse 2.5s linear infinite;
  margin-bottom: 6px;
}
@keyframes evb-pulse {
  0%,100% { transform:scale(1);opacity:.35; }
  50%      { transform:scale(1.08);opacity:1; }
}

/* Success state */
.evb-confirm-success {
  display: none;
  flex-direction: column;
  align-items: center;
  animation: evb-step-in .5s ease;
}
.evb-confirm-success.is-active { display: flex; }
.evb-confirm-check {
  width: 72px;height:72px;
  border-radius:50%;
  background:rgba(var(--evb-m-accent-rgb),.12);
  display:flex;align-items:center;justify-content:center;
  font-size:36px;
  margin-bottom:16px;
  animation:evb-pop .5s cubic-bezier(.22,1,.36,1);
}
@keyframes evb-pop {
  0%   { transform:scale(0); }
  70%  { transform:scale(1.15); }
  100% { transform:scale(1); }
}
.evb-confirm-title {
  font-size: 26px;
  font-weight: 800;
  color: var(--evb-m-text);
  margin-bottom: 8px;
}
.evb-confirm-sub {
  font-size: 14px;
  color: var(--evb-m-muted);
  max-width: 380px;
  line-height: 1.6;
}
.evb-confirm-badge {
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(var(--evb-m-accent-rgb),.10);color:var(--evb-m-accent);
  padding:6px 16px;border-radius:40px;
  font-size:13px;font-weight:700;
  margin-top:14px;
}

@media (max-width: 640px) {
  /* Vos styles existants conservés à l'identique */
  .evb-m-header { padding: 20px 18px 0; }
  .evb-m-body   { padding: 20px 18px 24px; }
  .evb-m-nav    { flex-direction: column-reverse; gap: 10px; }
  .evb-m-nav span { display: none; } 
  .evb-m-btn    { width: 100%; text-align: center; }
  .evb-step2-header { flex-direction: column; }

  /* ── AJOUT : Maîtrise de la hauteur du Popup/Modal sur Mobile ── */
  .evb-b-dropdown, 
  [class*="evb-m-container"], /* Ajuste si ta classe de fond/modal globale a un autre nom */
  #evb-sticky-banner .evb-b-dropdown {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    
    /* Décolle le bas du popup par rapport à la barre de validation/sticky */
    bottom: calc(var(--evb-h, 80px) + 20px) !important; 
    width: calc(100% - 24px) !important;
    
    /* Sécurité absolue pour ne pas coller le haut de l'écran (marge haute d'environ 15-20%) */
    max-height: 75vh !important; 
    overflow-y: auto !important; /* Permet le défilement interne si le contenu (comme l'agenda) est grand */
    
    /* Espacement intérieur de sécurité */
    margin-top: 16px;
    margin-bottom: 16px;
    
    border-radius: 14px; /* Reste raccord avec les captures arrondies */
    box-shadow: 0 -10px 35px rgba(0, 0, 0, 0.35);
  }
}
/* ══════════════════════════════════════════════════════════
   MODE INLINE — [evb_booking]
   Le shortcode evb_booking affiche le formulaire directement dans la page
   (pas de popup, pas de fond assombri, pas de bouton fermer).
══════════════════════════════════════════════════════════ */
#evb-modal-overlay.evb-inline {
  position: static;
  inset: auto;
  z-index: auto;
  display: block;
  background: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 0;
  opacity: 1;
}
#evb-modal-overlay.evb-inline .evb-modal-box {
  transform: none;
  max-width: 100%;
  max-height: none;
  margin: 0 auto;
  box-shadow: 0 24px 64px rgba(0,0,0,.10), 0 0 0 1px rgba(0,0,0,.05);
}
#evb-modal-overlay.evb-inline .evb-m-close { display: none; }

/* ── Événements sur le calendrier (défini par l'admin) ── */
.evb-cal-day.has-event { font-weight: 700; }
.evb-cal-event-dot {
  position: absolute;
  bottom: 5px; left: 50%;
  transform: translateX(-50%);
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--evb-primary, #c0392b);
}
.evb-cal-day { position: relative; }
.evb-cal-event-note {
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: var(--evb-m-radius, 10px);
  background: color-mix(in srgb, var(--evb-primary, #c0392b) 12%, transparent);
  color: var(--evb-primary, #c0392b);
  font-weight: 600;
  font-size: 14px;
  text-align: center;
}
