/* ── tandoco shared menu-card styles ──
   Single source of truth used by index.html, store.html, and
   protein-baked-goods-minneapolis.html so all menu cards render identically.
   Edit here once — every page updates. */

/* Grid wrapper */
.menu-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:600px){.menu-grid{grid-template-columns:repeat(2,1fr);gap:16px;}}
@media(min-width:960px){.menu-grid{grid-template-columns:repeat(3,1fr);gap:20px;}}
@media(min-width:1280px){.menu-grid{gap:22px;}}

/* Card shell — liquid glass */
.menu-card{
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 8px 32px rgba(27,26,107,.08),inset 0 1.5px 0 rgba(255,255,255,.9);
  border-radius:22px;
  overflow:hidden;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  display:flex;
  flex-direction:column;
  position:relative;
  cursor:pointer;
}
.menu-card:hover{
  box-shadow:0 16px 48px rgba(27,26,107,.14),inset 0 1px 0 rgba(255,255,255,.95);
  transform:translateY(-3px);
  background:rgba(255,255,255,.78);
}
.menu-card.unavailable{filter:grayscale(45%);opacity:.62;}
.menu-card.unavailable:hover{opacity:.76;transform:translateY(-2px);}
.menu-card.on-sale{box-shadow:0 0 0 2px rgba(239,68,68,.35),0 8px 24px rgba(0,0,0,.08)!important;}
.menu-card.weekly-special{border:2px solid #C8A96E;animation:goldPulse 2.5s ease-in-out infinite;}
.menu-card.fan-favorite{border:2px solid var(--navy,#1B1A6B);position:relative;}
@keyframes goldPulse{
  0%,100%{box-shadow:0 0 8px rgba(200,169,110,.4),0 0 20px rgba(200,169,110,.15),inset 0 0 0 2px #C8A96E;}
  50%{box-shadow:0 0 16px rgba(232,200,122,.6),0 0 32px rgba(200,169,110,.25),inset 0 0 0 2px #E8C87A;}
}

/* Image */
.card-img{height:200px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#C8C9F5 0%,#A8AAEE 100%);}
.card-img img{width:100%;height:100%;object-fit:cover;}
.card-img-placeholder{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy,#1B1A6B);opacity:.4;padding:8px;text-align:center;}

/* Carousel slides */
.card-slides{position:absolute;inset:0;}
.card-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease;}
.card-slides img.active{opacity:1;}
.card-dots{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:3;}
.card-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.5);cursor:pointer;transition:all .2s;}
.card-dot.active{background:#fff;transform:scale(1.3);}
.card-slide-btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.3);backdrop-filter:blur(4px);border:none;color:#fff;font-size:13px;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;}
.card-img:hover .card-slide-btn{opacity:1;}
.card-slide-btn.prev{left:6px;}
.card-slide-btn.next{right:6px;}

/* Badges */
.card-badge{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:99px;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:rgba(52,211,153,.9);color:#fff;}
.card-cat{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);color:var(--accent,#2D2FA8);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:99px;}

/* Body */
.card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:5px;flex:1;}
.card-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:800;color:var(--text,#1A1A2E);letter-spacing:-.02em;text-transform:lowercase;}
.card-desc{font-size:12px;color:var(--muted,#6B6B7B);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* Macros */
.card-macros{display:flex;gap:12px;margin-top:4px;flex-wrap:wrap;font-size:11px;color:var(--muted,#6B6B7B);}
.card-macro strong{color:var(--text,#1A1A2E);font-weight:800;}

/* Diet tags */
.card-diet-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px;}
.card-diet-tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:8.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;cursor:pointer;transition:all .15s;}
.card-diet-tag:hover{transform:scale(1.05);filter:brightness(1.15);}
.card-diet-tag.t-gf{background:#059669;}
.card-diet-tag.t-vegan{background:#16a34a;}
.card-diet-tag.t-vegetarian{background:#65a30d;}
.card-diet-tag.t-halal{background:#0284c7;}
.card-diet-tag.t-kosher{background:#7c3aed;}
.card-diet-tag.t-allergen-free{background:#0d9488;}
.card-diet-tag.t-allergen{background:#dc2626;font-size:8px;}

/* Footer */
.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid rgba(27,26,107,.06);}
.card-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:900;color:var(--text,#1A1A2E);letter-spacing:-.02em;}
.card-order,.btn-add{
  background:linear-gradient(135deg,var(--navy,#1B1A6B) 0%,var(--accent-lt,#4F51D4) 100%);
  color:#fff;border:none;padding:9px 18px;border-radius:99px;
  font-size:12px;font-weight:800;cursor:pointer;transition:all .2s;
  font-family:'Plus Jakarta Sans',sans-serif;text-transform:lowercase;
  box-shadow:0 3px 12px rgba(45,47,168,.3);
}
.card-order:hover,.btn-add:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(45,47,168,.4);}
.card-hint{font-size:10px;color:var(--muted,#6B6B7B);text-align:center;padding:4px 0 2px;font-weight:600;opacity:.6;}
.card-stars{display:flex;align-items:center;gap:4px;padding:0 0 4px;cursor:pointer;}
.card-stars-icons{color:var(--gold,#C8A96E);font-size:11px;letter-spacing:1px;line-height:1;}
.card-stars-count{font-size:10px;color:var(--muted,#6B6B7B);font-weight:600;}
body:not(.prices-ready) .card-price,body:not(.prices-ready) .card-hint{visibility:hidden;}

/* Skeleton (loading shimmer) */
.menu-card-skel{background:#fff;border-radius:22px;overflow:hidden;border:1px solid var(--border,#EDE8DC);display:flex;flex-direction:column;}
.menu-card-skel .skel-img{height:200px;background:linear-gradient(90deg,#f5f5f5 0%,#eaeaea 50%,#f5f5f5 100%);background-size:200% 100%;animation:skelShim 1.4s infinite;}
.menu-card-skel .skel-body{padding:18px 20px;}
.skel{background:linear-gradient(90deg,#f0f0f0 0%,#e3e3e3 50%,#f0f0f0 100%);background-size:200% 100%;animation:skelShim 1.4s infinite;border-radius:6px;}
.skel-line{height:12px;margin-bottom:8px;}
.skel-short{width:40%;}
.skel-med{width:60%;}
.skel-long{width:85%;}
@keyframes skelShim{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
