/* ============================================
   UNIVERS PADEL — DESIGN SYSTEM CSS
   Version 1.1 — Mars 2026
   
   POUR MODIFIER LES COULEURS :
   Changez les variables ci-dessous, tout le site suivra.
   
   Exemple : changer le bouton Padel Nuestro en bleu :
   --up-pn-bg: #3b5bdb;
   --up-pn-hover: #2b4bc8;
   ============================================ */

/* === VARIABLES GLOBALES === */
:root {
    /* Fond & texte */
    --up-bg: #ffffff;
    --up-bg-soft: #f8f9fb;
    --up-bg-card: #ffffff;
    --up-bg-muted: #f1f3f6;
    --up-border: #e2e6ed;
    --up-border-light: #edf0f5;
    --up-text: #1a1f2e;
    --up-text-secondary: #5a6278;
    --up-text-muted: #8b92a5;

    /* Accent */
    --up-electric: #3b5bdb;
    --up-electric-light: #edf0ff;
    --up-cyan: #0c8599;
    --up-cyan-light: #e6f7f9;
    --up-yellow: #f0b429;
    --up-orange: #e8590c;
    --up-green: #2f9e44;
    --up-green-light: #ebfbee;
    --up-red: #e03131;
    --up-red-light: #fff0f0;

    /* Bouton Padel Nuestro (MODIFIER ICI pour changer la couleur) */
    --up-pn-bg: #1a5c2a;
    --up-pn-hover: #157a2d;
    --up-pn-text: #ffffff;

    /* Bouton Amazon (MODIFIER ICI pour changer la couleur) */
    --up-amazon-bg: #f5a623;
    --up-amazon-hover: #e0950d;
    --up-amazon-text: #1a1a1a;

    /* Rayons de bordure */
    --up-radius: 12px;
    --up-radius-sm: 8px;
    --up-radius-xs: 6px;

    /* Ombres */
    --up-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --up-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 4px 16px rgba(0,0,0,0.04);
    --up-shadow-lg: 0 4px 12px rgba(0,0,0,0.08), 0 8px 32px rgba(0,0,0,0.06);
}


/* === BREADCRUMBS === */
.up-breadcrumbs {
    padding: 20px 0 12px;
    font-size: 13px;
    color: var(--up-text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.up-breadcrumbs a {
    color: var(--up-text-secondary);
    text-decoration: none;
    transition: color 0.2s;
}
.up-breadcrumbs a:hover { color: var(--up-electric); }
.up-breadcrumbs .sep { opacity: 0.35; font-size: 11px; }


/* === FRESHNESS BADGE === */
.up-freshness {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--up-cyan);
    background: var(--up-cyan-light);
    padding: 5px 14px;
    border-radius: 20px;
    margin-bottom: 20px;
}


/* === PRODUCT HERO (image + info) === */
.up-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    padding: 12px 0 48px;
    align-items: start;
}

.up-hero-image {
    position: relative;
    background: var(--up-bg-soft);
    border-radius: var(--up-radius);
    border: 1px solid var(--up-border-light);
    padding: 40px 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1;
    overflow: hidden;
}

.up-hero-image img {
    max-width: 88%;
    max-height: 88%;
    object-fit: contain;
    filter: drop-shadow(0 6px 20px rgba(0,0,0,0.1));
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.up-hero-image:hover img {
    transform: scale(1.04);
}

.up-promo-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    background: var(--up-red);
    color: white;
    font-weight: 700;
    font-size: 13px;
    padding: 5px 14px;
    border-radius: var(--up-radius-xs);
    z-index: 2;
    letter-spacing: 0.3px;
}

.up-hero-info { padding-top: 4px; }

.up-brand {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    color: var(--up-electric);
    margin-bottom: 6px;
}

.up-product-title,
h1.up-title {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: clamp(28px, 4.5vw, 40px);
    font-weight: 800;
    line-height: 1.12;
    color: var(--up-text);
    margin-bottom: 10px;
}

.up-tagline {
    font-size: 15px;
    color: var(--up-text-secondary);
    margin-bottom: 20px;
    line-height: 1.5;
}


/* === TAGS === */
.up-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}

.up-tag {
    font-size: 12px;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: var(--up-radius-xs);
}

.up-tag--forme {
    background: #fef3e2;
    color: #b45309;
}

.up-tag--level {
    background: var(--up-electric-light);
    color: var(--up-electric);
}

.up-tag--jeu {
    background: var(--up-green-light);
    color: var(--up-green);
}

.up-tag--default {
    background: var(--up-bg-muted);
    color: var(--up-text-secondary);
}


/* === PRIX === */
.up-price-block {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.up-price-current {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 38px;
    font-weight: 800;
    color: var(--up-text);
}

.up-price-old {
    font-size: 18px;
    color: var(--up-text-muted);
    text-decoration: line-through;
}

.up-price-save {
    font-size: 13px;
    font-weight: 700;
    color: var(--up-green);
    background: var(--up-green-light);
    padding: 3px 10px;
    border-radius: var(--up-radius-xs);
}

.up-price-note {
    font-size: 11px;
    color: var(--up-text-muted);
    margin-bottom: 24px;
}


/* === BOUTONS CTA === */
.up-ctas {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.up-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 24px;
    border-radius: var(--up-radius-sm);
    font-family: 'DM Sans', -apple-system, sans-serif;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
    border: none;
    letter-spacing: 0.2px;
}

.up-btn svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* Bouton Padel Nuestro */
.up-btn--pn {
    background: var(--up-pn-bg);
    color: var(--up-pn-text);
    box-shadow: 0 2px 8px rgba(26, 92, 42, 0.25);
}

.up-btn--pn:hover {
    background: var(--up-pn-hover);
    color: var(--up-pn-text);
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(26, 92, 42, 0.35);
}

/* Bouton Amazon */
.up-btn--amazon {
    background: var(--up-amazon-bg);
    color: var(--up-amazon-text);
    box-shadow: 0 2px 8px rgba(245, 166, 35, 0.2);
}

.up-btn--amazon:hover {
    background: var(--up-amazon-hover);
    color: var(--up-amazon-text);
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(245, 166, 35, 0.3);
}


/* === SECTION TITLE === */
.up-section-title {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.up-section-title::before {
    content: '';
    width: 4px;
    height: 22px;
    background: var(--up-electric);
    border-radius: 2px;
    flex-shrink: 0;
}


/* === DIVIDER === */
.up-divider {
    height: 1px;
    background: var(--up-border-light);
    margin: 44px 0;
}


/* === TL;DR === */
.up-tldr {
    background: var(--up-electric-light);
    border: 1px solid #d5dbf5;
    border-radius: var(--up-radius);
    padding: 24px 28px;
}

.up-tldr-title {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--up-electric);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}

.up-tldr ul { list-style: none; padding: 0; margin: 0; }

.up-tldr li {
    font-size: 14px;
    color: var(--up-text-secondary);
    padding: 4px 0 4px 22px;
    position: relative;
    line-height: 1.6;
}

.up-tldr li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--up-electric);
    font-weight: 700;
}

.up-tldr li strong { color: var(--up-text); }


/* === SCORE ENGINE BARS === */
.up-scores-card {
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 28px;
    box-shadow: var(--up-shadow-sm);
}

.up-score-row {
    display: grid;
    grid-template-columns: 130px 1fr 44px;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}

.up-score-row:last-of-type { margin-bottom: 0; }

.up-score-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--up-text-secondary);
}

.up-score-track {
    height: 10px;
    background: var(--up-bg-muted);
    border-radius: 5px;
    overflow: hidden;
}

.up-score-bar {
    height: 100%;
    border-radius: 5px;
    transition: width 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.up-score-bar--high { background: linear-gradient(90deg, #3b82f6, #06b6d4); }
.up-score-bar--mid { background: linear-gradient(90deg, #6366f1, #8b5cf6); }
.up-score-bar--low { background: linear-gradient(90deg, #f59e0b, #f97316); }

.up-score-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--up-text);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.up-score-total {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--up-border-light);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.up-score-total-label {
    font-size: 15px;
    font-weight: 600;
    color: var(--up-text-secondary);
}

.up-score-total-value {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 32px;
    font-weight: 800;
    color: var(--up-electric);
}

.up-score-note {
    margin-top: 16px;
    background: var(--up-bg-soft);
    border: 1px solid var(--up-border-light);
    border-radius: var(--up-radius-sm);
    padding: 14px 18px;
    font-size: 13px;
    color: var(--up-text-secondary);
    line-height: 1.6;
}

.up-score-note strong { color: var(--up-text); }


/* === SPECS TABLE === */
.up-specs {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--up-radius);
    overflow: hidden;
    border: 1px solid var(--up-border);
}

.up-specs tr { transition: background 0.15s; }
.up-specs tr:hover { background: var(--up-bg-soft); }

.up-specs td {
    padding: 13px 20px;
    border-bottom: 1px solid var(--up-border-light);
    font-size: 14px;
}

.up-specs tr:last-child td { border-bottom: none; }

.up-specs td:first-child {
    font-weight: 600;
    color: var(--up-text-secondary);
    width: 180px;
    background: var(--up-bg-soft);
}

.up-specs td:last-child { color: var(--up-text); }

.up-source-note {
    font-size: 12px;
    color: var(--up-text-muted);
    margin-top: 8px;
    font-style: italic;
}

.up-source-note a { color: var(--up-electric); }


/* === TECHNOLOGIES GRID === */
.up-tech-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.up-tech-card {
    background: var(--up-bg-soft);
    border: 1px solid var(--up-border-light);
    border-radius: var(--up-radius-sm);
    padding: 18px 20px;
    transition: border-color 0.2s;
}

.up-tech-card:hover { border-color: var(--up-border); }

.up-tech-card h4 {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 4px;
}

.up-tech-card p {
    font-size: 13px;
    color: var(--up-text-secondary);
    line-height: 1.55;
    margin: 0;
}


/* === EDITORIAL CONTENT === */
.up-editorial {
    font-size: 15.5px;
    line-height: 1.85;
    color: var(--up-text-secondary);
}

.up-editorial p { margin-bottom: 16px; }
.up-editorial strong { color: var(--up-text); font-weight: 600; }


/* === PROS / CONS === */
.up-verdict-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 24px 0;
}

.up-verdict-card {
    border-radius: var(--up-radius-sm);
    padding: 22px 20px;
    border: 1px solid;
}

.up-verdict-card--pro {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.up-verdict-card--con {
    background: #fff7ed;
    border-color: #fed7aa;
}

.up-verdict-card h4 {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.up-verdict-card--pro h4 { color: #15803d; }
.up-verdict-card--con h4 { color: #c2410c; }

.up-verdict-card ul { list-style: none; padding: 0; margin: 0; }

.up-verdict-card li {
    font-size: 14px;
    color: var(--up-text-secondary);
    margin-bottom: 8px;
    line-height: 1.5;
}

.up-verdict-card--pro li::before { content: '✓ '; color: #16a34a; font-weight: 700; }
.up-verdict-card--con li::before { content: '✗ '; color: #ea580c; font-weight: 700; }


/* === INFO / TIP BOXES === */
.up-box {
    border-radius: var(--up-radius-sm);
    padding: 18px 22px;
    margin: 24px 0;
    font-size: 14px;
    line-height: 1.7;
    border-left: 4px solid;
}

.up-box strong { color: var(--up-text); }
.up-box a { color: var(--up-electric); }

.up-box--info {
    background: var(--up-electric-light);
    border-color: var(--up-electric);
    color: var(--up-text-secondary);
}

.up-box--tip {
    background: var(--up-green-light);
    border-color: var(--up-green);
    color: var(--up-text-secondary);
}


/* === WHERE TO BUY (bas de page) === */
.up-buy-section {
    background: var(--up-bg-soft);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 36px 32px;
    text-align: center;
}

.up-buy-title {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 6px;
}

.up-buy-subtitle {
    font-size: 14px;
    color: var(--up-text-muted);
    margin-bottom: 24px;
}

.up-buy-btns {
    display: flex;
    gap: 12px;
    justify-content: center;
    max-width: 540px;
    margin: 0 auto;
}

.up-buy-btns .up-btn { flex: 1; }


/* === FAQ ACCORDION === */
.up-faq-item {
    background: var(--up-bg-card);
    border-radius: var(--up-radius-sm);
    margin-bottom: 8px;
    border: 1px solid var(--up-border-light);
    overflow: hidden;
    transition: border-color 0.2s;
}

.up-faq-item:hover { border-color: var(--up-border); }

.up-faq-q {
    font-family: 'Bricolage Grotesque', sans-serif;
    font-size: 15px;
    font-weight: 600;
    padding: 18px 20px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--up-text);
    transition: color 0.2s;
    user-select: none;
}

.up-faq-q:hover { color: var(--up-electric); }

.up-faq-q::after {
    content: '+';
    font-size: 22px;
    font-weight: 400;
    color: var(--up-text-muted);
    transition: transform 0.3s, color 0.3s;
    flex-shrink: 0;
    margin-left: 12px;
    line-height: 1;
}

.up-faq-item.open .up-faq-q::after {
    transform: rotate(45deg);
    color: var(--up-electric);
}

.up-faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.35s ease;
    padding: 0 20px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--up-text-secondary);
}

.up-faq-item.open .up-faq-a {
    max-height: 400px;
    padding: 0 20px 20px;
}


/* === DISCLAIMER === */
.up-disclaimer {
    margin: 44px 0 56px;
    padding: 16px 20px;
    font-size: 12px;
    color: var(--up-text-muted);
    border: 1px dashed var(--up-border);
    border-radius: var(--up-radius-sm);
    line-height: 1.65;
}

.up-disclaimer strong { color: var(--up-text-secondary); }
.up-disclaimer a { color: var(--up-electric); }


/* ============================================
   RESPONSIVE
   ============================================ */

/* Tablette */
@media (max-width: 768px) {
    .up-hero {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .up-hero-image {
        max-width: 400px;
        margin: 0 auto;
    }

    .up-score-row {
        grid-template-columns: 110px 1fr 40px;
        gap: 10px;
    }

    .up-tech-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* Mobile */
@media (max-width: 600px) {
    .up-hero-image {
        padding: 28px 20px;
        max-width: 100%;
    }

    .up-verdict-grid {
        grid-template-columns: 1fr;
    }

    .up-tech-grid {
        grid-template-columns: 1fr;
    }

    .up-buy-btns {
        flex-direction: column;
    }

    .up-buy-section {
        padding: 28px 20px;
    }

    .up-scores-card {
        padding: 20px 16px;
    }

    .up-tldr {
        padding: 20px;
    }
}

/* Mobile petit */
@media (max-width: 480px) {
    .up-score-row {
        grid-template-columns: 100px 1fr 38px;
        gap: 8px;
    }

    .up-specs td:first-child {
        width: 130px;
        padding: 11px 14px;
    }

    .up-specs td:last-child {
        padding: 11px 14px;
    }

    .up-price-current {
        font-size: 32px;
    }
}


/* ============================================
   PRINT
   ============================================ */
@media print {
    .up-btn,
    .up-buy-section,
    .up-disclaimer,
    .up-ctas { display: none; }
    body { color: #000; background: #fff; }
}

/* E-E-A-T Author Box */
.up-author-box{display:flex;align-items:center;gap:1rem;margin-top:3rem;padding:1.25rem;border-top:2px solid #e5e7eb;background:#f9fafb;border-radius:0 0 8px 8px}
.up-author-box-photo img{border-radius:50%;object-fit:cover}
.up-author-box-content{display:flex;flex-direction:column;gap:.2rem}
.up-author-box-name{font-weight:600;font-size:.95rem;color:#1f2937}
.up-author-box-bio{font-size:.85rem;color:#6b7280}
.up-author-box-link{font-size:.8rem;color:#2563eb;text-decoration:none}
.up-last-updated-auto{display:inline-block;font-size:.8rem;color:#6b7280;background:#f3f4f6;padding:.3rem .75rem;border-radius:4px;margin-bottom:1.5rem}
@media(max-width:640px){.up-author-box{flex-direction:column;text-align:center}}

/* === Fix Astra WC product layout === */
body.single-product.up-custom-product .woocommerce-product-gallery,
body.single-product.up-custom-product .product_title,
body.single-product.up-custom-product .price,
body.single-product.up-custom-product .cart,
body.single-product.up-custom-product .product_meta,
body.single-product.up-custom-product .woocommerce-tabs,
body.single-product.up-custom-product .related.products,
body.single-product.up-custom-product .entry-summary {
    display: none !important;
}

/* === Product page custom layout === */
.up-product-page { max-width: 900px; margin: 0 auto; }
.up-product-hero { margin-bottom: 2rem; }
.up-product-image-main img { width: 100%; max-width: 500px; display: block; margin: 0 auto; border-radius: 8px; }
.up-product-gallery { display: flex; gap: 0.5rem; margin-top: 0.75rem; justify-content: center; flex-wrap: wrap; }
.up-product-gallery img { width: 80px; height: 80px; object-fit: contain; border: 1px solid #e5e7eb; border-radius: 4px; cursor: pointer; }
.up-product-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 1.25rem; }
/* ═══════════════════════════════════════════════════════════
   up-product-page.css — Fiche produit univers-padel.fr
   Append to up-design-system.css (or enqueue separately)
   ═══════════════════════════════════════════════════════════ */

/* Astra overrides — hide default WC elements */
body.single-product .woocommerce-product-gallery,
body.single-product .entry-summary > .product_title,
body.single-product .entry-summary > .price,
body.single-product .entry-summary > .cart,
body.single-product .entry-summary > .product_meta,
body.single-product .woocommerce-tabs,
body.single-product .related.products,
body.single-product .woocommerce-breadcrumb,
body.single-product .up-author-box,
body.single-product .up-last-updated-auto,
body.single-product .ast-single-post-order > .entry-header {
    display: none !important;
}

/* Container */
.up-pp {
    max-width: 940px;
    margin: 0 auto;
    padding: 16px 20px 48px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #1f2937;
    line-height: 1.6;
}

/* ─── Breadcrumb ─── */
.up-pp-breadcrumb {
    font-size: 13px;
    color: #9ca3af;
    margin-bottom: 24px;
}
.up-pp-breadcrumb a {
    color: #6b7280;
    text-decoration: none;
}
.up-pp-breadcrumb a:hover {
    color: #f59e0b;
}
.up-pp-bc-sep {
    margin: 0 6px;
    color: #d1d5db;
}
.up-pp-bc-current {
    color: #374151;
}

/* ─── Hero ─── */
.up-pp-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}

/* Image */
.up-pp-img-main {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 24px;
    text-align: center;
    margin-bottom: 12px;
}
.up-pp-img-main img {
    max-width: 100%;
    max-height: 380px;
    object-fit: contain;
}
.up-pp-img-thumbs {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}
.up-pp-thumb {
    width: 64px;
    height: 64px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 4px;
    cursor: pointer;
    background: #fff;
    transition: border-color 0.2s;
}
.up-pp-thumb:hover {
    border-color: #f59e0b;
}
.up-pp-thumb--active {
    border: 2px solid #f59e0b;
}
.up-pp-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Info */
.up-pp-brand {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #f59e0b;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 6px;
}
.up-pp-title {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 14px;
    color: #0f172a;
}

/* Badges */
.up-pp-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 18px;
}
.up-pp-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    background: #f1f5f9;
    color: #374151;
}
.up-pp-badge--official {
    background: #fef3c7;
    color: #92400e;
}

/* Price */
.up-pp-price {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 6px;
}
.up-pp-price-current {
    font-size: 32px;
    font-weight: 800;
    color: #0f172a;
}
.up-pp-price-old {
    font-size: 16px;
    color: #9ca3af;
    text-decoration: line-through;
}
.up-pp-price-discount {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 700;
    background: #dc2626;
    color: #fff;
}

/* Short desc */
.up-pp-short-desc {
    font-size: 13.5px;
    color: #6b7280;
    line-height: 1.6;
    margin: 0 0 20px;
}

/* CTAs */
.up-pp-ctas {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.up-pp-cta {
    display: block;
    padding: 14px;
    text-align: center;
    border-radius: 10px;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    transition: opacity 0.2s;
}
.up-pp-cta:hover {
    opacity: 0.9;
}
.up-pp-cta--pn {
    background: linear-gradient(135deg, #16a34a, #15803d);
    color: #fff;
    box-shadow: 0 2px 8px rgba(22, 163, 74, 0.3);
}
.up-pp-cta--az {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #fff;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

/* ─── Score Engine ─── */
.up-pp-scores {
    background: #fafbfc;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 28px 32px;
    margin-bottom: 32px;
}
.up-pp-scores h2 {
    font-size: 15px;
    font-weight: 700;
    margin: 0;
    color: #0f172a;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.up-pp-scores-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.up-pp-score-global {
    display: flex;
    align-items: center;
    gap: 8px;
}
.up-pp-sg-label {
    font-size: 13px;
    color: #6b7280;
}
.up-pp-sg-value {
    font-size: 22px;
    font-weight: 800;
}
.up-pp-score-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}
.up-pp-score-label {
    min-width: 110px;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
}
.up-pp-score-bar {
    flex: 1;
    height: 10px;
    background: #f1f5f9;
    border-radius: 5px;
    overflow: hidden;
}
.up-pp-score-fill {
    height: 100%;
    border-radius: 5px;
    transition: width 0.6s ease;
}
.up-pp-score-val {
    min-width: 32px;
    font-size: 14px;
    font-weight: 700;
    text-align: right;
}

/* ─── Verdict ─── */
.up-pp-verdict {
    margin-bottom: 32px;
}
.up-pp-verdict h2 {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0f172a;
    margin: 0 0 16px;
}
.up-pp-verdict p {
    font-size: 14px;
    line-height: 1.8;
    color: #374151;
    margin: 0 0 14px;
}

/* ─── Fiche technique ─── */
.up-pp-specs {
    margin-bottom: 32px;
}
.up-pp-specs h2 {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0f172a;
    margin: 0 0 16px;
}
.up-pp-specs-table {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
}
.up-pp-spec-row {
    display: flex;
    padding: 11px 16px;
    background: #fff;
    border-bottom: 1px solid #f1f5f9;
}
.up-pp-spec-row--alt {
    background: #f9fafb;
}
.up-pp-spec-row:last-child {
    border-bottom: none;
}
.up-pp-spec-key {
    flex: 0 0 40%;
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
}
.up-pp-spec-val {
    font-size: 13px;
    color: #1f2937;
    font-weight: 500;
}

/* ─── Joueur ─── */
.up-pp-player {
    margin-bottom: 32px;
}
.up-pp-player h2 {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0f172a;
    margin: 0 0 12px;
}
.up-pp-player-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 12px;
}
.up-pp-player-name {
    font-size: 15px;
    font-weight: 700;
    color: #0c4a6e;
}
.up-pp-player-link {
    font-size: 13px;
    color: #0284c7;
    text-decoration: none;
    margin-left: auto;
}
.up-pp-player-link:hover {
    text-decoration: underline;
}

/* ─── Pros / Cons ─── */
.up-pp-proscons {
    margin-bottom: 32px;
}
.up-pp-proscons h2 {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0f172a;
    margin: 0 0 16px;
}
.up-pp-proscons-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.up-pp-pros {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 12px;
    padding: 20px;
}
.up-pp-cons {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 12px;
    padding: 20px;
}
.up-pp-pros h3 {
    font-size: 14px;
    font-weight: 700;
    color: #15803d;
    margin: 0 0 12px;
}
.up-pp-cons h3 {
    font-size: 14px;
    font-weight: 700;
    color: #b91c1c;
    margin: 0 0 12px;
}
.up-pp-pro-item,
.up-pp-con-item {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
    align-items: flex-start;
    font-size: 13px;
    line-height: 1.5;
}
.up-pp-pro-item span:last-child { color: #166534; }
.up-pp-con-item span:last-child { color: #991b1b; }

.up-pp-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 5px;
}
.up-pp-dot--green { background: #22c55e; }
.up-pp-dot--red { background: #ef4444; }

/* ─── FAQ ─── */
.up-pp-faq {
    margin-bottom: 40px;
}
.up-pp-faq h2 {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0f172a;
    margin: 0 0 16px;
}
.up-pp-faq-list {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 0 20px;
    background: #fff;
}
.up-pp-faq-item {
    border-bottom: 1px solid #e5e7eb;
}
.up-pp-faq-item:last-child {
    border-bottom: none;
}
.up-pp-faq-q {
    padding: 14px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}
.up-pp-faq-q span:first-child {
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
    padding-right: 16px;
}
.up-pp-faq-toggle {
    font-size: 20px;
    color: #9ca3af;
    transition: transform 0.2s;
    flex-shrink: 0;
}
.up-pp-faq-a {
    display: none;
}
.up-pp-faq--open .up-pp-faq-a {
    display: block;
}
.up-pp-faq--open .up-pp-faq-toggle {
    transform: rotate(45deg);
}
.up-pp-faq-a p {
    font-size: 13.5px;
    color: #4b5563;
    line-height: 1.7;
    margin: 0 0 14px;
}

/* ─── CTA Final ─── */
.up-pp-buy {
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    border: 1px solid #fde68a;
    border-radius: 16px;
    padding: 32px;
    text-align: center;
}
.up-pp-buy h2 {
    font-size: 18px;
    font-weight: 700;
    color: #92400e;
    margin: 0 0 6px;
}
.up-pp-buy-note {
    font-size: 13px;
    color: #a16207;
    margin: 0 0 20px;
}
.up-pp-buy-ctas {
    display: flex;
    gap: 12px;
    justify-content: center;
    max-width: 480px;
    margin: 0 auto;
}
.up-pp-buy-ctas .up-pp-cta {
    flex: 1;
}

/* ─── Mobile ─── */
@media (max-width: 768px) {
    .up-pp-hero {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .up-pp-img-main img {
        max-height: 280px;
    }
    .up-pp-title {
        font-size: 20px;
    }
    .up-pp-price-current {
        font-size: 26px;
    }
    .up-pp-proscons-grid {
        grid-template-columns: 1fr;
    }
    .up-pp-scores {
        padding: 20px;
    }
    .up-pp-score-label {
        min-width: 85px;
        font-size: 12px;
    }
    .up-pp-buy-ctas {
        flex-direction: column;
    }
    .up-pp-scores-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}
/* ═══════════════════════════════════════════════════════════
   Mega Menu — univers-padel.fr
   Append to up-design-system.css
   Works with Astra free + standard WP nav menus
   ═══════════════════════════════════════════════════════════ */

/* ─── Override Astra sub-menu for mega menu items ─── */
@media (min-width: 922px) {

    /* Mega menu container */
    .main-header-menu .mega-menu {
        position: static;
    }
    .main-header-menu .mega-menu > .sub-menu {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: auto;
        min-width: 580px;
        max-width: 920px;
        padding: 24px 28px 20px;
        background: #fff;
        border: 1px solid #e5e7eb;
        border-top: 3px solid #f59e0b;
        border-radius: 0 0 12px 12px;
        box-shadow: 0 12px 40px rgba(0,0,0,0.08);
        /* CSS columns */
        column-gap: 32px;
        column-rule: 1px solid #f1f5f9;
    }

    /* Column count per menu */
    .mega-menu-4col > .sub-menu { columns: 4; min-width: 780px; }
    .mega-menu-3col > .sub-menu { columns: 3; min-width: 620px; }
    .mega-menu-2col > .sub-menu { columns: 2; min-width: 420px; }

    /* All sub-menu items — reset Astra defaults */
    .mega-menu > .sub-menu > .menu-item {
        width: 100% !important;
        float: none !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        break-inside: avoid;
    }
    .mega-menu > .sub-menu > .menu-item > a {
        display: block;
        padding: 5px 0 !important;
        font-size: 13.5px;
        color: #4b5563 !important;
        border: none !important;
        background: none !important;
        line-height: 1.5;
        white-space: nowrap;
    }
    .mega-menu > .sub-menu > .menu-item > a:hover {
        color: #f59e0b !important;
    }

    /* Column headers — start a new CSS column */
    .mega-menu > .sub-menu > .menu-col-header {
        break-before: column;
        margin-bottom: 4px;
    }
    .mega-menu > .sub-menu > .menu-col-header > a {
        font-size: 11.5px !important;
        font-weight: 700 !important;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: #0f172a !important;
        padding: 0 0 8px !important;
        pointer-events: none;
        cursor: default;
        border-bottom: 1px solid #e5e7eb !important;
        margin-bottom: 6px;
    }
    /* First header in each mega menu — no column break (it's already col 1) */
    .mega-menu > .sub-menu > .menu-col-header:first-child {
        break-before: auto;
    }

    /* Section headers (within a column, no column break) */
    .mega-menu > .sub-menu > .menu-section-header > a {
        font-size: 11.5px !important;
        font-weight: 700 !important;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: #0f172a !important;
        padding: 12px 0 8px !important;
        pointer-events: none;
        cursor: default;
        border-bottom: 1px solid #e5e7eb !important;
    }

    /* "Voir tout" link */
    .mega-menu > .sub-menu > .menu-see-all {
        margin-top: 8px;
        padding-top: 8px !important;
        border-top: 1px solid #f1f5f9;
    }
    .mega-menu > .sub-menu > .menu-see-all > a {
        font-size: 12.5px !important;
        font-weight: 600 !important;
        color: #f59e0b !important;
    }
    .mega-menu > .sub-menu > .menu-see-all > a:hover {
        color: #d97706 !important;
    }

    /* Hide Astra's default dropdown arrow on mega menus */
    .mega-menu > a > .ast-header-navigation-arrow {
        display: none;
    }
}

/* ─── Mobile: fall back to standard Astra accordion ─── */
@media (max-width: 921px) {
    .mega-menu > .sub-menu {
        /* Reset mega menu styles for mobile */
        columns: auto !important;
        min-width: auto !important;
        max-width: none !important;
        position: static !important;
        transform: none !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }
    /* Column headers just look like bold items on mobile */
    .menu-col-header > a,
    .menu-section-header > a {
        font-weight: 700 !important;
        font-size: 13px !important;
        color: #374151 !important;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }
}

/* Hide Astra Promo badge on product listings */
.woocommerce span.onsale { display: none !important; }


.woocommerce span.onsale,
.ast-onsale-card,
.ast-on-card-button.ast-onsale-card,
.wc-block-grid__product-onsale {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════
   up-article.css — Pages guides/articles univers-padel.fr
   Append to up-design-system.css
   ═══════════════════════════════════════════════════════════ */

/* Container */
.up-article {
    max-width: 800px;
    margin: 0 auto;
    padding: 16px 20px 48px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #1f2937;
    line-height: 1.7;
}

/* Breadcrumb */
.up-art-bc { font-size: 13px; color: #9ca3af; margin-bottom: 20px; }
.up-art-bc a { color: #6b7280; text-decoration: none; }
.up-art-bc a:hover { color: #f59e0b; }
.up-art-bc .sep { margin: 0 6px; color: #d1d5db; }
.up-art-bc .current { color: #374151; }

/* Title */
.up-art-h1 {
    font-size: 28px; font-weight: 800; line-height: 1.2;
    margin: 0 0 8px; color: #0f172a;
}
.up-art-subtitle {
    font-size: 14px; color: #6b7280; margin: 0 0 24px;
}

/* Sommaire */
.up-art-toc {
    background: #f8fafc; border: 1px solid #e2e8f0;
    border-radius: 12px; padding: 16px 20px; margin-bottom: 28px;
}
.up-art-toc-title {
    font-size: 13px; font-weight: 700; color: #0f172a;
    margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.04em;
}
.up-art-toc a {
    display: block; font-size: 13.5px; color: #3b82f6;
    padding: 3px 0; text-decoration: none;
}
.up-art-toc a:hover { color: #1d4ed8; text-decoration: underline; }

/* Headings */
.up-art-h2 {
    font-size: 18px; font-weight: 700; color: #0f172a;
    margin: 36px 0 12px; padding-bottom: 8px;
    border-bottom: 2px solid #f59e0b;
}
.up-art-h3 {
    font-size: 15px; font-weight: 700; color: #0f172a;
    margin: 20px 0 8px;
}

/* Paragraphs */
.up-article p {
    font-size: 14.5px; line-height: 1.8; color: #374151;
    margin: 0 0 16px;
}
.up-article strong { color: #0f172a; }

/* Callout boxes */
.up-art-callout {
    border-radius: 12px; padding: 18px 20px; margin-bottom: 24px;
}
.up-art-callout--info { background: #f0f9ff; border: 1px solid #bae6fd; }
.up-art-callout--tip { background: #f0fdf4; border: 1px solid #bbf7d0; }
.up-art-callout--warn { background: #fffbeb; border: 1px solid #fde68a; }
.up-art-callout-header {
    display: flex; gap: 8px; align-items: center; margin-bottom: 8px;
}
.up-art-callout-icon { font-size: 18px; }
.up-art-callout-title { font-size: 14px; font-weight: 700; }
.up-art-callout--info .up-art-callout-title { color: #0c4a6e; }
.up-art-callout--tip .up-art-callout-title { color: #166534; }
.up-art-callout--warn .up-art-callout-title { color: #92400e; }
.up-art-callout-body { font-size: 13.5px; line-height: 1.7; color: #374151; }

/* Tables */
.up-art-table-wrap {
    border-radius: 12px; overflow: hidden;
    border: 1px solid #e5e7eb; margin-bottom: 16px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.up-art-table {
    width: 100%; border-collapse: collapse;
    font-size: 13.5px; min-width: 480px;
}
.up-art-table thead tr { background: #0f172a; }
.up-art-table th {
    padding: 12px 10px; color: #fff;
    font-weight: 600; text-align: center;
}
.up-art-table th:first-child { text-align: left; padding-left: 14px; }
.up-art-table td {
    padding: 10px; text-align: center;
    border-bottom: 1px solid #f1f5f9;
    font-weight: 400; color: #374151;
}
.up-art-table td:first-child {
    text-align: left; padding-left: 14px; font-weight: 500;
}
.up-art-table tr:nth-child(odd) { background: #fff; }
.up-art-table tr:nth-child(even) { background: #f9fafb; }
.up-art-table tr.up-art-row-winner { background: #fefce8; }
.up-art-table tr.up-art-row-winner td { font-weight: 700; }
.up-art-table tr.up-art-row-winner td:first-child { color: #92400e; }
.up-art-table .up-art-highlight { background: #fefce8 !important; font-weight: 600; color: #0f172a; }
.up-art-table-note {
    font-size: 12px; color: #9ca3af; margin: 0 0 24px;
}

/* Specs-like table (2 col) */
.up-art-specs {
    border: 1px solid #e5e7eb; border-radius: 12px;
    overflow: hidden; margin-bottom: 24px;
}
.up-art-spec-row {
    display: flex; padding: 10px 16px;
    border-bottom: 1px solid #f1f5f9;
}
.up-art-spec-row:last-child { border-bottom: none; }
.up-art-spec-row:nth-child(odd) { background: #fff; }
.up-art-spec-row:nth-child(even) { background: #f9fafb; }
.up-art-spec-key {
    flex: 0 0 40%; font-size: 13px; font-weight: 600; color: #6b7280;
}
.up-art-spec-val { font-size: 13px; color: #1f2937; }

/* Product recommendation block */
.up-art-products {
    border-radius: 16px; padding: 20px 24px; margin-bottom: 32px;
}
.up-art-products--raquettes { background: #fffbeb; border: 1px solid #fde68a; }
.up-art-products--chaussures { background: #f0f9ff; border: 1px solid #bae6fd; }
.up-art-products--sacs { background: #f0fdf4; border: 1px solid #bbf7d0; }
.up-art-products-title {
    font-size: 15px; font-weight: 700; margin: 0 0 4px;
}
.up-art-products--raquettes .up-art-products-title { color: #92400e; }
.up-art-products--chaussures .up-art-products-title { color: #0c4a6e; }
.up-art-products--sacs .up-art-products-title { color: #166534; }
.up-art-products-desc {
    font-size: 13px; margin: 0 0 16px;
}
.up-art-products--raquettes .up-art-products-desc { color: #a16207; }
.up-art-products--chaussures .up-art-products-desc { color: #0369a1; }
.up-art-products--sacs .up-art-products-desc { color: #15803d; }

/* WC product grid inside article */
.up-art-products .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px !important;
}
.up-art-products .woocommerce ul.products li.product {
    margin: 0 !important; padding: 0 !important; width: 100% !important;
}

/* Barème navigation grid */
.up-art-baremes {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 10px; margin-bottom: 32px;
}
.up-art-bareme-card {
    display: block; text-decoration: none; text-align: center;
    padding: 16px 8px; border-radius: 12px;
    border: 1px solid #e5e7eb; background: #fff;
    transition: border-color 0.2s;
}
.up-art-bareme-card:hover { border-color: #f59e0b; }
.up-art-bareme-card--active {
    border: 2px solid #f59e0b; background: #fffbeb;
}
.up-art-bareme-name { font-size: 20px; font-weight: 800; color: #0f172a; }
.up-art-bareme-card--active .up-art-bareme-name { color: #f59e0b; }
.up-art-bareme-pts { font-size: 12px; color: #6b7280; margin-top: 2px; }
.up-art-bareme-level { font-size: 11px; color: #9ca3af; margin-top: 2px; }
.up-art-bareme-new {
    display: inline-block; margin-top: 4px;
    padding: 2px 6px; border-radius: 4px;
    font-size: 10px; font-weight: 700;
    background: #dcfce7; color: #166534;
}

/* FAQ — reuse product page styles */
.up-art-faq { margin-bottom: 32px; }
.up-art-faq-list {
    border: 1px solid #e5e7eb; border-radius: 12px;
    padding: 0 20px; background: #fff;
}
.up-art-faq-item { border-bottom: 1px solid #e5e7eb; }
.up-art-faq-item:last-child { border-bottom: none; }
.up-art-faq-q {
    padding: 14px 0; display: flex;
    justify-content: space-between; align-items: center;
    cursor: pointer;
}
.up-art-faq-q span:first-child {
    font-size: 14px; font-weight: 600; color: #1f2937; padding-right: 16px;
}
.up-art-faq-toggle {
    font-size: 20px; color: #9ca3af;
    transition: transform 0.2s; flex-shrink: 0;
}
.up-art-faq--open .up-art-faq-toggle { transform: rotate(45deg); }
.up-art-faq-a { display: none; }
.up-art-faq--open .up-art-faq-a { display: block; }
.up-art-faq-a p {
    font-size: 13.5px; color: #4b5563;
    line-height: 1.7; margin: 0 0 14px;
}

/* Author box */
.up-art-author {
    background: #f8fafc; border: 1px solid #e2e8f0;
    border-radius: 12px; padding: 20px;
    display: flex; gap: 16px; margin-bottom: 32px;
}
.up-art-author-avatar {
    width: 56px; height: 56px; border-radius: 50%;
    background: #e2e8f0; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
}
.up-art-author-name { font-size: 14px; font-weight: 700; color: #0f172a; }
.up-art-author-bio {
    font-size: 12.5px; color: #6b7280; margin: 4px 0 0; line-height: 1.5;
}

/* CTA final */
.up-art-cta-final {
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    border: 1px solid #fde68a; border-radius: 16px;
    padding: 28px; text-align: center;
}
.up-art-cta-final h2 {
    font-size: 18px; font-weight: 700; color: #92400e; margin: 0 0 8px;
}
.up-art-cta-final p {
    font-size: 13px; color: #a16207; margin: 0 0 16px;
}
.up-art-cta-btn {
    display: inline-block; padding: 12px 32px;
    background: linear-gradient(135deg, #16a34a, #15803d);
    color: #fff !important; border-radius: 10px;
    font-weight: 700; font-size: 14px; text-decoration: none;
    box-shadow: 0 2px 8px rgba(22,163,74,0.3);
    transition: opacity 0.2s;
}
.up-art-cta-btn:hover { opacity: 0.9; }

/* ─── MOBILE ─── */
@media (max-width: 768px) {
    .up-art-h1 { font-size: 22px; }
    .up-art-h2 { font-size: 16px; }

    /* Product grid 2 col */
    .up-art-products .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* Barèmes grid 3+2 */
    .up-art-baremes {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Specs table */
    .up-art-spec-key { flex: 0 0 45%; }

    /* Author box stack */
    .up-art-author { flex-direction: column; align-items: center; text-align: center; }
}

@media (max-width: 480px) {
    .up-article { padding: 12px 16px 40px; }
    .up-art-h1 { font-size: 20px; }

    /* Product grid 1 col */
    .up-art-products .woocommerce ul.products {
        grid-template-columns: 1fr !important;
    }

    /* Barèmes grid 2 col */
    .up-art-baremes {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Tables scroll */
    .up-art-table { min-width: 420px; }

    /* CTA */
    .up-art-cta-final { padding: 20px; }
    .up-art-cta-btn { padding: 12px 24px; font-size: 13px; }
}
/* ═══ FIX: Article bugs — avril 2026 ═══ */

/* Fix 1: WC product buttons alignment in article blocks */
.up-art-products .woocommerce ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
}
.up-art-products .woocommerce ul.products li.product a.button,
.up-art-products .woocommerce ul.products li.product a.add_to_cart_button,
.up-art-products .woocommerce ul.products li.product .button {
    margin-top: auto !important;
    align-self: stretch !important;
    text-align: center !important;
}
.up-art-products .woocommerce ul.products li.product .price {
    margin-bottom: 8px !important;
}
.up-art-products .woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 40px;
}

/* Fix 2: Barèmes grid — force equal sizing, no empty ghost blocks */
.up-art-baremes {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: center !important;
}
.up-art-bareme-card {
    flex: 0 0 calc(20% - 8px) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    .up-art-bareme-card {
        flex: 0 0 calc(33.33% - 8px) !important;
    }
}
@media (max-width: 480px) {
    .up-art-bareme-card {
        flex: 0 0 calc(50% - 6px) !important;
    }
}
/* ═══ FIX: Article bugs — avril 2026 ═══ */

/* Fix 1: WC product buttons alignment in article blocks */
.up-art-products .woocommerce ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
}
.up-art-products .woocommerce ul.products li.product a.button,
.up-art-products .woocommerce ul.products li.product a.add_to_cart_button,
.up-art-products .woocommerce ul.products li.product .button {
    margin-top: auto !important;
    align-self: stretch !important;
    text-align: center !important;
}
.up-art-products .woocommerce ul.products li.product .price {
    margin-bottom: 8px !important;
}
.up-art-products .woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 40px;
}

/* Fix 2: Barèmes grid — force equal sizing, no empty ghost blocks */
.up-art-baremes {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: center !important;
}
.up-art-bareme-card {
    flex: 0 0 calc(20% - 8px) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    .up-art-bareme-card {
        flex: 0 0 calc(33.33% - 8px) !important;
    }
}
@media (max-width: 480px) {
    .up-art-bareme-card {
        flex: 0 0 calc(50% - 6px) !important;
    }
}

/* ═══ FIX barèmes grid — v2 ═══ */
.up-art-baremes {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: center !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 32px !important;
}
.up-art-bareme-card {
    flex: 0 1 140px !important;
    max-width: 160px !important;
    min-width: 120px !important;
    box-sizing: border-box !important;
    display: block !important;
    text-decoration: none !important;
    text-align: center !important;
    padding: 16px 8px !important;
    border-radius: 12px !important;
    border: 1px solid #e5e7eb !important;
    background: #fff !important;
}
.up-art-bareme-card--active {
    border: 2px solid #f59e0b !important;
    background: #fffbeb !important;
}
.up-art-bareme-name { font-size: 20px !important; font-weight: 800 !important; color: #0f172a !important; }
.up-art-bareme-card--active .up-art-bareme-name { color: #f59e0b !important; }
.up-art-bareme-pts { font-size: 12px !important; color: #6b7280 !important; margin-top: 2px !important; }
.up-art-bareme-level { font-size: 11px !important; color: #9ca3af !important; margin-top: 2px !important; }
@media (max-width: 480px) {
    .up-art-bareme-card { flex: 0 1 calc(50% - 8px) !important; max-width: none !important; }
}

/* Fix wpautop <p> parasites dans les grilles article */
.up-art-baremes > p,
.up-art-baremes > br { display: none !important; }

/* Fix Guides mega menu — align right since it is last in nav */
@media (min-width: 922px) {
    .main-header-menu > .menu-item:nth-last-child(-n+3).mega-menu > .sub-menu {
        left: auto !important;
        right: 0 !important;
        transform: none !important;
    }
}

/* Hide duplicate Astra H2 product titles - keep only the div version */
.entry-content a.ast-loop-product__link > h2.woocommerce-loop-product__title {
    display: none;
}
/* ═══ HOMEPAGE V3 STYLES ═══ */
/* Migrated from inline homepage on 2026-04-01 */

.up-hero{background:linear-gradient(135deg,#0f1729 0%,#1a2b5f 50%,#0d1a40 100%);padding:80px 0 72px;position:relative;overflow:hidden}
.up-hero::before{content:'';position:absolute;top:-30%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(59,91,219,.2) 0%,transparent 60%);pointer-events:none}
.up-hero::after{content:'';position:absolute;bottom:-20%;left:10%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,212,59,.06) 0%,transparent 50%);pointer-events:none}
.up-hero-inner{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:0 24px}
.up-hero h1{font-size:clamp(30px,5vw,48px);font-weight:800;color:#fff;max-width:700px;margin-bottom:16px;font-family:'DM Sans',system-ui,sans-serif;line-height:1.15;letter-spacing:-.5px}
.up-hero h1 .acc{color:#ffd43b}
.up-hero-sub{font-size:17px;color:rgba(255,255,255,.65);max-width:600px;margin-bottom:32px;line-height:1.65}
.up-hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.up-btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;border:none;cursor:pointer;border-radius:12px;transition:transform .15s,box-shadow .15s;text-decoration:none;line-height:1}
.up-btn:hover{transform:translateY(-2px);text-decoration:none}
.up-btn--lg{font-size:15px;padding:14px 28px}
.up-btn--md{font-size:14px;padding:12px 24px}
.up-btn--primary{background:#ffd43b;color:#0f1729;box-shadow:0 4px 20px rgba(255,212,59,.25)}
.up-btn--primary:hover{box-shadow:0 6px 28px rgba(255,212,59,.35);color:#0f1729}
.up-btn--ghost{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff}
.up-btn--ghost:hover{background:rgba(255,255,255,.14);color:#fff}
.up-btn--electric{background:#3b5bdb;color:#fff;box-shadow:0 4px 20px rgba(59,91,219,.25)}
.up-btn--orange{background:#ff922b;color:#fff;box-shadow:0 4px 14px rgba(255,146,43,.25)}
.up-btn--cyan{background:#15aabf;color:#fff;box-shadow:0 4px 14px rgba(21,170,191,.25)}

.up-sec{padding:64px 0}
.up-sec--alt{background:#f8f9fa}
.up-sec--dark{background:linear-gradient(135deg,#0f1729,#1a2b5f);color:#fff}
.up-sec-header{text-align:center;margin-bottom:40px}
.up-sec-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#3b5bdb;padding:5px 14px;background:#edf2ff;border-radius:9999px;margin-bottom:12px}
.up-sec--dark .up-sec-tag{background:rgba(255,255,255,.08);color:#ffd43b}
.up-sec-title{font-size:clamp(26px,3.5vw,36px);font-weight:800;margin-bottom:8px}
.up-sec--dark .up-sec-title{color:#fff}
.up-sec-desc{font-size:16px;color:#868e96;max-width:620px;margin:0 auto;line-height:1.6}
.up-sec--dark .up-sec-desc{color:rgba(255,255,255,.6)}
.up-cnt{max-width:1100px;margin:0 auto;padding:0 24px}

.up-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px}
.up-cat-card{background:#fff;border-radius:16px;padding:24px 16px;text-align:center;border:1px solid #e9ecef;transition:transform .2s,box-shadow .2s,border-color .2s;text-decoration:none;color:inherit;position:relative;overflow:hidden}
.up-cat-card:hover{transform:translateY(-4px);box-shadow:0 8px 40px rgba(0,0,0,.10);border-color:#3b5bdb;text-decoration:none}
.up-cat-icon{font-size:34px;margin-bottom:10px}
.up-cat-name{font-size:14px;font-weight:800;color:#0f1729}
.up-cat-desc{font-size:11px;color:#868e96;margin-top:4px;line-height:1.4}

.up-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.up-guide-card{background:#fff;border-radius:16px;overflow:hidden;border:1px solid #e9ecef;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.up-guide-card:hover{transform:translateY(-3px);box-shadow:0 8px 40px rgba(0,0,0,.10);text-decoration:none}
.up-guide-top{padding:28px 24px 20px;flex:1}
.up-guide-badge{display:inline-block;font-size:11px;font-weight:800;padding:3px 10px;border-radius:8px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:12px}
.up-badge--blue{background:#dbe4ff;color:#3b5bdb}
.up-badge--yellow{background:#fff3bf;color:#e67700}
.up-badge--green{background:#d3f9d8;color:#2b8a3e}
.up-guide-card h3{font-size:18px;font-weight:800;color:#0f1729;margin-bottom:8px;line-height:1.3}
.up-guide-card p{font-size:14px;color:#495057;line-height:1.6}
.up-guide-foot{padding:16px 24px;border-top:1px solid #f1f3f5;display:flex;align-items:center;justify-content:space-between}
.up-guide-time{font-size:11px;color:#868e96}
.up-link{font-size:13px;font-weight:700;color:#3b5bdb;display:inline-flex;align-items:center;gap:4px;transition:gap .2s}
.up-link:hover{gap:8px;text-decoration:none}
.up-link::after{content:'→'}

.up-feat-row{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin-bottom:48px}
.up-feat-row:last-of-type{margin-bottom:0}
.up-feat-row--rev .up-feat-visual{order:2}
.up-feat-row--rev .up-feat-body{order:1}
.up-feat-visual{border-radius:16px;padding:40px;display:flex;align-items:center;justify-content:center;min-height:260px;font-size:80px}
.up-feat-visual--blue{background:linear-gradient(135deg,#edf2ff,#dbe4ff)}
.up-feat-visual--gold{background:linear-gradient(135deg,#fff9db,#fff3bf)}
.up-feat-body h3{font-size:24px;font-weight:800;color:#0f1729;margin-bottom:10px}
.up-feat-body p{font-size:15px;color:#495057;line-height:1.7;margin-bottom:16px}

.up-dark-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.up-dark-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:28px}
.up-dark-card h3{font-size:18px;font-weight:800;color:#fff;margin-bottom:8px}
.up-dark-card p{font-size:14px;color:rgba(255,255,255,.6);margin-bottom:16px;line-height:1.6}

.up-brands{padding:32px 0;border-top:1px solid #e9ecef;border-bottom:1px solid #e9ecef;text-align:center}
.up-brands-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#868e96;margin-bottom:16px}
.up-brands-list{display:flex;flex-wrap:wrap;justify-content:center;gap:20px 36px;font-size:17px;font-weight:800;color:#ced4da}
.up-brands-list span:hover{color:#0f1729}

.up-cta-sec{background:linear-gradient(135deg,#3b5bdb,#364fc7);padding:60px 0;text-align:center;position:relative;overflow:hidden}
.up-cta-sec h2{font-size:clamp(24px,3vw,32px);font-weight:800;color:#fff;margin-bottom:8px}
.up-cta-sec p{font-size:16px;color:rgba(255,255,255,.7);margin-bottom:24px}
.up-cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.up-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px}
.up-stat{text-align:center;padding:20px}
.up-stat-num{font-size:32px;font-weight:800;color:#ffd43b;margin-bottom:4px}
.up-stat-label{font-size:13px;color:rgba(255,255,255,.6)}

@media(max-width:768px){
  .up-hero{padding:44px 0 36px}
  .up-hero h1{font-size:26px}
  .up-hero-sub{font-size:15px}
  .up-cat-grid{grid-template-columns:repeat(3,1fr);gap:10px}
  .up-guide-grid{grid-template-columns:repeat(2,1fr)}
  .up-feat-row{grid-template-columns:1fr;gap:20px}
  .up-feat-row--rev .up-feat-visual,.up-feat-row--rev .up-feat-body{order:0}
  .up-feat-visual{min-height:160px;font-size:56px}
  .up-dark-grid{grid-template-columns:1fr}
  .up-stats{grid-template-columns:repeat(2,1fr)}
  .up-cta-btns{flex-direction:column;align-items:center}
}
@media(max-width:480px){
  .up-hero{padding:36px 0 30px}
  .up-hero h1{font-size:24px}
  .up-hero-ctas{flex-direction:column}
  .up-hero-ctas .up-btn{width:100%;justify-content:center}
  .up-cat-grid{grid-template-columns:1fr 1fr}
  .up-guide-grid{grid-template-columns:1fr}
  .up-stats{grid-template-columns:1fr 1fr}
}
/* ════════════════════════════════════════════════════════════
   UNIVERS PADEL — NOUVEAUX COMPOSANTS v5
   Ajoutés le 2026-04-01
   ════════════════════════════════════════════════════════════ */

/* === VARIABLES ADDITIONNELLES === */
:root {
    --up-dark: #0f1729;
    --up-blue-deep: #1a2b5f;
    --up-accent: #ffd43b;
    --up-success: #22c55e;
    --up-error: #ef4444;
    --up-info: #3b82f6;
    --up-warn: #f59e0b;
    --up-score-power: #ef4444;
    --up-score-control: #3b82f6;
    --up-score-comfort: #06b6d4;
    --up-score-spin: #f59e0b;
    --up-score-tolerance: #f97316;
    --up-score-handling: #a855f7;
    --up-score-exit: #22c55e;
    --up-font-heading: 'Bricolage Grotesque', system-ui, sans-serif;
    --up-font-body: 'DM Sans', system-ui, sans-serif;
}

/* ═══ PRODUCT CARD — pour intégrer des produits dans les articles ═══ */

/* Horizontal (défaut) */
.up-product-card {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 20px;
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 20px;
    margin: 24px 0;
    transition: box-shadow 0.2s, border-color 0.2s;
    text-decoration: none;
    color: inherit;
}
.up-product-card:hover {
    box-shadow: var(--up-shadow);
    border-color: var(--up-electric);
}
.up-product-card__image {
    width: 100%;
    aspect-ratio: 1;
    object-fit: contain;
    border-radius: var(--up-radius-sm);
    background: var(--up-bg-soft);
}
.up-product-card__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.up-product-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--up-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.up-product-card__score {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 700;
    color: var(--up-electric);
    background: var(--up-electric-light);
    padding: 2px 8px;
    border-radius: 20px;
}
.up-product-card__name {
    font-family: var(--up-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--up-text);
    line-height: 1.3;
    margin: 0;
}
.up-product-card__tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.up-product-card__tag {
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--up-bg-muted);
    color: var(--up-text-secondary);
}
.up-product-card__price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 4px 0;
}
.up-product-card__price-current {
    font-size: 22px;
    font-weight: 800;
    color: var(--up-text);
}
.up-product-card__price-old {
    font-size: 14px;
    color: var(--up-text-muted);
    text-decoration: line-through;
}
.up-product-card__price-discount {
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    background: var(--up-error);
    padding: 2px 6px;
    border-radius: 4px;
}
.up-product-card__ctas {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}
.up-product-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 16px;
    border-radius: var(--up-radius-sm);
    text-decoration: none;
    transition: transform 0.15s, box-shadow 0.15s;
    border: none;
    cursor: pointer;
}
.up-product-card__cta:hover {
    transform: translateY(-1px);
    text-decoration: none;
}
.up-product-card__cta--pn {
    background: linear-gradient(135deg, var(--up-pn-bg), var(--up-pn-hover));
    color: var(--up-pn-text);
}
.up-product-card__cta--az {
    background: linear-gradient(135deg, var(--up-amazon-bg), var(--up-amazon-hover));
    color: var(--up-amazon-text);
}
.up-product-card__excerpt {
    font-size: 13px;
    color: var(--up-text-secondary);
    line-height: 1.6;
    margin-top: 4px;
}

/* Vertical variant */
.up-product-card--vertical {
    grid-template-columns: 1fr;
    text-align: center;
    max-width: 280px;
}
.up-product-card--vertical .up-product-card__image {
    max-height: 200px;
    margin: 0 auto;
}
.up-product-card--vertical .up-product-card__meta,
.up-product-card--vertical .up-product-card__price,
.up-product-card--vertical .up-product-card__ctas,
.up-product-card--vertical .up-product-card__tags {
    justify-content: center;
}

/* Mini variant */
.up-product-card--mini {
    grid-template-columns: 60px 1fr auto;
    padding: 12px 16px;
    align-items: center;
    gap: 12px;
}
.up-product-card--mini .up-product-card__image {
    width: 60px;
    height: 60px;
}
.up-product-card--mini .up-product-card__name {
    font-size: 14px;
}
.up-product-card--mini .up-product-card__excerpt,
.up-product-card--mini .up-product-card__tags {
    display: none;
}

/* Podium variant */
.up-product-card--podium {
    position: relative;
}
.up-product-card__medal {
    position: absolute;
    top: -8px;
    left: -8px;
    font-size: 28px;
    z-index: 2;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.15));
}

/* Product card grid */
.up-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin: 24px 0;
}

@media (max-width: 768px) {
    .up-product-card {
        grid-template-columns: 120px 1fr;
        gap: 14px;
        padding: 14px;
    }
    .up-product-card__name { font-size: 16px; }
    .up-product-card__price-current { font-size: 18px; }
    .up-product-card__ctas { flex-direction: column; }
    .up-product-card__cta { justify-content: center; }
}
@media (max-width: 480px) {
    .up-product-card {
        grid-template-columns: 1fr;
    }
    .up-product-card__image {
        max-height: 200px;
        margin: 0 auto;
    }
}

/* ═══ COMPARE TABLE — tableau comparatif ═══ */
.up-compare-table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
    font-size: 14px;
    border-radius: var(--up-radius);
    overflow: hidden;
    border: 1px solid var(--up-border);
}
.up-compare-table thead {
    background: var(--up-dark);
    color: #fff;
}
.up-compare-table th {
    padding: 12px 16px;
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-align: left;
}
.up-compare-table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--up-border-light);
    vertical-align: middle;
}
.up-compare-table tr:nth-child(even) {
    background: var(--up-bg-soft);
}
.up-compare-table tr:hover {
    background: var(--up-electric-light);
}
.up-compare-table__medal {
    font-size: 18px;
    margin-right: 6px;
}
.up-compare-table__score {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    color: var(--up-electric);
}
.up-compare-table__price {
    font-weight: 700;
    color: var(--up-text);
}
.up-compare-table__tag {
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--up-bg-muted);
    color: var(--up-text-secondary);
    white-space: nowrap;
}

@media (max-width: 768px) {
    .up-compare-table { font-size: 12px; }
    .up-compare-table th, .up-compare-table td { padding: 8px 10px; }
}

/* ═══ CALLOUT VARIANTS ═══ */
.up-art-callout--expert {
    background: linear-gradient(135deg, #1e293b, #334155);
    border-color: var(--up-electric);
    color: #fff;
}
.up-art-callout--expert .up-art-callout-title { color: var(--up-accent); }
.up-art-callout--expert .up-art-callout-body { color: rgba(255,255,255,0.85); }

.up-art-callout--verdict {
    background: linear-gradient(135deg, #ecfdf5, #d1fae5);
    border-color: var(--up-success);
}
.up-art-callout--verdict .up-art-callout-title { color: #166534; }

.up-art-callout--prix {
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    border-color: var(--up-warn);
}
.up-art-callout--prix .up-art-callout-title { color: #92400e; }

/* ═══ TRUST BAR ═══ */
.up-trust-bar {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 24px;
    padding: 16px 20px;
    background: var(--up-bg-soft);
    border: 1px solid var(--up-border-light);
    border-radius: var(--up-radius);
    margin: 24px 0;
}
.up-trust-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--up-text-secondary);
}
.up-trust-icon {
    font-size: 18px;
}

/* ═══ PLAYER CARD ═══ */
.up-player-card {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 16px;
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 20px;
    margin: 16px 0;
    transition: box-shadow 0.2s;
    align-items: center;
}
.up-player-card:hover { box-shadow: var(--up-shadow); }
.up-player-card__photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--up-bg-muted);
}
.up-player-card__name {
    font-family: var(--up-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--up-text);
    margin: 0;
}
.up-player-card__info {
    font-size: 13px;
    color: var(--up-text-secondary);
    line-height: 1.6;
}
.up-player-card__racket {
    font-size: 13px;
    font-weight: 600;
    color: var(--up-electric);
}
.up-player-card__link {
    font-size: 13px;
    font-weight: 700;
    color: var(--up-electric);
    text-decoration: none;
}
.up-player-card__link:hover { text-decoration: underline; }

/* Player card grid */
.up-player-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 16px;
    margin: 24px 0;
}

/* ═══ CLUB CARD ═══ */
.up-club-card {
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 20px;
    margin: 12px 0;
    transition: box-shadow 0.2s, border-color 0.2s;
}
.up-club-card:hover {
    box-shadow: var(--up-shadow);
    border-color: var(--up-electric);
}
.up-club-card__name {
    font-family: var(--up-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--up-text);
    margin: 0 0 8px;
}
.up-club-card__detail {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--up-text-secondary);
    margin-bottom: 4px;
}
.up-club-card__detail-icon { font-size: 16px; }
.up-club-card__rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    color: var(--up-warn);
}
.up-club-card__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    color: var(--up-electric);
    text-decoration: none;
    margin-top: 8px;
}
.up-club-card__link:hover { text-decoration: underline; }
.up-club-card__link::after { content: '→'; }

/* Club card grid */
.up-club-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
    margin: 24px 0;
}

/* ═══ HERO VARIANTS ═══ */
.up-hero--light {
    background: linear-gradient(135deg, var(--up-bg-soft), #edf0ff);
    padding: 60px 0 48px;
}
.up-hero--light h1 { color: var(--up-text); }
.up-hero--light .up-hero-sub { color: var(--up-text-secondary); }

.up-hero--category {
    background: linear-gradient(135deg, var(--up-dark), var(--up-blue-deep));
    padding: 48px 0 40px;
}
.up-hero--category h1 { color: #fff; font-size: clamp(24px, 3.5vw, 36px); }
.up-hero--category .up-hero-count {
    font-size: 14px;
    color: var(--up-accent);
    font-weight: 700;
    margin-top: 8px;
}

/* ═══ SECTION DIVIDER ═══ */
.up-section-divider {
    border: none;
    border-top: 1px solid var(--up-border);
    margin: 48px 0;
}

/* ═══ COLOR SWATCHES (pour la page démo) ═══ */
.up-swatches {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.up-swatch {
    border-radius: var(--up-radius-sm);
    overflow: hidden;
    border: 1px solid var(--up-border);
}
.up-swatch__color {
    height: 60px;
}
.up-swatch__label {
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 600;
    color: var(--up-text);
    background: var(--up-bg-card);
}
.up-swatch__hex {
    font-size: 11px;
    color: var(--up-text-muted);
    font-family: monospace;
}

/* ════════════════════════════════════════════════════════════
   UNIVERS PADEL — COMPOSANTS v6 (18 nouveaux)
   Ajoutés le 2026-04-01
   ════════════════════════════════════════════════════════════ */

/* ═══ SCORE ENGINE INLINE (version article) ═══ */
.up-score-inline {
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 20px;
    margin: 24px 0;
}
.up-score-inline__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.up-score-inline__title {
    font-family: var(--up-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--up-text);
}
.up-score-inline__global {
    font-size: 24px;
    font-weight: 800;
    color: var(--up-electric);
}
.up-score-inline__bars {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.up-score-inline__row {
    display: grid;
    grid-template-columns: 110px 1fr 36px;
    align-items: center;
    gap: 10px;
}
.up-score-inline__label {
    font-size: 12px;
    font-weight: 600;
    color: var(--up-text-secondary);
}
.up-score-inline__bar {
    height: 8px;
    background: var(--up-bg-muted);
    border-radius: 4px;
    overflow: hidden;
}
.up-score-inline__fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.8s ease-out;
}
.up-score-inline__val {
    font-size: 12px;
    font-weight: 700;
    color: var(--up-text);
    text-align: right;
}

/* ═══ PROS/CONS BLOCK (version article) ═══ */
.up-proscons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 24px 0;
}
.up-proscons__col {
    background: var(--up-bg-card);
    border-radius: var(--up-radius);
    padding: 20px;
    border: 1px solid var(--up-border);
}
.up-proscons__col--pros { border-top: 3px solid var(--up-success); }
.up-proscons__col--cons { border-top: 3px solid var(--up-error); }
.up-proscons__title {
    font-family: var(--up-font-heading);
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.up-proscons__col--pros .up-proscons__title { color: #166534; }
.up-proscons__col--cons .up-proscons__title { color: #991b1b; }
.up-proscons__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.up-proscons__item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--up-text);
}
.up-proscons__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 5px;
}
.up-proscons__dot--green { background: var(--up-success); }
.up-proscons__dot--red { background: var(--up-error); }

@media (max-width: 600px) {
    .up-proscons { grid-template-columns: 1fr; }
}

/* ═══ STEP-BY-STEP / HOW-TO ═══ */
.up-steps {
    margin: 24px 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.up-step {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 16px;
    padding: 20px 0;
    border-bottom: 1px solid var(--up-border-light);
    align-items: start;
}
.up-step:last-child { border-bottom: none; }
.up-step__num {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--up-electric);
    color: #fff;
    font-family: var(--up-font-heading);
    font-size: 20px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.up-step__body {}
.up-step__title {
    font-family: var(--up-font-heading);
    font-size: 17px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 6px;
}
.up-step__desc {
    font-size: 14px;
    color: var(--up-text-secondary);
    line-height: 1.65;
}

/* ═══ VIDEO EMBED WRAPPER ═══ */
.up-video {
    position: relative;
    margin: 24px 0;
    border-radius: var(--up-radius);
    overflow: hidden;
    border: 1px solid var(--up-border);
    background: #000;
}
.up-video__inner {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
}
.up-video__inner iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}
.up-video__caption {
    padding: 10px 16px;
    background: var(--up-bg-soft);
    font-size: 13px;
    color: var(--up-text-secondary);
    text-align: center;
}

/* ═══ IMAGE + CAPTION ═══ */
.up-figure {
    margin: 24px 0;
    border-radius: var(--up-radius);
    overflow: hidden;
    border: 1px solid var(--up-border);
}
.up-figure img {
    width: 100%;
    display: block;
}
.up-figure__caption {
    padding: 10px 16px;
    background: var(--up-bg-soft);
    font-size: 13px;
    color: var(--up-text-secondary);
    text-align: center;
    font-style: italic;
}

/* ═══ CTA BANNER (pleine largeur) ═══ */
.up-cta-banner {
    background: linear-gradient(135deg, var(--up-electric), #364fc7);
    border-radius: var(--up-radius);
    padding: 32px;
    margin: 32px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.up-cta-banner::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -15%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(255,212,59,.12) 0%, transparent 60%);
    pointer-events: none;
}
.up-cta-banner__title {
    font-family: var(--up-font-heading);
    font-size: clamp(20px, 3vw, 28px);
    font-weight: 800;
    color: #fff;
    margin-bottom: 8px;
    position: relative;
}
.up-cta-banner__desc {
    font-size: 15px;
    color: rgba(255,255,255,.75);
    margin-bottom: 20px;
    position: relative;
}
.up-cta-banner__btns {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
}
.up-cta-banner--warm {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}
.up-cta-banner--green {
    background: linear-gradient(135deg, var(--up-pn-bg), #0f7b2f);
}

/* ═══ PRICE ALERT BLOCK ═══ */
.up-price-alert {
    display: flex;
    align-items: center;
    gap: 16px;
    background: linear-gradient(135deg, #fff7ed, #ffedd5);
    border: 2px solid #f97316;
    border-radius: var(--up-radius);
    padding: 16px 20px;
    margin: 24px 0;
}
.up-price-alert__badge {
    background: #f97316;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    padding: 4px 10px;
    border-radius: 4px;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.up-price-alert__body { flex: 1; }
.up-price-alert__product {
    font-family: var(--up-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 2px;
}
.up-price-alert__prices {
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.up-price-alert__current {
    font-size: 22px;
    font-weight: 800;
    color: #c2410c;
}
.up-price-alert__old {
    font-size: 14px;
    color: var(--up-text-muted);
    text-decoration: line-through;
}
.up-price-alert__pct {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    background: var(--up-error);
    padding: 2px 6px;
    border-radius: 4px;
}
.up-price-alert__cta {
    flex-shrink: 0;
}

@media (max-width: 600px) {
    .up-price-alert { flex-direction: column; text-align: center; }
    .up-price-alert__cta { width: 100%; }
}

/* ═══ COMPARISON SIDE-BY-SIDE ═══ */
.up-versus {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0;
    margin: 24px 0;
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    overflow: hidden;
}
.up-versus__product {
    padding: 24px;
    text-align: center;
    background: var(--up-bg-card);
}
.up-versus__product img {
    max-height: 140px;
    margin: 0 auto 12px;
    object-fit: contain;
}
.up-versus__name {
    font-family: var(--up-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 4px;
}
.up-versus__price {
    font-size: 20px;
    font-weight: 800;
    color: var(--up-text);
    margin-bottom: 8px;
}
.up-versus__scores {
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: left;
}
.up-versus__score-row {
    display: grid;
    grid-template-columns: 80px 1fr 30px;
    align-items: center;
    gap: 6px;
    font-size: 12px;
}
.up-versus__score-label { color: var(--up-text-secondary); font-weight: 600; }
.up-versus__score-bar {
    height: 6px;
    background: var(--up-bg-muted);
    border-radius: 3px;
    overflow: hidden;
}
.up-versus__score-fill { height: 100%; border-radius: 3px; }
.up-versus__score-val { text-align: right; font-weight: 700; font-size: 11px; }
.up-versus__divider {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--up-bg-muted);
    padding: 0 16px;
    font-family: var(--up-font-heading);
    font-size: 24px;
    font-weight: 800;
    color: var(--up-text-muted);
}

@media (max-width: 768px) {
    .up-versus { grid-template-columns: 1fr; }
    .up-versus__divider {
        padding: 12px;
        font-size: 18px;
    }
}

/* ═══ TOC UNIFIÉ ═══ */
.up-toc {
    background: var(--up-bg-soft);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 20px 24px;
    margin: 24px 0;
}
.up-toc__title {
    font-family: var(--up-font-heading);
    font-size: 15px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.up-toc__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    counter-reset: toc;
}
.up-toc__item {
    counter-increment: toc;
}
.up-toc__link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--up-text-secondary);
    text-decoration: none;
    padding: 4px 0;
    transition: color 0.2s;
}
.up-toc__link::before {
    content: counter(toc);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--up-electric-light);
    color: var(--up-electric);
    font-size: 11px;
    font-weight: 700;
    flex-shrink: 0;
}
.up-toc__link:hover {
    color: var(--up-electric);
    text-decoration: none;
}

/* ═══ RELATED ARTICLES GRID ═══ */
.up-related {
    margin: 48px 0 24px;
}
.up-related__title {
    font-family: var(--up-font-heading);
    font-size: 22px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 20px;
}
.up-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}
.up-related__card {
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 20px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, border-color 0.2s;
}
.up-related__card:hover {
    box-shadow: var(--up-shadow);
    border-color: var(--up-electric);
    text-decoration: none;
}
.up-related__card-tag {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--up-electric);
    margin-bottom: 8px;
}
.up-related__card-title {
    font-family: var(--up-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--up-text);
    line-height: 1.3;
    margin-bottom: 6px;
}
.up-related__card-desc {
    font-size: 13px;
    color: var(--up-text-secondary);
    line-height: 1.5;
}

/* ═══ BADGE SYSTEM ═══ */
.up-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}
.up-badge--new { background: #dbeafe; color: #1d4ed8; }
.up-badge--promo { background: #fecaca; color: #b91c1c; }
.up-badge--best { background: #fef3c7; color: #92400e; }
.up-badge--test { background: #e0e7ff; color: #3730a3; }
.up-badge--pro { background: #d1fae5; color: #065f46; }

/* ═══ CITY HERO ═══ */
.up-city-hero {
    background: linear-gradient(135deg, var(--up-dark), var(--up-blue-deep));
    border-radius: var(--up-radius);
    padding: 40px 32px;
    margin: 24px 0;
    position: relative;
    overflow: hidden;
}
.up-city-hero::before {
    content: '';
    position: absolute;
    top: -30%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(59,91,219,.15) 0%, transparent 60%);
    pointer-events: none;
}
.up-city-hero__name {
    font-family: var(--up-font-heading);
    font-size: clamp(26px, 4vw, 40px);
    font-weight: 800;
    color: #fff;
    margin-bottom: 12px;
    position: relative;
}
.up-city-hero__name span { color: var(--up-accent); }
.up-city-hero__stats {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    position: relative;
}
.up-city-hero__stat {
    text-align: center;
}
.up-city-hero__stat-num {
    font-size: 28px;
    font-weight: 800;
    color: var(--up-accent);
}
.up-city-hero__stat-label {
    font-size: 12px;
    color: rgba(255,255,255,.6);
}

/* ═══ TOURNAMENT CARD ═══ */
.up-tournament-card {
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 20px;
    margin: 12px 0;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 16px;
    align-items: center;
    transition: box-shadow 0.2s;
}
.up-tournament-card:hover { box-shadow: var(--up-shadow); }
.up-tournament-card__date {
    text-align: center;
    background: var(--up-electric-light);
    border-radius: var(--up-radius-sm);
    padding: 10px 14px;
    min-width: 64px;
}
.up-tournament-card__day {
    font-size: 24px;
    font-weight: 800;
    color: var(--up-electric);
    line-height: 1;
}
.up-tournament-card__month {
    font-size: 11px;
    font-weight: 600;
    color: var(--up-electric);
    text-transform: uppercase;
}
.up-tournament-card__name {
    font-family: var(--up-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--up-text);
}
.up-tournament-card__info {
    font-size: 13px;
    color: var(--up-text-secondary);
}
.up-tournament-card__category {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    background: var(--up-electric);
    padding: 4px 12px;
    border-radius: 20px;
    white-space: nowrap;
}

/* ═══ LEVEL PROGRESS BAR ═══ */
.up-level-bar {
    margin: 24px 0;
}
.up-level-bar__track {
    display: flex;
    height: 12px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--up-bg-muted);
    margin-bottom: 8px;
}
.up-level-bar__segment {
    height: 100%;
    transition: width 0.6s ease-out;
    position: relative;
}
.up-level-bar__labels {
    display: flex;
    justify-content: space-between;
}
.up-level-bar__label {
    font-size: 11px;
    font-weight: 600;
    color: var(--up-text-muted);
}
.up-level-bar__label--active {
    color: var(--up-electric);
    font-weight: 700;
}
.up-level-bar__marker {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 24px;
    height: 24px;
    background: #fff;
    border: 3px solid var(--up-electric);
    border-radius: 50%;
    box-shadow: var(--up-shadow-sm);
    z-index: 2;
}

/* ═══ EXPERT QUOTE ═══ */
.up-quote {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 16px;
    background: linear-gradient(135deg, #f8fafc, #eef2ff);
    border-left: 4px solid var(--up-electric);
    border-radius: 0 var(--up-radius) var(--up-radius) 0;
    padding: 20px;
    margin: 24px 0;
    align-items: start;
}
.up-quote__photo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--up-bg-muted);
}
.up-quote__text {
    font-size: 15px;
    font-style: italic;
    color: var(--up-text);
    line-height: 1.65;
    margin-bottom: 8px;
}
.up-quote__text::before { content: '"'; }
.up-quote__text::after { content: '"'; }
.up-quote__author {
    font-size: 13px;
    font-weight: 700;
    color: var(--up-text);
}
.up-quote__credentials {
    font-size: 12px;
    color: var(--up-text-muted);
}

@media (max-width: 600px) {
    .up-quote { grid-template-columns: 1fr; }
    .up-quote__photo { width: 48px; height: 48px; }
}

/* ═══ SOURCE CARD ═══ */
.up-source-card {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--up-bg-soft);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius-sm);
    padding: 12px 16px;
    margin: 8px 0;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s;
}
.up-source-card:hover {
    border-color: var(--up-electric);
    text-decoration: none;
}
.up-source-card__icon {
    font-size: 24px;
    flex-shrink: 0;
}
.up-source-card__name {
    font-size: 14px;
    font-weight: 700;
    color: var(--up-text);
}
.up-source-card__desc {
    font-size: 12px;
    color: var(--up-text-muted);
}

/* ═══ BREADCRUMB ARTICLE UNIFIÉ ═══ */
.up-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--up-text-muted);
    padding: 16px 0 8px;
}
.up-breadcrumb a {
    color: var(--up-text-secondary);
    text-decoration: none;
}
.up-breadcrumb a:hover { color: var(--up-electric); }
.up-breadcrumb__sep { opacity: 0.4; font-size: 10px; }
.up-breadcrumb__current { color: var(--up-text-muted); }

/* ════════════════════════════════════════════════════════════
   UNIVERS PADEL — CORRECTIONS v7 + nouveaux composants
   2026-04-01 — Retours Florian
   ════════════════════════════════════════════════════════════ */

/* === FIX : Soulignage global sur les liens composants === */
.up-btn:hover,
.up-product-card__cta:hover,
.up-cta-banner a:hover,
.up-source-card:hover,
.up-related__card:hover,
.up-player-card__link:hover,
.up-club-card__link:hover,
.up-toc__link:hover,
.up-guide-card:hover,
.up-cat-card:hover {
    text-decoration: none !important;
}

/* === FIX : Boutons hover illisible === */
.up-btn--primary:hover { background: #f0c000; color: #0f1729; }
.up-btn--electric:hover { background: #2b4bc8; color: #fff; }
.up-btn--orange:hover { background: #d97706; color: #fff; }
.up-btn--cyan:hover { background: #0c7792; color: #fff; }
.up-product-card__cta--pn:hover { background: linear-gradient(135deg, #157a2d, #0f6b22); color: #fff; }
.up-product-card__cta--az:hover { background: linear-gradient(135deg, #e0950d, #c77e00); color: #1a1a1a; }

/* === FIX : Pros/Cons style pleine page fond vert/rouge === */
.up-proscons__col--pros {
    background: #f0fdf4;
    border-top: 3px solid var(--up-success);
    border: 1px solid #bbf7d0;
    border-top: 3px solid var(--up-success);
}
.up-proscons__col--cons {
    background: #fef2f2;
    border-top: 3px solid var(--up-error);
    border: 1px solid #fecaca;
    border-top: 3px solid var(--up-error);
}

/* === NOUVEAU : Product Card avec Score Engine intégré === */
.up-product-card__scores {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 6px 0;
}
.up-product-card__score-row {
    display: grid;
    grid-template-columns: 80px 1fr 28px;
    align-items: center;
    gap: 6px;
}
.up-product-card__score-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--up-text-muted);
}
.up-product-card__score-bar {
    height: 6px;
    background: var(--up-bg-muted);
    border-radius: 3px;
    overflow: hidden;
}
.up-product-card__score-fill {
    height: 100%;
    border-radius: 3px;
}
.up-product-card__score-val {
    font-size: 10px;
    font-weight: 700;
    text-align: right;
    color: var(--up-text-secondary);
}

/* === NOUVEAU : Product Card variante Signature Pro === */
.up-product-card--pro {
    border: 2px solid var(--up-electric);
    position: relative;
}
.up-product-card__pro-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--up-electric);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    z-index: 2;
}
.up-product-card__pro-photo {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,0.5);
}

/* === NOUVEAU : Grille produits similaires === */
.up-similar {
    margin: 48px 0 24px;
    padding-top: 32px;
    border-top: 1px solid var(--up-border);
}
.up-similar__title {
    font-family: var(--up-font-heading);
    font-size: 22px;
    font-weight: 700;
    color: var(--up-text);
    margin-bottom: 20px;
}
.up-similar__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.up-similar__card {
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 16px;
    text-align: center;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, border-color 0.2s;
}
.up-similar__card:hover {
    box-shadow: var(--up-shadow);
    border-color: var(--up-electric);
    text-decoration: none;
}
.up-similar__card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: contain;
    margin-bottom: 10px;
    border-radius: var(--up-radius-sm);
    background: var(--up-bg-soft);
}
.up-similar__card-brand {
    font-size: 11px;
    font-weight: 600;
    color: var(--up-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.up-similar__card-name {
    font-family: var(--up-font-heading);
    font-size: 14px;
    font-weight: 700;
    color: var(--up-text);
    line-height: 1.3;
    margin: 4px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.up-similar__card-score {
    font-size: 12px;
    font-weight: 700;
    color: var(--up-electric);
    margin-bottom: 6px;
}
.up-similar__card-price {
    font-size: 16px;
    font-weight: 800;
    color: var(--up-text);
}
.up-similar__card-old-price {
    font-size: 12px;
    color: var(--up-text-muted);
    text-decoration: line-through;
    margin-left: 4px;
}
.up-similar__card-cta {
    display: block;
    margin-top: 10px;
    font-size: 12px;
    font-weight: 700;
    color: var(--up-pn-text);
    background: linear-gradient(135deg, var(--up-pn-bg), var(--up-pn-hover));
    padding: 6px 12px;
    border-radius: var(--up-radius-sm);
    text-decoration: none;
}
.up-similar__card-cta:hover { text-decoration: none; opacity: 0.9; }

@media (max-width: 768px) {
    .up-similar__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .up-similar__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .up-similar__card { padding: 10px; }
    .up-similar__card-name { font-size: 12px; }
}

/* === NOUVEAU : Brand Card === */
.up-brand-card {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--up-bg-card);
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    padding: 16px 20px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, border-color 0.2s;
}
.up-brand-card:hover {
    box-shadow: var(--up-shadow);
    border-color: var(--up-electric);
    text-decoration: none;
}
.up-brand-card__logo {
    width: 56px;
    height: 56px;
    border-radius: var(--up-radius-sm);
    background: var(--up-bg-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 800;
    color: var(--up-text-secondary);
    flex-shrink: 0;
}
.up-brand-card__name {
    font-family: var(--up-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--up-text);
}
.up-brand-card__count {
    font-size: 13px;
    color: var(--up-text-secondary);
}
.up-brand-card__arrow {
    margin-left: auto;
    font-size: 18px;
    color: var(--up-text-muted);
}
.up-brand-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 12px;
    margin: 24px 0;
}

/* === NOUVEAU : Specs Table inline (version article) === */
.up-specs-inline {
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius);
    overflow: hidden;
    margin: 24px 0;
}
.up-specs-inline__title {
    font-family: var(--up-font-heading);
    font-size: 15px;
    font-weight: 700;
    padding: 12px 16px;
    background: var(--up-dark);
    color: #fff;
}
.up-specs-inline__row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid var(--up-border-light);
}
.up-specs-inline__row:last-child { border-bottom: none; }
.up-specs-inline__row:nth-child(even) { background: var(--up-bg-soft); }
.up-specs-inline__key {
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--up-text-secondary);
}
.up-specs-inline__val {
    padding: 10px 16px;
    font-size: 13px;
    color: var(--up-text);
}

/* === NOUVEAU : Newsletter CTA === */
.up-newsletter {
    background: linear-gradient(135deg, #0f1729, #1a2b5f);
    border-radius: var(--up-radius);
    padding: 32px;
    margin: 32px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.up-newsletter::before {
    content: '';
    position: absolute;
    top: -40%;
    left: -15%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(255,212,59,.08) 0%, transparent 60%);
    pointer-events: none;
}
.up-newsletter__title {
    font-family: var(--up-font-heading);
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 8px;
    position: relative;
}
.up-newsletter__desc {
    font-size: 14px;
    color: rgba(255,255,255,.65);
    margin-bottom: 20px;
    position: relative;
}
.up-newsletter__form {
    display: flex;
    gap: 8px;
    max-width: 420px;
    margin: 0 auto;
    position: relative;
}
.up-newsletter__input {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--up-radius-sm);
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 14px;
    outline: none;
}
.up-newsletter__input::placeholder { color: rgba(255,255,255,.4); }
.up-newsletter__input:focus { border-color: var(--up-accent); }
.up-newsletter__btn {
    padding: 12px 24px;
    background: var(--up-accent);
    color: var(--up-dark);
    font-weight: 700;
    font-size: 14px;
    border: none;
    border-radius: var(--up-radius-sm);
    cursor: pointer;
    white-space: nowrap;
}
.up-newsletter__btn:hover { background: #f0c000; }

@media (max-width: 480px) {
    .up-newsletter__form { flex-direction: column; }
}

/* === NOUVEAU : Back to top button === */
.up-back-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--up-electric);
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--up-shadow);
    transition: transform 0.2s, opacity 0.2s;
    opacity: 0;
    pointer-events: none;
    z-index: 100;
}
.up-back-top.visible { opacity: 1; pointer-events: auto; }
.up-back-top:hover { transform: translateY(-3px); }

/* === FIX : Compare table — ajout CTA === */
.up-compare-table__cta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    color: var(--up-pn-text);
    background: linear-gradient(135deg, var(--up-pn-bg), var(--up-pn-hover));
    padding: 4px 10px;
    border-radius: 4px;
    text-decoration: none;
}
.up-compare-table__cta:hover { text-decoration: none; opacity: 0.9; }

/* === FIX : Price Alert avec image === */
.up-price-alert__img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: var(--up-radius-sm);
    background: var(--up-bg-soft);
    flex-shrink: 0;
}

/* === FIX : Tournament Card CTA === */
.up-tournament-card__cta {
    font-size: 12px;
    font-weight: 700;
    color: var(--up-electric);
    text-decoration: none;
    white-space: nowrap;
}
.up-tournament-card__cta:hover { text-decoration: none; color: #2b4bc8; }

/* === Product Grid avec Score Engine (refonte du 7) === */
.up-product-grid--scores .up-product-card--vertical {
    text-align: left;
}
.up-product-grid--scores .up-product-card__scores {
    margin: 8px 0;
}

/* ═══ FIX FINAL : Soulignage supprimé sur TOUS les composants cliquables ═══ */
/* État normal ET hover — pour contrer le soulignage par défaut d'Astra */
a.up-similar__card,
a.up-brand-card,
a.up-related__card,
a.up-source-card,
a.up-club-card__link,
a.up-player-card__link,
a.up-tournament-card__cta,
a.up-similar__card-cta,
a.up-btn,
a.up-product-card__cta,
.up-cta-banner a,
.up-guide-card,
.up-cat-card,
.up-toc__link {
    text-decoration: none !important;
}

/* ═══ FAQ UNIFIÉ (.up-faq) — Style propre pour toutes les pages ═══ */
.up-faq {
    margin: 24px 0;
}
.up-faq .up-faq-item {
    border: 1px solid var(--up-border);
    border-radius: var(--up-radius-sm);
    margin-bottom: 8px;
    overflow: hidden;
    background: var(--up-bg-card);
    transition: box-shadow 0.2s;
}
.up-faq .up-faq-item:hover {
    box-shadow: var(--up-shadow-sm);
}
.up-faq .up-faq-q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 18px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--up-font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--up-text);
    text-align: left;
    line-height: 1.4;
}
.up-faq .up-faq-toggle {
    font-size: 18px;
    font-weight: 700;
    color: var(--up-electric);
    flex-shrink: 0;
    margin-left: 12px;
    transition: transform 0.2s;
}
.up-faq .up-faq-item.open .up-faq-toggle {
    transform: rotate(45deg);
}
.up-faq .up-faq-a {
    display: none;
    padding: 0 18px 16px;
    font-size: 14px;
    color: var(--up-text-secondary);
    line-height: 1.7;
}
.up-faq .up-faq-item.open .up-faq-a {
    display: block;
}
.up-faq .up-faq-item.open {
    border-color: var(--up-electric);
    box-shadow: 0 0 0 1px rgba(59,91,219,0.1);
}
.up-faq .up-faq-a a {
    color: var(--up-electric);
}
.up-faq .up-faq-a strong {
    color: var(--up-text);
}

/* ============================================
   ARTICLE HERO + TRUST BAR + LAYOUT OVERRIDE
   v2.11 — avril 2026
   ============================================ */

/* --- Article Hero (sombre + image overlay) --- */
.up-art-hero {
  position: relative;
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
  color: #fff;
  padding: 56px 0 48px;
  margin-bottom: 0;
  overflow: hidden;
}
.up-art-hero[style*="background-image"]::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 41, 0.72);
  z-index: 1;
}
.up-art-hero[style*="background-image"] {
  background-size: cover;
  background-position: center;
}
.up-art-hero .up-cnt {
  position: relative;
  z-index: 2;
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}
.up-art-hero__badge {
  display: inline-block;
  background: #f59e0b;
  color: #0f172a;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  padding: 5px 14px;
  border-radius: 4px;
  margin-bottom: 16px;
}
.up-art-hero__title {
  font-family: var(--up-font-heading, 'Bricolage Grotesque', system-ui, sans-serif);
  font-size: clamp(26px, 4vw, 36px);
  font-weight: 800;
  line-height: 1.15;
  margin: 0 0 14px;
  color: #fff;
}
.up-art-hero__subtitle {
  font-size: 16px;
  color: #94a3b8;
  line-height: 1.6;
  margin: 0;
  max-width: 640px;
}

@media (max-width: 768px) {
  .up-art-hero { padding: 36px 0 32px; }
}

/* --- Trust Bar (sous le hero) --- */
.up-art-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
  font-size: 13px;
  color: #6b7280;
  border-bottom: 1px solid var(--up-border, #e2e6ed);
  padding-bottom: 14px;
  margin-bottom: 28px;
}
.up-art-trust span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

/* --- Fullwidth Article Layout Override (Astra) --- */
body.up-fullwidth-article .site-content > .ast-container {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}
body.up-fullwidth-article #primary {
  max-width: 100%;
  padding: 0;
  margin: 0;
}
body.up-fullwidth-article .entry-content > * {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}
body.up-fullwidth-article .entry-content > .up-art-hero {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}
body.up-fullwidth-article .entry-content > .up-article {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
/* Hide Astra default post title — we use up-art-hero instead */
body.up-fullwidth-article .entry-header,
body.up-fullwidth-article .ast-single-post-order .entry-header {
  display: none;
}


/* ═══ Fix: hide comments + sidebar on fullwidth article pages ═══ */
body.up-fullwidth-article #secondary,
body.up-fullwidth-article .comments-area,
body.up-fullwidth-article .comment-respond,
body.up-fullwidth-article #comments {
    display: none !important;
}
body.up-fullwidth-article .ast-container {
    display: block !important;
}
body.up-fullwidth-article #primary {
    width: 100% !important;
    float: none !important;
