/* ========================================
   CSS VARIABLES - Warna Sunda Gelap
   ======================================== */
:root {
    /* Warna Coklat Tua Gelap */
    --primary-darkest: #1A0F0A;
    --primary-darker: #2C1810;
    --primary-dark: #3A1A04;
    --primary: #5D2906;
    --primary-light: #8B4513;
    
    /* Warna Oranye/Acorn untuk border dan aksen */
    --secondary-dark: #B3540C;
    --secondary: #D2691E;
    --secondary-light: #E67E22;
    --secondary-lighter: #FF8C42;
    
    /* Warna untuk card (coklat semu tua) */
    --card-dark: #2C1810;
    --card-medium: #3A1A04;
    --card-light: #4D2918;
    
    /* Warna untuk teks */
    --text-white: #FFFFFF;
    --text-off-white: #F5F5F5;
    --text-cream: #E6D5B8;
    --text-light: #D4B896;
    
    /* Warna untuk background section */
    --section-dark: #2C1810;
    --section-medium: #3A1A04;
    --section-light: #4D2918;
    
    /* Badges */
    --badge-gold: #FFD700;
    --badge-red: #FF6B6B;
    --badge-green: #4CAF50;
    --badge-blue: #3498db;
    --badge-purple: #9b59b6;
    
    /* Shadows */
    --shadow-light: 0 2px 8px rgba(0, 0, 0, 0.3);
    --shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.4);
    --shadow-heavy: 0 8px 24px rgba(0, 0, 0, 0.5);
    --shadow-deep: 0 12px 32px rgba(0, 0, 0, 0.6);
    
    /* Gradients */
    --gradient-dark: linear-gradient(135deg, var(--primary-darker) 0%, var(--primary-dark) 100%);
    --gradient-card: linear-gradient(145deg, var(--card-dark), var(--card-medium));
    --gradient-orange: linear-gradient(135deg, var(--secondary), var(--secondary-light));
    --gradient-gold: linear-gradient(135deg, #FFD700, #FFA500);
}

/* ========================================
   RESET & BASE STYLES
   ======================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: var(--primary-darkest);
    color: var(--text-white);
    line-height: 1.6;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1rem;
}

p {
    margin-bottom: 1rem;
}

a {
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* ========================================
   TYPOGRAPHY
   ======================================== */
.title {
    font-size: 2.5rem;
    color: var(--text-cream);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 0.5rem;
}

.hero-title {
    font-size: 3.5rem;
    color: var(--secondary-lighter);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    margin-bottom: 1rem;
}

.hero-subtitle {
    font-size: 1.5rem;
    color: var(--text-light);
    font-weight: 300;
}

.section-title {
    font-size: 2.5rem;
    color: var(--text-cream);
    position: relative;
    padding-bottom: 15px;
    margin-bottom: 1.5rem;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: var(--gradient-orange);
    border-radius: 2px;
}

.section-subtitle {
    font-size: 1.2rem;
    color: var(--text-light);
    margin-bottom: 2rem;
}

/* ========================================
   HERO SECTION
   ======================================== */
/* HERO SECTION - KECIL & COMPACT */
.hero-section {
    background: linear-gradient(135deg, #1A0F0A 0%, #2C1810 100%);
    padding: 40px 0 30px 0;
    position: relative;
    overflow: hidden;
    min-height: 250px; /* KECIL BANGET */
    display: flex;
    align-items: center;
    border-bottom: 3px solid #D2691E;
}

/* Background Pattern subtle */
.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 20% 30%, rgba(255, 140, 66, 0.05) 0%, transparent 30%),
        radial-gradient(circle at 80% 70%, rgba(210, 105, 30, 0.03) 0%, transparent 30%);
    opacity: 0.4;
    pointer-events: none;
}

/* Container */
.hero-section .container {
    position: relative;
    z-index: 2;
    padding: 0 15px;
}

/* Reset margin & padding */
.hero-section .row,
.hero-section .col-12,
.hero-section .text-center {
    margin: 0;
    padding: 0;
}

/* WILUJENG SUMPING - KECIL */
.hero-section .title {
    color: #FF8C42;
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0 0 8px 0;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    opacity: 0.9;
}

/* JUDUL UTAMA - KECIL */
.hero-section .hero-title {
    color: #FFFFFF;
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 10px 0;
    line-height: 1.1;
    letter-spacing: 0.5px;
}

/* SUBTITLE - KECIL */
.hero-section .hero-subtitle {
    color: #E6D5B8;
    font-size: 0.95rem;
    font-weight: 300;
    margin: 0;
    line-height: 1.3;
    opacity: 0.9;
    max-width: 500px;
    margin: 0 auto;
}

/* Animasi minimal */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-section .title {
    animation: fadeInUp 0.5s ease 0.1s both;
}

.hero-section .hero-title {
    animation: fadeInUp 0.5s ease 0.2s both;
}

.hero-section .hero-subtitle {
    animation: fadeInUp 0.5s ease 0.3s both;
}

/* Pastikan compact banget */
.hero-section * {
    margin-top: 0;
    margin-bottom: 0;
}

/* Tambah line height ketat */
.hero-section .hero-title,
.hero-section .title,
.hero-section .hero-subtitle {
    line-height: 1.1;
}

/* Hapus semua dekorasi berlebihan */
.hero-section::after {
    display: none;
}

/* Efek hover minimal */
.hero-section:hover {
    background: linear-gradient(135deg, #1A0F0A 0%, #2C1810 100%);
}

/* ========================================
   STICKY NAVIGATION
   ======================================== */
/* ============================================================ */
/* STICKY NAVBAR                                               */
/* Desktop only — no responsive breakpoints                    */
/* ============================================================ */

.sticky-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: var(--primary-darker);
    border-bottom: 3px solid var(--secondary);
    box-shadow: var(--shadow-medium);
    padding: 15px 0;
}

/* ===================== */
/* SCROLL WRAPPER        */
/* ===================== */
.nav-scroll {
    display: flex;
    overflow-x: auto;
    padding: 10px 0;
    gap: 15px;
    scrollbar-width: thin;
    scrollbar-color: var(--secondary) var(--primary-dark);
}

.nav-scroll::-webkit-scrollbar {
    height: 6px;
}

.nav-scroll::-webkit-scrollbar-track {
    background: var(--primary-dark);
}

.nav-scroll::-webkit-scrollbar-thumb {
    background-color: var(--secondary);
    border-radius: 3px;
}

/* ===================== */
/* NAV ITEM — DEFAULT    */
/* ===================== */
.nav-item-btn {
    display: inline-flex;
    align-items: center;
    padding: 10px 20px;
    background-color: var(--card-dark);
    color: #ffffff !important;
    border: 2px solid transparent;
    border-radius: 25px;
    font-weight: 600;
    white-space: nowrap;
    transition: all 0.3s ease;
    font-size: 0.9rem;
    text-decoration: none !important;
}

.nav-item-btn i {
    margin-right: 8px;
    color: var(--secondary-light);
    font-size: 1.1rem;
    transition: color 0.3s ease;
}

/* ===================== */
/* NAV ITEM — HOVER      */
/* ===================== */
.nav-item-btn:hover {
    background-color: var(--primary);
    border-color: var(--secondary);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: var(--shadow-light);
    text-decoration: none !important;
}

.nav-item-btn:hover i {
    color: #ffffff !important;
}

/* ===================== */
/* NAV ITEM — ACTIVE     */
/* ===================== */
.nav-item-btn.active {
    background: var(--gradient-orange) !important;
    /* Paksa teks putih tebal — tidak boleh di-override siapapun */
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: var(--secondary) !important;
    box-shadow: var(--shadow-medium), 0 4px 14px rgba(224, 92, 0, 0.45);
    font-weight: 700 !important;
}

.nav-item-btn.active i {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.nav-item-btn.active:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-medium), 0 6px 18px rgba(224, 92, 0, 0.55);
    color: #ffffff !important;
}

/* ===================== */
/* CART SECTION          */
/* ===================== */
.nav-cart-section {
    display: flex;
    align-items: center;
}

.cart-icon-wrapper {
    padding: 10px;
    background-color: var(--card-dark);
    border-radius: 50%;
    border: 2px solid var(--secondary);
    transition: all 0.3s ease;
    cursor: pointer;
}

.cart-icon-wrapper:hover {
    background-color: var(--secondary);
    transform: scale(1.1);
}

.cart-icon-wrapper i {
    color: var(--text-cream);
    font-size: 1.5rem;
}

#cart-count-badge {
    font-size: 0.7rem;
    min-width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* ========================================
   SECTION STYLES
   ======================================== */
.menu-section {
    padding: 80px 0;
    background-color: var(--section-dark);
    position: relative;
}

.menu-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--secondary), transparent);
}

.section-header {
    margin-bottom: 50px;
}


/* ========================================
   BAKAKAK SECTION - SOLID & KOMPAK
   ======================================== */
/* ────────────────────────────────────────────────
   SECTION WRAPPER
──────────────────────────────────────────────── */
.menu-section {
    background-color: var(--section-medium);
    padding: 50px 0 60px;
    font-family: 'Poppins', sans-serif;
}

/* ────────────────────────────────────────────────
   SECTION HEADER
──────────────────────────────────────────────── */
.section-header {
    text-align: center;
    margin-bottom: 30px;
}

.section-title {
    font-family: 'Poppins', sans-serif;
    color: var(--secondary-lighter);
    font-size: 2rem;
    font-weight: 800;
    text-transform: none;
    letter-spacing: 0.5px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    height: 3px;
    background: var(--gradient-orange);
    border-radius: 2px;
}

.section-subtitle {
    font-family: 'Poppins', sans-serif;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.85rem;
    font-weight: 400;
    letter-spacing: 1.5px;
    margin-top: 18px;
    text-transform: uppercase;
}

/* ────────────────────────────────────────────────
   CARD UTAMA
──────────────────────────────────────────────── */
.signature-card {
    background: linear-gradient(145deg, #3E2723, #5D4037);
    border: 2.5px solid #C47A2B;
    border-radius: 18px;
    overflow: hidden;
    box-shadow:
        0 12px 36px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 200, 100, 0.06);
    max-width: 820px;
    margin: 0 auto;
}

/* ────────────────────────────────────────────────
   GAMBAR
──────────────────────────────────────────────── */
.signature-image {
    height: 400px;
    overflow: hidden;
    position: relative;
}

.signature-image::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 120px;
    background: linear-gradient(to bottom, transparent, #3E2723);
    z-index: 2;
    pointer-events: none;
}

.signature-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.92) saturate(1.1);
    transition: transform 0.5s ease;
}

.signature-card:hover .signature-img {
    transform: scale(1.04);
}

.signature-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 10;
    background: linear-gradient(135deg, #FF6B35, #FF8E53);
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 7px 16px;
    border-radius: 30px;
    box-shadow: 0 4px 14px rgba(255, 107, 53, 0.5);
}

/* ────────────────────────────────────────────────
   AREA KONTEN
──────────────────────────────────────────────── */
.signature-content {
    padding: 28px 32px 34px;
}

.signature-content::before {
    content: '';
    display: block;
    height: 1px;
    background: linear-gradient(90deg,
        transparent,
        rgba(196, 122, 43, 0.5),
        rgba(255, 180, 80, 0.35),
        rgba(196, 122, 43, 0.5),
        transparent);
    margin-bottom: 24px;
}

/* DIUBAH: Playfair Display — elegan, berkarakter, cocok untuk nama menu */
.signature-title {
    font-family: 'Playfair Display', serif;
    color: #FFFFFF;
    font-size: 1.6rem;
    font-weight: 700;
    font-style: italic;
    text-transform: none;
    letter-spacing: 0.3px;
    margin-bottom: 10px;
    line-height: 1.3;
}

.signature-description {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    color: rgba(255, 220, 185, 0.88);
    font-size: 0.92rem;
    line-height: 1.8;
    margin-bottom: 24px;
    letter-spacing: 0.1px;
}

/* ────────────────────────────────────────────────
   PILIH UKURAN
──────────────────────────────────────────────── */
.size-section {
    margin-bottom: 20px;
}

.size-label {
    font-family: 'Poppins', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.75);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 12px;
}

.size-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}

.price-toggle {
    background: linear-gradient(145deg, #4A2F25, #3E2723);
    border: 2px solid #8B4513;
    border-radius: 12px;
    padding: 18px 10px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 6px;
    min-height: 90px;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.price-toggle:hover {
    border-color: rgba(255, 107, 53, 0.7);
    background: linear-gradient(145deg, #52342A, #443028);
}

.price-toggle.active {
    background: linear-gradient(145deg, #5D4037, #4A2F25);
    border-color: #FF6B35;
    box-shadow: 0 5px 18px rgba(255, 107, 53, 0.28);
}

.price-toggle-size {
    font-family: 'Poppins', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.88);
    display: block;
    width: 100%;
    text-align: center;
    white-space: nowrap;
}

.price-toggle.active .price-toggle-size {
    color: #FFD580;
}

/* DIUBAH: angka harga di ukuran = putih */
.price-toggle-price {
    font-family: 'Poppins', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    color: #ffffff !important;
    display: block;
    width: 100%;
    text-align: center;
    white-space: nowrap;
}

.price-toggle.active .price-toggle-price {
    color: #ffffff !important;
}

/* ────────────────────────────────────────────────
   QUANTITY SELECTOR
──────────────────────────────────────────────── */
.quantity-selector {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    background: linear-gradient(145deg, #4A2F25, #3E2723);
    border: 1.5px solid rgba(139, 69, 19, 0.6);
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: 22px;
}

.qty-label {
    font-family: 'Poppins', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.82);
    text-transform: uppercase;
    letter-spacing: 1px;
    white-space: nowrap;
}

.qty-controls {
    display: flex;
    align-items: center;
    border: 2px solid #FF6B35;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1);
}

.btn-qty {
    background: linear-gradient(145deg, #FF6B35, #FF8E53);
    color: #fff;
    border: none;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    cursor: pointer;
    flex-shrink: 0;
    transition: none;
    outline: none;
}

.btn-qty:hover,
.btn-qty:focus {
    background: linear-gradient(145deg, #FF6B35, #FF8E53);
    outline: none;
}

/* DIUBAH: angka qty input = putih */
.qty-input {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 1.1rem;
    color: #ffffff !important;
    background: #3E2723;
    border: none;
    border-left: 2px solid #FF6B35;
    border-right: 2px solid #FF6B35;
    width: 52px;
    text-align: center;
    height: 38px;
    outline: none;
    box-shadow: none !important;
}

.qty-input:focus {
    outline: none;
    box-shadow: none;
    color: #ffffff !important;
}

.qty-total {
    font-family: 'Poppins', sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.7);
    margin-left: auto;
    white-space: nowrap;
}

/* DIUBAH: angka total = putih */
.qty-total strong {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 1.1rem;
    color: #ffffff !important;
    margin-left: 4px;
}

/* ────────────────────────────────────────────────
   ORDER BUTTON
──────────────────────────────────────────────── */
.order-action {
    padding-top: 20px;
    border-top: 1px solid rgba(139, 69, 19, 0.3);
}

.btn-order {
    font-family: 'Poppins', sans-serif;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, #B85A15, #CC6E22, #B55212);
    border: none;
    border-radius: 12px;
    padding: 15px 24px;
    width: 100%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow:
        0 6px 20px rgba(150, 70, 10, 0.38),
        inset 0 1px 0 rgba(255, 180, 100, 0.08);
    transition: none;
    outline: none;
    -webkit-appearance: none;
}

.btn-order:hover,
.btn-order:focus,
.btn-order:active,
.btn-order:focus-visible {
    background: linear-gradient(135deg, #B85A15, #CC6E22, #B55212);
    color: #fff;
    box-shadow:
        0 6px 20px rgba(150, 70, 10, 0.38),
        inset 0 1px 0 rgba(255, 180, 100, 0.08);
    outline: none;
    transform: none;
    border: none;
}

.btn-order i {
    font-size: 1.1rem;
}


   
/* ========================================
   SECTION ANEKA AYAM - LAYOUT TENGAH
   ======================================== */
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&display=swap');

.menu-section {
    background-color: #2C1E16;
    padding: 60px 0;
    position: relative;
    font-family: 'Inter', 'Poppins', -apple-system, sans-serif;
}

.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ===================== */
/* SECTION HEADER UTAMA */
/* ===================== */
.section-header {
    text-align: center;
    margin-bottom: 40px;
    position: relative;
}

.section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    text-transform: none;
    letter-spacing: 1px;
    margin-bottom: 10px;
    position: relative;
    display: inline-block;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 4px;
}

.section-subtitle {
    color: #E8D6B5;
    font-size: 1rem;
    margin-top: 20px;
    font-weight: 400;
    letter-spacing: 0.5px;
    opacity: 0.9;
}

/* ===================== */
/* SUB-HEADER (h3 dalam section) */
/* ===================== */
.mt-5 .section-header {
    margin-top: 20px;
    margin-bottom: 30px;
}

.section-header h3 {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 1.6rem;
    font-weight: 900;
    margin: 0;
    position: relative;
    display: inline-block;
    padding-bottom: 12px;
    letter-spacing: 1px;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3);
}

.section-header h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 3px;
}

/* ===================== */
/* LAYOUT 2 CARD BESAR */
/* ===================== */
.row.g-4.mb-5 {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-bottom: 50px !important;
}

.row.g-4.mb-5 .col-lg-6 {
    flex: 0 0 calc(50% - 12px);
    max-width: calc(50% - 12px);
    display: flex;
}

/* ===================== */
/* VERTICAL CARD */
/* ===================== */
.vertical-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 18px;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.vertical-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5), 0 0 20px rgba(160, 82, 45, 0.2);
}

/* ===================== */
/* BADGE */
/* ===================== */
.card-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 20;
}

.card-badge .badge {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    color: #fff;
    padding: 6px 16px;
    font-weight: 800;
    font-size: 0.75rem;
    border-radius: 30px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    border: none;
    box-shadow: 0 4px 12px rgba(224, 92, 0, 0.4);
}

/* ===================== */
/* GAMBAR */
/* ===================== */
.vertical-image-container {
    height: 260px;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.vertical-image-container::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 70px;
    background: linear-gradient(to top, rgba(38, 21, 8, 0.7) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.vertical-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    display: block;
}

.vertical-card:hover .vertical-img { transform: scale(1.06); }

/* ===================== */
/* CARD BODY */
/* ===================== */
.vertical-card .card-body {
    padding: 20px !important;
    background: transparent;
    flex: 1;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px;
    height: auto !important;
}

.vertical-card .card-header {
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    margin: 0 !important;
    display: block !important;
    overflow: visible !important;
}

.vertical-card .card-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 1.5rem;
    font-weight: 700;
    font-style: italic;
    margin-bottom: 8px !important;
    line-height: 1.3;
}

.vertical-card .card-description,
.vertical-card .card-body p.card-description,
.vertical-card p.card-description {
    color: #c8a882 !important;
    font-size: 0.88rem !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    opacity: 1 !important;
    display: block !important;
}

/* ===================== */
/* PRICE SECTION */
/* ===================== */
.vertical-card .card-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.22));
    border: 1.5px solid rgba(192, 112, 64, 0.45);
    border-radius: 12px;
    padding: 14px 16px;
    margin: 0;
}

.vertical-card .price-label {
    color: #c8a882;
    font-size: 0.72rem;
    font-weight: 700;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    opacity: 0.75;
}

.vertical-card .price-amount {
    color: #ffffff !important;
    font-size: 1.8rem;
    font-weight: 900;
    margin: 6px 0;
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.vertical-card .price-notes {
    color: #c8a882;
    font-size: 0.78rem;
    display: flex;
    align-items: center;
    gap: 6px;
    padding-top: 10px;
    margin-top: 6px;
    border-top: 1px solid rgba(192, 112, 64, 0.3);
    opacity: 0.8;
}

.vertical-card .price-notes i {
    color: #f4a460;
    font-size: 0.85rem;
    flex-shrink: 0;
}

/* ===================== */
/* QUANTITY SECTION */
/* ===================== */
.vertical-card .quantity-section {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    border: 1.5px solid rgba(192, 112, 64, 0.4);
    border-radius: 12px;
    padding: 14px 16px;
    margin: 0;
}

.vertical-card .quantity-section .row,
.vertical-card .quantity-section .row.align-items-center {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.vertical-card .quantity-section .row > .col-auto,
.vertical-card .quantity-section .row > .col {
    padding: 0 !important;
    flex: unset !important;
    max-width: unset !important;
    width: auto !important;
}

.vertical-card .quantity-section .row > .col { flex: 0 0 auto !important; }

.vertical-card .quantity-label {
    color: #c8a882;
    font-weight: 700;
    font-size: 0.82rem;
    white-space: nowrap;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* ===================== */
/* QUANTITY CONTROL */
/* ===================== */
.vertical-card .quantity-control {
    display: flex !important;
    width: 120px;
    border-radius: 10px;
    overflow: hidden;
    border: 1.5px solid rgba(160, 82, 45, 0.6);
    background: #1a0e05;
    flex-wrap: nowrap !important;
}

.vertical-card .btn-minus,
.vertical-card .btn-plus {
    background: #a0522d;
    color: #fff;
    border: none;
    width: 34px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    padding: 0;
    cursor: pointer;
    flex-shrink: 0;
}

.vertical-card .btn-minus { border-radius: 8px 0 0 8px; }
.vertical-card .btn-plus  { border-radius: 0 8px 8px 0; }

.vertical-card .btn-minus:hover,
.vertical-card .btn-plus:hover {
    background: #c0622d;
    color: #fff;
}

.vertical-card .quantity-input {
    width: 52px;
    height: 36px;
    text-align: center;
    background: #1a0e05;
    border: none;
    border-left: 1.5px solid rgba(160, 82, 45, 0.5);
    border-right: 1.5px solid rgba(160, 82, 45, 0.5);
    color: #ffffff !important;
    font-weight: 800;
    font-size: 0.95rem;
    padding: 0;
    outline: none;
    box-shadow: none !important;
}

/* ===================== */
/* TOTAL PRICE */
/* ===================== */
.vertical-card .total-price {
    display: flex !important;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.18), rgba(92, 46, 10, 0.25));
    padding: 6px 14px;
    border-radius: 10px;
    border: none;
    width: auto !important;
    height: 36px;
    margin-left: auto !important;
    color: #c8a882;
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
}

.vertical-card .total-price span { color: #c8a882; font-size: 0.82rem; }

.vertical-card .total-price .price-amount {
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    margin: 0 !important;
    letter-spacing: -0.2px;
}

/* ===================== */
/* ORDER BUTTON */
/* ===================== */
.vertical-card .mt-auto { margin-top: auto !important; }

.vertical-card .btn-order {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    color: #fff;
    border: none;
    padding: 14px;
    font-size: 0.95rem;
    font-weight: 800;
    border-radius: 12px;
    transition: all 0.25s ease;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    width: 100%;
    box-shadow: 0 6px 16px rgba(224, 92, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.vertical-card .btn-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%, transparent 60%);
    border-radius: 12px;
}

.vertical-card .btn-order:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(224, 92, 0, 0.5);
    color: #fff;
}

/* ===================== */
/* CAROUSEL CONTAINER */
/* ===================== */
.carousel-container {
    position: relative;
    margin: 20px 0;
    padding: 0 52px;
}

.carousel-nav { display: none !important; }

.carousel-wrapper { overflow: visible; width: 100%; }

.carousel-items {
    display: flex;
    gap: 16px;
    padding: 10px 4px 16px;
    overflow-x: hidden;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.carousel-items::-webkit-scrollbar { display: none; }

/* ===================== */
/* CAROUSEL CARD */
/* ===================== */
.carousel-card {
    flex: 0 0 calc(25% - 13px);
    min-width: 0;
}

.carousel-card .card,
.carousel-card .card.h-100 {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%) !important;
    border: 1.5px solid #c07040 !important;
    border-radius: 14px !important;
    overflow: hidden;
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

.carousel-card .card:hover {
    transform: translateY(-5px);
    border-color: #e08050 !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4), 0 0 16px rgba(160, 82, 45, 0.2);
}

.carousel-card .row.g-0,
.carousel-card .row.g-0.h-100 {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    margin: 0 !important;
    height: auto !important;
    flex: 1;
}

.carousel-card .row.g-0 > .col-6:first-child {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
}

.carousel-card .row.g-0 > .col-6:last-child {
    flex: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    display: block !important;
    overflow: visible !important;
}

/* ===================== */
/* CAROUSEL IMAGE */
/* ===================== */
.carousel-image {
    width: 100%;
    height: 160px;
    overflow: hidden;
    position: relative;
    display: block;
}

.carousel-image::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(38, 21, 8, 0.6) 0%, transparent 100%);
    z-index: 1;
}

.carousel-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.carousel-card .card:hover .carousel-img { transform: scale(1.07); }

/* ===================== */
/* CAROUSEL CARD BODY */
/* ===================== */
.carousel-card .card-body,
.carousel-card .card-body.h-100,
.carousel-card .card-body.p-3 {
    padding: 12px !important;
    background: transparent !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 7px;
    height: auto !important;
    flex: 1;
}

.carousel-card .d-flex.justify-content-between.align-items-start {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 8px;
    margin-bottom: 0 !important;
}

.carousel-card .d-flex.justify-content-between.align-items-start > div:first-child {
    flex: 1;
    min-width: 0;
}

.carousel-title {
    color: #f5e6cc;
    font-size: 0.92rem;
    font-weight: 700;
    margin-bottom: 3px !important;
    line-height: 1.3;
}

.carousel-description {
    color: #c8a882;
    font-size: 0.75rem;
    font-weight: 300;
    line-height: 1.4;
    margin: 0;
    opacity: 0.85;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===================== */
/* TOMBOL + */
/* ===================== */
.btn-add {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #fff !important;
    border: none !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 2px 8px rgba(224, 92, 0, 0.4);
}

.btn-add:hover {
    transform: scale(1.15) rotate(90deg) !important;
    box-shadow: 0 4px 12px rgba(224, 92, 0, 0.6) !important;
    color: #fff !important;
}

/* ===================== */
/* HARGA CAROUSEL */
/* ===================== */
.carousel-price {
    display: flex !important;
    align-items: baseline;
    gap: 6px;
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.2));
    padding: 5px 9px;
    border-radius: 8px;
    border: none;
    margin-bottom: 0 !important;
}

.price-label-small {
    color: #c8a882;
    font-size: 0.63rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
}

.price-amount-small {
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
}

/* ===================== */
/* NOTES */
/* ===================== */
.carousel-notes {
    color: #c8a882;
    font-size: 0.7rem;
    opacity: 0.75;
    display: flex !important;
    align-items: flex-start;
    gap: 4px;
    line-height: 1.3;
    margin-bottom: 0 !important;
}

.carousel-notes i {
    color: #f4a460;
    font-size: 0.7rem;
    margin-top: 1px;
    flex-shrink: 0;
}

/* ===================== */
/* QUANTITY CONTROL SM */
/* ===================== */
.quantity-section-sm { margin-bottom: 0 !important; }

.quantity-section-sm > .row,
.quantity-section-sm .row.align-items-center.g-2 {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0;
}

.quantity-section-sm .col-auto,
.quantity-section-sm .col {
    padding: 0 !important;
    margin: 0 !important;
    flex: unset !important;
    max-width: none !important;
    width: auto !important;
}

.quantity-label-sm {
    color: #c8a882;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

.quantity-control-sm.input-group.input-group-sm {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: auto !important;
    height: 26px;
    border-radius: 7px;
    overflow: hidden;
    border: 1px solid rgba(160, 82, 45, 0.5);
}

.quantity-control-sm .btn-minus,
.quantity-control-sm .btn-plus {
    width: 26px !important;
    height: 26px !important;
    background: #a0522d !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.8rem;
    padding: 0 !important;
    cursor: pointer;
    flex-shrink: 0;
    box-shadow: none !important;
}

.quantity-control-sm .btn-minus { border-radius: 6px 0 0 6px !important; }
.quantity-control-sm .btn-plus  { border-radius: 0 6px 6px 0 !important; }

.quantity-control-sm .btn-minus:hover,
.quantity-control-sm .btn-plus:hover {
    background: #c0622d !important;
    color: #fff !important;
}

.quantity-control-sm .quantity-input-sm {
    width: 34px !important;
    height: 26px !important;
    min-width: 34px !important;
    background: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: none !important;
    border-left: 1px solid rgba(160, 82, 45, 0.5) !important;
    border-right: 1px solid rgba(160, 82, 45, 0.5) !important;
    border-radius: 0 !important;
    font-size: 0.78rem !important;
    font-weight: 700;
    text-align: center !important;
    padding: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    flex: 0 0 auto !important;
}

/* ===================== */
/* TOTAL PRICE SM */
/* ===================== */
.total-price-sm {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 5px 9px;
    border-radius: 8px;
    border: none;
    margin-bottom: 0 !important;
}

.total-price-sm small {
    color: #c8a882;
    font-size: 0.68rem;
    opacity: 0.8;
}

.price-amount-sm {
    color: #ffffff !important;
    font-weight: 700;
    font-size: 0.85rem;
}

/* ===================== */
/* TOMBOL ORDER SM */
/* ===================== */
.carousel-card .mt-auto { margin-top: auto !important; }

.btn-order-sm {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 9px;
    font-weight: 700;
    font-size: 0.76rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 8px 10px;
    width: 100%;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.btn-order-sm:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(224, 92, 0, 0.45);
    color: #fff !important;
}




/* ========================================
   IKAN LAUT BAKAR SECTION
   ======================================== */
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&family=Playfair+Display:wght@700;900&family=Lato:wght@300;400;700&display=swap');

/* ================================================ */
/* SECTION WRAPPER                                  */
/* ================================================ */
/* ================================================ */
/* SECTION WRAPPER                                  */
/* ================================================ */
.menu-section-ikan {
    background-color: var(--section-medium);
    background-image:
        radial-gradient(ellipse at 10% 20%, rgba(160, 82, 45, 0.08) 0%, transparent 50%),
        radial-gradient(ellipse at 90% 80%, rgba(224, 92, 0, 0.06) 0%, transparent 50%);
    padding: 60px 0;
    font-family: 'Lato', sans-serif;
}

/* ================================================ */
/* FEATURED HEADER                                  */
/* ================================================ */
.featured-header {
    background: var(--gradient-dark);
    position: relative;
    overflow: hidden;
    padding: 3rem 2rem;
    border-radius: 20px;
    border: 1.5px solid rgba(160, 82, 45, 0.5);
    box-shadow:
        0 0 40px rgba(160, 82, 45, 0.15),
        inset 0 0 60px rgba(0, 0, 0, 0.3);
}

.featured-header::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 40px,
        rgba(255, 255, 255, 0.01) 40px,
        rgba(255, 255, 255, 0.01) 80px
    );
    z-index: 1;
}

.featured-header::after {
    content: '';
    position: absolute;
    bottom: -40px;
    left: 50%;
    transform: translateX(-50%);
    width: 70%;
    height: 80px;
    background: radial-gradient(ellipse, rgba(224, 92, 0, 0.3) 0%, transparent 70%);
    z-index: 1;
    animation: flicker 3s ease-in-out infinite;
}

@keyframes flicker {
    0%, 100% { opacity: 0.8; transform: translateX(-50%) scaleX(1); }
    50%       { opacity: 1;   transform: translateX(-50%) scaleX(1.05); }
}

.featured-icon {
    position: relative;
    z-index: 2;
    margin-bottom: 1rem;
    filter: drop-shadow(0 0 12px rgba(224, 92, 0, 0.6));
    animation: pulse-fire 2s ease-in-out infinite;
}

@keyframes pulse-fire {
    0%, 100% { filter: drop-shadow(0 0 12px rgba(224, 92, 0, 0.6)); }
    50%       { filter: drop-shadow(0 0 20px rgba(255, 140, 66, 0.9)); }
}

.featured-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
    position: relative;
    z-index: 2;
    font-size: 2.5rem;
    font-weight: 900;
    margin-bottom: 0.75rem;
    letter-spacing: 1px;
}

.featured-description {
    color: var(--text-cream);
    max-width: 520px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    font-size: 1rem;
    font-weight: 300;
    letter-spacing: 0.3px;
    opacity: 0.85;
}

/* ================================================ */
/* SECTION TITLE                                    */
/* ================================================ */
.menu-section-ikan .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    position: relative;
    display: inline-block;
    padding-bottom: 12px;
    font-size: 2rem;
    font-weight: 900;
    margin-bottom: 0.4rem;
    line-height: 1.2;
    text-align: center;
    letter-spacing: 1px;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-ikan .section-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 3px;
}

/* ================================================ */
/* SECTION HEADING                                  */
/* ================================================ */
.section-heading {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    position: relative;
    padding-bottom: 10px;
    font-size: 2rem;
    font-weight: 900;
    margin-bottom: 0.4rem;
    line-height: 1.2;
    text-align: center;
    letter-spacing: 1px;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.section-heading::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--gradient-orange);
    border-radius: 3px;
    box-shadow: 0 0 8px rgba(224, 92, 0, 0.5);
}

.section-subheading {
    color: var(--text-light);
    font-size: 0.9rem;
    font-weight: 300;
    letter-spacing: 0.5px;
    opacity: 0.85;
    text-align: center;
}

.section-badge {
    background: var(--gradient-orange);
    color: var(--text-white);
    border-radius: 20px;
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.5px;
    display: inline-block;
    border: none;
    padding: 6px 16px;
    box-shadow: 0 4px 12px rgba(224, 92, 0, 0.4);
    text-transform: uppercase;
}

/* ================================================ */
/* CAROUSEL CONTAINER                               */
/* ================================================ */
.menu-carousel-container {
    position: relative;
    padding: 0 44px;
    margin-top: 1rem;
}

.menu-carousel {
    display: flex;
    gap: 20px;
    padding: 12px 4px 20px;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
}

.menu-carousel::-webkit-scrollbar {
    display: none;
}

/* ================================================ */
/* MENU CARD - DIPERLEBAR!                          */
/* ================================================ */
.menu-item-card {
    /* 
     * CARD DIPERLEBAR menjadi 280px
     * Dengan gap 20px, dalam container 1140px - padding 88px = 1052px
     * 4 card (280px x 4 = 1120px) + gap 60px = 1180px (sedikit overflow)
     * Namun tetap hanya 4 card penuh terlihat, sisanya geser
     */
    flex: 0 0 280px !important;
    width: 280px !important;
    min-width: 280px !important;
    background: linear-gradient(160deg, #3a1e0c 0%, #2a1407 100%);
    border: 1.5px solid rgba(180, 100, 50, 0.6);
    border-radius: 14px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
    scroll-snap-align: start;
}

.menu-item-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.03) 0%, transparent 55%);
    border-radius: 14px;
    z-index: 0;
    pointer-events: none;
}

.menu-item-card:hover {
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
    border-color: rgba(200, 120, 60, 0.8);
}

/* ================================================ */
/* CARD IMAGE                                       */
/* ================================================ */
.card-img-wrapper {
    height: 180px;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
}

.card-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
}

.card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.menu-item-card:hover .card-img {
    transform: scale(1.04);
}

/* ================================================ */
/* BADGE STYLES                                     */
/* ================================================ */
.card-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.65rem;
    font-weight: 800;
    color: #fff;
    z-index: 3;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.badge-popular {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: 1px solid rgba(255, 140, 66, 0.4);
}

.badge-recommendation {
    background: linear-gradient(135deg, #1a6b3c, #2d9b5e);
    border: 1px solid rgba(45, 155, 94, 0.4);
}

.badge-premium {
    background: linear-gradient(135deg, #7b4d00, #c77d00);
    border: 1px solid rgba(199, 125, 0, 0.4);
}

.badge-bestseller {
    background: linear-gradient(135deg, #8b0000, #c42020);
    border: 1px solid rgba(196, 32, 32, 0.4);
}

/* ================================================ */
/* CARD CONTENT                                     */
/* ================================================ */
.card-content {
    position: relative;
    z-index: 1;
    padding: 1rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.75rem;
}

/* ================================================ */
/* CARD HEADER AREA (judul + deskripsi + btn plus)  */
/* ================================================ */
.card-content > .d-flex:first-child {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    min-height: 70px;
    margin-bottom: 0 !important;
    padding-bottom: 0;
    border-bottom: none;
}

.card-info {
    flex: 1;
    padding-right: 8px;
    min-width: 0;
}

.card-title {
    font-family: 'Playfair Display', serif;
    color: var(--text-cream);
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 0.3rem;
    line-height: 1.3;
}

.card-text {
    color: var(--text-light);
    font-size: 0.75rem;
    line-height: 1.4;
    font-weight: 300;
    opacity: 0.8;
    margin: 0;
}

/* ================================================ */
/* QUICK ADD BUTTON                                 */
/* ================================================ */
.btn-quick-add {
    background: #e05c00;
    color: white;
    border: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    margin-left: 6px;
    box-shadow: 0 2px 6px rgba(180, 70, 0, 0.45);
}

.btn-quick-add:hover {
    background: #c85200;
}

/* ================================================ */
/* MENU META (jam + porsi)                          */
/* ================================================ */
.menu-meta {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.menu-meta span {
    color: var(--text-light);
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 8px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.menu-meta i {
    color: var(--secondary-lighter);
    font-size: 0.7rem;
}

/* ================================================ */
/* PRICE ROW - DIBERI JARAK DENGAN AREA LIST MENU  */
/* ================================================ */
.price-quantity-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
    margin-bottom: 8px;
    padding-top: 8px;
    /* JARAK DENGAN AREA LIST MENU (menu-meta) */
    border-top: 1px solid rgba(160, 82, 45, 0.2);
}

.price-display {
    background: transparent;
    padding: 0;
    border-radius: 0;
    min-width: unset;
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
}

.price-label {
    color: var(--text-light);
    text-transform: uppercase;
    font-size: 0.65rem;
    letter-spacing: 0.8px;
    font-weight: 700;
    opacity: 0.65;
    white-space: nowrap;
}

.price-amount {
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    letter-spacing: -0.3px;
    white-space: nowrap;
}

/* ================================================ */
/* QUANTITY CONTROL                                 */
/* ================================================ */
.quantity-control {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.quantity-control .input-group {
    flex-wrap: nowrap !important;
    width: auto !important;
    height: 32px !important;
}

.btn-quantity {
    background: #e05c00 !important;
    color: #ffffff !important;
    border: none !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
    cursor: pointer !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
}

.btn-quantity:hover {
    background: #c85200 !important;
    color: #ffffff !important;
}

.btn-quantity.btn-minus {
    border-radius: 6px 0 0 6px !important;
}

.btn-quantity.btn-plus {
    border-radius: 0 6px 6px 0 !important;
}

.quantity-input {
    background: var(--section-light) !important;
    color: var(--text-cream) !important;
    border-top: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-bottom: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 32px !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    padding: 0 !important;
    text-align: center !important;
    flex-shrink: 0 !important;
}

.quantity-input:focus {
    box-shadow: none !important;
    border-color: rgba(160, 82, 45, 0.4) !important;
    background: var(--section-light) !important;
    color: var(--text-cream) !important;
    outline: none !important;
}

/* ================================================ */
/* TOTAL ROW                                        */
/* ================================================ */
.total-price-wrapper {
    background: transparent;
    padding-top: 0.6rem;
    padding-bottom: 0.2rem;
    padding-left: 0;
    padding-right: 0;
    border-radius: 0;
    margin: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* JARAK TAMBAHAN DENGAN QUANTITY ROW DI ATASNYA */
    border-top: 1px solid rgba(160, 82, 45, 0.2);
    margin-top: 4px;
}

.total-price-wrapper .small {
    color: var(--text-light);
    font-weight: 500;
    font-size: 0.72rem;
    opacity: 0.7;
}

.total-price {
    color: #ffffff;
    font-size: 1rem;
    font-weight: 700;
    white-space: nowrap;
}

/* ================================================ */
/* ORDER BUTTON                                     */
/* ================================================ */
.btn-order {
    background: #e05c00;
    color: #ffffff;
    border: none;
    border-radius: 8px;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 10px 12px;
    width: 100%;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    margin-top: 8px;
}

.btn-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.07) 0%, transparent 55%);
    border-radius: 8px;
    pointer-events: none;
}

.btn-order:hover {
    background: #c85200;
    color: #ffffff;
}

.btn-order:active {
    background: #b04800;
}

/* ================================================ */
/* CAROUSEL NAVIGATION                              */
/* ================================================ */
.carousel-nav,
.carousel-nav-prev,
.carousel-nav-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #e05c00;
    color: white;
    border: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    z-index: 10;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(100, 45, 10, 0.45);
    padding: 0;
}

.carousel-nav:hover,
.carousel-nav-prev:hover,
.carousel-nav-next:hover {
    background: #c85200;
    transform: translateY(-50%);
}

.carousel-nav-prev { left: 4px; }
.carousel-nav-next { right: 4px; }

/* ================================================ */
/* SPACING OVERRIDES (Bootstrap)                    */
/* ================================================ */
.menu-section-ikan .mb-5 { margin-bottom: 1.5rem !important; }
.menu-section-ikan .mb-4 { margin-bottom: 1rem !important; }
.menu-section-ikan .mb-3 { margin-bottom: 0.75rem !important; }
.menu-section-ikan .mb-2 { margin-bottom: 0.5rem !important; }
.menu-section-ikan .py-5 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
.menu-section-ikan .p-5  { padding: 1.5rem !important; }
.menu-section-ikan .p-4  { padding: 1rem !important; }

/* ========================================
   TUMISAN, SAYURAN & GORENGAN SECTION
   ======================================== */
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&display=swap');

/* ============================================================ */
/* MENU SECTION — TUMISAN & SAYURAN                            */
/* Desktop only — no responsive breakpoints                    */
/* ============================================================ */

.menu-section-tumisan {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 0;
}

.menu-section-tumisan .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
}

/* ===================== */
/* SECTION TITLE         */
/* ===================== */
.menu-section-tumisan .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-tumisan .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 1px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-tumisan .section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}

/* ===================== */
/* SCROLL WRAPPER        */
/* ===================== */

/* Container luar: TIDAK scroll, hanya padding */
.tumisan-scroll-container {
    width: 100%;
    padding: 10px 0 20px;
    overflow: visible;
}

/* Tiap baris punya scroll SENDIRI — independen satu sama lain */
.tumisan-scroll-container .tumisan-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 20px;
    padding: 12px 0px 16px;
    margin-left: 0 !important;
    margin-right: 0 !important;
    /* SCROLL ADA DI SINI — per baris */
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    /* Snap agar berhenti tepat di card */
    scroll-snap-type: x mandatory;
    /* Sembunyikan scrollbar tapi tetap bisa scroll */
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.tumisan-scroll-container .tumisan-row::-webkit-scrollbar {
    display: none;
}

.tumisan-scroll-container .tumisan-row.mb-4 {
    margin-bottom: 24px !important;
}

/* col-auto tidak boleh shrink */
.tumisan-scroll-container .tumisan-row .col-auto {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    /* Snap per card */
    scroll-snap-align: start;
}

/* ===================== */
/* CARD                  */
/* ===================== */

/*
 * Lebar card dihitung agar tepat 4 card terlihat penuh:

 * 4 card + 3 gap (20px) = (containerWidth - 60px) / 4
 * Kita pakai calc agar otomatis menyesuaikan lebar layar
 */
.tumisan-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease, border-color 0.3s ease;
    
    /*
     * Lebar tepat 4 card tanpa card ke-5 ngintip:
     * 100vw - scrollbar(17) - container-fluid L+R(80) - gap 3×20(60) - border 4×3(12) - buffer(1)
     * = 100vw - 170px  →  dibagi 4
     */
    width: calc((100vw - 170px) / 4) !important;
    min-width: calc((100vw - 170px) / 4) !important;
    max-width: calc((100vw - 170px) / 4) !important;
    flex-shrink: 0 !important;
    display: flex;
    flex-direction: column;
}

.tumisan-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(160, 82, 45, 0.15);
}

/* ===================== */
/* CARD IMAGE            */
/* ===================== */
.tumisan-img-wrapper {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

.tumisan-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.5) 0%, transparent 100%);
    z-index: 1;
}

.tumisan-img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    transition: transform 0.4s ease;
    display: block;
}

.tumisan-card:hover .tumisan-img {
    transform: scale(1.06);
}

/* ===================== */
/* BADGE                 */
/* ===================== */
.tumisan-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    z-index: 10;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.badge-spicy   { background: linear-gradient(135deg, #e05c00, #ff8c42); }
.badge-vegan   { background: linear-gradient(135deg, #1a6b3c, #2d9b5e); }
.badge-popular { background: linear-gradient(135deg, #e05c00, #ff8c42); }
.badge-sour    { background: linear-gradient(135deg, #0e7490, #0ea5c9); }

/* ===================== */
/* CARD CONTENT          */
/* ===================== */
.tumisan-content {
    padding: 14px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

/* Baris judul + tombol quick */
.tumisan-content > .d-flex.justify-content-between.align-items-start {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
    margin-bottom: 0 !important;
}

.tumisan-content > .d-flex.justify-content-between.align-items-start > div {
    flex: 1;
    min-width: 0;
}

.tumisan-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 3px !important;
    line-height: 1.3;
}

.tumisan-text {
    color: #c8a882;
    font-size: 0.78rem;
    line-height: 1.4;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===================== */
/* META INFO             */
/* ===================== */
.tumisan-meta {
    display: flex;
    gap: 6px;
    margin-bottom: 0 !important;
}

.tumisan-meta span {
    color: #c8a882;
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 8px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.tumisan-meta i {
    color: #f4a460;
    font-size: 0.75rem;
}

/* ===================== */
/* HARGA + QUANTITY ROW  */
/* ===================== */
.tumisan-content > .d-flex.justify-content-between.align-items-center {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 8px;
    margin-bottom: 0 !important;
}

.tumisan-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.2));
    padding: 6px 10px;
    border-radius: 8px;
    min-width: 90px;
}

.tumisan-price .price-label {
    color: #c8a882;
    text-transform: uppercase;
    font-size: 0.62rem;
    letter-spacing: 0.7px;
    font-weight: 700;
    opacity: 0.7;
    margin-bottom: 2px;
}

.tumisan-price .price-amount {
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 !important;
    letter-spacing: -0.2px;
    line-height: 1.2;
}

/* ===================== */
/* QUANTITY CONTROL      */
/* ===================== */
.tumisan-quantity {
    display: flex;
    align-items: center;
}

.tumisan-quantity .input-group {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: auto !important;
    height: 30px;
}

.btn-tumisan-minus,
.btn-tumisan-plus {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #ffffff !important;
    border: none !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.85rem !important;
    cursor: pointer !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    transition: background 0.2s ease !important;
    box-shadow: none !important;
    line-height: 1 !important;
}

.btn-tumisan-minus { border-radius: 6px 0 0 6px !important; }
.btn-tumisan-plus  { border-radius: 0 6px 6px 0 !important; }

.btn-tumisan-minus:hover,
.btn-tumisan-plus:hover {
    background: linear-gradient(135deg, #ff8c42, #e05c00) !important;
    color: #ffffff !important;
}

.tumisan-quantity-input {
    background: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-top: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-bottom: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 30px !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    text-align: center !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.tumisan-quantity-input:focus {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
    outline: none !important;
    background: #2b1a0a !important;
}

/* ===================== */
/* TOTAL HARGA           */
/* ===================== */
.tumisan-total {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 10px;
    border-radius: 8px;
    margin: 0 !important;
}

.tumisan-total .small {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
}

.tumisan-total .total-price {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
}

/* ===================== */
/* TOMBOL QUICK ADD      */
/* ===================== */
.btn-tumisan-quick {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #ffffff !important;
    border: none !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    box-shadow: 0 2px 8px rgba(224, 92, 0, 0.4) !important;
}

.btn-tumisan-quick:hover {
    transform: scale(1.15) rotate(90deg) !important;
    box-shadow: 0 4px 12px rgba(224, 92, 0, 0.6) !important;
    color: #ffffff !important;
}

/* ===================== */
/* TOMBOL ORDER          */
/* ===================== */
.btn-tumisan-order {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 9px !important;
    font-weight: 700 !important;
    font-size: 0.76rem !important;
    letter-spacing: 0.6px !important;
    text-transform: uppercase !important;
    padding: 8px 10px !important;
    width: 100% !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    position: relative !important;
    overflow: hidden !important;
}

.btn-tumisan-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    border-radius: 9px;
    pointer-events: none;
}

.btn-tumisan-order:hover {
    background: linear-gradient(135deg, #ff8c42, #e05c00) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px rgba(224, 92, 0, 0.45) !important;
    color: #ffffff !important;
}

.btn-tumisan-order i { color: #ffffff; }

/* ===================== */
/* FOCUS STATES          */
/* ===================== */
.btn-tumisan-quick:focus,
.btn-tumisan-minus:focus,
.btn-tumisan-plus:focus,
.btn-tumisan-order:focus {
    outline: none !important;
    box-shadow: 0 0 0 0.2rem rgba(160, 82, 45, 0.4) !important;
}

/* ===================== */
/* SPACING UTILITIES     */
/* ===================== */
.menu-section-tumisan .mb-5 { margin-bottom: 1.5rem !important; }
.menu-section-tumisan .mb-4 { margin-bottom: 1rem !important; }
.menu-section-tumisan .mb-3 { margin-bottom: 0.75rem !important; }
.menu-section-tumisan .mb-2 { margin-bottom: 0.5rem !important; }
.menu-section-tumisan .py-5 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
.menu-section-tumisan .p-4  { padding: 1rem !important; }



/* ========================================
   SATE SECTION STYLES
   ======================================== */

/* ============================================================
   SECTION: SATE KHAS SAMPURASUN
   File  : menu.css (bagian sate)
   ============================================================ */


/* =====================
   SECTION WRAPPER
   ===================== */
.menu-section-sate {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 0;
    font-family: 'Lato', sans-serif;
}

.menu-section-sate .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
}


/* =====================
   SECTION HEADER
   ===================== */
.menu-section-sate .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-sate .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 1px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
    text-shadow:
        0 2px 12px rgba(224, 92, 0, 0.3),
        0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-sate .section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}


/* =====================
   SCROLL CONTAINER
   ===================== */
.sate-scroll-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    padding: 20px 0 30px;
    scroll-behavior: smooth;
}

.sate-scroll-container::-webkit-scrollbar {
    height: 6px;
}

.sate-scroll-container::-webkit-scrollbar-track {
    background: rgba(160, 82, 45, 0.1);
    border-radius: 10px;
}

.sate-scroll-container::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #a0522d, #c07040);
    border-radius: 10px;
}

.sate-scroll-container::-webkit-scrollbar-thumb:hover {
    background: #e05c00;
}


/* =====================
   ROW
   - justify-content: center  → card centered kalau sedikit
   - width: 100%              → row melebar penuh
   - min-width: min-content   → row tidak collapse, scroll tetap jalan kalau card banyak
   ===================== */
.sate-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center;
    gap: 20px;
    width: 100%;
    min-width: min-content;
    margin: 0 auto !important;
    padding: 10px 30px;
}

.sate-row .col-auto {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 auto !important;
}


/* =====================
   CARD
   ===================== */
.sate-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition:
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.3s ease,
        border-color 0.3s ease;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    flex-shrink: 0 !important;
    display: flex;
    flex-direction: column;
    position: relative;
}

.sate-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow:
        0 16px 32px rgba(0, 0, 0, 0.4),
        0 0 20px rgba(160, 82, 45, 0.15);
}

.sate-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    border-radius: 14px;
}

.sate-card:hover::after {
    opacity: 1;
}


/* =====================
   GAMBAR
   ===================== */
.sate-img-wrapper {
    position: relative;
    height: 190px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.sate-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.sate-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.sate-card:hover .sate-img {
    transform: scale(1.06);
}


/* =====================
   BADGE
   ===================== */
.sate-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    z-index: 10;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.15);
}


/* =====================
   CARD CONTENT
   ===================== */
.sate-content {
    padding: 14px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    background: transparent;
}

.sate-content > .d-flex.justify-content-between.align-items-start {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
    margin-bottom: 0 !important;
}

.sate-content > .d-flex.justify-content-between.align-items-start > div {
    flex: 1;
    min-width: 0;
}

.sate-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 3px !important;
    line-height: 1.3;
}

.sate-text {
    color: #c8a882;
    font-size: 0.78rem;
    line-height: 1.4;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* =====================
   META INFO
   ===================== */
.sate-meta {
    display: flex;
    gap: 6px;
    margin-bottom: 0 !important;
}

.sate-meta span {
    color: #c8a882;
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 8px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.sate-meta i {
    color: #f4a460;
    font-size: 0.75rem;
}

.sate-content > .d-flex.justify-content-between.align-items-center {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px;
    margin-bottom: 0 !important;
}


/* =====================
   HARGA
   ===================== */
.sate-price {
    background: linear-gradient(135deg,
        rgba(139, 69, 19, 0.15),
        rgba(92, 46, 10, 0.20));
    padding: 6px 12px;
    border-radius: 8px;
    flex-shrink: 0;
}

.sate-price .price-label {
    color: #c8a882;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
    margin-bottom: 2px;
    display: block;
}

.sate-price .price-amount {
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.2;
    white-space: nowrap;
}


/* =====================
   QUANTITY CONTROL
   ===================== */
.sate-quantity {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.sate-quantity .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: auto;
    height: 32px;
}

.btn-sate-minus,
.btn-sate-plus {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    line-height: 1;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
    box-shadow: none;
}

.btn-sate-minus { border-radius: 7px 0 0 7px; }
.btn-sate-plus  { border-radius: 0 7px 7px 0; }

.btn-sate-minus:hover,
.btn-sate-plus:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
}

.sate-quantity-input {
    flex: 0 0 40px;
    width: 40px !important;
    min-width: 40px;
    height: 32px;
    padding: 0;
    text-align: center;
    font-size: 0.85rem;
    font-weight: 700;
    border-radius: 0;
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-top: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-bottom: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    outline: none;
}

.sate-quantity-input:focus {
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
    outline: none;
}


/* =====================
   TOTAL HARGA
   ===================== */
.sate-total {
    background: linear-gradient(135deg,
        rgba(139, 69, 19, 0.12),
        rgba(92, 46, 10, 0.18));
    padding: 7px 12px;
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0 !important;
}

.sate-total span:first-child {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
}

.sate-total .total-price {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.92rem;
    font-weight: 700;
}


/* =====================
   TOMBOL QUICK ADD
   ===================== */
.btn-sate-quick {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 6px rgba(224, 92, 0, 0.4);
}

.btn-sate-quick:hover {
    color: #ffffff;
    transform: scale(1.1) rotate(90deg);
    box-shadow: 0 4px 10px rgba(224, 92, 0, 0.6);
}


/* =====================
   TOMBOL ORDER
   ===================== */
.btn-sate-order {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-top: auto;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
}

.btn-sate-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    border-radius: 8px;
    pointer-events: none;
}

.btn-sate-order:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(224, 92, 0, 0.45);
}

.btn-sate-order i {
    color: #ffffff;
    font-size: 0.72rem;
}


/* =====================
   FOCUS STATES
   ===================== */
.btn-sate-quick:focus,
.btn-sate-minus:focus,
.btn-sate-plus:focus,
.btn-sate-order:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(160, 82, 45, 0.5);
}


/* =====================
   ANIMASI MASUK
   ===================== */
@keyframes sateCardFadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.sate-card {
    animation: sateCardFadeIn 0.5s ease-out both;
}

.sate-row .col-auto:nth-child(1) .sate-card { animation-delay: 0.05s; }
.sate-row .col-auto:nth-child(2) .sate-card { animation-delay: 0.12s; }
.sate-row .col-auto:nth-child(3) .sate-card { animation-delay: 0.19s; }


/* =====================
   RESPONSIVE
   ===================== */
@media (max-width: 768px) {
    .menu-section-sate .container-fluid {
        padding-left: 20px;
        padding-right: 20px;
    }

    .sate-row {
        padding: 10px 20px;
        justify-content: flex-start;
    }

    .sate-card {
        width: 280px !important;
        min-width: 280px !important;
        max-width: 280px !important;
    }

    .sate-img-wrapper {
        height: 170px;
    }

    .sate-title {
        font-size: 0.9rem;
    }

    .sate-text {
        font-size: 0.7rem;
    }
}

@media (max-width: 576px) {
    .sate-card {
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
    }

    .sate-row {
        padding: 10px 15px;
    }
}


/* ============================================================
   MENU SECTION SATE - MAIN CONTAINER
   ============================================================ */
.menu-section-sate {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 0;
    font-family: 'Lato', sans-serif;
}

.menu-section-sate .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1400px;
    margin: 0 auto;
}

/* ============================================================
   SECTION HEADER
   ============================================================ */
.menu-section-sate .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-sate .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 1px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-sate .section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}

.menu-section-sate .section-subtitle {
    color: #c8a882;
    font-size: 1rem;
    margin-top: 16px;
    font-weight: 400;
}

/* ============================================================
   SCROLL CONTAINER - CENTERED CARDS
   ============================================================ */
.sate-scroll-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    padding: 20px 0 30px;
    margin: 0;
    scroll-behavior: smooth;
}

.sate-scroll-container::-webkit-scrollbar {
    height: 8px;
}

.sate-scroll-container::-webkit-scrollbar-track {
    background: rgba(160, 82, 45, 0.1);
    border-radius: 10px;
}

.sate-scroll-container::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #a0522d, #c07040);
    border-radius: 10px;
}

/* ============================================================
   ROW - CENTERED CARDS WITH PROPER SPACING
   ============================================================ */
.sate-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 24px;
    padding: 10px 40px;
    margin: 0 auto !important;
    width: fit-content;
    justify-content: center;
}

.sate-row .col-auto {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 auto !important;
    display: flex;
    flex-direction: column;
}

/* ============================================================
   CARD
   ============================================================ */
.sate-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100%;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s ease,
                border-color 0.3s ease;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    flex-shrink: 0 !important;
}

.sate-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(160, 82, 45, 0.15);
}

.sate-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    border-radius: 14px;
}

.sate-card:hover::after {
    opacity: 1;
}

/* ============================================================
   IMAGE WRAPPER
   ============================================================ */
.sate-img-wrapper {
    position: relative;
    height: 190px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.sate-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.sate-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.sate-card:hover .sate-img {
    transform: scale(1.06);
}

/* ============================================================
   BADGE
   ============================================================ */
.sate-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.badge-popular {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
}

.badge-premium {
    background: linear-gradient(135deg, #7d5a1e, #c9972a);
}

.badge-recommendation {
    background: linear-gradient(135deg, #1a6b9a, #2490c8);
}

/* ============================================================
   CARD CONTENT
   ============================================================ */
.sate-content {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
    background: transparent;
}

/* Title and quick add button row */
.sate-content > .d-flex.justify-content-between.align-items-start {
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
}

.sate-content > .d-flex.justify-content-between.align-items-start > div:first-child {
    flex: 1;
    min-width: 0;
}

.sate-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.3;
}

.sate-text {
    color: #c8a882;
    font-size: 0.75rem;
    line-height: 1.5;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Meta info */
.sate-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sate-meta span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #c8a882;
    font-size: 0.7rem;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.sate-meta i {
    color: #f4a460;
    font-size: 0.7rem;
}

/* Price and quantity row */
.sate-content > .d-flex.justify-content-between.align-items-center {
    gap: 12px;
    align-items: center;
}

/* Price block */
.sate-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.20));
    padding: 6px 12px;
    border-radius: 8px;
    flex-shrink: 0;
}

.sate-price .price-label {
    color: #c8a882;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
    margin-bottom: 2px;
    display: block;
}

.sate-price .price-amount {
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.2;
    white-space: nowrap;
}

/* Quantity controls */
.sate-quantity {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.sate-quantity .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: auto;
    height: 32px;
}

.btn-sate-minus,
.btn-sate-plus {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    line-height: 1;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
    box-shadow: none;
}

.btn-sate-minus {
    border-radius: 7px 0 0 7px;
}

.btn-sate-plus {
    border-radius: 0 7px 7px 0;
}

.btn-sate-minus:hover,
.btn-sate-plus:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
}

.sate-quantity-input {
    flex: 0 0 40px;
    width: 40px !important;
    min-width: 40px;
    height: 32px;
    padding: 0;
    text-align: center;
    font-size: 0.85rem;
    font-weight: 700;
    border-radius: 0;
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    border-top: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-bottom: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    outline: none;
}

.sate-quantity-input:focus {
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

/* Total price */
.sate-total {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 12px;
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sate-total span:first-child {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
}

.sate-total .total-price {
    color: #ffffff;
    font-size: 0.92rem;
    font-weight: 700;
}

/* Quick add button */
.btn-sate-quick {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 6px rgba(224, 92, 0, 0.4);
}

.btn-sate-quick:hover {
    color: #ffffff;
    transform: scale(1.1) rotate(90deg);
    box-shadow: 0 4px 10px rgba(224, 92, 0, 0.6);
}

/* Order button */
.btn-sate-order {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-top: auto;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
}

.btn-sate-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    border-radius: 8px;
    pointer-events: none;
}

.btn-sate-order:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(224, 92, 0, 0.45);
}

.btn-sate-order i {
    color: #ffffff;
    font-size: 0.72rem;
}

/* Focus states */
.btn-sate-quick:focus,
.btn-sate-minus:focus,
.btn-sate-plus:focus,
.btn-sate-order:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(160, 82, 45, 0.5);
}

/* ============================================================
   CARD ANIMATIONS
   ============================================================ */
@keyframes sateCardFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.sate-card {
    animation: sateCardFadeIn 0.5s ease-out both;
}

.sate-row .col-auto:nth-child(1) .sate-card { animation-delay: 0.05s; }
.sate-row .col-auto:nth-child(2) .sate-card { animation-delay: 0.12s; }
.sate-row .col-auto:nth-child(3) .sate-card { animation-delay: 0.19s; }

/* ============================================================
   RESPONSIVE DESIGN
   ============================================================ */
@media (max-width: 1400px) {
    .menu-section-sate { padding: 50px 0; }
    .menu-section-sate .container-fluid { padding-left: 30px; padding-right: 30px; }
    .sate-row { padding: 10px 30px; }
}

@media (max-width: 1200px) {
    .sate-card {
        width: 280px !important;
        min-width: 280px !important;
        max-width: 280px !important;
    }
    .sate-row { gap: 20px; }
}

@media (max-width: 992px) {
    .menu-section-sate { padding: 40px 0; }
    .sate-card {
        width: 270px !important;
        min-width: 270px !important;
        max-width: 270px !important;
    }
    .sate-row {
        padding: 10px 25px;
        justify-content: flex-start;
        gap: 20px;
    }
}

@media (max-width: 768px) {
    .menu-section-sate { padding: 30px 0; }
    .menu-section-sate .container-fluid { padding-left: 20px; padding-right: 20px; }
    .sate-row {
        padding: 10px 20px;
        gap: 16px;
    }
    .sate-card {
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
    }
    .menu-section-sate .section-title { font-size: 1.75rem; }
    .menu-section-sate .section-subtitle { font-size: 0.9rem; }
}

@media (max-width: 576px) {
    .menu-section-sate { padding: 20px 0; }
    .menu-section-sate .container-fluid { padding-left: 16px; padding-right: 16px; }
    .sate-row {
        padding: 10px 16px;
        gap: 14px;
    }
    .sate-card {
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
    }
    .menu-section-sate .section-title { font-size: 1.5rem; }
}






/* ========================================
   KIDS MENU SECTION
   ======================================== */
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&display=swap');

/* ============================================================
   MENU SECTION KIDS - MAIN CONTAINER
   ============================================================ */
.menu-section-kids {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 0;
    font-family: 'Lato', sans-serif;
}

.menu-section-kids .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1400px;
    margin: 0 auto;
}


/* ============================================================
   SECTION HEADER
   ============================================================ */
.menu-section-kids .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-kids .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 1px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-kids .section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}


/* ============================================================
   SCROLL / GRID CONTAINER - CENTERED CARDS
   ============================================================ */
.kids-scroll-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    padding: 10px 0 30px;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    
    /* Flexbox for centering the row */
    display: flex;
    justify-content: center;
}

/* Row styling - cards will be centered */
.kids-scroll-container .kids-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    gap: 24px;
    margin: 0;
    padding: 10px 0;
    
    /* Important: ensures row doesn't shrink */
    min-width: min-content;
}

/* Column styling */
.kids-scroll-container .col-auto {
    padding-left: 0;
    padding-right: 0;
    display: flex;
    flex-direction: column;
}


/* ============================================================
   CARD STYLES
   ============================================================ */
.kids-card {
    width: 320px;
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100%;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s ease,
                border-color 0.3s ease;
}

.kids-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(160, 82, 45, 0.15);
}

.kids-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    border-radius: 14px;
}

.kids-card:hover::after {
    opacity: 1;
}


/* ============================================================
   IMAGE WRAPPER
   ============================================================ */
.kids-img-wrapper {
    position: relative;
    height: 190px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.kids-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.kids-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.kids-card:hover .kids-img {
    transform: scale(1.06);
}


/* ============================================================
   BADGE STYLES
   ============================================================ */
.kids-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.badge-kids {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
}

.badge-popular {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
}

.badge-combo {
    background: linear-gradient(135deg, #1a6b3c, #2d9b5e);
}


/* ============================================================
   CARD CONTENT
   ============================================================ */
.kids-content {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
    background: transparent;
}

/* Title and quick add button row */
.kids-content > .d-flex.justify-content-between.align-items-start {
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
}

.kids-content > .d-flex.justify-content-between.align-items-start > div:first-child {
    flex: 1;
    min-width: 0;
}

.kids-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.3;
}

.kids-text {
    color: #c8a882;
    font-size: 0.75rem;
    line-height: 1.5;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Meta info badges */
.kids-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.kids-meta span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #c8a882;
    font-size: 0.7rem;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.kids-meta i {
    color: #f4a460;
    font-size: 0.7rem;
}

/* Price and quantity row */
.kids-content > .d-flex.justify-content-between.align-items-center {
    gap: 12px;
    align-items: center;
}

/* Price block */
.kids-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.20));
    padding: 6px 12px;
    border-radius: 8px;
    flex-shrink: 0;
}

.kids-price .price-label {
    color: #c8a882;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
    margin-bottom: 2px;
    display: block;
}

.kids-price .price-amount {
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.2;
    white-space: nowrap;
}

/* Quantity controls */
.kids-quantity {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.kids-quantity .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: auto;
    height: 32px;
}

.btn-kids-minus,
.btn-kids-plus {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    line-height: 1;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
    box-shadow: none;
}

.btn-kids-minus {
    border-radius: 7px 0 0 7px;
}

.btn-kids-plus {
    border-radius: 0 7px 7px 0;
}

.btn-kids-minus:hover,
.btn-kids-plus:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
}

.kids-quantity-input {
    flex: 0 0 40px;
    width: 40px !important;
    min-width: 40px;
    height: 32px;
    padding: 0;
    text-align: center;
    font-size: 0.85rem;
    font-weight: 700;
    border-radius: 0;
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    border-top: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-bottom: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    outline: none;
}

.kids-quantity-input:focus {
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    box-shadow: none !important;
    border-color: rgba(160, 82, 45, 0.4) !important;
}

/* Total price */
.kids-total {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 12px;
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.kids-total span:first-child {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
}

.kids-total .total-price {
    color: #ffffff;
    font-size: 0.92rem;
    font-weight: 700;
}

/* Quick add button */
.btn-kids-quick {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 6px rgba(224, 92, 0, 0.4);
}

.btn-kids-quick:hover {
    color: #ffffff;
    transform: scale(1.1) rotate(90deg);
    box-shadow: 0 4px 10px rgba(224, 92, 0, 0.6);
}

/* Order button */
.btn-kids-order {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-top: auto;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
}

.btn-kids-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    border-radius: 8px;
    pointer-events: none;
}

.btn-kids-order:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(224, 92, 0, 0.45);
}

.btn-kids-order i {
    color: #ffffff;
    font-size: 0.72rem;
}

/* Focus states */
.btn-kids-quick:focus,
.btn-kids-minus:focus,
.btn-kids-plus:focus,
.btn-kids-order:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(160, 82, 45, 0.5);
}

/* Card animations */
@keyframes kidsCardFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.kids-card {
    animation: kidsCardFadeIn 0.5s ease-out both;
}

.kids-scroll-container .col-auto:nth-child(1) .kids-card {
    animation-delay: 0.05s;
}

.kids-scroll-container .col-auto:nth-child(2) .kids-card {
    animation-delay: 0.12s;
}

.kids-scroll-container .col-auto:nth-child(3) .kids-card {
    animation-delay: 0.19s;
}


/* ============================================================
   RESPONSIVE DESIGN - KEEP CARDS CENTERED ON DESKTOP
   ============================================================ */
@media (max-width: 1200px) {
    .kids-scroll-container .kids-row {
        gap: 20px;
    }
    
    .kids-card {
        width: 300px;
    }
}

@media (max-width: 992px) {
    /* On tablet, allow scrolling but still try to center if possible */
    .kids-scroll-container {
        justify-content: flex-start;
    }
    
    .kids-scroll-container .kids-row {
        justify-content: flex-start;
        padding-left: 16px;
        padding-right: 16px;
    }
    
    .kids-card {
        width: 280px;
    }
}

@media (max-width: 768px) {
    .menu-section-kids .container-fluid {
        padding-left: 16px;
        padding-right: 16px;
    }
    
    .kids-scroll-container .kids-row {
        gap: 16px;
        padding-left: 12px;
        padding-right: 12px;
    }
    
    .kids-card {
        width: 260px;
    }
    
    .kids-content {
        padding: 12px;
    }
    
    .menu-section-kids .section-title {
        font-size: 1.75rem;
    }
}

@media (max-width: 576px) {
    .kids-card {
        width: 280px;
    }
    
    .kids-scroll-container .kids-row {
        gap: 14px;
    }
}


/* ===================================
   SECTION MENU TAMBAHAN
   =================================== */
.menu-section-tambahan .section-header {
    text-align: center;
    margin-bottom: 30px;
}

.menu-section-tambahan .section-title {
    font-family: 'Playfair Display', serif;
    color: var(--text-cream);
    font-size: 2rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.5px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
}

.menu-section-tambahan .section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    height: 3px;
    background: var(--gradient-orange);
    border-radius: 2px;
}

/* ===================================
   SCROLL CONTAINER
   =================================== */
.tambahan-scroll-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    padding: 20px 40px 30px;
    scroll-behavior: smooth;
}

.tambahan-scroll-container::-webkit-scrollbar {
    height: 8px;
}

.tambahan-scroll-container::-webkit-scrollbar-track {
    background: rgba(160, 82, 45, 0.1);
    border-radius: 10px;
}

.tambahan-scroll-container::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #a0522d, #c07040);
    border-radius: 10px;
}

/* ===================================
   ROW
   =================================== */
.tambahan-scroll-container .tambahan-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 20px;
    margin: 0 auto !important;
    padding: 10px 0 !important;
    width: auto !important;
    min-width: min-content;
}

.tambahan-scroll-container .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.tambahan-scroll-container .col-auto {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 auto !important;
}

/* ===================================
   CARD
   =================================== */
.tambahan-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    flex-shrink: 0 !important;
    display: flex;
    flex-direction: column;
    position: relative;
}

.tambahan-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(160, 82, 45, 0.15);
}

/* ===================================
   GAMBAR
   =================================== */
.tambahan-img-wrapper {
    position: relative;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.tambahan-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
}

.tambahan-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
    display: block;
}

.tambahan-card:hover .tambahan-img {
    transform: scale(1.06);
}

/* ===================================
   BADGE
   =================================== */
.tambahan-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    z-index: 10;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.badge-populer { background: linear-gradient(135deg, #e05c00, #ff8c42); }
.badge-super { background: linear-gradient(135deg, #e05c00, #ff8c42); }
.badge-komplit { background: linear-gradient(135deg, #7b4d00, #c77d00); }

/* ===================================
   CARD CONTENT
   =================================== */
.tambahan-content {
    padding: 14px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    background: transparent;
}

/* Header baris: judul + tombol quick */
.tambahan-content > .d-flex.justify-content-between.align-items-start {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
    margin-bottom: 0 !important;
}

.tambahan-content > .d-flex.justify-content-between.align-items-start > div {
    flex: 1;
    min-width: 0;
}

.tambahan-title {
    font-family: 'Playfair Display', serif;
    color: var(--text-cream);
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 3px !important;
    line-height: 1.3;
}

.tambahan-text {
    color: var(--text-light);
    font-size: 0.78rem;
    line-height: 1.4;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tambahan-content small {
    color: #ff8c42;
    font-size: 0.72rem;
    font-weight: 600;
    display: block;
    margin-top: 2px;
}

/* Meta */
.tambahan-meta {
    display: flex;
    gap: 6px;
    margin-bottom: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.tambahan-meta span {
    color: var(--text-light);
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(255,255,255,0.04);
    padding: 3px 8px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.tambahan-meta i {
    color: var(--secondary-lighter);
    font-size: 0.75rem;
}

/* ===================================
   HARGA
   =================================== */
.tambahan-content > .d-flex.justify-content-between.align-items-center {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 8px;
    margin-bottom: 0 !important;
}

.tambahan-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.2));
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid rgba(160, 82, 45, 0.35);
    min-width: 90px;
}

.tambahan-price .price-label {
    color: var(--text-light);
    text-transform: uppercase;
    font-size: 0.62rem;
    letter-spacing: 0.7px;
    font-weight: 700;
    opacity: 0.7;
    margin-bottom: 2px;
}

/* ANGKA HARGA = PUTIH */
.tambahan-price .price-amount,
.tambahan-card .price-amount,
.tambahan-card .price-amount.h4,
.tambahan-card div.price-amount.h4.fw-bold {
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 !important;
    letter-spacing: -0.2px;
    line-height: 1.2;
    text-shadow: none !important;
}

/* ===================================
   QUANTITY CONTROL
   =================================== */
.tambahan-quantity {
    display: flex;
    align-items: center;
}

.tambahan-quantity .input-group,
.tambahan-quantity .input-group.input-group-sm {
    width: auto !important;
    height: 28px;
    flex-wrap: nowrap !important;
}

/* TOMBOL QTY = COKLAT */
.btn-tambahan-minus,
.btn-tambahan-plus {
    background: #a0522d !important;
    color: #fff !important;
    border: none !important;
    width: 26px !important;
    height: 26px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.85rem !important;
    cursor: pointer;
    padding: 0 !important;
    flex-shrink: 0;
    box-shadow: none !important;
    transform: none !important;
}

.btn-tambahan-minus { border-radius: 6px 0 0 6px !important; }
.btn-tambahan-plus  { border-radius: 0 6px 6px 0 !important; }

.btn-tambahan-minus:hover,
.btn-tambahan-plus:hover {
    background: #c0622d !important;
    color: #fff !important;
    transform: none !important;
}

/* ANGKA QTY INPUT = PUTIH */
.tambahan-quantity-input {
    background: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: none !important;
    border-left: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-right: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-radius: 0 !important;
    width: 36px !important;
    height: 26px !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    text-align: center !important;
    padding: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.tambahan-quantity-input:focus {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
    outline: none !important;
    background: #2b1a0a !important;
}

/* ===================================
   TOTAL HARGA
   =================================== */
.tambahan-total {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 10px;
    border-radius: 8px;
    border: 1px solid rgba(160, 82, 45, 0.3);
    margin: 0 !important;
}

.tambahan-total .small,
.tambahan-total span:first-child {
    color: var(--text-light);
    font-size: 0.72rem;
    opacity: 0.85;
    text-transform: none;
    letter-spacing: 0;
}

/* ANGKA TOTAL = PUTIH */
.tambahan-total .total-price,
.tambahan-card .total-price,
.tambahan-card span.total-price,
.tambahan-card span.total-price.fw-bold.fs-5 {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    text-shadow: none !important;
}

/* ===================================
   TOMBOL QUICK ADD
   =================================== */
.btn-tambahan-quick {
    background: linear-gradient(135deg, #a0522d, #c07040) !important;
    color: #fff !important;
    border: none !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
    padding: 0 !important;
    flex-shrink: 0;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 2px 8px rgba(160, 82, 45, 0.4);
}

.btn-tambahan-quick:hover {
    transform: scale(1.15) rotate(90deg) !important;
    box-shadow: 0 4px 12px rgba(160, 82, 45, 0.6) !important;
    color: #fff !important;
}

/* ===================================
   TOMBOL ORDER
   =================================== */
.btn-tambahan-order {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 9px;
    font-weight: 700;
    font-size: 0.76rem;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    padding: 8px 10px !important;
    width: 100%;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 5px;
    position: relative;
    overflow: hidden;
}

.btn-tambahan-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%, transparent 60%);
    border-radius: 9px;
    pointer-events: none;
}

.btn-tambahan-order::before { display: none; }

.btn-tambahan-order:hover {
    background: linear-gradient(135deg, #ff8c42, #e05c00) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(224, 92, 0, 0.45);
    color: #fff !important;
}

.btn-tambahan-order i { color: #fff; }

/* ===================================
   FOCUS STATES
   =================================== */
.btn-tambahan-quick:focus,
.btn-tambahan-minus:focus,
.btn-tambahan-plus:focus,
.btn-tambahan-order:focus {
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(160, 82, 45, 0.4);
}

/* ===================================
   RESPONSIVE
   =================================== */
@media (max-width: 1200px) {
    .tambahan-card { width: 280px !important; min-width: 280px !important; max-width: 280px !important; }
}

@media (max-width: 992px) {
    .tambahan-scroll-container .tambahan-row { justify-content: flex-start !important; }
    .tambahan-card { width: 270px !important; min-width: 270px !important; max-width: 270px !important; }
}

@media (max-width: 768px) {
    .menu-section-tambahan { padding: 30px 0; }
    .menu-section-tambahan .container-fluid { padding-left: 20px; padding-right: 20px; }
    .tambahan-scroll-container { padding: 15px 20px 25px; }
    .tambahan-card { width: 255px !important; min-width: 255px !important; max-width: 255px !important; }
}

/* ===================================
   ANIMATION
   =================================== */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.tambahan-card { animation: fadeInUp 0.5s ease-out; }
.tambahan-scroll-container .col-auto:nth-child(1) .tambahan-card { animation-delay: 0.05s; }
.tambahan-scroll-container .col-auto:nth-child(2) .tambahan-card { animation-delay: 0.10s; }
.tambahan-scroll-container .col-auto:nth-child(3) .tambahan-card { animation-delay: 0.15s; }

/* Hover overlay */
.tambahan-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.tambahan-card:hover::after { opacity: 1; }




/* ========================================
   NASI & LIWET SECTION
   ======================================== */

@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&display=swap');

/* ============================================================
   MENU SECTION NASI - MAIN CONTAINER
   ============================================================ */
.menu-section-nasi {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 0;
    font-family: 'Lato', sans-serif;
}

.menu-section-nasi .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1400px;
    margin: 0 auto;
}

/* ===================================
   FEATURED HEADER — disembunyikan, pakai section-header HTML baru
   =================================== */
.featured-header-nasi { display: none; }

/* ===================================
   SECTION TITLE — Cinzel Decorative
   =================================== */
.menu-section-nasi .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-nasi .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    text-transform: none;
    letter-spacing: 1px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-nasi .section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}

/* ===================================
   FEATURED HEADER (lama — tetap ada untuk kompatibilitas)
   =================================== */
.featured-header-nasi {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid rgba(160, 82, 45, 0.5);
    border-radius: 20px;
    box-shadow: 0 0 40px rgba(160, 82, 45, 0.15), inset 0 0 60px rgba(0, 0, 0, 0.3);
    margin-bottom: 40px !important;
    position: relative;
    overflow: hidden;
}

.featured-header-nasi::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #e05c00, #ff8c42, #e05c00);
}

.featured-title-nasi {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.3px;
    text-shadow: 2px 2px 8px rgba(0,0,0,0.5);
}

.featured-description-nasi {
    color: #c8a882;
}

.featured-header-nasi small {
    color: #ff8c42;
    font-weight: 600;
    display: block;
    margin-top: 12px;
    font-size: 0.85rem;
}

/* ===================================
   SCROLL CONTAINER
   =================================== */
.nasi-scroll-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    padding: 20px 0 30px;
    margin: 0;
    scroll-behavior: smooth;
}

.nasi-scroll-container::-webkit-scrollbar { 
    height: 8px; 
}
.nasi-scroll-container::-webkit-scrollbar-track {
    background: rgba(160, 82, 45, 0.1);
    border-radius: 10px;
}
.nasi-scroll-container::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #a0522d, #c07040);
    border-radius: 10px;
}

/* Hapus pseudo ::after indicator geser */
.nasi-scroll-container::after { display: none; }

/* ===================================
   ROW
   =================================== */
.nasi-scroll-container .nasi-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 24px;
    padding: 10px 40px;
    margin: 0 auto !important;
    width: fit-content;
    justify-content: center;
}

.nasi-scroll-container .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.nasi-scroll-container .col-auto {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 auto !important;
}

/* ===================================
   CARD
   =================================== */
.nasi-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    flex-shrink: 0 !important;
    display: flex;
    flex-direction: column;
    position: relative;
}

.nasi-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(160, 82, 45, 0.15);
}

/* ===================================
   GAMBAR
   =================================== */
.nasi-img-wrapper {
    position: relative;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.nasi-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 45%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
}

.nasi-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
    display: block;
}

.nasi-card:hover .nasi-img { transform: scale(1.06); }

/* ===================================
   BADGE
   =================================== */
.nasi-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    z-index: 10;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.badge-nasi    { background: linear-gradient(135deg, #1a6b9a, #2490c8); }
.badge-popular { background: linear-gradient(135deg, #e05c00, #ff8c42); }
.badge-combo   { background: linear-gradient(135deg, #2a7a4a, #3aaa6a); }

/* ===================================
   CARD CONTENT
   =================================== */
.nasi-content {
    padding: 14px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    background: transparent;
}

/* Header baris: judul + tombol quick */
.nasi-content > .d-flex.justify-content-between.align-items-start {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
    margin-bottom: 0 !important;
}

.nasi-content > .d-flex.justify-content-between.align-items-start > div {
    flex: 1;
    min-width: 0;
}

.nasi-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 3px !important;
    line-height: 1.3;
}

.nasi-text {
    color: #c8a882;
    font-size: 0.78rem;
    line-height: 1.4;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nasi-content small {
    color: #ff8c42;
    font-size: 0.72rem;
    font-weight: 600;
    display: block;
    margin-top: 2px;
}

/* Meta */
.nasi-meta {
    display: flex;
    gap: 6px;
    margin-bottom: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.nasi-meta span {
    color: #c8a882;
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(255,255,255,0.04);
    padding: 3px 8px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.nasi-meta i {
    color: #f4a460;
    font-size: 0.75rem;
}

/* ===================================
   HARGA
   =================================== */
.nasi-content > .d-flex.justify-content-between.align-items-center {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 8px;
    margin-bottom: 0 !important;
}

.nasi-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.2));
    padding: 6px 10px;
    border-radius: 8px;
    border: none;
    min-width: 90px;
    margin-bottom: 0 !important;
}

.nasi-price .price-label,
.menu-section-nasi .price-label {
    color: #c8a882;
    text-transform: uppercase;
    font-size: 0.62rem;
    letter-spacing: 0.7px;
    font-weight: 700;
    opacity: 0.7;
    margin-bottom: 2px;
}

/* ANGKA HARGA = PUTIH */
.nasi-price .price-amount,
.nasi-card .price-amount,
.nasi-card .price-amount.h4,
.nasi-card div.price-amount.h4.fw-bold {
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 !important;
    letter-spacing: -0.2px;
    line-height: 1.2;
    text-shadow: none !important;
}

/* ===================================
   QUANTITY CONTROL
   =================================== */
.nasi-quantity { display: flex; align-items: center; }

.nasi-quantity .input-group,
.nasi-quantity .input-group.input-group-sm {
    width: auto !important;
    height: 28px;
    flex-wrap: nowrap !important;
}

/* TOMBOL QTY = COKLAT */
.btn-nasi-minus,
.btn-nasi-plus {
    background: #a0522d !important;
    color: #fff !important;
    border: none !important;
    width: 26px !important;
    height: 26px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.85rem !important;
    cursor: pointer;
    padding: 0 !important;
    flex-shrink: 0;
    transition: background 0.2s ease;
    box-shadow: none !important;
    transform: none !important;
}

.btn-nasi-minus { border-radius: 6px 0 0 6px !important; }
.btn-nasi-plus  { border-radius: 0 6px 6px 0 !important; }

.btn-nasi-minus:hover,
.btn-nasi-plus:hover {
    background: #c0622d !important;
    color: #fff !important;
    transform: none !important;
}

/* ANGKA QTY INPUT = PUTIH */
.nasi-quantity-input {
    background: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: none !important;
    border-left: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-right: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-radius: 0 !important;
    width: 36px !important;
    height: 26px !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    text-align: center !important;
    padding: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.nasi-quantity-input:focus {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
    background: #2b1a0a !important;
}

/* ===================================
   TOTAL HARGA
   =================================== */
.nasi-total {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 10px;
    border-radius: 8px;
    border: none;
    margin: 0 !important;
}

.nasi-total .small,
.nasi-total span:first-child {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* ANGKA TOTAL = PUTIH */
.nasi-total .total-price,
.nasi-card .total-price,
.nasi-card span.total-price,
.nasi-card span.total-price.fw-bold.fs-5 {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    text-shadow: none !important;
}

/* ===================================
   TOMBOL QUICK ADD
   =================================== */
.btn-nasi-quick {
    background: linear-gradient(135deg, #a0522d, #c07040) !important;
    color: #fff !important;
    border: none !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
    padding: 0 !important;
    flex-shrink: 0;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 2px 8px rgba(160, 82, 45, 0.4);
}

.btn-nasi-quick:hover {
    transform: scale(1.15) rotate(90deg) !important;
    box-shadow: 0 4px 12px rgba(160, 82, 45, 0.6) !important;
    color: #fff !important;
}

/* ===================================
   TOMBOL ORDER
   =================================== */
.btn-nasi-order {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 9px;
    font-weight: 700;
    font-size: 0.76rem;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    padding: 8px 10px !important;
    width: 100%;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 5px;
    position: relative;
    overflow: hidden;
}

.btn-nasi-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%, transparent 60%);
    border-radius: 9px;
    pointer-events: none;
}

.btn-nasi-order::before { display: none; }

.btn-nasi-order:hover {
    background: linear-gradient(135deg, #ff8c42, #e05c00) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(224, 92, 0, 0.45);
    color: #fff !important;
}

.btn-nasi-order i { color: #fff; }

/* ===================================
   FOCUS STATES
   =================================== */
.btn-nasi-quick:focus,
.btn-nasi-minus:focus,
.btn-nasi-plus:focus,
.btn-nasi-order:focus {
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(160, 82, 45, 0.4);
}

/* ===================================
   RESPONSIVE
   =================================== */
@media (max-width: 1400px) {
    .menu-section-nasi { padding: 50px 0; }
    .menu-section-nasi .container-fluid { padding-left: 30px; padding-right: 30px; }
    .nasi-scroll-container .nasi-row { padding: 10px 30px; }
}

@media (max-width: 1200px) {
    .nasi-card { width: 280px !important; min-width: 280px !important; max-width: 280px !important; }
    .nasi-scroll-container .nasi-row { gap: 20px; }
}

@media (max-width: 992px) {
    .menu-section-nasi { padding: 40px 0; }
    .nasi-card { width: 270px !important; min-width: 270px !important; max-width: 270px !important; }
    .nasi-scroll-container .nasi-row { padding: 10px 25px; justify-content: flex-start; }
}

@media (max-width: 768px) {
    .menu-section-nasi { padding: 30px 0; }
    .menu-section-nasi .container-fluid { padding-left: 20px; padding-right: 20px; }
    .nasi-scroll-container .nasi-row { padding: 10px 20px; gap: 16px; }
    .nasi-card { width: 255px !important; min-width: 255px !important; max-width: 255px !important; }
    .featured-title-nasi { font-size: 1.75rem; }
}

@media (max-width: 576px) {
    .menu-section-nasi { padding: 20px 0; }
    .nasi-card { width: 240px !important; min-width: 240px !important; max-width: 240px !important; }
    .nasi-scroll-container .nasi-row { padding: 10px 15px; gap: 14px; }
    .featured-title-nasi { font-size: 1.5rem; }
}

/* ===================================
   ANIMATION
   =================================== */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.nasi-card { animation: fadeInUp 0.5s ease-out; }
.nasi-scroll-container .col-auto:nth-child(1) .nasi-card { animation-delay: 0.05s; }
.nasi-scroll-container .col-auto:nth-child(2) .nasi-card { animation-delay: 0.10s; }
.nasi-scroll-container .col-auto:nth-child(3) .nasi-card { animation-delay: 0.15s; }
.nasi-scroll-container .col-auto:nth-child(4) .nasi-card { animation-delay: 0.20s; }
.nasi-scroll-container .col-auto:nth-child(5) .nasi-card { animation-delay: 0.25s; }
.nasi-scroll-container .col-auto:nth-child(6) .nasi-card { animation-delay: 0.30s; }

/* Hover overlay */
.nasi-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.nasi-card:hover::after { opacity: 1; }




/* ========================================
   NUSANESNA MENU SECTION
   ======================================== */
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&family=Playfair+Display:wght@400;700&family=Lato:wght@400;600;700&display=swap');

/* ============================================================
   SECTION WRAPPER
   ============================================================ */
/* ============================================================
   MENU SECTION NUSANESNA - MAIN CONTAINER
   ============================================================ */
.menu-section-nusanesna {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 0;
    font-family: 'Lato', sans-serif;
}

.menu-section-nusanesna .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1400px;
    margin: 0 auto;
}

/* ============================================================
   SECTION HEADER
   ============================================================ */
.menu-section-nusanesna .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-nusanesna .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 1px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-nusanesna .section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}

.menu-section-nusanesna .section-subtitle {
    color: #c8a882;
    font-size: 1rem;
    margin-top: 16px;
    font-weight: 400;
}

/* ============================================================
   SCROLL CONTAINER
   ============================================================ */
.nusanesna-scroll-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    padding: 20px 0 30px;
    margin: 0;
    scroll-behavior: smooth;
}

.nusanesna-scroll-container::-webkit-scrollbar {
    height: 8px;
}

.nusanesna-scroll-container::-webkit-scrollbar-track {
    background: rgba(160, 82, 45, 0.1);
    border-radius: 10px;
}

.nusanesna-scroll-container::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #a0522d, #c07040);
    border-radius: 10px;
}

/* ============================================================
   ROW - CARD DENGAN JARAK RAPAT
   ============================================================ */
.nusanesna-scroll-container .nusanesna-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 12px;
    padding: 10px 40px;
    margin: 0 auto !important;
    width: fit-content;
    justify-content: center;
}

.nusanesna-scroll-container .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.nusanesna-scroll-container .col-auto {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 auto !important;
}

/* ============================================================
   MENU ITEM CARD
   ============================================================ */
.menu-item-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    flex-shrink: 0 !important;
    display: flex;
    flex-direction: column;
    position: relative;
}

.menu-item-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(160, 82, 45, 0.15);
}

.menu-item-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    border-radius: 14px;
}

.menu-item-card:hover::after {
    opacity: 1;
}

/* ============================================================
   CARD IMAGE WRAPPER
   ============================================================ */
.card-img-wrapper {
    position: relative;
    height: 190px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.card-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.menu-item-card:hover .card-img {
    transform: scale(1.06);
}

/* ============================================================
   CARD BADGE
   ============================================================ */
.card-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.badge-spicy {
    background: linear-gradient(135deg, #c0392b, #e74c3c);
}

.badge-premium {
    background: linear-gradient(135deg, #7d5a1e, #c9972a);
}

.badge-vegan {
    background: linear-gradient(135deg, #1a6b3c, #2d9b5e);
}

.badge-popular {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
}

/* ============================================================
   CARD CONTENT
   ============================================================ */
.card-content {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
    background: transparent;
}

/* Title and quick add button row */
.card-content > .d-flex.justify-content-between.align-items-start {
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
}

.card-content > .d-flex.justify-content-between.align-items-start > div:first-child {
    flex: 1;
    min-width: 0;
}

.card-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.3;
}

.card-text {
    color: #c8a882;
    font-size: 0.75rem;
    line-height: 1.5;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Meta info */
.menu-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.menu-meta span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #c8a882;
    font-size: 0.7rem;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.menu-meta i {
    color: #f4a460;
    font-size: 0.7rem;
}

/* Price and quantity row */
.card-content > .d-flex.justify-content-between.align-items-center {
    gap: 12px;
    align-items: center;
}

/* Price display */
.price-display {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.20));
    padding: 6px 12px;
    border-radius: 8px;
    flex-shrink: 0;
}

.price-display .price-label {
    color: #c8a882;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
    margin-bottom: 2px;
    display: block;
}

.price-display .price-amount {
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.2;
    white-space: nowrap;
}

/* Quantity controls */
.quantity-control {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.quantity-control .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: auto;
    height: 32px;
}

.btn-quantity {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    line-height: 1;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
    box-shadow: none;
}

.btn-minus {
    border-radius: 7px 0 0 7px;
}

.btn-plus {
    border-radius: 0 7px 7px 0;
}

.btn-quantity:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
}

.quantity-input {
    flex: 0 0 40px;
    width: 40px !important;
    min-width: 40px;
    height: 32px;
    padding: 0;
    text-align: center;
    font-size: 0.85rem;
    font-weight: 700;
    border-radius: 0;
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    border-top: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-bottom: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    outline: none;
}

.quantity-input:focus {
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

/* Total price wrapper */
.total-price-wrapper {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 12px;
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.total-price-wrapper span:first-child {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
}

.total-price {
    color: #ffffff;
    font-size: 0.92rem;
    font-weight: 700;
}

/* Quick add button */
.btn-quick-add {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 6px rgba(224, 92, 0, 0.4);
}

.btn-quick-add:hover {
    color: #ffffff;
    transform: scale(1.1) rotate(90deg);
    box-shadow: 0 4px 10px rgba(224, 92, 0, 0.6);
}

/* Order button */
.btn-order {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-top: auto;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
}

.btn-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    border-radius: 8px;
    pointer-events: none;
}

.btn-order:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(224, 92, 0, 0.45);
}

.btn-order i {
    color: #ffffff;
    font-size: 0.72rem;
}

/* Focus states */
.btn-quick-add:focus,
.btn-quantity:focus,
.btn-order:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(160, 82, 45, 0.5);
}

/* ============================================================
   CARD ANIMATIONS
   ============================================================ */
@keyframes menuCardFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.menu-item-card {
    animation: menuCardFadeIn 0.5s ease-out both;
}

.nusanesna-row .col-auto:nth-child(1) .menu-item-card { animation-delay: 0.05s; }
.nusanesna-row .col-auto:nth-child(2) .menu-item-card { animation-delay: 0.10s; }
.nusanesna-row .col-auto:nth-child(3) .menu-item-card { animation-delay: 0.15s; }
.nusanesna-row .col-auto:nth-child(4) .menu-item-card { animation-delay: 0.20s; }
.nusanesna-row .col-auto:nth-child(5) .menu-item-card { animation-delay: 0.25s; }
.nusanesna-row .col-auto:nth-child(6) .menu-item-card { animation-delay: 0.30s; }
.nusanesna-row .col-auto:nth-child(7) .menu-item-card { animation-delay: 0.35s; }
.nusanesna-row .col-auto:nth-child(8) .menu-item-card { animation-delay: 0.40s; }
.nusanesna-row .col-auto:nth-child(9) .menu-item-card { animation-delay: 0.45s; }
.nusanesna-row .col-auto:nth-child(10) .menu-item-card { animation-delay: 0.50s; }
.nusanesna-row .col-auto:nth-child(11) .menu-item-card { animation-delay: 0.55s; }
.nusanesna-row .col-auto:nth-child(12) .menu-item-card { animation-delay: 0.60s; }

/* ============================================================
   RESPONSIVE DESIGN
   ============================================================ */
@media (max-width: 1400px) {
    .menu-section-nusanesna { padding: 50px 0; }
    .menu-section-nusanesna .container-fluid { padding-left: 30px; padding-right: 30px; }
    .nusanesna-scroll-container .nusanesna-row { padding: 10px 30px; }
}

@media (max-width: 1200px) {
    .menu-item-card {
        width: 280px !important;
        min-width: 280px !important;
        max-width: 280px !important;
    }
    .nusanesna-scroll-container .nusanesna-row { gap: 10px; }
}

@media (max-width: 992px) {
    .menu-section-nusanesna { padding: 40px 0; }
    .menu-item-card {
        width: 270px !important;
        min-width: 270px !important;
        max-width: 270px !important;
    }
    .nusanesna-scroll-container .nusanesna-row {
        padding: 10px 25px;
        justify-content: flex-start;
        gap: 10px;
    }
}

@media (max-width: 768px) {
    .menu-section-nusanesna { padding: 30px 0; }
    .menu-section-nusanesna .container-fluid { padding-left: 20px; padding-right: 20px; }
    .nusanesna-scroll-container .nusanesna-row {
        padding: 10px 20px;
        gap: 8px;
    }
    .menu-item-card {
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
    }
    .menu-section-nusanesna .section-title { font-size: 1.75rem; }
    .menu-section-nusanesna .section-subtitle { font-size: 0.9rem; }
}

@media (max-width: 576px) {
    .menu-section-nusanesna { padding: 20px 0; }
    .menu-section-nusanesna .container-fluid { padding-left: 16px; padding-right: 16px; }
    .nusanesna-scroll-container .nusanesna-row {
        padding: 10px 16px;
        gap: 8px;
    }
    .menu-item-card {
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
    }
    .menu-section-nusanesna .section-title { font-size: 1.5rem; }
}



/* ========================================
   MINUMAN SECTION
   ======================================== */
/* ============================================================
   SECTION: MENU MINUMAN
   ============================================================ */

.menu-section-minuman {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 40px;
    /* Kunci lebar ke viewport — cegah overflow horizontal section */
    max-width: 100vw;
    overflow-x: hidden;
}

.menu-section-minuman .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
    /* Paksa container tidak melebihi section */
    max-width: 100%;
    overflow-x: hidden;
}

/* ============================================================
   SECTION HEADER
   ============================================================ */

.menu-section-minuman .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-minuman .section-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
}

.menu-section-minuman .section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}

/* ============================================================
   SCROLL CONTAINER — wrapper utama, wajib overflow hidden
   ============================================================ */

.minuman-scroll-container {
    width: 100%;
    max-width: 100%;
    overflow: hidden;            /* ← Potong apapun yang keluar dari wrapper */
    margin-top: 20px;
}

/* ============================================================
   ROW CONTAINER — tempat scroll horizontal terjadi
   ============================================================ */

.minuman-row-container {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important; /* ← scroll horizontal di sini */
    overflow-y: hidden !important;/* ← potong vertikal agar baris lain tidak bocor */
    -webkit-overflow-scrolling: touch;
    padding: 20px 0 24px;
    margin-bottom: 20px;
    scroll-behavior: smooth;
    box-sizing: border-box;
}

.minuman-row-container:last-child {
    margin-bottom: 0;
}

.minuman-row-container::-webkit-scrollbar {
    height: 6px;
}
.minuman-row-container::-webkit-scrollbar-track {
    background: rgba(160, 82, 45, 0.1);
    border-radius: 10px;
}
.minuman-row-container::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #a0522d, #c07040);
    border-radius: 10px;
}

/* ============================================================
   ROW — flex nowrap, lebar otomatis mengikuti jumlah card
   ============================================================ */

.minuman-scroll-container .minuman-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 20px;
    margin: 0 !important;
    padding: 8px 20px;           /* padding kiri-kanan agar card tidak mepet */
    width: max-content;          /* row melebar sesuai isi, scroll ditangani parent */
    box-sizing: border-box;
}

.minuman-scroll-container .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.minuman-scroll-container .col-auto {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 auto !important;
}

/* ============================================================
   CARD
   ============================================================ */

.minuman-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040 !important;
    border-radius: 14px !important;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                border-color 0.3s ease;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    flex-shrink: 0 !important;
    display: flex;
    flex-direction: column;
    position: relative;
}

.minuman-card:hover {
    transform: translateY(-6px);
    border-color: #e08050 !important;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4),
                0 0 20px rgba(160, 82, 45, 0.15);
}

.minuman-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.minuman-card:hover::after { opacity: 1; }

/* ============================================================
   IMAGE WRAPPER
   ============================================================ */

.minuman-img-wrapper {
    position: relative;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.minuman-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 45%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
}

.minuman-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.minuman-card:hover .minuman-img { transform: scale(1.06); }

/* ============================================================
   BADGE
   ============================================================ */

.minuman-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.badge-popular     { background: linear-gradient(135deg, #e05c00, #ff8c42); }
.badge-fresh       { background: linear-gradient(135deg, #1a7a4a, #2aaa6a); }
.badge-healthy     { background: linear-gradient(135deg, #1a7a4a, #2aaa6a); }
.badge-special     { background: linear-gradient(135deg, #7b4d00, #c47d00); }
.badge-traditional { background: linear-gradient(135deg, #a0522d, #c07040); }

/* ============================================================
   CARD CONTENT
   ============================================================ */

.minuman-content {
    padding: 14px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    background: transparent;
}

.minuman-content > .d-flex.justify-content-between.align-items-start {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
    margin-bottom: 0 !important;
}

.minuman-content > .d-flex.justify-content-between.align-items-start > div {
    flex: 1;
    min-width: 0;
}

.minuman-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 3px !important;
    line-height: 1.3;
}

.minuman-text {
    color: #c8a882;
    font-size: 0.78rem;
    line-height: 1.4;
    margin: 0;
    opacity: 0.85;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============================================================
   META INFO
   ============================================================ */

.minuman-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.minuman-meta span {
    color: #c8a882;
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 8px;
    border-radius: 20px;
    border: 1px solid rgba(160, 82, 45, 0.2);
}

.minuman-meta i {
    color: #f4a460;
    font-size: 0.75rem;
}

/* ============================================================
   HARGA + QUANTITY ROW
   ============================================================ */

.minuman-content > .d-flex.justify-content-between.align-items-center {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 8px;
    margin-bottom: 0 !important;
}

.minuman-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.2));
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid rgba(160, 82, 45, 0.35);
    min-width: 90px;
    margin-bottom: 0 !important;
}

.price-label,
.minuman-price .price-label {
    color: #c8a882;
    text-transform: uppercase;
    font-size: 0.62rem;
    letter-spacing: 0.7px;
    font-weight: 700;
    opacity: 0.7;
    margin-bottom: 2px;
}

.price-amount,
.minuman-card .price-amount {
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 !important;
    letter-spacing: -0.2px;
    line-height: 1.2;
}

/* ============================================================
   QUANTITY CONTROL
   ============================================================ */

.minuman-quantity {
    display: flex;
    align-items: center;
    margin-bottom: 0 !important;
}

.minuman-quantity .input-group,
.minuman-quantity .input-group.input-group-sm {
    width: auto !important;
    height: 28px;
    flex-wrap: nowrap !important;
}

.btn-minuman-minus,
.btn-minuman-plus {
    background: #a0522d !important;
    color: #fff !important;
    border: none !important;
    width: 26px !important;
    height: 26px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.85rem !important;
    padding: 0 !important;
    flex-shrink: 0;
    cursor: pointer;
    transition: background 0.2s ease;
}

.btn-minuman-minus { border-radius: 6px 0 0 6px !important; }
.btn-minuman-plus  { border-radius: 0 6px 6px 0 !important; }

.btn-minuman-minus:hover,
.btn-minuman-plus:hover {
    background: #c0622d !important;
    color: #fff !important;
}

.minuman-quantity-input {
    background: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: none !important;
    border-left: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-right: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-radius: 0 !important;
    width: 36px !important;
    height: 26px !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    text-align: center !important;
    padding: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.minuman-quantity-input:focus {
    background: #2b1a0a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
}

/* ============================================================
   TOTAL HARGA
   ============================================================ */

.minuman-total {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 10px;
    border-radius: 8px;
    border: 1px solid rgba(160, 82, 45, 0.3) !important;
    margin: 0 !important;
}

.minuman-total .small {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
}

.total-price,
.minuman-card .total-price {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
}

/* ============================================================
   TOMBOL QUICK ADD
   ============================================================ */

.btn-minuman-quick {
    background: linear-gradient(135deg, #a0522d, #c07040) !important;
    color: #fff !important;
    border: none !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
    padding: 0 !important;
    flex-shrink: 0;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 8px rgba(160, 82, 45, 0.4);
}

.btn-minuman-quick:hover {
    transform: scale(1.15) rotate(90deg) !important;
    box-shadow: 0 4px 12px rgba(160, 82, 45, 0.6) !important;
    color: #fff !important;
}

/* ============================================================
   TOMBOL TAMBAH PESANAN
   ============================================================ */

.btn-minuman-order {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 9px !important;
    font-weight: 700 !important;
    font-size: 0.76rem !important;
    letter-spacing: 0.6px !important;
    text-transform: uppercase !important;
    padding: 8px 10px !important;
    width: 100%;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 5px;
    position: relative;
    overflow: hidden;
}

.btn-minuman-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    border-radius: 9px;
    pointer-events: none;
}

.btn-minuman-order:hover {
    background: linear-gradient(135deg, #ff8c42, #e05c00) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(224, 92, 0, 0.45);
    color: #fff !important;
}

/* ============================================================
   FOCUS STATES
   ============================================================ */

.btn-minuman-quick:focus,
.btn-minuman-minus:focus,
.btn-minuman-plus:focus,
.btn-minuman-order:focus {
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(160, 82, 45, 0.4);
}

/* ============================================================
   ANIMATION
   ============================================================ */

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.minuman-card {
    animation: fadeInUp 0.5s ease-out both;
}

.minuman-row-container:nth-child(1) .col-auto:nth-child(1) .minuman-card { animation-delay: 0.05s; }
.minuman-row-container:nth-child(1) .col-auto:nth-child(2) .minuman-card { animation-delay: 0.10s; }
.minuman-row-container:nth-child(1) .col-auto:nth-child(3) .minuman-card { animation-delay: 0.15s; }
.minuman-row-container:nth-child(1) .col-auto:nth-child(4) .minuman-card { animation-delay: 0.20s; }
.minuman-row-container:nth-child(2) .col-auto:nth-child(1) .minuman-card { animation-delay: 0.25s; }
.minuman-row-container:nth-child(2) .col-auto:nth-child(2) .minuman-card { animation-delay: 0.30s; }
.minuman-row-container:nth-child(2) .col-auto:nth-child(3) .minuman-card { animation-delay: 0.35s; }
.minuman-row-container:nth-child(2) .col-auto:nth-child(4) .minuman-card { animation-delay: 0.40s; }



/* ========================================
   PAKET PROMO SECTION
   ======================================== */

@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&display=swap');

/* ============================================================
   SECTION WRAPPER
   ============================================================ */

/* ============================================================
   MENU SECTION PROMO - MAIN CONTAINER
   ============================================================ */
.menu-section-promo {
    background: linear-gradient(135deg, #2c1810 0%, #1a0f0a 100%);
    padding: 60px 0;
    font-family: 'Lato', sans-serif;
}

.menu-section-promo .container-fluid {
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1400px;
    margin: 0 auto;
}

/* ============================================================
   SECTION HEADER
   ============================================================ */
.menu-section-promo .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.menu-section-promo .section-title {
    font-family: 'Cinzel Decorative', 'Playfair Display', serif;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 1px;
    margin-bottom: 0;
    position: relative;
    display: inline-block;
    text-shadow: 0 2px 12px rgba(224, 92, 0, 0.3), 0 0 40px rgba(255, 140, 66, 0.1);
}

.menu-section-promo .section-title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border-radius: 2px;
}

/* ============================================================
   SCROLL CONTAINER - CENTERED CARDS
   ============================================================ */
.promo-scroll-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    padding: 20px 0 30px;
    margin: 0;
    scroll-behavior: smooth;
}

.promo-scroll-container::-webkit-scrollbar {
    height: 8px;
}

.promo-scroll-container::-webkit-scrollbar-track {
    background: rgba(160, 82, 45, 0.1);
    border-radius: 10px;
}

.promo-scroll-container::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #a0522d, #c07040);
    border-radius: 10px;
}

/* ============================================================
   ROW - CENTERED CARDS WITH PROPER SPACING
   ============================================================ */
.promo-row-container {
    width: 100%;
}

.promo-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 24px;
    padding: 10px 40px;
    margin: 0 auto !important;
    width: fit-content;
    justify-content: center;
}

.promo-row .col-auto {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: 0 0 auto !important;
    display: flex;
    flex-direction: column;
}

/* ============================================================
   CARD
   ============================================================ */
.promo-card {
    background: linear-gradient(145deg, #3d2010 0%, #2e1608 100%);
    border: 1.5px solid #c07040;
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100%;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s ease,
                border-color 0.3s ease;
    width: 320px !important;
    min-width: 320px !important;
    max-width: 320px !important;
    flex-shrink: 0 !important;
}

.promo-card:hover {
    transform: translateY(-6px);
    border-color: #e08050;
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(160, 82, 45, 0.15);
}

.promo-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, transparent, rgba(255, 140, 66, 0.03), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    border-radius: 14px;
}

.promo-card:hover::after {
    opacity: 1;
}

/* ============================================================
   IMAGE WRAPPER
   ============================================================ */
.promo-img-wrapper {
    position: relative;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
    border-bottom: 1.5px solid #c07040;
}

.promo-img-wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, rgba(26, 14, 5, 0.65) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.promo-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.promo-card:hover .promo-img {
    transform: scale(1.06);
}

/* ============================================================
   BADGE
   ============================================================ */
.promo-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.badge-popular {
    background: linear-gradient(135deg, #e05c00, #ff8c42);
}

.badge-value {
    background: linear-gradient(135deg, #1a7a4a, #2aaa6a);
}

.badge-premium {
    background: linear-gradient(135deg, #7b4d00, #c47d00);
}

/* ============================================================
   CARD CONTENT
   ============================================================ */
.promo-content {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
    background: transparent;
}

/* Title and quick add button row */
.promo-content > .d-flex.justify-content-between.align-items-start {
    gap: 8px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(160, 82, 45, 0.15);
}

.promo-content > .d-flex.justify-content-between.align-items-start > div:first-child {
    flex: 1;
    min-width: 0;
}

.promo-title {
    font-family: 'Playfair Display', serif;
    color: #f5e6cc;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.3;
}

.promo-text {
    color: #c8a882;
    font-size: 0.75rem;
    line-height: 1.5;
    opacity: 0.85;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Price and quantity row */
.promo-content > .d-flex.justify-content-between.align-items-center {
    gap: 12px;
    align-items: center;
}

/* Price block */
.promo-price {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.15), rgba(92, 46, 10, 0.20));
    padding: 6px 12px;
    border-radius: 8px;
    flex-shrink: 0;
}

.promo-price .price-label {
    color: #c8a882;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
    margin-bottom: 2px;
    display: block;
}

.promo-price .price-amount {
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.2;
    white-space: nowrap;
}

/* Quantity controls */
.promo-quantity {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.promo-quantity .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: auto;
    height: 32px;
}

.btn-promo-minus,
.btn-promo-plus {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    line-height: 1;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
    box-shadow: none;
}

.btn-promo-minus {
    border-radius: 7px 0 0 7px;
}

.btn-promo-plus {
    border-radius: 0 7px 7px 0;
}

.btn-promo-minus:hover,
.btn-promo-plus:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
}

.promo-quantity-input {
    flex: 0 0 40px;
    width: 40px !important;
    min-width: 40px;
    height: 32px;
    padding: 0;
    text-align: center;
    font-size: 0.85rem;
    font-weight: 700;
    border-radius: 0;
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    border-top: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-bottom: 1px solid rgba(160, 82, 45, 0.4) !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
    outline: none;
}

.promo-quantity-input:focus {
    background-color: #2b1a0a !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

/* Total price */
.promo-total {
    background: linear-gradient(135deg, rgba(139, 69, 19, 0.12), rgba(92, 46, 10, 0.18));
    padding: 7px 12px;
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.promo-total span:first-child {
    color: #c8a882;
    font-size: 0.72rem;
    opacity: 0.85;
}

.promo-total .total-price {
    color: #ffffff;
    font-size: 0.92rem;
    font-weight: 700;
}

/* Quick add button */
.btn-promo-quick {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 6px rgba(224, 92, 0, 0.4);
}

.btn-promo-quick:hover {
    color: #ffffff;
    transform: scale(1.1) rotate(90deg);
    box-shadow: 0 4px 10px rgba(224, 92, 0, 0.6);
}

/* Order button */
.btn-promo-order {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-top: auto;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #ffffff;
    background: linear-gradient(135deg, #e05c00, #ff8c42);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    box-shadow: 0 3px 10px rgba(224, 92, 0, 0.3);
}

.btn-promo-order::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, transparent 60%);
    border-radius: 8px;
    pointer-events: none;
}

.btn-promo-order:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #ff8c42, #e05c00);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(224, 92, 0, 0.45);
}

.btn-promo-order i {
    color: #ffffff;
    font-size: 0.72rem;
}

/* Focus states */
.btn-promo-quick:focus,
.btn-promo-minus:focus,
.btn-promo-plus:focus,
.btn-promo-order:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(160, 82, 45, 0.5);
}

/* ============================================================
   CARD ANIMATIONS
   ============================================================ */
@keyframes promoCardFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.promo-card {
    animation: promoCardFadeIn 0.5s ease-out both;
}

.promo-row .col-auto:nth-child(1) .promo-card { animation-delay: 0.05s; }
.promo-row .col-auto:nth-child(2) .promo-card { animation-delay: 0.12s; }
.promo-row .col-auto:nth-child(3) .promo-card { animation-delay: 0.19s; }

/* ============================================================
   RESPONSIVE DESIGN
   ============================================================ */
@media (max-width: 1400px) {
    .menu-section-promo { padding: 50px 0; }
    .menu-section-promo .container-fluid { padding-left: 30px; padding-right: 30px; }
    .promo-row { padding: 10px 30px; }
}

@media (max-width: 1200px) {
    .promo-card {
        width: 300px !important;
        min-width: 300px !important;
        max-width: 300px !important;
    }
    .promo-row { gap: 20px; }
}

@media (max-width: 992px) {
    .menu-section-promo { padding: 40px 0; }
    .promo-card {
        width: 280px !important;
        min-width: 280px !important;
        max-width: 280px !important;
    }
    .promo-row {
        padding: 10px 25px;
        justify-content: flex-start;
        gap: 20px;
    }
}

@media (max-width: 768px) {
    .menu-section-promo { padding: 30px 0; }
    .menu-section-promo .container-fluid { padding-left: 20px; padding-right: 20px; }
    .promo-row {
        padding: 10px 20px;
        gap: 16px;
    }
    .promo-card {
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
    }
    .menu-section-promo .section-title { font-size: 1.75rem; }
}

@media (max-width: 576px) {
    .menu-section-promo { padding: 20px 0; }
    .menu-section-promo .container-fluid { padding-left: 16px; padding-right: 16px; }
    .promo-row {
        padding: 10px 16px;
        gap: 14px;
    }
    .promo-card {
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
    }
    .menu-section-promo .section-title { font-size: 1.5rem; }
}




/* SECTION GARANSI */
/* CSS untuk Section Garansi */
.garansi-section {
    background: linear-gradient(135deg, #1a0f0a 0%, #2c1810 100%);
    min-height: 100vh;
    position: relative;
    overflow: hidden;
}

/* Background Pattern */
.garansi-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 20% 80%, rgba(255, 140, 66, 0.05) 2px, transparent 2px),
        radial-gradient(circle at 40% 20%, rgba(255, 140, 66, 0.05) 3px, transparent 3px),
        radial-gradient(circle at 80% 50%, rgba(255, 140, 66, 0.05) 2px, transparent 2px);
    background-size: 300px 300px, 400px 400px, 250px 250px;
    opacity: 0.3;
    pointer-events: none;
}

/* Header */
.garansi-header {
    background: linear-gradient(135deg, rgba(58, 26, 4, 0.95), rgba(44, 24, 16, 0.95));
    border: 3px solid #D2691E;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    position: relative;
    overflow: hidden;
}

.garansi-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #D2691E, #FF8C42, #D2691E);
}

/* Garansi Card */
.garansi-card {
    background: linear-gradient(145deg, #3A1A04 0%, #2C1810 100%);
    border: 2px solid #D2691E;
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 8px 20px rgba(26, 15, 10, 0.5);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.garansi-card:hover {
    transform: translateY(-8px);
    border-color: #FF8C42;
    box-shadow: 
        0 15px 35px rgba(26, 15, 10, 0.6),
        0 8px 20px rgba(255, 140, 66, 0.3);
}

.garansi-card-header {
    background: rgba(58, 26, 4, 0.9);
    padding: 25px 25px 15px;
    border-bottom: 2px solid #D2691E;
    position: relative;
}

.garansi-card-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #FF8C42, #D2691E);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    box-shadow: 0 4px 12px rgba(255, 140, 66, 0.3);
}

.garansi-card-icon i {
    font-size: 1.8rem;
    color: white;
}

.garansi-card-title {
    color: #FFFFFF;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.garansi-card-body {
    padding: 20px 25px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.garansi-card-text {
    color: #E6D5B8;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
    flex-grow: 1;
}

/* Weather Card Specific */
.weather-card .garansi-card-body {
    display: flex;
    align-items: center;
    justify-content: center;
}

.weather-info {
    text-align: center;
}

.temperature {
    color: #FF8C42 !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Footer */
.garansi-footer {
    background: linear-gradient(135deg, rgba(58, 26, 4, 0.95), rgba(44, 24, 16, 0.95));
    border: 2px solid #D2691E;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* Animation */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.garansi-card {
    animation: fadeInUp 0.5s ease forwards;
    opacity: 0;
}

.garansi-card:nth-child(1) { animation-delay: 0.1s; }
.garansi-card:nth-child(2) { animation-delay: 0.2s; }
.garansi-card:nth-child(3) { animation-delay: 0.3s; }
.garansi-card:nth-child(4) { animation-delay: 0.4s; }
.garansi-card:nth-child(5) { animation-delay: 0.5s; }
.garansi-card:nth-child(6) { animation-delay: 0.6s; }
.garansi-card:nth-child(7) { animation-delay: 0.7s; }
.garansi-card:nth-child(8) { animation-delay: 0.8s; }
.garansi-card:nth-child(9) { animation-delay: 0.9s; }
.garansi-card:nth-child(10) { animation-delay: 1s; }

/* Responsive */
@media (max-width: 768px) {
    .garansi-header {
        padding: 30px 20px !important;
    }
    
    .garansi-title {
        font-size: 2.5rem;
    }
    
    .garansi-card {
        margin-bottom: 20px;
    }
    
    .garansi-card-header {
        padding: 20px 20px 12px;
    }
    
    .garansi-card-body {
        padding: 15px 20px;
    }
}

@media (max-width: 576px) {
    .garansi-title {
        font-size: 2rem;
    }
    
    .garansi-subtitle {
        font-size: 1rem;
    }
    
    .garansi-card-icon {
        width: 50px;
        height: 50px;
    }
    
    .garansi-card-icon i {
        font-size: 1.5rem;
    }
    
    .garansi-card-title {
        font-size: 1.1rem;
    }
    
    .temperature {
        font-size: 3.5rem !important;
    }
}


   

/* ========================================
   MODAL STYLES
   ======================================== */
/* ================================================================
   CART MODAL — cart-modal.css
   Warung Bakakak Sampurasun
   ================================================================ */


/* ================================================================
   1. MODAL WRAPPER & DIALOG
   ================================================================ */

#cartModal {
    overflow-y: auto;
    padding-top: 0;
    padding-bottom: 0;
}

#cartModal .modal-dialog.modal-dialog-scrollable {
    max-width: 780px;
    width: 100%;
    margin: 40px auto 20px;
    height: auto;
    min-height: unset;
    max-height: none;
    display: flex;
    flex-direction: column;
}

/* Reset Bootstrap scrollable constraint */
#cartModal .modal-dialog-scrollable .modal-content {
    max-height: none;
    overflow: hidden;
}

#cartModal .modal-content {
    background: linear-gradient(180deg, #1e0f07 0%, #150a04 100%);
    border: 2px solid var(--secondary, #D2691E);
    border-radius: 20px;
    color: var(--text-white, #fff);
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 60px);
    height: auto;
    overflow: hidden;
}

/* Reset Bootstrap scrollable header/footer override */
#cartModal .modal-dialog-scrollable .modal-header,
#cartModal .modal-dialog-scrollable .modal-footer {
    overflow: visible;
    flex-shrink: 0;
}

/* Reset Bootstrap scrollable body override */
#cartModal .modal-dialog-scrollable .modal-body {
    overflow-y: auto;
    max-height: none;
}


/* ================================================================
   2. HEADER
   ================================================================ */

#cartModal .modal-header {
    background: linear-gradient(135deg, var(--section-medium, #2c1810) 0%, var(--section-dark, #1a0d08) 100%);
    border-bottom: 2px solid var(--secondary-dark, #8B4513);
    padding: 16px 22px;
    flex-shrink: 0;
    flex-grow: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    border-radius: 18px 18px 0 0;
}

#cartModal .modal-title {
    color: var(--text-cream, #FFF8F0);
    font-size: 1.25rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    flex: 1;
}

#cartModal .modal-title i {
    color: var(--secondary-light, #FF8C42);
}

.cart-header-summary {
    display: flex;
    align-items: center;
}

.cart-header-summary .badge {
    background: linear-gradient(135deg, var(--secondary-light, #FF8C42), var(--secondary, #D2691E));
    color: #fff;
    padding: 7px 16px;
    border-radius: 20px;
    font-size: 0.82rem;
    font-weight: 700;
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
    opacity: 0.75;
    flex-shrink: 0;
    transition: opacity 0.2s, transform 0.2s;
}

.btn-close:hover {
    opacity: 1;
    transform: scale(1.1);
}


/* ================================================================
   3. BODY — scrollable
   ================================================================ */

#cartModal .modal-body {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    max-height: none;
    padding: 20px 22px;
    scrollbar-width: thin;
    scrollbar-color: var(--secondary, #D2691E) #1a0d08;
}

#cartModal .modal-body::-webkit-scrollbar { width: 6px; }
#cartModal .modal-body::-webkit-scrollbar-track { background: #1a0d08; }
#cartModal .modal-body::-webkit-scrollbar-thumb {
    background: var(--secondary, #D2691E);
    border-radius: 3px;
}


/* ================================================================
   4. FOOTER — sticky
   ================================================================ */

#cartModal .modal-footer {
    background: rgba(26, 13, 8, 0.97);
    border-top: 2px solid rgba(210, 105, 30, 0.35);
    padding: 14px 22px;
    flex-shrink: 0;
    flex-grow: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: nowrap;
    border-radius: 0 0 18px 18px;
}


/* ================================================================
   5. FORM DATA PELANGGAN
   ================================================================ */

.customer-form {
    background: rgba(44, 24, 16, 0.55);
    border: 1px solid rgba(210, 105, 30, 0.3);
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 18px;
}

.customer-form h6 {
    color: var(--secondary-light, #FF8C42);
    font-size: 0.92rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(210, 105, 30, 0.25);
    margin-bottom: 16px;
}

/* Label — override Bootstrap .text-muted */
#cartModal .form-label {
    color: var(--text-cream, #FFF8F0) !important;
    font-size: 0.82rem;
    font-weight: 600;
    margin-bottom: 6px;
}

/*
 * INPUT FIX — root cause: Bootstrap .bg-dark sets background-color: #212529
 * yang lebih spesifik dari selector sebelumnya.
 * Solusi: gunakan !important + selector lebih spesifik untuk kalahkan Bootstrap.
 */
#cartModal .form-control,
#cartModal .form-control.bg-dark,
#cartModal input.form-control,
#cartModal textarea.form-control {
    background-color: rgba(15, 6, 2, 0.85) !important;
    background: rgba(15, 6, 2, 0.85) !important;
    border: 1.5px solid rgba(210, 105, 30, 0.3) !important;
    color: #ffffff !important;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.87rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}

#cartModal .form-control:focus,
#cartModal .form-control.bg-dark:focus,
#cartModal input.form-control:focus,
#cartModal textarea.form-control:focus {
    background-color: rgba(20, 8, 2, 0.9) !important;
    background: rgba(20, 8, 2, 0.9) !important;
    border-color: var(--secondary-light, #FF8C42) !important;
    box-shadow: 0 0 0 3px rgba(255, 140, 66, 0.18) !important;
    color: #ffffff !important;
    outline: none;
}

#cartModal .form-control::placeholder,
#cartModal input.form-control::placeholder,
#cartModal textarea.form-control::placeholder {
    color: rgba(255, 255, 255, 0.35) !important;
}

#cartModal .form-control:disabled,
#cartModal textarea.form-control:disabled {
    background-color: rgba(15, 6, 2, 0.5) !important;
    background: rgba(15, 6, 2, 0.5) !important;
    color: rgba(255, 255, 255, 0.3) !important;
    border-color: rgba(210, 105, 30, 0.15) !important;
    cursor: not-allowed;
}

/* Radio buttons */
#cartModal .form-check {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 10px;
    border: 1.5px solid rgba(210, 105, 30, 0.25);
    transition: all 0.2s;
    margin-bottom: 0;
}

#cartModal .form-check:has(.form-check-input:checked) {
    background: rgba(255, 140, 66, 0.12);
    border-color: var(--secondary-light, #FF8C42);
}

#cartModal .form-check-input {
    accent-color: var(--secondary-light, #FF8C42);
    width: 16px;
    height: 16px;
    cursor: pointer;
}

#cartModal .form-check-label {
    color: var(--text-cream, #FFF8F0) !important;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
}

#cartModal .form-text {
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.75rem;
    margin-top: 5px;
}

#cartModal hr {
    border-color: rgba(210, 105, 30, 0.2);
    margin: 16px 0;
}


/* ================================================================
   6. DETAIL PESANAN — judul & empty state
   ================================================================ */

#cartModal h6.fw-bold {
    color: var(--text-white, #fff);
}

#cartModal h6.fw-bold .text-muted,
#cartModal h6.fw-bold small {
    color: rgba(255, 255, 255, 0.45);
}

.empty-cart-state {
    text-align: center;
    padding: 40px 20px;
}

.empty-cart-state i {
    font-size: 3rem;
    color: rgba(255, 255, 255, 0.2);
    margin-bottom: 12px;
    display: block;
}

.empty-cart-state p {
    color: var(--text-cream, #FFF8F0);
    font-weight: 600;
    margin-bottom: 4px;
}

.empty-cart-state small {
    color: rgba(255, 255, 255, 0.4);
}


/* ================================================================
   7. CART ITEM ROW
   ================================================================ */

.cart-item {
    background: rgba(44, 24, 16, 0.5);
    border: 1px solid rgba(210, 105, 30, 0.2);
    border-left: 4px solid var(--secondary, #D2691E);
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 14px;
    transition: all 0.25s ease;
    animation: slideInItem 0.3s ease;
}

@keyframes slideInItem {
    from { opacity: 0; transform: translateX(-12px); }
    to   { opacity: 1; transform: translateX(0); }
}

.cart-item:hover {
    background: rgba(44, 24, 16, 0.8);
    border-color: rgba(210, 105, 30, 0.4);
    transform: translateX(4px);
}

.cart-item-name {
    color: var(--text-white, #fff);
    font-weight: 700;
    font-size: 0.92rem;
    margin-bottom: 3px;
}

.cart-item-price {
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.78rem;
}

/* Quantity buttons */
.btn-quantity,
.btn-cart-minus,
.btn-cart-plus {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1.5px solid var(--secondary, #D2691E);
    background: transparent;
    color: var(--secondary-light, #FF8C42);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
    font-weight: 700;
}

.btn-quantity:hover,
.btn-cart-minus:hover,
.btn-cart-plus:hover {
    background: var(--secondary, #D2691E);
    color: #fff;
}

.cart-item-quantity {
    color: var(--text-white, #fff);
    font-weight: 700;
    font-size: 1rem;
    min-width: 28px;
    text-align: center;
}

.cart-item-total {
    color: var(--secondary-light, #FF8C42);
    font-weight: 800;
    font-size: 0.95rem;
    min-width: 90px;
    text-align: right;
}

.btn-remove-item,
.btn-cart-remove {
    background: transparent;
    border: 1.5px solid rgba(220, 53, 69, 0.45);
    color: rgba(220, 53, 69, 0.7);
    border-radius: 8px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 0.82rem;
    flex-shrink: 0;
}

.btn-remove-item:hover,
.btn-cart-remove:hover {
    background: #dc3545;
    color: #fff;
    border-color: #dc3545;
}


/* ================================================================
   8. RINCIAN HARGA
   ================================================================ */

.cart-summary-box {
    background: rgba(15, 6, 2, 0.8);
    border: 1px solid rgba(210, 105, 30, 0.3);
    border-radius: 14px;
    padding: 16px 20px;
    margin-bottom: 14px;
}

#cartModal .cart-summary-box .text-muted {
    color: rgba(255, 255, 255, 0.5) !important;
    font-size: 0.87rem;
}

#cartModal #cart-subtotal,
#cartModal #cart-delivery,
#cartModal .text-orange {
    color: var(--secondary-light, #FF8C42);
    font-weight: 600;
}

#cartModal #cart-grand-total-modal {
    color: var(--secondary-light, #FF8C42);
    font-weight: 800;
    font-size: 1.2rem;
}

#cartModal .cart-summary-box .border-top {
    border-color: rgba(210, 105, 30, 0.25) !important;
}

#cartModal .alert-info {
    background: rgba(23, 162, 184, 0.08);
    border: 1px solid rgba(23, 162, 184, 0.3);
    border-radius: 10px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.78rem;
    padding: 12px 16px;
}


/* ================================================================
   9. TOMBOL FOOTER
   ================================================================ */

/* Kosongkan */
#cartModal #reset-cart-btn,
#reset-cart-btn,
.btn-cart-reset {
    background: rgba(44, 24, 16, 0.9) !important;
    border: 1.5px solid var(--secondary, #D2691E) !important;
    color: var(--text-cream, #FFF8F0) !important;
    padding: 10px 18px !important;
    border-radius: 10px !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    transition: all 0.2s !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}

#cartModal #reset-cart-btn:hover,
#reset-cart-btn:hover,
.btn-cart-reset:hover {
    background: var(--section-light, #3c1e0f) !important;
    border-color: var(--secondary-light, #FF8C42) !important;
    color: var(--text-white, #fff) !important;
    transform: translateY(-1px) !important;
}

/* Tutup */
#cartModal .modal-footer .btn-secondary,
.btn-cart-close,
[data-bs-dismiss="modal"].btn-secondary {
    background: rgba(44, 24, 16, 0.9) !important;
    border: 1.5px solid var(--secondary, #D2691E) !important;
    color: var(--text-cream, #FFF8F0) !important;
    padding: 10px 18px !important;
    border-radius: 10px !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    transition: all 0.2s !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}

#cartModal .modal-footer .btn-secondary:hover,
.btn-cart-close:hover,
[data-bs-dismiss="modal"].btn-secondary:hover {
    background: var(--section-light, #3c1e0f) !important;
    border-color: var(--secondary-light, #FF8C42) !important;
    color: var(--text-white, #fff) !important;
    transform: translateY(-1px) !important;
}

/* Kirim ke WhatsApp */
#cartModal #whatsapp-btn,
#whatsapp-btn {
    flex: 1 !important;
    background: linear-gradient(135deg, #25D366 0%, #128C7E 100%) !important;
    border: none !important;
    color: #fff !important;
    padding: 12px 20px !important;
    border-radius: 10px !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    transition: all 0.25s !important;
    letter-spacing: 0.3px !important;
}

#cartModal #whatsapp-btn:hover:not(:disabled),
#whatsapp-btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #128C7E 0%, #25D366 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(37, 211, 102, 0.4) !important;
}

#cartModal #whatsapp-btn:disabled,
#whatsapp-btn:disabled {
    background: #3a3a3a !important;
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}


/* ================================================================
   10. RESPONSIVE — TABLET & MOBILE
   ================================================================ */

@media (max-width: 768px) {
    #cartModal .modal-dialog {
        margin: 8px;
        height: calc(100vh - 16px);
    }

    #cartModal .modal-header { padding: 14px 16px; }
    #cartModal .modal-body   { padding: 14px 16px; }
    #cartModal .modal-footer {
        padding: 12px 16px;
        flex-wrap: wrap;
        gap: 10px;
    }

    #cartModal .modal-title { font-size: 1.1rem; }

    /* Footer: Kosongkan & Tutup full width berdampingan */
    #reset-cart-btn,
    .btn-cart-reset,
    .btn-cart-close,
    [data-bs-dismiss="modal"].btn-secondary {
        flex: 1 !important;
        justify-content: center !important;
        min-width: 0 !important;
    }

    /* WhatsApp button full width di atas */
    #whatsapp-btn {
        flex: 0 0 100% !important;
        order: -1 !important;
    }

    /* Cart item wrap di mobile */
    .cart-item {
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    .cart-item-info   { flex: 1 0 calc(100% - 80px) !important; }
    .cart-item-total  { flex: 1 !important; text-align: left !important; min-width: 0 !important; }
    .qty-control-wrap,
    .cart-item-controls { order: 3 !important; }
    .btn-remove-item,
    .btn-cart-remove  { order: 4 !important; }
}

@media (max-width: 480px) {
    /* Sembunyikan badge header di HP kecil, info sudah ada di body */
    .cart-header-summary { display: none; }

    #cartModal .modal-title  { font-size: 1rem; }
    .customer-form           { padding: 14px !important; }
    .cart-item               { padding: 12px !important; }
}



/* FOOTER SECTION - LATAR BELAKANG COKLAT DENGAN TEKS PUTIH */
.footer-section {
    background: linear-gradient(135deg, #2C1810 0%, #1A0F0A 100%) !important;
    border-top: 3px solid #D2691E;
    position: relative;
    overflow: hidden;
}

/* Background Pattern yang lebih subtle */
.footer-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 15% 85%, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        radial-gradient(circle at 85% 15%, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: 300px 300px, 250px 250px;
    opacity: 0.3;
    pointer-events: none;
}

/* Container Padding */
.footer-section .container {
    position: relative;
    z-index: 1;
}

/* HEADINGS - PUTIH DENGAN EFEK GLOW */
.footer-section h5 {
    color: #FFFFFF;
    font-size: 1.3rem;
    font-weight: 700;
    padding-bottom: 12px;
    border-bottom: 2px solid #FF8C42;
    display: inline-block;
    margin-bottom: 25px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    letter-spacing: 0.5px;
}

/* SEMUA TEKS PUTIH */
.footer-section p,
.footer-section .small,
.footer-section .list-unstyled li {
    color: #FFFFFF !important;
    opacity: 0.95;
}

/* Paragraf dengan line height yang nyaman */
.footer-section p {
    line-height: 1.7;
    font-size: 1rem;
    opacity: 0.9;
}

/* LIST ITEMS - PUTIH DENGAN ICON NATURAL */
.footer-section .list-unstyled {
    padding-left: 0;
}

.footer-section .list-unstyled li {
    margin-bottom: 14px;
    padding-left: 32px;
    position: relative;
    font-size: 1rem;
    line-height: 1.5;
    transition: all 0.3s ease;
}

/* ICON DENGAN WARNA NATURAL (BIAR ESTETIK) */
.footer-section .list-unstyled li i {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2rem;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Instagram - Warna Natural Pink */
.footer-section .list-unstyled li i.bi-instagram {
    color: #E4405F;
}

/* Facebook - Warna Natural Blue */
.footer-section .list-unstyled li i.bi-facebook {
    color: #1877F2;
}

/* WhatsApp - Warna Natural Green */
.footer-section .list-unstyled li i.bi-whatsapp {
    color: #25D366;
}

/* Location Icon - Warna Natural */
.footer-section .list-unstyled li i.bi-geo-alt {
    color: #FF6B6B;
}

/* Phone Icon - Warna Natural */
.footer-section .list-unstyled li i.bi-telephone {
    color: #4ECDC4;
}

/* Clock Icon untuk Jam Operasional */
.footer-section .list-unstyled li i.bi-clock {
    color: #FFD93D;
}

/* Calendar Icon untuk Hari Libur */
.footer-section .list-unstyled li i.bi-calendar-event {
    color: #6BCF7F;
}

/* SOCIAL LINKS - ICON NATURAL */
.social-links {
    display: flex;
    gap: 18px;
    margin-top: 25px;
}

.social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    color: white !important;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 1.3rem;
    position: relative;
    overflow: hidden;
}

/* Hover effect untuk social links */
.social-links a:hover {
    transform: translateY(-5px) scale(1.1);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
    border-color: rgba(255, 255, 255, 0.4);
}

/* Instagram hover */
.social-links a:hover .bi-instagram {
    color: #E4405F;
    transform: scale(1.2);
}

/* Facebook hover */
.social-links a:hover .bi-facebook {
    color: #1877F2;
    transform: scale(1.2);
}

/* WhatsApp hover */
.social-links a:hover .bi-whatsapp {
    color: #25D366;
    transform: scale(1.2);
}

/* HORIZONTAL LINE */
.footer-section hr {
    border-color: rgba(255, 255, 255, 0.2) !important;
    opacity: 0.3;
    margin: 3rem 0;
    height: 1px;
}

/* COPYRIGHT SECTION */
.footer-section .text-center p {
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 0.95rem;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    letter-spacing: 0.3px;
}

/* HOVER EFFECTS UNTUK LIST ITEMS */
.footer-section .list-unstyled li:hover {
    transform: translateX(8px);
    opacity: 1;
}

.footer-section .list-unstyled li:hover i {
    transform: translateY(-50%) scale(1.2);
}

/* Jam Operasional - styling khusus */
.footer-section .col-md-4:nth-child(2) .list-unstyled li {
    padding-left: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.footer-section .col-md-4:nth-child(2) .list-unstyled li i {
    position: static;
    transform: none;
}

/* ANIMATIONS */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.footer-section .col-md-4 {
    animation: fadeInUp 0.6s ease forwards;
    opacity: 0;
}

.footer-section .col-md-4:nth-child(1) { animation-delay: 0.1s; }
.footer-section .col-md-4:nth-child(2) { animation-delay: 0.2s; }
.footer-section .col-md-4:nth-child(3) { animation-delay: 0.3s; }

/* RESPONSIVE DESIGN */
@media (max-width: 768px) {
    .footer-section {
        padding: 50px 0 !important;
    }
    
    .footer-section .col-md-4 {
        margin-bottom: 35px;
    }
    
    .footer-section h5 {
        font-size: 1.2rem;
        margin-bottom: 20px;
    }
    
    .social-links {
        justify-content: flex-start;
    }
    
    .social-links a {
        width: 44px;
        height: 44px;
        font-size: 1.2rem;
    }
}

@media (max-width: 576px) {
    .footer-section {
        text-align: center;
        padding: 40px 0 !important;
    }
    
    .footer-section .list-unstyled li {
        padding-left: 0;
        text-align: center;
        justify-content: center;
    }
    
    .footer-section .list-unstyled li i {
        position: static;
        display: inline-block;
        margin-right: 8px;
        margin-bottom: 0;
    }
    
    .social-links {
        justify-content: center;
        gap: 15px;
    }
    
    .footer-section h5 {
        border-bottom: none;
        padding-bottom: 0;
        margin-bottom: 15px;
    }
    
    .footer-section .col-md-4:nth-child(2) .list-unstyled li {
        justify-content: center;
    }
}

/* DECORATIVE ELEMENTS */
.footer-section::after {
    content: '';
    position: absolute;
    top: -40px;
    left: 0;
    right: 0;
    height: 40px;
    background: linear-gradient(to top, rgba(44, 24, 16, 1), rgba(44, 24, 16, 0));
    pointer-events: none;
}

/* Restaurant name styling */
.footer-section h5.fw-bold:first-of-type {
    font-size: 1.4rem;
    letter-spacing: 1px;
    position: relative;
    padding-left: 40px;
}

.footer-section h5.fw-bold:first-of-type::before {
    content: '🍗';
    position: absolute;
    left: 0;
    top: -2px;
    font-size: 2rem;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

/* Special effect for working hours */
.footer-section .col-md-4:nth-child(2) .list-unstyled li:nth-child(1) { opacity: 1; }
.footer-section .col-md-4:nth-child(2) .list-unstyled li:nth-child(2) { opacity: 0.9; }
.footer-section .col-md-4:nth-child(2) .list-unstyled li:nth-child(3) { opacity: 0.8; }

/* Smooth transitions */
.footer-section * {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Add to existing CSS file */
.btn-success {
    background: linear-gradient(135deg, #28a745, #20c997) !important;
    border-color: #28a745 !important;
}

/* Button loading state */
.btn-loading {
    position: relative;
    color: transparent !important;
}

.btn-loading::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid #ffffff;
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Cart item highlight */
.cart-item.highlight {
    background: rgba(255, 140, 66, 0.1);
    border-color: #FF8C42;
    box-shadow: 0 0 10px rgba(255, 140, 66, 0.3);
}


/* Tambahkan ini ke menu.css */

/* ============================================================
   CART MODAL — KERANJANG PESANAN
   Desktop only — no responsive breakpoints
   Disesuaikan dengan struktur HTML & JS renderCartItems()
   ============================================================ */

/* =====================
   Z-INDEX
   ===================== */
#cartModal { z-index: 1100 !important; }
.modal-backdrop { z-index: 1099 !important; }

/* =====================
   MODAL DIALOG — FIXED, TIDAK IKUT SCROLL HALAMAN
   ===================== */
#cartModal .modal-dialog {
    max-width: 700px;
    width: 700px;
    position: fixed !important;
    top: 90px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    max-height: calc(100vh - 110px);
    display: flex;
    flex-direction: column;
}

#cartModal .modal-dialog.modal-dialog-scrollable {
    max-height: calc(100vh - 110px) !important;
}

#cartModal .modal-dialog.modal-dialog-scrollable .modal-content {
    overflow: hidden !important;
    max-height: calc(100vh - 110px) !important;
}

/* =====================
   MODAL CONTENT — FLEX COLUMN
   ===================== */
#cartModal .modal-content.cart-modal {
    background: linear-gradient(160deg, #2a1508 0%, #1a0d05 100%);
    border: 1.5px solid #c07040 !important;
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 110px);
    box-shadow:
        0 30px 80px rgba(0,0,0,0.7),
        0 0 40px rgba(160,82,45,0.15),
        inset 0 1px 0 rgba(255,255,255,0.05);
}

/* =====================
   MODAL HEADER — TIDAK SCROLL
   ===================== */
#cartModal .modal-header.cart-modal-header {
    background: linear-gradient(135deg, #3d1f08 0%, #2a1508 100%);
    border-bottom: 2px solid #c07040 !important;
    padding: 18px 24px;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
    flex-grow: 0;
}

#cartModal .modal-header.cart-modal-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #ff8c42, #e05c00, #ff8c42, transparent);
}

#cartModal .modal-title {
    font-family: 'Playfair Display', serif;
    color: #ffffff !important;
    font-size: 1.15rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

#cartModal .modal-title i { color: #ff8c42 !important; }

#cartModal .cart-header-summary .badge {
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #ffffff !important;
    font-size: 0.82rem;
    font-weight: 600;
    border-radius: 20px;
    padding: 7px 16px;
    letter-spacing: 0.3px;
    box-shadow: 0 3px 10px rgba(224,92,0,0.4);
}

#cartModal .btn-close {
    filter: invert(1) !important;
    opacity: 0.7;
    transition: opacity 0.2s ease;
}
#cartModal .btn-close:hover { opacity: 1; }

/* =====================
   MODAL BODY — HANYA INI YANG SCROLL
   ===================== */
#cartModal .modal-body.cart-modal-body {
    background: transparent;
    padding: 20px 24px;
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
}

#cartModal .modal-body::-webkit-scrollbar { width: 5px; }
#cartModal .modal-body::-webkit-scrollbar-track {
    background: rgba(160,82,45,0.08);
    border-radius: 10px;
}
#cartModal .modal-body::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #e05c00, #c07040);
    border-radius: 10px;
}
#cartModal .modal-body::-webkit-scrollbar-thumb:hover { background: #ff8c42; }

/* =====================
   FORM DATA PELANGGAN
   ===================== */
#cartModal .customer-form {
    background: linear-gradient(135deg, rgba(61,32,16,0.6), rgba(46,22,8,0.8));
    border: 1px solid rgba(192,112,64,0.4) !important;
    border-radius: 14px;
    padding: 18px;
    margin-bottom: 18px;
}

#cartModal .customer-form h6 {
    color: #ff8c42 !important;
    font-family: 'Playfair Display', serif;
    font-size: 0.92rem;
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid rgba(192,112,64,0.3) !important;
    display: flex;
    align-items: center;
    gap: 8px;
}

#cartModal .customer-form h6 i { color: #ff8c42 !important; }

#cartModal .form-label {
    color: #ffffff !important;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 6px;
}

#cartModal .form-control {
    background: rgba(20,10,4,0.7) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 1px solid rgba(192,112,64,0.4) !important;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.88rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#cartModal .form-control::placeholder {
    color: rgba(255,255,255,0.25) !important;
    -webkit-text-fill-color: rgba(255,255,255,0.25) !important;
}

#cartModal .form-control:focus {
    background: rgba(30,15,5,0.9) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: #e05c00 !important;
    box-shadow: 0 0 0 3px rgba(224,92,0,0.2) !important;
    outline: none;
}

#cartModal .form-control:disabled {
    background: rgba(20,10,4,0.3) !important;
    color: rgba(255,255,255,0.2) !important;
    -webkit-text-fill-color: rgba(255,255,255,0.2) !important;
    border-color: rgba(192,112,64,0.15) !important;
    cursor: not-allowed;
}

/* Radio pills */
#cartModal .form-check {
    padding: 10px 16px;
    background: rgba(20,10,4,0.5);
    border: 1.5px solid rgba(192,112,64,0.3) !important;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 150px;
}

#cartModal .form-check:has(input:checked) {
    background: rgba(224,92,0,0.15);
    border-color: #e05c00 !important;
    box-shadow: 0 0 12px rgba(224,92,0,0.15);
}

#cartModal .form-check-input {
    background-color: transparent !important;
    border: 2px solid rgba(192,112,64,0.6) !important;
    width: 16px;
    height: 16px;
    margin: 0;
    flex-shrink: 0;
    cursor: pointer;
}

#cartModal .form-check-input:checked {
    background-color: #e05c00 !important;
    border-color: #e05c00 !important;
}

#cartModal .form-check-input:focus {
    box-shadow: 0 0 0 3px rgba(224,92,0,0.25) !important;
}

#cartModal .form-check-label {
    color: #ffffff !important;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

#cartModal .form-check-label i { color: #ff8c42 !important; }

#cartModal .form-text {
    color: rgba(255,140,66,0.7) !important;
    font-size: 0.72rem;
}

/* =====================
   DIVIDER
   ===================== */
#cartModal hr {
    border-color: rgba(192,112,64,0.25) !important;
    margin: 16px 0;
    opacity: 1;
}

/* =====================
   HEADING "Detail Pesanan"
   ===================== */
#cartModal .modal-body > h6 {
    color: #ffffff !important;
    font-family: 'Playfair Display', serif;
    font-size: 0.92rem;
    font-weight: 700;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

#cartModal .modal-body > h6 i { color: #ff8c42 !important; }

#cartModal .modal-body > h6 small {
    color: rgba(255,255,255,0.45) !important;
    font-size: 0.78rem;
    font-weight: 400;
}

/* =====================
   CART ITEMS CONTAINER
   ===================== */
#cartModal .cart-items-container {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(192,112,64,0.2) !important;
    background: rgba(20,10,4,0.3);
    margin-bottom: 16px;
}

/* Empty state */
#cartModal .empty-cart-state {
    padding: 36px 20px;
    text-align: center;
}

#cartModal .empty-cart-state i {
    font-size: 3rem;
    color: rgba(192,112,64,0.3) !important;
    display: block;
    margin-bottom: 10px;
}

#cartModal .empty-cart-state p {
    color: #ffffff !important;
    font-size: 0.92rem;
    font-weight: 600;
    margin-bottom: 4px;
}

#cartModal .empty-cart-state small {
    color: rgba(255,255,255,0.4) !important;
    font-size: 0.76rem;
}

/* =====================================================================
   CART ITEM — LAYOUT FINAL
   ===================================================================== */

/* Container item */
#cartModal .cart-item {
    margin: 0 !important;
    padding: 12px 14px !important;
    border-bottom: 1px solid rgba(192,112,64,0.15) !important;
    border-radius: 0 !important;
    background: rgba(255,140,66,0.04) !important;
    transition: background 0.2s ease !important;
    display: grid !important;
    grid-template-columns: 1fr auto 108px !important;
    align-items: center !important;
    gap: 10px !important;
}

#cartModal .cart-item:last-child { border-bottom: none !important; }

#cartModal .cart-item:hover {
    background: rgba(255,140,66,0.08) !important;
    transform: none !important;
}

/* ---- RESET: .row dan semua .col tidak boleh bikin layout sendiri ---- */
#cartModal .cart-item .row {
    display: contents !important;
}

/* Semua div col: reset Bootstrap sepenuhnya */
#cartModal .cart-item .row > div {
    all: unset !important;
    display: block !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* ---- Sel 1: col-12 = gambar + nama, flex horizontal ---- */
#cartModal .cart-item .row > div:nth-child(1) {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

#cartModal .cart-item .cart-item-img {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    flex-shrink: 0 !important;
    border-radius: 9px !important;
    overflow: hidden !important;
    border: 1px solid rgba(192,112,64,0.3) !important;
    display: block !important;
}

#cartModal .cart-item .cart-item-img img {
    width: 54px !important;
    height: 54px !important;
    object-fit: cover !important;
    border-radius: 9px !important;
    display: block !important;
}

/* Nama menu */
#cartModal .cart-item h6 {
    color: #ffffff !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    margin-bottom: 2px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* Harga per porsi */
#cartModal .cart-item .text-muted {
    color: rgba(255,255,255,0.45) !important;
    font-size: 0.72rem !important;
    white-space: nowrap !important;
    display: block !important;
}

/* Catatan khusus */
#cartModal .cart-item .text-warning {
    color: #fbbf24 !important;
    font-size: 0.72rem !important;
}

/* ---- Sel 2: qty controls ---- */
#cartModal .cart-item .row > div:nth-child(2) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Tombol - dan + */
#cartModal .cart-item .btn-cart-minus,
#cartModal .cart-item .btn-cart-plus {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, #e05c00, #ff8c42) !important;
    color: #ffffff !important;
    border: none !important;
    font-size: 0.82rem !important;
    transition: background 0.2s ease !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
}

#cartModal .cart-item .btn-cart-minus { border-radius: 7px 0 0 7px !important; }
#cartModal .cart-item .btn-cart-plus  { border-radius: 0 7px 7px 0 !important; }

/* Angka qty */
#cartModal .cart-item span.mx-3 {
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    min-width: 22px !important;
    text-align: center !important;
    margin: 0 5px !important;
    display: inline-block !important;
}

/* ---- Sel 3: harga + hapus ---- */
#cartModal .cart-item .row > div:nth-child(3) {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: center !important;
    gap: 5px !important;
    text-align: right !important;
}

/* Harga total */
#cartModal .cart-item .fw-bold.text-orange {
    color: #ff8c42 !important;
    font-weight: 700 !important;
    font-size: 0.88rem !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
    margin-bottom: 0 !important;
    display: block !important;
}

/* Tombol Hapus */
#cartModal .cart-item .btn-cart-remove {
    background: transparent !important;
    color: #f87171 !important;
    border: 1px solid rgba(248,113,113,0.35) !important;
    border-radius: 7px !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    padding: 3px 8px !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 3px !important;
    white-space: nowrap !important;
    line-height: 1.4 !important;
}

/* =====================
   RINCIAN HARGA — FIXED VERSION
   ===================== */
#cartModal .cart-summary-box {
    background: linear-gradient(135deg, rgba(61,32,16,0.5), rgba(46,22,8,0.7));
    border: 1px solid rgba(192,112,64,0.35) !important;
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: 14px;
}

/* Styling untuk semua baris di rincian harga */
#cartModal .cart-summary-box .row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 0 !important;
    width: 100% !important;
}

#cartModal .cart-summary-box .col-6 {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
}

#cartModal .cart-summary-box .col-6:first-child {
    text-align: left !important;
}

#cartModal .cart-summary-box .col-6:last-child {
    text-align: right !important;
    margin-left: auto !important;
}

/* Warna teks label (Subtotal, PPN, Ongkir) - PUTIH TERANG */
#cartModal .cart-summary-box .text-muted {
    color: rgba(255, 255, 255, 0.9) !important;  /* Lebih terang */
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
    display: inline-block !important;
}

/* Warna angka (Rp) - ORANGE TERANG */
#cartModal .cart-summary-box .text-orange {
    color: #ff8c42 !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    display: inline-block !important;
}

/* Container ongkir - pasting sejajar */
#cartModal #delivery-fee-container,
#cartModal #tax-container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    margin: 8px 0 !important;
}

/* Total dengan garis pembatas */
#cartModal .cart-summary-box .border-top {
    border-color: rgba(255,140,66,0.3) !important;
    margin-top: 12px !important;
    padding-top: 12px !important;
}

#cartModal .cart-summary-box .fw-bold {
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}

#cartModal #cart-grand-total-modal {
    color: #ff8c42 !important;
    font-size: 1.2rem !important;
    font-weight: 800 !important;
    text-shadow: 0 0 10px rgba(255,140,66,0.3);
}

/* =====================
   ALERT INFO
   ===================== */
#cartModal .alert-info {
    background: rgba(14,116,144,0.1);
    border: 1px solid rgba(14,116,144,0.3) !important;
    border-radius: 10px;
    color: #ffffff !important;
    font-size: 0.76rem;
    padding: 10px 14px;
    line-height: 1.5;
}

#cartModal .alert-info i { color: #38bdf8 !important; }

/* =====================
   MODAL FOOTER — TIDAK SCROLL
   ===================== */
#cartModal .modal-footer.cart-modal-footer {
    background: linear-gradient(135deg, #3d1f08 0%, #2a1508 100%);
    border-top: 1.5px solid rgba(192,112,64,0.4) !important;
    padding: 14px 24px;
    gap: 10px;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    flex-grow: 0;
}

/* Tombol Kosongkan */
#cartModal #reset-cart-btn {
    background: linear-gradient(135deg, #dc2626, #ef4444);
    color: #ffffff !important;
    border: none;
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 9px 16px;
    transition: all 0.2s ease;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 3px 10px rgba(220,38,38,0.3);
}

/* Tombol Tutup */
#cartModal [data-bs-dismiss="modal"].btn-secondary {
    background: linear-gradient(135deg, rgba(139,69,19,0.7), rgba(192,112,64,0.6));
    color: #ffffff !important;
    border: 1.5px solid rgba(192,112,64,0.5) !important;
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 9px 16px;
    transition: all 0.2s ease;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Tombol WhatsApp */
#cartModal #whatsapp-btn {
    background: linear-gradient(135deg, #25d366, #128c7e) !important;
    color: #ffffff !important;
    border: none;
    border-radius: 10px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.4px;
    padding: 10px 20px;
    transition: all 0.25s ease;
    box-shadow: 0 4px 14px rgba(37,211,102,0.35);
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    position: relative;
    overflow: hidden;
}

/* =====================
   FORM VALIDATION
   ===================== */
#cartModal .invalid-feedback {
    display: block;
    color: #f87171 !important;
    font-size: 0.75rem;
    margin-top: 4px;
}

#cartModal .is-valid { border-color: #4ade80 !important; }
#cartModal .is-invalid { border-color: #f87171 !important; }

/* =====================
   LOADING STATE
   ===================== */
.btn-loading {
    position: relative;
    color: transparent !important;
}

.btn-loading::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: 18px; height: 18px;
    margin: -9px 0 0 -9px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: cartSpin 0.8s linear infinite;
}

@keyframes cartSpin { to { transform: rotate(360deg); } }