/*
Theme Name: USCCA Foot
Theme URI: https://uscca-foot.fr
Author: USCCA
Author URI: https://uscca-foot.fr
Description: Custom theme for USCCA - US Crotenay Combe d'Ain football club
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: uscca-foot
Tags: custom-menu, featured-images, threaded-comments, translation-ready, woocommerce
*/

/* ========================================
   CSS CUSTOM PROPERTIES
======================================== */
:root {
    --color-primary:   #E1202A;
    --color-dark:      #161614;
    --color-gray:      #4A595A;
    --color-white:     #FFFFFF;
    --color-cream:     #FAF7EF;
    --color-light:     #EDF0F3;
    --color-orange:    #FC702C;

    --font-main:       'Almarai', 'Segoe UI', Arial, sans-serif;
    --font-heading:    'Almarai', 'Segoe UI', Arial, sans-serif;

    --container-max:   1280px;
    --border-radius:   6px;
    --transition:      0.25s ease;
    --shadow-sm:       0 2px 8px rgba(0,0,0,.12);
    --shadow-md:       0 4px 24px rgba(0,0,0,.18);
}

/* ========================================
   RESET & BASE
======================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; font-size: 16px; overflow-x: hidden; }

body {
    font-family: var(--font-main);
    color: var(--color-gray);
    background: var(--color-white);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-orange); }
ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--color-dark);
    line-height: 1.2;
    font-weight: 700;
}

p { margin-bottom: 1rem; }

/* ========================================
   UTILITY
======================================== */
.container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 24px;
}

.section-pad { padding: 80px 0; }
.section-pad-sm { padding: 48px 0; }

.text-center { text-align: center; }
.text-white { color: var(--color-white) !important; }
.bg-dark { background: var(--color-dark); }
.bg-red { background: var(--color-primary); }
.bg-cream { background: var(--color-cream); }
.bg-light { background: var(--color-light); }

.badge {
    display: inline-block;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 2px;
    margin-bottom: 12px;
}

.section-title {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    margin-bottom: .5rem;
}

.section-subtitle {
    color: var(--color-gray);
    max-width: 600px;
    margin: 0 auto 2.5rem;
}

/* ========================================
   BUTTONS
======================================== */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    border-radius: var(--border-radius);
    font-weight: 700;
    font-size: .9rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all var(--transition);
    text-decoration: none;
}

.btn-primary {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}
.btn-primary:hover {
    background: var(--color-dark);
    border-color: var(--color-dark);
    color: var(--color-white);
}

.btn-outline {
    background: transparent;
    color: var(--color-white);
    border-color: var(--color-white);
}
.btn-outline:hover {
    background: var(--color-white);
    color: var(--color-dark);
}

.btn-dark {
    background: var(--color-dark);
    color: var(--color-white);
    border-color: var(--color-dark);
}
.btn-dark:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
}

/* ========================================
   SITE HEADER
======================================== */
#site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 9999;
    background: var(--color-dark);
    box-shadow: 0 2px 12px rgba(0,0,0,.35);
    transition: background var(--transition);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
}

/* Logo */
.site-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}
.site-logo img {
    height: 52px;
    width: auto;
    border-radius: 50%;
}
.site-logo .logo-text {
    display: flex;
    flex-direction: column;
}
.site-logo .logo-name {
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-white);
    letter-spacing: .04em;
    text-transform: uppercase;
    line-height: 1.1;
}
.site-logo .logo-sub {
    font-size: .65rem;
    color: var(--color-primary);
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* Primary Nav */
.primary-nav { display: flex; align-items: center; gap: 4px; }

.primary-nav > li {
    position: relative;
}

.primary-nav > li > a {
    display: block;
    padding: 8px 14px;
    color: var(--color-white);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-radius: var(--border-radius);
    transition: all var(--transition);
}
.primary-nav > li > a:hover,
.primary-nav > li.current-menu-item > a,
.primary-nav > li.current-menu-ancestor > a {
    background: var(--color-primary);
    color: var(--color-white);
}

/* Dropdown */
.primary-nav .sub-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 220px;
    background: var(--color-dark);
    border-top: 3px solid var(--color-primary);
    border-radius: 0 0 var(--border-radius) var(--border-radius);
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all var(--transition);
    z-index: 100;
}
.primary-nav > li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.primary-nav .sub-menu li a {
    display: block;
    padding: 10px 18px;
    color: rgba(255,255,255,.85);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    transition: all var(--transition);
    border-bottom: 1px solid rgba(255,255,255,.06);
}
.primary-nav .sub-menu li:last-child a { border-bottom: none; }
.primary-nav .sub-menu li a:hover {
    background: var(--color-primary);
    color: var(--color-white);
    padding-left: 24px;
}

/* Header CTA */
.header-cta {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Hamburger */
.menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 28px;
    height: 20px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}
.menu-toggle span {
    display: block;
    height: 2px;
    background: var(--color-white);
    border-radius: 2px;
    transition: all var(--transition);
}

/* ========================================
   HERO (front-page)
======================================== */
.hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--color-dark);
}

.hero-bg {
    position: absolute;
    inset: 0;
    background-image: image-set(
        url('https://uscca-foot.fr/wp-content/uploads/2024/06/407777136-hero.webp') type('image/webp'),
        url('https://uscca-foot.fr/wp-content/uploads/2024/06/407777136-hero.jpg') type('image/jpeg')
    );
    background-image: url('https://uscca-foot.fr/wp-content/uploads/2024/06/407777136-hero.webp');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    opacity: .35;
    transition: transform 8s ease;
}
/* Fallback mobile : fixed n'est pas supporté proprement */
@media (max-width: 1024px) {
    .hero-bg { background-attachment: scroll; }
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(103deg, rgba(22,22,20,.92) 17%, rgba(225,32,42,.35) 60%, rgba(22,22,20,.7) 100%);
}

.hero-content {
    position: relative;
    z-index: 2;
    max-width: 700px;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 6px 16px;
    border-radius: 2px;
    margin-bottom: 20px;
}
.hero-badge::before {
    content: '';
    width: 8px; height: 8px;
    background: var(--color-white);
    border-radius: 50%;
    animation: pulse 1.4s infinite;
}
@keyframes pulse {
    0%,100% { opacity:1; transform:scale(1); }
    50% { opacity:.4; transform:scale(.7); }
}

.hero-title {
    font-size: clamp(2.2rem, 5vw, 3.8rem);
    color: var(--color-white);
    margin-bottom: 1rem;
    line-height: 1.05;
}
.hero-title span { color: var(--color-primary); }

.hero-desc {
    color: rgba(255,255,255,.8);
    font-size: 1.05rem;
    margin-bottom: 2rem;
    max-width: 540px;
}

.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }

.hero-stats {
    display: flex;
    gap: 32px;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255,255,255,.15);
}
.hero-stat-num {
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1;
}
.hero-stat-label {
    font-size: .75rem;
    color: rgba(255,255,255,.65);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-top: 4px;
}

/* Scorenco widget embed — agrandi, pas de scroll interne */
.hero-scores {
    position: relative;
    z-index: 2;
    align-self: stretch;
    width: 460px;
    flex-shrink: 0;
    display: flex;
    align-items: stretch;
}
.hero-scores iframe {
    width: 100% !important;
    height: 100% !important;
    min-height: 640px;
    border-radius: 10px;
    background: rgba(255,255,255,.02);
    overflow: hidden !important;
}
@media (max-width: 1100px) {
    .hero-scores { width: 400px; }
    .hero-scores iframe { min-height: 560px; }
}
@media (max-width: 900px) { .hero-scores { display: none; } }

/* Scorenco en homepage section scores : agrandi aussi */
.scores-embed iframe {
    min-height: 780px !important;
    overflow: hidden !important;
}

.hero-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    width: 100%;
}

/* ========================================
   NEWS SECTION
======================================== */
.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 28px;
}

.news-card {
    background: var(--color-white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition), transform var(--transition);
    display: flex;
    flex-direction: column;
}
.news-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}

.news-card-img {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.news-card-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.news-card:hover .news-card-img img { transform: scale(1.05); }

.news-card-img-placeholder {
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, var(--color-dark), var(--color-primary));
    display: flex;
    align-items: center;
    justify-content: center;
}
.news-card-img-placeholder svg { opacity: .3; }

.news-card-body {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.news-card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    font-size: .75rem;
    color: var(--color-gray);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.news-card-cat {
    background: var(--color-primary);
    color: var(--color-white);
    padding: 2px 8px;
    border-radius: 2px;
    font-weight: 700;
}
.news-card-title {
    font-size: 1rem;
    margin-bottom: .5rem;
    line-height: 1.35;
}
.news-card-title a { color: var(--color-dark); }
.news-card-title a:hover { color: var(--color-primary); }
.news-card-excerpt {
    font-size: .87rem;
    color: var(--color-gray);
    flex: 1;
    margin-bottom: 16px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.news-card-link {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-primary);
    align-self: flex-start;
    display: flex;
    align-items: center;
    gap: 6px;
}
.news-card-link::after { content: '→'; }
.news-card-link:hover { color: var(--color-dark); }

/* ========================================
   TEAM HIGHLIGHTS
======================================== */
.teams-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 20px;
}

.team-card {
    background: var(--color-dark);
    border-radius: var(--border-radius);
    overflow: hidden;
    position: relative;
    aspect-ratio: 3/4;
    cursor: pointer;
}
.team-card-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform .4s ease;
}
.team-card:hover .team-card-bg { transform: scale(1.06); }
.team-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(22,22,20,.95) 0%, rgba(22,22,20,.2) 100%);
}
.team-card-body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px;
}
.team-card-name {
    color: var(--color-white);
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    line-height: 1.2;
}
.team-card-badge {
    display: inline-block;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 2px;
    margin-bottom: 6px;
}
.team-card a {
    position: absolute;
    inset: 0;
    z-index: 2;
}

/* ========================================
   SCORES WIDGET SECTION
======================================== */
.scores-section { background: var(--color-dark); }
.scores-embed iframe {
    border-radius: var(--border-radius);
    overflow: hidden;
}

/* ========================================
   PARTNERS SECTION
======================================== */
.partners-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 32px;
}
.partners-logos img {
    height: 60px;
    width: auto;
    filter: grayscale(1) opacity(.7);
    transition: filter var(--transition);
}
.partners-logos img:hover { filter: none; }

/* ========================================
   PAGE HERO (inner pages)
======================================== */
.page-hero {
    background: var(--color-dark);
    padding: 120px 0 60px;
    position: relative;
    overflow: hidden;
}
.page-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 4px;
    height: 100%;
    background: var(--color-primary);
}
.page-hero-title {
    color: var(--color-white);
    font-size: clamp(1.8rem, 4vw, 3rem);
}
.page-hero-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    font-size: .8rem;
    color: rgba(255,255,255,.5);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.page-hero-breadcrumb a { color: rgba(255,255,255,.5); }
.page-hero-breadcrumb a:hover { color: var(--color-primary); }
.page-hero-breadcrumb span { color: var(--color-primary); }

/* ========================================
   PAGE CONTENT
======================================== */
.page-content {
    padding: 60px 0;
}

.page-content-inner {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 40px;
    align-items: start;
}
.page-content-inner.no-sidebar { grid-template-columns: 1fr; }

.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
    margin-top: 1.5rem;
    margin-bottom: .75rem;
}
.entry-content p { margin-bottom: 1rem; }
.entry-content ul, .entry-content ol {
    margin-left: 1.5rem;
    margin-bottom: 1rem;
    list-style: disc;
}
.entry-content ol { list-style: decimal; }
.entry-content a { color: var(--color-primary); }
.entry-content a:hover { color: var(--color-dark); }
.entry-content img {
    border-radius: var(--border-radius);
    margin: 1rem 0;
}
.entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
}
.entry-content table th,
.entry-content table td {
    padding: 10px 14px;
    border: 1px solid var(--color-light);
    text-align: left;
    font-size: .9rem;
}
.entry-content table th {
    background: var(--color-dark);
    color: var(--color-white);
    font-weight: 700;
}
.entry-content table tr:nth-child(even) { background: var(--color-light); }
.entry-content iframe { max-width: 100%; border-radius: var(--border-radius); }

/* ========================================
   SIDEBAR
======================================== */
.sidebar {
    background: var(--color-light);
    border-radius: var(--border-radius);
    padding: 28px;
}
.sidebar h3 {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-dark);
    padding-bottom: 10px;
    border-bottom: 3px solid var(--color-primary);
    margin-bottom: 16px;
}
.sidebar ul { list-style: none; }
.sidebar ul li {
    padding: 6px 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
    font-size: .87rem;
}
.sidebar ul li:last-child { border-bottom: none; }
.sidebar ul li a { color: var(--color-gray); font-weight: 600; }
.sidebar ul li a:hover { color: var(--color-primary); }

/* ========================================
   TEAM PAGE (page-equipe)
======================================== */
.team-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
@media (max-width: 768px) { .team-info-grid { grid-template-columns: 1fr; } }

.team-info-card {
    background: var(--color-light);
    border-radius: var(--border-radius);
    padding: 32px;
}
.team-info-card h3 {
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 3px solid var(--color-primary);
}
.team-staff-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
    font-size: .9rem;
}
.team-staff-item:last-child { border-bottom: none; }
.team-staff-role {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-primary);
    font-weight: 700;
}

.roster-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 20px;
    margin-top: 32px;
}
.player-card {
    background: var(--color-dark);
    border-radius: var(--border-radius);
    overflow: hidden;
    text-align: center;
    padding-bottom: 16px;
}
.player-card-photo {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    background: var(--color-gray);
}
.player-card-number {
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1;
    padding: 12px 0 4px;
}
.player-card-name {
    font-size: .85rem;
    font-weight: 700;
    color: var(--color-white);
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 0 8px;
}
.player-card-pos {
    font-size: .72rem;
    color: rgba(255,255,255,.5);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-top: 4px;
}

/* ========================================
   CONTACT PAGE
======================================== */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 48px;
    align-items: start;
}
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }

.contact-info-card {
    background: var(--color-dark);
    color: var(--color-white);
    border-radius: var(--border-radius);
    padding: 36px;
}
.contact-info-card h3 {
    color: var(--color-white);
    font-size: 1.3rem;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--color-primary);
}
.contact-item {
    display: flex;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
    font-size: .9rem;
    color: rgba(255,255,255,.8);
    min-width: 0;
}
.contact-item > div {
    min-width: 0;
    overflow-wrap: break-word;
    word-break: break-word;
}
.contact-item > div a {
    overflow-wrap: break-word;
    word-break: break-word;
}
.contact-item:last-child { border-bottom: none; }
.contact-item-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background: var(--color-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}
.contact-item-label {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-primary);
    font-weight: 700;
    margin-bottom: 2px;
}

/* Forminator overrides */
.frm_form_title { display: none; }
.forminator-ui .forminator-row { margin-bottom: 20px; }
.forminator-ui .forminator-field input,
.forminator-ui .forminator-field textarea,
.forminator-ui .forminator-field select {
    background: var(--color-light) !important;
    border: 1px solid #ddd !important;
    border-radius: var(--border-radius) !important;
    padding: 12px 16px !important;
    font-family: var(--font-main) !important;
    font-size: .9rem !important;
    width: 100% !important;
    transition: border-color var(--transition) !important;
}
.forminator-ui .forminator-field input:focus,
.forminator-ui .forminator-field textarea:focus,
.forminator-ui .forminator-field select:focus {
    border-color: var(--color-primary) !important;
    outline: none !important;
}
.forminator-ui .forminator-btn-submit {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: none !important;
    padding: 12px 28px !important;
    border-radius: var(--border-radius) !important;
    font-weight: 700 !important;
    font-size: .9rem !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    cursor: pointer !important;
    transition: background var(--transition) !important;
}
.forminator-ui .forminator-btn-submit:hover {
    background: var(--color-dark) !important;
}

/* ========================================
   SINGLE POST
======================================== */
.single-post-header {
    background: var(--color-dark);
    padding: 120px 0 60px;
}
.single-post-title {
    color: var(--color-white);
    font-size: clamp(1.6rem, 3.5vw, 2.8rem);
    max-width: 800px;
    margin-bottom: 16px;
}
.post-meta-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: .8rem;
    color: rgba(255,255,255,.6);
    text-transform: uppercase;
    letter-spacing: .06em;
}
.post-meta-bar a { color: rgba(255,255,255,.6); }
.post-meta-bar a:hover { color: var(--color-primary); }
.post-meta-bar .cat-link {
    background: var(--color-primary);
    color: var(--color-white);
    padding: 2px 10px;
    border-radius: 2px;
    font-weight: 700;
}

.single-featured-img {
    display: block;
    max-width: 640px;
    width: 100%;
    height: auto;
    margin: 0 auto 2rem;
    border-radius: var(--border-radius);
    object-fit: contain;
    background: #f4f1eb;
}

/* ========================================
   404 PAGE
======================================== */
.page-404 {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-dark);
    text-align: center;
    padding: 80px 0;
}
.page-404-num {
    font-size: clamp(6rem, 18vw, 14rem);
    font-weight: 900;
    color: var(--color-primary);
    line-height: 1;
    display: block;
    letter-spacing: -.02em;
}
.page-404-title {
    color: var(--color-white);
    font-size: clamp(1.2rem, 3vw, 2rem);
    margin-bottom: 1rem;
}
.page-404-desc {
    color: rgba(255,255,255,.6);
    margin-bottom: 2rem;
    max-width: 400px;
}

/* ========================================
   BLOG / ARCHIVE
======================================== */
.archive-header {
    background: var(--color-dark);
    padding: 120px 0 60px;
}
.archive-title {
    color: var(--color-white);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
}

.posts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 28px;
    margin-top: 40px;
}

.pagination {
    margin-top: 48px;
    display: flex;
    justify-content: center;
    gap: 8px;
}
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: var(--border-radius);
    font-weight: 700;
    font-size: .85rem;
    color: var(--color-dark);
    background: var(--color-light);
    transition: all var(--transition);
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* ========================================
   WOOCOMMERCE
======================================== */
.woocommerce-page .page-hero,
.woocommerce-shop .page-hero { display: block; }

/* Anciens styles WC retirés — remplacés par la refonte USCCA plus bas
   (cf. section "Grille produits — override WooCommerce layout") */

.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-result-count {
    margin-bottom: 24px;
    font-size: .85rem;
}
.woocommerce .woocommerce-ordering select {
    border: 1px solid #ddd;
    border-radius: var(--border-radius);
    padding: 8px 12px;
    font-family: var(--font-main);
}
.woocommerce div.product .product_title {
    font-size: clamp(1.4rem, 3vw, 2rem);
    color: var(--color-dark);
    margin-bottom: 1rem;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--color-primary) !important;
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    margin-bottom: 1rem;
}
.woocommerce div.product .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: var(--border-radius) !important;
    padding: 12px 28px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    font-size: .9rem !important;
    transition: background var(--transition) !important;
}
.woocommerce div.product .button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    background: var(--color-dark) !important;
    color: var(--color-white) !important;
}

/* WC breadcrumb */
.woocommerce .woocommerce-breadcrumb {
    font-size: .8rem;
    color: var(--color-gray);
    margin-bottom: 24px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--color-primary); }

/* Cart & checkout */
.woocommerce-cart table.cart,
.woocommerce-checkout #customer_details {
    width: 100%;
    border-collapse: collapse;
}
.woocommerce-cart table.cart th,
.woocommerce-cart table.cart td {
    padding: 14px;
    border-bottom: 1px solid var(--color-light);
    font-size: .9rem;
}
.woocommerce-cart table.cart th {
    background: var(--color-dark);
    color: var(--color-white);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ========================================
   FOOTER
======================================== */
#site-footer {
    background: var(--color-dark);
    color: rgba(255,255,255,.75);
    margin-top: 0;
}

.footer-top {
    padding: 64px 0 48px;
    display: grid;
    grid-template-columns: 280px 1fr 1fr 1fr;
    gap: 40px;
}
@media (max-width: 960px) {
    .footer-top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .footer-top { grid-template-columns: 1fr; }
}

.footer-brand .site-logo { margin-bottom: 16px; }
.footer-brand p {
    font-size: .85rem;
    color: rgba(255,255,255,.55);
    line-height: 1.6;
    margin-bottom: 20px;
}
.footer-social {
    display: flex;
    gap: 10px;
}
.footer-social a {
    width: 36px; height: 36px;
    background: rgba(255,255,255,.08);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.7);
    font-size: .9rem;
    transition: all var(--transition);
}
.footer-social a:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

.footer-col h4 {
    color: var(--color-white);
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-primary);
    display: inline-block;
}
.footer-col ul li {
    margin-bottom: 8px;
}
.footer-col ul li a {
    color: rgba(255,255,255,.55);
    font-size: .85rem;
    transition: color var(--transition);
    display: flex;
    align-items: center;
    gap: 6px;
}
.footer-col ul li a::before {
    content: '▸';
    color: var(--color-primary);
    font-size: .65rem;
}
.footer-col ul li a:hover { color: var(--color-primary); }

.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.08);
    padding: 20px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    font-size: .78rem;
    color: rgba(255,255,255,.35);
}
.footer-bottom a { color: rgba(255,255,255,.35); }
.footer-bottom a:hover { color: var(--color-primary); }

/* ========================================
   MOBILE NAV — refonte ergonomique
======================================== */

/* Header interne du panel (caché sur desktop) */
.mobile-nav-header,
.mobile-nav-actions,
.mobile-nav-social,
.mobile-nav-overlay { display: none; }

@media (max-width: 1024px) {
    .menu-toggle { display: flex; }
    .header-cta .btn { display: none; } /* CTA desktop caché — on a les gros boutons dans le panel */

    /* Overlay foncé */
    .mobile-nav-overlay {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,.55);
        backdrop-filter: blur(3px);
        -webkit-backdrop-filter: blur(3px);
        opacity: 0;
        visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
        z-index: 9997;
    }
    body.menu-open .mobile-nav-overlay { opacity: 1; visibility: visible; }
    body.menu-open { overflow: hidden; } /* bloque le scroll du body */

    /* Panel menu slide-in depuis la droite */
    .primary-nav-wrapper {
        position: fixed;
        top: 0; right: 0; bottom: 0;
        left: auto;
        width: 340px;
        max-width: 90vw;
        background: #161614;
        padding: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        transform: translateX(100%);
        transition: transform .28s cubic-bezier(.4,0,.2,1);
        z-index: 9998;
        box-shadow: -10px 0 40px rgba(0,0,0,.4);
        display: flex;
        flex-direction: column;
    }
    .primary-nav-wrapper.is-open { transform: translateX(0); }

    /* Header interne : logo + close */
    .mobile-nav-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 18px 20px;
        border-bottom: 1px solid rgba(255,255,255,.1);
        position: sticky;
        top: 0;
        background: #161614;
        z-index: 2;
    }
    .mobile-nav-brand {
        font-size: 1.1rem;
        font-weight: 800;
        letter-spacing: .1em;
        color: #fff;
        text-decoration: none;
    }
    .mobile-nav-close {
        width: 40px;
        height: 40px;
        background: rgba(255,255,255,.08);
        color: #fff;
        border: none;
        border-radius: 50%;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background .15s ease;
    }
    .mobile-nav-close:hover,
    .mobile-nav-close:focus { background: rgba(255,255,255,.15); }

    /* Nav items */
    .primary-nav {
        flex-direction: column;
        gap: 0;
        padding: 6px 0;
        flex: 1;
        margin: 0;
        text-align: left;
    }
    .primary-nav li { text-align: left; width: 100%; }
    .primary-nav > li {
        border-bottom: 1px solid rgba(255,255,255,.08);
    }
    .primary-nav > li > a,
    .primary-nav li a {
        padding: 15px 20px;
        font-size: .95rem;
        font-weight: 600;
        border-radius: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        min-height: 52px;
        color: rgba(255,255,255,.92);
        position: relative;
        text-align: left;
        width: 100%;
    }
    /* Chevron des items avec sous-menu — poussé à droite avec margin auto */
    .primary-nav li.menu-item-has-children > a::after {
        content: '';
        width: 9px; height: 9px;
        border-right: 2px solid rgba(255,255,255,.55);
        border-bottom: 2px solid rgba(255,255,255,.55);
        transform: rotate(45deg);
        margin-left: auto;
        transition: transform .2s ease, border-color .2s ease;
        flex-shrink: 0;
    }
    .primary-nav li.sub-open > a::after {
        transform: rotate(-135deg);
        border-color: var(--color-primary, #E1202A);
    }
    /* États */
    .primary-nav > li > a:hover,
    .primary-nav > li > a:focus,
    .primary-nav > li.sub-open > a,
    .primary-nav > li.current-menu-item > a,
    .primary-nav > li.current-menu-ancestor > a {
        background: rgba(225,32,42,.14);
        color: #fff;
    }
    .primary-nav > li.sub-open > a {
        background: rgba(225,32,42,.18);
    }

    /* Sous-menus niveau 2 — indent + accent gauche */
    .primary-nav .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        background: rgba(0,0,0,.45);
        border: none;
        margin: 0;
        padding: 0;
        border-radius: 0;
        display: none;
        width: auto;
        list-style: none;
    }
    .primary-nav > li.sub-open > .sub-menu,
    .primary-nav li.sub-open > .sub-menu { display: block; }

    .primary-nav > li > .sub-menu > li {
        border-left: 3px solid var(--color-primary, #E1202A);
        border-bottom: 1px solid rgba(255,255,255,.05);
    }
    .primary-nav > li > .sub-menu > li:last-child { border-bottom: none; }
    .primary-nav > li > .sub-menu > li > a {
        padding: 13px 20px 13px 28px;
        font-size: .9rem;
        font-weight: 500;
        color: rgba(255,255,255,.82);
        min-height: 46px;
        text-align: left;
    }
    .primary-nav > li > .sub-menu > li > a::before {
        content: '›';
        margin-right: 10px;
        color: rgba(255,255,255,.4);
        font-size: 1.1rem;
        line-height: 1;
    }

    /* Sous-menus niveau 3 — fond distinct + accent couleur différente */
    .primary-nav .sub-menu .sub-menu {
        background: rgba(0,0,0,.65);
        padding-left: 0;
    }
    .primary-nav .sub-menu .sub-menu > li {
        border-left: 3px solid rgba(255,255,255,.2) !important;
    }
    .primary-nav .sub-menu .sub-menu > li > a {
        padding: 11px 20px 11px 42px;
        font-size: .85rem;
        color: rgba(255,255,255,.72);
        min-height: 42px;
    }
    .primary-nav .sub-menu .sub-menu > li > a::before {
        content: '—';
        margin-right: 10px;
        color: rgba(255,255,255,.35);
    }

    .primary-nav .sub-menu li a:hover,
    .primary-nav .sub-menu li a:focus {
        background: rgba(255,255,255,.08);
        color: #fff;
    }
    .primary-nav .sub-menu li.current-menu-item > a {
        background: rgba(225,32,42,.2);
        color: #fff;
    }

    /* Actions CTA (Boutique + Contact) */
    .mobile-nav-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        padding: 18px 20px;
        border-top: 1px solid rgba(255,255,255,.1);
        background: #0f0f0e;
    }
    .mobile-nav-cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 13px 12px;
        background: rgba(255,255,255,.08);
        color: #fff !important;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 10px;
        font-weight: 700;
        font-size: .88rem;
        text-decoration: none;
        text-align: center;
        transition: background .15s ease, transform .15s ease;
    }
    .mobile-nav-cta:hover {
        background: rgba(255,255,255,.15);
        transform: translateY(-1px);
    }
    .mobile-nav-cta-primary {
        background: var(--color-primary, #E1202A) !important;
        border-color: var(--color-primary, #E1202A);
        box-shadow: 0 4px 16px rgba(225,32,42,.3);
    }
    .mobile-nav-cta-primary:hover {
        background: #c51b24 !important;
    }

    /* Réseaux sociaux */
    .mobile-nav-social {
        display: flex;
        justify-content: center;
        gap: 14px;
        padding: 14px 20px 22px;
        background: #0f0f0e;
        border-top: 1px solid rgba(255,255,255,.06);
    }
    .mobile-nav-social a {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        background: rgba(255,255,255,.08);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        transition: background .15s ease;
    }
    .mobile-nav-social a:hover { background: var(--color-primary, #E1202A); }
}

/* Mobile très étroit */
@media (max-width: 420px) {
    .primary-nav-wrapper { width: 100%; max-width: 100%; }
}

/* ========================================
   RESPONSIVE
======================================== */
@media (max-width: 768px) {
    .hero { min-height: 90vh; }
    .hero-stats { gap: 20px; }
    .section-pad { padding: 56px 0; }
    .page-content-inner { grid-template-columns: 1fr; }
    .contact-grid { grid-template-columns: 1fr; }
    .footer-top { padding: 40px 0 32px; }
    .footer-bottom { flex-direction: column; text-align: center; }
    .news-grid { grid-template-columns: 1fr; }
    .teams-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .hero-actions { flex-direction: column; }
    .teams-grid { grid-template-columns: 1fr; }
    .roster-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ========================================
   SKIP LINK / ACCESSIBILITY
======================================== */
.skip-link {
    position: absolute;
    top: -100px;
    left: 8px;
    background: var(--color-primary);
    color: var(--color-white);
    padding: 8px 16px;
    border-radius: var(--border-radius);
    font-weight: 700;
    z-index: 99999;
    transition: top var(--transition);
}
.skip-link:focus { top: 8px; }

/* Screen reader text */
.screen-reader-text {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ========================================
   WP CLASSES
======================================== */
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { display: block; margin: 0 auto 1rem; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: .8rem; color: var(--color-gray); text-align: center; margin-top: 4px; }

/* ============================================================
   CUSTOM TEMPLATE PAGES — HISTOIRE, ORGANIGRAMME, INFRASTRUCTURES,
   PARTENAIRES, INSCRIPTION, RED DEBIL'S
============================================================ */

/* --- Page Hero extended ------------------------------------ */
.page-hero {
    position: relative;
    padding: 120px 0 60px;
    background: linear-gradient(135deg, var(--color-dark) 0%, #222 100%);
    color: #fff;
    overflow: hidden;
}
.page-hero-bg {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, var(--color-primary) 0%, #8a0f18 100%);
    opacity: .6; z-index: 0;
}
.page-hero-bg-dark {
    background: radial-gradient(circle at 20% 30%, rgba(225,32,42,.5), transparent 60%),
                radial-gradient(circle at 80% 70%, rgba(252,112,44,.35), transparent 60%),
                #0e0e0c;
    opacity: 1;
}
.page-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(22,22,20,.35), rgba(22,22,20,.75));
    z-index: 1;
}
.page-hero-title {
    font-size: clamp(1.8rem, 4vw, 3rem);
    color: #fff;
    letter-spacing: -.01em;
    margin-bottom: .5rem;
}
.page-hero-subtitle {
    max-width: 640px;
    color: rgba(255,255,255,.82);
    font-size: 1.05rem;
    margin-bottom: 1rem;
}
.page-hero-breadcrumb {
    color: rgba(255,255,255,.6);
    font-size: .85rem;
}
.page-hero-breadcrumb a { color: rgba(255,255,255,.85); }
.page-hero-breadcrumb a:hover { color: #fff; }
.page-hero-breadcrumb .sep { margin: 0 6px; opacity: .5; }

/* Spécifique Histoire — image de fond subtile via pattern */
.page-hero-histoire .page-hero-bg {
    background:
        radial-gradient(circle at 15% 20%, rgba(225,32,42,.7), transparent 50%),
        radial-gradient(circle at 85% 80%, rgba(252,112,44,.4), transparent 50%),
        linear-gradient(135deg, #1a1a18 0%, #2a1410 100%);
    opacity: 1;
}

/* --- Histoire : intro split + stats ------------------------- */
.histoire-intro {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 60px;
    align-items: center;
}
.histoire-intro-text p { font-size: 1.02rem; color: var(--color-gray); }
.histoire-intro-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.histoire-stat {
    background: var(--color-light);
    padding: 28px 22px;
    border-radius: var(--border-radius);
    text-align: center;
    border-top: 3px solid var(--color-dark);
}
.histoire-stat-accent {
    background: var(--color-primary);
    color: #fff;
    border-top-color: var(--color-orange);
}
.histoire-stat-num {
    font-size: 2.4rem;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1;
    margin-bottom: 6px;
}
.histoire-stat-accent .histoire-stat-num { color: #fff; }
.histoire-stat-label {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
}
.histoire-stat-accent .histoire-stat-label { color: rgba(255,255,255,.85); }

/* --- Timeline ----------------------------------------------- */
.timeline {
    position: relative;
    max-width: 820px;
    margin: 0 auto;
    padding-left: 40px;
}
.timeline::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: linear-gradient(to bottom, var(--color-primary), rgba(225,32,42,.2));
}
.timeline-item {
    position: relative;
    margin-bottom: 40px;
    padding-left: 20px;
}
.timeline-item::before {
    content: "";
    position: absolute;
    left: -34px; top: 6px;
    width: 14px; height: 14px;
    background: #fff;
    border: 3px solid var(--color-primary);
    border-radius: 50%;
    z-index: 1;
}
.timeline-item-highlight::before {
    background: var(--color-primary);
    width: 18px; height: 18px;
    left: -36px; top: 4px;
    box-shadow: 0 0 0 4px rgba(225,32,42,.22);
}
.timeline-marker {
    display: inline-block;
    font-size: .82rem;
    font-weight: 800;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 6px;
}
.timeline-item-highlight .timeline-marker {
    background: var(--color-primary);
    color: #fff;
    padding: 4px 10px;
    border-radius: 3px;
}
.timeline-content {
    background: #fff;
    padding: 20px 24px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
}
.timeline-content h3 {
    font-size: 1.15rem;
    margin-bottom: 6px;
    color: var(--color-dark);
}
.timeline-content p {
    color: var(--color-gray);
    font-size: .95rem;
    margin: 0;
}

/* --- Moment fort (Coupe 2023) ------------------------------- */
.moment-fort {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 48px;
    align-items: center;
}
.moment-fort-img {
    aspect-ratio: 1;
    background: linear-gradient(135deg, var(--color-primary), #8a0f18);
    border-radius: var(--border-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 16px 40px rgba(225,32,42,.35);
}
.moment-fort-trophy {
    font-size: 6rem;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,.3));
}
.stat-pill {
    display: inline-block;
    padding: 6px 14px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 20px;
    font-size: .8rem;
    font-weight: 600;
    color: rgba(255,255,255,.9);
}

/* --- Valeurs (grid partagé Histoire + Partenaires + RedDebils) */
.valeurs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 24px;
}
.valeur-card {
    background: #fff;
    padding: 32px 24px;
    border-radius: var(--border-radius);
    border: 1px solid rgba(0,0,0,.06);
    transition: transform var(--transition), box-shadow var(--transition);
    text-align: center;
}
.valeur-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: transparent;
}
.valeur-icon {
    font-size: 2.4rem;
    margin-bottom: 16px;
    display: inline-block;
}
.valeur-card h3 {
    font-size: 1.1rem;
    margin-bottom: 10px;
    color: var(--color-dark);
}
.valeur-card p {
    color: var(--color-gray);
    font-size: .92rem;
    margin: 0;
}

/* --- Organigramme ------------------------------------------- */
.orga-section-title {
    text-align: center;
    margin-bottom: 2.5rem;
}
.orga-section-label {
    display: inline-block;
    font-size: .78rem;
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: 10px;
}
.orga-section-title h2 {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin-bottom: .5rem;
}
.orga-section-title p {
    max-width: 620px;
    margin: 0 auto;
    color: var(--color-gray);
}
.orga-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}
.orga-grid-lead {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    max-width: 980px;
    margin: 0 auto;
}
.orga-card {
    background: #fff;
    border-radius: var(--border-radius);
    border: 1px solid rgba(0,0,0,.08);
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
}
.orga-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}
.orga-card-featured {
    border: 2px solid var(--color-primary);
    box-shadow: 0 10px 30px rgba(225,32,42,.15);
}
.orga-card-header {
    background: linear-gradient(135deg, var(--color-dark), #2a2a28);
    height: 90px;
    position: relative;
}
.orga-card-featured .orga-card-header {
    background: linear-gradient(135deg, var(--color-primary), #8a0f18);
}
.orga-avatar {
    position: absolute;
    bottom: -28px;
    left: 24px;
    width: 64px; height: 64px;
    border-radius: 50%;
    background: #fff;
    border: 4px solid #fff;
    box-shadow: var(--shadow-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-dark);
    font-weight: 800;
    font-size: 1.1rem;
    letter-spacing: .05em;
}
.orga-card-featured .orga-avatar { color: var(--color-primary); }
.orga-card-body {
    padding: 40px 24px 24px;
}
.orga-card:not(.orga-card-featured):not(:has(.orga-avatar)) .orga-card-body,
.orga-grid:not(.orga-grid-lead) .orga-card-body {
    padding: 24px;
}
.orga-role {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--color-primary);
    background: rgba(225,32,42,.08);
    padding: 4px 10px;
    border-radius: 3px;
    margin-bottom: 8px;
}
.orga-role-senior { color: var(--color-dark); background: rgba(22,22,20,.08); }
.orga-role-feminine { color: #b8166c; background: rgba(184,22,108,.1); }
.orga-role-jeunes { color: var(--color-orange); background: rgba(252,112,44,.12); }
.orga-role-ecole { color: #1f7a3e; background: rgba(31,122,62,.1); }
.orga-name {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 4px;
}
.orga-subrole {
    font-size: .82rem;
    color: var(--color-gray);
    margin-bottom: 10px;
}
.orga-contact {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: .82rem;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(0,0,0,.06);
}
.orga-contact a, .orga-contact span { color: var(--color-gray); }
.orga-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 36px;
    background: var(--color-light);
    border-radius: var(--border-radius);
    border-left: 4px solid var(--color-primary);
    flex-wrap: wrap;
}

/* --- Infrastructures ---------------------------------------- */
.infra-hero-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    max-width: 800px;
    margin: 0 auto;
}
.infra-hero-stat {
    text-align: center;
    padding: 24px 12px;
    background: #fff;
    border-radius: var(--border-radius);
    border-top: 3px solid var(--color-primary);
    box-shadow: var(--shadow-sm);
}
.infra-hero-num {
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1;
    margin-bottom: 6px;
}
.infra-hero-label {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-gray);
    font-weight: 700;
}
.stade-hero {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 0;
    background: #fff;
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}
.stade-hero-media {
    position: relative;
    min-height: 360px;
    background:
        linear-gradient(135deg, rgba(225,32,42,.85), rgba(22,22,20,.9)),
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,.08) 0 40px,
            transparent 40px 80px
        );
}
.stade-hero-pattern {
    position: absolute; inset: 0;
    background:
        radial-gradient(circle at 50% 50%, transparent 60px, rgba(255,255,255,.15) 60px, rgba(255,255,255,.15) 62px, transparent 62px),
        linear-gradient(90deg, transparent 49%, rgba(255,255,255,.2) 49%, rgba(255,255,255,.2) 51%, transparent 51%);
}
.stade-hero-label {
    position: absolute;
    bottom: 24px; left: 24px;
    color: #fff;
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    background: rgba(0,0,0,.4);
    padding: 6px 12px;
    border-radius: 3px;
}
.stade-hero-body { padding: 36px 40px; }
.stade-addr {
    color: var(--color-primary);
    font-weight: 700;
    font-size: .92rem;
    margin-bottom: 14px;
}
.stade-hero-body h3 {
    font-size: 1.4rem;
    margin-bottom: 12px;
}
.stade-hero-body p {
    color: var(--color-gray);
    margin-bottom: 20px;
}
.stade-specs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 20px;
}
.stade-spec {
    padding: 12px 14px;
    background: var(--color-cream);
    border-radius: 4px;
    border-left: 2px solid var(--color-primary);
}
.stade-spec-label {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-gray);
    font-weight: 700;
    margin-bottom: 3px;
}
.stade-spec-value {
    font-size: .95rem;
    font-weight: 800;
    color: var(--color-dark);
}
.stades-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}
.stade-card {
    background: #fff;
    padding: 28px;
    border-radius: var(--border-radius);
    border: 1px solid rgba(0,0,0,.06);
    border-top: 3px solid var(--color-primary);
    transition: transform var(--transition), box-shadow var(--transition);
}
.stade-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}
.stade-card-icon {
    font-size: 1.8rem;
    margin-bottom: 12px;
}
.stade-card h3 {
    font-size: 1.1rem;
    margin-bottom: 8px;
}
.stade-card p {
    font-size: .9rem;
    color: var(--color-gray);
    margin: 0;
}
.projet-vestiaires {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 60px;
    align-items: center;
}
.projet-specs {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.projet-specs li {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 16px 20px;
    background: rgba(255,255,255,.06);
    border-radius: var(--border-radius);
    border-left: 3px solid var(--color-primary);
    color: rgba(255,255,255,.9);
    font-size: .95rem;
}
.projet-spec-num {
    flex: 0 0 auto;
    width: 48px; height: 48px;
    background: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1.1rem;
    border-radius: 50%;
}

/* --- Partenaires -------------------------------------------- */
.partenaires-gallery img {
    max-height: 80px;
    width: auto;
    margin: 12px 20px;
    display: inline-block;
    filter: grayscale(20%);
    transition: filter var(--transition), transform var(--transition);
}
.partenaires-gallery img:hover {
    filter: grayscale(0);
    transform: scale(1.05);
}
.partenariats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
}
.partenariat-card {
    background: #fff;
    padding: 36px 28px;
    border-radius: var(--border-radius);
    border: 1px solid rgba(0,0,0,.08);
    text-align: center;
    position: relative;
    transition: transform var(--transition), box-shadow var(--transition);
}
.partenariat-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-md);
}
.partenariat-card-featured {
    border: 2px solid var(--color-primary);
    box-shadow: 0 12px 36px rgba(225,32,42,.18);
    transform: translateY(-8px);
}
.partenariat-badge {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    padding: 6px 14px;
    background: var(--color-dark);
    color: #fff;
    border-radius: 3px;
    margin-bottom: 14px;
}
.partenariat-badge-featured {
    background: var(--color-primary);
}
.partenariat-star {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-orange);
    color: #fff;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .05em;
}
.partenariat-card h3 {
    font-size: 1.2rem;
    margin-bottom: 20px;
}
.partenariat-list {
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.partenariat-list li {
    position: relative;
    padding-left: 26px;
    color: var(--color-gray);
    font-size: .92rem;
}
.partenariat-list li::before {
    content: "✓";
    position: absolute;
    left: 0; top: 0;
    color: var(--color-primary);
    font-weight: 800;
}

/* --- Inscription -------------------------------------------- */
.etapes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 24px;
    counter-reset: etapes;
}
.etape-card {
    position: relative;
    padding: 32px 24px;
    background: #fff;
    border-radius: var(--border-radius);
    border: 1px solid rgba(0,0,0,.06);
    transition: transform var(--transition), box-shadow var(--transition);
}
.etape-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}
.etape-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    background: var(--color-primary);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 800;
    border-radius: 50%;
    margin-bottom: 16px;
}
.etape-card h3 {
    font-size: 1.08rem;
    margin-bottom: 8px;
}
.etape-card p {
    font-size: .9rem;
    color: var(--color-gray);
    margin: 0;
}
.tarifs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
}
.tarif-card {
    background: #fff;
    padding: 28px 22px;
    border-radius: var(--border-radius);
    text-align: center;
    border: 1px solid rgba(0,0,0,.06);
    transition: transform var(--transition), box-shadow var(--transition);
}
.tarif-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}
.tarif-card-featured {
    border: 2px solid var(--color-primary);
    background: linear-gradient(180deg, #fff 0%, #fff9f9 100%);
}
.tarif-card-cat {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-weight: 800;
    color: var(--color-primary);
    margin-bottom: 6px;
}
.tarif-card-age {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 16px;
}
.tarif-card-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin-bottom: 16px;
}
.tarif-amount {
    font-size: 2.4rem;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1;
}
.tarif-suffix {
    font-size: 1.2rem;
    color: var(--color-gray);
    font-weight: 700;
}
.tarif-card-note {
    font-size: .82rem;
    color: var(--color-gray);
    margin: 0;
}
.tarif-note-block {
    margin-top: 32px;
    padding: 24px 28px;
    background: #fff;
    border-radius: var(--border-radius);
    border-left: 4px solid var(--color-orange);
}
.tarif-note-block strong {
    display: block;
    color: var(--color-dark);
    margin-bottom: 10px;
    font-size: 1rem;
}
.tarif-note-block ul {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tarif-note-block li {
    position: relative;
    padding-left: 20px;
    color: var(--color-gray);
    font-size: .9rem;
}
.tarif-note-block li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--color-orange);
    font-weight: 800;
}
.documents-block {
    max-width: 920px;
    margin: 0 auto;
}
.documents-header {
    text-align: center;
    margin-bottom: 2rem;
}
.documents-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.document-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    background: var(--color-cream);
    border-radius: var(--border-radius);
}
.document-icon {
    flex: 0 0 auto;
    font-size: 1.6rem;
    width: 44px; height: 44px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-sm);
}
.document-item strong {
    display: block;
    color: var(--color-dark);
    font-size: .98rem;
    margin-bottom: 3px;
}
.document-item p {
    color: var(--color-gray);
    font-size: .85rem;
    margin: 0;
}
.horaires-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
}
.horaire-card {
    background: rgba(255,255,255,.06);
    padding: 24px 20px;
    border-radius: var(--border-radius);
    text-align: center;
    border: 1px solid rgba(255,255,255,.1);
    transition: background var(--transition), transform var(--transition);
}
.horaire-card:hover {
    background: rgba(225,32,42,.15);
    transform: translateY(-3px);
}
.horaire-jour {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--color-primary);
    font-weight: 800;
    margin-bottom: 8px;
}
.horaire-heure {
    font-size: 1.15rem;
    color: #fff;
    font-weight: 700;
    margin-bottom: 6px;
}
.horaire-cat {
    font-size: .82rem;
    color: rgba(255,255,255,.7);
}

/* --- Red Debil's -------------------------------------------- */
.reddebils-intro {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 48px;
    align-items: center;
}
.reddebils-intro-text p {
    color: var(--color-gray);
    font-size: 1.02rem;
}
.reddebils-devise {
    background: linear-gradient(135deg, var(--color-dark), #2a1410);
    color: #fff;
    padding: 40px 36px;
    border-radius: var(--border-radius);
    border-left: 4px solid var(--color-primary);
    position: relative;
}
.reddebils-devise-quote {
    position: absolute;
    top: -12px; left: 20px;
    font-size: 5rem;
    color: var(--color-primary);
    font-family: Georgia, serif;
    line-height: 1;
    opacity: .6;
}
.reddebils-devise p {
    font-size: 1.25rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 1rem;
    color: #fff;
}
.reddebils-devise-author {
    font-size: .85rem;
    color: rgba(255,255,255,.6);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.reddebils-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    max-width: 920px;
    margin: 0 auto;
}
.reddebils-stat {
    text-align: center;
    padding: 32px 16px;
    background: rgba(255,255,255,.05);
    border-radius: var(--border-radius);
    border: 1px solid rgba(255,255,255,.08);
}
.reddebils-stat-featured {
    background: var(--color-primary);
    border-color: var(--color-primary);
    box-shadow: 0 12px 28px rgba(225,32,42,.4);
}
.reddebils-stat-num {
    font-size: 2.6rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
    margin-bottom: 8px;
}
.reddebils-stat-label {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.75);
    font-weight: 700;
}

/* --- Responsive --------------------------------------------- */
@media (max-width: 960px) {
    .histoire-intro,
    .moment-fort,
    .projet-vestiaires,
    .reddebils-intro,
    .stade-hero {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .infra-hero-stats,
    .reddebils-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .stade-specs {
        grid-template-columns: repeat(2, 1fr);
    }
    .documents-grid {
        grid-template-columns: 1fr;
    }
    .orga-cta {
        flex-direction: column;
        align-items: flex-start;
    }
    .moment-fort-img {
        max-width: 280px;
        margin: 0 auto;
    }
}
@media (max-width: 560px) {
    .infra-hero-stats,
    .reddebils-stats,
    .histoire-intro-stats {
        grid-template-columns: 1fr 1fr;
    }
    .stade-specs {
        grid-template-columns: 1fr;
    }
    .timeline { padding-left: 30px; }
    .timeline::before { left: 6px; }
    .timeline-item::before { left: -28px; }
    .timeline-item-highlight::before { left: -30px; }
    .stade-hero-body { padding: 28px 24px; }
}

/* ============================================================
   TEMPLATES ÉQUIPES & HUBS - ajouts batch 2
   ============================================================ */

/* ---------- Page hero variantes ---------- */
.page-hero-sm {
    padding: 70px 0 50px;
    position: relative;
    overflow: hidden;
}
.page-hero-sm .page-hero-title {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    margin-bottom: .8rem;
}
.page-hero-equipe { padding: 100px 0 80px; }
.page-hero-feminine .page-hero-bg-feminine {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, #b8166c 0%, #7a0e48 60%, #161614 100%);
    z-index: 0;
}

/* ---------- Hub générique (club, équipes hubs) ---------- */
.hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-top: 2rem;
}
.hub-card {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 12px;
    padding: 32px 28px;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    display: flex;
    flex-direction: column;
    gap: 14px;
    text-decoration: none;
    color: inherit;
}
.hub-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(22,22,20,.12);
    border-color: var(--color-primary, #E1202A);
}
.hub-card-icon {
    font-size: 2.2rem;
    line-height: 1;
}
.hub-card h3 {
    margin: 0;
    font-size: 1.25rem;
    color: #161614;
}
.hub-card p {
    margin: 0;
    color: #555;
    font-size: .95rem;
    line-height: 1.55;
}
.hub-card-link {
    margin-top: auto;
    color: var(--color-primary, #E1202A);
    font-weight: 600;
    font-size: .9rem;
}
.hub-card-accent {
    background: linear-gradient(135deg, #161614 0%, #2a2a26 100%);
    color: #fff;
    border-color: transparent;
}
.hub-card-accent h3 { color: #fff; }
.hub-card-accent p { color: rgba(255,255,255,.8); }
.hub-card-accent .hub-card-link { color: #f6b400; }

/* ---------- Hub équipes (M1/M2/M3, F1, catégories) ---------- */
.equipe-hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 22px;
    margin-top: 2rem;
}
.equipe-hub-card {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 14px;
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease;
    text-decoration: none;
    color: inherit;
}
.equipe-hub-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(22,22,20,.1);
}
.equipe-hub-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: var(--color-primary, #E1202A);
    color: #fff;
    border-radius: 10px;
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: .5px;
}
.equipe-hub-cat {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #777;
    font-weight: 600;
}
.equipe-hub-card h3 {
    margin: 0;
    font-size: 1.3rem;
    color: #161614;
}
.equipe-hub-division {
    font-size: .92rem;
    color: var(--color-primary, #E1202A);
    font-weight: 600;
}
.equipe-hub-card p {
    margin: 4px 0 0;
    color: #555;
    font-size: .92rem;
    line-height: 1.55;
}
.equipe-hub-link {
    margin-top: 12px;
    color: var(--color-primary, #E1202A);
    font-weight: 600;
    font-size: .9rem;
    text-decoration: none;
}
.equipe-hub-featured {
    background: linear-gradient(135deg, #161614 0%, #2a2a26 100%);
    color: #fff;
    border-color: transparent;
}
.equipe-hub-featured h3 { color: #fff; }
.equipe-hub-featured p { color: rgba(255,255,255,.82); }
.equipe-hub-featured .equipe-hub-cat { color: rgba(255,255,255,.55); }
.equipe-hub-featured .equipe-hub-link { color: #f6b400; }
.equipe-hub-feminine .equipe-hub-rank { background: #b8166c; }
.equipe-hub-feminine .equipe-hub-division { color: #b8166c; }
.equipe-hub-feminine .equipe-hub-link { color: #b8166c; }
.equipe-hub-jeunes .equipe-hub-rank { background: #f6b400; color: #161614; }
.equipe-hub-jeunes .equipe-hub-division { color: #c88700; }

/* ---------- Hero meta (tags) ---------- */
.equipe-hero-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 1.2rem;
}
.equipe-division-tag {
    display: inline-block;
    padding: 6px 14px;
    background: var(--color-primary, #E1202A);
    color: #fff;
    border-radius: 100px;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
}
.equipe-division-tag-feminine { background: #b8166c; }
.equipe-division-tag-jeunes { background: #f6b400; color: #161614; }
.equipe-division-tag-ecole { background: #2aa56b; }
.equipe-saison-tag {
    display: inline-block;
    padding: 6px 14px;
    background: rgba(255,255,255,.12);
    color: #fff;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 100px;
    font-size: .8rem;
    font-weight: 600;
}

/* ---------- Identity bar (fiche équipe) ---------- */
.equipe-identity-bar {
    background: #161614;
    color: #fff;
    padding: 28px 0;
    border-bottom: 4px solid var(--color-primary, #E1202A);
}
.equipe-identity-bar-feminine { border-bottom-color: #b8166c; }
.equipe-identity-bar-ecole { border-bottom-color: #2aa56b; }
.equipe-identity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 18px;
}
.equipe-id-label {
    display: block;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: rgba(255,255,255,.55);
    margin-bottom: 4px;
    font-weight: 600;
}
.equipe-identity-grid strong {
    display: block;
    font-size: 1rem;
    color: #fff;
    font-weight: 700;
}

/* ---------- Présentation split + stats ---------- */
.equipe-presentation {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 48px;
    align-items: start;
}
.equipe-presentation h2 { margin-top: .5rem; }
.equipe-presentation p {
    color: #444;
    line-height: 1.7;
    margin-bottom: 1rem;
}
.equipe-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.equipe-stat {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 10px;
    padding: 22px 18px;
    text-align: center;
    transition: transform .2s ease;
}
.equipe-stat:hover { transform: translateY(-2px); }
.equipe-stat-num {
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-primary, #E1202A);
    line-height: 1;
    margin-bottom: 6px;
}
.equipe-stat-label {
    font-size: .82rem;
    color: #666;
    text-transform: uppercase;
    letter-spacing: .5px;
    font-weight: 600;
}
.equipe-stat-accent { background: linear-gradient(135deg, #161614, #2a2a26); }
.equipe-stat-accent .equipe-stat-num { color: #f6b400; }
.equipe-stat-accent .equipe-stat-label { color: rgba(255,255,255,.75); }
.equipe-stat-feminine .equipe-stat-num { color: #b8166c; }
.equipe-stat-jeunes .equipe-stat-num { color: #c88700; }
.equipe-stat-ecole .equipe-stat-num { color: #2aa56b; }

/* ---------- Palmarès (M1) ---------- */
.palmares-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
    margin-top: 2rem;
}
.palmares-card {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 12px;
    padding: 28px 24px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.palmares-card-gold { border-top: 4px solid #f6b400; }
.palmares-card-silver { border-top: 4px solid #bbb; }
.palmares-year {
    font-size: .82rem;
    font-weight: 700;
    color: #777;
    letter-spacing: 1px;
    margin-bottom: 8px;
}
.palmares-trophy {
    font-size: 2.4rem;
    margin-bottom: 10px;
}
.palmares-card h3 {
    margin: 0 0 6px;
    font-size: 1.1rem;
    color: #161614;
}
.palmares-card p {
    margin: 0;
    font-size: .9rem;
    color: #555;
}

/* ---------- École de foot — parcours ---------- */
.ecole-parcours {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 22px;
    margin-top: 2rem;
}
.ecole-step {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 14px;
    padding: 28px 26px;
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease;
}
.ecole-step:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(22,22,20,.08);
}
.ecole-step-age {
    display: inline-block;
    background: #2aa56b;
    color: #fff;
    font-weight: 800;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: .95rem;
    margin-bottom: 8px;
}
.ecole-step-years {
    font-size: .8rem;
    color: #777;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
    margin-bottom: 12px;
}
.ecole-step h3 {
    margin: 0 0 8px;
    font-size: 1.2rem;
    color: #161614;
}
.ecole-step p {
    margin: 0;
    font-size: .92rem;
    color: #555;
    line-height: 1.55;
}

/* ---------- Calendriers (page regroupée) ---------- */
.calendriers-nav {
    background: #fff;
    border-bottom: 1px solid rgba(22,22,20,.08);
    position: sticky;
    top: 0;
    z-index: 10;
    padding: 14px 0;
}
.calendriers-nav-inner {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}
.calendriers-nav-link {
    padding: 8px 16px;
    border-radius: 100px;
    color: #161614;
    text-decoration: none;
    font-weight: 600;
    font-size: .9rem;
    border: 1px solid rgba(22,22,20,.15);
    transition: all .2s ease;
}
.calendriers-nav-link:hover {
    background: var(--color-primary, #E1202A);
    color: #fff;
    border-color: var(--color-primary, #E1202A);
}
.calendriers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 28px;
    margin-top: 2rem;
}
.calendriers-grid-single {
    grid-template-columns: 1fr;
    max-width: 800px;
    margin: 2rem auto 0;
}
.calendrier-bloc {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 14px rgba(22,22,20,.04);
}
.calendrier-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}
.calendrier-head > div:first-child {
    display: flex;
    align-items: center;
    gap: 12px;
}
.calendrier-head h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #161614;
}

/* ---------- Classements (récap) ---------- */
.classement-resume-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
    margin-top: 2rem;
}
.classement-resume-card {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 12px;
    padding: 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-left: 4px solid var(--color-primary, #E1202A);
    transition: transform .2s ease, box-shadow .2s ease;
}
.classement-resume-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(22,22,20,.08);
}
.classement-resume-m { border-left-color: var(--color-primary, #E1202A); }
.classement-resume-f { border-left-color: #b8166c; }
.classement-resume-j { border-left-color: #f6b400; }
.classement-resume-rank {
    font-size: 1.5rem;
    font-weight: 800;
    color: #161614;
}
.classement-resume-div {
    font-weight: 600;
    color: #444;
    font-size: .95rem;
}
.classement-resume-prev {
    font-size: .82rem;
    color: #888;
    font-style: italic;
}

/* ---------- Actualités (listing) ---------- */
.actu-featured {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 36px;
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 3rem;
    box-shadow: 0 10px 30px rgba(22,22,20,.06);
}
.actu-featured-thumb {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: #f4f1eb;
}
.actu-featured-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.actu-featured-body {
    padding: 36px 40px 36px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.actu-featured-title {
    font-size: clamp(1.3rem, 2.2vw, 1.9rem);
    margin: .5rem 0 1rem;
    color: #161614;
    line-height: 1.25;
}
.actu-featured-title a {
    color: inherit;
    text-decoration: none;
}
.actu-featured-title a:hover { color: var(--color-primary, #E1202A); }
.actu-featured-excerpt {
    color: #555;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.actus-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 28px;
}
.actu-card {
    background: #fff;
    border: 1px solid rgba(22,22,20,.08);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
.actu-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(22,22,20,.1);
}
.actu-card-thumb {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: #f4f1eb;
}
.actu-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.actu-card:hover .actu-card-thumb img { transform: scale(1.04); }
.actu-card-body {
    padding: 22px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
.actu-card-title {
    font-size: 1.15rem;
    margin: 0;
    line-height: 1.3;
}
.actu-card-title a {
    color: #161614;
    text-decoration: none;
}
.actu-card-title a:hover { color: var(--color-primary, #E1202A); }
.actu-card-excerpt {
    color: #555;
    font-size: .92rem;
    line-height: 1.55;
    margin: 0;
    flex: 1;
}
.actu-card-link {
    color: var(--color-primary, #E1202A);
    font-weight: 600;
    text-decoration: none;
    font-size: .9rem;
    margin-top: 4px;
}

.actu-meta {
    display: flex;
    gap: 10px;
    align-items: center;
    font-size: .8rem;
    color: #777;
    flex-wrap: wrap;
}
.actu-date { font-weight: 600; }
.actu-cat {
    background: rgba(225,32,42,.08);
    color: var(--color-primary, #E1202A);
    padding: 3px 10px;
    border-radius: 100px;
    font-weight: 600;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.actu-thumb-placeholder {
    width: 100%;
    height: 100%;
    min-height: 180px;
    background: linear-gradient(135deg, #E1202A 0%, #a51820 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.actu-thumb-placeholder span {
    color: #fff;
    font-weight: 800;
    font-size: 1.6rem;
    letter-spacing: 2px;
}

.actus-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 3rem;
    flex-wrap: wrap;
}
.actus-pagination .page-numbers {
    display: inline-block;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid rgba(22,22,20,.1);
    border-radius: 8px;
    color: #161614;
    text-decoration: none;
    font-weight: 600;
    font-size: .9rem;
    transition: all .2s ease;
}
.actus-pagination .page-numbers:hover,
.actus-pagination .page-numbers.current {
    background: var(--color-primary, #E1202A);
    color: #fff;
    border-color: var(--color-primary, #E1202A);
}

.actus-empty {
    text-align: center;
    padding: 60px 20px;
    background: #fff;
    border: 1px dashed rgba(22,22,20,.15);
    border-radius: 12px;
}
.actus-empty h2 { color: #161614; margin-bottom: 1rem; }
.actus-empty p { color: #666; max-width: 440px; margin: 0 auto 1.5rem; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .equipe-presentation {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .actu-featured {
        grid-template-columns: 1fr;
    }
    .actu-featured-body {
        padding: 28px 28px 32px;
    }
    .actu-featured-thumb { min-height: 220px; }
    .calendriers-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .equipe-stats { grid-template-columns: 1fr 1fr; }
    .equipe-identity-grid { grid-template-columns: 1fr 1fr; }
    .calendriers-nav-inner { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
    .calendriers-nav-link { white-space: nowrap; }
    .page-hero-equipe { padding: 70px 0 60px; }
}
@media (max-width: 480px) {
    .equipe-stats { grid-template-columns: 1fr; }
    .equipe-identity-grid { grid-template-columns: 1fr; }
    .hub-grid, .equipe-hub-grid, .ecole-parcours { grid-template-columns: 1fr; }
}

/* ---------- Bouton taille réduite ---------- */
.btn-sm {
    padding: 8px 14px;
    font-size: .82rem;
}

/* ============================================================
   FRONT PAGE — nouvelles sections (refonte)
============================================================ */

/* --- Barre d'accès rapide --------------------------------- */
.fp-quicklinks {
    background: #fff;
    border-bottom: 1px solid #eee;
    padding: 1.25rem 0;
    position: relative;
    z-index: 3;
}
.fp-quicklinks-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
}
.fp-quicklink {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 14px 8px;
    border-radius: 12px;
    background: #fafafa;
    border: 1px solid #eee;
    color: #161614;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
    text-align: center;
}
.fp-quicklink:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,.06);
    border-color: var(--color-primary, #b81818);
    color: var(--color-primary, #b81818);
}
.fp-quicklink-icon {
    font-size: 1.6rem;
    line-height: 1;
}
.fp-quicklink-label {
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .02em;
}

/* --- About section ---------------------------------------- */
.fp-about-grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 3rem;
    align-items: flex-start;
}
.fp-about p { color: #444; line-height: 1.7; margin-bottom: 1rem; }
.fp-about-features {
    margin-top: 1.5rem;
    display: grid;
    gap: 12px;
}
.fp-about-feature {
    background: #fafafa;
    border-left: 3px solid var(--color-primary, #b81818);
    padding: 12px 16px;
    border-radius: 0 8px 8px 0;
}
.fp-about-feature strong { display: block; color: #161614; margin-bottom: 2px; }
.fp-about-feature span { color: #666; font-size: .9rem; }
.fp-about-side {
    display: grid;
    gap: 16px;
}
.fp-about-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 14px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.fp-about-card-primary {
    background: var(--color-primary, #b81818);
    color: #fff;
    border-color: var(--color-primary, #b81818);
}
.fp-about-card-primary p { color: rgba(255,255,255,.85); }
.fp-about-card-num {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 4px;
}
.fp-about-card-label {
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 8px;
    opacity: .9;
}
.fp-about-card p { font-size: .92rem; line-height: 1.55; color: #555; margin: 0; }

/* --- Why grid --------------------------------------------- */
.fp-why-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.fp-why-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 14px;
    padding: 1.75rem 1.5rem;
    text-align: left;
    transition: transform .15s ease, box-shadow .15s ease;
}
.fp-why-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0,0,0,.06);
}
.fp-why-icon {
    font-size: 2rem;
    margin-bottom: 10px;
    line-height: 1;
}
.fp-why-card h3 {
    font-size: 1.05rem;
    margin: 0 0 6px;
    color: #161614;
}
.fp-why-card p {
    margin: 0;
    color: #555;
    font-size: .9rem;
    line-height: 1.6;
}

/* --- Ecole de foot hub ------------------------------------ */
.fp-school-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 3rem;
    align-items: center;
}
.fp-school-visual {
    background: linear-gradient(135deg, #2aa56b 0%, #1d7d4f 100%);
    border-radius: 18px;
    padding: 3rem 2rem;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-align: center;
    box-shadow: 0 10px 30px rgba(42,165,107,.25);
}
.fp-school-emoji { font-size: 4rem; line-height: 1; margin-bottom: 1rem; }
.fp-school-label { font-size: 1.2rem; font-weight: 800; margin-bottom: .35rem; }
.fp-school-range {
    font-size: .85rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    font-weight: 700;
    opacity: .9;
}
.fp-school p { color: #444; line-height: 1.7; }
.fp-school-list {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 0;
    display: grid;
    gap: 10px;
}
.fp-school-list li {
    position: relative;
    padding-left: 28px;
    color: #444;
    line-height: 1.55;
}
.fp-school-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    background: #2aa56b;
    color: #fff;
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.fp-school-list strong { color: #161614; }

/* --- Partners strip --------------------------------------- */
.fp-partners-strip {
    background: #fafafa;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

/* ============================================================
   BLOG — barre de catégories (page-blog.php)
============================================================ */
.blog-cats-bar {
    background: #fafafa;
    border-bottom: 1px solid #eee;
    padding: 14px 0;
}
.blog-cats-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.blog-cats-label {
    font-weight: 700;
    color: #161614;
    font-size: .88rem;
    margin-right: 6px;
}
.blog-cat-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 999px;
    color: #333;
    font-size: .82rem;
    text-decoration: none;
    transition: all .15s ease;
}
.blog-cat-chip:hover {
    border-color: var(--color-primary, #b81818);
    color: var(--color-primary, #b81818);
    background: #fff;
}
.blog-cat-count { color: #888; font-size: .78rem; }

/* ============================================================
   FRONT PAGE — responsive
============================================================ */
@media (max-width: 1024px) {
    .fp-quicklinks-grid { grid-template-columns: repeat(3, 1fr); }
    .fp-about-grid { grid-template-columns: 1fr; gap: 2rem; }
    .fp-why-grid { grid-template-columns: repeat(2, 1fr); }
    .fp-school-grid { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 640px) {
    .fp-quicklinks-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .fp-quicklink { padding: 12px 6px; }
    .fp-quicklink-icon { font-size: 1.4rem; }
    .fp-quicklink-label { font-size: .72rem; }
    .fp-why-grid { grid-template-columns: 1fr; }
    .fp-school-visual { min-height: 220px; padding: 2rem 1.5rem; }
    .fp-school-emoji { font-size: 3rem; }
}

/* ============================================================
   GALERIE PAR ÉQUIPE (pages séniors, U, etc.)
============================================================ */
.team-gallery {
    background: #fafafa;
    border-top: 1px solid #eee;
}
.team-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.team-gallery-item {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 10px;
    background: #f4f1eb;
    text-decoration: none;
}
.team-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}
.team-gallery-item:hover img { transform: scale(1.06); }
.team-gallery-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 12px;
    background: linear-gradient(180deg, rgba(22,22,20,0) 45%, rgba(22,22,20,.85) 100%);
    color: #fff;
    opacity: 0;
    transition: opacity .25s ease;
}
.team-gallery-item:hover .team-gallery-overlay { opacity: 1; }
.team-gallery-date {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .9;
    margin-bottom: 4px;
}
.team-gallery-title {
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.3;
}
@media (max-width: 900px)  { .team-gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .team-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; } }

/* ============================================================
   STRIP DERNIÈRES PHOTOS (homepage)
============================================================ */
.photos-strip { background: #fff; }
.photos-strip-grid {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 6px;
}
.photos-strip-item {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #eee;
    text-decoration: none;
}
.photos-strip-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .4s ease, filter .4s ease;
    filter: saturate(.95);
}
.photos-strip-item:hover img { transform: scale(1.08); filter: saturate(1.15); }
.photos-strip-overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: 6px;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,.75));
    color: #fff;
    opacity: 0;
    transition: opacity .2s ease;
}
.photos-strip-item:hover .photos-strip-overlay { opacity: 1; }
.photos-strip-date {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
@media (max-width: 1100px) { .photos-strip-grid { grid-template-columns: repeat(6, 1fr); } }
@media (max-width: 640px)  { .photos-strip-grid { grid-template-columns: repeat(4, 1fr); gap: 4px; } }

/* ============================================================
   HERO PAGES ÉQUIPES — photo dynamique (pioche dans les articles)
============================================================ */
.page-hero-bg-photo {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.page-hero-bg-photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(22,22,20,.85) 0%, rgba(22,22,20,.55) 60%, rgba(225,32,42,.35) 100%);
}

/* ============================================================
   PAGE BOUTIQUE OFFICIELLE
============================================================ */
.boutique-intro {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 2.5rem;
    align-items: start;
}
.boutique-features {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0;
    display: grid;
    gap: 8px;
    color: #444;
    line-height: 1.55;
}
.boutique-aside {
    background: #fafafa;
    border: 1px solid #eee;
    border-radius: 14px;
    padding: 1.5rem;
}
.boutique-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.boutique-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.boutique-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0,0,0,.1);
    border-color: var(--color-primary, #E1202A);
}
.boutique-card-img {
    position: relative;
    aspect-ratio: 1 / 1;
    background: #f7f6f2;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.boutique-card-img img {
    width: 90%;
    height: 90%;
    object-fit: contain;
    display: block;
}
.boutique-card-brand {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #161614;
    color: #fff;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .12em;
    padding: 4px 10px;
    border-radius: 2px;
}
.boutique-card-body {
    padding: 16px 18px 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.boutique-card-title {
    font-size: 1.1rem;
    margin: 0;
    color: #161614;
}
.boutique-card-desc {
    font-size: .85rem;
    color: #666;
    margin: 0;
    flex: 1;
    line-height: 1.4;
}
.boutique-card-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: .5rem;
    padding-top: .75rem;
    border-top: 1px solid #eee;
}
.boutique-card-price {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--color-primary, #E1202A);
}
.boutique-card-cta {
    font-size: .82rem;
    font-weight: 700;
    color: #161614;
}
.boutique-card:hover .boutique-card-cta { color: var(--color-primary); }

@media (max-width: 1024px) {
    .boutique-intro { grid-template-columns: 1fr; }
    .boutique-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .boutique-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   SECTION SPONSORS & PARTENAIRES (ajouts)
============================================================ */
.sponsors-strip {
    background: #fff;
    padding: 2.5rem 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}
.sponsors-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 24px 32px;
    align-items: center;
    justify-items: center;
    margin-top: 1rem;
}
.sponsor-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 12px;
    border-radius: 10px;
    background: #fafafa;
    border: 1px solid #eee;
    width: 100%;
    transition: border-color .2s ease;
}
.sponsor-item:hover { border-color: var(--color-primary, #E1202A); }
.sponsor-item strong {
    font-size: .88rem;
    color: #161614;
    margin-bottom: 4px;
}
.sponsor-item span {
    font-size: .72rem;
    color: #777;
    line-height: 1.3;
}

/* ============================================================
   BANDEAU ÉVÉNEMENT (top du site)
============================================================ */
.event-bar {
    background: linear-gradient(90deg, #161614 0%, var(--color-primary, #E1202A) 100%);
    color: #fff;
    padding: 10px 0;
    font-size: .85rem;
    font-weight: 600;
    position: relative;
    z-index: 50;
}
.event-bar-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    text-align: center;
}
.event-bar a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.event-bar-icon {
    background: rgba(255,255,255,.2);
    border-radius: 999px;
    padding: 2px 10px;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 800;
}

/* Groupes sponsors sur page-partenaires */
.sponsors-group { margin-bottom: 2.5rem; }
.sponsors-group-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-primary, #E1202A);
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 1rem;
    padding-bottom: 8px;
    border-bottom: 2px solid rgba(225,32,42,.2);
}

/* ============================================================
   WOOCOMMERCE — Optimisation USCCA
============================================================ */

/* Hero WC (shop + catégorie) */
.woo-hero { padding-top: 84px; padding-bottom: 72px; }
.woo-hero-product { padding-top: 70px; padding-bottom: 60px; }
.woo-hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 24px;
    margin-top: 1.5rem;
    color: rgba(255,255,255,.85);
    font-size: .88rem;
}
.woo-hero-trust span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Conteneur WC */
.woo-content {
    padding: 48px 0 64px;
}
.woo-content .woocommerce,
.woo-content .woocommerce-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ============================================================
   FICHE PRODUIT (single-product)
============================================================ */
.uscca-product {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}
.uscca-product-main {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 3rem;
    margin-bottom: 3.5rem;
    align-items: start;
}

/* Colonne image — grande, collée au bord, sans cadre lourd */
.uscca-product-media {
    position: relative;
    background: #fafafa;
    border-radius: 16px;
    padding: 0;
    box-shadow: 0 6px 20px rgba(0,0,0,.04);
    overflow: hidden;
}
.uscca-product-media .woocommerce-product-gallery {
    margin: 0;
    width: 100% !important;
}
.uscca-product-media .woocommerce-product-gallery__wrapper {
    margin: 0;
}
.uscca-product-media .woocommerce-product-gallery__image {
    width: 100%;
}
.uscca-product-media .woocommerce-product-gallery__image a {
    display: block;
    background: #fff;
}
.uscca-product-media .woocommerce-product-gallery__image img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    border-radius: 0;
    background: #fff;
}
/* Force la galerie WC à prendre toute la largeur (override columns-4) */
.uscca-product-media .woocommerce-product-gallery--columns-4 .woocommerce-product-gallery__image,
.uscca-product-media .woocommerce-product-gallery--with-images .woocommerce-product-gallery__image {
    width: 100% !important;
    float: none !important;
}
.uscca-product-tag {
    position: absolute;
    top: 18px; left: 18px;
    background: #161614;
    color: #fff;
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 800;
    padding: 5px 12px;
    border-radius: 3px;
}

/* Colonne résumé */
.uscca-product-summary { padding-top: .5rem; }
.uscca-product-eyebrow {
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-primary, #E1202A);
    font-weight: 800;
    margin-bottom: .5rem;
}
.uscca-product-title {
    font-size: clamp(1.7rem, 3vw, 2.4rem) !important;
    line-height: 1.2;
    margin: 0 0 1rem !important;
    color: #161614;
}
.uscca-product-short {
    color: #555;
    line-height: 1.65;
    margin-bottom: 1.5rem;
    font-size: 1rem;
}
.uscca-product-short p { margin: 0 0 .75rem; }
.uscca-product-price-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 1.5rem;
    padding: 20px 0;
    border-top: 2px solid #161614;
    border-bottom: 1px solid #eee;
}
.uscca-product-price-row .price,
.uscca-product-price-row > span.woocommerce-Price-amount,
.uscca-product-price-row .woocommerce-Price-amount {
    font-size: 2.3rem !important;
    font-weight: 800 !important;
    color: var(--color-primary, #E1202A) !important;
    line-height: 1;
}
.uscca-product-price-meta {
    font-size: .82rem;
    color: #888;
}

/* Trust badges */
.uscca-product-trust {
    list-style: none;
    padding: 0;
    margin: 0 0 1.75rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.uscca-product-trust li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    background: #fafafa;
    border: 1px solid #eee;
    border-radius: 10px;
    font-size: .85rem;
    line-height: 1.4;
    color: #555;
}
.uscca-product-trust strong { color: #161614; font-weight: 700; }
.uscca-trust-icon {
    font-size: 1.4rem;
    line-height: 1;
    flex-shrink: 0;
}

/* CTA acheter */
.uscca-product-cta { margin-bottom: 1.5rem; }
.uscca-product-buy {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--color-primary, #E1202A);
    color: #fff;
    padding: 16px 28px;
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    text-decoration: none;
    border-radius: 8px;
    transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
    box-shadow: 0 6px 20px rgba(225,32,42,.25);
}
.uscca-product-buy:hover {
    background: #c51b24;
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(225,32,42,.35);
    color: #fff;
}
.uscca-product-cta-help {
    font-size: .82rem;
    color: #777;
    margin: .6rem 0 0;
}

/* Meta + partage */
.uscca-product-meta {
    display: grid;
    gap: 4px;
    font-size: .85rem;
    color: #666;
    padding-top: 1rem;
    border-top: 1px solid #eee;
    margin-bottom: 1rem;
}
.uscca-product-meta span { color: #888; }
.uscca-product-meta a { color: #161614; text-decoration: none; border-bottom: 1px dotted #bbb; }
.uscca-product-share {
    font-size: .85rem;
    color: #666;
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}
.uscca-product-share a {
    color: var(--color-primary, #E1202A);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dotted rgba(225,32,42,.3);
}
.uscca-product-share a:hover { color: #161614; }

/* Section title générique */
.uscca-product-section-title {
    text-align: center;
    margin-bottom: 2rem;
}
.uscca-product-section-title h2 {
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    margin: .5rem 0 0;
    color: #161614;
}

/* Description longue */
.uscca-product-description {
    margin: 4rem auto 3rem;
    max-width: 820px;
    padding: 0 24px;
}
.uscca-product-description-body {
    color: #444;
    line-height: 1.75;
    font-size: 1rem;
}
.uscca-product-description-body ul {
    padding-left: 1.5rem;
    margin: 1rem 0;
}
.uscca-product-description-body li { margin-bottom: 6px; }

/* Impact club */
.uscca-product-impact {
    background: linear-gradient(135deg, #161614 0%, #2a2a28 100%);
    color: #fff;
    border-radius: 16px;
    padding: 2rem 2.5rem;
    margin: 0 auto 3rem;
    max-width: 1000px;
}
.uscca-product-impact-inner {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 1.5rem;
    align-items: center;
}
.uscca-product-impact-icon {
    font-size: 3rem;
    line-height: 1;
    text-align: center;
}
.uscca-product-impact h3 {
    margin: 0 0 .5rem;
    color: #fff;
    font-size: 1.25rem;
}
.uscca-product-impact p {
    color: rgba(255,255,255,.85);
    line-height: 1.65;
    margin: 0 0 1rem;
}
.uscca-product-impact .btn-outline {
    color: #fff;
    border-color: rgba(255,255,255,.4);
}

/* Cross-sell */
.uscca-product-related {
    margin: 3rem auto 4rem;
    max-width: 1200px;
    padding: 0 24px;
}
.uscca-related-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.uscca-related-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    display: flex;
    flex-direction: column;
}
.uscca-related-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0,0,0,.08);
    border-color: var(--color-primary, #E1202A);
}
.uscca-related-img {
    aspect-ratio: 1/1;
    background: #f7f6f2;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
}
.uscca-related-img img {
    width: 90%; height: 90%;
    object-fit: contain;
}
.uscca-related-body {
    padding: 14px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
}
.uscca-related-body h3 {
    font-size: .95rem;
    margin: 0;
    color: #161614;
    line-height: 1.3;
}
.uscca-related-price {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-primary, #E1202A);
}
.uscca-related-price .woocommerce-Price-amount {
    font-size: 1.05rem !important;
    color: var(--color-primary, #E1202A) !important;
    font-weight: 800 !important;
}

/* ============================================================
   SHOP ARCHIVE (liste produits)
============================================================ */
.uscca-shop {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}
.uscca-shop-intro {
    background: #fafafa;
    border: 1px solid #eee;
    border-radius: 14px;
    padding: 2rem;
    margin-bottom: 2.5rem;
}
.uscca-shop-intro-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 2rem;
    align-items: start;
}
.uscca-shop-intro h2 {
    margin: .25rem 0 .75rem;
    font-size: 1.5rem;
    color: #161614;
}
.uscca-shop-intro p {
    color: #555;
    line-height: 1.65;
    margin: 0;
}
.uscca-shop-intro-side {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 1.25rem;
}
.uscca-shop-intro-side strong { display: block; margin-bottom: .5rem; color: #161614; }
.uscca-shop-intro-side p { font-size: .85rem; color: #666; margin: 0 0 .4rem; }
.uscca-shop-intro-side a {
    color: var(--color-primary, #E1202A);
    font-weight: 700;
    text-decoration: none;
}

/* Grille produits — override WooCommerce (columns-* + li.product width)
   Desktop : 4 cols (confort de lecture), 2 cols dès 960px (Kevin 17/04 v2) */
.woocommerce ul.products,
.woocommerce-page ul.products,
.uscca-shop ul.products,
body.woocommerce ul.products,
body.woocommerce-page ul.products,
.woocommerce ul.products.columns-1,
.woocommerce ul.products.columns-2,
.woocommerce ul.products.columns-3,
.woocommerce ul.products.columns-4,
.woocommerce ul.products.columns-5,
.woocommerce ul.products.columns-6 {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    clear: both;
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
.uscca-shop ul.products::before,
.uscca-shop ul.products::after { content: none !important; display: none !important; }

/* Card produit loop — force reset du width/float hérités de WC-layout.css */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.uscca-shop ul.products li.product,
.uscca-card-product,
.woocommerce ul.products li.product.uscca-card-product {
    position: relative;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 14px;
    overflow: hidden;
    float: none !important;
    clear: none !important;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    display: flex !important;
    flex-direction: column;
}
.uscca-card-product:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0,0,0,.1);
    border-color: var(--color-primary, #E1202A);
}
.uscca-card-product-inner {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.uscca-card-product-img {
    position: relative;
    aspect-ratio: 1 / 1;
    background: #f7f6f2;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.uscca-card-product-img img {
    width: 90%; height: 90%;
    object-fit: contain;
    display: block;
    transition: transform .3s ease;
}
.uscca-card-product:hover .uscca-card-product-img img { transform: scale(1.04); }
.uscca-card-product-brand {
    position: absolute;
    top: 10px; left: 10px;
    background: #161614;
    color: #fff;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .12em;
    padding: 3px 9px;
    border-radius: 2px;
}
.uscca-card-product-body {
    padding: 12px 14px 10px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 6px;
}
.uscca-card-product-title {
    font-size: .9rem;
    margin: 0;
    color: #161614;
    line-height: 1.3;
    font-weight: 700;
}
.uscca-card-product-bottom {
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid #eee;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}
.uscca-card-product-price {
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-primary, #E1202A);
}
.uscca-card-product-price .woocommerce-Price-amount {
    font-size: 1rem !important;
    color: var(--color-primary, #E1202A) !important;
    font-weight: 800 !important;
}
.uscca-card-product-cta {
    font-size: .72rem;
    font-weight: 700;
    color: #161614;
    letter-spacing: .02em;
}
.uscca-card-product:hover .uscca-card-product-cta { color: var(--color-primary, #E1202A); }
.uscca-card-product-buy {
    display: block;
    text-align: center;
    background: var(--color-primary, #E1202A);
    color: #fff !important;
    padding: 9px 12px;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .15s ease;
}
.uscca-card-product-buy:hover { background: #c51b24; }
.uscca-card-product-brand {
    font-size: .58rem !important;
    padding: 3px 7px !important;
    top: 8px !important; left: 8px !important;
}

/* Tri / résultat count WC natifs */
.woocommerce-ordering,
.woocommerce-result-count {
    font-size: .9rem;
    color: #666;
    margin-bottom: 1.5rem !important;
}
.woocommerce-ordering select {
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 8px 12px;
    font-family: inherit;
}

/* Pagination WC */
.woocommerce nav.woocommerce-pagination ul { margin-top: 2rem !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    padding: 10px 14px !important;
    border-radius: 6px !important;
}

/* ============================================================
   WooCommerce responsive — 4 cols desktop, 2 cols dès 960px
============================================================ */
@media (max-width: 1200px) {
    .uscca-shop ul.products,
    .woocommerce ul.products,
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    .woocommerce ul.products.columns-1,
    .woocommerce ul.products.columns-2,
    .woocommerce ul.products.columns-3,
    .woocommerce ul.products.columns-4,
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.columns-6 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 960px) {
    .uscca-product-main { grid-template-columns: 1fr; gap: 2rem; }
    .uscca-shop ul.products,
    .woocommerce ul.products,
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    .woocommerce ul.products.columns-1,
    .woocommerce ul.products.columns-2,
    .woocommerce ul.products.columns-3,
    .woocommerce ul.products.columns-4,
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.columns-6 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }
    .uscca-related-grid { grid-template-columns: repeat(2, 1fr); }
    .uscca-shop-intro-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .uscca-product-trust { grid-template-columns: 1fr; }
    .uscca-shop ul.products,
    .woocommerce ul.products,
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    .woocommerce ul.products.columns-1,
    .woocommerce ul.products.columns-2,
    .woocommerce ul.products.columns-3,
    .woocommerce ul.products.columns-4,
    .woocommerce ul.products.columns-5,
    .woocommerce ul.products.columns-6 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }
    .uscca-related-grid { grid-template-columns: repeat(2, 1fr); }
    .uscca-product-impact-inner { grid-template-columns: 1fr; text-align: center; }
    .uscca-product-impact-icon { font-size: 2.5rem; }
    .woo-hero-trust { font-size: .8rem; gap: 10px 16px; }
}
@media (max-width: 480px) {
    .uscca-product-main { gap: 1.5rem; }
    .uscca-product-buy { font-size: .9rem; padding: 14px 20px; }
}

/* ============================================================
   SECTION VESTIAIRES INAUGURÉS (page Infrastructures)
============================================================ */
.vestiaires-section { position: relative; }
.vestiaires-header {
    text-align: center;
    margin-bottom: 2.5rem;
}
.vestiaires-showcase {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 2.5rem;
    align-items: start;
}
.vestiaires-photo {
    position: relative;
    margin: 0;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(0,0,0,.35);
    background: #000;
}
.vestiaires-photo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 560px;
    object-fit: cover;
}
.vestiaires-photo figcaption {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 12px 16px;
    background: linear-gradient(0deg, rgba(0,0,0,.75), transparent);
    color: rgba(255,255,255,.9);
    font-size: .82rem;
}
.vestiaires-specs-wrap p {
    color: rgba(255,255,255,.85);
    line-height: 1.65;
}
.vestiaires-specs-wrap .projet-specs {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 0;
    display: grid;
    gap: 10px;
}
.vestiaires-specs-wrap .projet-specs li {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    background: rgba(255,255,255,.06);
    border-radius: 10px;
    color: rgba(255,255,255,.88);
    font-size: .92rem;
}
.vestiaires-specs-wrap .projet-spec-num {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--color-primary, #E1202A);
    min-width: 38px;
    text-align: center;
}
@media (max-width: 1024px) {
    .vestiaires-showcase { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* ============================================================
   SINGLE POST — Refonte magazine USCCA
============================================================ */

/* Barre de progression de lecture (top) */
.reading-progress {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 3px;
    z-index: 9999;
    background: rgba(0,0,0,.05);
    pointer-events: none;
}
.reading-progress span {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--color-primary, #E1202A), #ff5560);
    transition: width .12s ease;
    box-shadow: 0 0 8px rgba(225,32,42,.4);
}

/* Hero article */
.post-hero {
    position: relative;
    padding: 140px 0 80px;
    color: #fff;
    background: #161614;
    overflow: hidden;
    isolation: isolate;
}
.post-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: -2;
    filter: saturate(.9);
}
.post-hero-gradient {
    position: absolute;
    inset: 0;
    background:
      linear-gradient(180deg, rgba(22,22,20,.55) 0%, rgba(22,22,20,.82) 60%, rgba(22,22,20,.95) 100%),
      linear-gradient(103deg, rgba(225,32,42,.15), transparent 60%);
    z-index: -1;
}
.post-hero .page-hero-breadcrumb {
    color: rgba(255,255,255,.7);
    margin-bottom: 1rem;
}
.post-hero .page-hero-breadcrumb a { color: rgba(255,255,255,.85); }
.post-hero-cat {
    display: inline-block;
    background: var(--color-primary, #E1202A);
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 3px;
    text-decoration: none;
    margin-bottom: 1.25rem;
}
.post-hero-cat:hover { background: #c51b24; color: #fff; }
.post-hero-title {
    font-size: clamp(2rem, 4.6vw, 3.4rem);
    line-height: 1.15;
    color: #fff;
    margin: 0 0 1.5rem;
    max-width: 860px;
}
.post-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 26px;
    font-size: .92rem;
    color: rgba(255,255,255,.82);
}
.post-hero-meta a { color: #fff; border-bottom: 1px dotted rgba(255,255,255,.4); text-decoration: none; }
.post-hero-meta a:hover { color: var(--color-primary, #E1202A); }

/* Corps article */
.post-article {
    background: #fff;
    padding: 60px 0 80px;
    margin-top: 0;
}
.post-article-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 40px;
    align-items: start;
}
.post-article-content {
    max-width: 740px;
    margin: 0 auto;
    width: 100%;
    color: #222;
    font-size: 1.05rem;
    line-height: 1.8;
}
.post-article-content p {
    margin: 0 0 1.3rem;
}
.post-article-content h2 {
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    margin: 2.5rem 0 1rem;
    line-height: 1.3;
    color: #161614;
    letter-spacing: -.01em;
}
.post-article-content h3 {
    font-size: 1.2rem;
    margin: 2rem 0 .75rem;
    color: #161614;
}
.post-article-content a:not(.related-inline-inner):not(.post-tag) {
    color: var(--color-primary, #E1202A);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(225,32,42,.3);
    transition: border-color .15s ease;
}
.post-article-content a:not(.related-inline-inner):not(.post-tag):hover {
    border-bottom-color: var(--color-primary, #E1202A);
}
.post-article-content ul, .post-article-content ol {
    margin: 0 0 1.3rem 1.25rem;
    padding-left: 1rem;
}
.post-article-content li { margin-bottom: .5rem; }
.post-article-content strong { color: #161614; }
.post-article-content blockquote {
    border-left: 4px solid var(--color-primary, #E1202A);
    padding: 16px 20px;
    margin: 2rem 0;
    background: #fafafa;
    font-style: italic;
    color: #444;
}
.post-article-content .instagram-source {
    font-size: .86rem;
    color: #777;
    padding-top: 1.5rem;
    border-top: 1px solid #eee;
    margin-top: 2rem;
}

/* Partage latéral sticky (desktop) */
.post-share-rail {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.post-share-label {
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 700;
    color: #888;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    margin-bottom: 8px;
}
.post-share-btn {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #f4f1eb;
    color: #161614;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: transform .15s ease, background .15s ease, color .15s ease;
}
.post-share-btn:hover {
    background: var(--color-primary, #E1202A);
    color: #fff;
    transform: translateY(-2px);
}

/* Encart INLINE article similaire (injecté au milieu) */
.related-inline-card {
    margin: 2.5rem 0;
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(135deg, #161614 0%, #2a2a28 100%);
    color: #fff;
    border-left: 8px solid var(--color-primary, #E1202A);
    box-shadow: 0 14px 32px rgba(22,22,20,.18);
    transition: transform .2s ease, box-shadow .2s ease;
}
.related-inline-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 40px rgba(22,22,20,.25);
}
.related-inline-inner {
    display: grid;
    grid-template-columns: 160px 1fr;
    color: #fff !important;
    text-decoration: none !important;
    border: none !important;
}
.related-inline-thumb {
    background-size: cover;
    background-position: center;
    min-height: 160px;
}
.related-inline-body {
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.related-inline-card .related-inline-eyebrow {
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 800;
    color: #ff4a54 !important;
}
.related-inline-card .related-inline-title {
    font-size: 1.2rem !important;
    margin: 0 !important;
    color: #ffffff !important;
    line-height: 1.3 !important;
    font-weight: 800 !important;
}
.related-inline-card .related-inline-excerpt {
    font-size: .92rem !important;
    color: rgba(255,255,255,.92) !important;
    margin: 0 !important;
    line-height: 1.55 !important;
}
.related-inline-card .related-inline-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.2);
    font-size: .85rem;
    color: rgba(255,255,255,.85) !important;
}
.related-inline-card .related-inline-meta time {
    color: rgba(255,255,255,.88) !important;
    font-weight: 500;
}
.related-inline-card .related-inline-cta {
    color: #ff4a54 !important;
    font-weight: 800;
}

/* Tags */
.post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding-top: 2rem;
    border-top: 1px solid #eee;
    margin-top: 2.5rem;
}
.post-tags-label {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #888;
    margin-right: 6px;
}
.post-tag {
    background: #f4f1eb;
    color: #161614;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none !important;
    border: none !important;
    transition: background .15s ease;
}
.post-tag:hover { background: var(--color-primary, #E1202A); color: #fff; }

/* Partage bas (mobile + rappel) */
.post-share-bottom {
    margin-top: 2.5rem;
    padding: 24px;
    background: #fafafa;
    border-radius: 12px;
    text-align: center;
}
.post-share-bottom-label {
    font-weight: 700;
    color: #161614;
    margin-bottom: 12px;
    font-size: 1.05rem;
}
.post-share-bottom-btns {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}

/* Nav pager prev/next */
.post-pager {
    background: #161614;
    color: #fff;
    padding: 50px 0;
}
.post-pager-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.post-pager-card {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 16px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    padding: 14px;
    text-decoration: none;
    color: #fff;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.post-pager-card:hover {
    background: rgba(255,255,255,.1);
    border-color: var(--color-primary, #E1202A);
    transform: translateY(-2px);
}
.post-pager-empty {
    background: transparent;
    border-color: transparent;
    visibility: hidden;
}
.post-pager-next { grid-template-columns: 1fr 120px; text-align: right; }
.post-pager-next .post-pager-thumb { order: 2; }
.post-pager-next .post-pager-body { order: 1; align-items: flex-end; }
.post-pager-thumb {
    width: 120px;
    height: 90px;
    border-radius: 8px;
    overflow: hidden;
    background: rgba(255,255,255,.04);
    flex-shrink: 0;
}
.post-pager-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.post-pager-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    min-width: 0;
}
.post-pager-dir {
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-primary, #E1202A);
    font-weight: 700;
}
.post-pager-title {
    font-size: .95rem;
    margin: 0;
    color: #fff;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.post-pager-date {
    font-size: .78rem;
    color: rgba(255,255,255,.55);
}

/* Articles similaires (bas) */
.post-related { padding: 70px 0; }
.post-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.post-related-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 14px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.post-related-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(22,22,20,.1);
    border-color: var(--color-primary, #E1202A);
}
.post-related-link {
    display: flex;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
    height: 100%;
}
.post-related-thumb {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #f4f1eb;
    position: relative;
}
.post-related-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.post-related-card:hover .post-related-thumb img { transform: scale(1.06); }
.post-related-thumb-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 800;
    letter-spacing: .2em;
    background: linear-gradient(135deg, #161614, var(--color-primary, #E1202A));
}
.post-related-body { padding: 20px 22px 22px; flex: 1; display: flex; flex-direction: column; }
.post-related-meta {
    display: flex;
    gap: 10px;
    font-size: .75rem;
    color: #888;
    margin-bottom: 8px;
}
.post-related-cat {
    color: var(--color-primary, #E1202A);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.post-related-title {
    font-size: 1.05rem;
    margin: 0 0 8px;
    line-height: 1.3;
    color: #161614;
}
.post-related-excerpt {
    color: #666;
    font-size: .88rem;
    line-height: 1.5;
    margin: 0 0 12px;
    flex: 1;
}
.post-related-more {
    font-size: .85rem;
    color: var(--color-primary, #E1202A);
    font-weight: 700;
    margin-top: auto;
}

/* Responsive single */
@media (max-width: 900px) {
    .post-article-wrap { grid-template-columns: 1fr; }
    .post-share-rail {
        position: static;
        flex-direction: row;
        justify-content: center;
        margin-bottom: 1.5rem;
        padding: 16px;
        background: #fafafa;
        border-radius: 10px;
    }
    .post-share-label { writing-mode: horizontal-tb; transform: none; margin: 0 4px 0 0; }
    .post-pager-grid { grid-template-columns: 1fr; }
    .post-pager-next { grid-template-columns: 120px 1fr; text-align: left; }
    .post-pager-next .post-pager-thumb { order: 0; }
    .post-pager-next .post-pager-body { order: 1; align-items: flex-start; }
    .post-pager-empty { display: none; }
    .post-related-grid { grid-template-columns: 1fr; }
    .related-inline-inner { grid-template-columns: 1fr; }
    .related-inline-thumb { min-height: 180px; }
    .post-hero { padding: 100px 0 50px; }
}

/* ============================================================
   FIX HERO PORTRAIT — articles otomatic (Instagram-import)
   Le visuel mis en avant est portrait (640x1136 type Insta).
   En cover il ne montre qu'une mince tranche horizontale.
   On désactive le bg cover et on affiche l'image entière.
============================================================ */
.post-hero.post-hero-portrait .post-hero-bg { display: none; }
.post-hero.post-hero-portrait {
    background: linear-gradient(180deg, #161614 0%, #2a2a28 100%);
    padding: 80px 0 40px;
}
.post-hero.post-hero-portrait .container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 36px;
    align-items: center;
}
.post-hero-portrait-img {
    order: 2;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(0,0,0,.4);
    background: #000;
}
.post-hero-portrait-img img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 70vh;
    object-fit: contain;
}
@media (max-width: 768px) {
    .post-hero.post-hero-portrait .container {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .post-hero-portrait-img { order: -1; max-width: 320px; margin: 0 auto; }
    .post-hero-portrait-img img { max-height: 55vh; }
    .post-hero.post-hero-portrait { padding: 90px 0 32px; }
}

/* ============================================================
   FIX MOBILE — articles otomatoc / contenu WP généré
   Empêche tout débordement horizontal et adapte les blocs
   AI-generated qui forcent des largeurs/colonnes fixes.
============================================================ */
.post-article-content,
.post-article-content .entry-content {
    overflow-wrap: anywhere;
    word-wrap: break-word;
}
.post-article-content img,
.post-article-content video,
.post-article-content iframe,
.post-article-content embed {
    max-width: 100%;
    height: auto;
}
/* Tables → scroll horizontal au lieu de casser la mise en page */
.post-article-content table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
/* Galeries Gutenberg avec inline grid-template-columns forcé */
@media (max-width: 600px) {
    .post-article-content .wp-block-gallery.has-nested-images,
    .post-article-content figure.wp-block-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    .post-article-content .wp-block-gallery.columns-1 {
        grid-template-columns: 1fr !important;
    }
}
@media (max-width: 420px) {
    .post-article-content .wp-block-gallery.has-nested-images,
    .post-article-content figure.wp-block-gallery {
        grid-template-columns: 1fr !important;
    }
}
/* Figures, blocs media-text et embeds qui débordent */
.post-article-content figure,
.post-article-content .wp-block-image,
.post-article-content .wp-block-embed,
.post-article-content .wp-block-media-text {
    max-width: 100%;
}
.post-article-content figure { margin-left: 0; margin-right: 0; }
.post-article-content .wp-block-media-text {
    display: block !important;
    grid-template-columns: 1fr !important;
}
/* Pre / code blocs longs */
.post-article-content pre {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}
/* Liens longs (URL collées par l'IA) */
.post-article-content a { word-break: break-word; }

/* ============================================================
   SCORENCO LAZY PLACEHOLDER (anti-CLS + gain perf)
============================================================ */
.hero-scores, .scores-embed {
    min-height: 640px;
}
.scores-embed { min-height: 780px; }
.scorenco-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 640px;
    background: linear-gradient(135deg, #1a1a18 0%, #2a2a28 100%);
    border-radius: 8px;
    color: rgba(255,255,255,.7);
    text-align: center;
    padding: 40px 24px;
    position: relative;
    overflow: hidden;
}
.scorenco-placeholder-large { min-height: 780px; background: #fff; color: #666; border: 1px solid #eee; }
.scorenco-placeholder::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 30%, rgba(225,32,42,.08), transparent 60%);
    pointer-events: none;
}
.scorenco-placeholder-icon {
    font-size: 3rem;
    line-height: 1;
    animation: scoreFloat 2s ease-in-out infinite;
}
.scorenco-placeholder-large .scorenco-placeholder-icon { color: var(--color-primary, #E1202A); }
@keyframes scoreFloat {
    0%,100% { transform: translateY(0); }
    50%     { transform: translateY(-6px); }
}
.scorenco-placeholder-text { display: flex; flex-direction: column; gap: 4px; }
.scorenco-placeholder-text strong {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #fff;
}
.scorenco-placeholder-large .scorenco-placeholder-text strong { color: #161614; }
.scorenco-placeholder-text span { font-size: .78rem; opacity: .65; }

/* L'iframe injectée remplace le placeholder — on conserve le min-height */
.hero-scores iframe, .scores-embed iframe {
    display: block;
    width: 100% !important;
    border: 0 !important;
    border-radius: 8px;
    overflow: hidden;
}

/* ============================================================
   BOUTIQUE MOBILE — refonte ergonomique
============================================================ */
@media (max-width: 768px) {
    /* Hero WooCommerce plus compact */
    .woo-hero {
        padding: 70px 0 40px !important;
    }
    .woo-hero .page-hero-title {
        font-size: clamp(1.6rem, 7vw, 2.2rem) !important;
        line-height: 1.15;
    }
    .woo-hero .page-hero-subtitle {
        font-size: .9rem;
        line-height: 1.5;
        margin-bottom: 1rem;
    }
    /* Trust row : chips horizontales scrollables */
    .woo-hero-trust {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        -ms-overflow-style: none;
        gap: 8px;
        padding: 4px 0 2px;
        margin: 0 -24px 0;
        padding-left: 24px;
        padding-right: 24px;
    }
    .woo-hero-trust::-webkit-scrollbar { display: none; }
    .woo-hero-trust span {
        flex-shrink: 0;
        background: rgba(255,255,255,.1);
        border: 1px solid rgba(255,255,255,.18);
        padding: 6px 12px;
        border-radius: 999px;
        font-size: .75rem;
        white-space: nowrap;
    }

    /* Intro shop : version empilée + encart contact en card plate */
    .uscca-shop-intro {
        padding: 1.25rem;
        border-radius: 12px;
        margin-bottom: 1.5rem;
    }
    .uscca-shop-intro h2 {
        font-size: 1.2rem !important;
    }
    .uscca-shop-intro p { font-size: .9rem; }
    .uscca-shop-intro-side {
        padding: 1rem;
        border-radius: 10px;
        margin-top: 1rem;
    }
    .uscca-shop-intro-side strong { font-size: .95rem; }
    .uscca-shop-intro-side p { font-size: .82rem; }

    /* Tri + résultats : sticky sous le hero pour accès rapide */
    .woocommerce-ordering,
    .woocommerce-result-count {
        font-size: .82rem !important;
        margin-bottom: .75rem !important;
        padding: 0 !important;
    }
    .woocommerce-result-count {
        color: #555;
        font-weight: 600;
    }
    .woocommerce-ordering select {
        padding: 6px 10px !important;
        font-size: .82rem !important;
        background: #fff;
    }

    /* Grille produits : 2 colonnes équilibrées + gap réduit */
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .uscca-shop ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    /* Card produit mobile : image plus grande, body compact */
    .uscca-card-product,
    .woocommerce ul.products li.product {
        border-radius: 10px !important;
    }
    .uscca-card-product-img {
        aspect-ratio: 4 / 5; /* plus haut = produit plus mis en valeur */
    }
    .uscca-card-product-img img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        padding: 12%;
    }
    .uscca-card-product-brand {
        font-size: .52rem !important;
        padding: 3px 6px !important;
        top: 6px !important;
        left: 6px !important;
        letter-spacing: .1em;
    }
    .uscca-card-product-body {
        padding: 10px 12px 10px !important;
        gap: 4px;
    }
    .uscca-card-product-title {
        font-size: .82rem !important;
        line-height: 1.25 !important;
        font-weight: 700 !important;
        /* Limiter à 2 lignes */
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .uscca-card-product-bottom {
        padding-top: 6px !important;
        gap: 4px;
    }
    .uscca-card-product-price {
        font-size: .95rem !important;
    }
    .uscca-card-product-price .woocommerce-Price-amount {
        font-size: .95rem !important;
    }
    .uscca-card-product-cta {
        display: none; /* on garde uniquement le bouton Acheter en mobile */
    }
    .uscca-card-product-buy {
        padding: 10px 8px !important;
        font-size: .68rem !important;
        letter-spacing: .04em !important;
    }

    /* Espacement général */
    .woo-content {
        padding: 30px 0 50px !important;
    }
    .woo-content .woocommerce,
    .woo-content .woocommerce-page,
    .uscca-shop {
        padding: 0 14px;
    }

    /* Pagination plus compacte */
    .woocommerce nav.woocommerce-pagination ul li a,
    .woocommerce nav.woocommerce-pagination ul li span {
        padding: 8px 11px !important;
        font-size: .82rem !important;
    }
}

/* Ultra-petit (≤360px) : fallback 1 colonne pour lisibilité */
@media (max-width: 360px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    .uscca-shop ul.products {
        grid-template-columns: 1fr !important;
    }
    .uscca-card-product-img {
        aspect-ratio: 16 / 10;
    }
    .uscca-card-product-img img {
        padding: 6%;
    }
}

/* ============================================================
   FICHE PRODUIT MOBILE — amélioration lisibilité
============================================================ */
@media (max-width: 768px) {
    .uscca-product {
        padding: 0 14px;
    }
    .uscca-product-main {
        gap: 1.25rem !important;
        margin-bottom: 2rem !important;
    }
    .uscca-product-media {
        border-radius: 12px;
    }
    .uscca-product-eyebrow {
        font-size: .68rem;
        margin-bottom: .35rem;
    }
    .uscca-product-title {
        font-size: clamp(1.4rem, 6vw, 1.8rem) !important;
        line-height: 1.2 !important;
        margin-bottom: .75rem !important;
    }
    .uscca-product-short {
        font-size: .92rem;
        line-height: 1.55;
        margin-bottom: 1rem;
    }
    .uscca-product-price-row {
        padding: 14px 0;
        margin-bottom: 1rem;
        gap: 8px;
    }
    .uscca-product-price-row .price,
    .uscca-product-price-row .woocommerce-Price-amount {
        font-size: 1.9rem !important;
    }
    .uscca-product-price-meta {
        font-size: .75rem;
    }
    /* Trust badges en 1 colonne, plus compact */
    .uscca-product-trust {
        grid-template-columns: 1fr !important;
        gap: 8px;
        margin-bottom: 1.25rem;
    }
    .uscca-product-trust li {
        padding: 10px 12px;
        font-size: .8rem;
        border-radius: 8px;
    }
    .uscca-trust-icon { font-size: 1.2rem; }
    /* Bouton acheter plein largeur + gros */
    .uscca-product-buy {
        display: flex;
        width: 100%;
        padding: 14px 18px;
        font-size: .92rem;
        justify-content: center;
    }
    .uscca-product-cta-help {
        text-align: center;
        font-size: .78rem;
    }
    /* Description + impact box */
    .uscca-product-description {
        margin: 2.5rem auto 2rem !important;
        padding: 0 14px !important;
    }
    .uscca-product-description-body {
        font-size: .95rem;
        line-height: 1.65;
    }
    .uscca-product-impact {
        padding: 1.5rem 1.25rem !important;
        border-radius: 12px !important;
        margin-bottom: 2rem !important;
    }
    .uscca-product-impact h3 {
        font-size: 1.1rem !important;
    }
    .uscca-product-impact p {
        font-size: .9rem;
    }
    /* Cross-sell en 2 colonnes sur fiche produit mobile */
    .uscca-product-related {
        padding: 0 14px !important;
    }
    .uscca-related-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px;
    }
    .uscca-related-card {
        border-radius: 10px !important;
    }
    .uscca-related-body {
        padding: 10px 12px !important;
    }
    .uscca-related-body h3 {
        font-size: .82rem !important;
        line-height: 1.25;
    }
    .uscca-related-price,
    .uscca-related-price .woocommerce-Price-amount {
        font-size: .9rem !important;
    }
    /* Partage bouton mini */
    .uscca-product-share {
        font-size: .75rem;
    }
    .uscca-product-meta {
        font-size: .78rem;
    }
}
