/* --- DESIGN SYSTEM & RESET --- */
:root { 
    --bg: #000000; 
    --text: #ffffff; 
    --text-muted: #888888; 
    --border: #222222; 
    --border-hover: #ffffff; 
    --font: 'Helvetica Neue', Arial, sans-serif; 
    --transition: cubic-bezier(0.16, 1, 0.3, 1) 0.6s; 
    --header-height: 80px; 
}

* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    outline: none; 
}

html, body { 
    background-color: var(--bg); 
    color: var(--text); 
    font-family: var(--font); 
    overflow-x: hidden; 
    width: 100%;
    -webkit-font-smoothing: antialiased; 
}

/* --- NAVIGATION --- */
header { 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: var(--header-height); 
    padding: 0 3rem; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    z-index: 1000; 
    border-bottom: 1px solid var(--border); 
    background: rgba(0, 0, 0, 0.85); 
    backdrop-filter: blur(20px); 
}

.logo-img { max-height: 80px; width: auto; display: block; transition: opacity 0.3s ease; }
.logo-img:hover { opacity: 0.8; }

nav ul { display: flex; list-style: none; gap: 2rem; align-items: center; }
nav a { color: var(--text-muted); text-decoration: none; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; transition: color 0.3s ease; }
nav a:hover, nav a.active { color: var(--text); }

/* --- BADGE PANIER --- */
.cart-badge { background: var(--text); color: var(--bg); padding: 2px 8px; border-radius: 12px; font-size: 0.75rem; font-weight: 900; margin-left: 5px; transition: all 0.3s ease; }

/* --- MENU BURGER (GOD MODE - IMMUNISÉ CONTRE LES CONFLITS) --- */
.burger, .ar-burger {
    width: 32px !important;
    height: 24px !important;
    position: relative !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    cursor: pointer !important;
    outline: none !important;
    -webkit-appearance: none !important;
    margin: 0 !important;
}

.burger span, .ar-burger span {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    width: 100% !important;
    height: 3px !important;
    background: #fff !important;
    border-radius: 20px !important;
    transition: 0.3s ease-in-out !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Position initiale des 3 barres */
.burger span:nth-child(1), button.burger span.line1, .ar-burger span:nth-child(1) { top: 0px !important; transform: none !important; }
.burger span:nth-child(2), button.burger span.line2, .ar-burger span:nth-child(2) { top: 10px !important; opacity: 1 !important; transform: none !important; }
.burger span:nth-child(3), button.burger span.line3, .ar-burger span:nth-child(3) { top: 20px !important; transform: none !important; }

/* 🚨 LA CROIX PARFAITE (Se croise EXACTEMENT au centre) 🚨 */
.burger.toggle span:nth-child(1), button.burger.toggle span.line1, .ar-burger.toggle span:nth-child(1) { top: 10px !important; transform: rotate(45deg) !important; }
.burger.toggle span:nth-child(2), button.burger.toggle span.line2, .ar-burger.toggle span:nth-child(2) { opacity: 0 !important; }
.burger.toggle span:nth-child(3), button.burger.toggle span.line3, .ar-burger.toggle span:nth-child(3) { top: 10px !important; transform: rotate(-45deg) !important; }

/* --- ROUTER VIEWS --- */

.page-view { 
    display: flex; 
    flex-direction: column; 
    min-height: 100vh; 
    padding: calc(var(--header-height) + 4rem) 3rem 4rem 3rem; 
    opacity: 1; 
    transform: none; 
}

/* --- TYPOGRAPHY & BUTTONS --- */
h1.section-title { font-size: 6rem; font-weight: 900; text-transform: uppercase; letter-spacing: -3px; line-height: 0.9; margin-bottom: 3rem; }
.subtitle { font-size: 1.5rem; color: var(--text-muted); margin-bottom: 2.5rem; font-weight: 300; }

.btn-core { display: inline-block; padding: 1.2rem 2.5rem; background: var(--text); color: var(--bg); text-decoration: none; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; font-size: 0.85rem; border: 1px solid var(--text); transition: all 0.4s var(--transition); cursor: pointer; width: fit-content; }
.btn-core:hover { background: var(--bg); color: var(--text); border-color: var(--text); }
.btn-outline { background: transparent; color: var(--text); }
.btn-outline:hover { background: var(--text); color: var(--bg); }
.btn-full { width: 100%; margin-top: 1rem; padding: 1.2rem; font-size: 1rem; text-align: center; }

/* --- ACCUEIL --- */
#accueil { justify-content: center; align-items: flex-start; background: radial-gradient(circle at 80% 20%, #111111 0%, #000000 60%); display: none; padding: calc(var(--header-height) + 2rem) 0 0 0; }
#accueil.active { display: block; }

.home-section { border-bottom: 1px solid var(--border); }
.split-section { padding: 8rem 3rem; border-bottom: 1px solid var(--border); }
.split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; max-width: 1400px; margin: 0 auto; }
.split-text h3 { font-size: 2.5rem; text-transform: uppercase; margin-bottom: 2rem; font-weight: 800; }
.split-text p { color: var(--text-muted); line-height: 1.8; margin-bottom: 1.5rem; font-size: 1.05rem; }
.split-image img { width: 100%; height: auto; border: 1px solid var(--border); filter: grayscale(100%) contrast(1.1); transition: filter 0.5s ease; }
.split-image img:hover { filter: grayscale(0%) contrast(1); }

.community-cta { padding: 8rem 3rem; text-align: center; background: radial-gradient(circle at center, #111 0%, #000 100%); }
.community-cta h2 { font-size: 4rem; font-weight: 900; text-transform: uppercase; margin-bottom: 1.5rem; letter-spacing: -2px; }

.section-header-pro { display: flex; justify-content: space-between; align-items: flex-end; padding: 4rem 3rem 2rem 3rem; max-width: 1400px; margin: 0 auto; }
.section-header-pro h2 { font-size: 2.5rem; font-weight: 900; letter-spacing: -1px; margin: 0; }
.highlight-text { color: var(--text-muted); }
.link-more { color: var(--text); text-transform: uppercase; font-weight: 800; font-size: 0.85rem; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.3s; padding-bottom: 5px; }
.link-more:hover { border-color: var(--text); }
.tag-pro { display: inline-block; background: var(--text); color: var(--bg); font-weight: 900; text-transform: uppercase; font-size: 0.75rem; padding: 4px 10px; letter-spacing: 1px; margin-bottom: 1.5rem; }
.border-tag { background: transparent; color: var(--text); border: 1px solid var(--text); }

.content-grid-section { padding-bottom: 5rem; }
.cards-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; max-width: 1400px; margin: 0 auto; padding: 0 3rem; }
.pro-card { border: 1px solid var(--border); background: #050505; transition: transform 0.3s ease, border-color 0.3s ease; cursor: pointer; display: flex; flex-direction: column; }
.pro-card:hover { border-color: var(--text); transform: translateY(-5px); }
.pro-card-content { padding: 1.5rem; }
.pro-card-content h4 { font-size: 1.2rem; text-transform: uppercase; font-weight: 800; margin-bottom: 0.8rem; }
.pro-card-content p { color: var(--text-muted); font-size: 0.9rem; line-height: 1.5; }
.difficulty-tag { font-size: 0.65rem; font-weight: 900; padding: 3px 8px; text-transform: uppercase; letter-spacing: 1px; border: 1px solid var(--text-muted); color: var(--text-muted); }
.easy { border-color: #4CAF50; color: #4CAF50; }
.medium { border-color: #FF9800; color: #FF9800; }
.hard { border-color: #F44336; color: #F44336; }

/* --- STYLES SECTION TUTORIELS --- */
.tutos-manifesto { border: 1px solid var(--border); padding: 3rem; margin-bottom: 4rem; background: #050505; }
.manifesto-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.manifesto-header h3 { font-size: 1.5rem; text-transform: uppercase; font-weight: 900; letter-spacing: 1px; }
.manifesto-list { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.manifesto-list li { color: var(--text-muted); font-size: 0.95rem; line-height: 1.5; }
.manifesto-list strong { color: var(--text); text-transform: uppercase; font-size: 0.85rem; letter-spacing: 1px; display: block; margin-bottom: 0.2rem; }

.search-form-container { display: flex; gap: 1rem; width: 100%; align-items: center; flex-wrap: wrap; margin-bottom: 2rem; }
.search-form-container input { flex: 1; min-width: 250px; background: transparent; border: none; border-bottom: 2px solid var(--border); color: var(--text); font-size: 1.2rem; padding: 1rem 0; font-family: var(--font); transition: border-color 0.3s ease; }
.search-form-container input:focus { border-bottom-color: var(--text); }
.tutos-filters { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-bottom: 3rem; }
.filter-badge { background: transparent; border: 1px solid var(--border); color: var(--text-muted); padding: 0.8rem 1.5rem; text-transform: uppercase; font-weight: 800; font-size: 0.75rem; letter-spacing: 1px; cursor: pointer; transition: all 0.3s ease; }
.filter-badge:hover, .filter-badge.active { background: var(--text); color: var(--bg); border-color: var(--text); }

.video-grid-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 2.5rem; }
.video-card-item { display: flex; flex-direction: column; gap: 1rem; }
.video-card-iframe-wrapper { position: relative; width: 100%; padding-bottom: 56.25%; background: #111; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.video-card-iframe-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }

.video-embed-wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-bottom: 1px solid var(--border); background: #111; }
.video-embed-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

/* --- PAGE 3: SPOTS --- */
.spots-wrapper { display: grid; grid-template-columns: 400px 1fr; gap: 2rem; height: calc(100vh - 15rem); }
.spots-sidebar { overflow-y: auto; border: 1px solid var(--border); padding-right: 10px; }
.spot-node { padding: 2rem; border-bottom: 1px solid var(--border); cursor: pointer; transition: background 0.3s ease; }
.spot-node:hover { background: #0a0a0a; }
.spot-node h3 { text-transform: uppercase; font-size: 1.25rem; font-weight: 800; }
.spot-node p { color: var(--text-muted); font-size: 0.85rem; }
.map-engine { border: 1px solid var(--border); background: #050505; display: flex; align-items: center; justify-content: center; position: relative; }
.map-mock-core { z-index: 2; text-align: center; font-weight: 700; text-transform: uppercase; color: var(--text-muted); letter-spacing: 2px; }

/* --- PAGE 4: EVENEMENTS --- */
.events-timeline { display: flex; flex-direction: column; }
.event-entry { display: grid; grid-template-columns: 150px 1fr auto; align-items: center; padding: 2.5rem 0; border-bottom: 1px solid var(--border); transition: border-color 0.3s ease; }
.event-entry:hover { border-color: var(--border-hover); }
.ev-date { font-size: 1.1rem; font-weight: 800; }
.ev-meta h3 { font-size: 2.5rem; font-weight: 900; text-transform: uppercase; }
.ev-meta p { color: var(--text-muted); font-size: 0.9rem; }

.events-list-pro { max-width: 1400px; margin: 0 auto; padding: 0 3rem; display: flex; flex-direction: column; gap: 1rem; }
.event-item-pro { display: flex; align-items: center; justify-content: space-between; background: #050505; border: 1px solid var(--border); padding: 1.5rem 2.5rem; transition: border-color 0.3s ease, background 0.3s ease; }
.event-item-pro:hover { border-color: var(--text); background: #0a0a0a; }
.event-date-pro { text-align: center; font-weight: 900; line-height: 1; color: var(--text-muted); letter-spacing: 1px; width: 80px; }
.event-date-pro span { display: block; font-size: 2.5rem; color: var(--text); margin-bottom: 5px; }
.event-info-pro { flex: 1; margin: 0 3rem; }
.event-info-pro h4 { font-size: 1.3rem; text-transform: uppercase; font-weight: 800; margin-bottom: 0.5rem; color: var(--text); }
.event-info-pro p { color: var(--text-muted); font-size: 0.95rem; }

/* --- PAGE 5: CONTACT --- */
.contact-wrapper { max-width: 1200px; margin: 0 auto; width: 100%; }
.contact-header { text-align: center; margin-bottom: 4rem; }
.contact-header h1 { margin-bottom: 1rem; }
.contact-grid-pro { display: grid; grid-template-columns: 1fr 1.5fr; gap: 2rem; align-items: start; }
.contact-info-card, .contact-form-card { background: #080808; padding: 3rem; border: 1px solid var(--border); }
.contact-info-card h3 { font-size: 1.5rem; text-transform: uppercase; font-weight: 900; margin-bottom: 1rem; color: var(--text); }
.contact-info-card p { color: var(--text-muted); line-height: 1.6; margin-bottom: 2rem; font-size: 1rem; }
.info-lines p { margin-bottom: 0.5rem; color: var(--text); font-size: 0.9rem; }
.info-lines a { color: var(--text-muted); text-decoration: none; transition: color 0.3s; }
.info-lines a:hover { color: var(--text); }
.form-group-pro { margin-bottom: 1.5rem; display: flex; flex-direction: column; }
.form-group-pro label { text-transform: uppercase; font-size: 0.75rem; font-weight: 700; color: var(--text-muted); margin-bottom: 0.5rem; letter-spacing: 1px; }
.form-group-pro input, .form-group-pro textarea { background: #000; border: 1px solid var(--border); color: var(--text); padding: 1rem; font-size: 1rem; font-family: var(--font); transition: border-color 0.3s ease, box-shadow 0.3s ease; outline: none; resize: vertical; }
.form-group-pro input:focus, .form-group-pro textarea:focus { border-color: var(--text); box-shadow: 0 0 0 1px var(--text); }
.form-group-pro input::placeholder, .form-group-pro textarea::placeholder { color: #333; }

/* ==========================================================
   SHOP PREMIUM V2
========================================================== */

/* ---------- LISTE PRODUITS ---------- */
.woocommerce ul.products{
    display:grid !important;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    padding:0;
    margin:40px 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{
    display:none;
}

/* ---------- CARTE ---------- */
.woocommerce ul.products li.product{
    width:100% !important;
    margin:0 !important;
    float:none !important;
    display:flex;
    flex-direction:column;
    background:#0d0d0d;
    border:1px solid #222;
    border-radius:8px;
    overflow:hidden;
    transition:all .3s ease;
}
.woocommerce ul.products li.product:hover{
    transform:translateY(-5px);
    border-color:#444;
    box-shadow:0 10px 35px rgba(255,255,255,.05);
}

/* ---------- IMAGE ---------- */
.woocommerce ul.products li.product img{
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    background:#fff;
    transition:transform .35s;
    margin:0 !important;
}
.woocommerce ul.products li.product:hover img{
    transform:scale(1.03);
}

/* ---------- TITRE ---------- */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
    color:#fff;
    font-size:1rem;
    font-weight:800;
    line-height:1.35;
    padding:18px 18px 8px;
    text-transform:none;
    min-height:60px;
}

/* ---------- PRIX ---------- */
.woocommerce ul.products li.product .price{
    color:#bfbfbf !important;
    font-size:1.05rem !important;
    font-weight:900 !important;
    padding:0 18px 18px;
}

/* ---------- BOUTON ---------- */
.woocommerce ul.products li.product .button{
    margin:0 18px 18px !important;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff !important;
    color:#000 !important;
    border:none;
    border-radius:6px;
    font-size:13px;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
    transition:.25s;
}
.woocommerce ul.products li.product .button:hover{
    background:#222 !important;
    color:#fff !important;
}

/* ---------- HEADER ---------- */
.woocommerce-products-header{
    margin-bottom:40px;
}
.woocommerce-products-header h1{
    color:#fff;
    font-size:2.4rem;
    font-weight:900;
    margin-bottom:10px;
}
.woocommerce-result-count{
    color:#999;
}

/* ---------- TRI ---------- */
.woocommerce-ordering{
    margin-bottom:30px;
}
.woocommerce-ordering select{
    background:#111;
    color:#fff;
    border:1px solid #333;
    border-radius:6px;
    height:46px;
    padding:0 16px;
}

/* ---------- PAGINATION ---------- */
.woocommerce nav.woocommerce-pagination{
    margin-top:50px;
}
.woocommerce nav.woocommerce-pagination ul{
    border:none;
}
.woocommerce nav.woocommerce-pagination ul li{
    border:none;
    margin:0 5px;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
    background:#111;
    color:#fff;
    border-radius:6px;
    padding:12px 16px;
}
.woocommerce nav.woocommerce-pagination ul li span.current{
    background:#fff;
    color:#000;
}

/* ==========================================================
   RESPONSIVE
========================================================== */
/* Grand écran */
@media (max-width:1400px){
    .woocommerce ul.products{
        grid-template-columns:repeat(4,1fr);
    }
}
/* Portable */
@media (max-width:1100px){
    .woocommerce ul.products{
        grid-template-columns:repeat(3,1fr);
        gap:22px;
    }
}
/* Tablette */
@media (max-width:768px){
    .woocommerce ul.products{
        grid-template-columns:repeat(2,1fr);
        gap:18px;
    }
    .woocommerce-products-header{
        text-align:center;
    }
    .woocommerce-products-header h1{
        font-size:2rem;
    }
    .woocommerce .woocommerce-ordering{
        width:100%;
    }
    .woocommerce-ordering select{
        width:100%;
    }
}
/* Mobile */
@media (max-width:480px){
    .woocommerce ul.products{
        grid-template-columns:1fr;
        gap:20px;
    }
    .woocommerce-products-header h1{
        font-size:1.8rem;
    }
    .woocommerce ul.products li.product .woocommerce-loop-product__title{
        font-size:1rem;
    }
}

/* CONTENEUR SHOP */
.woocommerce-page .site-main,
.post-type-archive-product .site-main,
.tax-product_cat .site-main{
    max-width:1450px;
    width:92%;
    margin:auto;
}
.woocommerce-result-count{
    color:#aaa;
    font-size:15px;
}
.woocommerce-ordering{
    margin-bottom:40px;
}

/* --- PANIER & FORMS --- */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.form-container { display: flex; flex-direction: column; gap: 2rem; width: 100%; }
.form-group { display: flex; flex-direction: column; position: relative; }
.form-group label { text-transform: uppercase; font-size: 0.75rem; font-weight: 700; color: var(--text-muted); margin-bottom: 0.5rem; }
.form-group input, .form-group textarea { background: transparent; border: none; border-bottom: 1px solid var(--border); color: var(--text); padding: 0.75rem 0; font-size: 1rem; transition: border-color 0.3s; font-family: var(--font); }
.form-group input:focus, .form-group textarea:focus { border-bottom-color: var(--border-hover); }

.cart-table { width: 100%; border-collapse: collapse; margin-bottom: 3rem; }
.cart-table th { text-align: left; padding: 1rem 0; border-bottom: 2px solid var(--border); text-transform: uppercase; font-size: 0.8rem; color: var(--text-muted); }
.cart-table td { padding: 1.5rem 0; border-bottom: 1px solid var(--border); vertical-align: middle; }
.cart-item-name { font-weight: 800; text-transform: uppercase; font-size: 1.1rem; }
.cart-item-price { font-weight: 700; font-variant-numeric: tabular-nums; }
.cart-remove { color: #ff3333; cursor: pointer; font-size: 0.8rem; text-transform: uppercase; font-weight: 700; }
.cart-summary { display: flex; justify-content: space-between; align-items: center; padding: 2rem 0; border-bottom: 2px solid var(--text); margin-bottom: 2rem; }
.cart-total { font-size: 2.5rem; font-weight: 900; }

/* --- BANNIÈRE VIDÉO NATIVE --- */
:root { --banner-height: 25vh; }
.global-banner { position: relative; margin-top: var(--header-height); width: 100vw; height: var(--banner-height); background: var(--bg); overflow: hidden; border-bottom: 2px solid var(--border); display: flex; align-items: center; justify-content: center; }
.video-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; opacity: 0.7; }
.bg-video { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }

/* --- BOUTON RETOUR EN HAUT --- */
#scrollTopBtn { position: fixed; bottom: 30px; right: 30px; z-index: 2000; }
#scrollTopBtn.visible { opacity: 1; pointer-events: auto; }
#scrollTopBtn:hover { background-color: var(--text); color: var(--bg); transform: translateY(-5px); }

/* --- PARTENAIRES --- */
.partners-section { padding: 5rem 3rem; text-align: center; background: #030303; }
.partners-title { color: #555; text-transform: uppercase; font-size: 0.8rem; font-weight: 900; letter-spacing: 3px; margin-bottom: 3rem; }
.partners-grid { display: flex; justify-content: center; align-items: center; gap: 4rem; flex-wrap: wrap; }
.partner-logo { font-size: 1.8rem; font-weight: 900; text-transform: uppercase; letter-spacing: -1px; color: #444; transition: color 0.3s; cursor: pointer; }
.partner-logo:hover { color: var(--text); }

/* --- STYLES DES PAGES LÉGALES --- */
#mentions-legales, #cgu, #confidentialite { align-items: center; }
#mentions-legales h1, #cgu h1, #confidentialite h1, #cgu .subtitle { text-align: center; width: 100%; }
.legal-content { max-width: 800px; width: 100%; margin: 0 auto 4rem auto; text-align: left; }
.legal-content h3 { font-size: 1.5rem; text-transform: uppercase; font-weight: 800; margin: 2.5rem 0 1rem 0; color: var(--text); border-bottom: 1px solid var(--border); padding-bottom: 0.5rem; }
.legal-content p { color: var(--text-muted); line-height: 1.8; font-size: 1rem; margin-bottom: 1.5rem; }
.legal-content strong { color: var(--text); }
.legal-content a { color: var(--text); text-decoration: none; border-bottom: 1px solid var(--text); transition: opacity 0.3s; }
.legal-content a:hover { opacity: 0.7; }
.legal-title { font-size: clamp(2rem, 10vw, 4rem) !important; word-break: break-word; padding: 0 15px; }

/* --- FOOTER GLOBAL --- */
.global-footer { background: #050505; border-top: 1px solid var(--border); padding: 4rem 3rem 2rem 3rem; margin-top: 4rem; width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; }
.footer-content { display: grid; grid-template-columns: 2fr 1fr 1.5fr; gap: 4rem; margin-bottom: 3rem; max-width: 1400px; margin-left: auto; margin-right: auto; }
.footer-brand h2 { font-size: 2rem; font-weight: 900; text-transform: uppercase; letter-spacing: -1px; margin-bottom: 1rem; }
.footer-brand p { color: var(--text-muted); font-size: 0.9rem; line-height: 1.6; max-width: 350px; }
.footer-socials h3, .footer-newsletter h3 { font-size: 1rem; text-transform: uppercase; margin-bottom: 1.5rem; color: var(--text); font-weight: 800; }
.social-links { display: flex; flex-direction: column; gap: 0.8rem; }
.social-links a { color: var(--text-muted); text-decoration: none; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; transition: color 0.3s ease; width: fit-content; }
.social-links a:hover { color: var(--text); }
.footer-newsletter p { color: var(--text-muted); font-size: 0.85rem; margin-bottom: 1rem; }

/* Formulaire Newsletter PC */
.newsletter-form { display: flex; gap: 0.5rem; width: 100%; }
.newsletter-form input { flex: 1; background: transparent; border: 1px solid var(--border); color: var(--text); padding: 0.8rem 1rem; font-family: var(--font); font-size: 0.85rem; transition: border-color 0.3s; outline: none; }
.newsletter-form input:focus { border-color: var(--text); }
.newsletter-form .btn-core { padding: 0.8rem 1.5rem; }

.footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 2rem; border-top: 1px solid var(--border); flex-wrap: wrap; gap: 1rem; max-width: 1400px; margin-left: auto; margin-right: auto; }
.legal-links { display: flex; gap: 2rem; }
.legal-links a { color: var(--text-muted); text-decoration: none; font-size: 0.75rem; text-transform: uppercase; font-weight: 700; transition: color 0.3s; }
.legal-links a:hover { color: var(--text); }
.copyright { color: var(--text-muted); font-size: 0.75rem; }

/* --- RESPONSIVE MOBILE & TABLETTE --- */
@media (max-width: 1024px) {
    h1.section-title { 
        font-size: clamp(2rem, 8vw, 3rem) !important; 
        line-height: 1.1 !important;
        word-wrap: break-word !important; 
        margin-bottom: 2rem !important;
    }
    .spots-wrapper { grid-template-columns: 1fr; height: auto; }
    .map-engine { height: 400px; }
    .contact-container, .form-grid { grid-template-columns: 1fr; gap: 3rem; }
    .stats-bar { grid-template-columns: 1fr; }
    .stat-box { border-right: none; border-bottom: 1px solid var(--border); }
    .stat-box:last-child { border-bottom: none; }
    .split-grid { grid-template-columns: 1fr; gap: 3rem; }
    .community-cta div { flex-direction: column; }
    .manifesto-list { grid-template-columns: 1fr; }
    .tutos-manifesto { padding: 2rem; }
    nav ul { gap: 1rem; }
}

@media (max-width: 768px) {
    html, body, main { overflow-x: hidden !important; width: 100vw !important; max-width: 100%; }
    header { padding: 0 1.5rem; }
    .burger { display: block; }
    nav ul { flex-direction: column; gap: 2rem; text-align: center; }
    nav a { font-size: 1.5rem; }
    .page-view { padding: calc(var(--header-height) + 1.5rem) 1rem 2rem 1rem; } 
    
    .search-form-container input { font-size: 1rem; min-width: 100%; }
    .search-form-container button { width: 100%; }
    .tutos-filters { gap: 0.5rem; justify-content: center; }
    .filter-badge { padding: 0.6rem 1rem; font-size: 0.65rem; width: 48%; text-align: center; } 
    .video-grid-container { grid-template-columns: 1fr; gap: 2rem; } 
    .global-banner { height: 20vh; }
    .cards-grid-3 { grid-template-columns: 1fr !important; padding: 0 1.5rem !important; gap: 1.5rem !important; }
    .video-embed-wrapper { width: 100% !important; }

    h1.section-title,
    .section-header-pro h2,
    .community-cta h2,
    .home-section h2,
    .split-text h3 {
        font-size: 1.8rem !important; 
        line-height: 1.2 !important;
        text-align: center !important; 
        word-break: break-word !important; 
        margin-bottom: 1.5rem !important;
        letter-spacing: -1px !important;
        width: 100% !important;
    }

    .split-text, 
    .home-section[style*="text-align: center"],
    .section-header-pro {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important; 
        text-align: center !important;
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }

    .split-grid { grid-template-columns: 1fr !important; gap: 2rem !important; padding: 0 1.5rem !important; }
    
    .events-list-pro { padding: 0 1.5rem !important; }
    .event-item-pro { flex-direction: column !important; text-align: center !important; gap: 1rem !important; padding: 1.5rem !important; }
    .event-info-pro { margin: 0 !important; }
    .partners-section { padding: 3rem 1.5rem !important; }
    .partners-grid { gap: 1.5rem !important; flex-direction: column !important; }
    .partner-logo { font-size: 1.5rem !important; }

    .contact-grid-pro { grid-template-columns: 1fr; gap: 2rem; }
    .contact-info-card, .contact-form-card { padding: 1.5rem; }
    .contact-header { margin-bottom: 2rem; }

    .cart-table th { display: none; }
    .cart-table td { display: block; padding: 0.5rem 0; border: none; }
    .cart-table tr { display: block; border-bottom: 1px solid var(--border); padding: 1rem 0; }
    .cart-summary { flex-direction: column; align-items: flex-start; gap: 1rem; }
    .event-entry { grid-template-columns: 1fr; gap: 1rem; align-items: flex-start; }
    .event-entry .btn-core { width: 100%; text-align: center; }

    .newsletter-form { flex-direction: column; align-items: center; width: 100%; }
    .newsletter-form input { width: 100%; }
    .newsletter-form .btn-core { margin: 0 auto; width: fit-content; }

    #scrollTopBtn { bottom: 20px; right: 20px; width: 45px; height: 45px; }

    .global-footer { padding: 3rem 1.5rem 1.5rem 1.5rem; }
    .footer-content { grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
    .footer-brand p { margin: 0 auto; }
    .social-links { align-items: center; }
    .footer-bottom { flex-direction: column; text-align: center; gap: 1.5rem; }
    .legal-links { flex-direction: column; gap: 1rem; }

    #mentions-legales h1.section-title.legal-title,
    #cgu h1.section-title.legal-title,
    #confidentialite h1.section-title.legal-title { 
        font-size: 1.8rem !important; line-height: 1.1 !important; letter-spacing: -1px !important;
    }

    .community-cta { padding: 4rem 1.5rem !important; }
    .community-cta div { flex-direction: column !important; align-items: center !important; width: 100% !important; }
    .community-cta div a { width: 100% !important; max-width: 300px !important; text-align: center !important; margin: 0 !important; }
}

/* --- LIENS PARTENAIRES --- */
.partner-link { text-decoration: none; color: inherit; }
.partner-link:hover .partner-logo { color: var(--text); }

/* --- NOUVEAU DASHBOARD COMPTE (PRO, NOIR & BLANC) --- */
.dashboard-wrapper { max-width: 1200px; margin: 0 auto; width: 100%; }
.dashboard-grid { display: grid; grid-template-columns: 350px 1fr; gap: 2rem; align-items: start; }

.auth-widget { background: #0a0a0a; border-radius: 4px; border: 1px solid var(--border); overflow: hidden; }
.auth-tabs { display: flex; padding: 1rem 1rem 0 1rem; gap: 0.5rem; background: #000; border-bottom: 1px solid var(--border); }
.auth-tabs button { flex: 1; padding: 0.8rem; background: #111; color: var(--text-muted); border: 1px solid var(--border); border-bottom: none; border-radius: 4px 4px 0 0; font-weight: 800; text-transform: uppercase; font-size: 0.75rem; cursor: pointer; transition: 0.3s; }
.auth-tabs button.active { background: #fff; color: #000; border-color: #fff; }

.auth-body { padding: 2rem 1.5rem; }
.auth-body label { display: block; font-size: 0.75rem; text-transform: uppercase; font-weight: 800; color: var(--text-muted); margin-bottom: 0.5rem; letter-spacing: 1px; }
.auth-input { width: 100%; background: #000; border: 1px solid var(--border); color: #fff; padding: 1rem; margin-bottom: 1.5rem; font-size: 0.9rem; outline: none; transition: border-color 0.3s; }
.auth-input:focus { border-color: #fff; }

.btn-bw { width: 100%; background: #fff; color: #000; font-weight: 900; text-transform: uppercase; letter-spacing: 1px; padding: 1rem; border: none; cursor: pointer; font-size: 0.85rem; transition: opacity 0.3s; }
.btn-bw:hover { opacity: 0.8; }
.btn-dark { width: 100%; background: transparent; color: #fff; font-weight: 800; text-transform: uppercase; padding: 1rem; border: 1px solid var(--border); cursor: pointer; font-size: 0.85rem; transition: 0.3s; }
.btn-dark:hover { background: #fff; color: #000; }

.panel-widget { background: #0a0a0a; border: 1px solid var(--border); padding: 2rem; margin-bottom: 2rem; }
.panel-header { font-size: 1.2rem; text-transform: uppercase; font-weight: 900; margin-bottom: 1.5rem; border-bottom: 1px solid var(--border); padding-bottom: 1rem; color: #fff; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }

.fav-filters { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.fav-filters button { background: transparent; color: var(--text-muted); border: 1px solid var(--border); padding: 6px 10px; font-size: 0.7rem; font-weight: 800; cursor: pointer; text-transform: uppercase; transition: 0.3s; }
.fav-filters button.active, .fav-filters button:hover { color: #fff; border-color: #fff; }

.compact-form { display: flex; gap: 1rem; align-items: flex-end; flex-wrap: wrap; }
.compact-form .form-group-pro { margin: 0; flex: 1; min-width: 200px; }
.compact-form .btn-core { padding: 1rem 1.5rem; height: 50px; margin-top: 0; border: 1px solid #fff; background: #fff; color: #000; }
.compact-form .btn-core:hover { background: #000; color: #fff; }
.compact-form input { height: 50px; padding: 0.5rem 1rem; }

@media(max-width: 900px) {
    .dashboard-grid { grid-template-columns: 1fr; gap: 2rem; }
    .auth-widget, .panel-widget { padding: 1rem; margin-bottom: 0; }
    .auth-body { padding: 1.5rem 1rem; }
    .compact-form { flex-direction: column; align-items: stretch; }
    .compact-form .btn-core { width: 100%; }
    .panel-header { flex-direction: column; align-items: flex-start; }
}

/* --- NOUVEAU DESIGN FORUM --- */
.forum-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; flex-wrap: wrap; gap: 1rem; }
.btn-back { background: transparent; color: var(--text-muted); border: none; font-size: 0.85rem; font-weight: 800; text-transform: uppercase; cursor: pointer; display: flex; align-items: center; gap: 0.5rem; transition: color 0.3s; }
.btn-back:hover { color: #fff; }

.topic-list { display: flex; flex-direction: column; gap: 1rem; }
.topic-item { background: #0a0a0a; border: 1px solid var(--border); padding: 1.5rem; display: flex; justify-content: space-between; align-items: center; cursor: pointer; transition: 0.3s; }
.topic-item:hover { border-color: #fff; background: #111; }

.topic-info h4 { font-size: 1.1rem; color: #fff; margin-bottom: 0.5rem; text-transform: uppercase; font-weight: 800; }
.topic-meta { font-size: 0.75rem; color: var(--text-muted); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.topic-stats { text-align: right; font-size: 0.8rem; color: var(--text-muted); font-weight: 800; }
.topic-stats span { display: block; color: #fff; font-size: 1.2rem; }

.new-topic-form { background: #0a0a0a; border: 1px solid var(--border); padding: 2rem; margin-bottom: 2rem; display: none; }

/* --- ANIMATIONS ET DESIGN MOBILE (VISION) --- */
.img-arrondie { border-radius: 16px; }
.texte-deroulant { display: none; }
.texte-deroulant.ouvert { display: block; animation: fadeInDown 0.4s ease-out forwards; }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
.btn-vision-mobile { background: transparent; border: 1px solid var(--border); color: var(--text-muted); cursor: pointer; text-transform: uppercase; font-weight: 800; font-size: 0.75rem; letter-spacing: 1px; display: flex; align-items: center; justify-content: center; gap: 8px; margin: 1.5rem auto 0 auto; padding: 0.8rem 1.5rem; border-radius: 4px; transition: all 0.3s; }
.btn-vision-mobile #fleche-vision { font-size: 0.6rem; }
.btn-vision-mobile:hover { color: var(--text); border-color: var(--text); }
@media (min-width: 1025px) {
    .texte-deroulant { display: block !important; }
    .btn-vision-mobile { display: none !important; }
}

/* =========================================================
   THE MR - WOOCOMMERCE
   Version propre
   ========================================================= */
:root{
    --bg:#000;
    --surface:#111;
    --border:#2e2e2e;
    --text:#fff;
    --muted:#a5a5a5;
    --radius:8px;
}

body, .woocommerce, .woocommerce-page{
    background:var(--bg);
    color:var(--text);
}
#secondary, .widget-area{
    display:none!important;
}

.single-product div.product{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:60px;
    align-items:start;
}

.single-product .woocommerce-product-gallery{
    width:100%!important;
    margin:0!important;
}
.single-product .woocommerce-product-gallery__wrapper{
    display:block;
}
.single-product .woocommerce-product-gallery img{
    width:100%;
    display:block;
    border:1px solid var(--border);
    border-radius:var(--radius);
    background:#fff;
    object-fit:contain;
}

.single-product .summary{
    width:100%!important;
    float:none!important;
}

.product_title{
    color:#fff;
    font-size:2.7rem;
    line-height:1.15;
    font-weight:900;
    margin-bottom:15px;
}

.price{
    color:var(--muted)!important;
    font-size:1.5rem!important;
    font-weight:800!important;
    margin-bottom:25px;
}

.woocommerce-product-details__short-description{
    color:#d6d6d6;
    line-height:1.8;
    margin-bottom:35px;
}

table.variations{
    width:100%;
    border-collapse:collapse;
    margin-bottom:25px;
}
table.variations tr{
    display:block;
    margin-bottom:25px;
}
table.variations td{
    display:block;
    width:100%;
    padding:0;
    border:none;
}
table.variations th{
    display:block;
    padding:0 0 10px;
    border:none;
}
table.variations label{
    display:block;
    color:#fff;
    font-size:14px;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
}

table.variations select,
.woocommerce div.product form.cart .variations select{
    width:100%;
    height:55px;
    padding:0 18px;
    background:#111!important;
    color:#fff!important;
    border:1px solid var(--border);
    border-radius:6px;
    outline:none;
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    cursor:pointer;
}
table.variations select option{
    background:#111!important;
    color:#fff!important;
    padding:10px;
}
select{
    color-scheme:dark;
}

form.cart{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:15px;
    margin-top:30px;
}
.quantity{
    margin:0!important;
}
.quantity input.qty{
    width:80px;
    height:55px;
    background:#111;
    color:#fff;
    border:1px solid var(--border);
    border-radius:6px;
    text-align:center;
    font-weight:700;
}

.single_add_to_cart_button{
    height:55px!important;
    background:#fff!important;
    color:#000!important;
    border:none!important;
    border-radius:6px;
    font-size:15px;
    font-weight:900!important;
    text-transform:uppercase;
    padding:0 40px!important;
    transition:.25s;
}
.single_add_to_cart_button:hover{
    opacity:.85;
}

.woocommerce-tabs{
    width:100%;
    clear:both;
    margin:80px auto 0 !important;
    display:block;
}
.woocommerce-tabs::before, .woocommerce-tabs::after{
    content:"";
    display:block;
    clear:both;
}
.woocommerce-tabs ul.tabs{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    padding:0;
    margin:0 0 35px;
    border:none;
}
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after{
    display:none !important;
}
.woocommerce-tabs ul.tabs li{
    float:none !important;
    margin:0 !important;
    padding:0 !important;
    border:1px solid var(--border)!important;
    border-radius:6px;
    background:#111!important;
}
.woocommerce-tabs ul.tabs li.active{
    background:#fff!important;
    border-color:#fff!important;
}
.woocommerce-tabs ul.tabs li a{
    display:block;
    padding:14px 22px;
    color:#fff!important;
    font-weight:700;
    text-transform:uppercase;
}
.woocommerce-tabs ul.tabs li.active a{
    color:#000!important;
}
.woocommerce-tabs .panel{
    width:100%;
    max-width:1200px;
    margin:0 auto;
    padding:35px;
    background:#000;
    border:1px solid var(--border);
    border-radius:8px;
    color:#ddd;
    box-sizing:border-box;
}

.product_meta{
    display:none;
}

ul.products li.product{
    background:transparent;
}
ul.products li.product img{
    width:100%;
    border:1px solid var(--border);
}
ul.products li.product .woocommerce-loop-product__title{
    color:#fff;
    font-weight:800;
    text-transform:uppercase;
}
ul.products li.product .price{
    color:var(--muted)!important;
}
ul.products li.product .button{
    background:#fff!important;
    color:#000!important;
    font-weight:800;
    text-transform:uppercase;
}

@media (max-width:991px){
    .single-product div.product{
        grid-template-columns:1fr;
        gap:40px;
    }
    .product_title{
        font-size:2rem;
    }
}

@media (max-width:768px){
    .single-product div.product{
        display:grid;
        grid-template-columns:1fr;
        gap:30px;
    }
    .single-product .woocommerce-product-gallery{
        order:1;
    }
    .single-product .summary{
        order:2;
    }
    .product_title{
        font-size:1.8rem;
        line-height:1.2;
    }
    .price{
        font-size:1.3rem!important;
    }
    form.cart{
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:15px;
    }
    .quantity{
        width:100%;
    }
    .quantity input.qty{
        width:100%;
    }
    .single_add_to_cart_button{
        width:100%!important;
        padding:0!important;
    }
    table.variations select{
        width:100%;
    }
}

@media (max-width:480px){
    .product_title{
        font-size:1.55rem;
    }
    .price{
        font-size:1.15rem!important;
    }
    .single-product div.product{
        gap:20px;
    }
}

.woocommerce div.product form.cart .variations{
    margin-bottom:20px;
}
.woocommerce div.product form.cart .variations td{
    vertical-align:middle;
}
.reset_variations{
    display:inline-block;
    margin-top:10px;
    color:#999;
}
.reset_variations:hover{
    color:#fff;
}

#wc-amazon-payments-booking, #wc-amazon-payments-advanced, .amazon-payments-pay-button{
    width:100%;
    margin-top:15px;
}
.woocommerce div.product form.cart .button {
    background-color: #ffffff !important;
    color: #000000 !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    border: none !important;
    padding: 0 2rem !important;
    height: 55px !important;
    transition: background 0.3s !important;
}
.woocommerce div.product form.cart .button:hover {
    background-color: #ffffff !important;
}

@media (max-width:768px){
    .woocommerce div.product, .single-product div.product{
        display:block !important;
        width:100% !important;
        margin:0 !important;
        padding:0 !important;
    }
    .woocommerce div.product div.images, .woocommerce div.product div.summary{
        float:none !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
    }
    .woocommerce-product-gallery{
        width:100% !important;
        margin-bottom:30px !important;
    }
    .woocommerce-product-gallery img{
        width:100% !important;
        height:auto !important;
    }
    .summary{
        width:100% !important;
    }
    .woocommerce-tabs{
        display:block !important;
        clear:both !important;
        width:100% !important;
        margin-top:40px !important;
    }
    table.variations{
        width:100% !important;
    }
    table.variations tr, table.variations td, table.variations th{
        display:block !important;
        width:100% !important;
    }
    form.cart{
        display:flex !important;
        flex-direction:column !important;
    }
    .quantity, .quantity input.qty, .single_add_to_cart_button{
        width:100% !important;
    }
}

.single-product div.product{
    align-items:start;
}
.woocommerce-tabs{
    grid-column:1 / -1;
}
.single-product .summary, .single-product .woocommerce-product-gallery{
    align-self:start;
}

/* =======================================================
   CORRECTION FINALE : GALERIE WOOCOMMERCE
   ======================================================= */

.woocommerce div.product, 
.woocommerce-page div.product,
.single-product div.product {
    display: grid !important;
    grid-template-columns: 1.1fr 1fr !important;
    gap: 60px !important;
    align-items: start !important;
}

.woocommerce #content div.product div.images, 
.woocommerce div.product div.images,
.woocommerce-product-gallery {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

.woocommerce #content div.product div.summary, 
.woocommerce div.product div.summary {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

.woocommerce-product-gallery__image img,
.woocommerce-product-gallery img {
    width: 100% !important;
    height: auto !important;
    max-height: 650px !important;
    object-fit: contain !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    margin: 0 auto !important;
}

@media (max-width: 991px) {
    .woocommerce div.product, 
    .woocommerce-page div.product,
    .single-product div.product {
        display: flex !important;
        flex-direction: column !important;
    }
    
    .image-manuelle-alpharun, 
    .woocommerce-product-gallery {
        order: 1 !important;
        width: 100% !important;
    }
    
    .summary.entry-summary {
        order: 2 !important;
        width: 100% !important;
        margin-bottom: 40px !important;
    }
    
    .woocommerce-tabs {
        order: 3 !important;
        width: 100% !important;
    }
}

/* =========================================================
   1. FIX MOBILE : PRODUITS SIMILAIRES TOUT EN BAS + CARROUSEL
   ========================================================= */

/* On force la pleine largeur pour les produits similaires sur PC */
@media (min-width: 992px) {
    .related.products, .up-sells {
        grid-column: 1 / -1 !important; 
        margin-top: 60px !important;
    }
}

/* On force l'ordre d'affichage strict sur Mobile */
@media (max-width: 991px) {
    .woocommerce-product-gallery { order: 1 !important; }
    .summary.entry-summary { order: 2 !important; }
    .woocommerce-tabs { order: 3 !important; }
    
    /* Les produits similaires obligatoirement TOUT EN BAS (Order 10) */
    .related.products, .up-sells { 
        order: 10 !important; 
        margin-top: 50px !important;
        width: 100% !important;
    }
}

/* Transformation en Carrousel (Scroll Horizontal) pour Mobile */
@media (max-width: 768px) {
    .related.products ul.products, 
    .up-sells ul.products {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        scroll-snap-type: x mandatory !important;
        gap: 15px !important;
        padding-bottom: 20px !important;
        margin: 0 !important;
    }
    .related.products ul.products li.product,
    .up-sells ul.products li.product {
        flex: 0 0 75% !important; /* Affiche 1 carte + un bout de la suivante */
        scroll-snap-align: start !important;
        margin: 0 !important;
    }
    /* Cache la barre de défilement moche pour un effet "Application" */
    .related.products ul.products::-webkit-scrollbar,
    .up-sells ul.products::-webkit-scrollbar {
        display: none !important;
    }
}


/* =========================================================
   FIX RESPONSIVE : PHOTOS DANS LES AVIS CLIENTS
   -> Désactivé : la gestion des photos d'avis est désormais
      entièrement pilotée par le CSS custom de Photo Reviews
      (Photo Reviews > Rating Counts & Filters > Custom CSS)
      pour éviter tout conflit de spécificité avec les règles
      ci-dessous. Ne pas réactiver sans supprimer l'équivalent
      côté plugin.
   ========================================================= */

#reviews .commentlist,
.woocommerce-Reviews .commentlist {
    width: 100% !important;
    padding: 0 !important;
    list-style: none !important;
}

#reviews li.comment,
.woocommerce-Reviews li.comment {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    #reviews,
    .woocommerce-Reviews {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 1.5rem !important;
        overflow-x: hidden !important;
    }
}

/* =========================================================
   ETOILES SUR LA PAGE BOUTIQUE / CATEGORIES (fiches produits)
   ========================================================= */
.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .star-rating a,
.woocommerce ul.products li.product .star-rating span,
.woocommerce ul.products li.product .star-rating::before,
.woocommerce ul.products li.product .star-rating span::before {
    color: #fff !important;
}

/* =========================================================
   PANNEAU DE FILTRES "CLEAN" (TIROIR BLANC) - CORRECTION FINALE
   ========================================================= */

/* Bouton Burger Filter & Sort */
.ar-filter-trigger {
    background: transparent !important; border: none !important; color: var(--text) !important; 
    font-family: var(--font) !important; font-size: 0.85rem !important; font-weight: 300 !important;
    letter-spacing: 2px !important; cursor: pointer !important; display: flex !important;
    align-items: center !important; gap: 12px !important; padding: 10px 0 !important;
    transition: opacity 0.3s ease !important; text-transform: uppercase !important;
}
.ar-filter-trigger:hover { opacity: 0.7; }
.ar-filter-trigger svg { stroke-width: 1.5; }

/* Panneau Coulissant Blanc */
.ar-side-panel {
    position: fixed; top: 0; left: -450px; width: 380px; max-width: 85vw; height: 100vh;
    background: #ffffff; color: #000000; z-index: 999999;
    transition: left 0.4s cubic-bezier(0.16, 1, 0.3, 1); display: flex; flex-direction: column;
    box-shadow: 10px 0 30px rgba(0,0,0,0.5);
}
.ar-side-panel.active { left: 0; }

/* Fond assombri */
.ar-panel-overlay {
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.6);
    z-index: 999998; opacity: 0; pointer-events: none; transition: opacity 0.4s ease;
}
.ar-panel-overlay.active { opacity: 1; pointer-events: auto; }

/* En-tête */
.ar-panel-header {
    display: flex; justify-content: space-between; align-items: center; padding: 25px 30px; border-bottom: 1px solid #f0f0f0;
}
.ar-panel-header h3 { margin: 0; font-weight: 800; font-size: 1.1rem; letter-spacing: 1px; color: #000; text-transform: uppercase; }
.ar-close-btn { background: transparent; border: none; font-size: 1.2rem; font-weight: 300; cursor: pointer; color: #000; padding: 0; }

/* Zone des Filtres */
.ar-panel-content { padding: 20px 30px; overflow-y: auto; flex: 1; }
.ar-panel-content .wpc-filters-widget-main-wrapper { background: transparent !important; border: none !important; padding: 0 !important; }

/* --- TITRES DES FILTRES ET FLÈCHES DÉROULANTES --- */
.ar-panel-content .wpc-filter-title {
    position: relative !important;
    color: #000000 !important; font-weight: 800 !important; font-size: 0.85rem !important;
    letter-spacing: 1px !important; text-transform: uppercase !important; border-bottom: none !important;
    margin-bottom: 15px !important; margin-top: 25px !important; padding-right: 20px !important;
    display: block !important; cursor: pointer !important; user-select: none !important;
}

/* Flèche fine 100% CSS */
.ar-panel-content .wpc-filter-title::after {
    content: "" !important; position: absolute !important; right: 5px !important; top: 50% !important;
    width: 8px !important; height: 8px !important;
    border-right: 1px solid #000000 !important; border-bottom: 1px solid #000000 !important;
    transform: translateY(-50%) rotate(45deg) !important; /* Ouvert : Pointe en bas */
    transition: transform 0.3s ease !important; display: block !important;
}

/* Flèche quand fermé (Pointe à droite) */
.ar-panel-content .wpc-filter-title.ar-closed::after {
    transform: translateY(-50%) rotate(-45deg) !important; 
}

/* Masquer le contenu de force quand le TITRE est fermé */
.ar-panel-content .wpc-filter-title.ar-closed + .wpc-filter-content,
.ar-panel-content .wpc-filter-title.ar-closed + ul,
.ar-panel-content .wpc-filter-title.ar-closed ~ .wpc-filter-content,
.ar-panel-content .wpc-filter-title.ar-closed ~ ul {
    display: none !important;
}

/* Nettoyer le code natif du plugin */
.ar-panel-content .wpc-filter-title .wpc-toggle-icon,
.ar-panel-content .wpc-filter-title svg,
.ar-panel-content .wpc-toggle-btn { display: none !important; }

/* --- NETTOYAGE ABSOLU DES CASES À COCHER --- */
.ar-panel-content .wpc-term-item::before,
.ar-panel-content .wpc-term-item a::before,
.ar-panel-content .wpc-term-item label::before {
    display: none !important; content: none !important;
}

.ar-panel-content ul { list-style: none !important; padding-left: 0 !important; }
.ar-panel-content .wpc-term-item { display: flex !important; align-items: center !important; margin-bottom: 12px !important; }

/* TEXTES */
.ar-panel-content .wpc-term-item a, 
.ar-panel-content .wpc-term-item label {
    display: flex !important; align-items: center !important;
    color: #666666 !important; font-weight: 400 !important; font-size: 0.9rem !important; 
    letter-spacing: 0.5px !important; text-decoration: none !important; cursor: pointer !important; width: 100% !important;
}
.ar-panel-content .wpc-term-name { flex: 1; margin-left: 10px; }
.ar-panel-content .wpc-term-count { color: #aaaaaa !important; font-size: 0.75rem !important; margin-left: auto !important; }

/* STYLE DE LA VRAIE CHECKBOX NATIVE (Celle qui fonctionne) */
.ar-panel-content .wpc-term-item input[type="checkbox"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-block !important; /* Force l'affichage du vrai carré */
    width: 16px !important; height: 16px !important; 
    border: 1px solid #cccccc !important; 
    background: transparent !important; 
    transition: all 0.2s ease !important; 
    flex-shrink: 0 !important; 
    border-radius: 2px !important;
    cursor: pointer !important;
    position: relative !important;
    margin: 0 !important;
}

/* La vraie case quand elle est cochée */
.ar-panel-content .wpc-term-item input[type="checkbox"]:checked,
.ar-panel-content .wpc-term-item.wpc-term-selected input[type="checkbox"] {
    background-color: #000000 !important; 
    border-color: #000000 !important;
}

/* La coche blanche (✓) à l'intérieur */
.ar-panel-content .wpc-term-item input[type="checkbox"]:checked::after,
.ar-panel-content .wpc-term-item.wpc-term-selected input[type="checkbox"]::after {
    content: "" !important; position: absolute !important;
    left: 4px !important; top: 1px !important; width: 4px !important; height: 8px !important;
    border: solid white !important; border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
}

/* Hover */
.ar-panel-content .wpc-term-item:hover input[type="checkbox"] { border-color: #000000 !important; }
.ar-panel-content .wpc-term-item:hover a, 
.ar-panel-content .wpc-term-item:hover label, 
.ar-panel-content .wpc-term-item:hover .wpc-term-name { color: #000000 !important; }