.menu-shell{ font-family:'Gotham Rounded',sans-serif; font-weight:400; color:var(--text); background:var(--cream); -webkit-font-smoothing:antialiased; min-height:100vh; max-width:560px; margin:0 auto; padding-bottom:100px; }
.menu-shell.has-selection{ padding-bottom:128px; }

.menu-header{ position:sticky; top:0; z-index:95; background:rgba(250,243,227,.96); backdrop-filter:blur(10px); border-bottom:1px solid rgba(84,24,41,.1); padding:16px 20px 0; }
.menu-header-top{ display:flex; align-items:center; justify-content:space-between; }
.menu-label{ font-family:'Gotham Rounded'; font-weight:500; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); }

.tabs{ display:flex; gap:6px; overflow-x:auto; margin-top:14px; padding-bottom:12px; -ms-overflow-style:none; scrollbar-width:none; }
.tabs::-webkit-scrollbar{ display:none; }
.tab-btn{ font-family:'Gotham Rounded'; font-weight:500; font-size:13px; white-space:nowrap; padding:9px 16px; border-radius:100px; border:1px solid rgba(84,24,41,.18); background:transparent; color:var(--text); cursor:pointer; flex-shrink:0; transition:transform 120ms cubic-bezier(0.16,1,0.3,1), background-color 150ms, color 150ms, border-color 150ms; }
.tab-btn:active{ transform:scale(.95); }
.tab-btn.active{ border-color:var(--wine); background:var(--wine); color:var(--cream); }

.weekend-banner{ margin:16px 20px 0; padding:12px 16px; background:var(--slate); color:var(--cream); border-radius:12px; font-size:13px; font-weight:500; text-align:center; line-height:1.5; }

.fachada{ position:relative; width:100%; margin-top:2px; overflow:hidden; aspect-ratio:21/7; }
.fachada img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(.15) sepia(.12); }
.fachada-overlay{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(84,24,41,.55), rgba(84,24,41,.15) 60%); pointer-events:none; }
.fachada-title{ position:absolute; left:20px; bottom:12px; font-family:'Adventures'; font-size:20px; color:var(--cream); letter-spacing:.02em; }

.tab-banner{ position:relative; width:calc(100% - 40px); margin:14px 20px 0; border-radius:14px; overflow:hidden; aspect-ratio:16/9; }
.tab-banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tab-banner-overlay{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(84,24,41,.72), transparent 55%); pointer-events:none; }
.tab-banner-text{ position:absolute; left:16px; bottom:14px; right:16px; font-family:'Gotham Rounded'; font-size:16px; color:var(--cream); line-height:1.3; }
.tab-banner-text b{ font-weight:500; color:var(--tan); }
.tab-banner-end{ margin:0 20px 24px; }

.hint-text{ margin:14px 20px 0; font-size:12px; color:var(--muted2); text-align:center; }

.sections{ padding:14px 20px 0; }
.menu-section{ margin-bottom:34px; padding:0; border-radius:16px; background:transparent; }
.menu-section.featured{ padding:22px 18px; background:var(--wine); }
.menu-section-title{ font-family:'Gotham Rounded'; font-weight:500; font-size:20px; color:var(--wine); margin:0 0 4px; letter-spacing:-.01em; }
.menu-section.featured .menu-section-title{ color:var(--cream); }
.menu-section-note{ font-size:13px; color:var(--muted2); margin:0 0 14px; line-height:1.5; }
.menu-section.featured .menu-section-note{ color:rgba(250,243,227,.8); }
.featured-badge{ display:inline-flex; align-items:center; gap:6px; font-family:'Gotham Rounded'; font-weight:500; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--tan); background:rgba(250,243,227,.12); padding:6px 12px; border-radius:100px; margin-bottom:12px; }
.featured-photo{ width:100%; aspect-ratio:16/10; border-radius:12px; object-fit:cover; margin-bottom:14px; }

.item-list{ display:flex; flex-direction:column; gap:2px; }
.item-row-wrap{ margin:0 -12px; border-bottom:1px solid rgba(84,24,41,.08); }
.item-row{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:12px; border-radius:12px; cursor:pointer; background:transparent; }
.item-row.has-selection{ background:rgba(84,24,41,.07); }
.menu-section.featured .item-row.has-selection{ background:rgba(250,243,227,.1); }
.item-name{ font-family:'Gotham Rounded'; font-weight:500; font-size:15px; color:var(--text); }
.menu-section.featured .item-name{ color:var(--cream); }
.item-desc{ font-size:13px; color:var(--muted2); margin-top:3px; line-height:1.5; }
.menu-section.featured .item-desc{ color:rgba(250,243,227,.75); }
.item-right{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.item-price{ font-family:'Gotham Rounded'; font-weight:500; font-size:15px; color:var(--wine); white-space:nowrap; }
.menu-section.featured .item-price{ color:var(--tan); }

.stepper{ display:flex; align-items:center; gap:6px; }
.stepper button{ width:26px; height:26px; border-radius:100px; border:1px solid var(--wine); font-weight:500; font-size:15px; line-height:1; cursor:pointer; transition:transform 120ms cubic-bezier(0.16,1,0.3,1); }
.stepper button:active{ transform:scale(.85); }
.stepper .dec{ background:var(--cream); color:var(--wine); }
.stepper .inc{ background:var(--wine); color:var(--cream); }
.stepper .qty-val{ font-weight:500; font-size:14px; min-width:14px; text-align:center; }

.choice-panel{ padding:0 12px 16px; animation:panel-enter 220ms cubic-bezier(0.16,1,0.3,1); }
.choice-group{ margin-bottom:12px; }
.choice-group-label{ font-size:12px; font-weight:500; color:var(--wine); margin-bottom:8px; }
.choice-options{ display:flex; flex-wrap:wrap; gap:8px; }
.choice-opt{ font-family:'Gotham Rounded'; font-size:13px; padding:8px 14px; border-radius:100px; border:1px solid rgba(84,24,41,.25); background:#fff; color:var(--text); cursor:pointer; transition:transform 120ms cubic-bezier(0.16,1,0.3,1), background-color 150ms, color 150ms, border-color 150ms; }
.choice-opt:active{ transform:scale(.95); }
.choice-opt.selected{ border-color:var(--wine); background:var(--wine); color:var(--cream); }
.panel-actions{ display:flex; gap:10px; }
.panel-cancel{ flex:0 0 auto; padding:10px 18px; border-radius:100px; border:1px solid rgba(84,24,41,.25); background:transparent; color:var(--text); font-family:'Gotham Rounded'; font-size:13px; cursor:pointer; transition:transform 120ms cubic-bezier(0.16,1,0.3,1); }
.panel-cancel:active{ transform:scale(.96); }
.panel-confirm{ flex:1; padding:10px 18px; border-radius:100px; border:none; background:var(--wine); color:var(--cream); font-family:'Gotham Rounded'; font-weight:500; font-size:13px; cursor:pointer; transition:transform 120ms cubic-bezier(0.16,1,0.3,1), background-color 150ms; }
.panel-confirm:active:not(:disabled){ transform:scale(.96); }
.panel-confirm:disabled{ background:rgba(84,24,41,.3); cursor:not-allowed; }

.line-list{ padding:0 12px 12px; display:flex; flex-direction:column; gap:8px; animation:panel-enter 220ms cubic-bezier(0.16,1,0.3,1); }
.line-row{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 10px; background:rgba(84,24,41,.06); border-radius:10px; }
.line-label{ font-size:13px; color:var(--text); }
.line-stepper button{ width:24px; height:24px; font-size:14px; }

.order-bar{ position:fixed; bottom:0; left:0; right:0; max-width:560px; margin:0 auto; padding:14px 20px; background:linear-gradient(0deg, var(--cream) 65%, rgba(250,243,227,0)); z-index:90; }
.order-summary{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; padding:0 4px; font-size:13px; color:var(--text); }
.order-summary b{ font-weight:500; color:var(--wine); }
.min-banner{ margin-bottom:8px; padding:10px 14px; background:var(--slate); color:var(--cream); border-radius:12px; font-size:12px; font-weight:500; text-align:center; line-height:1.5; }
.order-cta{ display:flex; align-items:center; justify-content:center; gap:8px; font-family:'Gotham Rounded'; font-weight:500; font-size:15px; color:var(--cream); background:var(--wine); padding:15px; border-radius:100px; box-shadow:0 8px 24px rgba(84,24,41,.28); transition:transform 150ms cubic-bezier(0.16,1,0.3,1), box-shadow 150ms; }
.order-cta:active{ transform:scale(.98); }

@keyframes panel-enter{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:translateY(0); } }

#weekend-banner.tab-fade, #start-banner.tab-fade, #sections.tab-fade, #end-banner.tab-fade {
  animation: panel-enter 220ms cubic-bezier(0.16,1,0.3,1);
}
