* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Open Sans', sans-serif;
            background-color: #F4F5F8;
            color: #1F2937;
            overflow-x: hidden;
        }
        
        /* Custom cursor */
        .cursor-dot,
        .cursor-outline {
            position: fixed;
            top: 0;
            left: 0;
            transform: translate(-50%, -50%);
            border-radius: 50%;
            z-index: 9999;
            pointer-events: none;
        }
        
        .cursor-dot {
            width: 5px;
            height: 5px;
            background-color: #22c55e;
        }
        
        .cursor-outline {
            width: 30px;
            height: 30px;
            border: 1px solid #22c55e;
            transition: width 0.2s, height 0.2s, background-color 0.2s;
        }
        
        .cursor-outline.hover {
            width: 50px;
            height: 50px;
            background-color: rgba(34, 197, 94, 0.1);
            border-color: transparent;
        }
        
        /* Noise texture overlay */
        .noise {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 9998;
            opacity: 0.02;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
        }
        
        /* Glassmorphism for light theme */
        .glass {
            background: rgba(255, 255, 255, 0.7);
            backdrop-filter: blur(20px);
            border: 1px solid rgba(255, 255, 255, 0.8);
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
        }
        
        /* Card styles with proper borders */
        .card {
            background: #ffffff;
            border: 1px solid #E8EAF0;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02);
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        
        /* .card:hover {
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
            border-color: #22c55e;
            transform: translateY(-4px);
        } */
        
        /* Product card with hover effect */
        .product-card {
            background: #ffffff;
            border: 1px solid #E8EAF0;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            overflow: hidden;
        }
        
        .product-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
            border-color: #22c55e;
        }
        
        .product-card::before {
            content: '';
            position: absolute;
            inset: 0;
            background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(34, 197, 94, 0.08), transparent 50%);
            opacity: 0;
            transition: opacity 0.3s;
            pointer-events: none;
        }
        
        .product-card:hover::before {
            opacity: 1;
        }
        
        /* Section backgrounds */
        .section-alt {
            background-color: #ffffff;
        }
        
        .section-gray {
            background-color: #F4F5F8;
        }
        
        /* Custom scrollbar */
        ::-webkit-scrollbar {
            width: 6px;
        }
        
        ::-webkit-scrollbar-track {
            background: #F4F5F8;
        }
        
        ::-webkit-scrollbar-thumb {
            background: #535353;
            border-radius: 4px;
        }
        
        /* Magnetic button effect */
        .magnetic-btn {
            transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        
        /* Gradient text */
        .gradient-text {
            background: linear-gradient(135deg, #22c55e 0%, #16a34a 50%, #15803d 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        
        /* Page transitions */
        .page-section {
           
            animation: fadeIn 0.5s ease-out;
        }
        
        
        
        /* Tab active state */
        .tab-btn {
            color: #6B7280;
            border-bottom: 2px solid transparent;
            transition: all 0.3s;
        }
        
        .tab-btn.active {
            color: #22c55e;
            border-bottom-color: #22c55e;
        }
        
        .tab-btn:hover {
            color: #22c55e;
        }
        
        /* Specs table styling */
        .specs-table tr {
            border-bottom: 1px solid #E8EAF0;
        }
        
        .specs-table tr:last-child {
            border-bottom: none;
        }
        
        /* Lightbox */
        .lightbox {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.95);
            z-index: 10000;
            display: none;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transition: opacity 0.3s;
        }
        
        .lightbox.active {
            display: flex;
            opacity: 1;
        }
        
        /* Image comparison slider */
        .img-comp-container {
            position: relative;
            height: 400px;
            overflow: hidden;
            border-radius: 1rem;
            border: 1px solid #E8EAF0;
        }
        
        .img-comp-img {
            position: absolute;
            width: auto;
            height: auto;
            overflow: hidden;
        }
        
        .img-comp-img img {
            display: block;
            height: 400px;
            width: 100%;
            object-fit: cover;
        }
        
        .img-comp-slider {
            position: absolute;
            z-index: 9;
            cursor: ew-resize;
            width: 40px;
            height: 40px;
            background-color: #22c55e;
            border-radius: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 0 20px rgba(34,197,94,0.5);
        }
        
        /* Accordion */
        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease-out, padding 0.25s ease-out;
            /* collapse internal padding when closed to prevent
               text peek-through (matches px-6 pb-4 used in markup) */
            padding: 0 1.5rem 0;
        }

        .accordion-item.active .accordion-content {
            max-height: 500px;
            /* restore padding when opened */
            padding: 0 1.5rem 1rem;
        }

        .accordion-item.active .accordion-icon {
            transform: rotate(180deg);
        }
        
        /* Input styles */
        input, textarea, select {
            background-color: #F4F5F8;
            border: 1px solid #E8EAF0;
            color: #1F2937;
        }
        
        input:focus, textarea:focus, select:focus {
            border-color: #22c55e;
            outline: none;
            background-color: #ffffff;
        }
        
        /* Navigation link hover */
        .nav-link {
            color: #4B5563;
        }
        
        .nav-link:hover {
            color: #22c55e;
        }
        
        /* Timeline styles */
        .timeline-line {
            background: linear-gradient(to bottom, #22c55e 0%, #22c55e 100%);
        }
        
        /* Toast notification */
        #toast {
            background: #ffffff;
            border: 1px solid #E8EAF0;
            box-shadow: 0 10px 40px rgba(0,0,0,0.15);
        }
        
        /* Footer */
        footer {
            background-color: #ffffff;
            border-top: 1px solid #E8EAF0;
        }
        
        /* Modal styles */
        #product-modal > div:last-child {
            background: #ffffff;
        }
        
        
        h1, h2, h3, h4, h5, h6 {
    font-family: 'Open Sans', sans-serif !important;
    font-weight: 600 !important;
}
.gallery-item:hover .gallery-overlay {
            opacity: 1;
        }
        .gallery-item:hover img {
            transform: scale(1.05);
        }

/* ── Category Tab Bar ── */
      .cat-tabs-wrap {
        position: relative;
      }

      /* Fade masks on left/right edges when tabs overflow */
      .cat-tabs-wrap::before,
      .cat-tabs-wrap::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 48px;
        pointer-events: none;
        z-index: 2;
        transition: opacity 0.3s;
      }
      .cat-tabs-wrap::before {
        left: 0;
        background: linear-gradient(to right, #F4F5F8, transparent);
      }
      .cat-tabs-wrap::after {
        right: 0;
        background: linear-gradient(to left, #F4F5F8, transparent);
      }

      .cat-tabs {
        display: flex;
        gap: 6px;
        overflow-x: auto;
        scroll-behavior: smooth;
        padding: 4px 2px 8px;
        -ms-overflow-style: none;
        scrollbar-width: none;
      }
      .cat-tabs::-webkit-scrollbar { display: none; }

      .cat-tab {
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 8px 18px;
        border-radius: 999px;
        border: 1.5px solid #E8EAF0;
        background: #ffffff;
        color: #6B7280;
        font-size: 0.875rem;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
        white-space: nowrap;
        position: relative;
        overflow: hidden;
      }

      .cat-tab::before {
        content: '';
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at center, rgba(34,197,94,0.12), transparent 70%);
        opacity: 0;
        transition: opacity 0.22s;
      }

      .cat-tab:hover {
        border-color: #22c55e;
        color: #16a34a;
        box-shadow: 0 2px 12px rgba(34,197,94,0.15);
      }
      .cat-tab:hover::before { opacity: 1; }

      .cat-tab.active {
        background: #22c55e;
        border-color: #22c55e;
        color: #ffffff;
        box-shadow: 0 4px 16px rgba(34,197,94,0.35);
      }
      .cat-tab.active::before { display: none; }

      .cat-tab .tab-count {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 20px;
        height: 20px;
        padding: 0 5px;
        border-radius: 999px;
        font-size: 0.7rem;
        font-weight: 600;
        background: rgba(0,0,0,0.08);
        color: inherit;
        transition: background 0.22s;
      }
      .cat-tab.active .tab-count {
        background: rgba(255,255,255,0.25);
        color: #fff;
      }

      /* ── Gallery item hide/show ── */
      .gallery-item {
        transition: opacity 0.3s ease, transform 0.3s ease;
      }
      .gallery-item.hidden-item {
        display: none;
      }

      /* ── Results bar ── */
      #results-bar {
        transition: opacity 0.3s;
      }

      /* ── Empty state ── */
      #filter-empty {
        display: none;
      }

      /* ── Animate in on filter ── */
      @keyframes popIn {
        from { opacity: 0; transform: scale(0.96) translateY(6px); }
        to   { opacity: 1; transform: scale(1)    translateY(0); }
      }
      .gallery-item.pop-in {
        animation: popIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) both;
      }