.slide-up{opacity:0;transform:translateY(22px) scale(.978);transition:transform .44s cubic-bezier(.16, 1, .3, 1),opacity .38s ease;will-change:transform,opacity}.reveal,.slide-up.reveal{opacity:1!important;transform:translateY(0) scale(1)!important}.fade-out{opacity:0;transition:opacity var(--transition-fast),transform var(--transition-fast)}.closed #btn-order-from-detail,.closed .btn-ajouter,.closed .btn-commande,.closed .floating-cart-pill,.closed .modal-item-detail__chevron-btn,.closed .modal-item-detail__cta-row,.closed .modal-item-detail__footer{opacity:.4!important;pointer-events:none!important;cursor:not-allowed!important}.custom-confirm-overlay{position:fixed;inset:0;display:flex!important;align-items:center!important;justify-content:center!important;z-index:10000;background:var(--scrim);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);padding:var(--space-md);box-sizing:border-box}.custom-confirm-modal.modal-content{width:min(88%,380px);padding:var(--space-xl) var(--space-lg) var(--space-lg);gap:0;align-items:center;text-align:center;background:var(--layer-1);border:var(--glass-border);border-radius:var(--radius-modal);box-shadow:0 16px 48px rgba(var(--shadow-rgb),calc(.6 * var(--shadow-k)));margin:auto;box-sizing:border-box;animation:pwaModalPop .24s cubic-bezier(.16,1,.3,1)}@keyframes pwaModalPop{from{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog__icon{display:flex;align-items:center;justify-content:center;width:5.6rem;height:5.6rem;margin-bottom:var(--space-md);border-radius:50%;background:rgba(var(--theme-color-rgb),.12);border:1px solid rgba(var(--theme-color-rgb),.25);color:var(--theme-color)}.dialog__icon svg{width:2.6rem;height:2.6rem}.dialog__icon--danger{background:color-mix(in srgb,var(--status-error) 14%,transparent);border-color:color-mix(in srgb,var(--status-error) 32%,transparent);color:var(--status-error)}.modal-content .dialog__title{margin:0 0 var(--space-xs);padding:0;font-family:var(--font-emphasis);font-size:2rem;font-weight:var(--weight-bold);line-height:1.15;letter-spacing:.04em;text-transform:uppercase;color:var(--text-strong)}.modal-content .dialog__text{max-width:32ch;margin:0;padding:0;font-size:1.4rem;line-height:1.5;color:var(--text-color)}.modal-content .dialog__text strong{color:var(--text-strong)}.modal-content .dialog__msg{margin:var(--space-sm) 0 0;padding:0;font-size:1.3rem;line-height:1.4;color:var(--status-error)}.dialog__msg:empty{display:none}.dialog__actions{display:flex;flex-direction:column;gap:var(--space-xs);width:100%;margin-top:var(--space-lg)}.dialog__actions--row{flex-direction:row}.dialog__actions--row .dialog-btn{flex:1}.dialog-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:4.8rem;padding:0 var(--space-lg);border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-emphasis);font-size:1.4rem;font-weight:var(--weight-bold);letter-spacing:.06em;text-transform:uppercase;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .18s cubic-bezier(.16, 1, .3, 1),background-color .18s ease,filter .18s ease,color .18s ease}.dialog-btn:active{transform:scale(.98)}.dialog-btn:focus:not(:focus-visible){outline:0}.dialog-btn:focus-visible{outline:2px solid rgba(var(--theme-color-rgb),.65);outline-offset:2px}.dialog-btn:disabled{cursor:default}.dialog-btn--primary{background:var(--theme-color);color:var(--on-accent)}.dialog-btn--primary:hover{filter:brightness(1.08)}.dialog-btn--danger{background:var(--status-error);color:#fff}.dialog-btn--danger:hover{filter:brightness(1.08)}.dialog-btn--quiet,.profile-link-btn{min-height:4.4rem;padding:0 var(--space-md);background:0 0;color:var(--text-muted);font-family:var(--font-body);font-size:1.35rem;font-weight:600;letter-spacing:0;text-transform:none}.dialog-btn--quiet:hover,.profile-link-btn:hover{background:var(--ink-1);color:var(--text-strong)}body{display:grid;grid-template-columns:1fr;min-height:100vh;font-family:var(--font-body);font-size:var(--text-body);line-height:1.5;background-color:var(--body-bg);color:var(--text-color)}.utility-actions{display:flex;align-items:center;gap:var(--space-sm)}.history-btn-trigger{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:rgba(0,0,0,.24);color:var(--text-strong);border:1px solid var(--ink-2);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px rgba(var(--shadow-rgb),calc(.25 * var(--shadow-k)));transition:transform .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}.history-btn-trigger:hover{background:var(--layer-2);color:var(--theme-color);border-color:var(--ink-4);transform:translateY(-1px)}.history-btn-trigger:active{transform:scale(.92);background:var(--layer-3);color:var(--text-strong);border-color:var(--theme-color)}.history-btn-trigger svg{width:18px;height:18px;stroke-width:1.8;pointer-events:none}.demo-banner{background:var(--glass-bg);color:var(--text-color);text-align:center;font-size:var(--text-small);padding:var(--space-sm) var(--pad-inline);letter-spacing:.4px;border-bottom:1px solid var(--layer-2);box-shadow:0 2px 10px rgba(var(--shadow-rgb),calc(.3 * var(--shadow-k)))}.demo-banner a{color:var(--theme-color);font-weight:var(--weight-bold);font-family:var(--font-body);text-decoration:underline;text-underline-offset:0.3rem}.demo-banner small{color:var(--text-muted)}#menu{display:grid;grid-template-columns:minmax(0,1fr);position:relative;gap:0;background:var(--body-bg)}.menu-header{text-align:center;margin:clamp(2rem,5vh,3.5rem) auto clamp(1rem,2.5vh,1.6rem);padding:0 var(--space-md);max-width:680px}.menu-hint,.menu-intro{text-align:center}.menu-intro{margin:0 0 .5rem 0;padding:0;font-family:var(--font-brand);font-weight:500;letter-spacing:.04em;font-size:clamp(2.2rem, 5vw, 3rem);line-height:1.15;color:var(--text-strong);background:0 0;border:none;border-radius:0;box-shadow:none;text-shadow:0 1px 4px rgba(0,0,0,.18)}.menu-hint{font-family:var(--font-body);font-style:normal;font-weight:400;color:var(--text-color);opacity:.85;font-size:clamp(.95rem, 2vw, 1.08rem);line-height:1.55;max-width:520px;margin:0 auto}header{--text-strong:var(--hero-text-strong);--text-color:var(--hero-text);--text-muted:var(--hero-text-muted);--text-color-inv:var(--hero-text-inv);--theme-color:var(--hero-accent);--theme-color-rgb:var(--hero-accent-rgb);--status-success:var(--hero-success);--status-error:var(--hero-error);--layer-1:var(--hero-layer-1);--layer-2:var(--hero-layer-2);--layer-3:var(--hero-layer-3);--ink-1:rgba(255, 255, 255, 0.04);--ink-2:rgba(255, 255, 255, 0.08);--ink-3:rgba(255, 255, 255, 0.12);--ink-4:rgba(255, 255, 255, 0.18);--shadow-rgb:0,0,0;--shadow-k:1;--color-scheme:dark;color-scheme:dark;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:clamp(34rem,62svh,60rem);background:var(--hero-end);overflow:hidden}header::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,var(--hero-end) 0,rgba(0,0,0,var(--hero-scrim,.65)) 36%,transparent 74%),var(--hero-bg,none) var(--hero-position,center)/cover no-repeat;animation:heroSettle 1.8s var(--ease-out) backwards}.hero{flex:1;display:flex;align-items:flex-end;width:100%;max-width:1360px;margin:0 auto;padding:var(--space-xl) var(--pad-inline) var(--space-lg);box-sizing:border-box}.hero__body{display:flex;flex-direction:column;align-items:flex-start;max-width:56rem;min-width:0}.hero__name{font-family:var(--font-brand);font-size:clamp(4.4rem, 13vw, 9rem);font-weight:400;line-height:.98;letter-spacing:.01em;color:var(--text-strong);text-shadow:0 2px 22px rgba(0,0,0,.4);text-wrap:balance;overflow-wrap:break-word;max-width:100%;animation:heroName .95s var(--ease-out) .15s backwards}.hero__slogan{font-family:var(--font-body);font-size:clamp(1.5rem, 3.6vw, 2rem);line-height:1.4;color:var(--text-strong);opacity:.9;max-width:34ch;margin-top:var(--space-sm);text-shadow:0 1px 10px rgba(0,0,0,.4);animation:heroFade .7s ease-out .55s backwards}.hero__modes{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-sm);list-style:none;margin:var(--space-md) 0 0;padding:0;min-height:3.4rem;opacity:0;transition:opacity .45s ease-out}.hero__modes.is-ready{opacity:1}.hero__mode{display:inline-flex;align-items:center;gap:.7rem;height:3.4rem;padding:0 1.4rem 0 1.2rem;border-radius:var(--radius-pill,9999px);background:rgba(0,0,0,.32);border:1px solid var(--ink-3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-family:var(--font-body);font-size:1.35rem;font-weight:500;line-height:1;color:var(--text-strong)}.hero__mode svg{width:1.7rem;height:1.7rem;flex-shrink:0;stroke:currentColor}@keyframes heroSettle{from{transform:scale(1.07)}}@keyframes heroName{from{clip-path:inset(0 -0.2em 100% -0.2em);transform:translateY(.22em)}to{clip-path:inset(-0.2em);transform:none}}@keyframes heroFade{from{opacity:0}}@media (min-width:640px){.hero{padding-bottom:var(--space-xl)}}@media (prefers-reduced-motion:reduce){.hero__name,.hero__slogan,header::before{animation:none}.hero__modes{transition:none}}.utility-bar{display:flex;align-items:center;justify-content:space-between;padding:.6rem var(--pad-inline);color:var(--text-color);background:var(--layer-1);border-bottom:1px solid var(--ink-2);flex-shrink:0;min-height:48px;box-sizing:border-box}.horaire{display:inline-flex;align-items:center;gap:.5rem;font-size:1.25rem;font-family:var(--font-body);font-weight:500;letter-spacing:.2px;padding:.35rem .85rem;border-radius:9999px;background:rgba(0,0,0,.22);border:1px solid var(--ink-2);line-height:1;height:2.4rem}.horaire.skeleton{width:145px;height:2.4rem;min-height:2.4rem;padding:0;border-radius:9999px;background:linear-gradient(90deg,var(--layer-1) 25%,var(--layer-2) 50%,var(--layer-1) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite linear;border:1px solid var(--ink-2);pointer-events:none}.profile-btn-skeleton{display:inline-flex;width:36px;height:36px;border-radius:50%;background:linear-gradient(90deg,var(--layer-1) 25%,var(--layer-2) 50%,var(--layer-1) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite linear;border:1px solid var(--ink-2);box-shadow:0 2px 8px rgba(var(--shadow-rgb),calc(.25 * var(--shadow-k)));pointer-events:none}.horaire svg{width:14px;height:14px;flex-shrink:0;opacity:.9}.card{cursor:pointer;transition:transform .22s cubic-bezier(.16, 1, .3, 1),box-shadow .22s cubic-bezier(.16, 1, .3, 1),border-color .22s ease,opacity .2s ease}.card:hover{transform:translateY(-2px);border-color:var(--ink-4);box-shadow:0 12px 28px -6px rgba(var(--shadow-rgb),calc(.65 * var(--shadow-k))),0 0 1px 1px rgba(255,255,255,.06) inset}.card.card--activating{opacity:.6;transform:scale(.985)}.card .btn-ajouter{cursor:pointer}#modal-item-detail,.modal-item-detail,.modal-overlay.modal-item-detail{display:none;position:fixed;inset:0;top:0;left:0;right:0;bottom:0;width:100vw;height:100%;height:100dvh;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:2200;flex-direction:column!important;justify-content:center!important;align-items:center!important;padding:1.5rem 1rem!important;margin:0!important;animation:modalItemFadeIn .22s ease forwards;touch-action:auto!important;cursor:pointer;box-sizing:border-box}@keyframes modalItemFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalItemFadeOut{from{opacity:1}to{opacity:0}}.modal-item-detail-content{position:relative;width:min(92vw,480px);max-width:480px;max-height:min(86dvh,86vh);margin:auto;background:linear-gradient(175deg,var(--layer-1) 0,var(--layer-1) 100%);border:1px solid var(--ink-3);border-radius:20px;box-shadow:0 24px 60px -12px rgba(var(--shadow-rgb),calc(.9 * var(--shadow-k))),0 0 1px 1px rgba(255,255,255,.08) inset;display:flex;flex-direction:column;align-items:stretch;padding:0;gap:0;overflow:hidden;overscroll-behavior:contain;cursor:default;animation:modalCenterScaleIn .26s cubic-bezier(.16,1,.3,1) forwards}@keyframes modalCenterScaleIn{from{transform:scale(.94) translateY(12px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes modalCenterScaleOut{from{transform:scale(1) translateY(0);opacity:1}to{transform:scale(.94) translateY(12px);opacity:0}}.modal-item-detail__img-wrap{position:relative;width:100%;height:clamp(180px,28vh,250px);background:var(--layer-2);overflow:hidden;flex-shrink:0;margin:0;padding:0;border-top-left-radius:20px;border-top-right-radius:20px}.modal-item-detail__img{width:100%;height:100%;object-fit:cover;display:block}.modal-item-detail__img-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.95) 0,rgba(0,0,0,.25) 35%,transparent 70%);pointer-events:none}.modal-item-detail__badge-slot{position:absolute;bottom:12px;left:16px;z-index:5}.modal-item-detail__body{padding:1.4rem 1.6rem 1.4rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.95rem;-ms-overflow-style:none;scrollbar-width:none}.modal-item-detail__body::-webkit-scrollbar{display:none}.modal-item-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;width:100%;min-width:0}.modal-item-detail__title{font-family:var(--font-emphasis);font-size:clamp(1.4rem, 4.2vw, 1.8rem);font-weight:700;line-height:1.2;color:var(--text-strong);margin:0;text-align:left;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;word-break:break-word;overflow-wrap:anywhere}.modal-item-detail__price-wrap{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.modal-item-detail__old-price{font-size:.95rem;color:var(--text-muted);text-decoration:line-through}.modal-item-detail__price{font-family:var(--font-emphasis);font-size:clamp(1.35rem, 3.8vw, 1.65rem);font-weight:700;color:var(--theme-color);white-space:nowrap}.modal-item-detail__desc{font-family:var(--font-body);font-size:1.05rem;line-height:1.6;color:var(--text-color);margin:0;text-align:left;opacity:.92}.modal-item-detail__cta-row{display:flex;justify-content:flex-end;align-items:center;margin-top:auto;padding:.75rem 0 0 0;border:none}.modal-item-detail__chevron-btn{width:58px;height:58px;min-width:58px;min-height:58px;background:0 0;color:var(--theme-color);border:none;outline:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:none;-webkit-tap-highlight-color:transparent;transition:transform .22s cubic-bezier(.16, 1, .3, 1),color .2s ease,opacity .2s ease}.modal-item-detail__chevron-btn svg{display:block;stroke:currentColor;stroke-width:2.8;width:34px;height:34px;transition:transform .22s cubic-bezier(.16, 1, .3, 1)}.modal-item-detail__chevron-btn:hover{color:var(--text-strong);transform:translateX(4px) scale(1.06);background:0 0;border:none;box-shadow:none}.modal-item-detail__chevron-btn:active{transform:translateX(2px) scale(.94)}.modal-item-detail__chevron-btn:focus:not(:focus-visible){outline:0}.modal-item-detail__chevron-btn:focus-visible{outline:2px solid rgba(var(--theme-color-rgb),.65);outline-offset:2px;border-radius:var(--radius-sm,8px)}.modal-item-detail__chevron-btn.disabled,.modal-item-detail__chevron-btn:disabled{opacity:.25;cursor:not-allowed;pointer-events:none;background:0 0;color:var(--text-muted);border:none;box-shadow:none}