.card{position:relative;display:grid;grid-template-columns:115px minmax(0,1fr);grid-template-rows:1fr auto;column-gap:var(--space-md);background:var(--layer-1);color:var(--text-color);padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-sm);border-radius:var(--radius-card);border:var(--glass-border-subtle);box-shadow:var(--glass-shadow);transition:var(--transition-ui);will-change:transform,opacity;min-height:160px;width:100%;-webkit-tap-highlight-color:transparent}.card:hover{border-color:var(--ink-4)}.card:active{transform:scale(.985)}.card-img-wrapper{grid-column:1;grid-row:1/3;overflow:hidden;border-radius:10px;aspect-ratio:1/1;width:100%;max-width:110px;place-self:center;border:0;background:0 0}.food-img{width:100%;height:100%;object-fit:cover;display:block}.card--no-img{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;padding:var(--space-md)}.card--no-img .card-footer{grid-column:1;min-width:0}.card--no-img .card-img-wrapper{display:none}.card--no-img .card-content{grid-column:1/-1;width:100%;min-width:0;box-sizing:border-box;padding:0 0 var(--space-sm) 0}.card-content{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:var(--space-xs);padding:var(--space-xs) 0;min-width:0;overflow:hidden}.card-name-price{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);min-width:0}.price-group{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.price-old{font-size:.8em;text-decoration:line-through;color:var(--color-muted);opacity:.6}#modal-title,.item-title{font-weight:var(--weight-bold);font-family:var(--font-emphasis);font-size:var(--text-body)}#modal-price,.price{font-weight:var(--weight-bold);font-family:var(--font-emphasis);font-size:var(--text-body)}.item-title{font-size:1.5rem;flex:1;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:var(--text-strong);letter-spacing:.3px;line-height:1.25}.price{font-size:1.5rem;color:var(--text-strong);white-space:nowrap;flex-shrink:0;opacity:.85}.item-description{font-size:1.2rem;font-weight:var(--weight-light);color:var(--text-muted);line-height:1.4}.item-description-toggle{background:0 0;border:none;padding:0;margin-left:4px;font-size:1.1rem;font-weight:var(--weight-light);color:var(--text-muted);text-decoration:underline;text-decoration-color:var(--theme-color-dim);text-underline-offset:1.5px;cursor:pointer;display:inline;outline:0}.item-description-toggle:focus-visible{outline:1px solid var(--text-muted);outline-offset:2px}.table-badge{width:100%;box-sizing:border-box;padding:var(--space-md) var(--space-lg);background:var(--glass-bg,var(--ink-1));border:1px solid var(--ink-4);color:var(--text-strong);border-radius:8px;font-weight:var(--weight-bold);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);text-align:center;margin:var(--space-xs) 0 var(--space-sm)}.table-badge-info{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:var(--fs-sm, 1.25rem)}.table-badge-escape{background:0 0;border:none;color:var(--text-muted);font-size:1.15rem;text-decoration:underline;cursor:pointer;padding:.2rem .6rem;transition:color var(--transition-fast, .2s)}.table-badge-escape:hover{color:var(--text-strong)}.card--no-img.out-of-stock,.card.out-of-stock{opacity:1;filter:none}.card.out-of-stock .card-img-wrapper{position:relative;filter:grayscale(1) brightness(.45)}.card.out-of-stock .card-img-wrapper::after{content:"ÉPUISÉ";position:absolute;inset:0;background:var(--glass-bg);color:var(--text-strong);display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:2rem;font-weight:var(--weight-bold);z-index:10;pointer-events:none;border-radius:10px}.card.out-of-stock .item-description,.card.out-of-stock .item-title,.card.out-of-stock .price{opacity:.35}.card.out-of-stock .btn-ajouter.disabled{opacity:.3;pointer-events:none;background:0 0;color:var(--ink-4);border-color:var(--ink-2);cursor:not-allowed}.card--no-img.out-of-stock::after{content:"ÉPUISÉ";position:absolute;top:var(--space-sm);right:var(--space-sm);background:var(--layer-2);color:var(--text-strong);font-family:var(--font-body);font-size:1.1rem;font-weight:var(--weight-bold);padding:.3rem .7rem;border-radius:6px;z-index:10;pointer-events:none}.skeleton{pointer-events:none;user-select:none}.category-group.skeleton .skeleton-desc,.category-group.skeleton .skeleton-title,.skeleton-img,.skeleton-nav,.skeleton-text{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-radius:6px}.skeleton-title{height:3.2rem;width:45%;margin:var(--space-lg) auto var(--space-sm)}.skeleton-desc{height:1.6rem;width:25%;margin:0 auto var(--space-lg)}.card.skeleton{background:0 0;border:var(--glass-border);min-height:100px;box-shadow:none}.card.skeleton .skeleton-img{grid-column:1;grid-row:1/3;width:100%;height:100%;min-height:100px;border-radius:0}.card.skeleton .card-content{gap:var(--space-sm);padding-top:var(--space-sm)}.card.skeleton .card-name-price{justify-content:space-between}.skeleton-text{height:1.6rem;width:70%;border-radius:4px}.skeleton-text.short{width:35%;height:3.4rem;border-radius:var(--btn-radius);margin-top:var(--space-sm)}.categories.skeleton{justify-content:center}.menu-nav.skeleton{gap:var(--space-sm)}.skeleton-nav{width:75%;height:2.2rem;border-radius:8px}.promo-card{position:relative;padding-top:3.6rem}.promo-card .card-img-wrapper{place-self:start center}.promo-card.card--no-img{padding-top:3.6rem}.promo-badge{position:absolute;top:.8rem;left:var(--space-sm);display:flex;align-items:center;gap:.4rem;padding:.35rem .75rem;background:var(--theme-color);color:var(--text-color-inv);border-radius:var(--btn-radius);font-family:var(--font-emphasis);font-size:.95rem;font-weight:var(--weight-bold);z-index:10;white-space:nowrap;box-shadow:0 4px 10px var(--theme-glow)}.card--no-img .promo-badge{top:.8rem;left:var(--space-md)}.promo-badge.urgent{background:#e65100;color:#fff;box-shadow:0 4px 10px rgba(230,81,0,.2)}.promo-badge.urgent::before{content:"";position:absolute;inset:0;background:inherit;border-radius:inherit;z-index:-1;animation:promo-pulse-standard 2.4s cubic-bezier(.4,0,.2,1) infinite}.promo-badge.imminent{background:#d32f2f;color:#fff;box-shadow:0 4px 10px rgba(211,47,47,.2)}.promo-badge.imminent::before{content:"";position:absolute;inset:0;background:inherit;border-radius:inherit;z-index:-1;animation:promo-pulse-fast 1.6s cubic-bezier(.4,0,.2,1) infinite}.promo-badge span{letter-spacing:.5px}@keyframes promo-pulse-standard{0%{transform:scale(1);opacity:.4}50%{transform:scale(1.08);opacity:0}100%{transform:scale(1);opacity:0}}@keyframes promo-pulse-fast{0%{transform:scale(1);opacity:.5}50%{transform:scale(1.12);opacity:0}100%{transform:scale(1);opacity:0}}