/*
    Projet  : Start-Elite
    Fichier : assets/css/catalogue.css
    Page    : CATALOGUE - START-ELITE
*/

*, *::before, *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --gold: #ffb648;
            --gold-light: #ffd089;

            /* Palette contenu clair */
            --c-dark: #1a2235;
            --c-muted: #6b7a99;
            --c-accent: #b87513;
            --c-bg: #f0f4f8;
            --c-white: #ffffff;
            --c-border: rgba(0,0,0,0.08);
        }

        html { scroll-behavior: smooth; }

        body {
            font-family: 'Barlow', sans-serif;
            color: var(--c-dark);
            background: var(--c-bg);
            overflow-x: hidden;
        }

        
    /* Fil d'Ariane (breadcrumb) : indique la position dans le site */
        .breadcrumb {
            background: var(--c-white);
            border-bottom: 1px solid var(--c-border);
            padding: 14px 0;
        }

        .breadcrumb-content {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 30px;
            font-family: 'Barlow Condensed', sans-serif;
            font-size: 13px;
            font-weight: 600;
            letter-spacing: 1.5px;
            text-transform: uppercase;
            color: var(--c-muted);
        }

        .breadcrumb-content a {
            color: var(--c-accent);
            text-decoration: none;
            transition: color 0.2s;
        }

        .breadcrumb-content a:hover { color: var(--gold); }

        
        /* === CONTENU PRINCIPAL === */

        .main-content {
            max-width: 1400px;
            margin: 70px auto;
            padding: 0 30px;
        }

        .page-title {
            text-align: center;
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(38px, 5vw, 64px);
            font-weight: 400;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--c-dark);
            margin-bottom: 50px;
        }

        
    /* Accordéon interactif : toggle CSS max-height + aria-expanded */
        .accordion-wrapper {
            max-width: 900px;
            margin: 0 auto 60px;
        }

        .accordion-btn {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: #b87513;
            border: none;
            border-radius: 3px;
            padding: 22px 30px;
            cursor: pointer;
            gap: 16px;
            transition: all 0.3s;
            box-shadow: 0 8px 30px rgba(0,119,170,0.3);
            position: relative;
            overflow: hidden;
        }

        .accordion-btn::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(255,182,72,0.07) 0%, transparent 60%);
            opacity: 0;
            transition: opacity 0.3s;
            pointer-events: none;
        }

        .accordion-btn:hover::before,
        .accordion-btn.open::before { opacity: 1; }

        .accordion-btn:hover,
        .accordion-btn.open {
            background: #8f580e;
            box-shadow: 0 10px 36px rgba(0,119,170,0.45);
            transform: translateY(-1px);
        }

        .accordion-btn-left {
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .accordion-icon-wrap {
            width: 44px;
            height: 44px;
            border-radius: 10px;
            background: rgba(255,255,255,0.15);
            border: 1px solid rgba(255,255,255,0.25);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            transition: background 0.3s;
        }

        .accordion-btn:hover .accordion-icon-wrap,
        .accordion-btn.open .accordion-icon-wrap { background: rgba(255,255,255,0.25); }

        .accordion-icon-wrap svg { color: #ffffff; }

        .accordion-btn-title {
            font-family: 'Bebas Neue', sans-serif;
            font-size: 22px;
            letter-spacing: 3px;
            color: #ffffff;
            line-height: 1;
            margin-bottom: 4px;
        }

        .accordion-btn-sub {
            font-family: 'Barlow Condensed', sans-serif;
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: rgba(255,255,255,0.75);
        }

        .accordion-arrow {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: rgba(255,255,255,0.15);
            border: 1px solid rgba(255,255,255,0.3);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            transition: transform 0.35s cubic-bezier(.4,0,.2,1), background 0.3s;
        }

        .accordion-btn.open .accordion-arrow {
            transform: rotate(180deg);
            background: rgba(255,255,255,0.25);
        }

        .accordion-arrow svg { color: #ffffff; }

        .accordion-body {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.45s cubic-bezier(.4,0,.2,1), opacity 0.35s ease;
            opacity: 0;
        }

        .accordion-body.open {
            max-height: 2000px;
            opacity: 1;
        }

        .accordion-inner {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 24px;
            padding: 24px 4px 4px;
        }

        .specs-box {
            background: var(--c-white);
            padding: 32px 30px;
            border-radius: 12px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.07);
            border-top: 3px solid var(--c-accent);
        }

        .specs-box h4 {
            font-size: 17px;
            font-weight: 700;
            color: var(--c-accent);
            margin-bottom: 22px;
            text-transform: uppercase;
            letter-spacing: 2.5px;
            font-family: 'Barlow Condensed', sans-serif;
        }

        .specs-box ul { list-style: none; }

        .specs-box li {
            color: var(--c-dark);
            padding: 11px 0 11px 30px;
            position: relative;
            line-height: 1.55;
            font-size: 14px;
            border-bottom: 1px solid rgba(0,0,0,0.06);
        }

        .specs-box li:last-child { border-bottom: none; }

        .specs-box li::before {
            content: '✓';
            position: absolute;
            left: 2px;
            top: 11px;
            color: var(--c-accent);
            font-weight: 700;
            font-size: 14px;
        }

        .specs-box a { color: var(--c-accent); text-decoration: none; font-weight: 600; }
        .specs-box a:hover { text-decoration: underline; }

        .specs-note {
            font-style: italic;
            color: var(--c-muted);
            margin-top: 18px;
            font-size: 13px;
            padding-top: 14px;
            border-top: 1px dashed rgba(0,0,0,0.12);
        }

        /* PRODUCTS GRID */
        .products-grid {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 16px;
        }

        .product-card {
            text-align: center;
            transition: transform 0.28s, box-shadow 0.28s;
            background: var(--c-white);
            padding: 0 0 18px;
            border-radius: 6px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.07);
            display: flex;
            flex-direction: column;
            align-items: center;
            text-decoration: none;
            color: inherit;
            overflow: hidden;
            border: 1px solid rgba(0,0,0,0.07);
        }

        .product-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 28px rgba(0,0,0,0.13);
            border-color: var(--c-accent);
        }

        .product-image {
            width: 100%;
            overflow: hidden;
            display: flex;
            align-items: flex-end;
            justify-content: center;
            height: 340px;
            background: #f7f8fa;
        }

        .product-image img {
            height: 320px;
            width: auto;
            max-width: 90%;
            display: block;
            transition: transform 0.4s;
            object-fit: contain;
        }

        .product-card:hover .product-image img {
            transform: scale(1.05) translateY(-4px);
        }

        .product-title {
            font-size: 14px;
            font-weight: 700;
            color: var(--c-dark);
            margin: 14px 12px 12px;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            font-family: 'Barlow Condensed', sans-serif;
            line-height: 1.3;
        }

        .product-link {
            display: inline-block;
            color: var(--c-accent);
            text-decoration: none;
            font-weight: 600;
            padding: 8px 20px;
            border: 2px solid var(--c-accent);
            border-radius: 25px;
            transition: all 0.3s;
            font-size: 14px;
        }

        .product-card:hover .product-link {
            background: var(--c-accent);
            color: var(--c-white);
        }

        
    /* Bouton retour en haut de page (apparaît après 300px de scroll) */
        #scroll-top-btn {
            position: fixed;
            bottom: 30px;
            right: 30px;
            background: var(--gold);
            color: #1a1530;
            width: 46px;
            height: 46px;
            border-radius: 3px;
            display: none;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 4px 20px rgba(255,182,72,0.4);
            z-index: 999;
            transition: all 0.3s;
        }
        #scroll-top-btn.visible,
        #scroll-top-btn.show { display: flex; }
        #scroll-top-btn:hover { background: var(--gold-light); transform: translateY(-3px); }

        
        /* === RESPONSIVE — MEDIA QUERIES · ≤ 968px : tablet · ≤ 768px : mobile paysage · ≤ 576px : mobile portrait === */

        @media (max-width: 968px) {
            .accordion-inner { grid-template-columns: 1fr; }
            .products-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
        }

        @media (max-width: 768px) {
            .main-content { padding: 0 15px; margin: 40px auto; }
        }

        @media (max-width: 576px) {
            .products-grid { grid-template-columns: 1fr; }
            .product-image { height: 240px; }
            .product-image img { height: 220px; }
        }
