        :root {
            --primary-color: #1ab69d;
            --secondary-color: #31b978;
            --background-color: #F8F9FA;
            --promo-banner-bg: #e0f2f1;
            --text-dark: #1f2937;
            --text-medium: #4b5563;
            --text-light: #6b7280;
            --star-color: #f59e0b;
        }

        body {
            background-color: var(--background-color);
            color: var(--text-medium);
            font-family: 'Poppins', sans-serif;
        }

        .accent-text {
            color: var(--primary-color);
        }
        
        .accent-bg {
            background-color: var(--primary-color);
        }
        
        .accent-bg-hover:hover {
            background-color: #159c85;
        }

        .secondary-bg {
            background-color: var(--secondary-color);
        }
        
        .secondary-bg-hover:hover {
            background-color: #299a62;
        }

        .promo-banner {
            background-color: var(--promo-banner-bg);
            color: var(--text-dark);
        }

        .card-enter-active, .card-leave-active {
            transition: all 0.5s ease;
        }
        .card-enter-from, .card-leave-to {
            opacity: 0;
            transform: translateY(30px);
        }

        .modal-enter-active, .modal-leave-active {
            transition: opacity 0.3s ease;
        }
        .modal-enter-from, .modal-leave-to {
            opacity: 0;
        }
        .modal-content-enter-active {
            transition: all 0.4s ease;
        }
        .modal-content-enter-from {
            opacity: 0;
            transform: scale(0.9);
        }

        .marquee-content {
            animation: marquee 30s linear infinite;
        }
        @keyframes marquee {
            from { transform: translateX(0); }
            to { transform: translateX(-100%); }
        }
        
        .consultation-button {
            position: fixed;
            bottom: 25px;
            right: 25px;
            background-color: var(--secondary-color);
            color: white;
            border-radius: 50px;
            display: flex;
            align-items: center;
            padding: 12px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.2);
            text-decoration: none;
            transition: all 0.3s ease;
            z-index: 40;
        }
        .consultation-button:hover {
            background-color: #299a62;
            transform: translateY(-3px);
            box-shadow: 0 6px 20px rgba(0,0,0,0.25);
        }
        .consultation-button .fa-whatsapp {
            font-size: 28px;
        }
        .consultation-text {
            max-width: 0;
            overflow: hidden;
            white-space: nowrap;
            transition: max-width 0.4s ease, margin-left 0.4s ease;
            font-weight: 600;
        }
        .consultation-button:hover .consultation-text {
            max-width: 200px;
            margin-left: 10px;
        }
        
        .star-rating .fa-star {
            color: var(--star-color);
        }

        .mobile-category-scroll::-webkit-scrollbar {
            display: none;
        }
        .mobile-category-scroll {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

        /* Specific styles for product grid on mobile */
        @media (max-width: 639px) { /* Tailwind's sm breakpoint is 640px, so this targets screens smaller than sm */
            .grid-cols-2 {
                grid-template-columns: repeat(2, minmax(0, 1fr)); /* Force 2 columns on small screens */
            }
            .gap-4 {
                gap: 1rem; /* Adjust gap for smaller screens */
            }
            .h-32 { /* Adjusted image height for product cards on very small screens */
                height: 8rem; /* 128px */
            }
            .text-base { /* Adjusted title font size */
                font-size: 0.875rem; /* 14px */
            }
            .text-lg { /* Adjusted price font size */
                font-size: 1.125rem; /* 18px */
            }
            .text-xs { /* Adjusted rating/terjual font size */
                font-size: 0.75rem; /* 12px */
            }
            .py-2 { /* Adjusted button padding */
                padding-top: 0.5rem;
                padding-bottom: 0.5rem;
            }
            .px-3 { /* Adjusted button padding */
                padding-left: 0.75rem;
                padding-right: 0.75rem;
            }
        }

        /* [UPDATED] Sidebar navigation links styling */
        #category-nav .sidebar-link {
            background-color: #FFFFFF;
            color: var(--text-medium);
            padding: 0.625rem 1rem; /* 10px 16px to match py-2.5 px-4 */
            border-radius: 0.5rem;
            font-weight: 500;
            transition: all 0.3s ease;
            border: 1px solid #e5e7eb;
            display: flex;
            align-items: center;
            gap: 0.75rem; /* Match gap-3 */
            font-size: 0.875rem;
        }

        #category-nav .sidebar-link:hover {
            background-color: var(--primary-color);
            color: white;
            border-color: var(--primary-color);
            box-shadow: 0 4px 10px rgba(26, 182, 157, 0.3);
        }

        #category-nav .sidebar-link.active {
            background-color: var(--primary-color);
            color: white;
            border-color: var(--primary-color);
            box-shadow: 0 4px 10px rgba(26, 182, 157, 0.3);
            font-weight: 600;
        }
