/* ════════════════════════════════════════
   ORIGINAL FRESHSTOCK STYLES
════════════════════════════════════════ */
:root{
  --primary:#2E7D32;
  --bg:#F5F5F5;
  --accent:#FF7043;
  --text:#111827;
  --muted:#6B7280;
  --card:#FFFFFF;
  --border:#E8E8E8;
  --shadow:0 10px 30px rgba(17,24,39,.08);
  --shadow-sm:0 6px 18px rgba(17,24,39,.07);
  --radius:16px;
  --radius-sm:12px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#fafafa 0%, var(--bg) 100%);
}

.page#page-menu{background:linear-gradient(135deg, #FFF7ED 0%, #FFFFFF 45%, #FFF1F2 100%);border-radius:0;box-shadow:none;border:none}

a{color:inherit;text-decoration:none}

.app{min-height:100%;}

.topbar{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.85);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid rgba(232,232,232,.9);
}
.topbar__inner{
  max-width:1180px;margin:0 auto;padding:14px 20px;
  display:flex;align-items:center;gap:18px;
}

.brand{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px;}
.brand:hover{background:rgba(46,125,50,.06)}
.brand__mark{width:36px;height:36px;display:grid;place-items:center;border-radius:14px;background:rgba(46,125,50,.10);color:var(--primary);}
.brand__text{display:flex;flex-direction:column;line-height:1.1}
.brand__name{font-weight:700;letter-spacing:-.02em}
.brand__sub{font-size:12px;color:var(--muted)}

.nav{display:flex;align-items:center;gap:6px;flex:1;}
.nav__link{padding:10px 12px;border-radius:12px;font-weight:600;font-size:14px;color:#1F2937;}
.nav__link:hover{background:rgba(17,24,39,.05)}
.nav__link.is-active{background:rgba(46,125,50,.10);color:var(--primary);}

.topbar__actions{display:flex;align-items:center;gap:14px}

.icon-btn{position:relative;width:40px;height:40px;border-radius:14px;border:1px solid rgba(232,232,232,.9);background:#fff;box-shadow:0 2px 12px rgba(17,24,39,.06);cursor:pointer;display:grid;place-items:center;color:#1F2937;}
.icon-btn:hover{transform:translateY(-1px)}
.icon-btn:active{transform:translateY(0px)}


.user{display:flex;align-items:center;gap:10px}
.user__meta{display:none;text-align:right}
.user__name{font-weight:700;font-size:13px}
.user__role{font-size:12px;color:var(--muted)}

.avatar{width:40px;height:40px;border-radius:14px;border:1px solid rgba(232,232,232,.9);background:#fff;box-shadow:0 2px 12px rgba(17,24,39,.06);cursor:pointer;position:relative;}
.avatar__ring{position:absolute;inset:-2px;border-radius:16px;background:linear-gradient(135deg, rgba(46,125,50,.20), rgba(255,112,67,.20));z-index:0;}
.avatar__img{position:absolute;inset:0;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg, rgba(46,125,50,.15), rgba(46,125,50,.06));color:var(--primary);font-weight:800;z-index:1;}

.main{padding:22px 0 50px}
.container{max-width:1180px;margin:0 auto;padding:0 20px}

body.is-menu .topbar{display:none}
body.is-menu .footer{display:none}
body.is-menu .main{padding:0}
body.is-menu .container{max-width:none;padding:0}
body.is-intro .topbar{display:none}
body.is-intro .footer{display:none}
body.is-intro .main{padding:0}
body.is-intro .container{max-width:none;padding:0}

.page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:6px 0 18px}
.page__title{margin:0;font-size:28px;letter-spacing:-.03em}
.page__subtitle{margin:6px 0 0;color:var(--muted)}

.pill{padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid rgba(232,232,232,.9);color:#1F2937;font-weight:600;font-size:13px;box-shadow:var(--shadow-sm);}
.pill--accent{background:rgba(255,112,67,.10);border-color:rgba(255,112,67,.25);color:#9A3412}

.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:stretch;margin:14px 0 18px;}
.hero__content{background:rgba(255,255,255,.86);border:1px solid rgba(232,232,232,.9);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;}
.hero__badge{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;background:rgba(46,125,50,.08);color:var(--primary);font-weight:700;font-size:13px;}
.dot{width:8px;height:8px;border-radius:999px;display:inline-block}
.dot--green{background:var(--primary)}
.hero__title{margin:14px 0 8px;font-size:26px;letter-spacing:-.03em}
.hero__text{margin:0;color:var(--muted);max-width:60ch;line-height:1.5}
.hero__actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}
.hero__illustration{background:rgba(255,255,255,.86);border:1px solid rgba(232,232,232,.9);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:grid;place-items:center;padding:10px;}
.illu{width:100%;height:auto;display:block}

.grid{display:grid;gap:14px}
.grid--stats{grid-template-columns:repeat(4, minmax(0,1fr));margin:12px 0 18px}
.grid--two{grid-template-columns:repeat(2, minmax(0,1fr))}
.grid--products{grid-template-columns:repeat(3, minmax(0,1fr))}
.grid--order{grid-template-columns:1fr 1fr;align-items:start}

.card{background:rgba(255,255,255,.88);border:1px solid rgba(232,232,232,.9);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;}
.card__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.card__title{margin:0;font-size:15px;letter-spacing:-.01em}
.card__footer{display:flex;align-items:center;justify-content:space-between;gap:14px}

.link{color:var(--primary);font-weight:700;font-size:13px}
.link:hover{text-decoration:underline}

.stat{padding:16px;border-radius:18px;border:1px solid rgba(232,232,232,.9);background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.76) 100%);box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.stat__label{color:var(--muted);font-weight:600;font-size:13px}
.stat__value{font-size:26px;font-weight:800;margin-top:8px;letter-spacing:-.03em}
.stat__icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:rgba(46,125,50,.10);color:var(--primary);}
.stat__icon--accent{background:rgba(255,112,67,.10);color:var(--accent)}

.list{display:flex;flex-direction:column;gap:10px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid rgba(232,232,232,.9);border-radius:14px;background:#fff;}
.row__main{display:flex;align-items:center;gap:10px}
.row__title{font-weight:700;font-size:14px}
.row__sub{font-size:12px;color:var(--muted);margin-top:2px}

.badge{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;font-weight:700;font-size:12px;border:1px solid transparent;white-space:nowrap;}
.badge--available{background:rgba(46,125,50,.12);border-color:rgba(46,125,50,.22);color:var(--primary)}
.badge--low{background:rgba(255,112,67,.12);border-color:rgba(255,112,67,.22);color:#9A3412}
.badge--out{background:rgba(220,38,38,.10);border-color:rgba(220,38,38,.20);color:#B91C1C}
.badge--pending{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.22);color:#92400E}
.badge--approved{background:rgba(46,125,50,.12);border-color:rgba(46,125,50,.22);color:var(--primary)}
.badge--rejected{background:rgba(220,38,38,.10);border-color:rgba(220,38,38,.20);color:#B91C1C}
.badge--delivered{background:rgba(59,130,246,.10);border-color:rgba(59,130,246,.20);color:#1D4ED8}

.muted{color:var(--muted);font-size:13px;line-height:1.45}
.hint{color:var(--muted);font-size:12px;font-weight:600}

.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}

.input{position:relative}
.input__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#6B7280}
.input input{width:240px;padding:10px 12px 10px 38px;border-radius:14px;border:1px solid rgba(232,232,232,.95);background:rgba(255,255,255,.92);outline:none;box-shadow:0 2px 12px rgba(17,24,39,.05);}
.input input:focus{border-color:rgba(46,125,50,.45);box-shadow:0 0 0 4px rgba(46,125,50,.12)}

.select select{padding:10px 12px;border-radius:14px;border:1px solid rgba(232,232,232,.95);background:rgba(255,255,255,.92);outline:none;box-shadow:0 2px 12px rgba(17,24,39,.05);color:#1F2937;font-weight:600;}
.select select:focus{border-color:rgba(46,125,50,.45);box-shadow:0 0 0 4px rgba(46,125,50,.12)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 14px;border-radius:14px;border:1px solid rgba(232,232,232,.95);background:#fff;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 8px 18px rgba(17,24,39,.06);}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0px)}
.btn--primary{background:linear-gradient(180deg, rgba(46,125,50,1) 0%, rgba(35,107,40,1) 100%);border-color:rgba(46,125,50,.35);color:#fff;box-shadow:0 16px 26px rgba(46,125,50,.20);}
.btn--ghost{background:rgba(255,255,255,.6);}

.product{border-radius:18px;border:1px solid rgba(232,232,232,.9);background:rgba(255,255,255,.92);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;}
.product__media{height:128px;background:linear-gradient(135deg, rgba(46,125,50,.12), rgba(255,112,67,.10));display:grid;place-items:center}
.product__img{width:62px;height:62px;border-radius:18px;background:#fff;border:1px solid rgba(232,232,232,.9);display:grid;place-items:center;box-shadow:0 10px 20px rgba(17,24,39,.08)}
.product__body{padding:14px}
.product__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.product__name{font-weight:900;letter-spacing:-.02em}
.product__meta{margin-top:6px;color:var(--muted);font-size:13px}
.product__bottom{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.product__qty{font-weight:800}

.form{display:grid;gap:12px}
.form__row{display:grid;gap:8px}
.label{font-weight:800;font-size:13px;color:#1F2937}
.text{padding:10px 12px;border-radius:14px;border:1px solid rgba(232,232,232,.95);background:rgba(255,255,255,.92);outline:none;box-shadow:0 2px 12px rgba(17,24,39,.05);}
.text:focus{border-color:rgba(46,125,50,.45);box-shadow:0 0 0 4px rgba(46,125,50,.12)}
.form__actions{display:flex;gap:10px;flex-wrap:wrap}

.divider{height:1px;background:rgba(232,232,232,.9);margin:14px 0}

.cart{display:flex;flex-direction:column;gap:10px;min-height:120px}
.cart__empty{color:var(--muted);font-weight:700}
.cart-item{padding:12px;border-radius:14px;border:1px solid rgba(232,232,232,.9);background:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.cart-item__title{font-weight:900}
.cart-item__sub{margin-top:2px;color:var(--muted);font-size:12px}
.cart-item__actions{display:flex;align-items:center;gap:8px}
.small-btn{width:34px;height:34px;border-radius:12px;border:1px solid rgba(232,232,232,.9);background:#fff;cursor:pointer;display:grid;place-items:center;}
.small-btn:hover{background:rgba(17,24,39,.04)}

.table-wrap{overflow:auto;border-radius:16px}
.table{width:100%;border-collapse:separate;border-spacing:0 10px}
.table thead th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:800;padding:0 10px 8px;}
.table tbody td{padding:14px 10px;background:#fff;border-top:1px solid rgba(232,232,232,.9);border-bottom:1px solid rgba(232,232,232,.9);}
.table tbody tr td:first-child{border-left:1px solid rgba(232,232,232,.9);border-top-left-radius:14px;border-bottom-left-radius:14px}
.table tbody tr td:last-child{border-right:1px solid rgba(232,232,232,.9);border-top-right-radius:14px;border-bottom-right-radius:14px}

.kv{display:flex;flex-direction:column;gap:12px}
.kv__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:14px;border:1px solid rgba(232,232,232,.9);background:#fff}
.kv__k{color:var(--muted);font-weight:700;font-size:13px}
.kv__v{font-weight:800}

.pref{display:flex;flex-direction:column;gap:12px}
.pref__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:14px;border:1px solid rgba(232,232,232,.9);background:#fff}
.pref__title{font-weight:900}

.switch{position:relative;display:inline-flex;align-items:center}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch__track{width:46px;height:28px;border-radius:999px;background:rgba(17,24,39,.12);position:relative;border:1px solid rgba(232,232,232,.9);}
.switch__track:before{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;box-shadow:0 8px 18px rgba(17,24,39,.12);transition:transform .18s ease;}
.switch input:checked + .switch__track{background:rgba(46,125,50,.25);border-color:rgba(46,125,50,.25)}
.switch input:checked + .switch__track:before{transform:translateX(18px)}

.footer{margin-top:18px}
.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 4px}

.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#111827;color:#fff;padding:12px 14px;border-radius:16px;box-shadow:0 20px 40px rgba(0,0,0,.22);display:flex;align-items:center;gap:10px;max-width:min(560px, calc(100% - 24px));}
.toast__icon{width:10px;height:10px;border-radius:99px;background:rgba(46,125,50,.9)}
.toast--warn .toast__icon{background:rgba(255,112,67,.95)}
.toast--err .toast__icon{background:rgba(220,38,38,.95)}
.toast__text{font-weight:700;font-size:13px}



.profile-illu{padding:6px 0}

/* ── Menu page ── */
.menu{min-height:calc(100vh - 140px)}
.menu__header{position:sticky;top:0;z-index:55;background:#fff;border-bottom:1px solid rgba(229,231,235,.9);box-shadow:0 4px 18px rgba(17,24,39,.06);}
.menu__header-inner{max-width:1180px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.menu__brand{display:flex;align-items:center;gap:12px}
.menu__logo{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg, #F97316 0%, #DC2626 100%);box-shadow:0 14px 26px rgba(249,115,22,.24);}
.menu__name{font-weight:950;letter-spacing:-.03em;font-size:20px}
.menu__tagline{color:var(--muted);font-size:12px;font-weight:700}
.menu__cartbtn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:14px;border:0;cursor:pointer;color:#fff;font-weight:900;background:linear-gradient(90deg, #F97316 0%, #DC2626 100%);box-shadow:0 18px 30px rgba(249,115,22,.22);}
.menu__cartbtn:hover{transform:translateY(-1px)}
.menu__cartbtn-icon{display:grid;place-items:center}
.menu__cartbtn-badge{position:absolute;top:-10px;right:-10px;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:12px;font-weight:950;border:2px solid #fff;}
.menu__content{max-width:1180px;margin:0 auto;padding:18px 20px 70px}
.menu__search{display:flex;justify-content:center;padding:16px 0 14px}
.menu-search{position:relative;width:min(720px, 100%)}
.menu-search__icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#9CA3AF}
.menu-search input{width:100%;padding:16px 16px 16px 48px;border-radius:18px;border:2px solid rgba(229,231,235,.95);outline:none;background:#fff;box-shadow:0 10px 24px rgba(17,24,39,.06);font-weight:700;}
.menu-search input:focus{border-color:rgba(249,115,22,.55);box-shadow:0 0 0 5px rgba(249,115,22,.14)}
.menu__cats{display:flex;gap:10px;overflow:auto;padding:12px 0 18px;scrollbar-width:none}
.menu__cats::-webkit-scrollbar{display:none}
.menu-cat{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:14px;border:1px solid rgba(229,231,235,.95);background:#fff;color:#374151;font-weight:900;cursor:pointer;box-shadow:0 10px 22px rgba(17,24,39,.06);}
.menu-cat:hover{transform:translateY(-1px)}
.menu-cat.is-active{border:0;color:#fff;background:linear-gradient(90deg, #F97316 0%, #DC2626 100%);box-shadow:0 18px 30px rgba(249,115,22,.22);}
.menu-cat__icon{width:18px;height:18px;display:grid;place-items:center}
.menu__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-bottom:10px}

/* Dish card */
.dish{background:#fff;border:1px solid rgba(229,231,235,.95);border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(17,24,39,.06);transition:transform .2s ease, box-shadow .2s ease;cursor:pointer;position:relative;}
.dish:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(17,24,39,.10)}
.dish__media{position:relative;height:190px;overflow:hidden}
.dish__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.dish:hover .dish__media img{transform:scale(1.06)}
.dish__popular{position:absolute;top:12px;right:12px;padding:7px 12px;border-radius:999px;font-weight:950;font-size:12px;color:#fff;background:linear-gradient(90deg, #FBBF24 0%, #F97316 100%);box-shadow:0 16px 24px rgba(251,191,36,.25);}
.dish__body{padding:16px}
.dish__name{font-size:18px;font-weight:950;letter-spacing:-.02em;margin:0 0 8px}
.dish__desc{color:#6B7280;font-size:13px;line-height:1.45;margin:0 0 14px;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dish__footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dish__price{font-size:22px;font-weight:950;color:#F97316;letter-spacing:-.02em}

/* ── 3D CAMERA BUTTON on dish card ── */
.dish__btn3d{
  position:absolute;
  bottom:12px;right:12px;
  width:46px;height:46px;
  border-radius:14px;
  border:1.5px solid rgba(255,255,255,.28);
  background:rgba(8,8,8,.55);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:#fff;
  cursor:pointer;
  display:grid;place-items:center;
  transition:all .22s ease;
  z-index:5;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
}
.dish__btn3d:hover{
  background:linear-gradient(135deg,#F97316,#DC2626);
  border-color:transparent;
  transform:scale(1.13);
  box-shadow:0 14px 32px rgba(249,115,22,.45);
}
.dish__btn3d svg{transition:transform .22s ease}
.dish__btn3d:hover svg{transform:rotate(12deg) scale(1.08)}
/* Tooltip */
.dish__btn3d::after{
  content:"Vue 3D";
  position:absolute;
  bottom:calc(100% + 8px);right:0;
  background:rgba(0,0,0,.85);color:#fff;
  font-size:11px;font-weight:700;
  padding:4px 9px;border-radius:8px;
  white-space:nowrap;
  opacity:0;pointer-events:none;
  transform:translateY(4px);
  transition:all .18s ease;
  font-family:Inter,sans-serif;
}
.dish__btn3d:hover::after{opacity:1;transform:translateY(0)}

/* Dish add modal */
.menu-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center}
.menu-modal[hidden]{display:none}
.menu-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(6px)}
.menu-modal__panel{position:relative;width:min(520px, calc(100% - 24px));background:#fff;border-radius:26px;box-shadow:0 40px 80px rgba(0,0,0,.25);overflow:hidden;max-height:calc(100vh - 24px);display:flex;flex-direction:column}
.menu-modal__title{margin:0;font-size:18px;font-weight:950;letter-spacing:-.02em}
.menu-modal__body{padding:18px;overflow:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}
.menu-modal__label{display:block;font-weight:950;font-size:13px;margin-bottom:8px}
.menu-modal__textarea{width:100%;padding:12px;border-radius:16px;border:2px solid rgba(229,231,235,.95);outline:none;resize:none;font-weight:700;}
.menu-modal__textarea:focus{border-color:rgba(249,115,22,.55);box-shadow:0 0 0 5px rgba(249,115,22,.14)}
.menu-modal__confirm{margin-top:14px;width:100%;padding:14px 16px;border-radius:16px;border:0;cursor:pointer;color:#fff;font-weight:950;font-size:16px;background:linear-gradient(90deg, #F97316 0%, #DC2626 100%);box-shadow:0 20px 34px rgba(249,115,22,.20)}

.menu-alert{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:18px;color:#fff;background:linear-gradient(90deg, #F87171 0%, #EF4444 100%);box-shadow:0 20px 34px rgba(239,68,68,.22);margin:0 0 10px}
.menu-alert[hidden]{display:none}
.menu-alert__icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.22);flex:0 0 auto}
.menu-alert__content{flex:1;min-width:0}
.menu-alert__title{font-weight:950;letter-spacing:-.01em;margin-bottom:2px}
.menu-alert__text{font-weight:800;font-size:13px;line-height:1.25;opacity:.95}
.menu-alert__close{width:40px;height:40px;border-radius:14px;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.22);color:#fff;flex:0 0 auto}
.menu-alert__close:hover{background:rgba(255,255,255,.24)}

.menu-sheet__media{position:relative;overflow:hidden;height:320px;background:#F3F4F6;margin:-18px -18px 14px}
.menu-sheet__img{width:100%;height:100%;object-fit:cover;display:block}
.menu-sheet__btn{appearance:none;-webkit-appearance:none;position:absolute;top:14px;left:14px;width:46px;height:46px;border-radius:999px;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(17,24,39,.32);color:#fff;backdrop-filter:blur(8px);z-index:2}
.menu-sheet__btn:hover{background:rgba(17,24,39,.38)}
.menu-sheet__btn--fav{left:auto;right:14px}
.menu-sheet__info{padding:2px 2px 12px}
.menu-sheet__brand{color:#F97316;font-weight:900;font-size:13px;margin-bottom:6px}
.menu-sheet__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.menu-sheet__name{font-size:22px;font-weight:950;letter-spacing:-.03em;line-height:1.1}
.menu-sheet__rating{display:inline-flex;align-items:center;gap:6px;font-weight:950;color:#111827;background:rgba(17,24,39,.04);border:1px solid rgba(229,231,235,.95);padding:8px 10px;border-radius:999px;flex:0 0 auto}
.menu-sheet__star{color:#F59E0B}
.menu-sheet__price{font-size:20px;font-weight:950;margin-top:8px;color:#111827}
.menu-sheet__desc{margin-top:8px;color:var(--muted);font-weight:700;font-size:13px;line-height:1.45}

.menu-config__groups{display:flex;flex-direction:column;gap:12px;margin:14px 0}
.menu-group{border:1px solid rgba(229,231,235,.95);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 10px 22px rgba(17,24,39,.05)}
.menu-group__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 10px}
.menu-group__title{font-weight:950;letter-spacing:-.01em}
.menu-group__meta{display:inline-flex;align-items:center;gap:8px}
.menu-group__badge{font-size:12px;font-weight:950;color:#6B7280;background:rgba(107,114,128,.10);border:1px solid rgba(107,114,128,.18);padding:6px 10px;border-radius:999px}
.menu-group__hint{padding:0 14px 12px;color:#9CA3AF;font-weight:800;font-size:12px}
.menu-group__list{padding:0 8px 10px;display:flex;flex-direction:column;gap:6px}
.menu-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:14px;background:#fff}
.menu-opt.is-selected{background:rgba(249,115,22,.08)}
.menu-opt__left{min-width:0}
.menu-opt__name{font-weight:950}
.menu-opt__price{font-weight:900;color:#6B7280;font-size:12px;margin-top:2px}
.menu-opt__btn{width:34px;height:34px;border-radius:999px;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(249,115,22,.14);color:#F97316}
.menu-opt__btn:hover{background:rgba(249,115,22,.20)}
.menu-opt__btn.is-on{background:linear-gradient(90deg, #F97316 0%, #DC2626 100%);color:#fff}
.menu-config__footer{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:14px;position:sticky;bottom:0;background:#fff;padding:12px 0 0;border-top:1px solid rgba(229,231,235,.95)}
.menu-config__actions{display:flex;align-items:center;gap:12px}
.menu-config__qty{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid rgba(229,231,235,.95);border-radius:999px;padding:6px;box-shadow:0 10px 20px rgba(17,24,39,.05)}
.menu-config__qtybtn{width:36px;height:36px;border-radius:999px;border:0;background:rgba(17,24,39,.04);cursor:pointer;display:grid;place-items:center}
.menu-config__qtybtn:hover{background:rgba(17,24,39,.07)}
.menu-config__qtyval{width:26px;text-align:center;font-weight:950}
.menu-config__footer .menu-modal__confirm{margin-top:0;flex:1}

/* Cart panel */
.menu-cart{position:fixed;inset:0;z-index:85}
.menu-cart[hidden]{display:none}
.menu-cart__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(6px)}
.menu-cart__panel{position:absolute;top:0;right:0;height:100%;width:min(420px, calc(100% - 34px));background:#fff;box-shadow:0 40px 80px rgba(0,0,0,.25);display:flex;flex-direction:column}
.menu-cart__header{padding:18px;border-bottom:1px solid rgba(229,231,235,.95);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.menu-cart__title{font-size:20px;font-weight:950;letter-spacing:-.02em}
.menu-cart__subtitle{color:var(--muted);font-weight:800;font-size:13px;margin-top:4px}
.menu-cart__close{width:42px;height:42px;border-radius:14px;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}
.menu-cart__close:hover{background:rgba(17,24,39,.05)}
.menu-cart__body{flex:1;overflow:auto;padding:18px}
.menu-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:10px}
.menu-empty__icon{width:84px;height:84px;border-radius:999px;background:rgba(17,24,39,.06);display:grid;place-items:center;color:#9CA3AF}
.menu-empty__title{font-weight:950;color:#374151}
.menu-empty__sub{font-weight:700;font-size:13px}
.menu-cart-item{background:#F9FAFB;border:1px solid rgba(229,231,235,.95);border-radius:18px;padding:14px;margin-bottom:12px}
.menu-cart-item__top{display:flex;gap:12px;margin-bottom:10px}
.menu-cart-item__img{width:78px;height:78px;border-radius:14px;object-fit:cover}
.menu-cart-item__name{font-weight:950;margin-bottom:6px}
.menu-cart-item__price{font-weight:950;color:#F97316}
.menu-cart-item__rm{margin-left:auto;width:34px;height:34px;border-radius:12px;border:0;background:transparent;cursor:pointer;color:#DC2626}
.menu-cart-item__rm:hover{background:rgba(220,38,38,.08)}
.menu-note{background:rgba(59,130,246,.10);border:1px solid rgba(59,130,246,.20);padding:10px 12px;border-radius:14px;color:#1E3A8A;font-weight:800;font-size:12px;margin-bottom:10px}
.menu-cart-item__bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}
.menu-qty{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid rgba(229,231,235,.95);border-radius:14px;padding:6px}
.menu-qty__btn{width:34px;height:34px;border-radius:12px;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}
.menu-qty__btn:hover{background:rgba(17,24,39,.05)}
.menu-qty__val{width:30px;text-align:center;font-weight:950}
.menu-line{font-weight:950;color:#111827}
.menu-cart__footer{padding:18px;border-top:1px solid rgba(229,231,235,.95);background:#F9FAFB}
.menu-cart__totals{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.menu-cart__row{display:flex;align-items:center;justify-content:space-between;color:#374151;font-weight:800}
.menu-cart__sep{height:1px;background:rgba(209,213,219,.9);margin:10px 0}
.menu-cart__row--total{font-size:16px;font-weight:950;color:#111827}
.menu-cart__order{width:100%;padding:14px 16px;border-radius:16px;border:0;cursor:pointer;color:#fff;font-weight:950;font-size:16px;background:linear-gradient(90deg, #F97316 0%, #DC2626 100%);box-shadow:0 20px 34px rgba(249,115,22,.20)}

/* Intro page */
.page#page-intro{position:relative;min-height:100vh;padding:0;margin:0;background:#000;overflow:hidden}
.intro{position:relative;min-height:100vh;background:#000;overflow:hidden;display:flex;align-items:center;justify-content:center}
.intro__bg{position:absolute;inset:0;opacity:.2;overflow:hidden}
.intro__particles{position:absolute;inset:0;overflow:hidden}
.intro__particle{position:absolute;border-radius:999px;background:linear-gradient(90deg,#F97316,#DC2626);filter:blur(60px)}
.intro__content{position:relative;z-index:2;min-height:100vh;width:100%;max-width:100vw;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:54px 16px 34px;text-align:center;overflow:hidden}
.intro__logo{margin-bottom:32px;position:relative;transition:all 1000ms ease;opacity:0;transform:scale(.5)}
.intro.is-visible .intro__logo{opacity:1;transform:scale(1)}
.intro__rings{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.intro__ring{position:absolute;border-radius:999px;border:4px solid rgba(249,115,22,.3)}
.intro__ring--ping{width:128px;height:128px;animation:intro-ping 1.5s ease-out infinite}
.intro__ring--pulse{width:160px;height:160px;border-color:rgba(220,38,38,.2);animation:intro-pulse 2.2s ease-in-out infinite}
.intro__mark{position:relative;width:96px;height:96px;border-radius:999px;background:linear-gradient(135deg,#F97316,#DC2626);color:#fff;display:grid;place-items:center;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.intro__title{margin-bottom:24px}
.intro__word{display:flex;justify-content:center;gap:4px;line-height:1}
.intro__word--food .intro__letter{font-size:56px;font-weight:950;color:#fff;text-shadow:0 0 30px rgba(249,115,22,.5)}
.intro__word--menu .intro__letter{font-size:64px;font-weight:950;background:linear-gradient(90deg,#F97316,#DC2626,#F97316);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:intro-gradient 3s linear infinite}
.intro__letter{display:inline-block;transition:all 700ms ease;opacity:0;transform:translateY(10px)}
.intro.is-visible .intro__letter{opacity:1;transform:translateY(0)}
.intro__word--food .intro__letter:nth-child(1){transition-delay:0ms}
.intro__word--food .intro__letter:nth-child(2){transition-delay:100ms}
.intro__word--food .intro__letter:nth-child(3){transition-delay:200ms}
.intro__word--food .intro__letter:nth-child(4){transition-delay:300ms}
.intro__word--menu .intro__letter:nth-child(1){transition-delay:400ms}
.intro__word--menu .intro__letter:nth-child(2){transition-delay:500ms}
.intro__word--menu .intro__letter:nth-child(3){transition-delay:600ms}
.intro__word--menu .intro__letter:nth-child(4){transition-delay:700ms}
.intro__subtitle{margin-bottom:48px;transition:all 1000ms ease;opacity:0;transform:translateY(10px)}
.intro.is-visible .intro__subtitle{opacity:1;transform:translateY(0);transition-delay:1000ms}
.intro__sub1{font-size:18px;color:#D1D5DB;font-weight:300;letter-spacing:.08em}
.intro__sub2{margin-top:8px;display:flex;align-items:center;justify-content:center;gap:10px;color:#F97316;font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.intro__spark{display:inline-block;animation:intro-spark 1.4s ease-in-out infinite}
.intro__spark:nth-child(3){animation-delay:.2s}
.intro__orbit{position:relative;width:360px;height:360px;margin:22px 0 18px}
.intro__orbit::before{content:"";position:absolute;left:34px;top:56px;width:190px;height:190px;border-radius:999px;border:2px dashed rgba(249,115,22,.55);border-right-color:transparent;border-bottom-color:transparent;transform:rotate(-10deg);opacity:.9;animation:intro-arc-spin 10s linear infinite}
.intro__orbit-ring{position:absolute;top:50%;left:50%;width:128px;height:128px;border-radius:999px;border:2px dashed rgba(249,115,22,.5);transform:translate(-50%,-50%);animation:intro-ring-spin 8s linear infinite}
.intro__orbit-items{position:absolute;inset:0}
.intro__orbit-item{position:absolute;width:96px;height:96px;border-radius:999px;overflow:hidden;border:4px solid #F97316;box-shadow:0 30px 60px rgba(0,0,0,.55);transition:opacity 1000ms ease, transform 1000ms ease;opacity:0;transform:translate(-50%,-50%) scale(0)}
.intro.is-visible .intro__orbit-item{opacity:1;transform:translate(-50%,-50%) scale(1);animation:intro-item-spin 12s linear infinite}
.intro__orbit-img{width:100%;height:100%;object-fit:cover;display:block}
.intro__enter{position:relative;margin-top:18px;display:inline-flex;align-items:center;gap:12px;padding:18px 40px;border-radius:999px;border:0;cursor:pointer;font-weight:950;font-size:18px;color:#fff;background:linear-gradient(90deg,#F97316,#DC2626);box-shadow:0 30px 70px rgba(0,0,0,.55);transition:transform 300ms ease, box-shadow 300ms ease;animation:intro-bounce 2s infinite;z-index:5}
.intro__enter:hover{transform:scale(1.06);box-shadow:0 30px 70px rgba(249,115,22,.35)}
.intro__enter-arrow{display:inline-block;transition:transform 300ms ease}
.intro__enter:hover .intro__enter-arrow{transform:translateX(6px)}
.intro__enter-shine{pointer-events:none;position:absolute;inset:0;border-radius:999px;background:linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);transform:translateX(-100%);transition:transform 1000ms ease}
.intro__enter:hover .intro__enter-shine{transform:translateX(100%)}
.intro__bottom{position:relative;margin-top:16px;transition:opacity 1000ms ease;opacity:0;z-index:5}
.intro.is-visible .intro__bottom{opacity:1;transition-delay:1500ms}
.intro__bottom-text{font-size:12px;color:#6B7280;letter-spacing:.18em;text-transform:uppercase}
.intro.is-exiting{opacity:0;transform:scale(.98);transition:opacity 500ms ease, transform 500ms ease}

/* ════════════════════════════════════════
   RESPONSIVE — MOBILE FIRST
════════════════════════════════════════ */
@media (min-width: 940px){.user__meta{display:block}}

/* Tablette */
@media (max-width: 1000px){
  .nav{display:none}
  .grid--stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero{grid-template-columns:1fr}
  .hero__illustration{display:none}
  .menu__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid--products{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Mobile <= 640px */
@media (max-width: 640px){
  .main{padding:12px 0 60px}
  .container{padding:0 12px}
  .topbar__inner{padding:10px 12px;gap:8px}
  .brand{padding:6px 8px;gap:8px}
  .brand__mark{width:30px;height:30px}
  .brand__name{font-size:14px}
  .brand__sub{display:none}
  .topbar__actions{gap:8px}
  .icon-btn{width:34px;height:34px;border-radius:11px}
  .avatar{width:34px;height:34px;border-radius:11px}
  .page__header{flex-direction:column;gap:8px;margin:0 0 12px}
  .page__title{font-size:21px}
  .page__subtitle{font-size:13px;margin-top:3px}
  .pill{font-size:12px;padding:7px 10px}
  .hero{margin:8px 0 12px}
  .hero__content{padding:14px}
  .hero__title{font-size:19px;margin:8px 0 6px}
  .hero__text{font-size:13px;line-height:1.45}
  .hero__badge{font-size:12px;padding:6px 8px}
  .hero__actions .btn{padding:9px 13px;font-size:13px}
  .grid--stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0 12px}
  .stat{padding:12px 10px}
  .stat__label{font-size:11px}
  .stat__value{font-size:21px;margin-top:6px}
  .stat__icon{width:34px;height:34px;border-radius:12px}
  .grid{gap:10px}
  .grid--two{grid-template-columns:1fr}
  .grid--order{grid-template-columns:1fr}
  .grid--products{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .product__media{height:88px}
  .product__img{width:44px;height:44px;border-radius:12px}
  .product__body{padding:9px}
  .product__name{font-size:12px;line-height:1.3}
  .product__meta{font-size:10px;margin-top:3px}
  .product__bottom{margin-top:7px;flex-direction:column;align-items:flex-start;gap:6px}
  .product__qty{font-size:12px}
  .product__bottom .btn{width:100%;padding:7px;font-size:11px;justify-content:center}
  .card{padding:12px;border-radius:13px}
  .card__header{margin-bottom:9px}
  .card__title{font-size:13px}
  .row{padding:9px}
  .row__title{font-size:13px}
  .row__sub{font-size:11px}
  .toolbar{flex-direction:column;align-items:stretch;gap:8px}
  .toolbar .input,.toolbar .select,.toolbar .btn{width:100%}
  .input input{width:100%}
  .select select{width:100%;padding:10px 12px}
  .toolbar .btn{justify-content:center}
  .table thead th{font-size:10px;padding:0 7px 5px}
  .table tbody td{padding:9px 7px;font-size:12px}
  .label{font-size:12px}
  .text{padding:10px 12px;font-size:14px}
  .form__actions .btn{flex:1;justify-content:center}
  .cart{min-height:60px}
  .cart-item{padding:9px;border-radius:11px}
  .cart-item__title{font-size:13px}
  .cart-item__sub{font-size:11px}
  .small-btn{width:30px;height:30px;border-radius:9px}
  .kv__row{padding:9px}
  .kv__k{font-size:12px}
  .kv__v{font-size:13px}
  .pref__row{padding:9px;gap:8px}
  .pref__title{font-size:13px}
  .profile-illu{display:none}
  /* Menu header */
  .menu__header-inner{padding:10px 12px;gap:8px}
  .menu__logo{width:36px;height:36px;border-radius:10px}
  .menu__name{font-size:15px}
  .menu__tagline{font-size:10px}
  .menu__header-actions{gap:7px}
  .menu__cartbtn{padding:9px 11px;border-radius:11px;font-size:12px}
  .menu__cartbtn-text{display:none}
  .menu__trackbtn{padding:9px 11px;border-radius:11px;font-size:12px}
  .menu__trackbtn-text{display:none}
  .menu__content{padding:8px 12px 50px}
  .menu__search{padding:8px 0 6px}
  .menu-search input{padding:11px 12px 11px 38px;font-size:13px;border-radius:13px}
  .menu__cats{gap:6px;padding:6px 0 10px}
  .menu-cat{padding:8px 12px;border-radius:11px;font-size:12px;gap:6px}
  .menu-cat__icon{width:15px;height:15px}
  /* Menu grid : 2 colonnes */
  .menu__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .dish{border-radius:13px}
  .dish__media{height:118px}
  .dish__popular{font-size:10px;padding:4px 8px;top:7px;right:46px}
  .dish__body{padding:9px}
  .dish__name{font-size:13px;margin-bottom:4px}
  .dish__desc{font-size:11px;margin-bottom:8px;-webkit-line-clamp:2}
  .dish__price{font-size:16px}
  .dish__footer{flex-direction:row;align-items:center;justify-content:space-between;gap:4px}
  .dish__btn3d{width:34px;height:34px;border-radius:10px;bottom:7px;right:7px}
  .dish__btn3d::after{display:none}
  .dish__btn3d svg{width:16px;height:16px}
  /* Menu add modal */
  .menu-modal{place-items:end center}
  .menu-modal__panel{width:100%;max-height:92vh;border-bottom-left-radius:0;border-bottom-right-radius:0}
  .menu-modal__body{padding:12px}
  .menu-sheet__media{height:240px;border-radius:0;margin:-12px -12px 10px}
  .menu-sheet__btn{top:10px;left:10px;width:38px;height:38px}
  .menu-sheet__btn--fav{left:auto;right:10px}
  .menu-sheet__name{font-size:17px}
  .menu-sheet__price{font-size:16px}
  .menu-sheet__desc{font-size:12px}
  .menu-group__head{padding:10px 10px 7px}
  .menu-group__title{font-size:13px}
  .menu-group__badge{font-size:11px;padding:5px 8px}
  .menu-group__hint{padding:0 10px 9px;font-size:11px}
  .menu-group__list{padding:0 5px 9px;gap:5px}
  .menu-opt{padding:9px}
  .menu-opt__name{font-size:12px}
  .menu-opt__price{font-size:11px}
  .menu-opt__btn{width:36px;height:36px}
  .menu-config__footer{flex-direction:column;gap:7px;padding:9px 0 0}
  .menu-config__qty{justify-content:center}
  .menu-config__footer .menu-modal__confirm{width:100%;font-size:14px;padding:12px}
  .menu-modal__confirm{font-size:14px;padding:12px}
  .menu-cart__panel{width:100%}
  .menu-cart__header{padding:12px}
  .menu-cart__title{font-size:16px}
  .menu-cart__body{padding:10px}
  .menu-cart-item{padding:9px;border-radius:12px;margin-bottom:9px}
  .menu-cart-item__top{gap:9px;margin-bottom:8px}
  .menu-cart-item__img{width:56px;height:56px;border-radius:10px}
  .menu-cart-item__name{font-size:12px}
  .menu-cart-item__price{font-size:12px}
  .menu-cart__footer{padding:10px}
  .menu-cart__row{font-size:13px}
  .menu-cart__row--total{font-size:14px}
  .menu-cart__order{padding:12px;font-size:14px}
  /* 3D Viewer */
  #viewer3d{align-items:flex-end}
  .v3d-panel{flex-direction:column;width:100%;max-height:93vh;border-bottom-left-radius:0;border-bottom-right-radius:0}
  .v3d-stage{flex:0 0 210px;min-height:210px}
  .v3d-disc{width:185px;height:185px}
  .v3d-badge360{font-size:10px;padding:5px 10px}
  .v3d-zbtn{width:32px;height:32px;font-size:18px}
  .v3d-hint{font-size:10px;padding:5px 12px}
  .v3d-info{padding:12px 12px 16px}
  .v3d-info-brand{font-size:9px;margin-bottom:7px}
  .v3d-info-name{font-size:17px;margin-bottom:8px}
  .v3d-info-stars{padding:5px 10px;font-size:12px}
  .v3d-info-badge{font-size:10px;padding:5px 10px}
  .v3d-info-price{font-size:26px;margin-bottom:10px}
  .v3d-info-desc{font-size:12px;margin-bottom:14px;-webkit-line-clamp:2}
  .v3d-section-title{font-size:9px;margin-bottom:7px}
  .v3d-tags{gap:5px;margin-bottom:12px}
  .v3d-tag{font-size:11px;padding:4px 9px}
  .v3d-nutrition{gap:5px;margin-bottom:14px}
  .v3d-nut{padding:8px 3px}
  .v3d-nut-val{font-size:13px}
  .v3d-nut-lbl{font-size:8px}
  .v3d-close{width:34px;height:34px;border-radius:10px;top:10px;right:10px}
  .v3d-divider{margin-bottom:12px}
  .v3d-actions{gap:6px}
  .v3d-act{padding:11px 8px;font-size:12px;border-radius:11px}
  /* Order Tracker */
  #orderTracker{align-items:flex-end}
  .ot-panel{border-radius:20px 20px 0 0;width:100%;max-height:90vh}
  .ot-header{padding:14px 14px 11px}
  .ot-header__title{font-size:14px}
  .ot-header__id{font-size:11px}
  .ot-pulse{width:10px;height:10px;flex:0 0 10px}
  .ot-live{padding:12px 14px 9px}
  .ot-live__label{font-size:9px}
  .ot-live__status{font-size:17px}
  .ot-live__time{font-size:12px}
  .ot-progress{padding:9px 14px 10px}
  .ot-steps{padding:0 14px 10px;gap:5px}
  .ot-step{padding:8px 10px;border-radius:10px;gap:8px}
  .ot-step__icon{width:28px;height:28px;border-radius:7px;font-size:13px;flex:0 0 28px}
  .ot-step__label{font-size:12px}
  .ot-step__badge{font-size:9px;padding:3px 7px}
  .ot-section-title{padding:0 14px 7px;font-size:9px}
  .ot-items{padding:0 14px 10px;gap:6px}
  .ot-item{padding:8px;border-radius:10px;gap:8px}
  .ot-item__img{width:38px;height:38px;border-radius:7px;flex:0 0 38px}
  .ot-item__name{font-size:12px}
  .ot-item__qty{font-size:11px}
  .ot-item__price{font-size:12px}
  .ot-footer{padding:9px 14px 14px}
  .ot-footer__row{font-size:13px;margin-bottom:10px}
  .ot-footer__row strong{font-size:15px}
  .ot-cta{padding:11px;font-size:13px;border-radius:11px}
  /* Order Lookup */
  #orderLookup{align-items:flex-end}
  .olookup-panel{border-radius:20px 20px 0 0;width:100%}
  .olookup-header{padding:14px 14px 11px}
  .olookup-header__icon{width:36px;height:36px;border-radius:10px;flex:0 0 36px}
  .olookup-header__title{font-size:14px}
  .olookup-header__sub{font-size:11px}
  .olookup-body{padding:14px}
  .olookup-input{padding:12px 14px;font-size:15px;border-radius:12px}
  .olookup-submit{width:46px;height:46px;border-radius:12px}
  .olookup-hint{font-size:11px}
  /* Intro */
  .intro__word--food .intro__letter{font-size:44px}
  .intro__word--menu .intro__letter{font-size:52px}
  .intro__content{padding:36px 14px 26px}
  .intro__mark{width:78px;height:78px}
  .intro__orbit{width:280px;height:280px}
  .intro__enter{width:calc(100% - 20px);justify-content:center;font-size:15px;padding:14px 20px}
}

/* Tres petits telephones < 380px */
@media (max-width:380px){
  .menu__grid{gap:7px}
  .dish__media{height:100px}
  .dish__name{font-size:12px}
  .dish__price{font-size:14px}
  .dish__body{padding:7px}
  .dish__btn3d{width:30px;height:30px;bottom:5px;right:5px}
  .grid--products{gap:7px}
  .product__media{height:76px}
  .product__name{font-size:11px}
  .grid--stats{gap:7px}
  .stat__value{font-size:19px}
  .v3d-disc{width:168px;height:168px}
  .v3d-stage{flex:0 0 195px;min-height:195px}
}
@keyframes intro-float{0%,100%{transform:translateY(0) translateX(0)}25%{transform:translateY(-20px) translateX(10px)}50%{transform:translateY(-40px) translateX(-10px)}75%{transform:translateY(-20px) translateX(15px)}}
@keyframes intro-gradient{0%{background-position:0% center}100%{background-position:200% center}}
@keyframes intro-item-spin{from{transform:translate(-50%,-50%) scale(1) rotate(0deg)}to{transform:translate(-50%,-50%) scale(1) rotate(360deg)}}
@keyframes intro-ring-spin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes intro-arc-spin{from{transform:rotate(-10deg)}to{transform:rotate(350deg)}}
@keyframes intro-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes intro-ping{0%{transform:scale(1);opacity:.8}80%,100%{transform:scale(1.25);opacity:0}}
@keyframes intro-pulse{0%,100%{opacity:.35}50%{opacity:.7}}
@keyframes intro-spark{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}


/* ════════════════════════════════════════
   3D DISH VIEWER STYLES
════════════════════════════════════════ */
#viewer3d{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
#viewer3d[hidden]{display:none}

/* Blurred background = dish image */
.v3d-bg-img{
  position:absolute;inset:0;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  filter:blur(32px) brightness(.32) saturate(1.4);
  transform:scale(1.1);
  transition:background-image .35s ease;
}
.v3d-bg-dim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.48) 0%,rgba(0,0,0,.18) 50%,rgba(0,0,0,.58) 100%);
}

/* Bokeh particles */
.v3d-bokeh{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.v3d-bk{position:absolute;border-radius:50%;filter:blur(20px);animation:v3d-bk-float linear infinite;opacity:0}
@keyframes v3d-bk-float{0%{opacity:0;transform:translateY(0) scale(1)}15%{opacity:1}85%{opacity:.55}100%{opacity:0;transform:translateY(-90px) scale(1.35)}}

/* Panel */
.v3d-panel{
  position:relative;
  width:min(900px,calc(100vw - 16px));
  max-height:calc(100vh - 16px);
  display:flex;
  background:rgba(10,10,10,.75);
  border:1px solid rgba(255,255,255,.10);
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 60px 120px rgba(0,0,0,.80),0 0 0 1px rgba(249,115,22,.07),inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(2px);
  animation:v3d-pop .42s cubic-bezier(.22,1,.36,1);
}
@keyframes v3d-pop{from{opacity:0;transform:scale(.91) translateY(28px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* Close */
.v3d-close{
  position:absolute;top:14px;right:14px;
  width:40px;height:40px;border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.50);backdrop-filter:blur(10px);
  color:rgba(255,255,255,.75);cursor:pointer;display:grid;place-items:center;z-index:30;
  transition:all .18s ease;
}
.v3d-close:hover{background:rgba(220,38,38,.35);border-color:rgba(220,38,38,.5);color:#fff}

/* Stage (left) */
.v3d-stage{
  flex:0 0 54%;position:relative;overflow:hidden;
  min-height:440px;cursor:grab;background:transparent;
  user-select:none;-webkit-user-select:none;
}
.v3d-stage:active{cursor:grabbing}
.v3d-stage-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(44px) brightness(.22) saturate(1.6);transform:scale(1.18);transition:background-image .4s}
.v3d-vignette{position:absolute;inset:0;background:radial-gradient(ellipse 80% 75% at 50% 42%,transparent 18%,rgba(0,0,0,.78) 100%);pointer-events:none;z-index:3}
.v3d-spotlight{position:absolute;top:-50px;left:50%;transform:translateX(-50%);width:240px;height:240px;background:radial-gradient(circle,rgba(249,115,22,.09) 0%,transparent 70%);pointer-events:none;z-index:2;animation:v3d-spot 3.8s ease-in-out infinite}
@keyframes v3d-spot{0%,100%{opacity:.7;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.18)}}
.v3d-plate-shadow{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);width:260px;height:38px;background:radial-gradient(ellipse,rgba(0,0,0,.72) 0%,transparent 70%);filter:blur(12px);pointer-events:none;z-index:1;transition:transform .08s}

/* Badge 360 */
.v3d-badge360{
  position:absolute;top:14px;left:14px;z-index:10;
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(0,0,0,.62);backdrop-filter:blur(10px);
  border:1.5px solid rgba(249,115,22,.55);border-radius:999px;
  padding:6px 13px;font-size:11px;font-weight:700;color:#F97316;
  letter-spacing:.08em;font-family:'Outfit',Inter,sans-serif;
  animation:v3d-glow 2.2s ease-in-out infinite;
}
@keyframes v3d-glow{0%,100%{box-shadow:0 0 0 0 rgba(249,115,22,.5)}50%{box-shadow:0 0 0 7px rgba(249,115,22,0)}}

/* Disc 3D */
.v3d-perspective{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:4;perspective:1000px;perspective-origin:50% 42%}
.v3d-disc{
  width:310px;height:310px;border-radius:50%;overflow:hidden;
  transform-style:preserve-3d;will-change:transform;
  box-shadow:0 50px 90px rgba(0,0,0,.82),0 0 0 5px rgba(255,255,255,.06),0 0 0 10px rgba(255,255,255,.03),0 0 90px rgba(249,115,22,.09);
  animation:v3d-idle 5s ease-in-out infinite;cursor:inherit;
}
@keyframes v3d-idle{
  0%,100%{transform:rotateX(10deg) rotateY(0deg) translateY(0)}
  25%{transform:rotateX(7deg) rotateY(4deg) translateY(-7px)}
  50%{transform:rotateX(10deg) rotateY(0deg) translateY(-12px)}
  75%{transform:rotateX(7deg) rotateY(-4deg) translateY(-7px)}
}
.v3d-disc.v3d-dragging{animation:none}
.v3d-disc img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;border-radius:50%}
.v3d-disc-rim{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:5;transition:background .1s}
.v3d-disc-ring{position:absolute;inset:-3px;border-radius:50%;border:3px solid transparent;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 45%,rgba(249,115,22,.12)) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;pointer-events:none;z-index:6}
.v3d-disc-flare{position:absolute;top:18%;left:26%;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),transparent 70%);pointer-events:none;z-index:7;animation:v3d-flare 4s ease-in-out infinite}
@keyframes v3d-flare{0%,100%{opacity:.8;transform:scale(1)}50%{opacity:.25;transform:scale(.55)}}

/* Zoom buttons */
.v3d-zoom-btns{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;gap:6px}
.v3d-zbtn{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.58);backdrop-filter:blur(8px);color:#fff;font-size:20px;font-weight:300;cursor:pointer;display:grid;place-items:center;transition:all .16s ease;font-family:sans-serif;line-height:1}
.v3d-zbtn:hover{background:rgba(249,115,22,.35);border-color:rgba(249,115,22,.6)}

/* Hint */
.v3d-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.58);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.10);border-radius:999px;padding:6px 16px;font-size:11px;font-weight:600;color:rgba(255,255,255,.55);white-space:nowrap;z-index:10;transition:opacity .5s;letter-spacing:.03em;font-family:'Outfit',Inter,sans-serif}
.v3d-hint.v3d-hint-hide{opacity:0}

/* Info panel (right) */
.v3d-info{flex:1;padding:26px 24px 22px;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:none;background:rgba(6,6,6,.48);font-family:'Outfit',Inter,sans-serif}
.v3d-info::-webkit-scrollbar{display:none}

.v3d-info-brand{font-size:10px;font-weight:700;color:#F97316;letter-spacing:.14em;text-transform:uppercase;margin-bottom:9px;display:flex;align-items:center;gap:7px}
.v3d-info-brand::before{content:"";width:16px;height:2px;background:#F97316;border-radius:1px}
.v3d-info-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1.05;margin-bottom:10px;background:linear-gradient(135deg,#fff 42%,rgba(255,255,255,.52));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.02em}
.v3d-info-meta{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.v3d-info-stars{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;color:#fff}
.v3d-stars-y{color:#FBBF24;letter-spacing:.5px}
.v3d-reviews{color:rgba(255,255,255,.4);font-size:11px}
.v3d-info-badge{padding:6px 12px;border-radius:999px;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.25);color:#F97316;font-size:11px;font-weight:700;letter-spacing:.04em}
.v3d-info-price{font-family:'Cormorant Garamond',Georgia,serif;font-size:40px;font-weight:800;color:#F97316;line-height:1;margin-bottom:13px;letter-spacing:-.02em}
.v3d-info-desc{font-size:13px;color:rgba(255,255,255,.55);line-height:1.68;margin-bottom:20px;font-weight:300}
.v3d-section-title{font-size:10px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:.10em;text-transform:uppercase;margin-bottom:9px}
.v3d-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.v3d-tag{padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);font-size:12px;font-weight:500;color:rgba(255,255,255,.7);cursor:default;transition:all .15s ease}
.v3d-tag:hover{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.30);color:#F97316}
.v3d-nutrition{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:22px}
.v3d-nut{text-align:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:13px;padding:10px 4px}
.v3d-nut-val{font-size:16px;font-weight:700;color:#fff;margin-bottom:3px}
.v3d-nut-lbl{font-size:9px;font-weight:600;color:rgba(255,255,255,.4);letter-spacing:.06em;text-transform:uppercase}
.v3d-divider{height:1px;background:rgba(255,255,255,.07);margin-bottom:16px}
.v3d-actions{display:flex;gap:8px;margin-top:auto}
.v3d-act{flex:1;padding:13px 10px;border-radius:13px;border:0;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease;font-family:'Outfit',Inter,sans-serif}
.v3d-act--primary{background:linear-gradient(135deg,#F97316,#DC2626);color:#fff;box-shadow:0 14px 32px rgba(249,115,22,.28)}
.v3d-act--primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(249,115,22,.38)}
.v3d-act--ghost{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);color:rgba(255,255,255,.8)}
.v3d-act--ghost:hover{background:rgba(255,255,255,.10)}

/* Responsive 3D viewer */
@media(max-width:640px){
  .v3d-panel{flex-direction:column;max-height:94vh}
  .v3d-stage{flex:0 0 250px;min-height:250px}
  .v3d-disc{width:210px;height:210px}
  .v3d-info{padding:18px 16px 16px}
  .v3d-info-price{font-size:30px}
  .v3d-info-name{font-size:20px}
  .v3d-nutrition{gap:5px}
  .v3d-nut-val{font-size:14px}
}

/* ════════════════════════════════════════
   ORDER TRACKER STYLES
════════════════════════════════════════ */
#orderTracker{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
}
#orderTracker[hidden]{display:none}

.ot-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.70);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.ot-panel{
  position:relative;
  width:min(480px,calc(100vw - 20px));
  max-height:calc(100vh - 20px);
  overflow-y:auto;
  scrollbar-width:none;
  background:#0e0e0e;
  border:1px solid rgba(255,255,255,.10);
  border-radius:26px;
  box-shadow:0 60px 120px rgba(0,0,0,.80),inset 0 1px 0 rgba(255,255,255,.07);
  animation:ot-pop .38s cubic-bezier(.22,1,.36,1);
}
.ot-panel::-webkit-scrollbar{display:none}
@keyframes ot-pop{from{opacity:0;transform:scale(.92) translateY(22px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* Header */
.ot-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:20px 20px 16px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.ot-header__left{display:flex;align-items:center;gap:12px}
.ot-header__title{font-family:'Outfit',Inter,sans-serif;font-size:16px;font-weight:700;color:#fff}
.ot-header__id{
  font-size:12px;font-weight:700;color:#F97316;
  letter-spacing:.08em;margin-top:2px;
  font-family:'Outfit',Inter,sans-serif;
}

/* Pulsing live dot */
.ot-pulse{
  width:12px;height:12px;border-radius:50%;
  background:#22c55e;flex:0 0 12px;
  box-shadow:0 0 0 0 rgba(34,197,94,.5);
  animation:ot-pulse-ring 1.5s ease-out infinite;
}
@keyframes ot-pulse-ring{
  0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}
  70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}
}

/* Close */
.ot-close{
  width:36px;height:36px;border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.65);cursor:pointer;display:grid;place-items:center;
  transition:all .16s ease;
}
.ot-close:hover{background:rgba(220,38,38,.3);border-color:rgba(220,38,38,.45);color:#fff}

/* Live status */
.ot-live{
  padding:18px 20px 14px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.ot-live__label{font-size:10px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:.10em;text-transform:uppercase;margin-bottom:6px;font-family:'Outfit',Inter,sans-serif}
.ot-live__status{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:700;color:#fff;margin-bottom:6px}
.ot-live__time{font-size:13px;font-weight:600;color:#F97316;font-family:'Outfit',Inter,sans-serif;min-height:20px;transition:color .3s}

/* Progress bar */
.ot-progress{padding:14px 20px 16px}
.ot-progress__track{
  height:6px;border-radius:999px;
  background:rgba(255,255,255,.08);overflow:hidden;
}
.ot-progress__bar{
  height:100%;border-radius:999px;
  background:linear-gradient(90deg,#F97316,#22c55e);
  transition:width .8s ease;
  box-shadow:0 0 10px rgba(249,115,22,.4);
}

/* Steps */
.ot-steps{
  padding:0 20px 16px;
  display:flex;flex-direction:column;gap:6px;
}
.ot-step{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;border-radius:14px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.03);
  transition:all .3s ease;
}
.ot-step--active{
  border-color:rgba(249,115,22,.35);
  background:rgba(249,115,22,.08);
  box-shadow:0 0 20px rgba(249,115,22,.10);
}
.ot-step--done{
  border-color:rgba(34,197,94,.25);
  background:rgba(34,197,94,.06);
}
.ot-step__icon{
  width:34px;height:34px;border-radius:10px;
  display:grid;place-items:center;font-size:16px;flex:0 0 34px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
  transition:all .3s ease;
}
.ot-step--active .ot-step__icon{background:rgba(249,115,22,.20);border-color:rgba(249,115,22,.4)}
.ot-step--done .ot-step__icon{background:rgba(34,197,94,.20);border-color:rgba(34,197,94,.4);color:#22c55e;font-weight:700;font-size:14px}
.ot-step__label{flex:1;font-size:13px;font-weight:600;color:rgba(255,255,255,.6);font-family:'Outfit',Inter,sans-serif}
.ot-step--active .ot-step__label{color:#fff}
.ot-step--done .ot-step__label{color:rgba(255,255,255,.45);text-decoration:line-through}
.ot-step__badge{
  padding:4px 9px;border-radius:999px;
  font-size:10px;font-weight:700;letter-spacing:.04em;
  font-family:'Outfit',Inter,sans-serif;
}
.ot-step--active .ot-step__badge{background:rgba(249,115,22,.20);color:#F97316;border:1px solid rgba(249,115,22,.3)}
.ot-step__badge--done{background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.25)}

/* Section title */
.ot-section-title{
  padding:0 20px 10px;
  font-size:10px;font-weight:700;color:rgba(255,255,255,.4);
  letter-spacing:.10em;text-transform:uppercase;
  font-family:'Outfit',Inter,sans-serif;
}

/* Items */
.ot-items{
  padding:0 20px 16px;
  display:flex;flex-direction:column;gap:8px;
}
.ot-item{
  display:flex;align-items:center;gap:10px;
  padding:10px;border-radius:13px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
}
.ot-item__img{width:46px;height:46px;border-radius:10px;object-fit:cover;flex:0 0 46px}
.ot-item__name{flex:1;font-size:13px;font-weight:600;color:rgba(255,255,255,.85);font-family:'Outfit',Inter,sans-serif}
.ot-item__qty{font-size:12px;font-weight:700;color:rgba(255,255,255,.4);font-family:'Outfit',Inter,sans-serif}
.ot-item__price{font-size:13px;font-weight:700;color:#F97316;font-family:'Outfit',Inter,sans-serif}
.ot-more{font-size:12px;color:rgba(255,255,255,.35);font-weight:600;padding:4px 2px;font-family:'Outfit',Inter,sans-serif}

/* Footer */
.ot-footer{
  padding:14px 20px 20px;
  border-top:1px solid rgba(255,255,255,.07);
}
.ot-footer__row{
  display:flex;align-items:center;justify-content:space-between;
  font-size:14px;font-weight:600;color:rgba(255,255,255,.7);
  margin-bottom:14px;font-family:'Outfit',Inter,sans-serif;
}
.ot-footer__row strong{font-size:18px;font-weight:800;color:#F97316}
.ot-cta{
  width:100%;padding:13px;border-radius:14px;border:0;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.8);font-size:14px;font-weight:700;
  cursor:pointer;transition:all .18s ease;
  font-family:'Outfit',Inter,sans-serif;
}
.ot-cta:hover{background:rgba(255,255,255,.14)}

@media(max-width:480px){
  .ot-panel{border-radius:20px 20px 0 0;width:100%;max-height:90vh}
  #orderTracker{align-items:flex-end}
}

/* ════════════════════════════════════════
   MENU HEADER ACTIONS + TRACK BUTTON
════════════════════════════════════════ */
.menu__header-actions{display:flex;align-items:center;gap:10px}

.menu__trackbtn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 16px;border-radius:14px;border:0;cursor:pointer;
  background:rgba(249,115,22,.12);
  border:1.5px solid rgba(249,115,22,.30);
  color:#F97316;font-weight:700;font-size:13px;
  transition:all .2s ease;
  font-family:'Outfit',Inter,sans-serif;
  white-space:nowrap;
}
.menu__trackbtn:hover{
  background:rgba(249,115,22,.22);
  border-color:rgba(249,115,22,.55);
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(249,115,22,.18);
}
.menu__trackbtn-text{font-family:'Outfit',Inter,sans-serif}

@media(max-width:560px){
  .menu__trackbtn-text{display:none}
  .menu__trackbtn{padding:11px 12px}
}

/* ════════════════════════════════════════
   ORDER LOOKUP MODAL
════════════════════════════════════════ */
#orderLookup{
  position:fixed;inset:0;z-index:290;
  display:flex;align-items:center;justify-content:center;
}
#orderLookup[hidden]{display:none}

.olookup-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.olookup-panel{
  position:relative;
  width:min(420px,calc(100vw - 20px));
  background:#0e0e0e;
  border:1px solid rgba(255,255,255,.10);
  border-radius:24px;
  box-shadow:0 50px 100px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.07);
  overflow:hidden;
  animation:ot-pop .35s cubic-bezier(.22,1,.36,1);
}

.olookup-header{
  display:flex;align-items:center;gap:12px;
  padding:18px 18px 14px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.olookup-header__icon{
  width:40px;height:40px;border-radius:12px;flex:0 0 40px;
  display:grid;place-items:center;
  background:rgba(249,115,22,.15);
  border:1px solid rgba(249,115,22,.30);
  color:#F97316;
}
.olookup-header__title{
  font-size:15px;font-weight:700;color:#fff;
  font-family:'Outfit',Inter,sans-serif;
}
.olookup-header__sub{
  font-size:12px;color:rgba(255,255,255,.4);font-weight:500;margin-top:2px;
  font-family:'Outfit',Inter,sans-serif;
}
.olookup-close{
  margin-left:auto;width:34px;height:34px;border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.55);cursor:pointer;display:grid;place-items:center;
  transition:all .16s ease;flex:0 0 34px;
}
.olookup-close:hover{background:rgba(220,38,38,.28);border-color:rgba(220,38,38,.4);color:#fff}

.olookup-body{padding:18px}

.olookup-label{
  display:block;font-size:11px;font-weight:700;
  color:rgba(255,255,255,.45);letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:10px;
  font-family:'Outfit',Inter,sans-serif;
}

.olookup-input-wrap{
  display:flex;gap:8px;
}
.olookup-input{
  flex:1;padding:13px 16px;
  border-radius:13px;
  border:1.5px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:#fff;font-size:15px;font-weight:700;
  outline:none;letter-spacing:.04em;
  font-family:'Outfit',Inter,sans-serif;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.olookup-input::placeholder{color:rgba(255,255,255,.25);font-weight:400;letter-spacing:0}
.olookup-input:focus{
  border-color:rgba(249,115,22,.55);
  box-shadow:0 0 0 4px rgba(249,115,22,.12);
}
.olookup-input.is-error{
  border-color:rgba(220,38,38,.55);
  box-shadow:0 0 0 4px rgba(220,38,38,.10);
  animation:olookup-shake .35s ease;
}
@keyframes olookup-shake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-6px)}
  40%{transform:translateX(6px)}
  60%{transform:translateX(-4px)}
  80%{transform:translateX(4px)}
}

.olookup-submit{
  width:48px;height:48px;border-radius:13px;border:0;flex:0 0 48px;
  background:linear-gradient(135deg,#F97316,#DC2626);
  color:#fff;cursor:pointer;display:grid;place-items:center;
  transition:all .18s ease;
  box-shadow:0 8px 22px rgba(249,115,22,.28);
}
.olookup-submit:hover{transform:scale(1.06);box-shadow:0 12px 28px rgba(249,115,22,.4)}
.olookup-submit:active{transform:scale(.97)}

.olookup-error{
  margin-top:10px;padding:10px 12px;
  border-radius:11px;
  background:rgba(220,38,38,.12);
  border:1px solid rgba(220,38,38,.25);
  color:#f87171;font-size:12px;font-weight:600;
  font-family:'Outfit',Inter,sans-serif;
  animation:ot-pop .25s ease;
}
.olookup-error[hidden]{display:none}

.olookup-hint{
  margin-top:14px;font-size:12px;color:rgba(255,255,255,.28);
  line-height:1.6;font-family:'Outfit',Inter,sans-serif;
}
.olookup-hint strong{color:rgba(255,255,255,.45)}

/* ════════════════════════════════════════
   RESPONSIVE — MOBILE FIRST
════════════════════════════════════════ */
@media (min-width: 940px){.user__meta{display:block}}

/* Tablette */
@media (max-width: 1000px){
  .nav{display:none}
  .grid--stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero{grid-template-columns:1fr}
  .hero__illustration{display:none}
  .menu__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid--products{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Mobile <= 640px */
@media (max-width: 640px){
  .main{padding:12px 0 60px}
  .container{padding:0 12px}
  .topbar__inner{padding:10px 12px;gap:8px}
  .brand{padding:6px 8px;gap:8px}
  .brand__mark{width:30px;height:30px}
  .brand__name{font-size:14px}
  .brand__sub{display:none}
  .topbar__actions{gap:8px}
  .icon-btn{width:34px;height:34px;border-radius:11px}
  .avatar{width:34px;height:34px;border-radius:11px}
  .page__header{flex-direction:column;gap:8px;margin:0 0 12px}
  .page__title{font-size:21px}
  .page__subtitle{font-size:13px;margin-top:3px}
  .pill{font-size:12px;padding:7px 10px}
  .hero{margin:8px 0 12px}
  .hero__content{padding:14px}
  .hero__title{font-size:19px;margin:8px 0 6px}
  .hero__text{font-size:13px;line-height:1.45}
  .hero__badge{font-size:12px;padding:6px 8px}
  .hero__actions .btn{padding:9px 13px;font-size:13px}
  .grid--stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0 12px}
  .stat{padding:12px 10px}
  .stat__label{font-size:11px}
  .stat__value{font-size:21px;margin-top:6px}
  .stat__icon{width:34px;height:34px;border-radius:12px}
  .grid{gap:10px}
  .grid--two{grid-template-columns:1fr}
  .grid--order{grid-template-columns:1fr}
  .grid--products{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .product__media{height:88px}
  .product__img{width:44px;height:44px;border-radius:12px}
  .product__body{padding:9px}
  .product__name{font-size:12px;line-height:1.3}
  .product__meta{font-size:10px;margin-top:3px}
  .product__bottom{margin-top:7px;flex-direction:column;align-items:flex-start;gap:6px}
  .product__qty{font-size:12px}
  .product__bottom .btn{width:100%;padding:7px;font-size:11px;justify-content:center}
  .card{padding:12px;border-radius:13px}
  .card__header{margin-bottom:9px}
  .card__title{font-size:13px}
  .row{padding:9px}
  .row__title{font-size:13px}
  .row__sub{font-size:11px}
  .toolbar{flex-direction:column;align-items:stretch;gap:8px}
  .toolbar .input,.toolbar .select,.toolbar .btn{width:100%}
  .input input{width:100%}
  .select select{width:100%;padding:10px 12px}
  .toolbar .btn{justify-content:center}
  .table thead th{font-size:10px;padding:0 7px 5px}
  .table tbody td{padding:9px 7px;font-size:12px}
  .label{font-size:12px}
  .text{padding:10px 12px;font-size:14px}
  .form__actions .btn{flex:1;justify-content:center}
  .cart{min-height:60px}
  .cart-item{padding:9px;border-radius:11px}
  .cart-item__title{font-size:13px}
  .cart-item__sub{font-size:11px}
  .small-btn{width:30px;height:30px;border-radius:9px}
  .kv__row{padding:9px}
  .kv__k{font-size:12px}
  .kv__v{font-size:13px}
  .pref__row{padding:9px;gap:8px}
  .pref__title{font-size:13px}
  .profile-illu{display:none}
  /* Menu header */
  .menu__header-inner{padding:10px 12px;gap:8px}
  .menu__logo{width:36px;height:36px;border-radius:10px}
  .menu__name{font-size:15px}
  .menu__tagline{font-size:10px}
  .menu__header-actions{gap:7px}
  .menu__cartbtn{padding:9px 11px;border-radius:11px;font-size:12px}
  .menu__cartbtn-text{display:none}
  .menu__trackbtn{padding:9px 11px;border-radius:11px;font-size:12px}
  .menu__trackbtn-text{display:none}
  .menu__content{padding:8px 12px 50px}
  .menu__search{padding:8px 0 6px}
  .menu-search input{padding:11px 12px 11px 38px;font-size:13px;border-radius:13px}
  .menu__cats{gap:6px;padding:6px 0 10px}
  .menu-cat{padding:8px 12px;border-radius:11px;font-size:12px;gap:6px}
  .menu-cat__icon{width:15px;height:15px}
  /* Menu grid : 2 colonnes */
  .menu__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .dish{border-radius:13px}
  .dish__media{height:118px}
  .dish__popular{font-size:10px;padding:4px 8px;top:7px;right:46px}
  .dish__body{padding:9px}
  .dish__name{font-size:13px;margin-bottom:4px}
  .dish__desc{font-size:11px;margin-bottom:8px;-webkit-line-clamp:2}
  .dish__price{font-size:16px}
  .dish__footer{flex-direction:row;align-items:center;justify-content:space-between;gap:4px}
  .dish__btn3d{width:34px;height:34px;border-radius:10px;bottom:7px;right:7px}
  .dish__btn3d::after{display:none}
  .dish__btn3d svg{width:16px;height:16px}
  /* Menu add modal */
  .menu-modal{place-items:end center}
  .menu-modal__panel{width:100%;max-height:92vh;border-bottom-left-radius:0;border-bottom-right-radius:0}
  .menu-modal__body{padding:12px}
  .menu-sheet__media{height:240px;border-radius:0;margin:-12px -12px 10px}
  .menu-sheet__btn{top:10px;left:10px;width:38px;height:38px}
  .menu-sheet__btn--fav{left:auto;right:10px}
  .menu-sheet__name{font-size:17px}
  .menu-sheet__price{font-size:16px}
  .menu-sheet__desc{font-size:12px}
  .menu-group__head{padding:10px 10px 7px}
  .menu-group__title{font-size:13px}
  .menu-group__badge{font-size:11px;padding:5px 8px}
  .menu-group__hint{padding:0 10px 9px;font-size:11px}
  .menu-group__list{padding:0 5px 9px;gap:5px}
  .menu-opt{padding:9px}
  .menu-opt__name{font-size:12px}
  .menu-opt__price{font-size:11px}
  .menu-opt__btn{width:36px;height:36px}
  .menu-config__footer{flex-direction:column;gap:7px;padding:9px 0 0}
  .menu-config__qty{justify-content:center}
  .menu-config__footer .menu-modal__confirm{width:100%;font-size:14px;padding:12px}
  .menu-modal__confirm{font-size:14px;padding:12px}
  .menu-cart__panel{width:100%}
  .menu-cart__header{padding:12px}
  .menu-cart__title{font-size:16px}
  .menu-cart__body{padding:10px}
  .menu-cart-item{padding:9px;border-radius:12px;margin-bottom:9px}
  .menu-cart-item__top{gap:9px;margin-bottom:8px}
  .menu-cart-item__img{width:56px;height:56px;border-radius:10px}
  .menu-cart-item__name{font-size:12px}
  .menu-cart-item__price{font-size:12px}
  .menu-cart__footer{padding:10px}
  .menu-cart__row{font-size:13px}
  .menu-cart__row--total{font-size:14px}
  .menu-cart__order{padding:12px;font-size:14px}
  /* 3D Viewer */
  #viewer3d{align-items:flex-end}
  .v3d-panel{flex-direction:column;width:100%;max-height:93vh;border-bottom-left-radius:0;border-bottom-right-radius:0}
  .v3d-stage{flex:0 0 210px;min-height:210px}
  .v3d-disc{width:185px;height:185px}
  .v3d-badge360{font-size:10px;padding:5px 10px}
  .v3d-zbtn{width:32px;height:32px;font-size:18px}
  .v3d-hint{font-size:10px;padding:5px 12px}
  .v3d-info{padding:12px 12px 16px}
  .v3d-info-brand{font-size:9px;margin-bottom:7px}
  .v3d-info-name{font-size:17px;margin-bottom:8px}
  .v3d-info-stars{padding:5px 10px;font-size:12px}
  .v3d-info-badge{font-size:10px;padding:5px 10px}
  .v3d-info-price{font-size:26px;margin-bottom:10px}
  .v3d-info-desc{font-size:12px;margin-bottom:14px;-webkit-line-clamp:2}
  .v3d-section-title{font-size:9px;margin-bottom:7px}
  .v3d-tags{gap:5px;margin-bottom:12px}
  .v3d-tag{font-size:11px;padding:4px 9px}
  .v3d-nutrition{gap:5px;margin-bottom:14px}
  .v3d-nut{padding:8px 3px}
  .v3d-nut-val{font-size:13px}
  .v3d-nut-lbl{font-size:8px}
  .v3d-close{width:34px;height:34px;border-radius:10px;top:10px;right:10px}
  .v3d-divider{margin-bottom:12px}
  .v3d-actions{gap:6px}
  .v3d-act{padding:11px 8px;font-size:12px;border-radius:11px}
  /* Order Tracker */
  #orderTracker{align-items:flex-end}
  .ot-panel{border-radius:20px 20px 0 0;width:100%;max-height:90vh}
  .ot-header{padding:14px 14px 11px}
  .ot-header__title{font-size:14px}
  .ot-header__id{font-size:11px}
  .ot-pulse{width:10px;height:10px;flex:0 0 10px}
  .ot-live{padding:12px 14px 9px}
  .ot-live__label{font-size:9px}
  .ot-live__status{font-size:17px}
  .ot-live__time{font-size:12px}
  .ot-progress{padding:9px 14px 10px}
  .ot-steps{padding:0 14px 10px;gap:5px}
  .ot-step{padding:8px 10px;border-radius:10px;gap:8px}
  .ot-step__icon{width:28px;height:28px;border-radius:7px;font-size:13px;flex:0 0 28px}
  .ot-step__label{font-size:12px}
  .ot-step__badge{font-size:9px;padding:3px 7px}
  .ot-section-title{padding:0 14px 7px;font-size:9px}
  .ot-items{padding:0 14px 10px;gap:6px}
  .ot-item{padding:8px;border-radius:10px;gap:8px}
  .ot-item__img{width:38px;height:38px;border-radius:7px;flex:0 0 38px}
  .ot-item__name{font-size:12px}
  .ot-item__qty{font-size:11px}
  .ot-item__price{font-size:12px}
  .ot-footer{padding:9px 14px 14px}
  .ot-footer__row{font-size:13px;margin-bottom:10px}
  .ot-footer__row strong{font-size:15px}
  .ot-cta{padding:11px;font-size:13px;border-radius:11px}
  /* Order Lookup */
  #orderLookup{align-items:flex-end}
  .olookup-panel{border-radius:20px 20px 0 0;width:100%}
  .olookup-header{padding:14px 14px 11px}
  .olookup-header__icon{width:36px;height:36px;border-radius:10px;flex:0 0 36px}
  .olookup-header__title{font-size:14px}
  .olookup-header__sub{font-size:11px}
  .olookup-body{padding:14px}
  .olookup-input{padding:12px 14px;font-size:15px;border-radius:12px}
  .olookup-submit{width:46px;height:46px;border-radius:12px}
  .olookup-hint{font-size:11px}
  /* Intro */
  .intro__word--food .intro__letter{font-size:44px}
  .intro__word--menu .intro__letter{font-size:52px}
  .intro__content{padding:36px 14px 26px}
  .intro__mark{width:78px;height:78px}
  .intro__orbit{width:280px;height:280px}
  .intro__enter{width:calc(100% - 20px);justify-content:center;font-size:15px;padding:14px 20px}
}

/* Tres petits telephones < 380px */
@media (max-width:380px){
  .menu__grid{gap:7px}
  .dish__media{height:100px}
  .dish__name{font-size:12px}
  .dish__price{font-size:14px}
  .dish__body{padding:7px}
  .dish__btn3d{width:30px;height:30px;bottom:5px;right:5px}
  .grid--products{gap:7px}
  .product__media{height:76px}
  .product__name{font-size:11px}
  .grid--stats{gap:7px}
  .stat__value{font-size:19px}
  .v3d-disc{width:168px;height:168px}
  .v3d-stage{flex:0 0 195px;min-height:195px}
}
@keyframes intro-float{0%,100%{transform:translateY(0) translateX(0)}25%{transform:translateY(-20px) translateX(10px)}50%{transform:translateY(-40px) translateX(-10px)}75%{transform:translateY(-20px) translateX(15px)}}
@keyframes intro-gradient{0%{background-position:0% center}100%{background-position:200% center}}
@keyframes intro-item-spin{from{transform:translate(-50%,-50%) scale(1) rotate(0deg)}to{transform:translate(-50%,-50%) scale(1) rotate(360deg)}}
@keyframes intro-ring-spin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes intro-arc-spin{from{transform:rotate(-10deg)}to{transform:rotate(350deg)}}
@keyframes intro-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes intro-ping{0%{transform:scale(1);opacity:.8}80%,100%{transform:scale(1.25);opacity:0}}
@keyframes intro-pulse{0%,100%{opacity:.35}50%{opacity:.7}}
@keyframes intro-spark{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}


/* ════════════════════════════════════════
   3D DISH VIEWER STYLES
════════════════════════════════════════ */
#viewer3d{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
#viewer3d[hidden]{display:none}

/* Blurred background = dish image */
.v3d-bg-img{
  position:absolute;inset:0;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  filter:blur(32px) brightness(.32) saturate(1.4);
  transform:scale(1.1);
  transition:background-image .35s ease;
}
.v3d-bg-dim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.48) 0%,rgba(0,0,0,.18) 50%,rgba(0,0,0,.58) 100%);
}

/* Bokeh particles */
.v3d-bokeh{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.v3d-bk{position:absolute;border-radius:50%;filter:blur(20px);animation:v3d-bk-float linear infinite;opacity:0}
@keyframes v3d-bk-float{0%{opacity:0;transform:translateY(0) scale(1)}15%{opacity:1}85%{opacity:.55}100%{opacity:0;transform:translateY(-90px) scale(1.35)}}

/* Panel */
.v3d-panel{
  position:relative;
  width:min(900px,calc(100vw - 16px));
  max-height:calc(100vh - 16px);
  display:flex;
  background:rgba(10,10,10,.75);
  border:1px solid rgba(255,255,255,.10);
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 60px 120px rgba(0,0,0,.80),0 0 0 1px rgba(249,115,22,.07),inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(2px);
  animation:v3d-pop .42s cubic-bezier(.22,1,.36,1);
}
@keyframes v3d-pop{from{opacity:0;transform:scale(.91) translateY(28px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* Close */
.v3d-close{
  position:absolute;top:14px;right:14px;
  width:40px;height:40px;border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.50);backdrop-filter:blur(10px);
  color:rgba(255,255,255,.75);cursor:pointer;display:grid;place-items:center;z-index:30;
  transition:all .18s ease;
}
.v3d-close:hover{background:rgba(220,38,38,.35);border-color:rgba(220,38,38,.5);color:#fff}

/* Stage (left) */
.v3d-stage{
  flex:0 0 54%;position:relative;overflow:hidden;
  min-height:440px;cursor:grab;background:transparent;
  user-select:none;-webkit-user-select:none;
}
.v3d-stage:active{cursor:grabbing}
.v3d-stage-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(44px) brightness(.22) saturate(1.6);transform:scale(1.18);transition:background-image .4s}
.v3d-vignette{position:absolute;inset:0;background:radial-gradient(ellipse 80% 75% at 50% 42%,transparent 18%,rgba(0,0,0,.78) 100%);pointer-events:none;z-index:3}
.v3d-spotlight{position:absolute;top:-50px;left:50%;transform:translateX(-50%);width:240px;height:240px;background:radial-gradient(circle,rgba(249,115,22,.09) 0%,transparent 70%);pointer-events:none;z-index:2;animation:v3d-spot 3.8s ease-in-out infinite}
@keyframes v3d-spot{0%,100%{opacity:.7;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.18)}}
.v3d-plate-shadow{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);width:260px;height:38px;background:radial-gradient(ellipse,rgba(0,0,0,.72) 0%,transparent 70%);filter:blur(12px);pointer-events:none;z-index:1;transition:transform .08s}

/* Badge 360 */
.v3d-badge360{
  position:absolute;top:14px;left:14px;z-index:10;
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(0,0,0,.62);backdrop-filter:blur(10px);
  border:1.5px solid rgba(249,115,22,.55);border-radius:999px;
  padding:6px 13px;font-size:11px;font-weight:700;color:#F97316;
  letter-spacing:.08em;font-family:'Outfit',Inter,sans-serif;
  animation:v3d-glow 2.2s ease-in-out infinite;
}
@keyframes v3d-glow{0%,100%{box-shadow:0 0 0 0 rgba(249,115,22,.5)}50%{box-shadow:0 0 0 7px rgba(249,115,22,0)}}

/* Disc 3D */
.v3d-perspective{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:4;perspective:1000px;perspective-origin:50% 42%}
.v3d-disc{
  width:310px;height:310px;border-radius:50%;overflow:hidden;
  transform-style:preserve-3d;will-change:transform;
  box-shadow:0 50px 90px rgba(0,0,0,.82),0 0 0 5px rgba(255,255,255,.06),0 0 0 10px rgba(255,255,255,.03),0 0 90px rgba(249,115,22,.09);
  animation:v3d-idle 5s ease-in-out infinite;cursor:inherit;
}
@keyframes v3d-idle{
  0%,100%{transform:rotateX(10deg) rotateY(0deg) translateY(0)}
  25%{transform:rotateX(7deg) rotateY(4deg) translateY(-7px)}
  50%{transform:rotateX(10deg) rotateY(0deg) translateY(-12px)}
  75%{transform:rotateX(7deg) rotateY(-4deg) translateY(-7px)}
}
.v3d-disc.v3d-dragging{animation:none}
.v3d-disc img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;border-radius:50%}
.v3d-disc-rim{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:5;transition:background .1s}
.v3d-disc-ring{position:absolute;inset:-3px;border-radius:50%;border:3px solid transparent;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 45%,rgba(249,115,22,.12)) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;pointer-events:none;z-index:6}
.v3d-disc-flare{position:absolute;top:18%;left:26%;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),transparent 70%);pointer-events:none;z-index:7;animation:v3d-flare 4s ease-in-out infinite}
@keyframes v3d-flare{0%,100%{opacity:.8;transform:scale(1)}50%{opacity:.25;transform:scale(.55)}}

/* Zoom buttons */
.v3d-zoom-btns{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;gap:6px}
.v3d-zbtn{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.58);backdrop-filter:blur(8px);color:#fff;font-size:20px;font-weight:300;cursor:pointer;display:grid;place-items:center;transition:all .16s ease;font-family:sans-serif;line-height:1}
.v3d-zbtn:hover{background:rgba(249,115,22,.35);border-color:rgba(249,115,22,.6)}

/* Hint */
.v3d-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.58);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.10);border-radius:999px;padding:6px 16px;font-size:11px;font-weight:600;color:rgba(255,255,255,.55);white-space:nowrap;z-index:10;transition:opacity .5s;letter-spacing:.03em;font-family:'Outfit',Inter,sans-serif}
.v3d-hint.v3d-hint-hide{opacity:0}

/* Info panel (right) */
.v3d-info{flex:1;padding:26px 24px 22px;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:none;background:rgba(6,6,6,.48);font-family:'Outfit',Inter,sans-serif}
.v3d-info::-webkit-scrollbar{display:none}

.v3d-info-brand{font-size:10px;font-weight:700;color:#F97316;letter-spacing:.14em;text-transform:uppercase;margin-bottom:9px;display:flex;align-items:center;gap:7px}
.v3d-info-brand::before{content:"";width:16px;height:2px;background:#F97316;border-radius:1px}
.v3d-info-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1.05;margin-bottom:10px;background:linear-gradient(135deg,#fff 42%,rgba(255,255,255,.52));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.02em}
.v3d-info-meta{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.v3d-info-stars{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;color:#fff}
.v3d-stars-y{color:#FBBF24;letter-spacing:.5px}
.v3d-reviews{color:rgba(255,255,255,.4);font-size:11px}
.v3d-info-badge{padding:6px 12px;border-radius:999px;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.25);color:#F97316;font-size:11px;font-weight:700;letter-spacing:.04em}
.v3d-info-price{font-family:'Cormorant Garamond',Georgia,serif;font-size:40px;font-weight:800;color:#F97316;line-height:1;margin-bottom:13px;letter-spacing:-.02em}
.v3d-info-desc{font-size:13px;color:rgba(255,255,255,.55);line-height:1.68;margin-bottom:20px;font-weight:300}
.v3d-section-title{font-size:10px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:.10em;text-transform:uppercase;margin-bottom:9px}
.v3d-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.v3d-tag{padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);font-size:12px;font-weight:500;color:rgba(255,255,255,.7);cursor:default;transition:all .15s ease}
.v3d-tag:hover{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.30);color:#F97316}
.v3d-nutrition{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:22px}
.v3d-nut{text-align:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:13px;padding:10px 4px}
.v3d-nut-val{font-size:16px;font-weight:700;color:#fff;margin-bottom:3px}
.v3d-nut-lbl{font-size:9px;font-weight:600;color:rgba(255,255,255,.4);letter-spacing:.06em;text-transform:uppercase}
.v3d-divider{height:1px;background:rgba(255,255,255,.07);margin-bottom:16px}
.v3d-actions{display:flex;gap:8px;margin-top:auto}
.v3d-act{flex:1;padding:13px 10px;border-radius:13px;border:0;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease;font-family:'Outfit',Inter,sans-serif}
.v3d-act--primary{background:linear-gradient(135deg,#F97316,#DC2626);color:#fff;box-shadow:0 14px 32px rgba(249,115,22,.28)}
.v3d-act--primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(249,115,22,.38)}
.v3d-act--ghost{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);color:rgba(255,255,255,.8)}
.v3d-act--ghost:hover{background:rgba(255,255,255,.10)}

/* Responsive 3D viewer */
@media(max-width:640px){
  .v3d-panel{flex-direction:column;max-height:94vh}
  .v3d-stage{flex:0 0 250px;min-height:250px}
  .v3d-disc{width:210px;height:210px}
  .v3d-info{padding:18px 16px 16px}
  .v3d-info-price{font-size:30px}
  .v3d-info-name{font-size:20px}
  .v3d-nutrition{gap:5px}
  .v3d-nut-val{font-size:14px}
}

/* ════════════════════════════════════════
   ORDER TRACKER STYLES
════════════════════════════════════════ */
#orderTracker{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
}
#orderTracker[hidden]{display:none}

.ot-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.70);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.ot-panel{
  position:relative;
  width:min(480px,calc(100vw - 20px));
  max-height:calc(100vh - 20px);
  overflow-y:auto;
  scrollbar-width:none;
  background:#0e0e0e;
  border:1px solid rgba(255,255,255,.10);
  border-radius:26px;
  box-shadow:0 60px 120px rgba(0,0,0,.80),inset 0 1px 0 rgba(255,255,255,.07);
  animation:ot-pop .38s cubic-bezier(.22,1,.36,1);
}
.ot-panel::-webkit-scrollbar{display:none}
@keyframes ot-pop{from{opacity:0;transform:scale(.92) translateY(22px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* Header */
.ot-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:20px 20px 16px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.ot-header__left{display:flex;align-items:center;gap:12px}
.ot-header__title{font-family:'Outfit',Inter,sans-serif;font-size:16px;font-weight:700;color:#fff}
.ot-header__id{
  font-size:12px;font-weight:700;color:#F97316;
  letter-spacing:.08em;margin-top:2px;
  font-family:'Outfit',Inter,sans-serif;
}

/* Pulsing live dot */
.ot-pulse{
  width:12px;height:12px;border-radius:50%;
  background:#22c55e;flex:0 0 12px;
  box-shadow:0 0 0 0 rgba(34,197,94,.5);
  animation:ot-pulse-ring 1.5s ease-out infinite;
}
@keyframes ot-pulse-ring{
  0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}
  70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}
}

/* Close */
.ot-close{
  width:36px;height:36px;border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.65);cursor:pointer;display:grid;place-items:center;
  transition:all .16s ease;
}
.ot-close:hover{background:rgba(220,38,38,.3);border-color:rgba(220,38,38,.45);color:#fff}

/* Live status */
.ot-live{
  padding:18px 20px 14px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.ot-live__label{font-size:10px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:.10em;text-transform:uppercase;margin-bottom:6px;font-family:'Outfit',Inter,sans-serif}
.ot-live__status{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:700;color:#fff;margin-bottom:6px}
.ot-live__time{font-size:13px;font-weight:600;color:#F97316;font-family:'Outfit',Inter,sans-serif;min-height:20px;transition:color .3s}

/* Progress bar */
.ot-progress{padding:14px 20px 16px}
.ot-progress__track{
  height:6px;border-radius:999px;
  background:rgba(255,255,255,.08);overflow:hidden;
}
.ot-progress__bar{
  height:100%;border-radius:999px;
  background:linear-gradient(90deg,#F97316,#22c55e);
  transition:width .8s ease;
  box-shadow:0 0 10px rgba(249,115,22,.4);
}

/* Steps */
.ot-steps{
  padding:0 20px 16px;
  display:flex;flex-direction:column;gap:6px;
}
.ot-step{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;border-radius:14px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.03);
  transition:all .3s ease;
}
.ot-step--active{
  border-color:rgba(249,115,22,.35);
  background:rgba(249,115,22,.08);
  box-shadow:0 0 20px rgba(249,115,22,.10);
}
.ot-step--done{
  border-color:rgba(34,197,94,.25);
  background:rgba(34,197,94,.06);
}
.ot-step__icon{
  width:34px;height:34px;border-radius:10px;
  display:grid;place-items:center;font-size:16px;flex:0 0 34px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
  transition:all .3s ease;
}
.ot-step--active .ot-step__icon{background:rgba(249,115,22,.20);border-color:rgba(249,115,22,.4)}
.ot-step--done .ot-step__icon{background:rgba(34,197,94,.20);border-color:rgba(34,197,94,.4);color:#22c55e;font-weight:700;font-size:14px}
.ot-step__label{flex:1;font-size:13px;font-weight:600;color:rgba(255,255,255,.6);font-family:'Outfit',Inter,sans-serif}
.ot-step--active .ot-step__label{color:#fff}
.ot-step--done .ot-step__label{color:rgba(255,255,255,.45);text-decoration:line-through}
.ot-step__badge{
  padding:4px 9px;border-radius:999px;
  font-size:10px;font-weight:700;letter-spacing:.04em;
  font-family:'Outfit',Inter,sans-serif;
}
.ot-step--active .ot-step__badge{background:rgba(249,115,22,.20);color:#F97316;border:1px solid rgba(249,115,22,.3)}
.ot-step__badge--done{background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.25)}

/* Section title */
.ot-section-title{
  padding:0 20px 10px;
  font-size:10px;font-weight:700;color:rgba(255,255,255,.4);
  letter-spacing:.10em;text-transform:uppercase;
  font-family:'Outfit',Inter,sans-serif;
}

/* Items */
.ot-items{
  padding:0 20px 16px;
  display:flex;flex-direction:column;gap:8px;
}
.ot-item{
  display:flex;align-items:center;gap:10px;
  padding:10px;border-radius:13px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
}
.ot-item__img{width:46px;height:46px;border-radius:10px;object-fit:cover;flex:0 0 46px}
.ot-item__name{flex:1;font-size:13px;font-weight:600;color:rgba(255,255,255,.85);font-family:'Outfit',Inter,sans-serif}
.ot-item__qty{font-size:12px;font-weight:700;color:rgba(255,255,255,.4);font-family:'Outfit',Inter,sans-serif}
.ot-item__price{font-size:13px;font-weight:700;color:#F97316;font-family:'Outfit',Inter,sans-serif}
.ot-more{font-size:12px;color:rgba(255,255,255,.35);font-weight:600;padding:4px 2px;font-family:'Outfit',Inter,sans-serif}

/* Footer */
.ot-footer{
  padding:14px 20px 20px;
  border-top:1px solid rgba(255,255,255,.07);
}
.ot-footer__row{
  display:flex;align-items:center;justify-content:space-between;
  font-size:14px;font-weight:600;color:rgba(255,255,255,.7);
  margin-bottom:14px;font-family:'Outfit',Inter,sans-serif;
}
.ot-footer__row strong{font-size:18px;font-weight:800;color:#F97316}
.ot-cta{
  width:100%;padding:13px;border-radius:14px;border:0;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.8);font-size:14px;font-weight:700;
  cursor:pointer;transition:all .18s ease;
  font-family:'Outfit',Inter,sans-serif;
}
.ot-cta:hover{background:rgba(255,255,255,.14)}

@media(max-width:480px){
  .ot-panel{border-radius:20px 20px 0 0;width:100%;max-height:90vh}
  #orderTracker{align-items:flex-end}
}

/* ════════════════════════════════════════
   MENU HEADER ACTIONS + TRACK BUTTON
════════════════════════════════════════ */
.menu__header-actions{display:flex;align-items:center;gap:10px}

.menu__trackbtn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 16px;border-radius:14px;border:0;cursor:pointer;
  background:rgba(249,115,22,.12);
  border:1.5px solid rgba(249,115,22,.30);
  color:#F97316;font-weight:700;font-size:13px;
  transition:all .2s ease;
  font-family:'Outfit',Inter,sans-serif;
  white-space:nowrap;
}
.menu__trackbtn:hover{
  background:rgba(249,115,22,.22);
  border-color:rgba(249,115,22,.55);
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(249,115,22,.18);
}
.menu__trackbtn-text{font-family:'Outfit',Inter,sans-serif}

@media(max-width:560px){
  .menu__trackbtn-text{display:none}
  .menu__trackbtn{padding:11px 12px}
}

/* ════════════════════════════════════════
   ORDER LOOKUP MODAL
════════════════════════════════════════ */
#orderLookup{
  position:fixed;inset:0;z-index:290;
  display:flex;align-items:center;justify-content:center;
}
#orderLookup[hidden]{display:none}

.olookup-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.olookup-panel{
  position:relative;
  width:min(420px,calc(100vw - 20px));
  background:#0e0e0e;
  border:1px solid rgba(255,255,255,.10);
  border-radius:24px;
  box-shadow:0 50px 100px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.07);
  overflow:hidden;
  animation:ot-pop .35s cubic-bezier(.22,1,.36,1);
}

.olookup-header{
  display:flex;align-items:center;gap:12px;
  padding:18px 18px 14px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.olookup-header__icon{
  width:40px;height:40px;border-radius:12px;flex:0 0 40px;
  display:grid;place-items:center;
  background:rgba(249,115,22,.15);
  border:1px solid rgba(249,115,22,.30);
  color:#F97316;
}
.olookup-header__title{
  font-size:15px;font-weight:700;color:#fff;
  font-family:'Outfit',Inter,sans-serif;
}
.olookup-header__sub{
  font-size:12px;color:rgba(255,255,255,.4);font-weight:500;margin-top:2px;
  font-family:'Outfit',Inter,sans-serif;
}
.olookup-close{
  margin-left:auto;width:34px;height:34px;border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.55);cursor:pointer;display:grid;place-items:center;
  transition:all .16s ease;flex:0 0 34px;
}
.olookup-close:hover{background:rgba(220,38,38,.28);border-color:rgba(220,38,38,.4);color:#fff}

.olookup-body{padding:18px}

.olookup-label{
  display:block;font-size:11px;font-weight:700;
  color:rgba(255,255,255,.45);letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:10px;
  font-family:'Outfit',Inter,sans-serif;
}

.olookup-input-wrap{
  display:flex;gap:8px;
}
.olookup-input{
  flex:1;padding:13px 16px;
  border-radius:13px;
  border:1.5px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:#fff;font-size:15px;font-weight:700;
  outline:none;letter-spacing:.04em;
  font-family:'Outfit',Inter,sans-serif;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.olookup-input::placeholder{color:rgba(255,255,255,.25);font-weight:400;letter-spacing:0}
.olookup-input:focus{
  border-color:rgba(249,115,22,.55);
  box-shadow:0 0 0 4px rgba(249,115,22,.12);
}
.olookup-input.is-error{
  border-color:rgba(220,38,38,.55);
  box-shadow:0 0 0 4px rgba(220,38,38,.10);
  animation:olookup-shake .35s ease;
}
@keyframes olookup-shake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-6px)}
  40%{transform:translateX(6px)}
  60%{transform:translateX(-4px)}
  80%{transform:translateX(4px)}
}

.olookup-submit{
  width:48px;height:48px;border-radius:13px;border:0;flex:0 0 48px;
  background:linear-gradient(135deg,#F97316,#DC2626);
  color:#fff;cursor:pointer;display:grid;place-items:center;
  transition:all .18s ease;
  box-shadow:0 8px 22px rgba(249,115,22,.28);
}
.olookup-submit:hover{transform:scale(1.06);box-shadow:0 12px 28px rgba(249,115,22,.4)}
.olookup-submit:active{transform:scale(.97)}

.olookup-error{
  margin-top:10px;padding:10px 12px;
  border-radius:11px;
  background:rgba(220,38,38,.12);
  border:1px solid rgba(220,38,38,.25);
  color:#f87171;font-size:12px;font-weight:600;
  font-family:'Outfit',Inter,sans-serif;
  animation:ot-pop .25s ease;
}
.olookup-error[hidden]{display:none}

.olookup-hint{
  margin-top:14px;font-size:12px;color:rgba(255,255,255,.28);
  line-height:1.6;font-family:'Outfit',Inter,sans-serif;
}
.olookup-hint strong{color:rgba(255,255,255,.45)}

/* ════════════════════════════════════════
   LANDING PAGE — Style vidéo (marble/float)
════════════════════════════════════════ */

body.is-landing .footer{display:none}
body.is-landing .main{padding:0}
body.is-landing .container{max-width:none;padding:0}

.page#page-landing{background:#FAFAF8;min-height:100vh;overflow-x:hidden}

.land{position:relative;background:#FAFAF8;overflow:hidden;display:flex;flex-direction:column}

/* Entrance animation */
.land-anim{opacity:0;transform:translateY(30px);transition:opacity .7s ease var(--d,0ms),transform .7s cubic-bezier(.22,1,.36,1) var(--d,0ms)}
.land-visible .land-anim{opacity:1;transform:translateY(0)}

/* ════ SECTION 1 : HERO ════ */
.ls-hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;
  padding:60px 24px 60px;
  background:linear-gradient(135deg,#FAFAF8 0%,#F2F0EC 100%);
  overflow:hidden;
}

/* Marble texture */
.ls-hero::before{
  content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.4' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='.025'/%3E%3C/svg%3E");
  pointer-events:none;
}

/* Floating food deco images */
.ls-deco{position:absolute;border-radius:50%;object-fit:cover;pointer-events:none;box-shadow:0 20px 50px rgba(0,0,0,.15)}

.ls-deco--bowl{
  width:260px;height:260px;
  top:-30px;right:-40px;
  animation:ls-float1 6s ease-in-out infinite;
  border-radius:50%;
  z-index:0;
  opacity:.0; /* hidden, main dish shows separately */
}
.ls-deco--tomato{
  width:80px;height:80px;
  bottom:15%;right:10%;
  animation:ls-float2 5s ease-in-out infinite;
  border-radius:50%;
  z-index:3;
}
.ls-deco--herb{
  width:70px;height:70px;
  bottom:25%;left:5%;
  animation:ls-float3 7s ease-in-out infinite;
  border-radius:50%;
  z-index:3;
  display:none;
}
.ls-deco--spice{
  width:60px;height:60px;
  top:15%;right:8%;
  animation:ls-float1 8s ease-in-out infinite;
  border-radius:50%;
  z-index:3;
}

@keyframes ls-float1{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-14px) rotate(4deg)}}
@keyframes ls-float2{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-10px) rotate(-3deg)}}
@keyframes ls-float3{0%,100%{transform:translateY(0) rotate(0deg)}33%{transform:translateY(-8px) rotate(2deg)}66%{transform:translateY(-16px) rotate(-2deg)}}

/* Hero text side */
.ls-hero__content{
  position:relative;z-index:2;
  flex:1;max-width:50%;
  padding-right:20px;
}
.ls-hero__kicker{
  display:inline-block;
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:#C4703A;margin-bottom:16px;
  font-family:'Outfit',Inter,sans-serif;
}
.ls-hero__title{
  margin:0 0 16px;
  display:flex;flex-direction:column;
}
.ls-hero__title span:first-child{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(44px,8vw,72px);
  font-weight:700;
  color:#1A1007;
  line-height:1;
  letter-spacing:-.03em;
}
.ls-hero__title--italic{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(52px,10vw,88px) !important;
  font-weight:800;
  font-style:italic;
  color:#C4703A !important;
  line-height:.9;
  letter-spacing:-.04em;
}
.ls-hero__sub{
  font-size:14px;color:#6B5C4A;line-height:1.65;margin:0 0 28px;
  font-family:'Outfit',Inter,sans-serif;font-weight:300;max-width:40ch;
}

/* Buttons */
.ls-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 24px;border-radius:999px;
  font-size:14px;font-weight:700;letter-spacing:.03em;
  text-decoration:none;border:0;cursor:pointer;
  font-family:'Outfit',Inter,sans-serif;
  transition:transform .2s ease, box-shadow .2s ease;
}
.ls-btn--primary{
  background:#C4703A;color:#fff;
  box-shadow:0 14px 36px rgba(196,112,58,.35);
}
.ls-btn--primary:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(196,112,58,.45)}
.ls-btn--primary:active{transform:scale(.97)}
.ls-btn--dark{
  background:#1A0F06;color:#F5F0E8;
  box-shadow:0 14px 36px rgba(0,0,0,.20);
}
.ls-btn--dark:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(0,0,0,.28)}

/* Hero image side */
.ls-hero__img-wrap{
  position:relative;z-index:2;
  flex:0 0 44%;
}
.ls-hero__img{
  width:100%;
  aspect-ratio:1;
  border-radius:50%;
  object-fit:cover;
  display:block;
  box-shadow:0 40px 80px rgba(0,0,0,.18),0 0 0 8px rgba(196,112,58,.12),0 0 0 16px rgba(196,112,58,.06);
  animation:ls-float1 6s ease-in-out infinite;
}
.ls-hero__img-badge{
  position:absolute;
  bottom:10%;right:-8%;
  background:#fff;
  border-radius:18px;
  padding:12px 16px;
  text-align:center;
  box-shadow:0 16px 40px rgba(0,0,0,.14);
  min-width:90px;
}
.ls-hero__img-badge-num{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;font-weight:800;color:#1A1007;line-height:1}
.ls-hero__img-badge-stars{color:#E8B84B;font-size:12px;letter-spacing:1px;margin:2px 0}
.ls-hero__img-badge-lbl{font-size:10px;color:#8A7060;font-family:'Outfit',Inter,sans-serif;font-weight:600;letter-spacing:.04em}

/* ════ SECTION 2 : MENU ════ */
.ls-menu-sec{
  position:relative;
  padding:60px 24px;
  background:#FAFAF8;
  overflow:hidden;
}
.ls-deco2{position:absolute;object-fit:cover;pointer-events:none;border-radius:50%;box-shadow:0 16px 40px rgba(0,0,0,.12)}
.ls-deco2--lobster{width:160px;height:120px;border-radius:12px;top:-20px;right:-20px;animation:ls-float2 7s ease-in-out infinite;object-position:center}
.ls-deco2--greens{width:80px;height:80px;bottom:20px;left:10px;animation:ls-float3 6s ease-in-out infinite}
.ls-deco2--garlic{width:65px;height:65px;bottom:30%;right:5%;animation:ls-float1 8s ease-in-out infinite}

.ls-menu-sec__head{text-align:center;margin-bottom:36px;position:relative;z-index:2}
.ls-menu-sec__title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(34px,7vw,52px);font-weight:800;color:#1A1007;letter-spacing:-.03em;margin:0 0 8px}
.ls-menu-sec__sub{font-size:13px;color:#8A7060;font-family:'Outfit',Inter,sans-serif;margin:0 0 24px}

/* Category tabs */
.ls-tabs{display:flex;justify-content:center;gap:0;background:#EDE8DF;border-radius:999px;padding:4px;display:inline-flex}
.ls-tab{
  padding:9px 20px;border-radius:999px;
  border:0;background:transparent;
  font-size:13px;font-weight:700;color:#8A7060;cursor:pointer;
  font-family:'Outfit',Inter,sans-serif;
  transition:all .2s ease;letter-spacing:.01em;
}
.ls-tab.is-active{background:#fff;color:#C4703A;box-shadow:0 4px 14px rgba(0,0,0,.10)}

/* Dish cards */
.ls-dishes{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;position:relative;z-index:2;
}
.ls-dish{cursor:pointer;transition:transform .25s ease}
.ls-dish:hover{transform:translateY(-6px)}
.ls-dish__img-wrap{
  width:100%;
  aspect-ratio:1;
  border-radius:50%;
  overflow:hidden;
  margin-bottom:16px;
  box-shadow:0 20px 50px rgba(0,0,0,.12),0 0 0 4px rgba(196,112,58,.10),0 0 0 8px rgba(196,112,58,.05);
  transition:box-shadow .25s ease;
}
.ls-dish:hover .ls-dish__img-wrap{box-shadow:0 28px 60px rgba(0,0,0,.18),0 0 0 5px rgba(196,112,58,.2),0 0 0 10px rgba(196,112,58,.08)}
.ls-dish__img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.ls-dish:hover .ls-dish__img{transform:scale(1.07)}
.ls-dish__name{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-weight:700;color:#1A1007;text-align:center;margin-bottom:5px}
.ls-dish__desc{font-size:12px;color:#8A7060;text-align:center;line-height:1.5;margin-bottom:7px;font-family:'Outfit',Inter,sans-serif}
.ls-dish__price{font-size:16px;font-weight:700;color:#C4703A;text-align:center;font-family:'Cormorant Garamond',Georgia,serif}

/* ════ SECTION 3 : PARALLAX FEATURE ════ */
.ls-feature{
  position:relative;
  padding:60px 24px;
  background:linear-gradient(135deg,#F2EDE5 0%,#FAFAF8 100%);
  display:flex;align-items:center;gap:32px;
  overflow:hidden;
}
.ls-deco3{position:absolute;object-fit:cover;pointer-events:none;border-radius:50%;box-shadow:0 14px 36px rgba(0,0,0,.12)}
.ls-deco3--pasta{width:220px;height:220px;left:-60px;top:50%;transform:translateY(-50%);animation:ls-float2 7s ease-in-out infinite}
.ls-deco3--fork{width:60px;height:120px;border-radius:8px;top:10%;right:5%;animation:ls-float3 6s ease-in-out infinite}
.ls-deco3--pepper{width:70px;height:70px;bottom:15%;right:8%;animation:ls-float1 5s ease-in-out infinite}
.ls-deco3--onion{width:60px;height:60px;top:20%;left:30%;animation:ls-float2 9s ease-in-out infinite}

.ls-feature__img-wrap{
  flex:0 0 42%;
  position:relative;z-index:2;
}
.ls-feature__img{
  width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;display:block;
  box-shadow:0 40px 80px rgba(0,0,0,.14),0 0 0 8px rgba(196,112,58,.10),0 0 0 16px rgba(196,112,58,.05);
  animation:ls-float3 7s ease-in-out infinite;
}

.ls-feature__text{flex:1;position:relative;z-index:2}
.ls-feature__kicker{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#C4703A;margin-bottom:12px;font-family:'Outfit',Inter,sans-serif}
.ls-feature__title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(28px,5vw,42px);font-weight:800;color:#1A1007;letter-spacing:-.03em;margin:0 0 16px;line-height:1.1}

.ls-quote{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:17px;font-style:italic;color:#3A2D1F;
  line-height:1.65;margin:0 0 22px;
  padding-left:16px;
  border-left:3px solid #C4703A;
}

.ls-reviewers{display:flex;gap:16px;flex-wrap:wrap}
.ls-reviewer{display:flex;align-items:center;gap:10px}
.ls-reviewer__av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:16px;color:#fff;flex:0 0 40px}
.ls-reviewer__name{font-size:13px;font-weight:700;color:#1A1007;font-family:'Outfit',Inter,sans-serif}
.ls-reviewer__stars{color:#E8B84B;font-size:11px}

/* ════ SECTION 4 : FINAL CTA ════ */
.ls-cta-sec{
  position:relative;
  padding:70px 24px;
  background:#FAFAF8;
  overflow:hidden;
  text-align:center;
}
.ls-deco4{position:absolute;pointer-events:none;font-size:52px;filter:drop-shadow(0 8px 16px rgba(0,0,0,.12));opacity:.55;line-height:1}
.ls-deco4--a{top:10%;left:3%;animation:ls-float1 6s ease-in-out infinite}
.ls-deco4--b{top:15%;right:4%;animation:ls-float2 7s ease-in-out infinite}
.ls-deco4--c{bottom:15%;left:6%;animation:ls-float3 8s ease-in-out infinite}
.ls-deco4--d{bottom:10%;right:5%;animation:ls-float1 5s ease-in-out infinite}

.ls-cta-sec__content{position:relative;z-index:2}
.ls-cta-sec__title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(32px,7vw,52px);font-weight:800;color:#1A1007;letter-spacing:-.03em;margin:0 0 12px}
.ls-cta-sec__sub{font-size:14px;color:#8A7060;font-family:'Outfit',Inter,sans-serif;margin:0 0 28px;line-height:1.55;max-width:36ch;margin-left:auto;margin-right:auto}

/* ════ JS TABS ════ */
.ls-dish.ls-hidden{display:none}

/* ════ MOBILE ════ */
@media(max-width:640px){
  .ls-hero{flex-direction:column;gap:32px;padding:48px 18px 48px;min-height:auto}
  .ls-hero__content{max-width:100%;padding-right:0}
  .ls-hero__title span:first-child{font-size:clamp(40px,13vw,62px)}
  .ls-hero__title--italic{font-size:clamp(48px,16vw,80px) !important}
  .ls-hero__img-wrap{flex:0 0 auto;width:100%;max-width:300px;margin:0 auto}
  .ls-hero__img-badge{right:-4%;bottom:5%}
  .ls-deco--tomato{width:60px;height:60px;right:5%;bottom:18%}
  .ls-deco--spice{width:50px;height:50px;top:12%;right:5%}
  .ls-dishes{grid-template-columns:1fr;gap:32px}
  .ls-dish__img-wrap{max-width:240px;margin-left:auto;margin-right:auto}
  .ls-feature{flex-direction:column;gap:28px;padding:48px 18px}
  .ls-feature__img-wrap{flex:0 0 auto;width:100%;max-width:280px;margin:0 auto}
  .ls-deco3--pasta{width:140px;height:140px;left:-40px}
  .ls-menu-sec{padding:48px 18px}
  .ls-cta-sec{padding:52px 18px}
  .ls-tabs{flex-wrap:wrap;border-radius:14px}
  .ls-tab{padding:8px 14px;font-size:12px}
}

/* ════════════════════════════════════════
   SCROLL ANIMATIONS — sa-* system
════════════════════════════════════════ */

/* Base state: hidden, waiting */
[data-sa]{
  visibility:hidden;
  will-change:transform,opacity;
}

/* ── 1. Fade Up ── */
.sa-fade-up{
  opacity:0;
  transform:translateY(44px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*90ms),
             transform .7s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*90ms);
}
.sa-fade-up.sa-run{opacity:1;transform:translateY(0)}

/* ── 2. Spin-in (rotation 3D pour les plats) ── */
.sa-spin-in{
  opacity:0;
  transform:rotateY(-90deg) scale(.7);
  transition:opacity .65s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*120ms),
             transform .65s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*120ms);
  transform-origin:center center;
}
.sa-spin-in.sa-run{opacity:1;transform:rotateY(0deg) scale(1)}

/* ── 3. Flip-in (flip vertical) ── */
.sa-flip-in{
  opacity:0;
  transform:rotateX(80deg) translateY(30px);
  transition:opacity .6s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*110ms),
             transform .6s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*110ms);
  transform-origin:top center;
}
.sa-flip-in.sa-run{opacity:1;transform:rotateX(0deg) translateY(0)}

/* ── 4. Zoom-in ── */
.sa-zoom-in{
  opacity:0;
  transform:scale(.55);
  transition:opacity .6s cubic-bezier(.34,1.56,.64,1) calc(var(--i,0)*100ms),
             transform .6s cubic-bezier(.34,1.56,.64,1) calc(var(--i,0)*100ms);
}
.sa-zoom-in.sa-run{opacity:1;transform:scale(1)}

/* ── 5. Slide from left ── */
.sa-slide-left{
  opacity:0;
  transform:translateX(-60px);
  transition:opacity .65s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*90ms),
             transform .65s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*90ms);
}
.sa-slide-left.sa-run{opacity:1;transform:translateX(0)}

/* ── 6. Slide from right ── */
.sa-slide-right{
  opacity:0;
  transform:translateX(60px);
  transition:opacity .65s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*90ms),
             transform .65s cubic-bezier(.22,1,.36,1) calc(var(--i,0)*90ms);
}
.sa-slide-right.sa-run{opacity:1;transform:translateX(0)}

/* ── 7. Bounce-in ── */
.sa-bounce-in{
  opacity:0;
  transform:scale(.3) translateY(20px);
  transition:opacity .55s cubic-bezier(.34,1.8,.64,1) calc(var(--i,0)*90ms),
             transform .55s cubic-bezier(.34,1.8,.64,1) calc(var(--i,0)*90ms);
}
.sa-bounce-in.sa-run{opacity:1;transform:scale(1) translateY(0)}

/* Perspective on parent for 3D anims */
.ls-dishes{perspective:1200px}

/* ════ STATS STRIP ════ */
.ls-stats-strip{
  display:flex;align-items:center;justify-content:space-around;
  padding:36px 24px;
  background:#F5F0E8;
  border-top:1px solid rgba(196,112,58,.15);
  border-bottom:1px solid rgba(196,112,58,.15);
}
.ls-stat{text-align:center}
.ls-stat__num{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(36px,7vw,54px);font-weight:800;
  color:#C4703A;line-height:1;
}
.ls-stat__lbl{font-size:12px;font-weight:600;color:#8A7060;letter-spacing:.06em;margin-top:4px;font-family:'Outfit',Inter,sans-serif;text-transform:uppercase}
.ls-stat-sep{width:1px;height:50px;background:rgba(196,112,58,.25)}

/* ════ CHEF QUOTE STRIP ════ */
.ls-chef-strip{
  background:#1A0F06;
  padding:48px 28px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.ls-chef-strip::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(196,112,58,.12),transparent);
  pointer-events:none;
}
.ls-chef-strip__mark{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:100px;font-weight:800;color:rgba(196,112,58,.20);
  line-height:.5;margin-bottom:12px;
}
.ls-chef-strip__text{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(18px,4vw,26px);font-style:italic;
  color:rgba(255,255,255,.85);line-height:1.6;
  max-width:52ch;margin:0 auto 20px;font-weight:400;
}
.ls-chef-strip__name{font-size:14px;font-weight:700;color:#E8C47A;font-family:'Outfit',Inter,sans-serif}
.ls-chef-strip__role{font-size:11px;color:rgba(255,255,255,.45);letter-spacing:.06em;font-family:'Outfit',Inter,sans-serif;margin-top:3px}

/* ════ MOBILE for new elements ════ */
@media(max-width:640px){
  .ls-stats-strip{padding:28px 16px;gap:0}
  .ls-stat__num{font-size:32px}
  .ls-stat__lbl{font-size:10px}
  .ls-stat-sep{height:36px}
  .ls-chef-strip{padding:36px 20px}
  .ls-chef-strip__text{font-size:17px}
}

/* ════════════════════════════════════════
   DISH SPAWN ANIMATIONS — génération au scroll
════════════════════════════════════════ */

/* Placeholder dots pendant que les plats chargent */
.ls-dishes-placeholder{
  grid-column: 1 / -1;
  display:flex;justify-content:center;align-items:center;
  gap:16px;height:260px;
}
.lsp-dot{
  width:12px;height:12px;border-radius:50%;
  background:#D4A57A;opacity:.35;
  animation:lsp-pulse 1.2s ease-in-out infinite;
}
.lsp-dot:nth-child(2){animation-delay:.2s}
.lsp-dot:nth-child(3){animation-delay:.4s}
@keyframes lsp-pulse{0%,100%{transform:scale(1);opacity:.35}50%{transform:scale(1.5);opacity:.75}}

/* ── Spawn: Rotation 3D (Entrées) ── */
@keyframes dish-spawn-spin{
  0%  {opacity:0;transform:rotateY(-110deg) scale(.6);filter:blur(8px)}
  60% {opacity:1;filter:blur(0)}
  100%{opacity:1;transform:rotateY(0deg) scale(1);filter:blur(0)}
}

/* ── Spawn: Flip vertical (Plats) ── */
@keyframes dish-spawn-flip{
  0%  {opacity:0;transform:rotateX(90deg) translateY(40px) scale(.8)}
  70% {opacity:1}
  100%{opacity:1;transform:rotateX(0deg) translateY(0) scale(1)}
}

/* ── Spawn: Zoom élastique (Desserts) ── */
@keyframes dish-spawn-zoom{
  0%  {opacity:0;transform:scale(0) rotate(-8deg)}
  55% {opacity:1;transform:scale(1.08) rotate(2deg)}
  75% {transform:scale(.96) rotate(-1deg)}
  100%{opacity:1;transform:scale(1) rotate(0deg)}
}

/* Image qui se révèle avec clip-path */
.dish-img-reveal .ls-dish__img{
  animation:dish-img-clip .55s cubic-bezier(.22,1,.36,1) both;
  animation-delay:inherit;
}
@keyframes dish-img-clip{
  0%  {clip-path:circle(0% at 50% 50%);transform:scale(1.2)}
  100%{clip-path:circle(55% at 50% 50%);transform:scale(1)}
}

/* Texte qui slide depuis le bas */
.dish-text-reveal{
  opacity:0;
  transform:translateY(14px);
  animation:dish-text-up .45s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes dish-text-up{
  to{opacity:1;transform:translateY(0)}
}

/* Perspective pour les 3D */
.ls-dishes{
  perspective:1000px;
  perspective-origin:50% 0%;
}

/* Hover effect sur les plats spawnés */
.ls-dish.dish-spawn{
  cursor:pointer;
  transition:transform .28s ease, box-shadow .28s ease;
}
.ls-dish.dish-spawn:hover{
  transform:translateY(-8px) scale(1.03);
}
.ls-dish.dish-spawn:hover .ls-dish__img-wrap{
  box-shadow:0 32px 64px rgba(0,0,0,.22), 0 0 0 6px rgba(196,112,58,.25), 0 0 0 12px rgba(196,112,58,.10);
}

/* ════════════════════════════════════════
   DINING OPTIONS CARDS
════════════════════════════════════════ */

/* Section wrapper */
.ls-dining-sec{
  background:#F5F0E8;
  padding:52px 20px 56px;
  overflow:hidden;
}
.ls-dining-head{text-align:center;margin-bottom:36px}
.ls-dining-title{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(36px,8vw,58px);font-weight:800;
  color:#1A0F06;letter-spacing:-.03em;margin:0 0 8px;
  font-style:italic;
}
.ls-dining-sub{font-size:13px;color:#8A7060;margin:0 0 22px;font-family:'Outfit',Inter,sans-serif}

/* Grid 3×3 */
.ls-dining-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  max-width:680px;margin:0 auto;
}

/* ── Card ── */
.do-card{
  background:#C87941;
  border-radius:16px;
  overflow:hidden;
  cursor:pointer;
  opacity:0;
  transform:translateY(32px) scale(.88);
  transition:transform .3s ease, box-shadow .3s ease;
  box-shadow:0 6px 18px rgba(0,0,0,.14);
  user-select:none;
}

/* Visible state — déclenché par JS */
.do-card--visible{
  animation:do-spawn .55s cubic-bezier(.34,1.4,.64,1) var(--spawn-delay,0ms) both;
}
@keyframes do-spawn{
  0%  {opacity:0;transform:translateY(40px) scale(.78) rotate(-4deg)}
  60% {opacity:1}
  80% {transform:translateY(-4px) scale(1.02) rotate(1deg)}
  100%{opacity:1;transform:translateY(0) scale(1) rotate(0deg)}
}

.do-card:hover{
  transform:translateY(-5px) scale(1.03);
  box-shadow:0 18px 42px rgba(0,0,0,.22);
}
.do-card:active{transform:scale(.97)}

/* Plate wrapper */
.do-card__plate-wrap{
  position:relative;
  padding:16px 16px 0;
  display:flex;justify-content:center;
}

/* Circular plate with spinning image */
.do-card__plate{
  width:100%;
  aspect-ratio:1;
  border-radius:50%;
  overflow:hidden;
  border:4px solid rgba(255,255,255,.15);
  box-shadow:0 8px 24px rgba(0,0,0,.25),inset 0 0 0 2px rgba(255,255,255,.08);
  background:#8B4A1C;
}

/* ✦ THE SPIN — l'image tourne lentement en continu ✦ */
.do-card__img{
  width:108%;
  height:108%;
  margin:-4%;
  object-fit:cover;
  display:block;
  animation:do-plate-spin 18s linear infinite;
  transform-origin:center center;
  transition:animation-duration .3s;
}
.do-card:hover .do-card__img{
  animation-duration:6s; /* tourne plus vite au hover */
}
@keyframes do-plate-spin{
  from{transform:rotate(0deg) scale(1.04)}
  to  {transform:rotate(360deg) scale(1.04)}
}

/* Number badge */
.do-card__num{
  position:absolute;
  top:12px;left:12px;
  width:26px;height:26px;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(6px);
  border-radius:8px;
  display:grid;place-items:center;
  font-size:13px;font-weight:800;color:#fff;
  font-family:'Outfit',Inter,sans-serif;
  border:1px solid rgba(255,255,255,.18);
}

/* Price badge */
.do-card__price{
  position:absolute;
  bottom:8px;right:12px;
  background:#fff;
  border-radius:999px;
  padding:4px 10px;
  font-size:13px;font-weight:800;
  color:#C4703A;
  font-family:'Cormorant Garamond',Georgia,serif;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}

/* Popular badge */
.do-card__pop{
  position:absolute;
  top:12px;right:10px;
  background:linear-gradient(90deg,#F97316,#C4703A);
  border-radius:999px;
  padding:3px 9px;
  font-size:9px;font-weight:800;color:#fff;
  font-family:'Outfit',Inter,sans-serif;
  letter-spacing:.04em;
  box-shadow:0 4px 12px rgba(249,115,22,.35);
}

/* Name */
.do-card__name{
  font-family:'Outfit',Inter,sans-serif;
  font-size:11px;font-weight:700;
  color:rgba(255,255,255,.92);
  text-transform:uppercase;
  letter-spacing:.07em;
  text-align:center;
  padding:10px 8px 12px;
  line-height:1.2;
}

/* Placeholder dots */
.ls-dishes-placeholder{
  grid-column:1/-1;
  display:flex;justify-content:center;align-items:center;
  gap:16px;height:280px;
}
.lsp-dot{
  width:12px;height:12px;border-radius:50%;
  background:#C4703A;opacity:.4;
  animation:lsp-pulse 1.2s ease-in-out infinite;
}
.lsp-dot:nth-child(2){animation-delay:.2s}
.lsp-dot:nth-child(3){animation-delay:.4s}
@keyframes lsp-pulse{0%,100%{transform:scale(1);opacity:.35}50%{transform:scale(1.6);opacity:.8}}

/* Mobile */
@media(max-width:640px){
  .ls-dining-sec{padding:40px 14px 44px}
  .ls-dining-grid{gap:10px;max-width:100%}
  .ls-dining-title{font-size:32px}
  .do-card__name{font-size:10px;padding:8px 6px 10px}
  .do-card__price{font-size:12px;padding:3px 8px}
  .do-card__num{width:22px;height:22px;font-size:11px;border-radius:6px}
}
@media(max-width:380px){
  .ls-dining-grid{gap:8px}
  .do-card__name{font-size:9px}
}

/* ════════════════════════════════════════
   DISH CARDS v2 — style cap2 avec hover
════════════════════════════════════════ */

/* Float animation douce */
@keyframes dish-float {
  0%,100%{ transform:translateY(0px) rotate(0deg); }
  25%    { transform:translateY(-7px) rotate(.4deg); }
  50%    { transform:translateY(-12px) rotate(-.4deg); }
  75%    { transform:translateY(-5px) rotate(.2deg); }
}

/* Card container */
.dish--v2{
  border-radius:22px;overflow:visible;
  background:#FDEFC7;
  border:none;
  box-shadow:0 8px 28px rgba(0,0,0,.13),0 2px 8px rgba(0,0,0,.08);
  cursor:pointer;
  animation:dish-float var(--float-dur,3.5s) ease-in-out var(--float-delay,0s) infinite;
  will-change:transform;
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease;
  position:relative;
}

/* ── HOVER : card grandit ── */
.dish--v2:hover{
  transform:scale(1.07) translateY(-8px) !important;
  box-shadow:0 32px 64px rgba(0,0,0,.22),0 8px 24px rgba(0,0,0,.12);
  animation-play-state:paused;
  z-index:10;
}

/* Inner clip for image */
.dish--v2 .dish__inner{
  border-radius:22px;
  overflow:hidden;
}

/* ── IMAGE ZONE ── */
.dish--v2 .dish__media{
  height:200px;position:relative;overflow:hidden;
}
.dish--v2 .dish__media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.dish--v2:hover .dish__media img{
  transform:scale(1.12);
}

/* Numéro rouge carré */
.dish__num{
  position:absolute;top:10px;left:10px;
  width:34px;height:34px;border-radius:10px;
  background:#E53E00;
  display:grid;place-items:center;
  font-size:16px;font-weight:900;color:#fff;
  font-family:'Outfit',Inter,sans-serif;
  box-shadow:0 4px 12px rgba(229,62,0,.4);
  z-index:3;
}

/* ── FLÈCHE PERMANENTE animée en bas à droite ── */
.dish__arrow{
  position:absolute;
  bottom:16px;right:14px;
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,#F97316,#DC2626);
  box-shadow:0 6px 18px rgba(249,115,22,.45);
  display:grid;place-items:center;
  z-index:6;
  animation:arrow-bounce 1.6s ease-in-out infinite;
}
.dish__arrow svg{
  width:18px;height:18px;color:#fff;
  transition:transform .2s ease;
}
.dish--v2:hover .dish__arrow svg{
  transform:translateX(3px);
}
@keyframes arrow-bounce{
  0%,100%{ transform:translateX(0) scale(1); box-shadow:0 6px 18px rgba(249,115,22,.45); }
  40%    { transform:translateX(4px) scale(1.08); box-shadow:0 10px 26px rgba(249,115,22,.55); }
  70%    { transform:translateX(2px) scale(1.04); box-shadow:0 8px 22px rgba(249,115,22,.50); }
}

/* ── CORPS v2 ── */
.dish__body--v2{
  padding:12px 14px 18px;
  background:#FDEFC7;
  position:relative;
}

/* Nom majuscules bold */
.dish__name--v2{
  font-family:'Outfit',Inter,sans-serif;
  font-size:14px;font-weight:900;
  color:#1A0A00;text-transform:uppercase;letter-spacing:.05em;
  margin:0 0 10px;line-height:1.2;
  transition:color .2s ease;
}
.dish--v2:hover .dish__name--v2{ color:#E53E00; }

/* Footer */
.dish__footer--v2{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}

/* Prix cercle blanc rouge */
.dish__price--v2{
  display:inline-flex;align-items:center;justify-content:center;
  background:#fff;border-radius:999px;padding:5px 14px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:17px;font-weight:800;color:#E53E00;
  box-shadow:0 2px 8px rgba(0,0,0,.10);
  border:1.5px solid rgba(229,62,0,.15);
  transition:transform .2s ease,box-shadow .2s ease;
}
.dish--v2:hover .dish__price--v2{
  transform:scale(1.06);
  box-shadow:0 6px 18px rgba(229,62,0,.25);
}

/* Populaire — inchangé */
.dish--v2 .dish__popular{ top:10px;right:10px; }

/* Mobile */
@media(max-width:640px){
  .dish--v2 .dish__media{height:150px}
  .dish__name--v2{font-size:12px}
  .dish__price--v2{font-size:14px;padding:4px 10px}
  .dish__num{width:28px;height:28px;font-size:13px;border-radius:7px}
  .dish--v2:hover{transform:scale(1.04) translateY(-5px) !important}
  .dish__arrow{width:32px;height:32px;bottom:-12px;right:10px}
}


/* ════════════════════════════════════════
   BACKGROUND ANIMÉ — Cuisine flottante
════════════════════════════════════════ */

/* Container fixe, derrière tout */
.menu-bg-deco{
  position:fixed;inset:0;
  pointer-events:none;z-index:0;
  overflow:hidden;
}

/* Chaque élément décoratif */
.mbd{
  position:absolute;
  opacity:0;
  animation:mbd-appear .6s ease forwards, mbd-drift var(--mbd-dur,8s) ease-in-out var(--mbd-delay,0s) infinite;
  will-change:transform;
  font-size:var(--mbd-size,42px);
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.12));
  user-select:none;
}

/* Apparition progressive */
@keyframes mbd-appear{
  from{opacity:0;transform:scale(.5)}
  to{opacity:var(--mbd-op,.08)}
}

/* Mouvement flottant unique pour chaque */
@keyframes mbd-drift{
  0%,100%{ transform:translateY(0) translateX(0) rotate(0deg) scale(1); }
  20%    { transform:translateY(calc(var(--mbd-y1,-18px))) translateX(calc(var(--mbd-x1,8px))) rotate(calc(var(--mbd-r1,4deg))) scale(1.04); }
  50%    { transform:translateY(calc(var(--mbd-y2,-28px))) translateX(calc(var(--mbd-x2,-6px))) rotate(calc(var(--mbd-r2,-3deg))) scale(1.0); }
  75%    { transform:translateY(calc(var(--mbd-y3,-10px))) translateX(calc(var(--mbd-x3,12px))) rotate(calc(var(--mbd-r3,2deg))) scale(1.03); }
}

/* ── Positions individuelles ── */

/* Fourchette gauche haut */
.mbd--fork1{
  left:1%;top:8%;width:32px;
  --mbd-dur:5.5s;--mbd-delay:.2s;--mbd-op:.12;--mbd-size:28px;
  --mbd-y1:-14px;--mbd-x1:5px;--mbd-r1:5deg;
  --mbd-y2:-24px;--mbd-x2:-4px;--mbd-r2:-3deg;
  --mbd-y3:-10px;--mbd-x3:8px;--mbd-r3:2deg;
  animation-delay:.2s;
}
/* Couteau gauche milieu */
.mbd--knife1{
  left:2%;top:42%;
  --mbd-dur:6.8s;--mbd-delay:.8s;--mbd-op:.10;--mbd-size:26px;
  --mbd-y1:-18px;--mbd-x1:-3px;--mbd-r1:-6deg;
  --mbd-y2:-30px;--mbd-x2:6px;--mbd-r2:4deg;
  --mbd-y3:-12px;--mbd-x3:-5px;--mbd-r3:-2deg;
}
/* Cuillère gauche bas */
.mbd--spoon1{
  left:3%;top:72%;
  --mbd-dur:5.2s;--mbd-delay:1.4s;--mbd-op:.09;--mbd-size:30px;
  --mbd-y1:-20px;--mbd-x1:4px;--mbd-r1:8deg;
  --mbd-y2:-32px;--mbd-x2:-6px;--mbd-r2:-5deg;
  --mbd-y3:-14px;--mbd-x3:10px;--mbd-r3:3deg;
}
/* Fourchette droite haut */
.mbd--fork2{
  right:1.5%;top:12%;
  --mbd-dur:7.2s;--mbd-delay:.5s;--mbd-op:.11;--mbd-size:28px;
  --mbd-y1:-16px;--mbd-x1:-5px;--mbd-r1:-4deg;
  --mbd-y2:-26px;--mbd-x2:4px;--mbd-r2:6deg;
  --mbd-y3:-8px;--mbd-x3:-8px;--mbd-r3:-2deg;
}
/* Couteau droite milieu */
.mbd--knife2{
  right:2%;top:50%;
  --mbd-dur:6s;--mbd-delay:1.2s;--mbd-op:.10;--mbd-size:24px;
  --mbd-y1:-22px;--mbd-x1:6px;--mbd-r1:5deg;
  --mbd-y2:-34px;--mbd-x2:-4px;--mbd-r2:-4deg;
  --mbd-y3:-16px;--mbd-x3:8px;--mbd-r3:2deg;
}
/* Cuillère droite bas */
.mbd--spoon2{
  right:2.5%;top:78%;
  --mbd-dur:5.8s;--mbd-delay:.3s;--mbd-op:.09;--mbd-size:32px;
  --mbd-y1:-14px;--mbd-x1:-4px;--mbd-r1:-7deg;
  --mbd-y2:-24px;--mbd-x2:6px;--mbd-r2:4deg;
  --mbd-y3:-10px;--mbd-x3:-8px;--mbd-r3:-2deg;
}
/* Chapeau de chef gauche */
.mbd--chef1{
  left:5%;top:28%;font-size:40px;
  --mbd-dur:9s;--mbd-delay:.6s;--mbd-op:.13;
  --mbd-y1:-20px;--mbd-x1:8px;--mbd-r1:4deg;
  --mbd-y2:-36px;--mbd-x2:-6px;--mbd-r2:-3deg;
  --mbd-y3:-15px;--mbd-x3:10px;--mbd-r3:2deg;
}
/* Chapeau de chef droite */
.mbd--chef2{
  right:5%;top:35%;font-size:38px;
  --mbd-dur:8.5s;--mbd-delay:1.8s;--mbd-op:.12;
  --mbd-y1:-18px;--mbd-x1:-7px;--mbd-r1:-5deg;
  --mbd-y2:-30px;--mbd-x2:5px;--mbd-r2:4deg;
  --mbd-y3:-12px;--mbd-x3:-8px;--mbd-r3:-2deg;
}
/* Assiette gauche */
.mbd--plate1{
  left:6%;top:60%;font-size:44px;
  --mbd-dur:7.5s;--mbd-delay:2.2s;--mbd-op:.10;
  --mbd-y1:-16px;--mbd-x1:4px;--mbd-r1:3deg;
  --mbd-y2:-28px;--mbd-x2:-5px;--mbd-r2:-4deg;
  --mbd-y3:-10px;--mbd-x3:7px;--mbd-r3:2deg;
}
/* Assiette droite */
.mbd--plate2{
  right:6%;top:65%;font-size:42px;
  --mbd-dur:8s;--mbd-delay:.9s;--mbd-op:.10;
  --mbd-y1:-20px;--mbd-x1:-6px;--mbd-r1:-4deg;
  --mbd-y2:-32px;--mbd-x2:4px;--mbd-r2:5deg;
  --mbd-y3:-14px;--mbd-x3:-8px;--mbd-r3:-2deg;
}
/* Étoile TOP gauche */
.mbd--star1{
  left:8%;top:88%;font-size:28px;
  --mbd-dur:5s;--mbd-delay:3s;--mbd-op:.14;
  --mbd-y1:-24px;--mbd-x1:6px;--mbd-r1:10deg;
  --mbd-y2:-40px;--mbd-x2:-4px;--mbd-r2:-8deg;
  --mbd-y3:-18px;--mbd-x3:8px;--mbd-r3:5deg;
}
/* Poivrier droite haut */
.mbd--pepper{
  right:7%;top:20%;font-size:32px;
  --mbd-dur:6.5s;--mbd-delay:1.6s;--mbd-op:.11;
  --mbd-y1:-18px;--mbd-x1:-5px;--mbd-r1:-6deg;
  --mbd-y2:-28px;--mbd-x2:4px;--mbd-r2:8deg;
  --mbd-y3:-10px;--mbd-x3:-7px;--mbd-r3:-3deg;
}

/* SVG Fourchette inline pour mbd--fork */
.mbd-fork-svg,.mbd-knife-svg,.mbd-spoon-svg{
  display:block;
  filter:drop-shadow(0 3px 6px rgba(249,115,22,.35));
}

/* ════════════════════════════════════════
   MENU HEADER — Glassmorphism Premium
════════════════════════════════════════ */

/* ── Conteneur principal ── */
.mh {
  position: sticky;
  top: 0;
  z-index: 55;
  /* Glassmorphism beige */
  background: rgba(245, 240, 232, 0.72);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid rgba(196, 112, 58, 0.18);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.6) inset,
    0 8px 32px rgba(0,0,0,0.08);
  transition: background .3s ease, box-shadow .3s ease;
  overflow: hidden;
}
/* Scrollé = plus opaque */
.mh.is-scrolled {
  background: rgba(245, 240, 232, 0.92);
  box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset, 0 12px 40px rgba(0,0,0,0.12);
}

/* ── Particules décoratives flottantes ── */
.mh-particles { position:absolute;inset:0;pointer-events:none;overflow:hidden; }
.mh-p {
  position:absolute;
  color:#C4703A;
  font-size:10px;
  opacity:0;
  animation: mhp-float 6s ease-in-out infinite;
}
.mh-p--1{ left:12%;  top:20%; animation-delay:0s;   font-size:9px;  }
.mh-p--2{ left:88%;  top:30%; animation-delay:1.5s; font-size:8px;  }
.mh-p--3{ left:30%;  top:60%; animation-delay:3s;   font-size:14px; color:#F97316; }
.mh-p--4{ left:70%;  top:55%; animation-delay:4.5s; font-size:12px; color:#DC2626; }

@keyframes mhp-float {
  0%,100% { opacity:0;   transform:translateY(0) scale(.8);  }
  20%     { opacity:.45; }
  50%     { opacity:.3;  transform:translateY(-8px) scale(1); }
  80%     { opacity:.2;  }
}

/* ── Inner ── */
.mh-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: relative;
  z-index: 2;
}

/* ── Brand / Logo ── */
.mh-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}
.mh-brand__logo {
  width: 42px; height: 42px;
  border-radius: 13px;
  background: linear-gradient(135deg, #F97316, #DC2626);
  display: grid; place-items: center;
  color: #fff;
  box-shadow: 0 8px 20px rgba(249,115,22,.30);
  transition: transform .25s ease, box-shadow .25s ease;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
.mh-brand__logo::after {
  content:'';
  position:absolute;inset:0;
  background: linear-gradient(135deg,rgba(255,255,255,.25),transparent 60%);
  border-radius:inherit;
}
.mh-brand:hover .mh-brand__logo {
  transform: scale(1.08) rotate(-3deg);
  box-shadow: 0 12px 28px rgba(249,115,22,.40);
}
.mh-brand__name {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 18px; font-weight: 800;
  color: #1A0F06;
  letter-spacing: -.02em;
  display: block;
  line-height: 1;
}
.mh-brand__tag {
  font-family: 'Outfit', Inter, sans-serif;
  font-size: 10px; font-weight: 600;
  color: #C4703A;
  letter-spacing: .08em;
  text-transform: uppercase;
  display: block;
  margin-top: 2px;
}

/* ── NAV pill centrale ── */
.mh-nav__pill {
  display: flex;
  align-items: center;
  gap: 2px;
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(196,112,58,.20);
  border-radius: 999px;
  padding: 4px;
  backdrop-filter: blur(8px);
  box-shadow: 0 2px 12px rgba(0,0,0,.06), 0 1px 0 rgba(255,255,255,.8) inset;
}
.mh-nav__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  font-family: 'Outfit', Inter, sans-serif;
  color: #6B5C4A;
  text-decoration: none;
  transition: all .22s ease;
  position: relative;
  white-space: nowrap;
}
.mh-nav__btn:hover {
  color: #C4703A;
  background: rgba(196,112,58,.10);
}
/* Bouton actif */
.mh-nav__btn--active {
  background: linear-gradient(135deg, #F97316, #DC2626);
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(249,115,22,.35);
}
.mh-nav__btn--active:hover {
  background: linear-gradient(135deg, #EA6C10, #C41E1E);
}
/* Point animé sur bouton actif */
.mh-nav__dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,.8);
  animation: mh-dot-pulse 1.8s ease-in-out infinite;
}
@keyframes mh-dot-pulse {
  0%,100% { opacity:.8; transform:scale(1);   }
  50%     { opacity:1;  transform:scale(1.4); }
}

/* ── Actions droite ── */
.mh-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Bouton Suivi */
.mh-track {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1.5px solid rgba(196,112,58,.35);
  background: transparent;
  color: #C4703A;
  font-size: 12px;
  font-weight: 700;
  font-family: 'Outfit', Inter, sans-serif;
  cursor: pointer;
  transition: all .22s ease;
}
.mh-track:hover {
  background: rgba(196,112,58,.10);
  border-color: #C4703A;
  transform: translateY(-1px);
}

/* Bouton Panier */
.mh-cart {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 14px;
  border: 0;
  background: linear-gradient(135deg, #F97316, #DC2626);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  font-family: 'Outfit', Inter, sans-serif;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(249,115,22,.30);
  transition: transform .2s ease, box-shadow .2s ease;
  position: relative;
  overflow: hidden;
}
.mh-cart::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg,rgba(255,255,255,.18),transparent 55%);
}
.mh-cart:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(249,115,22,.42);
}
.mh-cart:active { transform: scale(.96); }
.mh-cart__badge {
  position: absolute;
  top: -10px; right: -10px;
  min-width: 22px; height: 22px;
  padding: 0 5px;
  border-radius: 999px;
  background: #fff;
  color: #DC2626;
  font-size: 12px; font-weight: 900;
  display: grid; place-items: center;
  border: 2.5px solid #DC2626;
  box-shadow: 0 3px 10px rgba(0,0,0,.25);
  font-family: 'Outfit', Inter, sans-serif;
  animation: mh-badge-pop .3s cubic-bezier(.34,1.56,.64,1);
}
@keyframes mh-badge-pop {
  from { transform: scale(0); }
  to   { transform: scale(1); }
}

/* ── Barre de progression scroll ── */
.mh-progress {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: rgba(196,112,58,.12);
}
.mh-progress__bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #F97316, #DC2626);
  transition: width .1s linear;
  border-radius: 0 999px 999px 0;
  box-shadow: 0 0 8px rgba(249,115,22,.5);
}

/* ── Mobile ── */
@media(max-width:900px) {
  .mh-nav { display: none; }
}
@media(max-width:640px) {
  .mh-inner { padding: 8px 14px; }
  .mh-brand__tag { display: none; }
  .mh-brand__name { font-size: 15px; }
  .mh-brand__logo { width: 36px; height: 36px; border-radius: 10px; }
  .mh-track__text { display: none; }
  .mh-track { padding: 9px 11px; }
  .mh-cart__text { display: none; }
  .mh-cart { padding: 10px 12px; }
}

/* ════════════════════════════════════════
   PAGE LOCALISATION — Version Premium
════════════════════════════════════════ */

body.is-location .footer{display:none}
body.is-location .main{padding:0}
body.is-location .container{max-width:none;padding:0}

/* ── Page wrapper avec background vivant ── */
.loc-page{
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
  background:#F5F0E8;
}

/* Background décoratif : halos subtils beige */
.loc-page::before{
  content:'';position:fixed;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 70% 50% at 15% 20%, rgba(196,112,58,.10) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 85% 75%, rgba(220,38,38,.07) 0%, transparent 55%),
    radial-gradient(ellipse 40% 35% at 50% 50%, rgba(249,115,22,.05) 0%, transparent 50%);
  pointer-events:none;
}

/* Grain texture */
.loc-page::after{
  content:'';position:fixed;inset:0;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");
  pointer-events:none;opacity:.5;
}

/* Floating food emojis background */
.loc-bg-decos{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.loc-bg-decos span{
  position:absolute;font-size:var(--s,32px);opacity:0;
  animation:loc-bg-float var(--dur,8s) ease-in-out var(--del,0s) infinite;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));
}
@keyframes loc-bg-float{
  0%{opacity:0;transform:translateY(20px) scale(.8) rotate(0deg)}
  15%{opacity:var(--op,.06)}
  50%{opacity:var(--op,.06);transform:translateY(calc(var(--y,-30px))) scale(1) rotate(var(--r,8deg))}
  85%{opacity:var(--op,.06)}
  100%{opacity:0;transform:translateY(20px) scale(.8) rotate(0deg)}
}

/* ── Header sticky ── */
.loc-header{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;
  background:rgba(245,240,232,.85);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(196,112,58,.18);
}
.loc-back{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;border-radius:999px;
  border:1.5px solid rgba(196,112,58,.35);
  background:transparent;
  color:#C4703A;
  font-size:13px;font-weight:700;cursor:pointer;
  font-family:'Outfit',Inter,sans-serif;
  transition:all .22s ease;
}
.loc-back:hover{background:rgba(196,112,58,.10);transform:translateX(-3px)}
.loc-header__title{
  display:flex;align-items:center;gap:8px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:18px;font-weight:700;color:#1A0F06;
}

/* ── Map hero ── */
.loc-hero{
  position:relative;height:52vh;min-height:300px;overflow:hidden;
  z-index:1;
}
#locMap{width:100%;height:100%;z-index:1;filter:sepia(25%) saturate(70%) brightness(.9)}

/* Custom map marker */
.loc-map-marker{position:relative;width:50px;height:50px;display:flex;align-items:center;justify-content:center}
.loc-map-marker__pulse{
  position:absolute;inset:0;border-radius:50%;
  background:rgba(196,112,58,.35);
  animation:loc-pulse 2s ease-out infinite;
}
@keyframes loc-pulse{
  0%{transform:scale(.8);opacity:.9}
  100%{transform:scale(2.4);opacity:0}
}
.loc-map-marker__pin{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,#F97316,#DC2626);
  display:grid;place-items:center;font-size:22px;
  box-shadow:0 8px 24px rgba(249,115,22,.55);
  border:3px solid #fff;position:relative;z-index:2;
}

/* ── Floating card sur map ── */
.loc-floating-card{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  z-index:10;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(16px);
  border-radius:20px;padding:14px 18px;
  display:flex;align-items:center;gap:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.16),0 1px 0 rgba(255,255,255,.9) inset;
  border:1px solid rgba(196,112,58,.22);
  white-space:nowrap;
  animation:loc-card-rise .7s cubic-bezier(.22,1,.36,1) .4s both;
}
@keyframes loc-card-rise{
  from{opacity:0;transform:translateX(-50%) translateY(24px)}
  to{opacity:1;transform:translateX(-50%) translateY(0)}
}
.loc-floating-card__icon{font-size:30px}
.loc-floating-card__name{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:17px;font-weight:800;color:#1A0F06;
}
.loc-floating-card__addr{font-size:11px;color:#8A7060;font-family:'Outfit',Inter,sans-serif;margin-top:2px}
.loc-floating-card__open{
  display:flex;align-items:center;gap:6px;
  font-size:11px;font-weight:700;color:#16A34A;
  background:rgba(22,163,74,.10);padding:5px 12px;
  border-radius:999px;border:1px solid rgba(22,163,74,.25);
}
.loc-open-dot{width:7px;height:7px;border-radius:50%;background:#4ADE80;animation:loc-pulse-green 1.4s ease-in-out infinite}
@keyframes loc-pulse-green{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}

/* ── Content ── */
.loc-content{
  position:relative;z-index:2;
  padding:32px 20px 56px;
  display:flex;flex-direction:column;gap:22px;
  max-width:820px;margin:0 auto;width:100%;
}

/* ── Story ── */
.loc-story{
  position:relative;
  padding:28px 26px 26px 28px;
  background:#fff;
  border-radius:22px;
  border:1px solid rgba(196,112,58,.18);
  box-shadow:0 8px 28px rgba(0,0,0,.07);
  overflow:hidden;
}
.loc-story::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,#C4703A,#F97316,transparent);
}
.loc-story__quote{
  position:absolute;top:-10px;left:18px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:80px;font-weight:800;color:#C4703A;opacity:.15;line-height:1;
}
.loc-story__text{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:18px;line-height:1.75;color:#3A2D1F;
  margin:0;font-style:italic;position:relative;z-index:1;
}
.loc-story__text strong{color:#C4703A;font-style:normal}

/* ── Info grid ── */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.loc-card{
  border-radius:24px;padding:24px;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1.5px solid rgba(196,112,58,.18);
  box-shadow:
    0 8px 32px rgba(196,112,58,.08),
    0 2px 8px rgba(0,0,0,.04),
    0 1px 0 rgba(255,255,255,.9) inset;
  transition:transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, border-color .3s ease;
  position:relative;overflow:hidden;cursor:default;
  animation:loc-card-float var(--lc-dur,4s) ease-in-out var(--lc-del,0s) infinite;
}
.loc-card:nth-child(1){--lc-dur:4.2s;--lc-del:0s}
.loc-card:nth-child(2){--lc-dur:5s;--lc-del:.6s}
.loc-card:nth-child(3){--lc-dur:4.6s;--lc-del:1.2s}
.loc-card:nth-child(4){--lc-dur:5.4s;--lc-del:1.8s}

@keyframes loc-card-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

/* Ligne terracotta unifiée en haut */
.loc-card::before{
  content:'';position:absolute;top:0;left:20%;right:20%;height:2px;
  background:linear-gradient(90deg,transparent,#C4703A,#F97316,#C4703A,transparent);
  border-radius:0 0 4px 4px;
  opacity:.7;
}

/* Reflet lumineux en haut à gauche */
.loc-card::after{
  content:'';position:absolute;
  top:-30px;left:-30px;
  width:120px;height:120px;
  background:radial-gradient(circle, rgba(232,196,122,.14) 0%, transparent 70%);
  pointer-events:none;
}

.loc-card:hover{
  transform:translateY(-10px) scale(1.02);
  box-shadow:
    0 20px 50px rgba(196,112,58,.14),
    0 6px 16px rgba(0,0,0,.06),
    0 1px 0 rgba(255,255,255,.9) inset;
  border-color:rgba(196,112,58,.35);
  animation-play-state:paused;
}

.loc-card__icon{font-size:28px;margin-bottom:10px;display:block}
.loc-card__title{
  font-size:10px;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;margin-bottom:12px;
  font-family:'Outfit',Inter,sans-serif;
  color:#C4703A;
}
.loc-card__val{font-size:13px;color:#3A2D1F;line-height:1.6;font-family:'Outfit',Inter,sans-serif}
.loc-card__val strong{color:#1A0F06}
.loc-hours{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:4px 0;border-bottom:1px solid rgba(196,112,58,.10)}
.loc-hours:last-child{border-bottom:none}
.loc-hours span:first-child{color:#8A7060}
.loc-hours span:last-child{font-weight:700;color:#1A0F06}
.loc-hours--closed span{color:#DC2626 !important}
.loc-metro{display:flex;align-items:center;gap:10px;font-size:12px;color:#3A2D1F;margin-bottom:6px}
.loc-metro__line{width:22px;height:22px;border-radius:5px;display:grid;place-items:center;font-size:11px;font-weight:900;flex-shrink:0}
.loc-metro__line--1{background:#FFCD00;color:#000}
.loc-metro__line--9{background:#B6A8D5;color:#000}

.loc-call-btn{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:12px;padding:9px 16px;border-radius:999px;
  background:linear-gradient(135deg,#10B981,#059669);
  color:#fff;font-size:12px;font-weight:700;
  text-decoration:none;font-family:'Outfit',Inter,sans-serif;
  box-shadow:0 6px 18px rgba(16,185,129,.30);
  transition:transform .2s ease,box-shadow .2s ease;
}
.loc-call-btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(16,185,129,.40)}

/* ── Stats ── */
.loc-stats{
  display:flex;justify-content:space-around;align-items:center;
  background:#fff;
  border-radius:22px;padding:28px 20px;
  border:1px solid rgba(196,112,58,.18);
  box-shadow:0 8px 28px rgba(0,0,0,.07);
  position:relative;overflow:hidden;
}
.loc-stats::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#F97316,#E8C47A,#DC2626);
}
.loc-stat-item{text-align:center}
.loc-stat-item__num{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:42px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#C4703A 0%,#F97316 50%,#C4703A 100%);
  background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:loc-shine 3s linear infinite;
}
@keyframes loc-shine{0%{background-position:0% center}100%{background-position:200% center}}
.loc-stat-item__lbl{font-size:11px;color:#8A7060;font-family:'Outfit',Inter,sans-serif;font-weight:600;letter-spacing:.06em;margin-top:4px}
.loc-stat-sep{width:1px;height:50px;background:rgba(196,112,58,.2)}

/* ── CTA ── */
.loc-cta{display:flex;gap:12px;flex-wrap:wrap}
.loc-cta__btn{
  flex:1;min-width:140px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 22px;border-radius:16px;
  font-size:14px;font-weight:700;
  text-decoration:none;font-family:'Outfit',Inter,sans-serif;
  transition:transform .22s ease,box-shadow .22s ease;
}
.loc-cta__btn--primary{
  background:linear-gradient(135deg,#F97316,#DC2626);color:#fff;
  box-shadow:0 12px 32px rgba(249,115,22,.32);
  border:1px solid rgba(255,255,255,.12);
  position:relative;overflow:hidden;
}
.loc-cta__btn--primary::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 60%);
}
.loc-cta__btn--primary:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(249,115,22,.42)}
.loc-cta__btn--outline{
  background:transparent;color:#C4703A;
  border:1.5px solid rgba(196,112,58,.40);
}
.loc-cta__btn--outline:hover{background:rgba(196,112,58,.08);transform:translateY(-3px)}

/* Leaflet overrides */
.leaflet-control-zoom{margin-bottom:80px !important;margin-right:14px !important}
.leaflet-popup-content-wrapper{border-radius:14px !important;font-family:'Outfit',Inter,sans-serif !important;background:#1A0F06 !important;color:#fff !important;box-shadow:0 16px 40px rgba(0,0,0,.35) !important}
.leaflet-popup-tip{background:#1A0F06 !important}
.leaflet-popup-content a{color:#E8C47A}

/* ── Entrance animations ── */
.loc-anim{
  opacity:0;transform:translateY(28px);
}

/* ── Mobile ── */
@media(max-width:640px){
  .loc-hero{height:42vh}
  .loc-grid{grid-template-columns:1fr}
  .loc-floating-card{bottom:12px;left:12px;right:12px;transform:none;white-space:normal;gap:10px}
  @keyframes loc-card-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  .loc-stat-item__num{font-size:32px}
  .loc-story__text{font-size:15px}
  .loc-content{padding:22px 14px 40px}
  .loc-stats{padding:20px 14px}
}

/* ════════════════════════════════════════
   PAGE ABOUT US — Version Créative Premium
════════════════════════════════════════ */

body.is-about .footer{display:none}
body.is-about .main{padding:0}
body.is-about .container{max-width:none;padding:0}

.ab-page{
  min-height:100vh;
  background:#F5F0E8;
  position:relative;
  overflow:hidden;
}
/* Halos de lumière subtils */
.ab-page::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 60% 50% at 10% 20%,rgba(196,112,58,.12) 0%,transparent 60%),
    radial-gradient(ellipse 50% 40% at 90% 70%,rgba(220,38,38,.08) 0%,transparent 55%);
}

/* ════ ORBITES ROTATIONNELLES ════ */
.ab-orbitals{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  overflow:hidden;
}

/* Chaque orbite = un cercle invisible qui tourne */
.ab-orbit{
  position:absolute;
  border-radius:50%;
  border:1px dashed rgba(196,112,58,.12);
}

/* L'item est positionné en haut du cercle et tourne avec lui */
.ab-orbit__track{
  position:absolute;
  top:0;left:50%;
  transform-origin:0 50%;
  animation:inherit;
  animation-name:none;
}
/* Counter-rotate l'item pour qu'il reste droit */
.ab-orbit__item{
  transform:translateX(-50%) translateY(-50%);
  animation:ab-item-counter var(--ab-dur,20s) linear infinite;
}

/* Orbite 1 — grande, lente (assiette) */
.ab-orbit--1{
  width:500px;height:500px;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  animation:ab-orbit-cw 28s linear infinite;
  --ab-dur:28s;
}
/* Orbite 2 — fourchette, inverse */
.ab-orbit--2{
  width:340px;height:340px;
  top:20%;left:10%;
  animation:ab-orbit-ccw 18s linear infinite;
  --ab-dur:18s;
}
/* Orbite 3 — pizza, petite rapide */
.ab-orbit--3{
  width:260px;height:260px;
  top:60%;right:8%;
  animation:ab-orbit-cw 14s linear infinite;
  --ab-dur:14s;
}
/* Orbite 4 — cuillère */
.ab-orbit--4{
  width:420px;height:420px;
  bottom:5%;left:5%;
  animation:ab-orbit-ccw 22s linear infinite;
  --ab-dur:22s;
}

@keyframes ab-orbit-cw  { from{transform:translate(-50%,-50%) rotate(0deg)}   to{transform:translate(-50%,-50%) rotate(360deg)}  }
@keyframes ab-orbit-ccw { from{transform:translate(-50%,-50%) rotate(0deg)}   to{transform:translate(-50%,-50%) rotate(-360deg)} }
@keyframes ab-item-counter{ from{transform:translateX(-50%) translateY(-50%) rotate(0deg)} to{transform:translateX(-50%) translateY(-50%) rotate(-360deg)} }

/* Taille des items orbitaux */
.ab-orbit__item--plate{ font-size:38px; opacity:.12; }
.ab-orbit__item--fork { opacity:.14; }
.ab-orbit__item--pizza{ font-size:32px; opacity:.11; }
.ab-orbit__item--spoon{ opacity:.13; }

/* Orbites 2, 3, 4 : l'item n'a pas de transform-origin propre, recalculer */
.ab-orbit--2 .ab-orbit__track{ transform-origin:0 170px; top:50%;left:50%; }
.ab-orbit--3 .ab-orbit__track{ transform-origin:0 130px; top:50%;left:50%; }
.ab-orbit--4 .ab-orbit__track{ transform-origin:0 210px; top:50%;left:50%; }

/* Floating extras */
.ab-float{
  position:absolute;
  font-size:var(--af-size,28px);
  opacity:0;
  animation:ab-float-in var(--af-dur,7s) ease-in-out var(--af-del,0s) infinite;
}
@keyframes ab-float-in{
  0%,100%{opacity:0;transform:translateY(10px) scale(.9) rotate(0deg)}
  20%    {opacity:var(--af-op,.07)}
  50%    {opacity:var(--af-op,.07);transform:translateY(var(--af-y,-20px)) scale(1) rotate(var(--af-r,5deg))}
  80%    {opacity:var(--af-op,.07)}
}
.ab-float--1{left:5%;top:30%;--af-size:34px;--af-dur:8s;--af-del:0s;--af-op:.09;--af-y:-24px;--af-r:8deg}
.ab-float--2{left:90%;top:25%;--af-size:22px;--af-dur:6s;--af-del:1s;--af-op:.12;--af-y:-16px;--af-r:-5deg}
.ab-float--3{left:15%;top:70%;--af-size:30px;--af-dur:9s;--af-del:2s;--af-op:.08;--af-y:-20px;--af-r:6deg}
.ab-float--4{left:80%;top:65%;--af-size:28px;--af-dur:7s;--af-del:.5s;--af-op:.09;--af-y:-18px;--af-r:-8deg}
.ab-float--5{left:45%;top:5%;--af-size:24px;--af-dur:10s;--af-del:3s;--af-op:.08;--af-y:-14px;--af-r:4deg}
.ab-float--6{left:3%;top:55%;--af-size:28px;--af-dur:7.5s;--af-del:1.5s;--af-op:.09;--af-y:-22px;--af-r:-6deg}
.ab-float--7{left:88%;top:45%;--af-size:18px;--af-dur:5s;--af-del:2.5s;--af-op:.14;--af-y:-10px;--af-r:12deg;color:#C4703A}
.ab-float--8{left:20%;top:10%;--af-size:16px;--af-dur:6.5s;--af-del:4s;--af-op:.14;--af-y:-12px;--af-r:-8deg;color:#C4703A}

/* ════ HEADER ════ */
.ab-header{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;
  background:rgba(245,240,232,.82);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(196,112,58,.15);
}
.ab-back{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;border-radius:999px;
  border:1.5px solid rgba(196,112,58,.32);
  background:transparent;color:#C4703A;
  font-size:13px;font-weight:700;cursor:pointer;
  font-family:'Outfit',Inter,sans-serif;
  transition:all .22s ease;
}
.ab-back:hover{background:rgba(196,112,58,.10);transform:translateX(-3px)}
.ab-header__badge{
  font-size:12px;font-weight:700;color:#C4703A;
  letter-spacing:.08em;font-family:'Outfit',Inter,sans-serif;
}

/* ════ HERO ════ */
.ab-hero{
  position:relative;z-index:2;
  text-align:center;
  padding:48px 20px 32px;
  display:flex;flex-direction:column;align-items:center;
}
.ab-hero__eyebrow{
  display:inline-block;
  font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:#C4703A;
  background:rgba(196,112,58,.10);border:1px solid rgba(196,112,58,.22);
  padding:5px 14px;border-radius:999px;
  margin-bottom:20px;font-family:'Outfit',Inter,sans-serif;
}
.ab-hero__title{
  margin:0 0 16px;display:flex;flex-direction:column;align-items:center;line-height:.88;
}
.ab-hero__title-line1{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(50px,14vw,90px);font-weight:600;
  color:rgba(26,15,6,.55);letter-spacing:-.04em;
}
.ab-hero__title-line2{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(70px,20vw,130px);font-weight:800;
  color:#1A0F06;letter-spacing:-.05em;line-height:.85;
}
.ab-hero__title-line3{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(60px,17vw,110px);font-weight:800;font-style:italic;
  background:linear-gradient(135deg,#C4703A,#F97316,#C4703A);
  background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:ab-shine 4s linear infinite;letter-spacing:-.05em;
}
@keyframes ab-shine{0%{background-position:0% center}100%{background-position:200% center}}
.ab-hero__tagline{
  font-size:15px;color:#6B5C4A;line-height:1.6;margin:0;
  font-family:'Outfit',Inter,sans-serif;font-weight:300;
}

/* Spinning plate hero */
.ab-hero__spinning-plate{
  position:relative;width:100px;height:100px;
  margin:24px auto 0;display:flex;align-items:center;justify-content:center;
}
.ab-spin-ring{
  position:absolute;border-radius:50%;
  border:2px solid rgba(196,112,58,.2);
}
.ab-spin-ring--1{width:100px;height:100px;animation:ab-ring-spin 8s linear infinite}
.ab-spin-ring--2{width:74px;height:74px;animation:ab-ring-spin 5s linear infinite reverse}
.ab-spin-ring--3{width:48px;height:48px;animation:ab-ring-spin 3s linear infinite}
@keyframes ab-ring-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.ab-spin-core{font-size:30px;position:relative;z-index:2;animation:ab-ring-spin 12s linear infinite reverse}

/* ════ CONTENT ════ */
.ab-content{
  position:relative;z-index:2;
  padding:8px 20px 56px;
  max-width:820px;margin:0 auto;
  display:flex;flex-direction:column;gap:22px;
}

/* Entrance anim */
.ab-anim{
  opacity:0;transform:translateY(28px);
}

/* ── Story ── */
.ab-story{
  display:flex;gap:18px;align-items:flex-start;
  background:rgba(255,255,255,.65);
  backdrop-filter:blur(14px);
  border-radius:24px;padding:26px;
  border:1.5px solid rgba(196,112,58,.16);
  box-shadow:0 8px 28px rgba(196,112,58,.08),0 1px 0 rgba(255,255,255,.9) inset;
}
.ab-story__num{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:56px;font-weight:800;color:#C4703A;opacity:.25;
  line-height:1;flex-shrink:0;margin-top:-8px;
}
.ab-story__title{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:26px;font-weight:800;color:#1A0F06;margin:0 0 10px;letter-spacing:-.02em;
}
.ab-story__text{
  font-size:14px;color:#4A3728;line-height:1.75;margin:0;
  font-family:'Outfit',Inter,sans-serif;font-weight:300;
}

/* ── Valeurs ── */
.ab-values{background:transparent}
.ab-values__title{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:30px;font-weight:800;color:#1A0F06;text-align:center;
  margin:0 0 18px;letter-spacing:-.02em;
  display:flex;align-items:center;justify-content:center;gap:12px;
}
.ab-values__title-deco{color:#C4703A;font-size:20px}
.ab-values__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.ab-val-card{
  background:rgba(255,255,255,.60);
  backdrop-filter:blur(12px);
  border-radius:20px;padding:20px;
  border:1.5px solid rgba(196,112,58,.14);
  box-shadow:0 6px 20px rgba(196,112,58,.07),0 1px 0 rgba(255,255,255,.85) inset;
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease;
  animation:ab-val-float var(--av-dur,4s) ease-in-out var(--av-del,0s) infinite;
}
.ab-val-card:nth-child(1){--av-dur:4.2s;--av-del:0s}
.ab-val-card:nth-child(2){--av-dur:5s;--av-del:.5s}
.ab-val-card:nth-child(3){--av-dur:4.6s;--av-del:1s}
.ab-val-card:nth-child(4){--av-dur:5.4s;--av-del:1.5s}
@keyframes ab-val-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.ab-val-card:hover{transform:translateY(-8px) scale(1.03)!important;animation-play-state:paused;box-shadow:0 18px 42px rgba(196,112,58,.14)}
.ab-val-card__icon{font-size:30px;margin-bottom:8px}
.ab-val-card__title{font-family:'Outfit',Inter,sans-serif;font-size:14px;font-weight:800;color:#1A0F06;margin-bottom:5px}
.ab-val-card__text{font-size:12px;color:#6B5C4A;line-height:1.55;font-family:'Outfit',Inter,sans-serif}

/* ── Timeline ── */
.ab-timeline{
  background:rgba(255,255,255,.60);
  backdrop-filter:blur(14px);
  border-radius:24px;padding:26px;
  border:1.5px solid rgba(196,112,58,.14);
  box-shadow:0 8px 28px rgba(196,112,58,.07),0 1px 0 rgba(255,255,255,.9) inset;
  position:relative;
}
.ab-timeline__title{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:26px;font-weight:800;color:#1A0F06;margin:0 0 22px;
}
.ab-tl-items{display:flex;flex-direction:column;gap:0;position:relative}
.ab-tl-items::before{
  content:'';position:absolute;left:12px;top:8px;bottom:8px;
  width:2px;background:linear-gradient(180deg,#F97316,#C4703A,rgba(196,112,58,.2));
}
.ab-tl-item{display:flex;gap:20px;padding:12px 0;position:relative}
.ab-tl-item__dot{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#F97316,#C4703A);
  border:3px solid #F5F0E8;
  box-shadow:0 4px 12px rgba(249,115,22,.35);
  position:relative;z-index:1;margin-top:2px;
}
.ab-tl-item__year{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:22px;font-weight:800;color:#C4703A;flex-shrink:0;width:52px;margin-top:-1px;
}
.ab-tl-item__text{font-size:13px;color:#4A3728;line-height:1.55;font-family:'Outfit',Inter,sans-serif;padding-top:3px}

/* ── Chef ── */
.ab-chef{
  display:flex;gap:22px;align-items:center;
  background:linear-gradient(135deg,#1A0F06,#2D1810);
  border-radius:24px;padding:26px;
  border:1px solid rgba(196,112,58,.25);
  box-shadow:0 20px 50px rgba(0,0,0,.15);
  position:relative;overflow:hidden;
}
.ab-chef::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,#C4703A,#F97316,transparent);
}
.ab-chef__photo-wrap{
  position:relative;flex-shrink:0;width:90px;height:90px;
  display:flex;align-items:center;justify-content:center;
}
.ab-chef__photo-ring{
  position:absolute;inset:0;border-radius:50%;
  border:2px solid rgba(196,112,58,.4);
  animation:ab-ring-spin 8s linear infinite;
}
.ab-chef__photo{
  width:76px;height:76px;border-radius:50%;
  background:linear-gradient(135deg,#F97316,#C4703A);
  display:grid;place-items:center;font-size:36px;
  box-shadow:0 8px 24px rgba(249,115,22,.35);
  border:3px solid rgba(255,255,255,.1);
}
.ab-chef__photo-badge{
  position:absolute;bottom:-4px;right:-4px;
  background:#E8C47A;color:#1A0F06;
  font-size:9px;font-weight:900;padding:3px 7px;border-radius:999px;
  font-family:'Outfit',Inter,sans-serif;letter-spacing:.04em;
}
.ab-chef__kicker{font-size:10px;font-weight:700;color:#C4703A;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-family:'Outfit',Inter,sans-serif}
.ab-chef__name{font-family:'Cormorant Garamond',Georgia,serif;font-size:26px;font-weight:800;color:#E8C47A;margin:0 0 8px}
.ab-chef__bio{font-size:13px;color:rgba(255,255,255,.65);line-height:1.65;margin:0 0 14px;font-family:'Outfit',Inter,sans-serif}
.ab-chef__awards{display:flex;gap:8px;flex-wrap:wrap}
.ab-award{
  font-size:11px;font-weight:700;
  background:rgba(196,112,58,.18);color:#E8C47A;
  padding:4px 10px;border-radius:999px;
  border:1px solid rgba(196,112,58,.30);
  font-family:'Outfit',Inter,sans-serif;
}

/* ── Stats ── */
.ab-stats{
  display:flex;align-items:center;justify-content:space-around;
  background:rgba(255,255,255,.65);backdrop-filter:blur(14px);
  border-radius:22px;padding:24px 16px;
  border:1.5px solid rgba(196,112,58,.16);
  box-shadow:0 8px 28px rgba(196,112,58,.08),0 1px 0 rgba(255,255,255,.9) inset;
  position:relative;overflow:hidden;
}
.ab-stats::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,#C4703A,#F97316,#C4703A,transparent);
}
.ab-stat{text-align:center}
.ab-stat__num{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:38px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#C4703A,#F97316,#C4703A);
  background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:ab-shine 3s linear infinite;
}
.ab-stat__lbl{font-size:10px;font-weight:600;color:#8A7060;letter-spacing:.06em;margin-top:4px;font-family:'Outfit',Inter,sans-serif;text-transform:uppercase}
.ab-stat__sep{width:1px;height:44px;background:rgba(196,112,58,.2)}

/* ── CTA ── */
.ab-cta{display:flex;gap:12px;flex-wrap:wrap}
.ab-cta__btn{
  flex:1;min-width:160px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 22px;border-radius:16px;
  font-size:14px;font-weight:700;text-decoration:none;
  font-family:'Outfit',Inter,sans-serif;
  transition:transform .22s ease,box-shadow .22s ease;
  background:linear-gradient(135deg,#F97316,#DC2626);color:#fff;
  box-shadow:0 10px 30px rgba(249,115,22,.28);
  border:1px solid rgba(255,255,255,.12);
  position:relative;overflow:hidden;
}
.ab-cta__btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 55%)}
.ab-cta__btn:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(249,115,22,.38)}
.ab-cta__btn--ghost{
  background:rgba(196,112,58,.08);color:#C4703A;
  border:1.5px solid rgba(196,112,58,.32);
  box-shadow:none;
}
.ab-cta__btn--ghost::before{display:none}
.ab-cta__btn--ghost:hover{background:rgba(196,112,58,.16);box-shadow:0 8px 22px rgba(196,112,58,.15)}

/* Mobile */
@media(max-width:640px){
  .ab-hero{padding:36px 16px 24px}
  .ab-content{padding:6px 14px 44px;gap:16px}
  .ab-values__grid{grid-template-columns:1fr}
  .ab-chef{flex-direction:column;text-align:center}
  .ab-chef__awards{justify-content:center}
  .ab-stats{flex-wrap:wrap;gap:12px}
  .ab-stat__sep{display:none}
  .ab-story{flex-direction:column;gap:8px}
  .ab-story__num{font-size:40px}
  .ab-tl-items::before{left:10px}
}

/* ════════════════════════════════════════
   HEADER PARTAGÉ — variante sous-pages
════════════════════════════════════════ */

/* Bouton retour — remplace panier sur pages secondaires */
.mh-sub-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border-radius: 999px;
  border: 1.5px solid rgba(196,112,58,.32);
  background: transparent;
  color: #C4703A;
  font-size: 13px;
  font-weight: 700;
  font-family: 'Outfit', Inter, sans-serif;
  text-decoration: none;
  cursor: pointer;
  transition: all .22s ease;
  flex-shrink: 0;
}
.mh-sub-back:hover {
  background: rgba(196,112,58,.10);
  transform: translateX(-3px);
  border-color: #C4703A;
}
.mh-sub-back svg {
  transition: transform .22s ease;
}
.mh-sub-back:hover svg {
  transform: translateX(-2px);
}

/* Masquer loc/about old headers CSS */
.loc-header { display: none; }
.ab-header  { display: none; }


/* ════════════════════════════════════════
   HEADER FIXED — même comportement sur toutes les pages
════════════════════════════════════════ */

/* Toutes les variantes du header sont FIXED comme le menu */
.mh--land,
.mh--sub {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 55;
}

/* Compensation du header fixe — espace en haut de chaque page */
body.is-landing  .land    { padding-top: 66px; }
body.is-location .loc-page{ padding-top: 66px; }
body.is-about    .ab-page { padding-top: 66px; }

/* Ces pages scrollent normalement via document.body */
.page#page-landing,
.page#page-location,
.page#page-about {
  overflow-y: visible;
  height: auto;
  min-height: 100vh;
}

/* Assurer que les pages occupent tout l'écran */
.land    { min-height: 100vh; }
.loc-page{ min-height: 100vh; }
.ab-page { min-height: 100vh; }

/* ════════════════════════════════════════
   BOUTON RÉSERVER + MODAL RÉSERVATION
════════════════════════════════════════ */

/* ── Bouton réserver dans le header ── */
.mh-reserve {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 16px;
  border-radius: 14px;
  border: 0;
  background: linear-gradient(135deg, #1A0F06, #2D1810);
  color: #E8C47A;
  font-size: 13px;
  font-weight: 700;
  font-family: 'Outfit', Inter, sans-serif;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,.20), 0 1px 0 rgba(255,255,255,.06) inset;
  border: 1px solid rgba(196,112,58,.30);
  transition: transform .2s ease, box-shadow .2s ease;
  position: relative;
  overflow: hidden;
}
.mh-reserve::before {
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(232,196,122,.10),transparent 55%);
}
.mh-reserve:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(0,0,0,.28), 0 1px 0 rgba(255,255,255,.08) inset;
}
.mh-reserve:active { transform: scale(.96); }
.mh-reserve__text { }
@media(max-width:640px){ .mh-reserve__text{display:none} }

/* ════ MODAL OVERLAY ════ */
.rsv-overlay {
  position: fixed; inset: 0;
  z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 12px;
}
.rsv-overlay[hidden] {
  display: none !important;
}
.rsv-backdrop {
  position: absolute; inset: 0;
  background: rgba(14,10,6,.72);
  backdrop-filter: blur(8px);
  animation: rsv-bg-in .3s ease;
}
@keyframes rsv-bg-in { from{opacity:0} to{opacity:1} }

/* ════ PANEL ════ */
.rsv-panel {
  position: relative;
  width: 100%; max-width: 520px;
  max-height: 92vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  background: linear-gradient(160deg, #FEFCF8 0%, #FFF8F0 100%);
  border-radius: 28px;
  box-shadow:
    0 40px 100px rgba(0,0,0,.30),
    0 0 0 1px rgba(196,112,58,.18),
    0 1px 0 rgba(255,255,255,.9) inset;
  animation: rsv-panel-in .45s cubic-bezier(.22,1,.36,1);
  overflow-x: hidden;
}
@keyframes rsv-panel-in {
  from { opacity:0; transform:translateY(40px) scale(.92); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}

/* Strip coloré en haut */
.rsv-strip {
  height: 4px;
  background: linear-gradient(90deg, #F97316, #C4703A, #DC2626, #F97316);
  background-size: 200% auto;
  animation: rsv-strip-flow 3s linear infinite;
}
@keyframes rsv-strip-flow { 0%{background-position:0%} 100%{background-position:200%} }

/* Décorations flottantes dans le panel */
.rsv-deco { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.rsv-deco__item {
  position: absolute;
  animation: rsv-deco-float var(--rd,6s) ease-in-out var(--rdd,0s) infinite;
  opacity: 0;
}
.rsv-deco__item--1{font-size:48px;top:-20px;right:-10px;--rd:8s;--rdd:0s}
.rsv-deco__item--2{font-size:20px;color:#C4703A;top:40px;left:20px;--rd:5s;--rdd:1s}
.rsv-deco__item--3{font-size:36px;bottom:80px;right:-5px;--rd:7s;--rdd:2s}
.rsv-deco__item--4{font-size:16px;color:#F97316;bottom:160px;left:10px;--rd:6s;--rdd:3s}
@keyframes rsv-deco-float{
  0%,100%{opacity:.06;transform:translateY(0) rotate(0deg)}
  50%{opacity:.12;transform:translateY(-12px) rotate(8deg)}
}

/* ════ HEADER MODAL ════ */
.rsv-head {
  position: relative; z-index: 1;
  display: flex; align-items: center; gap: 14px;
  padding: 20px 22px 16px;
}
.rsv-head__logo {
  width: 48px; height: 48px; border-radius: 16px;
  background: linear-gradient(135deg,#F97316,#DC2626);
  display: grid; place-items: center;
  font-size: 24px;
  box-shadow: 0 8px 22px rgba(249,115,22,.30);
  flex-shrink: 0;
}
.rsv-head__title {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 22px; font-weight: 800;
  color: #1A0F06; letter-spacing: -.02em;
}
.rsv-head__sub {
  font-size: 11px; color: #C4703A; font-weight: 700;
  letter-spacing: .06em; font-family: 'Outfit',Inter,sans-serif;
}
.rsv-close {
  margin-left: auto; flex-shrink: 0;
  width: 36px; height: 36px; border-radius: 50%;
  border: 1.5px solid rgba(196,112,58,.25);
  background: rgba(196,112,58,.06);
  color: #8A7060; cursor: pointer;
  display: grid; place-items: center;
  transition: all .2s ease;
}
.rsv-close:hover { background: rgba(196,112,58,.14); color: #C4703A; transform: rotate(90deg); }

/* ════ STEPS ════ */
.rsv-steps {
  position: relative; z-index: 1;
  display: flex; align-items: center;
  padding: 0 22px 18px; gap: 0;
}
.rsv-step {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  flex-shrink: 0;
}
.rsv-step__dot {
  width: 32px; height: 32px; border-radius: 50%;
  border: 2px solid rgba(196,112,58,.25);
  background: transparent;
  display: grid; place-items: center;
  font-size: 13px; font-weight: 800; color: #C4703A;
  font-family: 'Outfit',Inter,sans-serif;
  transition: all .3s ease;
}
.rsv-step--active .rsv-step__dot {
  background: linear-gradient(135deg,#F97316,#DC2626);
  border-color: transparent; color: #fff;
  box-shadow: 0 6px 16px rgba(249,115,22,.35);
}
.rsv-step--done .rsv-step__dot {
  background: #16A34A; border-color: transparent; color: #fff;
}
.rsv-step__lbl {
  font-size: 10px; font-weight: 700; color: #8A7060;
  font-family: 'Outfit',Inter,sans-serif; letter-spacing: .04em;
}
.rsv-step--active .rsv-step__lbl { color: #C4703A; }
.rsv-step__line {
  flex: 1; height: 2px; margin: 0 6px; margin-bottom: 14px;
  background: linear-gradient(90deg, rgba(196,112,58,.3), rgba(196,112,58,.1));
  border-radius: 2px;
}

/* ════ BODY / FORM ════ */
.rsv-body {
  position: relative; z-index: 1;
  padding: 0 22px 24px;
  display: flex; flex-direction: column; gap: 16px;
}
.rsv-body[hidden] {
  display: none !important;
}

.rsv-field-group { display: flex; flex-direction: column; gap: 7px; }
.rsv-label {
  font-size: 12px; font-weight: 700; color: #4A3728;
  font-family: 'Outfit',Inter,sans-serif; letter-spacing: .02em;
}
.rsv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Input */
.rsv-input-wrap { position: relative; }
.rsv-input {
  width: 100%; padding: 12px 14px;
  border-radius: 14px;
  border: 1.5px solid rgba(196,112,58,.20);
  background: rgba(255,255,255,.7);
  font-size: 14px; color: #1A0F06;
  font-family: 'Outfit',Inter,sans-serif;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
}
.rsv-input:focus {
  border-color: #C4703A;
  box-shadow: 0 0 0 3px rgba(196,112,58,.12);
  background: #fff;
}

/* Select */
.rsv-select-wrap { position: relative; }
.rsv-select {
  width: 100%; padding: 12px 14px;
  border-radius: 14px;
  border: 1.5px solid rgba(196,112,58,.20);
  background: rgba(255,255,255,.7);
  font-size: 14px; color: #1A0F06;
  font-family: 'Outfit',Inter,sans-serif;
  cursor: pointer; outline: none;
  appearance: none;
  transition: border-color .2s, box-shadow .2s;
}
.rsv-select:focus { border-color: #C4703A; box-shadow: 0 0 0 3px rgba(196,112,58,.12); }

/* Counter couverts */
.rsv-counter {
  display: flex; align-items: center; gap: 0;
  border: 1.5px solid rgba(196,112,58,.20);
  border-radius: 14px; overflow: hidden;
  background: rgba(255,255,255,.7);
}
.rsv-counter__btn {
  width: 42px; height: 46px;
  border: none; background: transparent;
  font-size: 20px; font-weight: 300; color: #C4703A;
  cursor: pointer; transition: background .15s;
  font-family: 'Outfit',Inter,sans-serif;
}
.rsv-counter__btn:hover { background: rgba(196,112,58,.10); }
.rsv-counter__val {
  flex: 1; text-align: center;
  font-size: 18px; font-weight: 800; color: #1A0F06;
  font-family: 'Cormorant Garamond',Georgia,serif;
  border-left: 1.5px solid rgba(196,112,58,.15);
  border-right: 1.5px solid rgba(196,112,58,.15);
}

/* Sélecteur de salle */
.rsv-rooms { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.rsv-room {
  border-radius: 16px; padding: 12px 10px;
  border: 1.5px solid rgba(196,112,58,.18);
  background: rgba(255,255,255,.6);
  text-align: center; cursor: pointer;
  transition: all .22s ease;
}
.rsv-room:hover { border-color: #C4703A; background: rgba(196,112,58,.05); }
.rsv-room--active {
  border-color: #C4703A;
  background: linear-gradient(135deg,rgba(249,115,22,.08),rgba(196,112,58,.05));
  box-shadow: 0 4px 14px rgba(196,112,58,.15);
}
.rsv-room__icon { font-size: 22px; margin-bottom: 5px; }
.rsv-room__name { font-size: 11px; font-weight: 800; color: #1A0F06; font-family: 'Outfit',Inter,sans-serif; }
.rsv-room__sub  { font-size: 10px; color: #8A7060; font-family: 'Outfit',Inter,sans-serif; margin-top: 2px; }

/* Occasions */
.rsv-occasions { display: flex; flex-wrap: wrap; gap: 8px; }
.rsv-occasion {
  padding: 7px 13px; border-radius: 999px;
  border: 1.5px solid rgba(196,112,58,.18);
  background: rgba(255,255,255,.6);
  font-size: 12px; font-weight: 700; color: #6B5C4A;
  font-family: 'Outfit',Inter,sans-serif;
  cursor: pointer; transition: all .2s;
}
.rsv-occasion:hover { border-color: #C4703A; }
.rsv-occasion--active {
  background: linear-gradient(135deg,#F97316,#C4703A);
  color: #fff; border-color: transparent;
  box-shadow: 0 4px 12px rgba(249,115,22,.28);
}

/* Textarea */
.rsv-textarea {
  width: 100%; min-height: 80px; padding: 12px 14px;
  border-radius: 14px;
  border: 1.5px solid rgba(196,112,58,.20);
  background: rgba(255,255,255,.7);
  font-size: 13px; color: #1A0F06;
  font-family: 'Outfit',Inter,sans-serif;
  resize: vertical; outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.rsv-textarea:focus { border-color: #C4703A; box-shadow: 0 0 0 3px rgba(196,112,58,.12); }

/* Récap */
.rsv-recap {
  background: rgba(255,255,255,.7);
  border-radius: 18px; padding: 18px;
  border: 1.5px solid rgba(196,112,58,.16);
  box-shadow: 0 4px 16px rgba(0,0,0,.05);
}
.rsv-recap__title {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 18px; font-weight: 800; color: #1A0F06;
  margin-bottom: 14px;
}
.rsv-recap__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.rsv-recap__item { display: flex; flex-direction: column; gap: 2px; }
.rsv-recap__key  { font-size: 10px; font-weight: 700; color: #C4703A; text-transform: uppercase; letter-spacing: .08em; font-family: 'Outfit',Inter,sans-serif; }
.rsv-recap__val  { font-size: 13px; font-weight: 600; color: #1A0F06; font-family: 'Outfit',Inter,sans-serif; }

.rsv-confirm-note {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 14px; border-radius: 12px;
  background: rgba(22,163,74,.08);
  border: 1px solid rgba(22,163,74,.20);
  font-size: 12px; color: #16A34A; font-weight: 600;
  font-family: 'Outfit',Inter,sans-serif;
}

/* Boutons nav */
.rsv-nav-btns { display: flex; gap: 10px; align-items: center; }
.rsv-btn-back {
  padding: 12px 18px; border-radius: 12px;
  border: 1.5px solid rgba(196,112,58,.25);
  background: transparent; color: #8A7060;
  font-size: 13px; font-weight: 700;
  font-family: 'Outfit',Inter,sans-serif;
  cursor: pointer; transition: all .2s;
}
.rsv-btn-back:hover { border-color: #C4703A; color: #C4703A; }

.rsv-btn-next {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 22px; border-radius: 14px; border: 0;
  background: linear-gradient(135deg,#F97316,#DC2626);
  color: #fff; font-size: 14px; font-weight: 800;
  font-family: 'Outfit',Inter,sans-serif;
  cursor: pointer; box-shadow: 0 10px 28px rgba(249,115,22,.30);
  transition: transform .2s ease, box-shadow .2s ease;
  position: relative; overflow: hidden;
}
.rsv-btn-next::before { content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 55%); }
.rsv-btn-next:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(249,115,22,.40); }

.rsv-btn-confirm {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 22px; border-radius: 14px; border: 0;
  background: linear-gradient(135deg,#16A34A,#059669);
  color: #fff; font-size: 14px; font-weight: 800;
  font-family: 'Outfit',Inter,sans-serif;
  cursor: pointer; box-shadow: 0 10px 28px rgba(22,163,74,.28);
  transition: transform .2s ease; position: relative; overflow: hidden;
}
.rsv-btn-confirm::before { content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 55%); }
.rsv-btn-confirm:hover { transform: translateY(-2px); }

/* ════ SUCCÈS ════ */
.rsv-success {
  align-items: center; text-align: center; padding: 32px 22px 36px;
}
.rsv-success__anim {
  position: relative; width: 80px; height: 80px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 20px;
}
.rsv-success__ring {
  position: absolute; inset: 0; border-radius: 50%;
  border: 3px solid #16A34A;
  animation: rsv-ring-pop .5s cubic-bezier(.34,1.56,.64,1) .2s both;
}
@keyframes rsv-ring-pop { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }
.rsv-success__check {
  font-size: 36px; color: #16A34A; font-weight: 900;
  animation: rsv-check-pop .4s cubic-bezier(.34,1.56,.64,1) .4s both;
}
@keyframes rsv-check-pop { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }
.rsv-success__title {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 28px; font-weight: 800; color: #1A0F06; margin-bottom: 8px;
}
.rsv-success__sub { font-size: 14px; color: #6B5C4A; font-family: 'Outfit',Inter,sans-serif; line-height: 1.5; }
.rsv-success__ref {
  margin-top: 12px; padding: 10px 18px; border-radius: 999px;
  background: rgba(196,112,58,.10); border: 1px solid rgba(196,112,58,.22);
  font-size: 13px; font-weight: 800; color: #C4703A;
  font-family: 'Outfit',Inter,sans-serif; letter-spacing: .06em;
}

/* Mobile */
@media(max-width:480px) {
  .rsv-panel { border-radius: 22px 22px 0 0; align-self: flex-end; max-height: 95vh; }
  .rsv-overlay { align-items: flex-end; padding: 0; }
  .rsv-row { grid-template-columns: 1fr; }
  .rsv-rooms { grid-template-columns: 1fr; }
  .rsv-recap__grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════
   MOBILE FIRST — Corrections globales
════════════════════════════════════════ */

/* ── Base mobile ── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img  { max-width: 100%; }

/* ── HEADER mobile ── */
@media(max-width:480px){
  .mh-inner { padding: 8px 12px; gap: 6px; }
  .mh-brand__name { font-size: 14px; }
  .mh-brand__tag  { display: none; }
  .mh-brand__logo { width: 34px; height: 34px; border-radius: 10px; }
  .mh-nav  { display: none; } /* nav cachée sur petit mobile */
  .mh-track__text   { display: none; }
  .mh-cart__text    { display: none; }
  .mh-reserve__text { display: none; }
  .mh-track   { padding: 9px 10px; border-radius: 10px; }
  .mh-reserve { padding: 9px 10px; border-radius: 10px; }
  .mh-cart    { padding: 9px 10px; border-radius: 10px; }
  .mh-actions { gap: 6px; }
  .mh-sub-back { padding: 8px 12px; font-size: 12px; }
}

/* ── INTRO mobile ── */
@media(max-width:480px){
  .intro__content { padding: 80px 16px 24px; }
  .intro__enter   { padding: 14px 22px; font-size: 14px; }
}

/* ── LANDING / HOME mobile ── */
@media(max-width:480px){
  .ls-hero {
    flex-direction: column;
    padding: 80px 16px 32px;
    gap: 28px;
    min-height: auto;
  }
  .ls-hero__content { max-width: 100%; padding-right: 0; }
  .ls-hero__title span:first-child { font-size: clamp(38px,12vw,56px); }
  .ls-hero__title--italic { font-size: clamp(46px,15vw,72px) !important; }
  .ls-hero__img-wrap { width: 100%; max-width: 260px; margin: 0 auto; }
  .ls-hero__img-badge { right: -4%; bottom: 4%; }
  .ls-hero__sub { font-size: 13px; }
  .ls-btn { padding: 13px 18px; font-size: 13px; }

  .ls-menu-sec { padding: 36px 14px; }
  .ls-menu-sec__title { font-size: 28px; }
  .ls-dishes { grid-template-columns: 1fr; gap: 28px; }
  .ls-dish__img-wrap { max-width: 220px; margin: 0 auto; }
  .ls-tabs { padding: 3px; }
  .ls-tab  { padding: 7px 12px; font-size: 11px; }

  .ls-feature { flex-direction: column; padding: 36px 16px; gap: 22px; }
  .ls-feature__img-wrap { width: 100%; max-width: 240px; margin: 0 auto; }
  .ls-feature__title { font-size: 24px; }
  .ls-quote { font-size: 15px; }

  .ls-stats-strip { padding: 20px 12px; gap: 0; }
  .ls-stat__num { font-size: 28px; }
  .ls-stat__lbl { font-size: 9px; }
  .ls-stat-sep  { height: 30px; }

  .ls-chef-strip { padding: 28px 16px; }
  .ls-chef-strip__text { font-size: 15px; }

  .ls-cta-sec { padding: 40px 14px; }
  .ls-cta-sec__title { font-size: 26px; }
  .ls-cta-sec__sub   { font-size: 13px; }

  /* Dining options grid */
  .ls-dining-sec { padding: 36px 12px 40px; }
  .ls-dining-grid { gap: 8px; }
  .ls-dining-title { font-size: 28px; }
  .do-card__name  { font-size: 9px; padding: 6px 5px 8px; }
  .do-card__price { font-size: 11px; padding: 3px 7px; }
  .do-card__num   { width: 22px; height: 22px; font-size: 11px; border-radius: 6px; top:7px; left:7px; }
}

/* ── MENU PAGE mobile ── */
@media(max-width:480px){
  .menu { padding-top: 0; }
  .menu__content { padding: 0 0 80px; }
  .menu__grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px;
    padding: 0 10px;
  }
  .dish--v2 .dish__media { height: 130px; }
  .dish__name--v2   { font-size: 10px; letter-spacing: .02em; margin-bottom: 6px; }
  .dish__price--v2  { font-size: 12px; padding: 3px 8px; }
  .dish__num        { width: 24px; height: 24px; font-size: 11px; border-radius: 6px; top:6px; left:6px; }
  .dish__arrow      { width: 30px; height: 30px; bottom:8px; right:8px; }
  .dish__body--v2   { padding: 8px 10px 10px; }
  .dish--v2:hover   { transform: scale(1.03) translateY(-4px) !important; }
  .menu__cats       { gap: 6px; padding: 10px 12px 14px; }
  .menu-cat         { padding: 8px 12px; font-size: 11px; border-radius: 12px; }
  .menu-cat__icon   { display: none; }
  .menu-search      { margin: 10px 12px 0; }
}

/* ── LOCATION mobile ── */
@media(max-width:480px){
  .loc-hero { height: 38vh; min-height: 240px; }
  .loc-floating-card {
    bottom: 10px; left: 10px; right: 10px;
    transform: none; white-space: normal;
    flex-wrap: wrap; gap: 8px;
    padding: 10px 12px;
  }
  .loc-floating-card__icon { font-size: 22px; }
  .loc-floating-card__name { font-size: 14px; }
  .loc-content { padding: 16px 12px 40px; gap: 14px; }
  .loc-story__text { font-size: 14px; }
  .loc-grid { grid-template-columns: 1fr; gap: 10px; }
  .loc-stats { padding: 18px 12px; }
  .loc-stat-item__num { font-size: 30px; }
  .loc-stat-item__lbl { font-size: 9px; }
  .loc-cta { flex-direction: column; }
  .loc-cta__btn { min-width: unset; width: 100%; }
}

/* ── ABOUT mobile ── */
@media(max-width:480px){
  .ab-hero { padding: 80px 14px 20px; }
  .ab-hero__title-line1 { font-size: clamp(40px,12vw,60px); }
  .ab-hero__title-line2 { font-size: clamp(55px,17vw,90px); }
  .ab-hero__title-line3 { font-size: clamp(48px,15vw,80px); }
  .ab-content { padding: 6px 12px 40px; gap: 14px; }
  .ab-story { flex-direction: column; gap: 6px; }
  .ab-story__num { font-size: 38px; }
  .ab-story__title { font-size: 20px; }
  .ab-story__text { font-size: 13px; }
  .ab-values__grid { grid-template-columns: 1fr; gap: 10px; }
  .ab-tl-item__year { font-size: 18px; width: 44px; }
  .ab-tl-item__text { font-size: 12px; }
  .ab-chef { flex-direction: column; text-align: center; gap: 14px; }
  .ab-chef__awards { justify-content: center; }
  .ab-chef__name { font-size: 22px; }
  .ab-chef__bio  { font-size: 12px; }
  .ab-stats { flex-wrap: wrap; gap: 16px; padding: 18px 12px; }
  .ab-stat__sep { display: none; }
  .ab-stat__num { font-size: 32px; }
  .ab-cta { flex-direction: column; }
  .ab-cta__btn { min-width: unset; width: 100%; }
  /* Reduce orbital size on mobile */
  .ab-orbit--1 { width: 280px; height: 280px; }
  .ab-orbit--4 { display: none; }
}

/* ── RESERVATION MODAL mobile ── */
@media(max-width:480px){
  .rsv-overlay { padding: 0; align-items: flex-end; }
  .rsv-panel {
    border-radius: 24px 24px 0 0;
    max-height: 92vh;
    width: 100%;
  }
  .rsv-row      { grid-template-columns: 1fr; }
  .rsv-rooms    { grid-template-columns: 1fr; gap: 8px; }
  .rsv-room     { display: flex; align-items: center; gap: 12px; text-align: left; padding: 10px 14px; }
  .rsv-room__icon { font-size: 20px; margin: 0; }
  .rsv-recap__grid { grid-template-columns: 1fr; }
  .rsv-head__title { font-size: 18px; }
  .rsv-steps    { padding: 0 16px 14px; }
  .rsv-step__lbl{ font-size: 9px; }
  .rsv-body     { padding: 0 16px 20px; gap: 12px; }
}

/* ── 3D VIEWER mobile ── */
@media(max-width:480px){
  .viewer3d { flex-direction: column; }
  .v3d-stage-wrap { flex: 0 0 45vh; min-height: 45vh; }
  .v3d-info { max-height: 45vh; overflow-y: auto; }
}

/* ── CART & MODALS mobile ── */
@media(max-width:480px){
  .menu-cart__panel { border-radius: 20px 20px 0 0; }
  .menu-modal__panel { border-radius: 20px 20px 0 0; max-height: 90vh; }
  .menu-sheet__media { height: 220px; }
}

/* ── Touch improvements ── */
@media(hover:none){
  /* Disable hover animations on touch devices */
  .dish--v2:hover { transform: none !important; animation-play-state: running !important; }
  .ab-val-card:hover { transform: none !important; animation-play-state: running !important; }
  .loc-card:hover { transform: none !important; }
  /* Larger touch targets */
  .mh-nav__btn { min-height: 44px; }
  .mh-cart, .mh-reserve, .mh-track { min-height: 44px; }
  .rsv-counter__btn { min-height: 48px; min-width: 48px; }
  .ls-tab { min-height: 40px; }
}

/* ── Safe area pour iPhone notch ── */
@supports(padding: max(0px)){
  .mh, .mh--land, .mh--sub {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
  .rsv-panel {
    padding-bottom: max(0px, env(safe-area-inset-bottom));
  }
}

/* ════════════════════════════════════════
   FIXES MOBILE CRITIQUES
════════════════════════════════════════ */

/* ── Anti scroll horizontal global ── */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}
.page, .land, .loc-page, .ab-page, .menu, .ls-hero,
.ls-menu-sec, .ls-feature, .ls-dining-sec, .ls-cta-sec,
.ls-stats-strip, .ls-chef-strip, .ab-hero, .ab-content,
.ab-orbitals {
  max-width: 100vw;
  overflow-x: hidden;
}
/* Les orbites ne doivent pas déborder */
.ab-orbit { overflow: hidden; }

/* ── HEADER — layout mobile propre ── */
@media(max-width:640px){
  .mh { overflow: hidden; }
  .mh-inner {
    padding: 8px 10px;
    gap: 8px;
    flex-wrap: nowrap;
  }
  /* Brand compact */
  .mh-brand { gap: 8px; min-width: 0; flex-shrink: 1; }
  .mh-brand__logo { width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0; }
  .mh-brand__text { min-width: 0; }
  .mh-brand__name { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mh-brand__tag  { display: none; }

  /* Nav cachée sur mobile */
  .mh-nav { display: none !important; }

  /* Actions — toujours visibles, icônes uniquement */
  .mh-actions {
    display: flex !important;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    margin-left: auto;
  }
  .mh-track {
    display: inline-flex !important;
    padding: 9px 10px;
    border-radius: 10px;
    min-width: 38px;
    min-height: 38px;
    justify-content: center;
  }
  .mh-track__text { display: none !important; }

  .mh-reserve {
    display: inline-flex !important;
    padding: 9px 10px;
    border-radius: 10px;
    min-width: 38px;
    min-height: 38px;
    justify-content: center;
  }
  .mh-reserve__text { display: none !important; }

  .mh-cart {
    display: inline-flex !important;
    padding: 9px 10px;
    border-radius: 10px;
    min-width: 38px;
    min-height: 38px;
    justify-content: center;
  }
  .mh-cart__text { display: none !important; }
  .mh-cart__badge {
    top: -6px; right: -6px;
    width: 18px; height: 18px;
    font-size: 10px;
  }

  /* Bouton retour sur sous-pages */
  .mh-sub-back {
    display: inline-flex !important;
    padding: 8px 10px;
    font-size: 12px;
    flex-shrink: 0;
  }
}

/* ── Fix landing page orbit overflow ── */
.ab-page { position: relative; }
.ab-orbitals { 
  position: fixed; 
  width: 100vw; 
  overflow: hidden;
  pointer-events: none;
}

/* ── Fix ls-hero overflow on mobile ── */
@media(max-width:640px){
  .ls-hero { overflow: hidden; }
  .ls-deco { display: none; } /* cacher decos qui débordent */
  .ls-deco2, .ls-deco3 { display: none; }
  .ls-deco4 { font-size: 36px; }
  .ls-deco4--a { left: 2%; }
  .ls-deco4--b { right: 2%; }
  .ls-deco4--c { left: 2%; }
  .ls-deco4--d { right: 2%; }
}

/* ── Fix dining options overflow ── */
@media(max-width:640px){
  .ls-dining-sec { overflow: hidden; }
  .ls-dining-grid { overflow: hidden; }
  .do-card { overflow: hidden; }
}

/* ════════════════════════════════════════
   HAMBURGER + MOBILE DRAWER
════════════════════════════════════════ */

/* ── Burger button — visible uniquement sur mobile ── */
.mh-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 38px; height: 38px;
  border-radius: 10px;
  border: 1.5px solid rgba(196,112,58,.28);
  background: rgba(196,112,58,.07);
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background .2s ease;
}
.mh-burger:hover { background: rgba(196,112,58,.14); }
.mh-burger span {
  display: block;
  width: 18px; height: 2px;
  border-radius: 2px;
  background: #C4703A;
  transition: transform .25s ease, opacity .2s ease;
}

@media(max-width:900px){
  .mh-burger { display: flex !important; }
  .mh-nav    { display: none !important; }
}

/* ── DRAWER OVERLAY ── */
.mh-drawer {
  position: fixed; inset: 0;
  z-index: 300;
  pointer-events: none;
  visibility: hidden;
}
.mh-drawer.is-open {
  pointer-events: all;
  visibility: visible;
}

/* Backdrop */
.mh-drawer__backdrop {
  position: absolute; inset: 0;
  background: rgba(14,10,6,.55);
  backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity .3s ease;
}
.mh-drawer.is-open .mh-drawer__backdrop {
  opacity: 1;
}

/* Panel — slide depuis la droite */
.mh-drawer__panel {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(300px, 82vw);
  background: linear-gradient(160deg, #FEFCF8, #FFF8F0);
  box-shadow: -20px 0 60px rgba(0,0,0,.20);
  border-left: 1px solid rgba(196,112,58,.15);
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
  overflow-y: auto;
}
.mh-drawer.is-open .mh-drawer__panel {
  transform: translateX(0);
}

/* Header du drawer */
.mh-drawer__head {
  display: flex; align-items: center; gap: 12px;
  padding: 20px 18px 16px;
  border-bottom: 1px solid rgba(196,112,58,.12);
}
.mh-drawer__logo {
  width: 38px; height: 38px; border-radius: 11px;
  background: linear-gradient(135deg,#F97316,#DC2626);
  display: grid; place-items: center; color:#fff;
  flex-shrink: 0;
}
.mh-drawer__name {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 17px; font-weight: 800; color:#1A0F06;
  flex: 1;
}
.mh-drawer__close {
  width: 34px; height: 34px; border-radius: 50%;
  border: 1.5px solid rgba(196,112,58,.25);
  background: transparent; color: #8A7060;
  cursor: pointer; display: grid; place-items: center;
  transition: all .2s ease;
  flex-shrink: 0;
}
.mh-drawer__close:hover { background: rgba(196,112,58,.10); color:#C4703A; transform:rotate(90deg); }

/* Nav links */
.mh-drawer__nav {
  display: flex; flex-direction: column; gap: 4px;
  padding: 16px 12px;
  flex: 1;
}
.mh-drawer__link {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  text-decoration: none;
  font-size: 15px; font-weight: 700; color:#4A3728;
  font-family: 'Outfit',Inter,sans-serif;
  transition: all .2s ease;
  border: 1.5px solid transparent;
}
.mh-drawer__link:hover,
.mh-drawer__link.is-active {
  background: linear-gradient(135deg,rgba(249,115,22,.10),rgba(196,112,58,.06));
  border-color: rgba(196,112,58,.22);
  color: #C4703A;
}
.mh-drawer__link.is-active {
  background: linear-gradient(135deg,#F97316,#DC2626);
  color: #fff !important;
  border-color: transparent;
  box-shadow: 0 6px 18px rgba(249,115,22,.28);
}
.mh-drawer__link-icon {
  width: 36px; height: 36px; border-radius: 10px;
  background: rgba(196,112,58,.10);
  display: grid; place-items: center;
  flex-shrink: 0;
  transition: background .2s;
}
.mh-drawer__link.is-active .mh-drawer__link-icon {
  background: rgba(255,255,255,.20);
}

/* Footer du drawer */
.mh-drawer__footer {
  padding: 16px 18px 24px;
  border-top: 1px solid rgba(196,112,58,.10);
  text-align: center;
}
.mh-drawer__footer-name {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 16px; font-weight: 800; color:#1A0F06;
}
.mh-drawer__footer-tag {
  font-size: 10px; color:#C4703A; font-weight:700;
  letter-spacing:.08em; margin-top:3px;
  font-family:'Outfit',Inter,sans-serif;
}

/* Safe area iOS */
@supports(padding: max(0px)){
  .mh-drawer__panel {
    padding-top: env(safe-area-inset-top);
    padding-right: max(0px, env(safe-area-inset-right));
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
}

/* ════════════════════════════════════════
   BURGER — visible partout à droite
════════════════════════════════════════ */

/* Toujours visible sur toutes tailles */
.mh-burger,
#mhBurgerMenu {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 38px; height: 38px;
  border-radius: 10px;
  border: 1.5px solid rgba(196,112,58,.28);
  background: rgba(196,112,58,.07);
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background .2s ease;
}
.mh-burger:hover,
#mhBurgerMenu:hover {
  background: rgba(196,112,58,.16);
}
.mh-burger span,
#mhBurgerMenu span {
  display: block;
  width: 18px; height: 2px;
  border-radius: 2px;
  background: #C4703A;
  transition: transform .25s ease, opacity .2s ease;
}

/* Sur sous-pages — burger seul à droite, pas dans mh-actions */
.mh--sub .mh-inner { }

/* Cacher mh-sub-back partout */
.mh-sub-back { display: none !important; }

/* Sur grand écran — garder la nav visible ET le burger */
@media(min-width:901px){
  .mh-nav { display: flex !important; }
  /* Burger toujours là même sur desktop */
  .mh-burger { display: flex !important; }
}

/* Scrollbar cachée sur rsv-panel */
.rsv-panel::-webkit-scrollbar { display: none; }

/* Mobile — panel full height depuis le bas, scrollable */
@media(max-width:600px){
  .rsv-overlay { padding: 0; align-items: flex-end; }
  .rsv-panel {
    border-radius: 24px 24px 0 0;
    max-height: 90vh;
    width: 100%;
    max-width: 100%;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
}

/* ════════════════════════════════════════
   MODAL CONFIRMATION COMMANDE
════════════════════════════════════════ */

.ocf-overlay {
  position: fixed; inset: 0; z-index: 250;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
}
.ocf-overlay[hidden] { display: none !important; }

.ocf-backdrop {
  position: absolute; inset: 0;
  background: rgba(14,10,6,.70);
  backdrop-filter: blur(10px);
  animation: ocf-bg-in .3s ease;
}
@keyframes ocf-bg-in { from{opacity:0} to{opacity:1} }

.ocf-panel {
  position: relative; z-index: 1;
  width: 100%; max-width: 400px;
  max-height: calc(100vh - 32px);
  overflow-y: auto; overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  background: linear-gradient(160deg,#FEFCF8,#FFF8F0);
  border-radius: 28px;
  box-shadow: 0 40px 100px rgba(0,0,0,.35), 0 0 0 1px rgba(196,112,58,.20);
  animation: ocf-panel-in .45s cubic-bezier(.22,1,.36,1);
  text-align: center;
  padding: 0 0 28px;
}
.ocf-panel::-webkit-scrollbar { display:none; }
@keyframes ocf-panel-in {
  from { opacity:0; transform:scale(.88) translateY(24px); }
  to   { opacity:1; transform:scale(1) translateY(0); }
}

.ocf-strip {
  height: 5px;
  background: linear-gradient(90deg,#F97316,#E8C47A,#DC2626,#F97316);
  background-size: 200% auto;
  animation: ocf-strip 2s linear infinite;
}
@keyframes ocf-strip { 0%{background-position:0%} 100%{background-position:200%} }

.ocf-confetti { position:absolute;top:0;left:0;right:0;height:180px;pointer-events:none;overflow:hidden; }
.ocf-confetti__piece { position:absolute;top:-10px;animation:ocf-fall linear forwards; }
@keyframes ocf-fall { 0%{transform:translateY(-10px) rotate(0deg);opacity:1} 100%{transform:translateY(200px) rotate(720deg);opacity:0} }

.ocf-icon-wrap { position:relative;width:90px;height:90px;display:flex;align-items:center;justify-content:center;margin:28px auto 16px; }
.ocf-icon-ring { position:absolute;inset:0;border-radius:50%;border:2.5px solid rgba(196,112,58,.3); }
.ocf-icon-ring--1 { animation:ocf-ring 3s linear infinite; }
.ocf-icon-ring--2 { inset:10px;border-color:rgba(249,115,22,.25);animation:ocf-ring 2s linear infinite reverse; }
@keyframes ocf-ring { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.ocf-icon-emoji { font-size:44px;position:relative;z-index:1;animation:ocf-bounce .6s cubic-bezier(.34,1.56,.64,1) .3s both; }
@keyframes ocf-bounce { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }

.ocf-title { font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;font-weight:800;color:#1A0F06;margin:0 0 8px;letter-spacing:-.02em;padding:0 20px; }
.ocf-sub { font-size:14px;color:#6B5C4A;line-height:1.55;font-family:'Outfit',Inter,sans-serif;margin:0 0 22px;padding:0 24px; }

.ocf-order-box { background:linear-gradient(135deg,#1A0F06,#2D1810);margin:0 20px 20px;border-radius:20px;padding:20px 16px;border:1px solid rgba(196,112,58,.30);position:relative;overflow:hidden; }
.ocf-order-box::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#C4703A,#F97316,transparent); }
.ocf-order-box__label { font-size:11px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.12em;font-family:'Outfit',Inter,sans-serif;margin-bottom:10px; }
.ocf-order-box__num { font-family:'Cormorant Garamond',Georgia,serif;font-size:42px;font-weight:800;background:linear-gradient(135deg,#E8C47A,#F97316,#E8C47A);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ocf-shine 3s linear infinite;letter-spacing:.06em;line-height:1;margin-bottom:8px; }
@keyframes ocf-shine { 0%{background-position:0%} 100%{background-position:200%} }
.ocf-order-box__hint { font-size:11px;color:rgba(255,255,255,.40);font-family:'Outfit',Inter,sans-serif;font-style:italic; }

.ocf-recap { display:flex;align-items:center;justify-content:center;gap:0;margin:0 20px 22px;background:rgba(255,255,255,.65);border-radius:14px;padding:12px 10px;border:1px solid rgba(196,112,58,.14); }
.ocf-recap__item { display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#3A2D1F;font-family:'Outfit',Inter,sans-serif;flex:1;justify-content:center; }
.ocf-recap__icon { font-size:16px; }
.ocf-recap__sep { width:1px;height:28px;background:rgba(196,112,58,.20); }

.ocf-btn { display:inline-flex;align-items:center;justify-content:center;gap:10px;width:calc(100% - 40px);padding:16px 22px;border-radius:16px;border:0;background:linear-gradient(135deg,#F97316,#DC2626);color:#fff;font-size:16px;font-weight:800;font-family:'Outfit',Inter,sans-serif;cursor:pointer;box-shadow:0 12px 32px rgba(249,115,22,.35);transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden;margin:0 20px 12px; }
.ocf-btn::before { content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 55%); }
.ocf-btn:hover { transform:translateY(-2px);box-shadow:0 16px 40px rgba(249,115,22,.42); }

.ocf-note { font-size:11px;color:#A0907C;font-family:'Outfit',Inter,sans-serif;padding:0 24px;line-height:1.5;margin:0; }

/* ── MOBILE : sheet depuis le bas ── */
@media(max-width:600px){
  .ocf-overlay {
    padding: 0;
    align-items: flex-end;
    overflow: hidden;
  }
  .ocf-panel {
    max-width: 100%;
    height: auto;
    max-height: 80vh;
    min-height: 0;
    overflow-y: scroll !important;
    -webkit-overflow-scrolling: touch !important;
    border-radius: 20px 20px 0 0;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
  .ocf-confetti { height:70px; }
  .ocf-icon-wrap { width:50px;height:50px;margin:12px auto 8px; }
  .ocf-icon-emoji { font-size:22px; }
  .ocf-icon-ring--2 { inset:8px; }
  .ocf-title { font-size:16px;padding:0 12px;margin-bottom:3px; }
  .ocf-sub { font-size:11px;padding:0 12px;margin-bottom:10px; }
  .ocf-order-box { margin:0 10px 10px;padding:10px 10px;border-radius:13px; }
  .ocf-order-box__label { font-size:8px;margin-bottom:4px; }
  .ocf-order-box__num { font-size:22px;margin-bottom:3px; }
  .ocf-order-box__hint { font-size:9px; }
  .ocf-recap { margin:0 10px 10px;padding:8px 6px;border-radius:11px; }
  .ocf-recap__item { font-size:11px;gap:3px; }
  .ocf-recap__icon { font-size:12px; }
  .ocf-recap__sep { height:18px; }
  .ocf-btn { width:calc(100% - 20px);margin:0 10px 8px;padding:12px;font-size:13px;border-radius:12px; }
  .ocf-note { font-size:10px;padding:0 12px; }
  .ocf-strip { height:3px; }
}


/* ════════════════════════════════════════
   HAMBURGER + MOBILE DRAWER
════════════════════════════════════════ */

/* ── Burger button — visible uniquement sur mobile ── */
.mh-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 38px; height: 38px;
  border-radius: 10px;
  border: 1.5px solid rgba(196,112,58,.28);
  background: rgba(196,112,58,.07);
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background .2s ease;
}
.mh-burger:hover { background: rgba(196,112,58,.14); }
.mh-burger span {
  display: block;
  width: 18px; height: 2px;
  border-radius: 2px;
  background: #C4703A;
  transition: transform .25s ease, opacity .2s ease;
}

@media(max-width:900px){
  .mh-burger { display: flex !important; }
  .mh-nav    { display: none !important; }
}

/* ── DRAWER OVERLAY ── */
.mh-drawer {
  position: fixed; inset: 0;
  z-index: 300;
  pointer-events: none;
  visibility: hidden;
}
.mh-drawer.is-open {
  pointer-events: all;
  visibility: visible;
}

/* Backdrop */
.mh-drawer__backdrop {
  position: absolute; inset: 0;
  background: rgba(14,10,6,.55);
  backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity .3s ease;
}
.mh-drawer.is-open .mh-drawer__backdrop {
  opacity: 1;
}

/* Panel — slide depuis la droite */
.mh-drawer__panel {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(300px, 82vw);
  background: linear-gradient(160deg, #FEFCF8, #FFF8F0);
  box-shadow: -20px 0 60px rgba(0,0,0,.20);
  border-left: 1px solid rgba(196,112,58,.15);
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
  overflow-y: auto;
}
.mh-drawer.is-open .mh-drawer__panel {
  transform: translateX(0);
}

/* Header du drawer */
.mh-drawer__head {
  display: flex; align-items: center; gap: 12px;
  padding: 20px 18px 16px;
  border-bottom: 1px solid rgba(196,112,58,.12);
}
.mh-drawer__logo {
  width: 38px; height: 38px; border-radius: 11px;
  background: linear-gradient(135deg,#F97316,#DC2626);
  display: grid; place-items: center; color:#fff;
  flex-shrink: 0;
}
.mh-drawer__name {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 17px; font-weight: 800; color:#1A0F06;
  flex: 1;
}
.mh-drawer__close {
  width: 34px; height: 34px; border-radius: 50%;
  border: 1.5px solid rgba(196,112,58,.25);
  background: transparent; color: #8A7060;
  cursor: pointer; display: grid; place-items: center;
  transition: all .2s ease;
  flex-shrink: 0;
}
.mh-drawer__close:hover { background: rgba(196,112,58,.10); color:#C4703A; transform:rotate(90deg); }

/* Nav links */
.mh-drawer__nav {
  display: flex; flex-direction: column; gap: 4px;
  padding: 16px 12px;
  flex: 1;
}
.mh-drawer__link {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  text-decoration: none;
  font-size: 15px; font-weight: 700; color:#4A3728;
  font-family: 'Outfit',Inter,sans-serif;
  transition: all .2s ease;
  border: 1.5px solid transparent;
}
.mh-drawer__link:hover,
.mh-drawer__link.is-active {
  background: linear-gradient(135deg,rgba(249,115,22,.10),rgba(196,112,58,.06));
  border-color: rgba(196,112,58,.22);
  color: #C4703A;
}
.mh-drawer__link.is-active {
  background: linear-gradient(135deg,#F97316,#DC2626);
  color: #fff !important;
  border-color: transparent;
  box-shadow: 0 6px 18px rgba(249,115,22,.28);
}
.mh-drawer__link-icon {
  width: 36px; height: 36px; border-radius: 10px;
  background: rgba(196,112,58,.10);
  display: grid; place-items: center;
  flex-shrink: 0;
  transition: background .2s;
}
.mh-drawer__link.is-active .mh-drawer__link-icon {
  background: rgba(255,255,255,.20);
}

/* Footer du drawer */
.mh-drawer__footer {
  padding: 16px 18px 24px;
  border-top: 1px solid rgba(196,112,58,.10);
  text-align: center;
}
.mh-drawer__footer-name {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 16px; font-weight: 800; color:#1A0F06;
}
.mh-drawer__footer-tag {
  font-size: 10px; color:#C4703A; font-weight:700;
  letter-spacing:.08em; margin-top:3px;
  font-family:'Outfit',Inter,sans-serif;
}

/* Safe area iOS */
@supports(padding: max(0px)){
  .mh-drawer__panel {
    padding-top: env(safe-area-inset-top);
    padding-right: max(0px, env(safe-area-inset-right));
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
}

/* ════════════════════════════════════════
   BURGER — visible partout à droite
════════════════════════════════════════ */

/* Toujours visible sur toutes tailles */
.mh-burger,
#mhBurgerMenu {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 38px; height: 38px;
  border-radius: 10px;
  border: 1.5px solid rgba(196,112,58,.28);
  background: rgba(196,112,58,.07);
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background .2s ease;
}
.mh-burger:hover,
#mhBurgerMenu:hover {
  background: rgba(196,112,58,.16);
}
.mh-burger span,
#mhBurgerMenu span {
  display: block;
  width: 18px; height: 2px;
  border-radius: 2px;
  background: #C4703A;
  transition: transform .25s ease, opacity .2s ease;
}

/* Sur sous-pages — burger seul à droite, pas dans mh-actions */
.mh--sub .mh-inner { }

/* Cacher mh-sub-back partout */
.mh-sub-back { display: none !important; }

/* Sur grand écran — garder la nav visible ET le burger */
@media(min-width:901px){
  .mh-nav { display: flex !important; }
  /* Burger toujours là même sur desktop */
  .mh-burger { display: flex !important; }
}

/* Scrollbar cachée sur rsv-panel */
.rsv-panel::-webkit-scrollbar { display: none; }

/* Mobile — panel full height depuis le bas, scrollable */
@media(max-width:600px){
  .rsv-overlay { padding: 0; align-items: flex-end; }
  .rsv-panel {
    border-radius: 24px 24px 0 0;
    max-height: 90vh;
    width: 100%;
    max-width: 100%;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
}

/* ════════════════════════════════════════
   MODAL CONFIRMATION COMMANDE
════════════════════════════════════════ */

.ocf-overlay {
  position: fixed; inset: 0;
  z-index: 250;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
}
.ocf-overlay[hidden] { display: none !important; }

.ocf-backdrop {
  position: absolute; inset: 0;
  background: rgba(14,10,6,.70);
  backdrop-filter: blur(10px);
  animation: ocf-bg-in .3s ease;
}
@keyframes ocf-bg-in { from{opacity:0} to{opacity:1} }

/* Panel */
.ocf-panel {
  position: relative; z-index: 1;
  width: 100%; max-width: 420px;
  background: linear-gradient(160deg,#FEFCF8,#FFF8F0);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 40px 100px rgba(0,0,0,.35), 0 0 0 1px rgba(196,112,58,.20);
  animation: ocf-panel-in .5s cubic-bezier(.22,1,.36,1);
  text-align: center;
  padding: 0 0 28px;
}
@keyframes ocf-panel-in {
  from { opacity:0; transform:scale(.85) translateY(30px); }
  to   { opacity:1; transform:scale(1) translateY(0); }
}

/* Strip animé en haut */
.ocf-strip {
  height: 5px;
  background: linear-gradient(90deg,#F97316,#E8C47A,#DC2626,#F97316);
  background-size: 200% auto;
  animation: ocf-strip 2s linear infinite;
}
@keyframes ocf-strip { 0%{background-position:0%} 100%{background-position:200%} }

/* Confettis */
.ocf-confetti {
  position: absolute; top: 0; left: 0; right: 0;
  height: 200px; pointer-events: none; overflow: hidden;
}
.ocf-confetti__piece {
  position: absolute; top: -10px;
  animation: ocf-fall linear forwards;
}
@keyframes ocf-fall {
  0%   { transform: translateY(-10px) rotate(0deg); opacity: 1; }
  100% { transform: translateY(220px) rotate(720deg); opacity: 0; }
}

/* Icône succès */
.ocf-icon-wrap {
  position: relative;
  width: 90px; height: 90px;
  display: flex; align-items: center; justify-content: center;
  margin: 28px auto 16px;
}
.ocf-icon-ring {
  position: absolute; inset: 0; border-radius: 50%;
  border: 2.5px solid rgba(196,112,58,.3);
}
.ocf-icon-ring--1 { animation: ocf-ring 3s linear infinite; }
.ocf-icon-ring--2 { inset: 10px; border-color: rgba(249,115,22,.25); animation: ocf-ring 2s linear infinite reverse; }
@keyframes ocf-ring { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.ocf-icon-emoji {
  font-size: 44px; position: relative; z-index: 1;
  animation: ocf-bounce .6s cubic-bezier(.34,1.56,.64,1) .3s both;
}
@keyframes ocf-bounce { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }

/* Textes */
.ocf-title {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 28px; font-weight: 800;
  color: #1A0F06; margin: 0 0 8px;
  letter-spacing: -.02em;
  padding: 0 20px;
}
.ocf-sub {
  font-size: 14px; color: #6B5C4A; line-height: 1.55;
  font-family: 'Outfit',Inter,sans-serif;
  margin: 0 0 22px; padding: 0 24px;
}

/* Boîte numéro commande — LE PLUS IMPORTANT */
.ocf-order-box {
  background: linear-gradient(135deg,#1A0F06,#2D1810);
  margin: 0 20px 20px;
  border-radius: 20px;
  padding: 20px 16px;
  border: 1px solid rgba(196,112,58,.30);
  position: relative; overflow: hidden;
}
.ocf-order-box::before {
  content:''; position:absolute; top:0;left:0;right:0; height:3px;
  background:linear-gradient(90deg,transparent,#C4703A,#F97316,transparent);
}
.ocf-order-box__label {
  font-size: 11px; font-weight: 700;
  color: rgba(255,255,255,.5);
  text-transform: uppercase; letter-spacing: .12em;
  font-family: 'Outfit',Inter,sans-serif;
  margin-bottom: 10px;
}
.ocf-order-box__num {
  font-family: 'Cormorant Garamond',Georgia,serif;
  font-size: 42px; font-weight: 800;
  background: linear-gradient(135deg,#E8C47A,#F97316,#E8C47A);
  background-size: 200% auto;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: ocf-shine 3s linear infinite;
  letter-spacing: .06em; line-height: 1;
  margin-bottom: 8px;
}
@keyframes ocf-shine { 0%{background-position:0%} 100%{background-position:200%} }
.ocf-order-box__hint {
  font-size: 11px; color: rgba(255,255,255,.40);
  font-family: 'Outfit',Inter,sans-serif;
  font-style: italic;
}

/* Récap rapide */
.ocf-recap {
  display: flex; align-items: center; justify-content: center;
  gap: 0; margin: 0 20px 22px;
  background: rgba(255,255,255,.65);
  border-radius: 14px; padding: 12px 10px;
  border: 1px solid rgba(196,112,58,.14);
}
.ocf-recap__item {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: #3A2D1F;
  font-family: 'Outfit',Inter,sans-serif;
  flex: 1; justify-content: center;
}
.ocf-recap__icon { font-size: 16px; }
.ocf-recap__sep {
  width: 1px; height: 28px;
  background: rgba(196,112,58,.20);
}

/* Bouton OK */
.ocf-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px;
  width: calc(100% - 40px);
  padding: 16px 22px;
  border-radius: 16px; border: 0;
  background: linear-gradient(135deg,#F97316,#DC2626);
  color: #fff; font-size: 16px; font-weight: 800;
  font-family: 'Outfit',Inter,sans-serif;
  cursor: pointer;
  box-shadow: 0 12px 32px rgba(249,115,22,.35);
  transition: transform .2s ease, box-shadow .2s ease;
  position: relative; overflow: hidden;
  margin: 0 20px 12px;
}
.ocf-btn::before {
  content:''; position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 55%);
}
.ocf-btn:hover { transform:translateY(-2px); box-shadow:0 16px 40px rgba(249,115,22,.42); }
.ocf-btn:active { transform:scale(.97); }

/* Note bas */
.ocf-note {
  font-size: 11px; color: #A0907C;
  font-family: 'Outfit',Inter,sans-serif;
  padding: 0 24px; line-height: 1.5;
  margin: 0;
}

/* Mobile */
@media(max-width:480px){
  .ocf-overlay { padding: 8px; align-items: flex-end; }
  .ocf-panel {
    border-radius: 20px 20px 0 0;
    max-height: 85vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .ocf-confetti { height: 120px; }
  .ocf-icon-wrap { width: 56px; height: 56px; margin: 14px auto 8px; }
  .ocf-icon-emoji { font-size: 26px; }
  .ocf-title { font-size: 18px; margin-bottom: 4px; padding: 0 16px; }
  .ocf-sub { font-size: 11px; margin-bottom: 12px; padding: 0 14px; }
  .ocf-order-box { margin: 0 12px 12px; padding: 12px 10px; border-radius: 14px; }
  .ocf-order-box__label { font-size: 9px; margin-bottom: 5px; letter-spacing: .10em; }
  .ocf-order-box__num { font-size: 26px; margin-bottom: 4px; }
  .ocf-order-box__hint { font-size: 9px; }
  .ocf-recap { margin: 0 12px 12px; padding: 9px 8px; border-radius: 12px; }
  .ocf-recap__item { font-size: 11px; gap: 4px; }
  .ocf-recap__icon { font-size: 13px; }
  .ocf-recap__sep { height: 22px; }
  .ocf-btn {
    font-size: 14px; padding: 13px 14px;
    width: calc(100% - 24px);
    margin: 0 12px 8px;
    border-radius: 13px;
  }
  .ocf-note { font-size: 10px; padding: 0 14px; }
  .ocf-strip { height: 4px; }
}

/* Bouton X fermer la confirmation commande */
.ocf-x-close {
  position: absolute;
  top: 12px; right: 12px;
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1.5px solid rgba(196,112,58,.25);
  background: rgba(196,112,58,.07);
  color: #8A7060;
  cursor: pointer;
  display: grid; place-items: center;
  z-index: 10;
  transition: all .2s ease;
}
.ocf-x-close:hover { background: rgba(196,112,58,.15); color: #C4703A; transform: rotate(90deg); }