:root {
  --brand-orange-accent: #d36613;
  --brand-orange-hover: #b5530b;
  --brand-yellow: #FFD700;
  --canvas-cream-bg: #faf7f2;
  --surface-white: #ffffff;
  --dark-charcoal: #2c2a27;
  --slate-muted: #6a6660;
  --grid-border-color: #eae6df;
}
* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
body { background-color: var(--canvas-cream-bg); color: var(--dark-charcoal); scroll-behavior: smooth; }
.promo-discount-bar { background-color: var(--brand-orange-accent); color: white; text-align: center; padding: 8px 10px; font-size: 13px; font-weight: 600; }
header { background: var(--surface-white); display: flex; justify-content: space-between; align-items: center; padding: 15px 8%; border-bottom: 1px solid var(--grid-border-color); position: sticky; top: 0; z-index: 1000; }
header .logo { font-size: 22px; font-weight: 800; color: var(--brand-orange-accent); }
header nav a { text-decoration: none; color: var(--dark-charcoal); margin: 0 15px; font-weight: 600; font-size: 14px; transition: color 0.3s; }
header nav a:hover { color: var(--brand-orange-accent); }
.btn-reserve, .btn-primary { background-color: var(--brand-orange-accent); color: white; border: none; padding: 11px 25px; border-radius: 25px; cursor: pointer; font-weight: 600; transition: background 0.3s; }
.btn-reserve:hover, .btn-primary:hover { background-color: var(--brand-orange-hover); }
.hero-viewport { background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&q=80&w=1200') no-repeat center center/cover; height: 50vh; display: flex; align-items: center; justify-content: center; text-align: center; }
.hero-overlay-content h1 { font-size: 50px; margin-bottom: 15px; color: var(--brand-yellow); text-shadow: 2px 2px 5px rgba(0,0,0,0.8); }
.hero-overlay-content p { max-width: 650px; margin: 0 auto 30px; font-size: 16px; color: #FFF; }
.btn-secondary { background: transparent; color: var(--brand-yellow); border: 2px solid var(--brand-yellow); padding: 10px 24px; border-radius: 25px; cursor: pointer; font-weight: 600; margin-left: 10px; transition: 0.3s; }
.btn-secondary:hover { background: var(--brand-yellow); color: #000; }
section { padding: 60px 8% 30px; }
.section-title-block { text-align: center; margin-bottom: 40px; }
.sub-heading-accent { color: var(--brand-orange-accent); text-transform: uppercase; font-weight: 600; font-size: 12px; letter-spacing: 2px; }
h2 { font-size: 32px; font-weight: 600; }
.chefs-flex-row { display: flex; justify-content: center; gap: 25px; flex-wrap: wrap; }
.chef-profile-card { background: var(--canvas-cream-bg); padding: 25px; border-radius: 12px; width: 330px; text-align: center; border: 1px solid var(--grid-border-color); }
.owner-highlight { border: 2px solid var(--brand-orange-accent); }
.profile-image-wrapper { width: 140px; height: 140px; margin: 0 auto 15px; border-radius: 50%; }
.profile-image-wrapper img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 3px solid var(--brand-orange-accent); }
.menu-filter-bar { display: flex; justify-content: center; gap: 12px; margin-bottom: 35px; flex-wrap: wrap; }
.filter-tab-btn { background: var(--surface-white); border: 1px solid var(--grid-border-color); padding: 10px 20px; border-radius: 20px; cursor: pointer; font-weight: 600; font-size: 13px; transition: all 0.3s; }
.filter-tab-btn.active, .filter-tab-btn:hover { background: var(--brand-orange-accent); color: white; border-color: var(--brand-orange-accent); }
.menu-products-container { display: flex; flex-wrap: wrap; gap: 25px; justify-content: center; }
.product-item-card { background: var(--surface-white); border-radius: 12px; width: 290px; overflow: hidden; border: 1px solid var(--grid-border-color); position: relative; box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.product-item-card img { width: 100%; height: 180px; object-fit: cover; }
.product-card-body { padding: 20px; }
.product-card-body h3 { font-size: 17px; margin-bottom: 6px; }
.product-card-body p { font-size: 13px; color: var(--slate-muted); margin-bottom: 15px; height: 38px; overflow: hidden; }
.product-dropdown-control { display: flex; align-items: center; gap: 8px; margin-bottom: 15px; font-size: 13px; font-weight: 600; }
.product-dropdown-control select { padding: 5px 10px; border-radius: 6px; border: 1px solid var(--grid-border-color); background: #fafafa; }
.product-base-price { font-weight: 700; color: var(--brand-orange-accent); font-size: 18px; }
.badge-popular { position: absolute; top: 12px; left: 12px; background-color: #d70f64; color: white; padding: 4px 10px; font-size: 11px; font-weight: bold; border-radius: 4px; z-index: 2; }
.badge-bestseller { background-color: #ff9800; }
.product-price-action { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; border-top: 1px dashed var(--grid-border-color); padding-top: 15px; }
.cart-action-group { display: flex; align-items: center; gap: 8px; }
.qty-selector { display: flex; align-items: center; border: 1px solid var(--grid-border-color); border-radius: 6px; overflow: hidden; background: #fafafa; }
.qty-btn { background: none; border: none; width: 28px; height: 28px; cursor: pointer; font-weight: bold; font-size: 14px; }
.qty-input { width: 25px; text-align: center; border: none; background: none; font-size: 13px; font-weight: bold; outline: none; }
.btn-cart { background-color: #2c2a27; color: white; border: none; padding: 6px 14px; border-radius: 6px; font-size: 13px; font-weight: 700; cursor: pointer; }
.btn-cart:hover { background-color: var(--brand-orange-accent); }
.floating-basket-bar { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 550px; background-color: #d70f64; color: white; display: flex; justify-content: space-between; align-items: center; padding: 14px 25px; border-radius: 30px; cursor: pointer; z-index: 2000; transition: 0.3s; }
.floating-basket-bar.hidden { display: none; }
.cart-left { display: flex; align-items: center; gap: 15px; }
.cart-icon-wrapper { position: relative; font-size: 20px; }
#cart-item-count { position: absolute; top: -8px; right: -12px; background: white; color: #d70f64; font-size: 11px; font-weight: 800; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.reservation-section-wrapper { padding: 60px 8%; background-color: var(--canvas-cream-bg); }
.reservation-box-card { max-width: 700px; margin: 0 auto; background: var(--surface-white); padding: 40px; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); border: 1px solid var(--grid-border-color); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; }
.input-wrapper { display: flex; flex-direction: column; text-align: left; }
.input-wrapper label { font-weight: 600; margin-bottom: 8px; }
.input-wrapper input { width: 100%; padding: 14px 16px; border: 1.5px solid var(--grid-border-color); border-radius: 8px; background: #fafafa; }
.btn-full-width { width: 100%; padding: 16px; font-size: 16px; border-radius: 8px; }
#direct-checkout-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.7); z-index: 10000; display: none; justify-content: center; align-items: center; backdrop-filter: blur(3px); }
#direct-checkout-overlay.active { display: flex; }
.checkout-fullscreen-wrapper { width: 95%; max-width: 550px; height: 90vh; background: #f7f7f7; border-radius: 20px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
.checkout-header-bar { padding: 15px 20px; background: #fff; border-bottom: 1px solid #eee; display: flex; align-items: center; gap: 10px; }
.close-checkout-x { font-size: 32px; cursor: pointer; font-weight: bold; color: #333; }
.checkout-title-text { font-size: 20px; font-weight: bold; }
.checkout-body-form { padding: 20px; flex: 1; overflow-y: auto; }
.foodpanda-cart-container { background: white; border-radius: 12px; padding: 15px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.basket-heading { color: #d36613; font-weight: 600; margin-bottom: 15px; }
.empty-basket-text { text-align: center; color: #888; padding: 20px; }
.fp-cart-item-row { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid #eee; gap: 10px; }
.fp-item-info { flex: 2; }
.fp-item-name { font-weight: 600; }
.fp-item-unit-price { font-size: 12px; color: #888; }
.fp-qty-actions-box { display: flex; border: 1px solid #ddd; border-radius: 6px; overflow: hidden; }
.fp-qty-inline-btn { background: #f8f9fa; border: none; width: 32px; height: 32px; font-size: 18px; font-weight: bold; cursor: pointer; }
.fp-qty-inline-value { width: 32px; text-align: center; font-weight: bold; }
.fp-item-total-price { font-weight: bold; min-width: 70px; text-align: right; }
.fp-item-delete-btn { background: none; border: none; color: #dc3545; font-size: 16px; cursor: pointer; padding: 5px; }
.basket-grand-total-row { display: flex; justify-content: space-between; font-weight: bold; margin-top: 15px; padding-top: 12px; border-top: 2px solid #f3ece6; }
#basket-grand-total-val { color: #1ebd60; }
.input-flat-group { margin-bottom: 18px; display: flex; flex-direction: column; }
.input-flat-group label { font-weight: 500; margin-bottom: 6px; }
.input-flat-group input { padding: 12px; border: 1px solid #ccc; border-radius: 8px; }
.payment-method-flat-group { margin-top: 20px; }
.radio-flat-option { display: flex; align-items: center; gap: 10px; background: white; padding: 10px; border-radius: 8px; margin-bottom: 8px; border: 1px solid #eee; }
.btn-green-place-order { width: 100%; background: #1ebd60; color: white; border: none; padding: 18px; font-size: 16px; font-weight: bold; cursor: pointer; border-radius: 12px; margin-top: 10px; }
.otp-modal-overlay, .success-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 100000; display: flex; align-items: center; justify-content: center; }
.otp-modal-content, .success-modal-content { background: white; padding: 30px; border-radius: 16px; text-align: center; max-width: 400px; width: 90%; }
#direct-otp-input { font-size: 22px; letter-spacing: 4px; text-align: center; padding: 10px; width: 70%; margin-bottom: 20px; border: 2px solid #ddd; border-radius: 8px; }
.btn-verify-otp, .btn-success-close { background: #1ebd60; color: white; border: none; padding: 12px; border-radius: 8px; width: 100%; font-weight: bold; cursor: pointer; }
.btn-success-close { background: #333; margin-top: 10px; }
.fp-card-inline-selector { display: flex; align-items: center; justify-content: space-between; background: #1ebd60; border-radius: 8px; padding: 6px 12px; width: 100%; max-width: 110px; }
.fp-inline-action-btn { background: transparent; border: none; color: white; width: 28px; height: 28px; font-size: 18px; font-weight: bold; cursor: pointer; }
.fp-inline-qty-text { color: white; font-weight: bold; margin: 0 5px; }
#toast-notification { visibility: hidden; min-width: 280px; background: #28a745; color: white; text-align: center; border-radius: 8px; padding: 14px; position: fixed; z-index: 5000; left: 50%; bottom: 30px; transform: translateX(-50%); }
#toast-notification.show-alert { visibility: visible; animation: fadeIn 0.3s, fadeOut 0.3s 2.5s; }
@keyframes fadeIn { from { opacity: 0; bottom: 0; } to { opacity: 1; bottom: 30px; } }
@keyframes fadeOut { from { opacity: 1; bottom: 30px; } to { opacity: 0; bottom: 0; } }
@media (max-width: 600px) { .form-grid { grid-template-columns: 1fr; } .reservation-box-card { padding: 25px; } }
