/* Products Grid */
/* FIX: was repeat(4,1fr) hardcoded — on mobile this creates 4 tiny columns.
   Changed to repeat(auto-fill, minmax(220px,1fr)) as the base so it naturally
   reflows. Responsive.css overrides with explicit column counts per breakpoint. */
.products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; }

.product-card {
    background: white; border-radius: var(--radius); overflow: hidden;
    box-shadow: var(--shadow-sm); transition: var(--transition);
    border: 1px solid var(--border); display: flex; flex-direction: column;
    min-width: 0;
}
.product-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }

.product-card-img {
    height: 200px; display: flex; align-items: center; justify-content: center;
    font-size: 72px; background: var(--cream);
    position: relative; overflow: hidden;
}
.product-badge {
    position: absolute; top: 12px; left: 12px;
    background: var(--orange); color: white; font-size: 11px; font-weight: 700;
    padding: 4px 10px; border-radius: 50px;
}
.product-badge.veg { background: #22C55E; }
.product-badge.bestseller { background: #F59E0B; }

.product-card-body { padding: 16px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.product-category { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--orange); font-weight: 600; margin-bottom: 6px; }
.product-name { font-size: 17px; font-weight: 600; margin-bottom: 8px; color: var(--text-dark); font-family: 'Playfair Display', serif; }
.product-desc { font-size: 13px; color: var(--text-light); line-height: 1.5; margin-bottom: 12px; flex: 1; }
.product-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.product-rating { font-size: 13px; color: var(--text-mid); }
.product-rating span { color: #F59E0B; margin-right: 4px; }

/* Weight Select */
.weight-select {
    width: 100%; padding: 8px 12px;
    border: 1.5px solid var(--border); border-radius: var(--radius-sm);
    font-size: 13px; color: var(--text-mid); margin-bottom: 14px;
    background: var(--cream); cursor: pointer;
}
.weight-select:focus { border-color: var(--orange); }

/* Price + Cart Row */
.product-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.product-price { font-size: 22px; font-weight: 700; color: var(--orange); }
.product-price-orig { font-size: 14px; color: var(--text-light); text-decoration: line-through; margin-left: 4px; }

/* Add to Cart Button */
.add-to-cart-btn {
    background: var(--orange); color: white;
    width: 40px; height: 40px; border-radius: 50%;
    font-size: 22px; display: flex; align-items: center; justify-content: center;
    transition: var(--transition); flex-shrink: 0;
}
.add-to-cart-btn:hover { background: var(--orange-dark); transform: scale(1.1); }

/* Quantity Control (when item is in cart) */
.qty-control { display: flex; align-items: center; gap: 8px; }
.qty-btn { width: 30px; height: 30px; background: var(--orange); color: white; border-radius: 50%; font-size: 18px; display: flex; align-items: center; justify-content: center; transition: var(--transition); }
.qty-btn:hover { background: var(--orange-dark); }
.qty-num { font-weight: 700; font-size: 16px; min-width: 24px; text-align: center; }

/* Skeleton Loader */
.product-skeleton {
    background: white; border-radius: var(--radius); overflow: hidden;
    height: 360px; border: 1px solid var(--border);
}
.product-skeleton::before {
    content: ''; display: block; height: 100%;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
}
.product-skeleton.large { height: 500px; }

/* Product Detail Page */
.product-page { padding-top: 80px; padding-bottom: 80px; }
/* FIX: was grid-template-columns: 1fr 1fr with no mobile collapse.
   Responsive.css collapses it; adding min-width:0 so grid children don't overflow. */
.product-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-bottom: 80px; min-width: 0; }
.product-detail-img { background: var(--cream); border-radius: var(--radius); height: 400px; display: flex; align-items: center; justify-content: center; font-size: 120px; }
.product-detail-info { padding: 20px 0; min-width: 0; }
.product-detail-info h1 { font-size: 36px; margin-bottom: 16px; }
.product-detail-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.product-detail-price { font-size: 36px; font-weight: 700; color: var(--orange); margin-bottom: 24px; }
.product-detail-desc { color: var(--text-mid); line-height: 1.8; margin-bottom: 28px; }
.product-detail-weight { margin-bottom: 24px; }
.product-detail-weight label { font-weight: 600; margin-bottom: 8px; display: block; }
.product-detail-actions { display: flex; gap: 16px; flex-wrap: wrap; }

/* Menu Page */
.menu-section { padding: 40px 0 80px; }
/* FIX: filter-bar children could overflow when flex content was wider than container. */
.filter-bar { display: flex; gap: 16px; align-items: center; margin-bottom: 32px; flex-wrap: wrap; }
.filter-search { flex: 1; min-width: 200px; display: flex; align-items: center; gap: 10px; background: white; border: 2px solid var(--border); border-radius: 50px; padding: 10px 20px; }
.filter-search input { border: none; background: none; font-size: 15px; flex: 1; min-width: 0; }
.filter-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.filter-tab { padding: 8px 18px; border-radius: 50px; font-size: 13px; font-weight: 600; border: 2px solid var(--border); background: white; transition: var(--transition); }
.filter-tab.active, .filter-tab:hover { background: var(--orange); color: white; border-color: var(--orange); }
.filter-sort select { padding: 10px 16px; border: 2px solid var(--border); border-radius: 50px; font-size: 14px; background: white; }
.no-results { text-align: center; padding: 80px; }
.no-results span { font-size: 48px; display: block; margin-bottom: 16px; }

/* Related Products */
.related-section { border-top: 2px solid var(--border); padding-top: 60px; }
.related-section h3 { font-size: 28px; margin-bottom: 32px; }

/* ========== PREMIUM PRODUCT CARD ENHANCEMENTS ========== */

/* Product category label */
.product-category {
    background: linear-gradient(135deg, rgba(232,71,26,0.08), rgba(255,107,53,0.12));
    color: #E8471A !important;
    padding: 3px 10px;
    border-radius: 20px;
    display: inline-block;
    margin-bottom: 8px !important;
    font-size: 10px !important;
    letter-spacing: 1.5px !important;
    border: 1px solid rgba(232,71,26,0.15);
}

/* Product name hover */
.product-name {
    transition: color 0.2s;
}
.product-card:hover .product-name { color: #E8471A; }

/* Product image area */
.product-card-img {
    background: linear-gradient(145deg, #FFF8F3, #FDF0E8) !important;
    transition: background 0.3s ease !important;
}
.product-card:hover .product-card-img {
    background: linear-gradient(145deg, #FFF0EB, #FDE8DC) !important;
}

/* Add to cart button premium */
.add-to-cart-btn {
    background: linear-gradient(135deg, #E8471A, #FF6B35) !important;
    box-shadow: 0 4px 14px rgba(232,71,26,0.3) !important;
    transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1) !important;
}
.add-to-cart-btn:hover {
    transform: scale(1.18) rotate(10deg) !important;
    box-shadow: 0 8px 24px rgba(232,71,26,0.45) !important;
}

/* Product badge */
.product-badge {
    background: linear-gradient(135deg, #E8471A, #FF6B35) !important;
    box-shadow: 0 2px 8px rgba(232,71,26,0.3) !important;
    letter-spacing: 0.5px;
}
.product-badge.bestseller {
    background: linear-gradient(135deg, #F59E0B, #FBBF24) !important;
    box-shadow: 0 2px 8px rgba(245,158,11,0.35) !important;
}
.product-badge.veg {
    background: linear-gradient(135deg, #22C55E, #4ADE80) !important;
    box-shadow: 0 2px 8px rgba(34,197,94,0.35) !important;
}

/* Price premium gradient */
.product-price {
    background: linear-gradient(135deg, #E8471A, #C93A12);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 800 !important;
}

/* Filter tabs */
.filter-tab.active, .filter-tab:hover {
    background: linear-gradient(135deg, #E8471A, #FF6B35) !important;
    box-shadow: 0 4px 14px rgba(232,71,26,0.3) !important;
    border-color: transparent !important;
    transform: translateY(-1px);
}

/* Qty control */
.qty-btn {
    background: linear-gradient(135deg, #E8471A, #FF6B35) !important;
    box-shadow: 0 2px 8px rgba(232,71,26,0.25) !important;
    transition: all 0.25s cubic-bezier(0.34,1.56,0.64,1) !important;
}
.qty-btn:hover {
    transform: scale(1.15) !important;
    box-shadow: 0 4px 14px rgba(232,71,26,0.4) !important;
}

/* Skeleton loader enhanced */
.product-skeleton::before {
    background: linear-gradient(90deg, #FFF0EB 25%, #FFE8DC 50%, #FFF0EB 75%) !important;
    background-size: 200% 100% !important;
}

/* ── Veg sub-filter tabs ── */
#vegFilterTabs {
    display: none;
    gap: 8px;
    flex-wrap: wrap;
    padding: 4px 0;
}
#vegFilterTabs .filter-tab {
    font-size: 13px;
    padding: 5px 14px;
}

