﻿/* ==========================================================================
   GALAXY ARMORY — CATALOG SPECIFIC STYLESHEET (css/catalog.css)
   Catalog hero, live filter controls, suppressors grid, specifications.
   ========================================================================== */

        /* ============================================================
           [CATALOG HEADER HERO]
        ============================================================ */
        .catalog-hero {
            padding-top: 140px;
            padding-bottom: 3.5rem;
            position: relative;
            background: linear-gradient(180deg, rgba(20, 19, 18, 0.8) 0%, var(--obsidian-deep) 100%);
            border-bottom: 1px solid var(--line);
            z-index: 1;
        }

        .catalog-header-meta {
            display: flex;
            align-items: center;
            gap: 1.5rem;
            margin-bottom: 1rem;
            flex-wrap: wrap;
        }

        .catalog-title {
            font-size: clamp(2.2rem, 5vw, 3.8rem);
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: -0.03em;
            line-height: 1.05;
            color: var(--titanium);
            max-width: 22ch;
        }

        .catalog-title em {
            font-style: normal;
            color: var(--texas-red);
        }

        .catalog-desc {
            font-size: clamp(0.95rem, 1.4vw, 1.1rem);
            color: var(--titanium-dim);
            max-width: 68ch;
            text-wrap: balance;
            margin-top: 1.25rem;
            line-height: 1.65;
        }

        /* ============================================================
           [FILTER CONTROLS BAR]
        ============================================================ */
        .catalog-controls {
            position: sticky;
            top: 72px;
            z-index: 50;
            background: rgba(20, 19, 18, 0.95);
            backdrop-filter: var(--blur-glass);
            -webkit-backdrop-filter: var(--blur-glass);
            border-bottom: 1px solid var(--line);
            padding-block: 1rem;
        }

        .controls-inner {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1.5rem;
            flex-wrap: wrap;
        }

        .filter-group {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            flex-wrap: wrap;
        }

        .filter-label {
            font-size: 0.65rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: var(--titanium-dark);
            margin-right: 0.5rem;
        }

        .filter-btn {
            background: transparent;
            border: 1px solid var(--line);
            color: var(--titanium-dim);
            font-family: var(--font);
            font-size: 0.72rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            padding: 0.55rem 1.1rem;
            cursor: pointer;
            transition: all var(--transition);
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
        }

        .filter-btn .count-badge {
            font-size: 0.62rem;
            color: var(--titanium-dark);
            font-family: var(--font-mono);
            background: rgba(244,244,244,0.06);
            padding: 0.1rem 0.35rem;
            border-radius: 2px;
            transition: all var(--transition);
        }

        .filter-btn:hover {
            color: var(--titanium);
            border-color: var(--line-strong);
        }

        .filter-btn.active {
            background: var(--texas-red);
            border-color: var(--texas-red);
            color: #fff;
        }

        .filter-btn.active .count-badge {
            background: rgba(0,0,0,0.3);
            color: #fff;
        }

        .results-meta {
            font-family: var(--font-mono);
            font-size: 0.7rem;
            color: var(--titanium-dim);
            letter-spacing: 0.06em;
            text-transform: uppercase;
        }

        .results-meta strong {
            color: var(--texas-red);
        }

        /* Caliber filter pills sub-row */
        .caliber-bar {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            padding-top: 0.75rem;
            margin-top: 0.75rem;
            border-top: 1px dashed rgba(48, 46, 44, 0.6);
            flex-wrap: wrap;
        }

        .caliber-pill {
            background: rgba(244,244,244,0.03);
            border: 1px solid rgba(48, 46, 44, 0.6);
            color: var(--titanium-dim);
            font-family: var(--font-mono);
            font-size: 0.65rem;
            font-weight: 500;
            padding: 0.35rem 0.75rem;
            cursor: pointer;
            transition: all var(--transition);
        }

        .caliber-pill:hover {
            color: var(--titanium);
            border-color: var(--texas-red);
        }

        .caliber-pill.active {
            background: var(--texas-red-dim);
            border-color: var(--texas-red);
            color: var(--titanium);
            font-weight: 700;
        }

        /* ============================================================
           [CATALOG PRODUCTS SECTION]
        ============================================================ */
        .catalog-content {
            padding-block: 3.5rem 6rem;
            flex: 1;
            position: relative;
            z-index: 1;
        }

        .products-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5px;
            background: var(--line);
        }

        .product-card {
            background: var(--obsidian-deep);
            display: flex;
            flex-direction: column;
            position: relative;
            overflow: hidden;
            transition: background var(--transition), transform 0.25s var(--ease), opacity 0.25s var(--ease);
        }

        .product-card.hidden {
            display: none;
        }

        .product-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 3px;
            height: 100%;
            background: var(--texas-red);
            transform: scaleY(0);
            transform-origin: top;
            transition: transform var(--transition);
            z-index: 10;
        }

        .product-card:hover::before { transform: scaleY(1); }
        .product-card:hover { background: var(--obsidian); }

        .product-image {
            width: 100%;
            height: 260px;
            aspect-ratio: 16 / 10;
            contain: layout paint;
            background-color: #1a1918;
            border-bottom: 1px solid var(--line);
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            overflow: hidden;
            text-decoration: none;
        }

        .product-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform var(--transition);
            position: relative;
            z-index: 2;
        }

        .product-card:hover .product-image img {
            transform: scale(1.05);
        }

        .product-image .card-img-secondary {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            opacity: 0;
            z-index: 3;
            transition: opacity 0.35s ease, transform var(--transition);
        }

        .product-card:hover .product-image .card-img-secondary {
            opacity: 1;
            transform: scale(1.05);
        }

        .card-gallery-badge {
            position: absolute;
            bottom: 0.65rem;
            right: 0.65rem;
            background: rgba(14, 13, 13, 0.88);
            backdrop-filter: blur(4px);
            border: 1px solid var(--line-strong);
            color: var(--titanium-dim);
            font-family: var(--font-mono);
            font-size: 0.62rem;
            font-weight: 600;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            padding: 0.2rem 0.5rem;
            border-radius: 2px;
            z-index: 4;
            pointer-events: none;
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            transition: all var(--transition);
        }

        .card-gallery-badge svg {
            width: 12px;
            height: 12px;
            stroke: var(--texas-red);
        }

        .product-card:hover .card-gallery-badge {
            border-color: var(--texas-red);
            color: var(--titanium);
        }

        .product-category-tag {
            position: absolute;
            top: 1rem;
            left: 1rem;
            z-index: 5;
            background: rgba(20, 19, 18, 0.85);
            backdrop-filter: blur(8px);
            border: 1px solid var(--line-strong);
            color: var(--titanium);
            font-family: var(--font-mono);
            font-size: 0.62rem;
            font-weight: 600;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            padding: 0.25rem 0.6rem;
        }

        .product-body {
            padding: clamp(1.25rem, 3vw, 2rem);
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            flex: 1;
        }

        .product-meta-row {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            gap: 0.5rem;
        }

        .product-platform {
            font-size: 0.65rem;
            font-weight: 500;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: var(--texas-red);
            font-family: var(--font-mono);
        }

        .product-price {
            font-size: 1.15rem;
            font-weight: 800;
            color: var(--titanium);
            letter-spacing: -0.01em;
            font-family: var(--font);
            white-space: nowrap;
        }

        .product-price span {
            font-size: 0.62rem;
            font-weight: 600;
            color: var(--titanium-dim);
            text-transform: uppercase;
            letter-spacing: 0.08em;
            margin-right: 0.25rem;
        }

        .product-name {
            font-size: clamp(1.3rem, 2vw, 1.7rem);
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: -0.02em;
            color: var(--titanium);
        }

        .product-title-link {
            color: inherit;
            text-decoration: none;
            transition: color var(--transition);
        }

        .product-card:hover .product-title-link {
            color: var(--texas-red);
        }

        .product-desc {
            font-size: 0.82rem;
            color: var(--titanium-dim);
            line-height: 1.6;
        }

        .product-specs {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.75rem 1rem;
            padding-top: 1.25rem;
            margin-top: auto;
            border-top: 1px solid var(--line);
        }

        .spec {
            display: flex;
            flex-direction: column;
            gap: 0.15rem;
        }

        .spec-key {
            font-size: 0.58rem;
            font-weight: 400;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: var(--titanium-dim);
        }

        .spec-val {
            font-size: 0.82rem;
            font-weight: 700;
            color: var(--titanium);
        }

        .product-footer {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1rem clamp(1.25rem, 3vw, 2rem);
            border-top: 1px solid var(--line);
            gap: 0.75rem;
        }

        .btn-add-cart {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            width: 100%;
            padding: 0.65rem 1rem;
            background: transparent;
            border: 1px solid var(--texas-red);
            color: var(--texas-red);
            font-size: 0.68rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            cursor: pointer;
            font-family: var(--font);
            transition: background var(--transition), color var(--transition);
        }
        .btn-add-cart:hover { background: var(--texas-red); color: #fff; }
        .btn-add-cart.added { background: #1a6b35; border-color: #1a6b35; color: #fff; }
        .btn-add-cart svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 2.5; flex-shrink: 0; }

        .product-cta-link {
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--titanium-dim);
            display: flex;
            align-items: center;
            gap: 0.4rem;
            transition: color var(--transition), gap var(--transition);
            white-space: nowrap;
        }

        .product-card:hover .product-cta-link {
            color: var(--texas-red);
            gap: 0.6rem;
        }

        .no-results-box {
            display: none;
            text-align: center;
            padding: 4rem 1rem;
            background: var(--obsidian);
            border: 1px solid var(--line);
        }

        .no-results-box.visible { display: block; }
        .no-results-box h3 {
            font-size: 1.25rem;
            text-transform: uppercase;
            letter-spacing: -0.01em;
            margin-bottom: 0.5rem;
        }
        .no-results-box p {
            font-size: 0.85rem;
            color: var(--titanium-dim);
            margin-bottom: 1.5rem;
        }

        .btn-reset-filters {
            background: var(--texas-red);
            border: none;
            color: #fff;
            font-family: var(--font);
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            padding: 0.7rem 1.5rem;
            cursor: pointer;
        }


/* ============================================================
   CATALOG RESPONSIVE BREAKPOINTS
============================================================ */
@media (max-width: 1024px) {
    .products-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .catalog-hero {
        padding-top: 110px;
    }
    .controls-inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .catalog-title {
        font-size: clamp(1.8rem, 6vw, 3.8rem);
        word-break: break-word;
    }
    .products-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .products-grid {
        grid-template-columns: 1fr;
    }
}
