/* ═══════════════════════════════════════
   Semedo's Menu – Frontend CSS
   CV Branding © 2025
═══════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,700&family=Inter:wght@300;400;500;600&display=swap');

.smd-menu-wrap { --gold:#C4922A; --gold-l:#E8B84B; --black:#1A1A1A; --cream:#F5F0E8; --cream-d:#EDE7D9; --white:#FFFFFF; --muted:#6B6B6B; --border:#E0D9CE; font-family:'Inter',sans-serif; max-width:1200px; margin:0 auto; }

/* ── TOP BAR ── */
.smd-menu-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; gap:16px; flex-wrap:wrap; }
.smd-search-wrap { flex:1; min-width:200px; position:relative; }
.smd-search-icon { position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:1rem; pointer-events:none; }
.smd-search-input { width:100%; padding:12px 16px 12px 42px; border:1.5px solid var(--border); border-radius:30px; font-family:'Inter',sans-serif; font-size:.92rem; background:var(--white); transition:border-color .2s; }
.smd-search-input:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(196,146,42,.1); }

.smd-cart-btn { display:flex; align-items:center; gap:10px; background:var(--black); color:var(--white); padding:12px 20px; border-radius:30px; text-decoration:none; font-weight:600; font-size:.88rem; transition:all .2s; white-space:nowrap; }
.smd-cart-btn:hover { background:var(--gold); }
.smd-cart-icon { font-size:1.1rem; }
.smd-cart-count { background:var(--gold); color:#fff; width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:700; }

/* ── CATEGORIAS FILTER ── */
.smd-cats-filter { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px; padding-bottom:20px; border-bottom:2px solid var(--border); }
.smd-cat-btn { padding:10px 20px; border-radius:30px; border:1.5px solid var(--border); background:var(--white); color:var(--black); font-family:'Inter',sans-serif; font-size:.84rem; font-weight:500; cursor:pointer; transition:all .2s; display:flex; align-items:center; gap:6px; }
.smd-cat-btn:hover { border-color:var(--gold); color:var(--gold); }
.smd-cat-btn.active { background:var(--gold); border-color:var(--gold); color:var(--white); }
.smd-cat-count-pill { background:rgba(0,0,0,.1); color:inherit; padding:1px 7px; border-radius:10px; font-size:.72rem; }
.smd-cat-btn.active .smd-cat-count-pill { background:rgba(255,255,255,.25); }

/* ── RESULTS INFO ── */
.smd-results-info { padding:8px 16px; background:var(--cream); border-radius:6px; font-size:.84rem; color:var(--muted); margin-bottom:16px; }

/* ── SECTION HEADER ── */
.smd-menu-section { margin-bottom:48px; }
.smd-section-header { display:flex; align-items:center; gap:14px; margin-bottom:20px; padding-bottom:14px; border-bottom:2px solid var(--border); }
.smd-section-icon { font-size:1.8rem; }
.smd-section-title { font-family:'Playfair Display',serif; font-size:clamp(1.4rem,3vw,1.9rem); font-weight:700; color:var(--black); margin:0; flex:1; }
.smd-section-count { background:var(--cream); color:var(--muted); padding:4px 12px; border-radius:20px; font-size:.78rem; font-weight:600; border:1px solid var(--border); }

/* ── GRID LAYOUTS ── */
.smd-items-grid.smd-layout-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; }
.smd-items-grid.smd-layout-list { display:flex; flex-direction:column; gap:12px; }

/* ── ITEM CARD (grid) ── */
.smd-item-card { background:var(--white); border:1px solid var(--border); border-radius:12px; overflow:hidden; transition:all .25s; display:flex; flex-direction:column; }
.smd-item-card:hover { box-shadow:0 8px 28px rgba(196,146,42,.15); transform:translateY(-4px); border-color:var(--gold); }
.smd-item-card.smd-item-featured { border-color:var(--gold); box-shadow:0 4px 16px rgba(196,146,42,.12); }
.smd-item-card.smd-item-unavailable { opacity:.65; }
.smd-item-card.smd-item-unavailable:hover { transform:none; }

/* Card list layout */
.smd-layout-list .smd-item-card { flex-direction:row; border-radius:10px; }
.smd-layout-list .smd-item-img-wrap { width:120px; flex-shrink:0; }
.smd-layout-list .smd-item-img-placeholder { height:120px; }
.smd-layout-list .smd-item-img { height:100%; }
.smd-layout-list .smd-item-body { padding:16px 20px; }

/* ── ITEM IMAGE ── */
.smd-item-img-wrap { position:relative; overflow:hidden; aspect-ratio:16/10; background:var(--cream); }
.smd-item-img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.smd-item-card:hover .smd-item-img { transform:scale(1.04); }
.smd-item-img-placeholder { display:flex; align-items:center; justify-content:center; font-size:3rem; height:100%; background:var(--cream); }
.smd-item-overlay-unavail { position:absolute; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:.9rem; letter-spacing:.06em; text-transform:uppercase; }

/* ── BADGES ── */
.smd-badge { position:absolute; top:10px; left:10px; padding:4px 10px; border-radius:20px; font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.smd-badge-novo        { background:#0073aa; color:#fff; }
.smd-badge-popular     { background:#e53935; color:#fff; }
.smd-badge-especial    { background:var(--gold); color:#fff; }
.smd-badge-premium     { background:#6a1b9a; color:#fff; }
.smd-badge-vegetariano { background:#2e7d32; color:#fff; }
.smd-badge-picante     { background:#bf360c; color:#fff; }

/* ── ITEM BODY ── */
.smd-item-body { padding:16px; flex:1; display:flex; flex-direction:column; }
.smd-item-title { font-family:'Playfair Display',serif; font-size:1.05rem; font-weight:700; color:var(--black); margin:0 0 8px; line-height:1.3; }
.smd-item-desc  { font-size:.84rem; color:var(--muted); line-height:1.6; margin:0 0 10px; flex:1; }

.smd-item-meta { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.smd-item-meta span { font-size:.76rem; color:var(--muted); background:var(--cream); padding:3px 10px; border-radius:12px; }

.smd-item-allergens { margin-bottom:10px; }
.smd-allerg-label { font-size:.72rem; color:#e65100; font-weight:600; display:block; margin-bottom:4px; }
.smd-allerg-tag { display:inline-block; font-size:.68rem; background:#fff3e0; color:#e65100; border:1px solid #ffe0b2; padding:2px 8px; border-radius:10px; margin:2px 2px 2px 0; }

/* ── ITEM FOOTER ── */
.smd-item-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:12px; border-top:1px solid var(--border); }
.smd-item-price { display:flex; flex-direction:column; }
.smd-price-main { font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:700; color:var(--gold); line-height:1; }
.smd-price-promo { color:#e53935; }
.smd-price-old { font-size:.8rem; color:var(--muted); text-decoration:line-through; }
.smd-price-consultar { font-size:.8rem; color:var(--muted); font-style:italic; }

.smd-add-cart-btn { background:var(--black); color:#fff; border:none; padding:9px 16px; border-radius:6px; font-family:'Inter',sans-serif; font-size:.8rem; font-weight:600; cursor:pointer; transition:all .2s; white-space:nowrap; }
.smd-add-cart-btn:hover { background:var(--gold); }
.smd-add-cart-btn.loading { opacity:.7; cursor:wait; }
.smd-unavail-tag { font-size:.78rem; color:var(--muted); font-style:italic; }

/* ── TOAST NOTIFICATION ── */
.smd-cart-toast { position:fixed; bottom:24px; right:24px; z-index:9999; max-width:360px; animation:smd-slide-in .3s ease; }
@keyframes smd-slide-in { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.smd-toast-inner { background:var(--black); color:#fff; border-radius:12px; padding:16px 20px; display:flex; align-items:center; gap:12px; box-shadow:0 8px 32px rgba(0,0,0,.3); }
.smd-toast-icon  { font-size:1.4rem; flex-shrink:0; }
.smd-toast-msg   { flex:1; font-size:.88rem; line-height:1.4; }
.smd-toast-checkout { background:var(--gold); color:#fff; padding:8px 14px; border-radius:6px; text-decoration:none; font-size:.8rem; font-weight:600; white-space:nowrap; }
.smd-toast-checkout:hover { background:var(--gold-l); color:var(--black); }
.smd-toast-close { background:none; border:none; color:#888; font-size:1rem; cursor:pointer; padding:0; line-height:1; }

/* ── MODAL ── */
.smd-modal { position:fixed; inset:0; z-index:9998; display:flex; align-items:center; justify-content:center; padding:20px; }
.smd-modal-overlay { position:absolute; inset:0; background:rgba(0,0,0,.6); backdrop-filter:blur(4px); }
.smd-modal-inner { position:relative; background:var(--white); border-radius:16px; max-width:580px; width:100%; max-height:90vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.smd-modal-close { position:absolute; top:16px; right:16px; background:var(--cream); border:none; width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center; z-index:1; }

/* ── EMPTY STATE ── */
.smd-menu-empty { text-align:center; padding:64px 20px; }
.smd-empty-icon { font-size:4rem; margin-bottom:16px; }
.smd-menu-empty h3 { font-family:'Playfair Display',serif; font-size:1.5rem; color:var(--black); margin-bottom:8px; }
.smd-menu-empty p  { color:var(--muted); }

/* ── ITEM HIDDEN (filter) ── */
.smd-item-hidden { display:none!important; }
.smd-section-hidden { display:none!important; }

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .smd-items-grid.smd-layout-grid { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); }
  .smd-layout-list .smd-item-card { flex-direction:column; }
  .smd-layout-list .smd-item-img-wrap { width:100%; }
  .smd-cats-filter { gap:8px; }
  .smd-cat-btn { padding:8px 14px; font-size:.8rem; }
}
@media(max-width:480px){
  .smd-items-grid.smd-layout-grid { grid-template-columns:1fr 1fr; }
  .smd-item-title { font-size:.95rem; }
  .smd-item-body { padding:12px; }
  .smd-menu-topbar { flex-direction:column; }
  .smd-search-wrap { width:100%; }
  .smd-cart-btn { width:100%; justify-content:center; }
  .smd-cart-toast { left:12px; right:12px; bottom:12px; }
}
