/*
Theme Name: APV Maillot
Theme URI: https://apvuache.fr
Author: AP Vuache
Description: Design 2026 aux couleurs du maillot (bleu roi, jaune citron, chevrons de la manche). Thème enfant : toute la logique du club reste dans le thème APV parent.
Template: apv_project
Version: 1.0.13
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: apv-theme
*/

/* ============================================================
   1. VARIABLES — le maillot 2026
   Le parent reste chargé dessous : en redéfinissant ses variables,
   tous ses composants et styles en ligne passent aux couleurs du club.
   ============================================================ */
:root {
    /* Palette maillot */
    --m-bleu: #2347A6;
    --m-bleu-nuit: #13265C;
    --m-citron: #EFE93B;
    --m-citron-pale: #FBF9C8;
    --m-salle: #ECEFF5;
    --m-trait: #CBD3E6;
    --m-texte-doux: #4A5A85;
    --m-hachure-citron: repeating-linear-gradient(-38deg, var(--m-citron) 0 2px, transparent 2px 6px);
    --m-hachure-blanc: repeating-linear-gradient(-38deg, rgba(255, 255, 255, .8) 0 1.5px, transparent 1.5px 6px);

    /* Variables du parent, remappées */
    --apv-blue: var(--m-bleu);
    --apv-blue-light: #3A5DB8;
    --apv-blue-dark: var(--m-bleu-nuit);
    --apv-blue-vivid: var(--m-bleu);
    --apv-blue-electric: #5B7FD6;
    --apv-yellow: var(--m-citron);
    --apv-yellow-light: #F7F27A;
    --apv-yellow-dark: #6F6A00;
    --apv-yellow-glow: rgba(239, 233, 59, .28);
    --apv-cream: #FFFFFF;
    --apv-surface: #FFFFFF;
    --apv-surface-alt: var(--m-salle);
    --apv-blue-soft: #E8EDF8;
    --apv-yellow-soft: var(--m-citron-pale);
    --apv-yellow-ink: #5E5A00;
    --apv-ink: var(--m-bleu-nuit);
    --apv-ink-mid: #2B3B66;
    --apv-ink-soft: var(--m-texte-doux);
    --apv-line: var(--m-trait);
    --apv-line-strong: #A9B5D3;
    --apv-gradient-hero: var(--m-bleu);
    --apv-gradient-blue: var(--m-bleu);
    --apv-gradient-accent: var(--m-citron);
    --apv-gradient-card: #FFFFFF;
    --apv-white: #FFFFFF;
    --apv-gray-50: #F3F5FA;
    --apv-gray-100: #E4E8F2;
    --apv-gray-200: var(--m-trait);
    --apv-gray-300: #A9B5D3;
    --apv-gray-400: #6E7BA1;
    --apv-gray-500: var(--m-texte-doux);
    --apv-gray-600: #3A4A74;
    --apv-sante: var(--m-bleu);
    --apv-sante-soft: var(--m-citron-pale);

    --font-display: 'Archivo', system-ui, sans-serif;
    --font-body: 'Archivo', system-ui, sans-serif;

    --radius-sm: 2px;
    --radius-md: 3px;
    --radius-lg: 4px;
    --radius-xl: 4px;

    --shadow-sm: none;
    --shadow-md: none;
    --shadow-card: none;
    --shadow-card-hover: none;
    --shadow-lg: 0 10px 30px rgba(19, 38, 92, .16);
    --shadow-xl: 0 16px 40px rgba(19, 38, 92, .2);
    --shadow-glow-yellow: none;
    --shadow-glow-blue: none;

    --header-height: 72px;
}

/* ============================================================
   2. BASE
   ============================================================ */
body {
    background: #FFFFFF;
    background-image: none;
    color: var(--apv-ink-mid);
    font-size: 17px;
}

::selection { background: var(--m-citron); color: var(--m-bleu-nuit); }

*:focus-visible { outline: 3px solid var(--m-citron); outline-offset: 3px; border-radius: 0; }
:where(.m-bloc, .apv-section:not(.apv-section--blue), .apv-card) *:focus-visible { outline-color: var(--m-bleu); }

a { color: var(--m-bleu); }
a:hover { color: var(--m-bleu-nuit); }

/* Titres : condensé italique en capitales, façon numéro de dos */
h1, h2 {
    font-stretch: 68%;
    font-style: italic;
    font-weight: 850;
    text-transform: uppercase;
    line-height: .95;
    letter-spacing: 0;
    color: var(--m-bleu-nuit);
}
h1 { font-size: clamp(2.6rem, 6.5vw, 5rem); }
h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); }
h3, h4 { font-stretch: 82%; font-weight: 800; letter-spacing: 0; color: var(--m-bleu-nuit); }

/* Pas d'apparition au scroll : le contenu est là tout de suite */
.apv-fade-in, .apv-slide-in-left, .apv-stagger > * { opacity: 1 !important; transform: none !important; }

.m-sauter { position: absolute; left: -9999px; top: 0; z-index: 20000; background: var(--m-citron); color: var(--m-bleu-nuit); padding: 10px 16px; font-weight: 700; }
.m-sauter:focus { left: 8px; top: 8px; }

/* ============================================================
   3. EN-TÊTE
   ============================================================ */
.apv-header,
.apv-header.scrolled {
    position: sticky;
    height: var(--header-height);
    background: var(--m-bleu);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 0;
    box-shadow: none;
}
.apv-header__inner { gap: 24px; }

.m-entete__club { display: flex; align-items: center; gap: 12px; color: #FFFFFF; text-decoration: none; flex-shrink: 0; }
.m-entete__club:hover { color: #FFFFFF; }
.m-entete__club img { width: 44px; height: 44px; }
.m-entete__club span { font-stretch: 75%; font-style: italic; font-weight: 850; font-size: 1.3rem; text-transform: uppercase; line-height: 1; }

.apv-nav { gap: 4px; }
.apv-nav__link {
    color: #FFFFFF;
    font-weight: 600;
    font-size: .95rem;
    padding: 8px 14px;
    border-radius: 0;
    border-bottom: 3px solid transparent;
}
.apv-nav__link:hover, .apv-nav__link.active { color: #FFFFFF; background: transparent; border-bottom-color: var(--m-citron); }
.apv-nav__link.active::after { display: none; }
.apv-nav__submenu { border-radius: 0; border: 0; border-top: 3px solid var(--m-citron); }
.apv-nav__subitem { border-radius: 0; color: var(--m-bleu-nuit); }

.m-membre {
    margin-left: 12px;
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 18px;
    border: 2px solid #FFFFFF;
    border-radius: 3px;
    color: #FFFFFF;
    font-weight: 700;
    font-size: .92rem;
    white-space: nowrap;
}
.m-membre:hover, .m-membre.active { background: var(--m-citron); border-color: var(--m-citron); color: var(--m-bleu-nuit); }
.m-membre .apv-notif-badge { border-color: var(--m-bleu); top: -7px; right: -7px; }

.apv-menu-toggle span { background: #FFFFFF; }

@media (max-width: 968px) {
    .apv-header { background: var(--m-bleu); }
    .apv-nav {
        background: var(--m-bleu);
        padding-top: calc(var(--header-height) + 24px);
        gap: 0;
    }
    .apv-nav__link {
        color: #FFFFFF;
        font-stretch: 75%;
        font-style: italic;
        font-weight: 850;
        font-size: 1.9rem;
        text-transform: uppercase;
        padding: 14px 8px;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
        border-radius: 0;
    }
    .apv-nav__link:hover, .apv-nav__link.active { background: transparent; color: var(--m-citron); border-bottom-color: rgba(255, 255, 255, .18); }
    .apv-nav__subitem { color: #FFFFFF; }
    .m-membre { margin: 28px 0 0; justify-content: center; min-height: 52px; font-size: 1.05rem; background: var(--m-citron); border-color: var(--m-citron); color: var(--m-bleu-nuit); }
}

/* ============================================================
   4. COMPOSANTS PARTAGÉS DU PARENT
   ============================================================ */

/* Bandeau de titre des pages : le maillot, avec le chevron de la manche */
.apv-section--blue {
    background: var(--m-bleu);
    overflow: hidden;
}
.apv-section--blue::before {
    background: var(--m-hachure-citron);
    left: auto;
    width: 46%;
    clip-path: polygon(38% 0, 100% 0, 100% 42%, 72% 42%, 44% 100%, 0 100%);
    opacity: .9;
}
.apv-section--blue > .apv-container { position: relative; z-index: 1; }
.apv-section--blue h1, .apv-section--blue h2, .apv-section--blue h3 { color: #FFFFFF; }

.apv-section-title { text-align: left; max-width: 760px; margin-left: 0; }
.apv-section-title::after { display: none; }
.apv-section--blue .apv-section-title { max-width: 62%; }
.apv-section--blue .apv-section-title p,
.apv-tournoi-hero__lead,
.apv-news-hero__lead { margin-left: 0 !important; margin-right: 0 !important; text-align: left; color: #E3E9FA !important; max-width: 56ch; font-size: 1.1rem; }

/* Les étiquettes en pastille au-dessus des titres deviennent une simple ligne */
.apv-tournoi-eyebrow,
.apv-news-hero__eyebrow {
    display: block;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    color: var(--m-citron) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 8px;
}
.apv-tournoi-back { color: #FFFFFF; }

/* Cartes : à plat, filet fin, angles vifs */
.apv-card {
    border-radius: 4px;
    border: 1px solid var(--m-trait);
    box-shadow: none;
}
.apv-card:hover { transform: none; box-shadow: none; border-color: var(--m-trait); }

/* Boutons */
.apv-btn {
    border-radius: 3px;
    min-height: 48px;
    justify-content: center;
    font-weight: 700;
    box-shadow: none;
    transition: background-color .15s, color .15s, border-color .15s;
}
.apv-btn--sm { min-height: 38px; }
.apv-btn:hover { transform: none !important; box-shadow: none !important; filter: none !important; }
.apv-btn--primary { background: var(--m-citron); color: var(--m-bleu-nuit); }
.apv-btn--primary:hover { background: #F7F27A; color: var(--m-bleu-nuit); }
.apv-btn--secondary { color: var(--m-bleu); border-color: var(--m-bleu); }
.apv-btn--secondary:hover { background: var(--m-bleu); color: #FFFFFF; }
.apv-btn--white { border-color: var(--m-trait); }
:is(.apv-section--blue, .m-hero) .apv-btn--secondary { color: #FFFFFF; border-color: #FFFFFF; }
:is(.apv-section--blue, .m-hero) .apv-btn--secondary:hover { background: #FFFFFF; color: var(--m-bleu); }
.m-btn-bleu { background: var(--m-bleu); color: #FFFFFF; }
.m-btn-bleu:hover { background: var(--m-bleu-nuit); color: #FFFFFF; }

/* Formulaires */
.apv-form__input, .apv-form__select, .apv-form__textarea,
input[type="text"], input[type="email"], input[type="password"], input[type="date"], input[type="number"], select, textarea {
    border-radius: 3px;
}
.apv-form__input:focus, .apv-form__select:focus, .apv-form__textarea:focus { border-color: var(--m-bleu); box-shadow: 0 0 0 3px rgba(35, 71, 166, .18); }

/* Tableaux : pas de capitales dans les en-têtes */
.apv-table th { text-transform: none; letter-spacing: 0; font-size: .85rem; color: var(--m-bleu-nuit); background: var(--m-salle); border-bottom: 2px solid var(--m-bleu-nuit); }
.apv-stat-mini__label { text-transform: none; letter-spacing: 0; font-size: .8rem; }
.apv-stat-mini__item { border-radius: 3px; background: var(--m-salle); }
.apv-stat-mini__value { font-stretch: 75%; font-style: italic; }

/* Avis */
.apv-notice { border-radius: 0; border-width: 0 0 0 5px !important; border-style: solid; }
.apv-notice--info { background: var(--m-salle); border-color: var(--m-bleu); color: var(--m-bleu-nuit); }

/* Pastilles de type d'actu : minuscules, sans capitales */
.apv-news-type { text-transform: none; letter-spacing: 0; border-radius: 2px; }

/* Ancien pied de page masqué si un gabarit du parent l'inclut encore */
.apv-footer { display: none; }

/* ============================================================
   5. BLOCS « MAILLOT » (accueil, horaires, pied de page)
   ============================================================ */

/* Chevrons en escalier de la manche du maillot */
.m-manche { position: absolute; inset: 0 0 0 48%; pointer-events: none; }
.m-manche i { position: absolute; display: block; }
.m-manche i:nth-child(1) { inset: -10% -10% 38% 12%; background: var(--m-hachure-citron); clip-path: polygon(0 100%, 42% 18%, 100% 18%, 100% 44%, 58% 44%, 30% 100%); }
.m-manche i:nth-child(2) { inset: 40% -10% -10% 0; background: var(--m-hachure-citron); clip-path: polygon(0 100%, 34% 12%, 100% 12%, 100% 40%, 52% 40%, 30% 100%); opacity: .9; }
.m-manche i:nth-child(3) { inset: 8% -10% 30% 34%; background: var(--m-hachure-blanc); clip-path: polygon(0 100%, 30% 40%, 100% 40%, 100% 56%, 40% 56%, 16% 100%); opacity: .55; }

.m-hero { background: var(--m-bleu); color: #FFFFFF; position: relative; overflow: hidden; }
.m-hero__grille { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: 24px; padding-top: 72px; padding-bottom: 96px; }
.m-hero__titre { color: #FFFFFF; font-size: clamp(3.4rem, 8.6vw, 7.6rem); line-height: .9; }
.m-hero__intro { max-width: 36ch; font-size: 1.2rem; line-height: 1.5; margin: 28px 0 36px; color: #E3E9FA; }
.m-hero__lieu { margin-top: 36px; font-size: .95rem; color: #C9D4F2; }
.m-hero__ecusson { justify-self: center; width: min(360px, 80%); height: auto; filter: drop-shadow(0 18px 30px rgba(10, 22, 60, .45)); }
.m-actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* À la une : Ping Santé (priorité de la saison, citron) + École de Ping (bleu nuit) */
.m-une { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.m-une__bloc { padding: 56px max(24px, calc((100vw - 1200px) / 2 + 24px)) 56px 48px; }
.m-une__bloc--sante { background: var(--m-citron); color: var(--m-bleu-nuit); padding-left: max(24px, calc((100vw - 1200px) / 2 + 24px)); padding-right: 48px; }
.m-une__bloc--ecole { background: var(--m-bleu-nuit); color: #FFFFFF; }
.m-une h2 { font-size: clamp(2.8rem, 5.6vw, 4.6rem); margin: 0 0 16px; }
.m-une__bloc--ecole h2 { color: #FFFFFF; }
.m-une__sur { font-weight: 700; margin: 0 0 6px; }
.m-une__bloc--ecole .m-une__sur { color: var(--m-citron); }
.m-une__texte { font-size: 1.1rem; line-height: 1.55; margin: 0 0 12px; max-width: 46ch; }
.m-une__bloc--sante .m-une__texte { color: var(--m-bleu-nuit); }
.m-une__bloc--ecole .m-une__texte { color: #D5DDF3; }
.m-une__quand { font-stretch: 72%; font-style: italic; font-weight: 850; font-size: 1.6rem; line-height: 1.15; margin: 0 0 20px; }

.m-bloc { padding: 88px 0; }
.m-bloc--salle { background: var(--m-salle); }
.m-bloc h2 { margin: 0 0 12px; }
.m-bloc__intro { color: var(--m-texte-doux); max-width: 60ch; margin: 0 0 36px; font-size: 1.05rem; }
.m-vide { color: var(--m-texte-doux); }

/* Tableau des horaires */
.m-horaires { border-top: 3px solid var(--m-bleu-nuit); }
.m-horaire {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto;
    gap: 24px;
    align-items: baseline;
    padding: 24px 0;
    border-bottom: 1px solid var(--m-trait);
    text-decoration: none;
    color: var(--m-bleu-nuit);
}
.m-horaire:hover { color: var(--m-bleu-nuit); background: linear-gradient(90deg, var(--m-salle), transparent 70%); }
.m-horaire__quand { font-stretch: 70%; font-style: italic; font-weight: 850; font-size: 1.75rem; line-height: 1.1; }
.m-horaire__jour { color: var(--m-bleu); }
.m-horaire__public { font-stretch: 85%; font-weight: 800; font-size: 1.35rem; line-height: 1.2; }
.m-horaire__public small { display: block; font-stretch: 100%; font-weight: 500; font-size: .95rem; color: var(--m-texte-doux); margin-top: 4px; }
.m-nouveau { font-style: normal; font-stretch: 100%; font-size: .78rem; font-weight: 700; background: var(--m-citron); color: var(--m-bleu-nuit); padding: 2px 8px; vertical-align: middle; margin-left: 6px; }
.m-horaire__plus { font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; text-decoration-color: var(--m-citron); white-space: nowrap; }

.m-essai { margin-top: 40px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 28px; align-items: center; background: var(--m-salle); padding: 28px 32px; border-left: 8px solid var(--m-citron); }
.m-essai p { margin: 0; color: var(--m-bleu-nuit); }
.m-essai .m-essai__titre { font-stretch: 75%; font-style: italic; font-weight: 850; font-size: 1.6rem; text-transform: uppercase; line-height: 1; }
.m-bloc--salle .m-essai { background: #FFFFFF; }

.m-lieu { margin-top: 64px; }
.m-lieu p { margin: 0 0 20px; font-size: 1.1rem; }

/* Prochains matchs */
.m-matchs { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px 48px; }
.m-matchs__equipe { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-stretch: 75%; font-style: italic; font-weight: 850; font-size: 1.4rem; text-transform: uppercase; margin: 0; padding-bottom: 8px; border-bottom: 3px solid var(--m-bleu-nuit); }
.m-matchs__equipe small { font-stretch: 100%; font-style: normal; font-weight: 500; font-size: .9rem; text-transform: none; color: var(--m-texte-doux); }
.m-match { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--m-trait); }
.m-match time { font-stretch: 70%; font-style: italic; font-weight: 850; font-size: 1.15rem; line-height: 1.15; color: var(--m-bleu); text-transform: capitalize; }
.m-match p { margin: 0; line-height: 1.35; color: var(--m-bleu-nuit); font-weight: 600; }
.m-match small { color: var(--m-texte-doux); font-weight: 400; }

.m-lien { display: inline-block; margin: 28px 28px 0 0; font-weight: 700; color: var(--m-bleu-nuit); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; text-decoration-color: var(--m-citron); }

/* Actualités */
.m-actus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 32px; }
.m-actu { text-decoration: none; border-top: 3px solid var(--m-bleu); padding-top: 16px; color: var(--m-bleu-nuit); }
.m-actu time { font-size: .9rem; color: var(--m-texte-doux); }
.m-actu h3 { font-stretch: 100%; font-size: 1.2rem; line-height: 1.3; margin: 6px 0 0; font-weight: 700; }
.m-actu:hover h3 { text-decoration: underline; text-decoration-color: var(--m-citron); text-decoration-thickness: 2px; }

/* Pied de page */
.m-pied { background: var(--m-bleu-nuit); color: #D5DDF3; position: relative; padding: 72px 0 32px; }
.m-pied::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 14px; background: var(--m-hachure-citron); }
.m-pied__grille { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; }
.m-pied h2 { font-size: 1.25rem; color: #FFFFFF; margin: 0 0 14px; }
.m-pied p { margin: 0 0 8px; font-size: .95rem; }
.m-pied a { color: #FFFFFF; }
.m-pied a:hover { color: var(--m-citron); }
.m-pied__bas { grid-column: 1 / -1; border-top: 1px solid rgba(255, 255, 255, .15); padding-top: 20px; font-size: .88rem; color: #9DAAD0 !important; }

/* ============================================================
   6. MOBILE & ACCESSIBILITÉ
   ============================================================ */
@media (max-width: 968px) {
    .m-hero__grille { grid-template-columns: 1fr; padding-top: 40px; padding-bottom: 64px; }
    .m-hero .m-manche { inset: 0 -40% 72% 45%; }
    .m-hero__ecusson { order: -1; justify-self: start; width: 112px; }
    .m-une { grid-template-columns: 1fr; }
    .m-une__bloc, .m-une__bloc--sante { padding: 44px 24px; }
    .m-horaire { grid-template-columns: 1fr; gap: 6px; }
    .m-essai { grid-template-columns: 1fr; gap: 14px; }
    .m-actus, .m-pied__grille { grid-template-columns: 1fr; }
    .m-actus { gap: 28px; }
    .m-bloc { padding: 60px 0; }
    .apv-section--blue::before { width: 60%; opacity: .5; }
    .apv-section--blue .apv-section-title { max-width: 100%; }
}
@media (max-width: 640px) {
    .m-pied__grille { gap: 28px; }
    .m-actions .apv-btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: no-preference) {
    .m-hero .m-manche { animation: m-entree .9s cubic-bezier(.2, .8, .2, 1) both; }
    @keyframes m-entree { from { transform: translateX(8%); opacity: 0; } }
}

/* ============================================================
   7. RETOUCHES DES GABARITS DU PARENT
   Ces gabarits portent beaucoup de styles en ligne ; on les corrige ici
   plutôt que de les dupliquer (la logique reste dans le parent).
   ============================================================ */

/* Titres de section centrés en ligne → alignés à gauche comme le reste */
.apv-section :is(h1, h2)[style*="text-align:center"],
.apv-section .apv-section-title { text-align: left !important; margin-left: 0 !important; }

/* Pastilles en capitales dans les bandeaux (ex. « Saison 2026/2027 ») */
.apv-section--blue .apv-section-title > div[style*="inline-flex"] {
    display: block !important; background: none !important; border: 0 !important; padding: 0 !important;
    color: var(--m-citron) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 1rem !important;
}
/* Compétition : les chiffres du bandeau, alignés à gauche sur un fond plein */
.apv-section--blue div[style*="repeat(4, 1fr)"][style*="max-width:600px"] { margin-left: 0 !important; }
.apv-section--blue div[style*="rgba(255,255,255,0.06)"] { background: var(--m-bleu-nuit) !important; border-radius: 0 !important; }
.apv-section--blue div[style*="text-transform:uppercase"] { text-transform: none !important; letter-spacing: 0 !important; }

/* Icônes emoji décoratives : retirées (le titre suffit) */
.apv-ps-icon,
.apv-card__icon,
.apv-auth__features li > span,
.apv-news-empty__icon { display: none !important; }

/* Actualités sans photo : pas d'emoji géant ; la une prend le motif du maillot, les cartes restent en texte */
.apv-news-featured__media--icon { background: var(--m-bleu) !important; position: relative; }
.apv-news-featured__media--icon::before { content: ""; position: absolute; inset: 0; background: var(--m-hachure-citron); clip-path: polygon(30% 0, 100% 0, 100% 45%, 65% 45%, 40% 100%, 0 100%, 0 70%); }
.apv-news-featured__media--icon span { display: none; }
.apv-news-card__media--icon { display: none !important; }
.apv-news-card, .apv-news-featured { border-radius: 0 !important; box-shadow: none !important; border-top: 3px solid var(--m-bleu) !important; }
.apv-news-card:hover, .apv-news-featured:hover { transform: none !important; box-shadow: none !important; }
.apv-news-readmore span { display: none; }

/* Connexion / inscription */
.apv-auth { min-height: calc(100vh - var(--header-height)); background: var(--m-bleu); }
.apv-auth::before { background: var(--m-hachure-citron); top: 0; right: 0; width: 42%; height: 100%; clip-path: polygon(40% 0, 100% 0, 100% 40%, 70% 40%, 42% 100%, 0 100%); opacity: .8; }
.apv-auth::after { display: none; }
.apv-auth__brand { font-size: 0 !important; background: none !important; border: 0 !important; padding: 0 !important; }
.apv-auth__brand::after { content: "Espace membre"; font-size: 1rem; color: var(--m-citron); text-transform: none; letter-spacing: 0; }
.apv-auth__card { border-radius: 4px !important; box-shadow: 0 20px 50px rgba(10, 22, 60, .35) !important; }
.apv-auth__logo { height: 76px; background: url("assets/images/ecusson-maillot.png") center / 76px no-repeat; }
.apv-auth__logo > * { display: none !important; }
.apv-auth__features li { padding-left: 18px; position: relative; }
.apv-auth__features li::before { content: ""; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; background: var(--m-citron); }

/* Chevron plus discret dans les bandeaux de page, et encore plus sur une actu (titre centré long) */
.apv-section--blue::before { width: 36%; }
.apv-news-single-hero::before { width: 20%; opacity: .7; }
.apv-section--blue .apv-news-type { background: var(--m-citron) !important; color: var(--m-bleu-nuit) !important; }
.apv-news-single__back, .apv-news-single__date { color: #E3E9FA !important; }
/* Mon espace / progression : le bandeau porte des chiffres à droite, pas de chevron dessous */
body[class*="page-mon-espace"] .apv-section--blue::before,
body[class*="page-progression"] .apv-section--blue::before { display: none; }
/* Mobile : le texte des bandeaux prend toute la largeur → chevron réduit à une bande en haut à droite */
@media (max-width: 968px) {
    .apv-section--blue::before { width: 55%; height: 28px; bottom: auto; clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%); opacity: .9; }
    .m-hero .m-manche { inset: 0 -40% 80% 55%; }
}
/* Emplacements d'icônes vidés par le filtre anti-emoji */
.apv-launcher__icon:empty { display: none; }

/* ============================================================
   8. BOUTONS QUI N'AVAIENT QU'UN EMOJI (retiré par le filtre) : libellé texte
   ============================================================ */
button.apv-self-btn { width: auto; min-width: 34px; padding: 0 10px; white-space: nowrap; flex-shrink: 0; font-size: .78rem; font-weight: 700; color: var(--m-bleu-nuit); border-radius: 3px; }
button.apv-self-btn[data-statut="en_cours"]::before { content: "En cours"; }
button.apv-self-btn[data-statut="pret"]::before { content: "Prêt"; }
a[title="WhatsApp"][href^="https://wa.me/"] { width: auto !important; height: 30px !important; padding: 0 10px; border-radius: 3px !important; background: #25D366 !important; color: #FFFFFF !important; font-size: .78rem !important; font-weight: 700; }
a[title="WhatsApp"][href^="https://wa.me/"]::before { content: "WhatsApp"; }

/* ============================================================
   9. ÉCOLE DE PING
   ============================================================ */
.m-une__bloc--ecole .apv-btn--secondary { color: #FFFFFF; border-color: #FFFFFF; }
.m-une__bloc--ecole .apv-btn--secondary:hover { background: #FFFFFF; color: var(--m-bleu-nuit); }
.apv-edp-palier { border-radius: 0; background: var(--m-salle); }
.apv-edp-palier strong { font-stretch: 80%; font-weight: 850; font-size: 1.15rem; }
.apv-edp-bloc h3 { font-size: 1.35rem; }
.apv-edp-horaire { font-stretch: 72%; font-style: italic; font-weight: 850; font-size: 1.6rem !important; }
.apv-edp-cta h2 { text-align: center !important; }

/* En-tête à 6 rubriques : resserré sur les écrans moyens (au-dessus du menu mobile à 968 px) */
@media (min-width: 969px) and (max-width: 1180px) {
    .m-entete__club span { display: none; }
    .apv-nav__link { padding: 8px 9px; font-size: .88rem; }
    .m-membre { margin-left: 6px; padding: 0 12px; font-size: .86rem; }
}

/* Sous-menu (ex. Horaires & essai > Tarifs) */
.apv-nav__submenu { box-shadow: 0 12px 28px rgba(19, 38, 92, .22); padding: 6px 0; }
.apv-nav__subitem { font-weight: 600; padding: 10px 18px; }
.apv-nav__subitem:hover, .apv-nav__subitem.active { background: var(--m-salle); color: var(--m-bleu-nuit); }
.apv-nav__subitem--parent-link { color: var(--m-bleu); border-bottom-color: var(--m-trait); }
.apv-nav__subitem--parent-link:hover { background: var(--m-bleu); color: #FFFFFF; }
.apv-nav__caret { color: var(--m-citron); opacity: 1; }
@media (max-width: 968px) {
    .apv-nav__submenu { box-shadow: none; padding: 0 0 8px 16px; background: transparent; border-top: 0; }
    .apv-nav__subitem, .apv-nav__subitem--parent-link { color: #FFFFFF; font-size: 1.05rem; font-weight: 600; padding: 10px 8px; border-bottom: 0; background: transparent; }
    .apv-nav__subitem:hover, .apv-nav__subitem.active { background: transparent; color: var(--m-citron); }
}

.m-pied__communes { margin-top: 14px !important; font-size: .85rem !important; color: #9DAAD0; max-width: 36ch; }
