.card{position:relative;display:grid;grid-template-columns:115px 1fr;grid-template-rows:1fr auto;column-gap:var(--space-md);background:linear-gradient(145deg,var(--layer-1) 0,var(--body-bg) 100%);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%}.card:hover{border-color:rgba(255,255,255,.1)}.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:1px solid rgba(255,255,255,.05);background:var(--layer-2)}.food-img{width:100%;height:100%;object-fit:cover;display:block}.card--no-img{grid-template-columns:1fr;padding:var(--space-md)}.card--no-img .card-img-wrapper{display:none}.card--no-img .card-content{grid-column:1;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}.card-name-price{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm)}.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-price,#modal-title,.item-title,.price{font-weight:var(--weight-bold);text-transform:capitalize;font-family:var(--font-emphasis);font-size:var(--text-body)}.item-title{font-size:1.5rem;flex:1;min-width:0;overflow-wrap:break-word;word-break:break-word;color:var(--accent-color);letter-spacing:.3px}.price{font-size:1.5rem;color:var(--accent-color);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{padding:var(--space-md);background:var(--glass-bg);border:1px solid var(--theme-color);color:var(--accent-color);border-radius:8px;text-align:center;font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.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:rgba(10,18,15,.55);color:var(--accent-color);display:flex;align-items:center;justify-content:center;font-family:var(--font-emphasis);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:rgba(255,255,255,.2);border-color:rgba(255,255,255,.06);cursor:not-allowed}.card--no-img.out-of-stock::after{content:"ÉPUISÉ";position:absolute;top:var(--space-sm);right:var(--space-sm);background:rgba(10,18,15,.75);color:var(--accent-color);font-family:var(--font-emphasis);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:2rem}.promo-card.card--no-img{padding-top:3.6rem}.promo-badge{position:absolute;top:var(--space-xs);left:var(--space-md);display:flex;align-items:center;gap:.4rem;padding:.4rem .8rem;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:.8rem}.promo-badge.urgent{background:#e65100;color:#fff;box-shadow:0 4px 10px rgba(217,117,99,.3)}.promo-badge.urgent::before{content:"";position:absolute;inset:0;background:inherit;border-radius:inherit;z-index:-1;animation:pulse-standard 1.8s infinite}.promo-badge.imminent{background:#d32f2f;color:#fff;box-shadow:0 4px 10px rgba(211,47,47,.3)}.promo-badge.imminent::before{content:"";position:absolute;inset:0;background:inherit;border-radius:inherit;z-index:-1;animation:pulse-fast .9s infinite}.promo-badge span{letter-spacing:.5px}