/**
 * OpenFit — styles de pages consolidés.
 *
 * Contenu extrait des blocs <style> qui étaient embarqués dans les templates PHP.
 * Chaque bloc est SCOPÉ sous la classe body du template (`body.page-template-…`,
 * `body.single-activity`, …) pour reproduire exactement l'isolation que procurait
 * le <style> inline et éviter les collisions inter-pages (sélecteurs partagés
 * `.ofa-page`, `.ofa-btn`, `:root`, `.slot`… définis différemment selon la page).
 *
 * Chargé en DERNIER (priorité 10000, après tailwind-theme.css) pour préserver la
 * cascade : le <style> inline gagnait sur les feuilles externes ; ce fichier aussi.
 *
 * ⚠️ Ne pas éditer à la main par bloc sans comprendre le scoping. Voir CLAUDE.md §1.
 */

/* ===== dashboard-adherent/nav.php ===== */
.material-symbols-outlined {
            font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
            vertical-align: middle;
        }
        .hide-scrollbar::-webkit-scrollbar { display: none; }
        .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* ===== dashboard-adherent/page-dashboard.php ===== */
body.page-template-dashboard-adherentpage-dashboard-php {--bg: #f6f1e8;
        --surface: rgba(255, 252, 247, 0.86);
        --surface-strong: #fffaf3;
        --card: #ffffff;
        --text: #1f2933;
        --muted: #667085;
        --line: rgba(31, 41, 51, 0.08);
        --shadow: 0 20px 60px rgba(39, 32, 24, 0.12);
        --accent: #d96b4d;
        --accent-deep: #b85035;
        --accent-soft: #fde6de;
        --sage: #7d9b87;
        --sage-soft: #e4efe7;
        --gold: #e5b95c;
        --danger-soft: #fce8e6;
        --danger-text: #9f3a2b;
        --radius-xl: 28px;
        --radius-lg: 20px;
        --radius-md: 14px;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page * {box-sizing: border-box;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page {font-family: 'Inter', system-ui, -apple-system, sans-serif;
        color: var(--text);
        background:
            radial-gradient(circle at top left, rgba(217,107,77,0.15), transparent(28%)),
            radial-gradient(circle at right 20%, rgba(125,155,135,0.16), transparent 24%),
            linear-gradient(180deg, #f9f4ec 0%, #f3ede4 100%);
        min-height: 100vh;
        padding-bottom: 60px;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page h1,
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page h2,
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page h3,
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page h4 {margin: 0; font-weight: 600; line-height: 1.1; font-family: 'Fraunces', Georgia, serif;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page p {margin: 0; color: var(--muted);}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-page a {color: inherit; text-decoration: none;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-shell {width: min(calc(100% - 32px), 1280px);
        margin: 24px auto 0;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-hero-title {padding: 2rem 0;
        text-align: center;
        margin-bottom: 1rem;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-hero-title h1 {font-size: clamp(1.6rem, 4vw + .4rem, 2.6rem);
        display: flex;
        flex-wrap: wrap; /* « Bonjour, {prénom} » cassait en escalier à 320px sans retour à la ligne propre */
        align-items: center;
        justify-content: center;
        gap: 1rem;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-hero-title h1 span {font-weight: 400;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-hero-title p {max-width: 50ch;
        margin: 0.5rem auto 0;
        font-size: 1.05rem;
        line-height: 1.6;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-stat-grid {display: grid;
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
        gap: 1.5rem;
        margin-bottom: 3rem;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-stat-card {background: linear-gradient(160deg, #fff 0%, #fdf8f4 100%);
        border: 1px solid rgba(217,107,77,0.08);
        border-radius: var(--radius-lg);
        padding: 1.5rem;
        box-shadow: 0 2px 8px rgba(39,32,24,0.05);
        transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-stat-card:hover {transform: translateY(-4px);
        box-shadow: 0 12px 32px rgba(39,32,24,0.1);
        border-color: rgba(217,107,77,0.2);}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-stat-card .stat-label {font-size: 0.9rem;
        color: var(--muted);
        margin-bottom: 0.5rem;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-stat-card .stat-number {font-size: 2.5rem;
        font-weight: 700;
        font-family: 'Fraunces', serif;
        color: var(--text);
        line-height: 1.1;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-stat-card .stat-pack {font-size: 1.5rem;
        font-weight: 600;
        font-family: 'Fraunces', serif;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-stat-card.credits .stat-number {color: var(--accent-deep);}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-section-head {margin-bottom: 1.5rem;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-section-head h2 {font-size: 1.8rem;
        display: flex;
        align-items: center;
        gap: 0.75rem;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-section-head h2 i {color: var(--accent);}
body.page-template-dashboard-adherentpage-dashboard-php .slots {display: grid; gap: 14px; margin-bottom: 2rem;}
body.page-template-dashboard-adherentpage-dashboard-php .slot {display: grid; grid-template-columns: auto 1fr auto; gap: 18px; padding: 18px; border-radius: var(--radius-lg); background: white; border: 1px solid var(--line); align-items: center; background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.08); box-shadow: 0 2px 10px rgba(39,32,24,0.04); transition: all 0.2s ease;}
body.page-template-dashboard-adherentpage-dashboard-php .slot:hover {transform: translateY(-2px); box-shadow: 0 8px 28px rgba(39,32,24,0.1); border-color: rgba(217,107,77,0.2);}
body.page-template-dashboard-adherentpage-dashboard-php .slot-time {min-width: 90px; text-align: center; padding: 14px 12px; border-radius: 18px; background: linear-gradient(145deg, #fde6de, #fff5f0); color: var(--accent-deep); box-shadow: 0 2px 8px rgba(217,107,77,0.12);}
body.page-template-dashboard-adherentpage-dashboard-php .slot-time strong {display: block; font-size: 1.4rem; font-family: 'Fraunces', serif;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-time span {font-size: 0.85rem;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-title {display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 8px;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-title h3 {font-size: 1.2rem;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-title h3 a:hover {color: var(--accent);}
body.page-template-dashboard-adherentpage-dashboard-php .slot-badge {padding: 7px 10px; border-radius: 999px; font-size: 0.82rem; font-weight: 600; display: inline-flex; align-items: center; gap: 6px;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-badge.open {background: var(--sage-soft); color: #446c52;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-badge.low {background: #fff3d8; color: #8d6403;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-badge.full {background: var(--danger-soft); color: var(--danger-text);}
body.page-template-dashboard-adherentpage-dashboard-php .slot-meta {display: flex; gap: 14px; flex-wrap: wrap; color: var(--muted); font-size: 0.95rem;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-meta span {display: flex; align-items: center; gap: 6px;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-panel {background: var(--surface); border: 1px solid rgba(255,255,255,0.5); border-radius: var(--radius-xl); box-shadow: var(--shadow); backdrop-filter: blur(12px); overflow: hidden;}
body.page-template-dashboard-adherentpage-dashboard-php .ofa-empty-state {text-align: center; padding: 50px 40px;}
body.page-template-dashboard-adherentpage-dashboard-php a.ofa-btn,
body.page-template-dashboard-adherentpage-dashboard-php a.soft-btn {border: 0; border-radius: 999px; padding: 12px 20px; font: inherit; cursor: pointer; transition: all 0.2s ease; font-size: 0.95rem; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; justify-content: center;}
body.page-template-dashboard-adherentpage-dashboard-php a.ofa-btn {background: var(--accent-deep, #b85035); color: white; box-shadow: 0 16px 30px rgba(185,80,53,0.25);}
body.page-template-dashboard-adherentpage-dashboard-php a.soft-btn {background: var(--accent-soft); color: var(--accent-deep);}
body.page-template-dashboard-adherentpage-dashboard-php a.ofa-btn:hover,
body.page-template-dashboard-adherentpage-dashboard-php a.soft-btn:hover {transform: translateY(-2px);}
body.page-template-dashboard-adherentpage-dashboard-php .reveal {opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease;}
body.page-template-dashboard-adherentpage-dashboard-php .reveal.visible {opacity: 1; transform: translateY(0);}
body.page-template-dashboard-adherentpage-dashboard-php .d-1 {transition-delay: 0.1s;}
body.page-template-dashboard-adherentpage-dashboard-php .d-2 {transition-delay: 0.2s;}
body.page-template-dashboard-adherentpage-dashboard-php .d-3 {transition-delay: 0.3s;}
body.page-template-dashboard-adherentpage-dashboard-php .d-4 {transition-delay: 0.4s;}
/* Très petits écrans : les cartes réservation passent en pile (même traitement que
   mes-checkins à 720px) — sinon la colonne action déborde du viewport (~355px à 320). */
@media (max-width: 720px) {
body.page-template-dashboard-adherentpage-dashboard-php .slot {grid-template-columns: 1fr;
        gap: 14px;
        text-align: center;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-time {display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px 14px;
        width: 100%;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-title,
body.page-template-dashboard-adherentpage-dashboard-php .slot-meta {justify-content: center;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-action {text-align: center;}
body.page-template-dashboard-adherentpage-dashboard-php .slot-action .soft-btn {width: 100%; justify-content: center;}
}

/* ===== dashboard-adherent/page-mes-checkins.php ===== */
body.page-template-dashboard-adherentpage-mes-checkins-php {--bg: #f6f1e8;
        --surface: rgba(255, 252, 247, 0.86);
        --surface-strong: #fffaf3;
        --card: #ffffff;
        --text: #1f2933;
        --muted: #667085;
        --line: rgba(31, 41, 51, 0.08);
        --shadow: 0 20px 60px rgba(39, 32, 24, 0.12);
        --accent: #d96b4d;
        --accent-deep: #b85035;
        --accent-soft: #fde6de;
        --sage: #7d9b87;
        --sage-soft: #e4efe7;
        --gold: #e5b95c;
        --danger-soft: #fce8e6;
        --danger-text: #9f3a2b;
        --radius-xl: 28px;
        --radius-lg: 20px;
        --radius-md: 14px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-page * {box-sizing: border-box;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-page {font-family: 'Inter', system-ui, -apple-system, sans-serif;
        color: var(--text);
        
        min-height: 100vh;
        padding-bottom: 60px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-page h1,
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-page h2,
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-page h3,
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-page h4 {margin: 0; font-weight: 600; line-height: 1.1; font-family: 'Fraunces', Georgia, serif;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-page a {color: inherit; text-decoration: none;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-shell {width: min(calc(100% - 32px), 1280px);
        margin: 24px auto 0;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-btn,
body.page-template-dashboard-adherentpage-mes-checkins-php .soft-btn,
body.page-template-dashboard-adherentpage-mes-checkins-php .ghost-btn,
body.page-template-dashboard-adherentpage-mes-checkins-php .outline-btn {border: 0;
        border-radius: 999px;
        padding: 12px 20px;
        font: inherit;
        cursor: pointer;
        transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
        font-size: 0.95rem;
        font-weight: 600;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        justify-content: center;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-btn {background: var(--accent-deep, #b85035);
        color: white;
        box-shadow: 0 16px 30px rgba(185,80,53,0.25);}
body.page-template-dashboard-adherentpage-mes-checkins-php .soft-btn {background: var(--accent-soft);
        color: var(--accent-deep);}
body.page-template-dashboard-adherentpage-mes-checkins-php .ghost-btn {background: rgba(255,255,255,0.78);
        color: var(--text);
        border: 1px solid var(--line);}
body.page-template-dashboard-adherentpage-mes-checkins-php .outline-btn {background: transparent;
        color: var(--text);
        border: 1px solid var(--line);}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-btn:hover,
body.page-template-dashboard-adherentpage-mes-checkins-php .soft-btn:hover,
body.page-template-dashboard-adherentpage-mes-checkins-php .ghost-btn:hover,
body.page-template-dashboard-adherentpage-mes-checkins-php .outline-btn:hover {transform: translateY(-2px);}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-btn:disabled,
body.page-template-dashboard-adherentpage-mes-checkins-php .soft-btn:disabled,
body.page-template-dashboard-adherentpage-mes-checkins-php .ghost-btn:disabled,
body.page-template-dashboard-adherentpage-mes-checkins-php .outline-btn:disabled {opacity: 0.5;
        cursor: not-allowed;
        transform: none;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-panel {background: var(--surface);
        border: 1px solid rgba(255,255,255,0.5);
        border-radius: var(--radius-xl);
        box-shadow: var(--shadow);
        backdrop-filter: blur(12px);
        overflow: hidden;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-empty-state {text-align: center; padding: 60px 40px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slots {display: grid;
        gap: 14px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot {display: grid;
        grid-template-columns: auto 1fr auto;
        gap: 18px;
        padding: 18px;
        border-radius: var(--radius-lg);
        background: white;
        border: 1px solid var(--line);
        align-items: center;
        background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%);
        border: 1px solid rgba(217,107,77,0.08);
        box-shadow: 0 2px 10px rgba(39,32,24,0.04);
        transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot:hover {transform: translateY(-2px); box-shadow: 0 8px 28px rgba(39,32,24,0.1); border-color: rgba(217,107,77,0.2);}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-time {min-width: 90px;
        text-align: center;
        padding: 14px 12px;
        border-radius: 18px;
        background: linear-gradient(145deg, #fde6de, #fff5f0);
        color: var(--accent-deep);
        box-shadow: 0 2px 8px rgba(217,107,77,0.12);}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-time strong {display: block; font-size: 1.4rem; font-family: 'Fraunces', serif;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-time span {font-size: 0.85rem;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-title {display: flex;
        gap: 12px;
        align-items: center;
        flex-wrap: wrap;
        margin-bottom: 8px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-title h3 {font-size: 1.2rem;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-title h3 a:hover {color: var(--accent);}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-badge {padding: 7px 10px;
        border-radius: 999px;
        font-size: 0.82rem;
        font-weight: 600;
        display: inline-flex;
        align-items: center;
        gap: 6px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-badge.open {background: var(--sage-soft); color: #446c52;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-badge.low {background: #fff3d8; color: #8d6403;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-badge.full {background: var(--danger-soft); color: var(--danger-text);}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-meta {display: flex;
        gap: 14px;
        flex-wrap: wrap;
        color: var(--muted);
        font-size: 0.95rem;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-meta span {display: flex; align-items: center; gap: 6px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-action {display: grid;
        gap: 8px;
        text-align: right;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-past {opacity: 0.7; 
        background: linear-gradient(160deg, #f9f9f9 0%, #f1f1f1 100%);}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-past:hover {transform: none; 
        box-shadow: 0 2px 10px rgba(39,32,24,0.04); 
        border-color: rgba(217,107,77,0.08);}
body.page-template-dashboard-adherentpage-mes-checkins-php .outline-btn.is-danger {color: var(--danger-text) !important;
        border-color: var(--danger-soft) !important;}
body.page-template-dashboard-adherentpage-mes-checkins-php .outline-btn.is-danger:hover {background: var(--danger-soft) !important;
        color: var(--danger-text) !important;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-alert {padding: 14px 18px;
        border-radius: var(--radius-md);
        margin-bottom: 18px;
        font-size: 0.95rem;
        display: flex;
        gap: 10px;
        align-items: flex-start;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-alert.success {background: #e6f7ef; border: 1px solid #a3d9bc; color: #1a6b42;}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-alert.error {background: var(--danger-soft); border: 1px solid #f5b4ac; color: var(--danger-text);}
body.page-template-dashboard-adherentpage-mes-checkins-php .ofa-alert i {flex-shrink: 0; margin-top: 2px;}
body.page-template-dashboard-adherentpage-mes-checkins-php .reveal {opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.6s ease, transform 0.6s ease;}
body.page-template-dashboard-adherentpage-mes-checkins-php .reveal.visible {opacity: 1;
        transform: translateY(0);}
@media (max-width: 720px) {
body.page-template-dashboard-adherentpage-mes-checkins-php .slot {grid-template-columns: 1fr;
            gap: 14px;
            text-align: center;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-time {display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 10px 14px;
            width: 100%;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-time strong,
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-time span {display: inline; font-size: 1.1rem;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-title,
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-meta {justify-content: center;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-action {text-align: center;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-action form,
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-action .soft-btn {width: 100%;}
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-action button,
body.page-template-dashboard-adherentpage-mes-checkins-php .slot-action .soft-btn {width: 100%; justify-content: center;}
}

/* ===== dashboard-adherent/page-mes-activites.php ===== */
body.page-template-dashboard-adherentpage-mes-activites-php .favorite-btn.is-favorite .material-symbols-outlined {font-variation-settings: 'FILL' 1;
        color: rgb(184 80 53 / var(--tw-bg-opacity, 1));}

/* ===== dashboard-adherent/page-catalogue-advanced.php ===== */
body.page-template-dashboard-adherentpage-catalogue-advanced-php .favorite-btn.is-favorite .material-symbols-outlined {font-variation-settings: 'FILL' 1;
        color: rgb(184 80 53 / var(--tw-bg-opacity, 1));}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination {display: flex; justify-content: center; margin: 36px 0 12px;}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination ul.page-numbers {display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
        list-style: none; margin: 0; padding: 0;
        background: transparent;
        border: none;}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination ul.page-numbers li {margin: 0;}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination .page-numbers {display: flex; align-items: center; justify-content: center;
        min-width: 42px; height: 42px; padding: 0 14px; box-sizing: border-box;
        border-radius: 12px; border: 1px solid var(--border, #e6e0d8);
        background: #fff; color: var(--ink, #1f1a14);
        font-weight: 600; font-size: 0.92rem; line-height: 1; text-decoration: none;
        transition: background .15s, border-color .15s, color .15s, box-shadow .15s;}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination a.page-numbers:hover {border-color: var(--accent, #c2410c);
        color: var(--accent, #c2410c);
        box-shadow: 0 2px 8px rgba(194, 65, 12, .12);}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination .page-numbers.current {background: var(--accent, #c2410c);
        border-color: var(--accent, #c2410c);
        color: #fff;}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination .page-numbers.dots {border-color: transparent; background: transparent; min-width: 24px; padding: 0;
        color: var(--muted, #6b6257); cursor: default;}
@media (max-width: 480px) {
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-pagination .page-numbers {min-width: 38px; height: 38px; padding: 0 10px; font-size: 0.85rem;}
}

/* ===== Cartes studio du slider « Studios » (sous la carte) — affichage soigné =====
   (override du bloc « SLIDER HARMONIZATION » d'openfit-main qui force des !important) */
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card {
    min-width: 230px !important; max-width: 230px !important;
    background: #fff !important;
    border: 1px solid rgba(31,41,51,.08) !important;
    border-radius: 16px !important; padding: 0 !important; overflow: hidden !important;
    box-shadow: 0 6px 20px rgba(39,32,24,.08) !important;
    transition: transform .2s ease, box-shadow .2s ease;
    cursor: pointer; scroll-snap-align: start;
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card:hover {
    transform: translateY(-3px); box-shadow: 0 14px 30px rgba(39,32,24,.16) !important;
    border-color: rgba(217,107,77,.38) !important;
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card.active {
    border-color: var(--accent, #b85035) !important;
    box-shadow: 0 0 0 2px var(--accent, #b85035), 0 10px 26px rgba(39,32,24,.14) !important;
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card-image {
    width: 100% !important; height: 132px !important; object-fit: cover !important;
    display: block !important; margin: 0 !important; border-radius: 0 !important;
    background: linear-gradient(135deg, #e8e2d8, #f4ede2) !important; color: rgba(0,0,0,.3);
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card-title {
    font-family: 'Fraunces', Georgia, serif; font-weight: 600; font-size: 1.05rem;
    color: var(--text, #1f2933); margin: 0; padding: 12px 14px 0; line-height: 1.25;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card-info {
    padding: 5px 14px 0; margin: 0; font-size: .85rem; color: var(--muted, #667085);
    display: flex; align-items: center; gap: 6px;
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card-activity-count {
    margin: 9px 14px 0 !important; display: inline-block;
    background: var(--accent-soft, #fde6de) !important; color: var(--accent-deep, #b85035) !important;
    padding: 3px 11px !important; border-radius: 999px !important; font-size: .72rem; font-weight: 700;
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card-btn {
    margin: 12px 14px 14px !important; width: calc(100% - 28px) !important;
    display: inline-flex !important; align-items: center; justify-content: center; gap: 7px;
    background: var(--accent-deep, #b85035) !important;
    color: #fff !important; border: 0 !important; border-radius: 10px !important; padding: 10px 14px !important;
    font-size: .9rem; font-weight: 700; cursor: pointer;
    box-shadow: 0 8px 18px rgba(185,80,53,.25) !important;
}
body.page-template-dashboard-adherentpage-catalogue-advanced-php .partner-card-btn:hover {
    filter: brightness(0.93); transform: translateY(-1px);
}

/* Filtres : barre cliquable inline après le hero (mobile) ; panneau toujours visible en desktop.
   Partagé entre le catalogue ET la page salles (mêmes classes .ofa-filter-*). */
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-hero-actions .ofa-filter-toggle,
body.page-template-page-salles-listing-php .ofa-hero-actions .ofa-filter-toggle { display: none; }
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-filter-bar,
body.page-template-page-salles-listing-php .ofa-filter-bar { display: none; }
@media (max-width: 767.98px) {
    /* On masque le bloc stats du hero sur mobile */
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-hero-stats,
    body.page-template-page-salles-listing-php .ofa-hero-stats { display: none; }
    /* Barre « Filtres » cliquable (label + icône) */
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-filter-bar,
    body.page-template-page-salles-listing-php .ofa-filter-bar {
        display: flex; align-items: center; justify-content: flex-start; gap: 10px;
        width: 100%; margin: 0 0 12px;
        background: var(--surface, #fffaf3); border: 1px solid var(--line, rgba(31,41,51,.1));
        border-radius: var(--radius-md, 14px);
        padding: 14px 18px; font: inherit; font-size: 1rem; font-weight: 700;
        color: var(--text, #15151a); cursor: pointer; text-align: left;
    }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-filter-bar-label,
    body.page-template-page-salles-listing-php .ofa-filter-bar-label {
        display: inline-flex; align-items: center; gap: 10px;
    }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-filter-bar-label i,
    body.page-template-page-salles-listing-php .ofa-filter-bar-label i { color: var(--accent, #b85035); }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-filter-bar-count,
    body.page-template-page-salles-listing-php .ofa-filter-bar-count {
        background: var(--accent, #b85035); color: #fff;
        border-radius: 999px; min-width: 20px; height: 20px;
        display: inline-flex; align-items: center; justify-content: center;
        font-size: .75rem; padding: 0 6px;
    }
    /* Panneau replié par défaut, déroulé via la barre */
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-filter-panel,
    body.page-template-page-salles-listing-php .ofa-filter-panel { display: none; }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-filter-panel.is-open,
    body.page-template-page-salles-listing-php .ofa-filter-panel.is-open { display: block; }
}

/* Catalogue mobile : bouton flottant « Voir la carte / liste » + carte plein écran */
body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-mobile-map-toggle { display: none; }
@media (max-width: 767.98px) {
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-mobile-map-toggle {
        align-items: center; gap: 9px;
        position: fixed; left: 50%; transform: translateX(-50%);
        bottom: calc(20px + env(safe-area-inset-bottom, 0px));
        z-index: 1001;
        background: #1f2933; color: #fff; border: 0; border-radius: 999px;
        padding: 13px 24px; font: inherit; font-weight: 700; font-size: .95rem;
        box-shadow: 0 12px 30px rgba(0,0,0,.32); cursor: pointer;
    }
    /* Visible uniquement quand le bloc résultats est à l'écran, ou en mode carte (pour revenir) */
    body.page-template-dashboard-adherentpage-catalogue-advanced-php.ofa-results-inview .ofa-mobile-map-toggle { display: inline-flex; }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php .ofa-mobile-map-toggle i { font-size: 1rem; }
    /* Si la bottom tab bar adhérent est présente, on remonte le bouton au-dessus */
    body.page-template-dashboard-adherentpage-catalogue-advanced-php:has(.ofa-tabbar) .ofa-mobile-map-toggle {
        bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    }
    /* Vue carte : on masque la liste ; la carte reste DANS LE FLUX (on peut scroller vers les studios + footer) */
    body.page-template-dashboard-adherentpage-catalogue-advanced-php #discovery-layout.map-active .ofa-results-column { display: none !important; }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php #discovery-layout.map-active #map-view .ofa-panel {
        padding: 0 !important; border-radius: 0;
    }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php #discovery-layout.map-active #map-view .ofa-panel > h3 { display: none; }
    body.page-template-dashboard-adherentpage-catalogue-advanced-php #discovery-layout.map-active #activities-map {
        height: 50vh !important; height: 50dvh !important;
        min-height: 50vh !important; min-height: 50dvh !important;
        width: 100% !important; border-radius: 0 !important;
    }
}

/* Carte studio ancrée en bas (en-tête studio + slider d'activités) — identique mobile ET desktop */
    .ofa-map-card {
        position: absolute; left: 50%; transform: translateX(-50%); bottom: 14px;
        width: calc(100% - 20px); max-width: 440px; z-index: 1000;
        display: flex; flex-direction: column;
        background: #1f2933; color: #fff;
        border-radius: 16px; overflow: hidden;
        box-shadow: 0 14px 38px rgba(0,0,0,.45);
        max-height: calc(100% - 28px);
    }
    .ofa-map-card-head {
        display: flex; align-items: center; justify-content: space-between; gap: 8px;
        padding: 11px 8px 9px 14px; flex: 0 0 auto;
        border-bottom: 1px solid rgba(255,255,255,.1);
    }
    .ofa-map-card-head h3 {
        font-size: 1rem; font-weight: 700; color: #fff; margin: 0;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    /* Bloc titre + lien « Voir la salle » (composant OFMapCard partagé) */
    .ofa-map-card-headtxt {
        min-width: 0; flex: 1 1 auto;
        display: flex; flex-direction: column; gap: 1px;
    }
    .ofa-map-card-salle-link {
        font-size: .78rem; color: rgba(255,255,255,.72); text-decoration: none;
        display: inline-flex; align-items: center; gap: 4px; align-self: flex-start;
        max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .ofa-map-card-salle-link:hover { color: #fff; text-decoration: underline; }
    .ofa-map-card-salle-link .fas { font-size: .66rem; }
    .ofa-map-card-close {
        flex: 0 0 auto; width: 30px; height: 30px;
        background: transparent; border: 0; color: rgba(255,255,255,.85);
        font-size: 1rem; cursor: pointer;
        display: flex; align-items: center; justify-content: center;
    }
    .ofa-map-card-slider {
        position: relative; flex: 1 1 auto; display: flex; min-height: 0;
    }
    .ofa-map-card-list {
        display: flex; flex: 1 1 auto; width: 100%;
        overflow-x: auto; overflow-y: hidden;
        scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
        scrollbar-width: none; scroll-behavior: smooth;
    }
    .ofa-map-card-list::-webkit-scrollbar { display: none; }
    /* Flèches de navigation (utiles surtout en desktop, pas de swipe à la souris) */
    .ofa-map-card-nav {
        position: absolute; top: 50%; transform: translateY(-50%);
        width: 34px; height: 34px; border-radius: 50%; padding: 0;
        background: rgba(31,41,51,.82); color: #fff; border: 1px solid rgba(255,255,255,.28);
        display: flex; align-items: center; justify-content: center;
        cursor: pointer; z-index: 5; box-shadow: 0 4px 12px rgba(0,0,0,.35);
        transition: background .15s ease, transform .15s ease;
    }
    .ofa-map-card-nav:hover { background: var(--accent, #b85035); }
    .ofa-map-card-nav:active { transform: translateY(-50%) scale(.92); }
    .ofa-map-card-nav .material-symbols-outlined { font-size: 22px; line-height: 1; }
    .ofa-map-card-prev { left: 6px; }
    .ofa-map-card-next { right: 6px; }
    .ofa-map-card-item {
        flex: 0 0 100%; scroll-snap-align: center; min-height: 100px;
        display: flex; align-items: stretch; text-decoration: none; color: inherit;
    }
    .ofa-map-card-item + .ofa-map-card-item {
        border-left: 1px solid rgba(255,255,255,.08);
    }
    .ofa-map-card-thumb {
        flex: 0 0 100px; width: 100px;
        background: #2a3640; display: flex; align-items: center; justify-content: center;
        color: rgba(255,255,255,.4); font-size: 1.3rem;
    }
    .ofa-map-card-thumb img {
        width: 100%; height: 100%; object-fit: cover; display: block;
    }
    .ofa-map-card-info {
        flex: 1; min-width: 0; padding: 9px 12px;
        display: flex; flex-direction: column; justify-content: center; gap: 2px;
    }
    .ofa-map-card-info h4 {
        font-size: .95rem; font-weight: 600; color: #fff; margin: 0; line-height: 1.2;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .ofa-map-card-cat {
        font-size: .82rem; color: rgba(255,255,255,.7); margin: 0;
    }
    .ofa-map-card-stars {
        display: flex; align-items: center; gap: 3px; font-size: .78rem; color: rgba(255,255,255,.45); margin-top: 1px;
    }
    .ofa-map-card-stars .fas { color: #e5b95c; }
    .ofa-map-card-rev {
        color: rgba(255,255,255,.6); margin-left: 4px; font-size: .76rem;
    }
    .ofa-map-card-loading {
        display: flex; align-items: center; justify-content: center;
        width: 100%; min-height: 92px; color: rgba(255,255,255,.6); font-size: 1.3rem;
    }
    /* Skeleton de chargement (vignette + lignes) dans la carte studio */
    .ofa-mc-skel { pointer-events: none; }
    .ofa-mc-skel-box,
    .ofa-mc-skel-line {
        background: linear-gradient(90deg, rgba(255,255,255,.06), rgba(255,255,255,.17), rgba(255,255,255,.06));
        background-size: 200% 100%;
        animation: ofaMcShimmer 1.3s linear infinite;
        border-radius: 5px;
    }
    .ofa-mc-skel-line {
        display: block; height: 11px; margin: 5px 0;
    }
@keyframes ofaMcShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Popup salle (page-salles-listing) : photo + avis + adresse dans la carte ancrée */
    .ofa-salle-pop-body {
        display: flex; align-items: stretch; text-decoration: none; color: inherit;
    }
    .ofa-salle-pop-thumb {
        flex: 0 0 122px; width: 122px; min-height: 116px;
        background: #2a3640; display: flex; align-items: center; justify-content: center;
        color: rgba(255,255,255,.4); font-size: 1.6rem;
    }
    .ofa-salle-pop-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .ofa-salle-pop-info {
        flex: 1; min-width: 0; padding: 12px 14px;
        display: flex; flex-direction: column; justify-content: center; gap: 8px;
    }
    .ofa-salle-pop-addr {
        margin: 0; font-size: .84rem; line-height: 1.35; color: rgba(255,255,255,.78);
        display: flex; gap: 6px;
    }
    .ofa-salle-pop-addr .fas { color: var(--accent, #d96b4d); margin-top: 2px; flex: 0 0 auto; }
    .ofa-salle-pop-link {
        font-size: .82rem; font-weight: 600; color: #e5b95c;
        display: inline-flex; align-items: center; gap: 6px;
    }

/* ===== page-salles-listing.php : carte alignée sur le catalogue (500px desktop, adaptatif mobile) ===== */
body.page-template-page-salles-listing-php .ofa-mobile-map-toggle { display: none; }
@media (max-width: 767.98px) {
    body.page-template-page-salles-listing-php #salles-map {
        height: 50dvh !important; min-height: 300px !important;
    }
    /* Bouton flottant « Voir la carte / Voir la liste » (comme le catalogue) */
    body.page-template-page-salles-listing-php .ofa-mobile-map-toggle {
        align-items: center; gap: 9px;
        position: fixed; left: 50%; transform: translateX(-50%);
        bottom: calc(20px + env(safe-area-inset-bottom, 0px));
        z-index: 1001;
        background: #1f2933; color: #fff; border: 0; border-radius: 999px;
        padding: 13px 24px; font: inherit; font-weight: 700; font-size: .95rem;
        box-shadow: 0 12px 30px rgba(0,0,0,.32); cursor: pointer;
    }
    body.page-template-page-salles-listing-php.ofa-results-inview .ofa-mobile-map-toggle { display: inline-flex; }
    body.page-template-page-salles-listing-php .ofa-mobile-map-toggle i { font-size: 1rem; }
    /* En mode carte : on masque la liste, la carte prend toute la largeur */
    body.page-template-page-salles-listing-php #discovery-layout.map-active .ofa-results-column { display: none !important; }
    body.page-template-page-salles-listing-php #discovery-layout.map-active #map-view .ofa-panel { padding: 0 !important; }
}
/* Popup salle : carte horizontale (contenu à gauche centré, image à droite, bouton « Voir détail ») */
body.page-template-page-salles-listing-php .ofa-salle-popup {
    display: flex; align-items: center; gap: 12px; width: 290px;
}
body.page-template-page-salles-listing-php .ofa-salle-popup-body { flex: 1 1 auto; min-width: 0; }
body.page-template-page-salles-listing-php .ofa-salle-popup-body h4 {
    font-family: 'Fraunces', Georgia, serif; font-weight: 600; font-size: 1.05rem;
    color: var(--text, #1f2933); margin: 0 0 4px; line-height: 1.2;
}
body.page-template-page-salles-listing-php .ofa-salle-popup-body p {
    font-size: .85rem; color: var(--muted, #667085); margin: 0 0 10px; line-height: 1.35;
}
body.page-template-page-salles-listing-php .ofa-salle-popup-thumb {
    flex: 0 0 86px; width: 86px; height: 86px; border-radius: 12px; overflow: hidden;
    background: linear-gradient(135deg, #e8e2d8, #f4ede2);
}
body.page-template-page-salles-listing-php .ofa-salle-popup-thumb img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}

/* ===== dashboard-adherent/page-billing-transactions.php ===== */
body.page-template-dashboard-adherentpage-billing-transactions-php {--text:    #1f2933;
        --muted:   #667085;
        --line:    rgba(31,41,51,.08);
        --accent:  #d85a30;
        --radius:  12px;
        --radius-sm: 8px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-page {font-family: 'Inter', system-ui, -apple-system, sans-serif;
        color: var(--text);
        background: #f8f7f4;
        min-height: 100vh;
        padding-bottom: 80px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-page-header {margin-bottom: 28px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-page-header h1 {font-size: 1.6rem;
        font-weight: 700;
        font-family: 'Fraunces', Georgia, serif;
        color: var(--text);
        margin-bottom: 4px;
        display: flex;
        align-items: center;
        gap: 10px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-page-header p {font-size: .9rem; color: var(--muted);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metrics {display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 12px;
        margin-bottom: 20px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metric {background: #fff;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 18px 20px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metric__label {font-size: .72rem;
        font-weight: 600;
        letter-spacing: .07em;
        text-transform: uppercase;
        color: var(--muted);
        margin-bottom: 8px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metric__value {font-size: 2rem;
        font-weight: 700;
        font-family: 'Fraunces', Georgia, serif;
        line-height: 1;
        color: var(--accent);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metric__value.neutral {color: var(--text);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metric__sub {font-size: .8rem; color: var(--muted); margin-top: 4px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metric__progress {height: 5px;
        background: var(--line);
        border-radius: 999px;
        margin-top: 10px;
        overflow: hidden;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-metric__progress-fill {height: 100%;
        background: var(--accent);
        border-radius: 999px;
        transition: width .3s ease;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-top-grid {display: grid;
        grid-template-columns: 1fr 240px;
        gap: 16px;
        margin-bottom: 28px;
        align-items: start;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pack-card {background: #fff;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 16px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pack-card__eyebrow {font-size: .72rem;
        font-weight: 600;
        letter-spacing: .07em;
        text-transform: uppercase;
        color: var(--muted);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pack-card__name {font-size: 1.15rem;
        font-weight: 700;
        font-family: 'Fraunces', Georgia, serif;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pack-card__sub {font-size: .82rem; color: var(--muted);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pack-card__divider {height: 1px; background: var(--line);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-btn-change {display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        background: #f3f4f6;
        border: 1px solid var(--line);
        border-radius: 999px;
        padding: 9px 16px;
        font-size: .82rem;
        font-weight: 600;
        color: var(--text);
        text-decoration: none;
        transition: background .15s;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-btn-change:hover {background: #e9eaec;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-card {background: #fff;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        overflow: hidden;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-header {display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 16px 20px;
        border-bottom: 1px solid var(--line);
        flex-wrap: wrap;
        gap: 12px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-header h2 {font-size: 1rem;
        font-weight: 700;
        font-family: 'Fraunces', Georgia, serif;
        display: flex;
        align-items: center;
        gap: 8px;
        flex: 1;
        min-width: 200px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-header h2 i {color: var(--accent);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-actions {display: flex; gap: 8px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-icon-btn {width: 32px;
        height: 32px;
        border-radius: var(--radius-sm);
        border: 1px solid var(--line);
        background: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        color: var(--muted);
        font-size: .85rem;
        transition: background .15s, color .15s;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-icon-btn:hover {background: #f3f4f6; color: var(--text);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-panel {display: none;
        background: #fafafa;
        border-bottom: 1px solid var(--line);
        padding: 16px 20px;
        gap: 12px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-panel.active {display: flex; flex-wrap: wrap; align-items: center;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-group {display: flex;
        gap: 8px;
        align-items: center;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-group label {font-size: .82rem;
        font-weight: 600;
        color: var(--text);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-group select,
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-group input {padding: 6px 10px;
        border: 1px solid var(--line);
        border-radius: var(--radius-sm);
        font-size: .82rem;
        background: #fff;
        color: var(--text);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-group input {min-width: 150px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-btn {padding: 6px 12px;
        background: var(--accent);
        color: #fff;
        border: none;
        border-radius: var(--radius-sm);
        font-size: .82rem;
        font-weight: 600;
        cursor: pointer;
        transition: opacity .15s;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-btn:hover {opacity: 0.9;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-reset {padding: 6px 12px;
        background: transparent;
        color: var(--muted);
        border: 1px solid var(--line);
        border-radius: var(--radius-sm);
        font-size: .82rem;
        cursor: pointer;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-filter-reset:hover {background: #f3f4f6;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-wrap {overflow-x: auto;}
body.page-template-dashboard-adherentpage-billing-transactions-php table.ofb-table {width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        font-size: .875rem;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table thead th {padding: 10px 20px;
        font-size: .72rem;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: var(--muted);
        background: #fafafa;
        border-bottom: 1px solid var(--line);
        text-align: left;
        white-space: nowrap;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table th.col-date {width: 130px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table th.col-act {width: auto;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table th.col-amount {width: 120px; text-align: right;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table th.col-status {width: 130px; text-align: center;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table th.col-pdf {width: 70px; text-align: center;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table tbody tr {border-bottom: 1px solid var(--line);
        transition: background .12s;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table tbody tr:last-child {border-bottom: none;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table tbody tr:hover {background: #fafafa;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table td {padding: 14px 20px;
        vertical-align: middle;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table td.col-date {font-size: .8rem;
        color: var(--muted);
        white-space: nowrap;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table tr.month-sep td {padding: 8px 20px 4px;
        background: #fafafa;
        border-bottom: none;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-month-label {font-size: .68rem;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--muted);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-act {display: flex;
        align-items: center;
        gap: 12px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-act-icon {width: 36px;
        height: 36px;
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: .9rem;
        flex-shrink: 0;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-act-name {font-size: .875rem;
        font-weight: 600;
        color: var(--text);
        line-height: 1.2;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-act-sub {font-size: .78rem;
        color: var(--muted);
        margin-top: 1px;}
body.page-template-dashboard-adherentpage-billing-transactions-php td.col-amount {text-align: right;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-amount {font-size: .95rem;
        font-weight: 700;
        font-family: 'Fraunces', Georgia, serif;
        line-height: 1;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-amount.positive {color: #16a34a;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-amount.negative {color: #dc2626;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-amount.neutral {color: var(--text);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-amount-sub {font-size: .72rem;
        color: var(--muted);
        font-weight: 400;
        margin-top: 2px;}
body.page-template-dashboard-adherentpage-billing-transactions-php td.col-status {text-align: center;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pill {display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 3px 10px;
        border-radius: 999px;
        font-size: .72rem;
        font-weight: 600;
        white-space: nowrap;}
body.page-template-dashboard-adherentpage-billing-transactions-php .s-approved {background: #d1fae5; color: #065f46;}
body.page-template-dashboard-adherentpage-billing-transactions-php .s-pending {background: #fef3c7; color: #92400e;}
body.page-template-dashboard-adherentpage-billing-transactions-php .s-rejected {background: #fee2e2; color: #991b1b;}
body.page-template-dashboard-adherentpage-billing-transactions-php .s-done {background: #dbeafe; color: #1e40af;}
body.page-template-dashboard-adherentpage-billing-transactions-php td.col-pdf {text-align: center;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pdf-btn {display: inline-flex;
        align-items: center;
        gap: 4px;
        font-size: .72rem;
        font-weight: 600;
        color: var(--muted);
        background: #f3f4f6;
        border: 1px solid var(--line);
        border-radius: var(--radius-sm);
        padding: 4px 10px;
        cursor: pointer;
        text-decoration: none;
        transition: background .15s, color .15s;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pdf-btn:hover {background: #e9eaec; color: var(--text);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-footer {display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 20px;
        border-top: 1px solid var(--line);
        background: #fafafa;
        flex-wrap: wrap;
        gap: 12px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-footer-info {font-size: .78rem; color: var(--muted);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-pagination {display: flex; gap: 4px; flex-wrap: wrap;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-page-btn {height: 28px;
        min-width: 28px;
        padding: 0 8px;
        border-radius: var(--radius-sm);
        border: 1px solid var(--line);
        background: #fff;
        font-size: .78rem;
        font-weight: 600;
        cursor: pointer;
        color: var(--text);
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background .12s;
        text-decoration: none;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-page-btn:hover {background: #f3f4f6;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-page-btn.active {background: var(--accent); color: #fff; border-color: var(--accent);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-empty {text-align: center;
        padding: 60px 20px;
        color: var(--muted);}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-empty i {font-size: 2.5rem; display: block; margin-bottom: 12px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-empty p {font-size: .9rem;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-alert {display: flex;
        align-items: center;
        gap: 10px;
        background: #fef3c7;
        border: 1px solid #fde68a;
        border-radius: var(--radius-sm);
        padding: 10px 16px;
        font-size: .82rem;
        color: #92400e;
        margin-bottom: 16px;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-alert i {font-size: 1rem; flex-shrink: 0;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-alert a {color: #92400e; font-weight: 600; text-decoration: underline;}
@media (max-width: 768px) {
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-top-grid {grid-template-columns: 1fr;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-header {flex-direction: column; align-items: flex-start;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-header h2 {flex: none;}
body.page-template-dashboard-adherentpage-billing-transactions-php .ofb-table-actions {width: 100%; justify-content: flex-start;}
}

/* ===== dashboard-adherent/page-register.php ===== */
body.page-template-dashboard-adherentpage-register-php {font-family: 'Inter', sans-serif; background-color: #f9f9ff;}
body.page-template-dashboard-adherentpage-register-php .material-symbols-outlined {font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;}
body.page-template-dashboard-adherentpage-register-php .auth-split-layout,
body.page-template-template-partspage-register-partenaire-php .auth-split-layout {min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr;}
/* Hero collé à l'écran : marque + tagline restent visibles pendant le scroll du formulaire long */
body.page-template-dashboard-adherentpage-register-php .hero-side,
body.page-template-template-partspage-register-partenaire-php .hero-side {position: sticky; top: 0; align-self: start; height: 100vh;}
@media (max-width: 768px) {
body.page-template-dashboard-adherentpage-register-php .auth-split-layout,
body.page-template-template-partspage-register-partenaire-php .auth-split-layout {grid-template-columns: 1fr;}
body.page-template-dashboard-adherentpage-register-php .hero-side,
body.page-template-template-partspage-register-partenaire-php .hero-side {display: none;}
/* Mobile : les paires de champs (Prénom/Nom, Téléphone/Ville) passent en pleine largeur, un champ par ligne */
body.page-template-dashboard-adherentpage-register-php .ofa-field-row,
body.page-template-template-partspage-register-partenaire-php .ofa-field-row {grid-template-columns: 1fr;}
}

/* ===== dashboard-adherent/content-profil-adherent.php ===== */
body.page-template-page-profil-php,
body.page-template-dashboard-partenairepage-checkins-php {--bg: #f6f1e8; --surface: rgba(255,252,247,0.86); --card: #ffffff; --text: #1f2933; --muted: #667085; --line: rgba(31,41,51,0.08); --shadow: 0 20px 60px rgba(39,32,24,0.12); --accent: #d96b4d; --accent-deep: #b85035; --accent-soft: #fde6de; --sage: #7d9b87; --sage-soft: #e4efe7; --danger-soft: #fce8e6; --danger-text: #9f3a2b; --radius-xl: 28px; --radius-lg: 20px; --radius-md: 14px;}
body.page-template-page-profil-php .ofa-page *,
body.page-template-dashboard-partenairepage-checkins-php .ofa-page * {box-sizing: border-box;}
body.page-template-page-profil-php .ofa-page,
body.page-template-dashboard-partenairepage-checkins-php .ofa-page {font-family: 'Inter', sans-serif; color: var(--text); background: linear-gradient(180deg, #f9f4ec 0%, #f3ede4 100%); min-height: 100vh; padding-bottom: 60px;}
body.page-template-page-profil-php .ofa-page h1,
body.page-template-page-profil-php .ofa-page h2,
body.page-template-page-profil-php .ofa-page h3,
body.page-template-dashboard-partenairepage-checkins-php .ofa-page h1,
body.page-template-dashboard-partenairepage-checkins-php .ofa-page h2,
body.page-template-dashboard-partenairepage-checkins-php .ofa-page h3 {font-family: 'Fraunces', serif; font-weight: 600; line-height: 1.2; margin: 0;}
body.page-template-page-profil-php .ofa-page p,
body.page-template-dashboard-partenairepage-checkins-php .ofa-page p {margin: 0; color: var(--muted);}
body.page-template-page-profil-php .ofa-page a,
body.page-template-dashboard-partenairepage-checkins-php .ofa-page a {text-decoration: none;}
body.page-template-page-profil-php .ofa-shell,
body.page-template-dashboard-partenairepage-checkins-php .ofa-shell {width: min(calc(100% - 32px), 1200px); margin: 24px auto 0;}
body.page-template-page-profil-php .ofa-hero-title,
body.page-template-dashboard-partenairepage-checkins-php .ofa-hero-title {text-align: center; padding: 2rem 0; margin-bottom: 2rem;}
body.page-template-page-profil-php .ofa-hero-title h1,
body.page-template-dashboard-partenairepage-checkins-php .ofa-hero-title h1 {font-size: clamp(1.6rem, 4vw + .4rem, 2.6rem); display: flex; align-items: center; justify-content: center; gap: 1rem;}
body.page-template-page-profil-php .ofa-hero-title h1 i,
body.page-template-dashboard-partenairepage-checkins-php .ofa-hero-title h1 i {color: var(--accent);}
body.page-template-page-profil-php .ofa-hero-title p,
body.page-template-dashboard-partenairepage-checkins-php .ofa-hero-title p {max-width: 50ch; margin: 0.5rem auto 0; font-size: 1.05rem; line-height: 1.6;}
body.page-template-page-profil-php .ofa-grid,
body.page-template-dashboard-partenairepage-checkins-php .ofa-grid {display: grid; grid-template-columns: 280px 1fr; gap: 1.75rem; align-items: flex-start;}
body.page-template-page-profil-php .ofa-panel,
body.page-template-dashboard-partenairepage-checkins-php .ofa-panel {background: var(--surface); border: 1px solid rgba(255,255,255,0.5); border-radius: var(--radius-xl); box-shadow: var(--shadow); backdrop-filter: blur(12px); overflow: hidden; margin-bottom: 1.75rem;}
body.page-template-page-profil-php .ofa-panel-inner,
body.page-template-dashboard-partenairepage-checkins-php .ofa-panel-inner {padding: 1.75rem;}
body.page-template-page-profil-php .ofa-panel h2,
body.page-template-dashboard-partenairepage-checkins-php .ofa-panel h2 {font-size: 1.4rem; margin-bottom: 1.5rem; display: flex; align-items: center; gap: .75rem;}
body.page-template-page-profil-php .ofa-panel h2 i,
body.page-template-dashboard-partenairepage-checkins-php .ofa-panel h2 i {color: var(--accent);}
body.page-template-page-profil-php .ofa-profile-card,
body.page-template-dashboard-partenairepage-checkins-php .ofa-profile-card {text-align: center;}
body.page-template-page-profil-php .ofa-avatar,
body.page-template-dashboard-partenairepage-checkins-php .ofa-avatar {position: relative; width: 140px; height: 140px; margin: 0 auto 1rem;}
body.page-template-page-profil-php .ofa-avatar img,
body.page-template-dashboard-partenairepage-checkins-php .ofa-avatar img {width: 100%; height: 100%; border-radius: 50%; object-fit: cover; box-shadow: 0 10px 30px rgba(39,32,24,0.15);}
body.page-template-page-profil-php .ofa-avatar-upload-btn,
body.page-template-dashboard-partenairepage-checkins-php .ofa-avatar-upload-btn {position: absolute; bottom: 5px; right: 5px; background: var(--accent); color: white; border-radius: 50%; width: 36px; height: 36px; border: 2px solid white; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all .2s ease;}
body.page-template-page-profil-php .ofa-avatar-upload-btn:hover,
body.page-template-dashboard-partenairepage-checkins-php .ofa-avatar-upload-btn:hover {transform: scale(1.1); background: var(--accent-deep);}
body.page-template-page-profil-php .ofa-avatar-upload-btn.is-loading,
body.page-template-dashboard-partenairepage-checkins-php .ofa-avatar-upload-btn.is-loading {pointer-events: none; background: var(--muted);}
body.page-template-page-profil-php .ofa-avatar-upload-btn.is-loading i,
body.page-template-dashboard-partenairepage-checkins-php .ofa-avatar-upload-btn.is-loading i {animation: fa-spin 1s linear infinite;}
body.page-template-page-profil-php #profile_picture_input,
body.page-template-dashboard-partenairepage-checkins-php #profile_picture_input {display: none;}
body.page-template-page-profil-php .ofa-form .field,
body.page-template-dashboard-partenairepage-checkins-php .ofa-form .field {margin-bottom: 1.25rem;}
body.page-template-page-profil-php .ofa-form label,
body.page-template-dashboard-partenairepage-checkins-php .ofa-form label {display: block; font-size: .8rem; font-weight: 600; color: var(--muted); margin-bottom: .5rem; text-transform: uppercase; letter-spacing: .05em;}
body.page-template-page-profil-php .ofa-form input,
body.page-template-page-profil-php .ofa-form select,
body.page-template-dashboard-partenairepage-checkins-php .ofa-form input,
body.page-template-dashboard-partenairepage-checkins-php .ofa-form select {width: 100%; height: 48px; border-radius: var(--radius-md); border: 1px solid var(--line); background: white; padding: 0 1rem; font-size: .95rem; transition: all .2s;}
body.page-template-page-profil-php .ofa-form input:focus,
body.page-template-page-profil-php .ofa-form select:focus,
body.page-template-dashboard-partenairepage-checkins-php .ofa-form input:focus,
body.page-template-dashboard-partenairepage-checkins-php .ofa-form select:focus {outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);}
body.page-template-page-profil-php .ofa-form .field-grid,
body.page-template-dashboard-partenairepage-checkins-php .ofa-form .field-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem;}
body.page-template-page-profil-php .ofa-btn,
body.page-template-dashboard-partenairepage-checkins-php .ofa-btn {border: 0; border-radius: 999px; padding: 12px 24px; font: inherit; cursor: pointer; transition: all .2s ease; font-size: .95rem; font-weight: 600; display: inline-flex; align-items: center; gap: .5rem; justify-content: center; background: var(--accent-deep, #b85035); color: white; box-shadow: 0 10px 25px rgba(185,80,53,0.25);}
body.page-template-page-profil-php .ofa-btn:hover,
body.page-template-dashboard-partenairepage-checkins-php .ofa-btn:hover {transform: translateY(-2px); filter: brightness(0.93);}
body.page-template-page-profil-php .ofa-btn:disabled,
body.page-template-dashboard-partenairepage-checkins-php .ofa-btn:disabled {background: var(--muted); cursor: not-allowed; transform: none; filter: none; box-shadow: none;}
body.page-template-page-profil-php .ofa-alert,
body.page-template-dashboard-partenairepage-checkins-php .ofa-alert {padding: 1rem 1.25rem; border-radius: var(--radius-md); margin-bottom: 1.5rem; font-size: .95rem; display: flex; gap: .75rem; align-items: flex-start;}
body.page-template-page-profil-php .ofa-alert.success,
body.page-template-dashboard-partenairepage-checkins-php .ofa-alert.success {background: var(--sage-soft); border: 1px solid var(--sage); color: #2a4b36;}
body.page-template-page-profil-php .ofa-alert.error,
body.page-template-dashboard-partenairepage-checkins-php .ofa-alert.error {background: var(--danger-soft); border: 1px solid #f5b4ac; color: var(--danger-text);}
body.page-template-page-profil-php .ofa-alert i,
body.page-template-dashboard-partenairepage-checkins-php .ofa-alert i {flex-shrink: 0; margin-top: 3px;}
body.page-template-page-profil-php .ofa-alert ul,
body.page-template-dashboard-partenairepage-checkins-php .ofa-alert ul {padding-left: 1.2rem; margin: 0;}
body.page-template-page-profil-php .credits-display,
body.page-template-dashboard-partenairepage-checkins-php .credits-display {text-align: center;}
body.page-template-page-profil-php .credits-display .label,
body.page-template-dashboard-partenairepage-checkins-php .credits-display .label {font-size: .9rem; color: var(--muted);}
body.page-template-page-profil-php .credits-display .amount,
body.page-template-dashboard-partenairepage-checkins-php .credits-display .amount {font-size: 3rem; font-family: 'Fraunces', serif; color: var(--accent-deep); line-height: 1.1; margin: .25rem 0 1rem;}
@media (max-width: 900px) {
body.page-template-page-profil-php .ofa-grid,
body.page-template-dashboard-partenairepage-checkins-php .ofa-grid {grid-template-columns: 1fr;}
}

/* ===== single-activity.php ===== */
body.single-activity {--bg: #f6f1e8;
    --surface: rgba(255, 252, 247, 0.86);
    --surface-strong: #fffaf3;
    --card: #ffffff;
    --text: #1f2933;
    --muted: #667085;
    --line: rgba(31, 41, 51, 0.08);
    --shadow: 0 20px 60px rgba(39, 32, 24, 0.12);
    --accent: #d96b4d;
    --accent-deep: #b85035;
    --accent-soft: #fde6de;
    --sage: #7d9b87;
    --sage-soft: #e4efe7;
    --gold: #e5b95c;
    --danger-soft: #fce8e6;
    --danger-text: #9f3a2b;
    --radius-xl: 28px;
    --radius-lg: 20px;
    --radius-md: 14px;}
body.single-activity .ofa-page * {box-sizing: border-box;}
body.single-activity .ofa-page {font-family: Georgia, "Times New Roman", serif;
    color: var(--text);
    background:
        radial-gradient(circle at top left, rgba(217,107,77,0.15), transparent 28%),
        radial-gradient(circle at right 20%, rgba(125,155,135,0.16), transparent 24%),
        linear-gradient(180deg, #f9f4ec 0%, #f3ede4 100%);
    min-height: 100vh;
    padding-bottom: 60px;}
body.single-activity .ofa-page img {max-width: 100%; display: block;}
body.single-activity .ofa-page a {color: inherit; text-decoration: none;}
body.single-activity .ofa-page h1,
body.single-activity .ofa-page h2,
body.single-activity .ofa-page h3 {margin: 0; font-weight: 600; line-height: 1.1;}
body.single-activity .ofa-page p {margin: 0;}
body.single-activity .ofa-shell {width: min(calc(100% - 32px));
    margin: 24px auto 0;}
body.single-activity .ofa-btn,
body.single-activity .ofa-btn-soft,
body.single-activity .ofa-btn-ghost {border: 0;
    border-radius: 999px;
    padding: 12px 20px;
    font: inherit;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
    font-size: 0.95rem;
    display: inline-flex;
    align-items: center;
    gap: 8px;}
body.single-activity .ofa-btn {background: var(--accent-deep, #b85035);
    color: white;
    box-shadow: 0 16px 30px rgba(185,80,53,0.25);}
body.single-activity .ofa-btn-soft {background: var(--accent-soft);
    color: var(--accent-deep);}
body.single-activity .ofa-btn-ghost {background: rgba(255,255,255,0.78);
    color: var(--text);
    border: 1px solid var(--line);}
body.single-activity .ofa-btn:hover,
body.single-activity .ofa-btn-soft:hover,
body.single-activity .ofa-btn-ghost:hover {transform: translateY(-1px);}
body.single-activity .ofa-btn:disabled,
body.single-activity .ofa-btn-soft:disabled,
body.single-activity .ofa-btn-ghost:disabled {opacity: 0.45;
    cursor: not-allowed;
    transform: none;}
body.single-activity .ofa-btn-full {width: 100%; justify-content: center;}
body.single-activity .ofa-hero {position: relative;
    overflow: hidden;
    border-radius: 36px;
    /*min-height: 520px;*/
    box-shadow: var(--shadow);
    margin-bottom: 28px;}
body.single-activity .ofa-hero-bg {position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(24,28,32,0.75) 0%, rgba(24,28,32,0.30) 55%, rgba(24,28,32,0.10) 100%);
    z-index: 1;}
body.single-activity .ofa-hero-bg-img {position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;}
body.single-activity .ofa-hero-fallback {position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #2a2320 0%, #4a3830 50%, #3d4a45 100%);
    z-index: 0;}
body.single-activity .ofa-hero-grid {position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.8fr);
    gap: 28px;
    /*min-height: 520px;*/
    padding: 42px;
    align-items: end;}
body.single-activity .ofa-eyebrow {display: inline-flex;
    gap: 8px;
    align-items: center;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.14);
    color: rgba(255,255,255,0.92);
    backdrop-filter: blur(10px);
    font-size: 0.92rem;
    letter-spacing: 0.02em;
    margin-bottom: 18px;}
body.single-activity .ofa-eyebrow-link {color: inherit;
    text-decoration: none;
    font-weight: 600;
    transition: opacity 0.15s ease;}
body.single-activity .ofa-eyebrow-link:hover,
body.single-activity .ofa-eyebrow-link:focus-visible {
    text-decoration: none;
    text-underline-offset: 3px;
    opacity: 0.85;}
body.single-activity .ofa-hero-copy h1 {font-size: clamp(1.7rem, 4.5vw + .3rem, 3.6rem);
    color: white!important;
    margin-bottom: 16px;
    line-height: 1.05;}
body.single-activity .ofa-hero-copy > p {max-width: 58ch;
    margin-bottom: 22px;
    color: rgba(255,250,244,0.88)!important;
    font-size: 1.06rem;
    line-height: 1.7;}
body.single-activity .ofa-facts {display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 22px;}
body.single-activity .ofa-fact {padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,250,243,0.13);
    border: 1px solid rgba(255,255,255,0.14);
    backdrop-filter: blur(10px);
    color: white;
    font-size: 0.93rem;}
body.single-activity .ofa-hero-actions {display: flex; flex-wrap: wrap; gap: 12px;}
body.single-activity .ofa-glass-panel {align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 18px;
    padding: 22px;
    border-radius: var(--radius-xl);
    background: linear-gradient(180deg, rgba(255,255,255,0.17), rgba(255,255,255,0.09));
    border: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(16px);
    color: white;}
body.single-activity .ofa-rating-row {display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;}
body.single-activity .ofa-rating-big {font-size: 3.8rem; line-height: 1;}
body.single-activity .ofa-stars {color: var(--gold); letter-spacing: 0.18em; font-size: 1rem;}
body.single-activity .ofa-quick-card {padding: 16px;
    border-radius: var(--radius-md);
    background: rgba(255,248,241,0.13);
    border: 1px solid rgba(255,255,255,0.12);}
body.single-activity .ofa-quick-card small {display: block;
    color: rgba(255,255,255,0.68);
    margin-bottom: 6px;
    font-size: 0.85rem;}
body.single-activity .ofa-layout {display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(300px, 0.8fr);
    gap: 28px;
    align-items: start;}
body.single-activity .ofa-stack {display: grid; gap: 24px;}
body.single-activity .ofa-panel {background: var(--surface);
    border: 1px solid rgba(255,255,255,0.5);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
    overflow: hidden;}
body.single-activity .ofa-panel-inner {padding: 28px;}
body.single-activity .ofa-section-head {display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    margin-bottom: 20px;}
body.single-activity .ofa-section-head h2 {font-size: 1.5rem;}
body.single-activity .ofa-section-head p,
body.single-activity .ofa-muted {margin: 0; color: var(--muted); line-height: 1.65;}
body.single-activity .ofa-highlights {display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;}
body.single-activity .ofa-highlight {padding: 16px;
    border-radius: var(--radius-lg);
    background: white;
    border: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.88rem;}
body.single-activity .ofa-highlight strong {display: block; font-size: 1rem; margin-top: 8px; color: var(--text);}
body.single-activity .ofa-story {display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 20px;
    margin-top: 20px;}
body.single-activity .ofa-story--single {grid-template-columns: 1fr;}
body.single-activity .ofa-story-card {padding: 24px;
    border-radius: var(--radius-lg);
    background: white;
    border: 1px solid var(--line);
    line-height: 1.75;
    font-size: 0.97rem;}
body.single-activity .ofa-story-aside {padding: 22px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(217,107,77,0.08), rgba(125,155,135,0.12));
    font-size: 0.95rem;
    line-height: 1.7;}
/* Galerie à une seule image : l'image occupe toute la hauteur restante du bloc. */
body.single-activity .ofa-story-aside--gallery-single {display: flex;
    flex-direction: column;}
body.single-activity .ofa-story-aside--gallery-single .ofa-thumb-single {flex: 1 1 auto;
    min-height: 180px;}
body.single-activity .ofa-story-aside--gallery-single .ofa-thumb-single img {height: 100%;}
body.single-activity .ofa-carousel {position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    height: 320px;
    background: #2a2320;
    margin-bottom: 0;}
body.single-activity .ofa-carousel-slide {position: absolute;
    inset: 0;
    transition: opacity 0.25s;}
body.single-activity .ofa-carousel-slide img {width: 100%;
    height: 100%;
    object-fit: cover;}
body.single-activity .ofa-carousel-slide.hidden {display: none;}
body.single-activity .ofa-carousel-prev,
body.single-activity .ofa-carousel-next {position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: rgba(0,0,0,0.45);
    color: white;
    border: none;
    border-radius: 50%;
    width: 38px;
    height: 38px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;}
body.single-activity .ofa-carousel-prev {left: 12px;}
body.single-activity .ofa-carousel-next {right: 12px;}
body.single-activity .ofa-carousel-prev:hover,
body.single-activity .ofa-carousel-next:hover {background: rgba(0,0,0,0.70);}
body.single-activity .ofa-gallery-panel {padding: 28px;
    margin-top: 28px;}
body.single-activity .ofa-panel-head {display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 16px;
    margin-bottom: 20px;}
body.single-activity .ofa-panel-head h2 {font-size: 1.5rem;
    margin: 4px 0 0;}
body.single-activity .ofa-section-kicker {color: var(--accent-deep);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
    font-weight: 700;}
body.single-activity .ofa-gallery-count {color: var(--muted);
    font-size: 0.95rem;}
body.single-activity .ofa-gallery-grid {display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 140px);
    gap: 12px;}
body.single-activity .ofa-gallery-item {position: relative;
    overflow: hidden;
    border: 0;
    padding: 0;
    border-radius: var(--radius-md);
    cursor: pointer;
    background: #e8e2d8;}
body.single-activity .ofa-gallery-item:first-child {grid-column: span 2;
    grid-row: span 2;}
body.single-activity .ofa-gallery-item img {width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;}
body.single-activity .ofa-gallery-item:hover img {transform: scale(1.05);}
body.single-activity .ofa-gallery-overlay {position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.4);
    color: white;
    opacity: 0;
    transition: opacity 0.3s ease;}
body.single-activity .ofa-gallery-item:hover .ofa-gallery-overlay,
body.single-activity .ofa-gallery-item:focus-visible .ofa-gallery-overlay,
body.single-activity .ofa-gallery-more .ofa-gallery-overlay {opacity: 1;}
body.single-activity .ofa-gallery-overlay-icon {width: 42px;
    height: 42px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.18);
    font-size: 1.6rem;
    line-height: 1;}
body.single-activity .ofa-gallery-overlay-stack {display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    font-weight: 600;}
body.single-activity .ofa-gallery-more {background: rgba(31, 41, 51, 0.75);}
body.single-activity .ofa-gallery-dots {display: none;}
body.single-activity .ofa-gallery-dot {width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--line);
    transition: background 0.2s ease, transform 0.2s ease;}
body.single-activity .ofa-gallery-dot.active {background: var(--accent);
    transform: scale(1.3);}
body.single-activity .ofa-lightbox,
body.single-salle .ofa-lightbox {position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.95);
    padding: 24px;}
body.single-activity .ofa-lightbox.active,
body.single-salle .ofa-lightbox.active {display: flex;}
body.single-activity .ofa-lightbox-content,
body.single-salle .ofa-lightbox-content {position: relative;
    max-width: 90vw;
    max-height: 90vh;}
body.single-activity .ofa-lightbox-content img,
body.single-salle .ofa-lightbox-content img {max-width: 100%;
    max-height: 85vh;
    object-fit: contain;
    border-radius: var(--radius-md);}
body.single-activity .ofa-lightbox-close,
body.single-activity .ofa-lightbox-nav,
body.single-salle .ofa-lightbox-close,
body.single-salle .ofa-lightbox-nav {border: 0;
    color: white;
    cursor: pointer;
    background: rgba(255,255,255,0.2);}
body.single-activity .ofa-lightbox-close,
body.single-salle .ofa-lightbox-close {position: absolute;
    top: -50px;
    right: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 1.8rem;
    line-height: 1;}
body.single-activity .ofa-lightbox-nav,
body.single-salle .ofa-lightbox-nav {position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    font-size: 2rem;
    line-height: 1;}
body.single-activity .ofa-lightbox-prev,
body.single-salle .ofa-lightbox-prev {left: -70px;}
body.single-activity .ofa-lightbox-next,
body.single-salle .ofa-lightbox-next {right: -70px;}
body.single-activity .ofa-similar-grid {display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 20px;}
body.single-activity .ofa-similar-card {border-radius: var(--radius-lg);
    overflow: hidden;
    background: white;
    border: 1px solid var(--line);
    box-shadow: 0 2px 12px rgba(39,32,24,0.07);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;}
body.single-activity .ofa-similar-card:hover {transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(39,32,24,0.14);}
body.single-activity .ofa-similar-card img,
body.single-activity .ofa-similar-card-fallback {width: 100%;
    height: 140px;
    display: block;}
body.single-activity .ofa-similar-card img {object-fit: cover;
    transition: transform 0.4s ease;}
body.single-activity .ofa-similar-card:hover img {transform: scale(1.04);}
body.single-activity .ofa-similar-card-fallback {background: linear-gradient(135deg, #e8e2d8 0%, #f4ede2 100%);}
body.single-activity .ofa-similar-card-body {padding: 16px;}
body.single-activity .ofa-similar-card-body h4 {font-size: 1rem;
    margin-bottom: 6px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;}
body.single-activity .ofa-similar-meta {display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    font-size: 0.85rem;
    color: var(--muted);}
body.single-activity .ofa-stars-sm {font-size: 0.75rem;
    letter-spacing: 0.08em;}
body.single-activity .ofa-schedule-toolbar {display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    flex-wrap: wrap;}
body.single-activity .ofa-week-tabs {display: flex; gap: 10px; flex-wrap: wrap;}
body.single-activity .ofa-week-tab {padding: 10px 16px;
    border-radius: 999px;
    background: white;
    border: 1px solid var(--line);
    color: var(--muted);
    cursor: pointer;
    font: inherit;
    font-size: 0.9rem;
    transition: background 0.2s, color 0.2s;}
body.single-activity .ofa-week-tab.active,
body.single-activity .ofa-week-tab:hover {background: var(--text);
    color: white;
    border-color: var(--text);}
body.single-activity .ofa-slots {display: grid; gap: 14px;}
body.single-activity .ofa-slot {display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    padding: 18px;
    border-radius: var(--radius-lg);
    background: white;
    border: 1px solid var(--line);
    align-items: center;
    transition: box-shadow 0.2s;}
body.single-activity .ofa-slot:hover {box-shadow: 0 4px 20px rgba(39,32,24,0.08);}
body.single-activity .ofa-slot-time {min-width: 90px;
    text-align: center;
    padding: 14px 12px;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--accent-soft), #fff5f0);
    color: var(--accent-deep);}
body.single-activity .ofa-slot-time.full {background: linear-gradient(135deg, var(--danger-soft), #fff3f1);
    color: var(--danger-text);}
body.single-activity .ofa-slot-time strong {display: block; font-size: 1.3rem; line-height: 1.1;}
body.single-activity .ofa-slot-time span {font-size: 0.83rem; opacity: 0.75;}
body.single-activity .ofa-slot-title {display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 8px;}
body.single-activity .ofa-slot-badge {padding: 6px 10px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;}
body.single-activity .ofa-slot-badge.open {background: var(--sage-soft); color: #446c52;}
body.single-activity .ofa-slot-badge.low {background: #fff3d8; color: #8d6403;}
body.single-activity .ofa-slot-badge.full {background: var(--danger-soft); color: var(--danger-text);}
body.single-activity .ofa-slot-meta {display: flex;
    gap: 12px;
    flex-wrap: wrap;
    color: var(--muted);
    font-size: 0.9rem;}
body.single-activity .ofa-slot-action {display: grid; gap: 6px; text-align: right;}
body.single-activity .ofa-slot-warning {grid-column: 1 / -1;
    padding: 8px 12px;
    border-radius: 10px;
    background: #fffbec;
    border: 1px solid #f0d98c;
    color: #7a5c00;
    font-size: 0.85rem;}
body.single-activity .ofa-sidebar {position: sticky;
    top: 24px;
    display: grid;
    gap: 20px;}
body.single-activity .ofa-booking-card {padding: 26px;
    border-radius: var(--radius-xl);
    background: linear-gradient(180deg, #fffaf2 0%, #fff 100%);
    border: 1px solid rgba(217,107,77,0.12);
    box-shadow: var(--shadow);}
body.single-activity .ofa-booking-price {display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);}
body.single-activity .ofa-booking-price strong {font-size: 2.6rem; line-height: 1;}
body.single-activity .ofa-booking-price .ofa-muted {font-size: 0.88rem;}
body.single-activity .ofa-mini-list {display: grid; gap: 12px; margin: 16px 0 22px;}
body.single-activity .ofa-mini-item {display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.9rem;}
body.single-activity .ofa-mini-item strong {color: var(--text); text-align: right;}
body.single-activity .ofa-contact-card,
body.single-activity .ofa-reviews-card {padding: 22px;
    border-radius: var(--radius-xl);
    background: var(--surface-strong);
    border: 1px solid rgba(255,255,255,0.6);
    box-shadow: var(--shadow);}
body.single-activity .ofa-contact-card h3,
body.single-activity .ofa-reviews-card h3 {font-size: 1.1rem;
    margin-bottom: 14px;}
body.single-activity .ofa-map-container {height: 170px;
    border-radius: var(--radius-md);
    overflow: hidden;
    margin: 14px 0 18px;
    background: #ddd;}
body.single-activity .ofa-map-container iframe {width: 100%; height: 100%; border: 0;}
body.single-activity .ofa-contact-links {display: grid; gap: 10px; margin-top: 14px;}
body.single-activity .ofa-contact-link {display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: white;
    border: 1px solid var(--line);
    font-size: 0.88rem;
    color: var(--muted);
    transition: border-color 0.2s;}
body.single-activity .ofa-contact-link:hover {border-color: var(--accent); color: var(--accent-deep);}
body.single-activity .ofa-contact-link i {width: 16px; text-align: center; color: var(--accent); flex-shrink: 0;}
body.single-activity .ofa-review-summary {display: flex;
    align-items: flex-end;
    gap: 14px;
    margin-top: 12px;}
body.single-activity .ofa-review-summary-big {font-size: 3.2rem; line-height: 1;}
body.single-activity .ofa-reviews-list {display: grid; gap: 14px;}
body.single-activity .ofa-review {padding: 16px;
    border-radius: 18px;
    background: white;
    border: 1px solid var(--line);}
body.single-activity .ofa-review-top {display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;}
body.single-activity .ofa-reviewer {font-weight: 700; font-size: 0.95rem;}
body.single-activity .ofa-alert {padding: 14px 18px;
    border-radius: var(--radius-md);
    margin-bottom: 18px;
    font-size: 0.95rem;
    display: flex;
    gap: 10px;
    align-items: flex-start;}
body.single-activity .ofa-alert.success {background: #e6f7ef; border: 1px solid #a3d9bc; color: #1a6b42;}
body.single-activity .ofa-alert.error {background: var(--danger-soft); border: 1px solid #f5b4ac; color: var(--danger-text);}
body.single-activity .ofa-alert.warning {background: #fffbec; border: 1px solid #f0d98c; color: #7a5c00;}
body.single-activity .ofa-alert.info {background: var(--sage-soft); border: 1px solid #b7d2bf; color: #2f5c3a;}
body.single-activity .ofa-alert i {flex-shrink: 0; margin-top: 2px;}
body.single-activity .ofa-booking-window {padding: 12px 16px;
    border-radius: var(--radius-md);
    background: rgba(125,155,135,0.1);
    border: 1px solid rgba(125,155,135,0.25);
    font-size: 0.88rem;
    color: #3a5c45;
    margin-bottom: 18px;}
body.single-activity .ofa-modal {position: fixed;
    inset: 0;
    z-index: 200;}
body.single-activity .ofa-modal.hidden {display: none;}
body.single-activity .ofa-modal-backdrop {position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    backdrop-filter: blur(3px);}
body.single-activity .ofa-modal-wrap {position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    pointer-events: none;}
body.single-activity .ofa-modal-box {background: white;
    border-radius: var(--radius-xl);
    box-shadow: 0 30px 80px rgba(39,32,24,0.22);
    max-width: 440px;
    width: 100%;
    padding: 28px;
    pointer-events: auto;}
body.single-activity .ofa-modal-title {font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 16px;}
body.single-activity .ofa-modal-body {font-size: 0.92rem;
    color: var(--muted);
    display: grid;
    gap: 8px;
    margin-bottom: 22px;
    padding: 16px;
    background: var(--bg);
    border-radius: var(--radius-md);
    line-height: 1.65;}
body.single-activity .ofa-modal-body p {margin: 0;}
body.single-activity .ofa-modal-actions {display: flex; gap: 12px; justify-content: flex-end;}
body.single-activity .ofa-pagination {display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 22px;}
body.single-activity .ofa-page-btn {padding: 8px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: white;
    font: inherit;
    font-size: 0.88rem;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;}
body.single-activity .ofa-page-btn.active,
body.single-activity .ofa-page-btn:hover:not(:disabled) {background: var(--text);
    color: white;
    border-color: var(--text);}
body.single-activity .ofa-page-btn:disabled {opacity: 0.35; cursor: not-allowed;}
@media (max-width: 1080px) {
body.single-activity .ofa-hero-grid,
body.single-activity .ofa-layout,
body.single-activity .ofa-story {grid-template-columns: 1fr;}
body.single-activity .ofa-sidebar {position: static;}
body.single-activity .ofa-highlights {grid-template-columns: repeat(2, minmax(0, 1fr));}
body.single-activity .ofa-glass-panel {margin-top: 18px;}
body.single-activity .ofa-gallery-grid {grid-template-columns: repeat(3, 1fr);
        grid-template-rows: auto;}
body.single-activity .ofa-gallery-item:first-child {grid-column: span 3;
        grid-row: span 1;}
body.single-activity .ofa-lightbox-prev,
body.single-salle .ofa-lightbox-prev {left: 10px;}
body.single-activity .ofa-lightbox-next,
body.single-salle .ofa-lightbox-next {right: 10px;}
body.single-activity .ofa-similar-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 720px) {
body.single-activity .ofa-shell {width: min(calc(100% - 20px));}
body.single-activity .ofa-hero {min-height: auto; border-radius: 24px;}
body.single-activity .ofa-hero-grid {padding: 24px; min-height: auto;}
body.single-activity .ofa-hero-copy h1 {font-size: 2.4rem;}
body.single-activity .ofa-highlights {grid-template-columns: 1fr 1fr;}
body.single-activity .ofa-slot {grid-template-columns: 1fr;}
body.single-activity .ofa-slot-time {text-align: left;}
body.single-activity .ofa-slot-action {text-align: left;}
body.single-activity .ofa-schedule-toolbar {flex-direction: column; align-items: flex-start;}
body.single-activity .ofa-section-head {flex-direction: column; align-items: flex-start;}
body.single-activity .ofa-gallery-panel {padding: 20px;}
body.single-activity .ofa-panel-head {align-items: flex-start; flex-direction: column;}
body.single-activity .ofa-gallery-grid {display: flex;
        gap: 10px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 14px;}
body.single-activity .ofa-gallery-grid::-webkit-scrollbar {display: none;}
body.single-activity .ofa-gallery-item {flex: 0 0 72vw;
        height: 220px;
        scroll-snap-align: start;
        border-radius: 16px;}
body.single-activity .ofa-gallery-item:first-child {flex: 0 0 82vw;
        height: 220px;}
body.single-activity .ofa-gallery-dots {display: flex;
        justify-content: center;
        gap: 6px;
        margin-top: 10px;}
body.single-activity .ofa-lightbox,
body.single-salle .ofa-lightbox {padding: 18px;}
body.single-activity .ofa-lightbox-close,
body.single-salle .ofa-lightbox-close {top: -42px;}
body.single-activity .ofa-similar-grid {grid-template-columns: 1fr; gap: 12px;}
}
body.single-activity .ofa-page {font-family: 'Inter', system-ui, -apple-system, sans-serif;}
body.single-activity .ofa-page h1,
body.single-activity .ofa-page h2,
body.single-activity .ofa-page h3,
body.single-activity .ofa-page h4 {font-family: 'Fraunces', Georgia, serif;
    letter-spacing: 0.01em;}
body.single-activity .ofa-shell {width: min(calc(100% - 32px)); margin-top: 20px;}
body.single-activity .ofa-topbar {display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    margin-bottom: 18px;
    background: rgba(255, 250, 243, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.45);
    backdrop-filter: blur(14px);
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(49, 39, 30, 0.08);
    position: sticky;
    top: 82px; /* sous la nav fixe (~81px), même offset que .ofa-sticky-nav : plus de chevauchement */
    z-index: 120;
    transition: box-shadow .2s ease, background .2s ease;}
body.single-activity .ofa-topbar.scrolled {background: rgba(255, 250, 243, 0.92);
    box-shadow: 0 14px 34px rgba(49, 39, 30, 0.14);}
body.single-activity .ofa-brand {display: flex; align-items: center; gap: 12px; font-size: .95rem; color: var(--muted);}

body.single-activity .ofa-top-actions {display: flex; align-items: center; gap: 10px; flex-wrap: wrap;}
body.single-activity .ofa-sticky-nav {position: sticky;
    top: 82px;
    z-index: 90;
    background: rgba(246, 241, 232, 0.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(31, 41, 51, 0.08);
    margin: 20px 0 24px;}
body.single-activity .ofa-sticky-nav-inner {display: flex;
    gap: 8px;
    padding: 12px 0;
    overflow-x: auto;
    scrollbar-width: none;}
body.single-activity .ofa-sticky-nav-inner::-webkit-scrollbar {display: none;}
body.single-activity .ofa-nav-tab {padding: 10px 20px;
    border-radius: 999px;
    background: transparent;
    color: #5c6675; /* gris suffisamment foncé pour WCAG AA (4.5:1) sur fond clair */
    white-space: nowrap;
    transition: all .2s ease;
    font-size: .95rem;
    border: 0;
    cursor: pointer;}
body.single-activity .ofa-nav-tab:hover {background: rgba(255,255,255,.6); color: var(--text);}
body.single-activity .ofa-nav-tab.active {background: var(--text); color: #fff;}
body.single-activity .ofa-nav-tab.active:hover {background: var(--text); color: #fff;}
body.single-activity .ofa-panel {background: rgba(255, 252, 247, 0.86);
    border: 1px solid rgba(255, 255, 255, 0.5);
    box-shadow: 0 20px 60px rgba(39, 32, 24, 0.12);}
body.single-activity .ofa-slot.selected {border-color: rgba(217,107,77,.45);
    box-shadow: 0 10px 24px rgba(185,80,53,.16);}
body.single-activity .ofa-reveal {opacity: 0;
    transform: translateY(16px);
    transition: opacity .45s ease, transform .45s ease;}
body.single-activity .ofa-reveal.visible {opacity: 1;
    transform: translateY(0);}
/* Le libellé compact (titre + crédits) n'apparaît qu'en mobile. */
body.single-activity .ofa-brand-activity {display: none;}
@media (max-width: 720px) {
body.single-activity .ofa-topbar {border-radius: 20px; padding: 10px 12px 10px 16px;}
body.single-activity .ofa-brand-site {display: none;}
body.single-activity .ofa-brand {min-width: 0; flex: 1 1 auto;}
body.single-activity .ofa-brand-activity {display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--text); font-size: .92rem;}
body.single-activity .ofa-top-actions {flex: 0 0 auto; flex-wrap: nowrap;}
body.single-activity .ofa-top-actions .ofa-btn-ghost {display: none;}
}

/* ===== dashboard-partenaire/nav.php ===== */
.material-symbols-outlined {
        font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
        vertical-align: middle;
    }

/* ===== dashboard-partenaire/content-dashboard.php ===== */
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-grid {display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; margin-bottom: 2.5rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card {background: linear-gradient(160deg, #fff 0%, #fdf8f4 100%); border: 1px solid rgba(217,107,77,0.08); border-radius: var(--radius-lg); padding: 1.5rem; box-shadow: 0 2px 8px rgba(39,32,24,0.05); transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card:hover {transform: translateY(-4px); box-shadow: 0 12px 32px rgba(39,32,24,0.1); border-color: rgba(217,107,77,0.2);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card .stat-label {font-size: 0.82rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; font-weight: 600; margin-bottom: 0.5rem; display: flex; align-items: center; justify-content: space-between;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card .stat-label i {color: var(--accent); font-size: 1rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card .stat-number {font-size: 2.4rem; font-weight: 700; font-family: 'Fraunces', serif; color: var(--text); line-height: 1.1;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card .stat-trend {font-size: 0.82rem; margin-top: 0.35rem; display: flex; align-items: center; gap: 4px;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card .stat-trend.up {color: #446c52;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-stat-card .stat-trend.down {color: var(--danger-text);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-main-grid {display: grid; grid-template-columns: 1fr; gap: 2rem; margin-bottom: 2rem;}
@media (min-width: 1100px) {
body.page-template-dashboard-partenairepage-dashboard-php .ofp-main-grid {grid-template-columns: 1fr 340px;}
}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-panel {background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.08); border-radius: var(--radius-lg); box-shadow: 0 2px 10px rgba(39,32,24,0.05); overflow: hidden;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-panel-head {padding: 1.2rem 1.5rem; border-bottom: 1px solid rgba(217,107,77,0.08); display: flex; align-items: center; gap: 0.75rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-panel-head h2 {font-family: 'Fraunces', serif; font-size: 1.4rem; color: var(--text); margin: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-panel-head i {color: var(--accent);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-panel-foot {padding: 1rem 1.5rem; border-top: 1px solid rgba(217,107,77,0.08); text-align: center; background: rgba(249,244,236,0.5);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-panel-foot a {color: var(--accent-deep); font-weight: 600; font-size: 0.9rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-panel-foot a:hover {color: var(--accent);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-table {width: 100%; border-collapse: collapse;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-table thead tr {background: rgba(249,244,236,0.7);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-table th {padding: 0.8rem 1.2rem; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); text-align: left;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-table td {padding: 0.9rem 1.2rem; border-top: 1px solid rgba(31,41,51,0.06); color: var(--text); font-size: 0.9rem; vertical-align: middle;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-table tbody tr:hover {background: rgba(217,107,77,0.03);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-table th:last-child,
body.page-template-dashboard-partenairepage-dashboard-php .ofp-table td:last-child {text-align: right;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-avatar {width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg, var(--accent-soft), #fde6de); color: var(--accent-deep); font-size: 0.75rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-sidebar-panel {background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.08); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; box-shadow: 0 2px 8px rgba(39,32,24,0.04); margin-bottom: 1.5rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-sidebar-panel h2 {font-family: 'Fraunces', serif; font-size: 1.2rem; color: var(--text); margin: 0 0 1rem; display: flex; align-items: center; gap: 0.5rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-sidebar-panel h2 i {color: var(--accent);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-row {display: flex; align-items: center; gap: 0.75rem; padding: 0.7rem 0; border-bottom: 1px solid rgba(31,41,51,0.05);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-row:last-child {border-bottom: none;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-thumb {width: 44px; height: 44px; border-radius: 10px; overflow: hidden; flex-shrink: 0; background: var(--accent-soft); display: flex; align-items: center; justify-content: center;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-thumb img {width: 100%; height: 100%; object-fit: cover;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-thumb i {color: var(--accent);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-info {flex: 1; min-width: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-info p {margin: 0; font-size: 0.9rem; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-activity-info span {font-size: 0.8rem; color: var(--muted);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-edit-btn {width: 32px; height: 32px; border-radius: 8px; border: 1px solid rgba(217,107,77,0.2); display: flex; align-items: center; justify-content: center; color: var(--muted); transition: all 0.2s; flex-shrink: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-edit-btn:hover {background: var(--accent-soft); color: var(--accent-deep); border-color: var(--accent);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-top-row {display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px solid rgba(31,41,51,0.05);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-top-row:last-child {border-bottom: none;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-count-badge {background: var(--accent-soft); color: var(--accent-deep); font-size: 0.78rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; flex-shrink: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-salle-row {display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px solid rgba(31,41,51,0.05);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-salle-row:last-child {border-bottom: none;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-salle-bar {width: 4px; height: 40px; border-radius: 999px; flex-shrink: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-salle-info {flex: 1; min-width: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-salle-info p {margin: 0; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.07em; font-weight: 700; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-salle-info strong {font-size: 1.15rem; color: var(--text); font-family: 'Fraunces', serif;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-add-btn {display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px; margin-top: 1rem; border: 2px dashed rgba(217,107,77,0.3); border-radius: var(--radius-md); color: var(--accent-deep); font-weight: 600; font-size: 0.9rem; transition: all 0.2s; background: transparent;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-add-btn:hover {background: var(--accent-soft); border-color: var(--accent);}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-hero {padding: 2rem 0 1.5rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-hero h1 {font-family: 'Fraunces', serif; font-size: clamp(1.45rem, 3.5vw + .2rem, 2.3rem); color: var(--text); margin: 0 0 0.25rem;}
body.page-template-dashboard-partenairepage-dashboard-php .ofp-hero p {color: var(--muted); margin: 0;}
body.page-template-dashboard-partenairepage-dashboard-php .slot-badge {padding: 5px 10px; border-radius: 999px; font-size: 0.8rem; font-weight: 600; display: inline-flex; align-items: center; gap: 5px;}
body.page-template-dashboard-partenairepage-dashboard-php .slot-badge.open {background: var(--sage-soft); color: #446c52;}
body.page-template-dashboard-partenairepage-dashboard-php .slot-badge.low {background: #fff3d8; color: #8d6403;}
body.page-template-dashboard-partenairepage-dashboard-php .slot-badge.full {background: var(--danger-soft); color: var(--danger-text);}

/* ===== dashboard-partenaire/content-add-activity.php ===== */
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-wrap {max-width: 42rem; margin: 0 auto;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-card {background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.1); border-radius: var(--radius-xl); box-shadow: 0 4px 24px rgba(39,32,24,0.08); padding: 2rem 2.25rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-card h1 {font-family: 'Fraunces', serif; font-size: 1.8rem; color: var(--text); margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.6rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-card h1 i {color: var(--accent); font-size: 1.4rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-card .form-subtitle {color: var(--muted); font-size: 0.95rem; margin: 0 0 2rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group {margin-bottom: 1.25rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group label,
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-label {display: block; font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 0.4rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group input[type="text"],
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group input[type="number"],
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group input[type="time"],
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group input[type="datetime-local"],
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group select,
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group textarea {display: block; width: 100%; padding: 0.65rem 0.9rem;
        border: 1px solid rgba(31,41,51,0.15); border-radius: var(--radius-md);
        background: #fff; font-size: 0.95rem; color: var(--text);
        transition: border-color 0.2s, box-shadow 0.2s; outline: none;
        font-family: inherit;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group input:focus,
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group select:focus,
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group textarea:focus {border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-group .form-hint {font-size: 0.82rem; color: var(--muted); margin-top: 0.35rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-grid-3 {display: grid; grid-template-columns: 1fr; gap: 1rem;}
@media (min-width: 640px) {
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-grid-3 {grid-template-columns: repeat(3, 1fr);}
}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-grid-2 {display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-check {display: flex; align-items: center; gap: 0.6rem; cursor: pointer; font-size: 0.9rem; color: var(--text);}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-check input[type="checkbox"],
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-check input[type="radio"] {accent-color: var(--accent); width: 16px; height: 16px; cursor: pointer; flex-shrink: 0;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-days-row {display: flex; flex-wrap: wrap; gap: 0.5rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-file-input {display: block; width: 100%; font-size: 0.9rem; color: var(--muted);}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-file-input::file-selector-button {margin-right: 12px; padding: 7px 16px;
        border-radius: var(--radius-md); border: none;
        background: var(--accent-soft); color: var(--accent-deep);
        font-size: 0.85rem; font-weight: 600; cursor: pointer;
        transition: background 0.2s;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-file-input::file-selector-button:hover {background: rgba(217,107,77,0.2);}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-section {background: rgba(249,244,236,0.6); border: 1px solid rgba(217,107,77,0.08); border-radius: var(--radius-md); padding: 1.25rem; margin-top: 0.5rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-radio-row {display: flex; gap: 1.5rem; margin-bottom: 1rem; flex-wrap: wrap;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-notice {padding: 0.85rem 1.1rem; border-radius: var(--radius-md); font-weight: 600; font-size: 0.95rem; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.6rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-notice.success {background: var(--sage-soft); color: #2d5a3d; border: 1px solid rgba(125,155,135,0.3);}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-notice.error {background: var(--danger-soft); color: var(--danger-text); border: 1px solid rgba(159,58,43,0.2);}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-divider {border: none; border-top: 1px solid rgba(217,107,77,0.1); margin: 1.5rem 0;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-section-title {font-family: 'Fraunces', serif; font-size: 1.05rem; color: var(--text); margin: 0 0 1rem; display: flex; align-items: center; gap: 0.5rem;}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-section-title i {color: var(--accent);}
body.page-template-dashboard-partenairepage-add-activity-php .ofa-form-grid-3 .ofa-form-group input[type="time"] {min-width: 0;}
body.page-template-dashboard-partenairepage-add-activity-php .recurring-row,
body.page-template-dashboard-partenairepage-add-activity-php .date-row {position: relative;}

/* ===== dashboard-partenaire/content-add-salle.php ===== */
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-wrap {max-width: 42rem; margin: 0 auto;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-card {background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.1); border-radius: var(--radius-xl); box-shadow: 0 4px 24px rgba(39,32,24,0.08); padding: 2rem 2.25rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-card h1 {font-family: 'Fraunces', serif; font-size: 1.8rem; color: var(--text); margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.6rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-card h1 i {color: var(--accent); font-size: 1.4rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-card .form-subtitle {color: var(--muted); font-size: 0.95rem; margin: 0 0 2rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group {margin-bottom: 1.25rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group label,
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-label {display: block; font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 0.4rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group input[type="text"],
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group input[type="tel"],
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group input[type="url"],
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group select,
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group textarea {display: block; width: 100%; padding: 0.65rem 0.9rem;
        border: 1px solid rgba(31,41,51,0.15); border-radius: var(--radius-md);
        background: #fff; font-size: 0.95rem; color: var(--text);
        transition: border-color 0.2s, box-shadow 0.2s; outline: none;
        font-family: inherit;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group input:focus,
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group select:focus,
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group textarea:focus {border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-group textarea {resize: vertical; min-height: 90px;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-grid-3 {display: grid; grid-template-columns: 1fr; gap: 1rem;}
@media (min-width: 640px) {
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-grid-3 {grid-template-columns: repeat(3, 1fr);}
}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-check {display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; font-size: 0.9rem; color: var(--text);}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-check input[type="checkbox"] {accent-color: var(--accent); width: 16px; height: 16px; cursor: pointer; flex-shrink: 0;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-equip-row {display: flex; flex-wrap: wrap; gap: 0.75rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-equip-chip {display: flex; align-items: center; gap: 0.5rem; padding: 6px 14px; border-radius: 999px; border: 1px solid rgba(217,107,77,0.2); background: #fff; cursor: pointer; font-size: 0.88rem; color: var(--text); transition: all 0.15s;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-equip-chip:has(input:checked) {background: var(--accent-soft); border-color: var(--accent); color: var(--accent-deep); font-weight: 600;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-equip-chip input {position: absolute; opacity: 0; width: 0; height: 0;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-file-input {display: block; width: 100%; font-size: 0.9rem; color: var(--muted);}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-file-input::file-selector-button {margin-right: 12px; padding: 7px 16px;
        border-radius: var(--radius-md); border: none;
        background: var(--accent-soft); color: var(--accent-deep);
        font-size: 0.85rem; font-weight: 600; cursor: pointer;
        transition: background 0.2s;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-file-input::file-selector-button:hover {background: rgba(217,107,77,0.2);}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-notice {padding: 0.85rem 1.1rem; border-radius: var(--radius-md); font-weight: 600; font-size: 0.95rem; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.6rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-notice.success {background: var(--sage-soft); color: #2d5a3d; border: 1px solid rgba(125,155,135,0.3);}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-notice.error {background: var(--danger-soft); color: var(--danger-text); border: 1px solid rgba(159,58,43,0.2);}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-divider {border: none; border-top: 1px solid rgba(217,107,77,0.1); margin: 1.5rem 0;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-section-title {font-family: 'Fraunces', serif; font-size: 1.05rem; color: var(--text); margin: 0 0 1rem; display: flex; align-items: center; gap: 0.5rem;}
body.page-template-dashboard-partenairepage-add-salle-php .ofa-form-section-title i {color: var(--accent);}

/* ===== dashboard-partenaire/content-checkins.php ===== */
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-table {width: 100%; border-collapse: collapse; font-size: 0.95rem;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-table th {text-align: left; padding: 14px 12px; font-size: 0.72rem; font-weight: 700;
        text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted);
        border-bottom: 1px solid var(--line); background: rgba(255,255,255,0.6);}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-table th i {color: var(--accent); margin-right: 6px;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-table td {padding: 14px 12px; border-bottom: 1px solid var(--line); vertical-align: top;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-table tr:hover td {background: rgba(217,107,77,0.04);}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-actions {display: flex; flex-wrap: wrap; gap: 8px; align-items: center;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-btn {display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px;
        font-size: 0.85rem; font-weight: 600; border: 0; cursor: pointer; text-decoration: none;
        transition: transform 0.15s ease, box-shadow 0.15s ease;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-btn:hover {transform: translateY(-1px);}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-btn--validate {background: var(--sage); color: #fff;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-btn--cancel {background: var(--danger-text); color: #fff;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-pc-btn--edit {background: var(--accent-deep, #b85035); color: #fff; box-shadow: 0 8px 20px rgba(185,80,53,0.2);}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-badge {display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; font-size: 0.8rem; font-weight: 600;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-badge--ok {background: var(--sage-soft); color: #446c52;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-badge--no {background: var(--danger-soft); color: var(--danger-text);}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-badge--wait {background: #fff3d8; color: #8d6403;}
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-checkins .ofa-badge--pend {background: var(--accent-soft); color: var(--accent-deep);}

/* ===== dashboard-partenaire/content-edit-activity.php ===== */
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form {max-width: 42rem; margin-left: auto; margin-right: auto;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .field,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .field {display: grid; gap: 8px; margin-bottom: 1.25rem;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .field > label,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .field > label {font-size: 0.75rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input[type="text"],
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input[type="number"],
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input[type="time"],
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input[type="file"],
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input[type="datetime-local"],
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form select,
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form textarea,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input[type="text"],
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input[type="number"],
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input[type="time"],
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input[type="file"],
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input[type="datetime-local"],
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form select,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form textarea {width: 100%;
        min-height: 48px;
        border-radius: var(--radius-md);
        border: 1px solid var(--line);
        background: #fff;
        padding: 0 14px;
        font-size: 0.95rem;
        font-family: inherit;
        color: var(--text);
        box-sizing: border-box;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form textarea,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form textarea {min-height: 100px; padding: 12px 14px; resize: vertical;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input:focus,
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form select:focus,
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form textarea:focus,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input:focus,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form select:focus,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form textarea:focus {outline: none;
        border-color: var(--accent);
        box-shadow: 0 0 0 3px var(--accent-soft);}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .field-hint,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .field-hint {font-size: 0.85rem; color: var(--muted); margin-top: 4px;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .row-inline,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .row-inline {display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .row-inline label,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .row-inline label {display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: var(--text);}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .row-days,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .row-days {display: flex; flex-wrap: wrap; gap: 10px 14px;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .row-days label,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .row-days label {display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 0.9rem;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input[type="checkbox"],
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form input[type="radio"],
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input[type="checkbox"],
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form input[type="radio"] {width: 18px; height: 18px; min-height: auto; accent-color: var(--accent-deep);}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .grid-3,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .grid-3 {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .grid-2,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .grid-2 {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;}
@media (max-width: 768px) {
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .grid-3,
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .grid-2,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .grid-3,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .grid-2 {grid-template-columns: 1fr;}
}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .actions,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .actions {display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-top: 0.5rem;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .actions-left,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .actions-left {display: flex; flex-wrap: wrap; gap: 12px; align-items: center;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form h1,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form h1 {font-size: 1.75rem; margin-bottom: 0.35rem;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .thumb-row,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .thumb-row {display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .thumb-row img,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .thumb-row img {width: 5rem; height: 5rem; object-fit: cover; border-radius: var(--radius-md); border: 1px solid var(--line);}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .btn-danger,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .btn-danger {display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border-radius: 999px;
        font-size: 0.95rem; font-weight: 600; background: var(--danger-text); color: #fff; text-decoration: none;
        box-shadow: 0 8px 20px rgba(159, 58, 43, 0.25); border: 0; cursor: pointer; transition: transform 0.15s ease, filter 0.15s ease;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .btn-danger:hover,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .btn-danger:hover {transform: translateY(-1px); filter: brightness(1.05);}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .link-add-date,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .link-add-date {background: none; border: 0; padding: 0; font: inherit; font-size: 0.9rem; font-weight: 600;
        color: var(--accent-deep); cursor: pointer; text-decoration: underline;}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .link-add-date:hover,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .link-add-date:hover {color: var(--accent);}
body.page-template-dashboard-partenairepage-activities-php .ofa-partner-form .hidden,
body.page-template-dashboard-partenairepage-checkins-php .ofa-partner-form .hidden {display: none !important;}

/* ===== dashboard-partenaire/content-edit-salle.php ===== */
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form {max-width: 42rem; margin-left: auto; margin-right: auto;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .field {display: grid; gap: 8px; margin-bottom: 1.25rem;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .field > label {font-size: 0.75rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form input[type="text"],
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form input[type="number"],
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form input[type="url"],
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form input[type="file"],
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form select,
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form textarea {width: 100%;
        min-height: 48px;
        border-radius: var(--radius-md);
        border: 1px solid var(--line);
        background: #fff;
        padding: 0 14px;
        font-size: 0.95rem;
        font-family: inherit;
        color: var(--text);
        box-sizing: border-box;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form textarea {min-height: 110px; padding: 12px 14px; resize: vertical;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form input:focus,
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form select:focus,
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form textarea:focus {outline: none;
        border-color: var(--accent);
        box-shadow: 0 0 0 3px var(--accent-soft);}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .field-hint {font-size: 0.85rem; color: var(--muted); margin-top: 4px;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .row-check {display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .row-check label {display: inline-flex; align-items: center; gap: 8px; font-size: 0.95rem; color: var(--text); cursor: pointer;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form input[type="checkbox"] {width: 18px; height: 18px; min-height: auto; accent-color: var(--accent-deep);}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .actions {display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 0.5rem;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form h1 {font-size: 1.75rem; margin-bottom: 0.35rem;}
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .grid-3 {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px;}
@media (max-width: 768px) {
body.page-template-dashboard-partenairepage-salles-php .ofa-partner-form .grid-3 {grid-template-columns: 1fr;}
}

/* ===== dashboard-partenaire/content-profil-partenaire.php ===== */
body.page-template-page-profil-php .ofp-profile-wrap {max-width: 46rem; margin: 0 auto;}
body.page-template-page-profil-php .ofp-profile-card {background: linear-gradient(160deg,#fff 0%,#fdf9f6 100%); border:1px solid rgba(217,107,77,0.1); border-radius:var(--radius-xl); box-shadow:0 4px 24px rgba(39,32,24,0.08); padding:1.75rem 2rem; margin-bottom:1.5rem;}
body.page-template-page-profil-php .ofp-profile-card h2 {font-family:'Fraunces',serif; font-size:1.3rem; color:var(--text); margin:0 0 .25rem; display:flex; align-items:center; gap:.5rem;}
body.page-template-page-profil-php .ofp-profile-card h2 i {color:var(--accent);}
body.page-template-page-profil-php .ofp-profile-card .sub {color:var(--muted); font-size:.9rem; margin:0 0 1.25rem;}
body.page-template-page-profil-php .ofp-field {margin-bottom:1rem;}
body.page-template-page-profil-php .ofp-field label {display:block; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:.35rem;}
body.page-template-page-profil-php .ofp-field input,
body.page-template-page-profil-php .ofp-field textarea {width:100%; padding:.6rem .85rem; border:1px solid rgba(31,41,51,0.15); border-radius:var(--radius-md); background:#fff; font-size:.94rem; color:var(--text); font-family:inherit; outline:none;}
body.page-template-page-profil-php .ofp-field input:focus,
body.page-template-page-profil-php .ofp-field textarea:focus {border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft);}
body.page-template-page-profil-php .ofp-grid-2 {display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
@media (max-width:560px) {
body.page-template-page-profil-php .ofp-grid-2 {grid-template-columns:1fr;}
}
body.page-template-page-profil-php .ofp-btn {background:var(--accent-deep,#b85035); color:#fff; border:0; border-radius:999px; padding:.65rem 1.6rem; font-weight:600; cursor:pointer; font-size:.95rem;}
body.page-template-page-profil-php .ofp-msg {padding:.7rem 1rem; border-radius:var(--radius-md); font-weight:600; font-size:.9rem; margin-bottom:1.25rem;}
body.page-template-page-profil-php .ofp-msg.success {background:var(--sage-soft); color:#2d5a3d;}
body.page-template-page-profil-php .ofp-msg.error {background:var(--danger-soft); color:var(--danger-text);}
body.page-template-page-profil-php .ofp-logo-prev {width:72px; height:72px; border-radius:14px; object-fit:cover; border:1px solid var(--line);}

/* ===== dashboard-partenaire/page-calendrier-partenaire.php ===== */
body.page-template-dashboard-partenairepage-calendrier-partenaire-php #calendar-container {min-height: 800px;}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc-event {cursor: pointer;
            border: 1px solid var(--fc-event-border-color, #000);}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .salle-filter-checkbox {margin-right: 8px;}
/* Boutons FullCalendar aux couleurs de la marque (le bleu nuit par défaut était
   le seul composant hors palette terracotta du site). */
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-button-primary {
    background-color: #b85035;
    border-color: #b85035;
    font-weight: 600;
    text-transform: capitalize;
}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-button-primary:not(:disabled):hover {
    background-color: #983920;
    border-color: #983920;
}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-button-primary:not(:disabled).fc-button-active,
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-button-primary:not(:disabled):active {
    background-color: #983920;
    border-color: #983920;
}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-button-primary:disabled {
    background-color: #d9a08e;
    border-color: #d9a08e;
}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-button:focus,
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-button-primary:not(:disabled):focus {
    box-shadow: 0 0 0 3px rgba(184, 80, 53, 0.25);
}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .ofp-cal-grid {display: grid; grid-template-columns: 1fr; gap: 1.5rem;}
@media (min-width: 1024px) {
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .ofp-cal-grid {grid-template-columns: 240px 1fr;}
}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .ofp-cal-card {background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.08); border-radius: var(--radius-lg); padding: 1.5rem; box-shadow: 0 2px 8px rgba(39,32,24,0.05);}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .ofp-cal-card h2 {font-family: 'Fraunces', serif; font-size: 1.2rem; color: var(--text); margin: 0 0 1rem;}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .ofp-cal-card h3 {font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); margin: 0 0 0.75rem;}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .ofp-salle-filter-label {display: flex; align-items: center; gap: 0.6rem; padding: 5px 0; cursor: pointer; font-size: 0.9rem; color: var(--text);}
body.page-template-dashboard-partenairepage-calendrier-partenaire-php .ofp-salle-filter-label input {accent-color: var(--accent);}

/* ===== dashboard-partenaire/page-revenue-partenaire.php ===== */
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-stat-grid {display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; margin-bottom: 2.5rem;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-stat {background: linear-gradient(160deg, #fff 0%, #fdf8f4 100%); border: 1px solid rgba(217,107,77,0.08); border-radius: var(--radius-lg); padding: 1.5rem; box-shadow: 0 2px 8px rgba(39,32,24,0.05); transition: transform 0.2s, box-shadow 0.2s;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-stat:hover {transform: translateY(-4px); box-shadow: 0 12px 32px rgba(39,32,24,0.1);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-stat .rl {font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); margin-bottom: 0.5rem; display: flex; align-items: center; justify-content: space-between;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-stat .rl i {color: var(--accent);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-stat .rn {font-family: 'Fraunces', serif; font-size: 2.2rem; font-weight: 700; color: var(--text); line-height: 1.1;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-stat .rs {font-size: 0.82rem; color: var(--muted); margin-top: 0.25rem;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-panel {background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.08); border-radius: var(--radius-lg); box-shadow: 0 2px 10px rgba(39,32,24,0.05); overflow: hidden; margin-bottom: 2rem;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-panel-head {padding: 1.2rem 1.5rem; border-bottom: 1px solid rgba(217,107,77,0.08); display: flex; align-items: center; gap: 0.75rem;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-panel-head h2 {font-family: 'Fraunces', serif; font-size: 1.4rem; color: var(--text); margin: 0;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-panel-head i {color: var(--accent);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table {width: 100%; border-collapse: collapse;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table thead tr {background: rgba(249,244,236,0.7);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table th {padding: 0.8rem 1.2rem; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table th:not(:first-child) {text-align: right;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table td {padding: 0.9rem 1.2rem; border-top: 1px solid rgba(31,41,51,0.06); color: var(--text); font-size: 0.9rem; vertical-align: middle;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table td:not(:first-child) {text-align: right; color: var(--muted);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table td:nth-child(3) {font-weight: 600; color: var(--text);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-table tbody tr:hover {background: rgba(217,107,77,0.03);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-detail {background: rgba(249,244,236,0.6);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-detail-inner {padding: 1rem 1.5rem;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-user-block {background: #fff; border: 1px solid rgba(217,107,77,0.1); border-radius: var(--radius-md); padding: 0.9rem 1.1rem; margin-bottom: 0.75rem;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-user-block p {margin: 0 0 0.5rem; font-weight: 600; color: var(--text);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-user-block li {font-size: 0.85rem; color: var(--muted); display: flex; justify-content: space-between; align-items: center; padding: 3px 0;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-rev-user-block li span.cost {font-weight: 600; color: var(--accent-deep);}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-toggle-btn {color: var(--accent-deep); font-weight: 600; font-size: 0.85rem; background: none; border: none; cursor: pointer; padding: 4px 10px; border-radius: 6px; transition: background 0.15s;}
body.page-template-dashboard-partenairepage-revenue-partenaire-php .ofp-toggle-btn:hover {background: var(--accent-soft);}

/* ===== page-homepage.php ===== */
body.page-template-page-homepage-php .ofh * {box-sizing: border-box; margin: 0;}
body.page-template-page-homepage-php .ofh {font-family: 'Inter', sans-serif;
    color: #15151a;
    background: #ffffff;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;}
body.page-template-page-homepage-php .ofh h1,
body.page-template-page-homepage-php .ofh h2,
body.page-template-page-homepage-php .ofh h3,
body.page-template-page-homepage-php .ofh h4 {font-family: 'Manrope', 'Inter', sans-serif;
    color: #15151a;           
    margin: 0;
    line-height: 1.15;}
body.page-template-page-homepage-php .ofh a {text-decoration: none; color: inherit;}
body.page-template-page-homepage-php .ofh img {max-width: 100%; display: block;}
body.page-template-page-homepage-php .ofh-hero h1,
body.page-template-page-homepage-php .ofh-section--dark h2,
body.page-template-page-homepage-php .ofh-section--dark h3,
body.page-template-page-homepage-php .ofh-cta h2 {color: #fff;}
body.page-template-page-homepage-php .ofh-hero h1 em {color: #ffb4a2;}
body.page-template-page-homepage-php .ofh a.ofh-btn--primary,
body.page-template-page-homepage-php .ofh a.ofh-btn--dark {color: #fff;}
body.page-template-page-homepage-php .ofh a.ofh-btn--white {color: #15151a;}
body.page-template-page-homepage-php .ofh a.ofh-head-link {color: #b85035;}
body.page-template-page-homepage-php .ofh a.ofh-head-link:hover {color: #983920;}
body.page-template-page-homepage-php .ofh a.ofh-chip {color: #fff;}
/* ── Système de grille (Müller-Brockmann) ─────────────────────────────────────
   Grille maîtresse 12 colonnes + UNE gouttière constante. Comme 3, 4, 6 et 12
   divisent 12, un repeat(3|4|6,1fr) avec gap:var(--ofh-gutter) coïncide au pixel
   avec un découpage 12-colonnes → les arêtes de toutes les sections s'alignent
   verticalement sans avoir à réécrire les templates en span-based.
   Échelle d'espacement = module de 8px (baseline). */
body.page-template-page-homepage-php .ofh {
    --ofh-gutter: 24px;        /* gouttière unique des grilles de cartes (12-col) */
    --ofh-gutter-sm: 16px;     /* micro-gouttière de la mosaïque catégories */
    --ofh-gap-lg: 64px;        /* respiration des splits éditoriaux 2-up (value / biz) */
    /* baseline 8px */
    --ofh-s2: 16px; --ofh-s3: 24px; --ofh-s4: 32px; --ofh-s5: 40px;
    --ofh-s6: 48px; --ofh-s8: 64px; --ofh-s11: 88px; --ofh-s12: 96px;
}
body.page-template-page-homepage-php .ofh-wrap {max-width: 1240px; margin: 0 auto; padding: 0 28px;}
body.page-template-page-homepage-php .ofh-btn {display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 700;
    border-radius: 9999px;
    padding: 16px 32px;
    border: none;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
    white-space: nowrap;}
body.page-template-page-homepage-php .ofh-btn:hover {transform: translateY(-2px);}
body.page-template-page-homepage-php .ofh-btn--primary {background: #b85035; color: #fff; box-shadow: 0 10px 28px rgba(184,80,53,.35);}
body.page-template-page-homepage-php .ofh-btn--primary:hover {background: #983920; color: #fff;}
body.page-template-page-homepage-php .ofh-btn--white {background: #fff; color: #15151a; box-shadow: 0 10px 28px rgba(0,0,0,.18);}
body.page-template-page-homepage-php .ofh-btn--white:hover {background: #f4f2fd;}
body.page-template-page-homepage-php .ofh-btn--dark {background: #15151a; color: #fff;}
body.page-template-page-homepage-php .ofh-btn--dark:hover {background: #2f3038; color: #fff;}
body.page-template-page-homepage-php .ofh-hero {position: relative;
    min-height: 88vh;
    display: flex;
    align-items: center;
    background: #15151a url('../img/hero/hero-tunis-desktop.webp') 75% 40%/cover no-repeat;}
@media (max-width: 768px) {
  body.page-template-page-homepage-php .ofh-hero {background-image: url('../img/hero/hero-tunis-mobile.webp'); background-position: center 30%;}
}
body.page-template-page-homepage-php .ofh-hero::before {content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to right, rgba(34,20,14,.80) 0%, rgba(34,20,14,.50) 45%, rgba(34,20,14,.05) 100%),
        linear-gradient(to top, rgba(20,12,8,.55) 0%, transparent 35%);}
body.page-template-page-homepage-php .ofh-hero-inner {position: relative; z-index: 1; width: 100%; padding: 120px 0 90px;}
body.page-template-page-homepage-php .ofh-hero-content {max-width: 700px; color: #fff;}
body.page-template-page-homepage-php .ofh-hero h1 {font-size: clamp(30px, 5.6vw, 45px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.025em;}
body.page-template-page-homepage-php .ofh-hero h1 em {font-style: normal; color: #ffb4a2;}
body.page-template-page-homepage-php .ofh-hero-sub {font-size: clamp(17px, 1.6vw, 20px);
    line-height: 1.6;
    color: rgba(255,255,255,.88);
    margin: 24px 0 36px;
    max-width: 560px;}
body.page-template-page-homepage-php .ofh-search {display: flex;
    align-items: center;
    background: #fff;
    border-radius: 9999px;
    padding: 8px 8px 8px 26px;
    max-width: 580px;
    box-shadow: 0 24px 60px rgba(0,0,0,.35);}
body.page-template-page-homepage-php .ofh-search .material-symbols-outlined {color: #554d4a; font-size: 24px; flex-shrink: 0;}
body.page-template-page-homepage-php .ofh-search input {flex: 1;
    border: none;
    outline: none;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    color: #15151a;
    background: transparent;
    padding: 12px 14px;
    min-width: 0;}
body.page-template-page-homepage-php .ofh-search input::placeholder {color: #9a9aa4;}
body.page-template-page-homepage-php .ofh-search button {border: none;
    background: #b85035;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 700;
    border-radius: 9999px;
    padding: 14px 30px;
    cursor: pointer;
    transition: background .15s ease;
    flex-shrink: 0;}
body.page-template-page-homepage-php .ofh-search button:hover {background: #983920;}
body.page-template-page-homepage-php .ofh-hero-chips {display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--ofh-s3);}
body.page-template-page-homepage-php .ofh-chip {font-size: 14px;
    font-weight: 600;
    color: #fff;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 9999px;
    padding: 8px 18px;
    backdrop-filter: blur(6px);
    transition: background .15s ease;}
body.page-template-page-homepage-php .ofh-chip:hover {background: rgba(255,255,255,.28);}
body.page-template-page-homepage-php .ofh-hero-stats {display: flex;
    flex-wrap: wrap;
    gap: 48px;
    margin-top: 64px;}
body.page-template-page-homepage-php .ofh-hero-stat .v {font-family: 'Manrope', sans-serif;
    font-size: 34px;
    font-weight: 800;
    color: #fff;}
body.page-template-page-homepage-php .ofh-hero-stat .l {font-size: 14px; color: rgba(255,255,255,.75); margin-top: 2px;}
body.page-template-page-homepage-php .ofh-section {padding: 96px 0;}
body.page-template-page-homepage-php .ofh-section--gray {background: #f7f6fb;}
body.page-template-page-homepage-php .ofh-section--dark {background: linear-gradient(160deg, #1f2024 0%, #15151a 60%); color: #fff;}
body.page-template-page-homepage-php .ofh-head {display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 48px;}
body.page-template-page-homepage-php .ofh-head h2 {font-size: clamp(23px, 3.6vw, 40px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;}
body.page-template-page-homepage-php .ofh-head p {font-size: 17px; color: #5f5e61; margin-top: 12px; max-width: 560px; line-height: 1.6;}
body.page-template-page-homepage-php .ofh-head--center {flex-direction: column; align-items: center; text-align: center;}
body.page-template-page-homepage-php .ofh-head-link {font-size: 15px;
    font-weight: 700;
    color: #b85035;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding-bottom: 4px;}
body.page-template-page-homepage-php .ofh-head-link:hover {color: #983920;}
/* ── Section catégories : mosaïque décalée + colonne texte (mécanisme Urban Sports Club) ──
   USC : le bloc sombre a une hauteur contrainte ; le bloc images (plus haut, car la
   colonne du milieu a 3 cartes) est centré via align-items:center et DÉBORDE donc en
   haut et en bas. Aucune marge négative, aucune largeur statique (ratios en fr). */
body.page-template-page-homepage-php .ofh-cats-section {background: linear-gradient(160deg, #1f2024 0%, #15151a 60%);
    color: #fff;
    margin: 120px 0;
    padding: 0;}            /* annule le padding 96px de .ofh-section : la hauteur vient du layout */
/* Découpage en 2 blocs : images 684 / contenu 450, gap 128 (ratios proportionnels). */
body.page-template-page-homepage-php .ofh-cats-layout {display: flex;
    gap: 128px;
    align-items: center;
    height: 820px;}            /* hauteur du bloc sombre — les images débordent au-dessus/dessous */
body.page-template-page-homepage-php .ofh-cats-mosaic {flex: 684 1 0;
    min-width: 0;
    display: flex;
    gap: var(--ofh-gutter-sm);
    align-items: center;}      /* centre les colonnes → milieu (3 cartes) ressort en haut/bas */
body.page-template-page-homepage-php .ofh-cats-copy {flex: 450 1 0;
    min-width: 0;}
body.page-template-page-homepage-php .ofh-cats-col {flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--ofh-gutter-sm);}
body.page-template-page-homepage-php .ofh-cat {display: block;
    border-radius: 5px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 16px 40px rgba(0,0,0,.28);
    transition: transform .2s ease, box-shadow .2s ease;}
body.page-template-page-homepage-php .ofh-cat:hover {transform: translateY(-4px);
    box-shadow: 0 22px 50px rgba(0,0,0,.38);}
body.page-template-page-homepage-php .ofh-cat-photo {position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
    background: #1f2024;}
body.page-template-page-homepage-php .ofh-cat-photo img {width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;}
body.page-template-page-homepage-php .ofh-cat:hover .ofh-cat-photo img {transform: scale(1.06);}
body.page-template-page-homepage-php .ofh-cat-name {padding: 16px 12px;
    text-align: center;
    font-family: 'Manrope', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #15151a;}
body.page-template-page-homepage-php .ofh-cats-copy {color: #fff;}
body.page-template-page-homepage-php .ofh-cats-copy .ofh-kicker {color: #ffb4a2;}
body.page-template-page-homepage-php .ofh-cats-copy h2 {font-size: clamp(24px, 3.6vw, 42px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: #fff;
    margin-bottom: 36px;}
body.page-template-page-homepage-php .ofh-cats-point + .ofh-cats-point {margin-top: 28px;}
body.page-template-page-homepage-php .ofh-cats-point h3 {font-size: clamp(20px, 2vw, 26px);
    font-weight: 800;
    color: #fff;
    line-height: 1.2;
    margin-bottom: 8px;}
body.page-template-page-homepage-php .ofh-cats-point p {font-size: 16px;
    line-height: 1.6;
    color: rgba(255,255,255,.74);
    max-width: 460px;}
body.page-template-page-homepage-php .ofh-cats-copy .ofh-btn {margin-top: 40px;}
body.page-template-page-homepage-php .ofh-value {display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ofh-gap-lg);
    align-items: center;}
body.page-template-page-homepage-php .ofh-value + .ofh-value {margin-top: var(--ofh-s11);}
body.page-template-page-homepage-php .ofh-value-media {border-radius: 24px;
    overflow: hidden;
    aspect-ratio: 5 / 4;
    background: #e3e1ec;
    box-shadow: 0 28px 64px rgba(21,21,26,.16);}
body.page-template-page-homepage-php .ofh-value-media img {width: 100%; height: 100%; object-fit: cover;}
body.page-template-page-homepage-php .ofh-kicker {display: inline-block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #b85035;
    margin-bottom: var(--ofh-s2);}
body.page-template-page-homepage-php .ofh-value-copy h3 {font-size: clamp(20px, 2.8vw, 32px);
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.2;
    margin-bottom: var(--ofh-s2);}
body.page-template-page-homepage-php .ofh-value-copy p {font-size: 16px; line-height: 1.7; color: #5f5e61; margin-bottom: var(--ofh-s2);}
body.page-template-page-homepage-php .ofh-checklist {list-style: none; padding: 0; margin: var(--ofh-s3) 0 0; display: flex; flex-direction: column; gap: 12px;}
body.page-template-page-homepage-php .ofh-checklist li {display: flex; align-items: flex-start; gap: 12px; font-size: 16px; color: #15151a; font-weight: 500;}
body.page-template-page-homepage-php .ofh-checklist .material-symbols-outlined {color: #b85035;
    font-size: 22px;
    flex-shrink: 0;
    font-variation-settings: 'FILL' 1;}
body.page-template-page-homepage-php .ofh-steps {display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ofh-gutter);}
body.page-template-page-homepage-php .ofh-step {background: #fff;
    border-radius: 20px;
    padding: 36px 30px;
    box-shadow: 0 6px 24px rgba(21,21,26,.06);
    transition: transform .15s ease, box-shadow .15s ease;}
body.page-template-page-homepage-php .ofh-step:hover {transform: translateY(-5px); box-shadow: 0 20px 48px rgba(21,21,26,.12);}
body.page-template-page-homepage-php .ofh-step-badge {width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #b85035;
    color: #fff;
    font-family: 'Manrope', sans-serif;
    font-size: 19px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--ofh-s3);}
body.page-template-page-homepage-php .ofh-step h3 {font-size: 20px; font-weight: 800; margin-bottom: 10px;}
body.page-template-page-homepage-php .ofh-step p {font-size: 15px; line-height: 1.65; color: #5f5e61;}
body.page-template-page-homepage-php .ofh-salles {display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--ofh-gutter);}
body.page-template-page-homepage-php .ofh-salle {background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(21,21,26,.07);
    transition: transform .15s ease, box-shadow .15s ease;
    display: flex;
    flex-direction: column;}
body.page-template-page-homepage-php .ofh-salle:hover {transform: translateY(-5px); box-shadow: 0 20px 48px rgba(21,21,26,.13);}
body.page-template-page-homepage-php .ofh-salle-media {height: 170px;
    background: linear-gradient(140deg, #ffdbd2, #b85035);
    position: relative;
    overflow: hidden;}
body.page-template-page-homepage-php .ofh-salle-media img {width: 100%; height: 100%; object-fit: cover;}
body.page-template-page-homepage-php .ofh-salle-monogram {position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Manrope', sans-serif;
    font-size: 64px;
    font-weight: 800;
    color: rgba(255,255,255,.92);
    text-shadow: 0 4px 16px rgba(0,0,0,.18);}
body.page-template-page-homepage-php .ofh-salle-media::after {content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.18), transparent 55%);
    pointer-events: none;}
body.page-template-page-homepage-php .ofh-salle-media img ~ .ofh-salle-monogram {display: none;}
body.page-template-page-homepage-php .ofh-salle-tag {position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #fff;
    background: rgba(0,0,0,.28);
    backdrop-filter: blur(4px);
    border-radius: 9999px;
    padding: 5px 12px 5px 9px;}
body.page-template-page-homepage-php .ofh-salle-tag .material-symbols-outlined {font-size: 15px;}
body.page-template-page-homepage-php .ofh-salle-body {padding: 18px 20px 22px; flex: 1;}
body.page-template-page-homepage-php .ofh-salle-body h3 {font-size: 16px; font-weight: 800; margin-bottom: 6px;}
body.page-template-page-homepage-php .ofh-salle-addr {font-size: 14px;
    color: #554d4a;
    display: flex;
    align-items: flex-start;
    gap: 5px;
    line-height: 1.45;}
body.page-template-page-homepage-php .ofh-salle-addr .material-symbols-outlined {font-size: 17px; flex-shrink: 0; margin-top: 1px;}
body.page-template-page-homepage-php .ofh-salle-soon {align-items: center;
    justify-content: center;
    min-height: 258px;
    gap: 10px;
    background: transparent;
    border: 1.5px dashed rgba(21,21,26,.18);
    box-shadow: none;
    color: #9a8f82;}
body.page-template-page-homepage-php .ofh-salle-soon:hover {transform: none; box-shadow: none;}
body.page-template-page-homepage-php .ofh-salle-soon-icon {font-family: 'Manrope', sans-serif; font-size: 28px; font-weight: 800; color: rgba(21,21,26,.22);}
body.page-template-page-homepage-php .ofh-salle-soon-label {font-size: 14px; font-weight: 700;}
body.page-template-page-homepage-php #tarifs {scroll-margin-top: 90px;}
body.page-template-page-homepage-php .ofh-plans {display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ofh-gutter); align-items: stretch;}
body.page-template-page-homepage-php .ofh-plan {background: #fff;
    border: 1.5px solid #e8e7f1;
    border-radius: 24px;
    padding: 38px 32px;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: transform .15s ease, box-shadow .15s ease;}
body.page-template-page-homepage-php .ofh-plan:hover {transform: translateY(-5px); box-shadow: 0 22px 52px rgba(21,21,26,.12);}
body.page-template-page-homepage-php .ofh-plan--featured {border-color: #b85035; box-shadow: 0 22px 52px rgba(184,80,53,.18);}
body.page-template-page-homepage-php .ofh-plan-flag {position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: #b85035;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-radius: 9999px;
    padding: 6px 18px;
    white-space: nowrap;}
body.page-template-page-homepage-php .ofh-plan-name {font-family: 'Manrope', sans-serif; font-size: 20px; font-weight: 800;}
body.page-template-page-homepage-php .ofh-plan-price {display: flex; align-items: baseline; gap: 8px; margin: 20px 0 6px;}
body.page-template-page-homepage-php .ofh-plan-price .amount {font-family: 'Manrope', sans-serif;
    font-size: 48px;
    font-weight: 800;
    letter-spacing: -0.03em;}
body.page-template-page-homepage-php .ofh-plan-price .cur {font-size: 17px; font-weight: 700; color: #5f5e61;}
body.page-template-page-homepage-php .ofh-plan-credits {font-size: 14px; font-weight: 600; color: #b85035; margin-bottom: 20px;}
body.page-template-page-homepage-php .ofh-plan-desc {font-size: 15px; line-height: 1.65; color: #5f5e61; margin-bottom: 30px; flex: 1;}
body.page-template-page-homepage-php .ofh-features {display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--ofh-gutter);}
body.page-template-page-homepage-php .ofh-feature {background: #fff;
    border-radius: 20px;
    padding: 32px 28px;
    box-shadow: 0 6px 24px rgba(21,21,26,.06);
    transition: transform .15s ease, box-shadow .15s ease;}
body.page-template-page-homepage-php .ofh-feature:hover {transform: translateY(-5px); box-shadow: 0 20px 48px rgba(21,21,26,.12);}
body.page-template-page-homepage-php .ofh-feature > .material-symbols-outlined {font-size: 34px;
    color: #b85035;
    background: #ffdbd2;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;}
body.page-template-page-homepage-php .ofh-feature strong {display: block; font-family: 'Manrope', sans-serif; font-size: 18px; font-weight: 800; margin-bottom: 8px;}
body.page-template-page-homepage-php .ofh-feature p {font-size: 14px; line-height: 1.6; color: #5f5e61;}
body.page-template-page-homepage-php .ofh-biz-grid {display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ofh-gap-lg);
    align-items: center;}
body.page-template-page-homepage-php .ofh-biz-grid h2 {font-size: clamp(23px, 3.6vw, 40px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin-bottom: var(--ofh-s2);}
body.page-template-page-homepage-php .ofh-biz-grid > div > p {font-size: 16px; line-height: 1.7; color: #c8c6c9; margin-bottom: 30px;}
body.page-template-page-homepage-php .ofh-biz-media {border-radius: 24px;
    overflow: hidden;
    aspect-ratio: 5 / 4;
    background: #2f3038;}
body.page-template-page-homepage-php .ofh-biz-media img {width: 100%; height: 100%; object-fit: cover;}
body.page-template-page-homepage-php .ofh-biz-stats {display: flex; gap: 40px; margin-top: 36px;}
body.page-template-page-homepage-php .ofh-biz-stats .v {font-family: 'Manrope', sans-serif; font-size: 30px; font-weight: 800; color: #ffb4a2;}
body.page-template-page-homepage-php .ofh-biz-stats .l {font-size: 13px; color: #c8c6c9; margin-top: 2px;}
body.page-template-page-homepage-php .ofh-cta {background:
        radial-gradient(circle at 80% 0%, rgba(255,180,162,.35), transparent 50%),
        linear-gradient(150deg, #b85035 0%, #812810 70%);
    border-radius: 28px;
    padding: 80px 56px;
    text-align: center;
    color: #fff;}
body.page-template-page-homepage-php .ofh-cta h2 {font-size: clamp(25px, 4vw, 44px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;}
body.page-template-page-homepage-php .ofh-cta p {font-size: 18px; color: #ffdbd2; margin: 18px auto 36px; max-width: 520px; line-height: 1.6;}
body.page-template-page-homepage-php .ofh-faq-item {border-top: 1px solid rgba(21,21,26,.1);}
body.page-template-page-homepage-php .ofh-faq-item:last-child {border-bottom: 1px solid rgba(21,21,26,.1);}
body.page-template-page-homepage-php .ofh-faq-q {all: unset;
    box-sizing: border-box;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding-block: 18px;
    font-size: 16px;
    font-weight: 700;
    color: #15151a;}
body.page-template-page-homepage-php .ofh-faq-q:focus-visible {outline: 2px solid #b85035; outline-offset: 3px; border-radius: 4px;}
body.page-template-page-homepage-php .ofh-faq-icon {flex-shrink: 0; font-size: 22px; color: #b85035; transition: transform .2s ease;}
body.page-template-page-homepage-php .ofh-faq-q[aria-expanded="true"] .ofh-faq-icon {transform: rotate(45deg);}
body.page-template-page-homepage-php .ofh-faq-a {max-height: 0; overflow: hidden; transition: max-height .25s ease;}
body.page-template-page-homepage-php .ofh-faq-a p {font-size: 15px; line-height: 1.6; color: #5f5e61; padding-bottom: 18px;}
@media (prefers-reduced-motion: reduce) {
body.page-template-page-homepage-php .ofh-faq-a {transition: none;}
body.page-template-page-homepage-php .ofh-faq-icon {transition: none;}
}
@media (max-width: 1024px) {
body.page-template-page-homepage-php .ofh-cats-section {margin: 48px 0; padding: 56px 0;}
body.page-template-page-homepage-php .ofh-cats-layout {flex-direction: column; height: auto; align-items: stretch; gap: 48px;}
body.page-template-page-homepage-php .ofh-cats-copy {order: -1;}
body.page-template-page-homepage-php .ofh-cats-mosaic {align-items: flex-start; justify-content: center;}
body.page-template-page-homepage-php .ofh-salles {grid-template-columns: repeat(2, 1fr);}
body.page-template-page-homepage-php .ofh-features {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 860px) {
body.page-template-page-homepage-php .ofh-section {padding: 64px 0;}
body.page-template-page-homepage-php .ofh-hero {min-height: 72vh;}
body.page-template-page-homepage-php .ofh-hero-inner {padding: 96px 0 64px;}
body.page-template-page-homepage-php .ofh-value,
body.page-template-page-homepage-php .ofh-biz-grid {grid-template-columns: 1fr; gap: var(--ofh-s5);}
body.page-template-page-homepage-php .ofh-value--flip .ofh-value-media {order: -1;}
body.page-template-page-homepage-php .ofh-steps,
body.page-template-page-homepage-php .ofh-plans,
body.page-template-page-homepage-php .ofh-features {grid-template-columns: 1fr;}
body.page-template-page-homepage-php .ofh-cats-col--0,
body.page-template-page-homepage-php .ofh-cats-col--2 {margin-top: 32px;}
body.page-template-page-homepage-php .ofh-head {flex-direction: column; align-items: flex-start;}
body.page-template-page-homepage-php .ofh-hero-stats {gap: 28px; margin-top: 44px;}
body.page-template-page-homepage-php .ofh-cta {padding: 56px 28px;}
}
/* ─── Catégories : slider horizontal en mobile uniquement (desktop = mosaïque décalée) ─── */
@media (max-width: 767px) {
body.page-template-page-homepage-php .ofh-cats-mosaic {display: flex;
    flex: 0 0 auto;            /* évite l'écrasement à 0 : conteneur de scroll enfant d'un flex-column */
    flex-wrap: nowrap;
    align-items: flex-start;   /* les cartes prennent leur hauteur (aspect-ratio) au lieu de s'étirer sur 0 */
    justify-content: flex-start; /* annule le center hérité (≤1024) : sinon les 1ères cartes sortent à gauche et sont inaccessibles */
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-padding-left: 4px;
    padding-bottom: 18px;
    /* Barre de progression = scrollbar native stylée (façon Urban Sports Club), proportionnelle, sans JS. */
    scrollbar-width: thin;
    scrollbar-color: #fff rgba(255,255,255,.22);}
body.page-template-page-homepage-php .ofh-cats-mosaic::-webkit-scrollbar {height: 4px;}
body.page-template-page-homepage-php .ofh-cats-mosaic::-webkit-scrollbar-track {background: rgba(255,255,255,.22); border-radius: 99px;}
body.page-template-page-homepage-php .ofh-cats-mosaic::-webkit-scrollbar-thumb {background: #fff; border-radius: 99px;}
/* On aplatit les 3 colonnes : chaque carte devient une « slide » individuelle. */
body.page-template-page-homepage-php .ofh-cats-col {display: contents;}
body.page-template-page-homepage-php .ofh-cat {order: var(--ofh-order, 0);
    flex: 0 0 220px;           /* largeur fixe des cartes du slider, identique à toutes les tailles d'écran */
    max-width: 220px;
    border-radius: 10px;       /* coins arrondis façon Urban Sports Club */
    scroll-snap-align: start;}
body.page-template-page-homepage-php .ofh-cats-col--0,
body.page-template-page-homepage-php .ofh-cats-col--2 {margin-top: 0;}
body.page-template-page-homepage-php .ofh-cat-photo {height: auto; aspect-ratio: 3 / 4;}
body.page-template-page-homepage-php .ofh-cat-name {color: #4a4d51; font-size: 18px; line-height: 22px; padding: 18px 10px;}
}
@media (max-width: 560px) {
body.page-template-page-homepage-php .ofh-salles {grid-template-columns: 1fr;}
body.page-template-page-homepage-php .ofh-search {flex-wrap: wrap; border-radius: 24px; padding: 14px; gap: 8px;}
body.page-template-page-homepage-php .ofh-search button {width: 100%;}
}
@media (max-width: 420px) {
/* Boutons CTA compacts : « Commencer maintenant » débordait le bloc à 320px (286px pour 264px dispo). */
body.page-template-page-homepage-php .ofh-btn {padding: 13px 20px; font-size: 15px; gap: 6px; max-width: 100%;}
body.page-template-page-homepage-php .ofh-btn .material-symbols-outlined {font-size: 18px;}
/* Stats partenaire : gap et chiffres réduits (le bloc remplissait toute la largeur, trop serré). */
body.page-template-page-homepage-php .ofh-biz-stats {gap: 18px;}
body.page-template-page-homepage-php .ofh-biz-stats .v {font-size: 22px;}
}
/* Newsletter — bande pleine largeur avec image de fond + overlay CLAIR (contraste avec le footer sombre #121217) */
body.page-template-page-homepage-php .ofh-news {position: relative; padding: 120px 28px;
    background-size: cover; background-position: center; background-repeat: no-repeat;
    text-align: center; color: #15151a;}
body.page-template-page-homepage-php .ofh-news-inner {position: relative; max-width: 640px; margin: 0 auto;}
body.page-template-page-homepage-php .ofh-news .ofh-kicker {color: #b85035;}
body.page-template-page-homepage-php .ofh-news h2 {font-size: clamp(25px,4vw,44px); font-weight: 800; letter-spacing: -0.02em; color: #15151a;}
body.page-template-page-homepage-php .ofh-news p {font-size: 17px; color: #4a4d51; margin: 16px auto 30px; max-width: 540px; line-height: 1.6;}
body.page-template-page-homepage-php .ofh-news-form {max-width: 540px; margin: 0 auto;}
/* Email + bouton sur la même ligne : CF7 emballe tout dans un seul <p> avec des <br> → on met le flex sur le <p> et on masque les <br>. */
body.page-template-page-homepage-php .ofh-news-form .ofa-cf7-inline,
body.page-template-page-homepage-php .ofh-news-form .ofa-cf7-inline > p {display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: center; margin: 0;}
body.page-template-page-homepage-php .ofh-news-form .ofa-cf7-inline br {display: none;}
body.page-template-page-homepage-php .ofh-news-form .wpcf7-form-control-wrap {flex: 1 1 220px; min-width: 220px;}
body.page-template-page-homepage-php .ofh-news-form input[type="email"] {width: 100%; border: 1px solid rgba(21,21,26,.12); outline: none; border-radius: 9999px;
    padding: 16px 24px; font-family: 'Inter', sans-serif; font-size: 16px; color: #15151a; background: #fff;
    box-shadow: 0 6px 18px rgba(21,21,26,.08);}  /* détache le champ blanc du fond clair */
body.page-template-page-homepage-php .ofh-news-form input[type="submit"] {border: none; cursor: pointer; border-radius: 9999px; padding: 16px 32px;
    font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 700; background: #b85035; color: #fff;
    transition: background .15s ease, transform .15s ease;}
body.page-template-page-homepage-php .ofh-news-form input[type="submit"]:hover {background: #983920; transform: translateY(-2px);}
body.page-template-page-homepage-php .ofh-news-form .wpcf7-spinner {margin: 10px auto 0;}
body.page-template-page-homepage-php .ofh-news-form .wpcf7-response-output {color: #15151a; border-radius: 12px; margin: 14px auto 0 !important; padding: 10px 16px !important; max-width: 520px;}
body.page-template-page-homepage-php .ofh-news-note {font-size: 13px; color: #7a7d82; margin-top: 16px;}
@media (max-width: 560px) {
body.page-template-page-homepage-php .ofh-news {padding: 80px 20px;}
body.page-template-page-homepage-php .ofh-news-form input[type="submit"] {width: 100%;}
}

/* ===== template-parts/footer.php ===== */
.ofsf {
	background: #121217;
	color: #9a9aa4;
	font-family: 'Inter', 'Manrope', system-ui, -apple-system, sans-serif;
	padding: 64px 0 0;
	margin-top: auto;
}
.ofsf-wrap { max-width: 1240px; margin: 0 auto; padding: 0 28px; }
.ofsf-top {
	display: grid;
	grid-template-columns: 1.4fr 2fr;
	gap: 48px;
	padding-bottom: 48px;
}
.ofsf-brand { max-width: 340px; }
.ofsf-logo {
	font-family: 'Manrope', 'Inter', sans-serif;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: #fff;
	text-decoration: none;
	display: inline-block;
}
.ofsf-logo span { color: #ff8a66; }
.ofsf-tagline { font-size: 14.5px; line-height: 1.6; color: #8c8c97; margin: 16px 0 22px; }
.ofsf-social { display: flex; gap: 12px; }
.ofsf-social a {
	width: 40px; height: 40px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: rgba(255,255,255,.07);
	color: #cfcfd6;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}
.ofsf-social a:hover { background: #b85035; color: #fff; transform: translateY(-3px); }
.ofsf-social svg { width: 19px; height: 19px; display: block; }

.ofsf-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.ofsf-col span {
	font-family: 'Manrope', 'Inter', sans-serif;
	font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
	color: #fff; margin: 0 0 18px;
}
.ofsf-col a {
	display: block;
	font-size: 14.5px;
	color: #9a9aa4;
	text-decoration: none;
	padding: 7px 0;
	transition: color .15s ease, padding-left .15s ease;
}
.ofsf-col a:hover { color: #ff8a66; padding-left: 4px; }

.ofsf-bottom {
	border-top: 1px solid rgba(255,255,255,.08);
	padding: 22px 0 26px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	font-size: 13.5px;
}
.ofsf-bottom span { color: #a8a8b3; } /* WCAG AA : contraste ≥4.5 sur le footer sombre #121217 */

/* WCAG AA : libellés de séparateur (« OU CONTINUER AVEC »…) sur les pages d'auth.
   text-outline (#8a726c) donnait 4.46 sur blanc ; on assombrit juste ces libellés
   (override ciblé, prio 10000 > Tailwind, sans rebuild du token global). */
.text-outline.bg-surface-container-lowest { color: #79645d; }
.ofsf-legal { display: flex; gap: 22px; flex-wrap: wrap; }
.ofsf-legal a { color: #8c8c97; text-decoration: none; transition: color .15s ease; }
.ofsf-legal a:hover { color: #ff8a66; }

@media (max-width: 860px) {
	.ofsf-top { grid-template-columns: 1fr; gap: 36px; }
	.ofsf-brand { max-width: none; }
	.ofsf-bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 560px) {
	.ofsf-cols { grid-template-columns: 1fr 1fr; gap: 24px; }
}

/* ===== template-parts/nav-public.php ===== */
.ofpn-nav {
    top: 0; left: 0; right: 0;
    z-index: 50;
    padding: 18px 0;
    font-family: 'Inter', sans-serif;
    transition: background .25s ease, box-shadow .25s ease, padding .25s ease;
}

.ofpn-nav--overlay { position: fixed; }
.ofpn-nav--solid   { position: sticky; }
.ofpn-wrap {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.ofpn-logo { display: inline-flex; align-items: center; text-decoration: none; }
.ofpn-logo img { max-height: 40px; width: auto; }
.ofpn-logo-text {
    font-family: 'Manrope', sans-serif;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.03em;
    transition: color .25s ease;
}
.ofpn-links { display: flex; align-items: center; gap: 30px; }
.ofpn-links a {
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: color .25s ease, opacity .15s ease;
}
.ofpn-links a:hover { opacity: .7; }
.ofpn-actions { display: flex; align-items: center; gap: 18px; }
.ofpn-login {
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: color .25s ease, opacity .15s ease;
}
.ofpn-login:hover { opacity: .7; }
.ofpn-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 9999px;
    padding: 11px 22px;
    text-decoration: none;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
    transition: transform .15s ease, background .15s ease, color .15s ease;
}
.ofpn-btn:hover { transform: translateY(-2px); }
.ofpn-btn .material-symbols-outlined { font-size: 18px; }


.ofpn-nav--overlay {
    background: linear-gradient(to bottom, rgba(10,10,14,.55) 0%, rgba(10,10,14,0) 100%);
}
.ofpn-nav--overlay .ofpn-logo-text { color: #fff; }
.ofpn-nav--overlay .ofpn-logo-text span { color: #ffb4a2; }
.ofpn-nav--overlay .ofpn-links a { color: rgba(255,255,255,.92); }
.ofpn-nav--overlay .ofpn-login { color: #fff; }
.ofpn-nav--overlay .ofpn-btn { background: #fff; color: #15151a; }


.ofpn-nav--solid,
.ofpn-nav--overlay.is-scrolled {
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 24px rgba(21,21,26,.08);
    padding: 12px 0;
}
.ofpn-nav--solid .ofpn-logo-text,
.ofpn-nav--overlay.is-scrolled .ofpn-logo-text { color: #15151a; }
.ofpn-nav--solid .ofpn-logo-text span,
.ofpn-nav--overlay.is-scrolled .ofpn-logo-text span { color: #b85035; }
.ofpn-nav--solid .ofpn-links a,
.ofpn-nav--overlay.is-scrolled .ofpn-links a { color: #2f3038; }
.ofpn-nav--solid .ofpn-login,
.ofpn-nav--overlay.is-scrolled .ofpn-login { color: #15151a; }
.ofpn-nav--solid .ofpn-btn,
.ofpn-nav--overlay.is-scrolled .ofpn-btn { background: #b85035; color: #fff; }

@media (max-width: 860px) {
    .ofpn-links { display: none; }
    .ofpn-login { display: none; }
}

/* ===== Menu burger mobile (drawer) — nav-public.php ===== */
.ofpn-burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    margin: 0; padding: 0;
    border: 0; background: transparent;
    color: #15151a; cursor: pointer;
    -webkit-appearance: none; appearance: none;
}
.ofpn-burger .material-symbols-outlined { font-size: 30px; }
/* Couleur du burger selon la variante (cohérent avec les liens) */
.ofpn-nav--overlay .ofpn-burger { color: #fff; }
.ofpn-nav--solid .ofpn-burger,
.ofpn-nav--overlay.is-scrolled .ofpn-burger { color: #15151a; }

/* Backdrop + drawer : présents dans le DOM, masqués hors mobile */
.ofpn-drawer-backdrop,
.ofpn-drawer { display: none; }

@media (max-width: 860px) {
    .ofpn-burger { display: inline-flex; }
    /* On garde le CTA « S'inscrire » / « Mon espace » visible dans la barre du haut.
       Seul le lien secondaire « Connexion » est masqué (il reste dans le drawer). */
    .ofpn-actions { display: flex; gap: 10px; margin-left: auto; }
    .ofpn-actions .ofpn-btn { padding: 9px 16px; font-size: 14px; }
    .ofpn-wrap { gap: 12px; padding: 0 16px; }
    .ofpn-burger { margin-left: 4px; }

    .ofpn-drawer-backdrop {
        display: block;
        position: fixed; inset: 0;
        z-index: 1099;
        background: rgba(15, 15, 20, 0.45);
        opacity: 0; visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
    }
    .ofpn-drawer-backdrop.is-open { opacity: 1; visibility: visible; }

    .ofpn-drawer {
        display: flex;
        flex-direction: column;
        position: fixed; inset: 0;
        z-index: 1100;
        width: 100%; height: 100%;
        background: #fff;
        transform: translateX(100%);
        transition: transform .28s cubic-bezier(.4, 0, .2, 1);
        padding: 18px 22px calc(22px + env(safe-area-inset-bottom, 0px));
        overflow-y: auto;
    }
    .ofpn-drawer.is-open { transform: translateX(0); }

    .ofpn-drawer-head {
        display: flex; align-items: center; justify-content: space-between;
        margin-bottom: 18px;
    }
    .ofpn-drawer-logo { font-size: 1.4rem; font-weight: 800; letter-spacing: -.02em; color: #15151a; text-decoration: none; }
    .ofpn-drawer-logo span { color: #b85035; }
    .ofpn-drawer-close {
        display: inline-flex; align-items: center; justify-content: center;
        width: 40px; height: 40px;
        border: 0; background: transparent; color: #15151a; cursor: pointer;
    }
    .ofpn-drawer-close .material-symbols-outlined { font-size: 28px; }

    .ofpn-drawer-links { display: flex; flex-direction: column; }
    .ofpn-drawer-links a {
        display: block;
        padding: 14px 8px;
        font-size: 1.05rem; font-weight: 600; color: #2f3038;
        text-decoration: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    }
    .ofpn-drawer-links a.is-active { color: #b85035; }

    .ofpn-drawer-actions { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; }
    .ofpn-drawer-actions .ofpn-btn-block {
        width: 100%; justify-content: center;
        background: #b85035; color: #fff;
        padding: 13px 18px; border-radius: 12px;
        font-weight: 700; text-decoration: none; text-align: center;
    }
    .ofpn-drawer-login {
        text-align: center; padding: 12px; color: #15151a;
        font-weight: 600; text-decoration: none;
        border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 12px;
    }

    body.ofpn-noscroll { overflow: hidden; }
}

/* ===== Bottom tab bar mobile — espace adhérent (dashboard-adherent/nav.php) ===== */
.ofa-tabbar { display: none; }
@media (max-width: 767.98px) {
    .ofa-tabbar {
        display: flex;
        position: fixed;
        left: 0; right: 0; bottom: 0;
        z-index: 1000;
        background: rgba(255, 255, 255, 0.97);
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
        border-top: 1px solid rgba(0, 0, 0, 0.08);
        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
        padding: 6px 4px;
        padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px));
    }
    .ofa-tab {
        flex: 1 1 0;
        min-width: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        padding: 4px 2px;
        color: #6b7280;
        text-decoration: none;
        font-size: 11px;
        font-weight: 600;
        line-height: 1.15;
    }
    .ofa-tab i,
    .ofa-tab .material-symbols-outlined { font-size: 21px; line-height: 1; }
    .ofa-tabbar-label {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .ofa-tab.is-active { color: #b85035; }
    /* Réserve l'espace bas (uniquement sur les pages qui rendent la barre) */
    body:has(.ofa-tabbar) { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px)); }
}

/* ===== Menu burger mobile (drawer) — espace partenaire (dashboard-partenaire/nav.php) ===== */
.ofp-burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    margin: 0; padding: 0;
    border: 0; background: transparent;
    color: #15151a; cursor: pointer;
    -webkit-appearance: none; appearance: none;
}
.ofp-burger .material-symbols-outlined { font-size: 30px; }
.ofp-drawer-backdrop, .ofp-drawer { display: none; }

/* Le burger couvre jusqu'à 1279.98px : sous 1280px, 7 liens + 2 CTAs ne tiennent
   pas dans le conteneur max-w-7xl — le lien « Revenus » passait SOUS le bouton
   « Nouvelle salle » (bug corrigé 2026-07-04). La nav desktop s'affiche en xl:. */
@media (max-width: 1279.98px) {
    .ofp-burger { display: inline-flex; }
    /* Sur tablette/mobile, le drawer porte la nav : on masque CTAs + avatar du top bar */
    .ofp-topbar-hide { display: none !important; }

    .ofp-drawer-backdrop {
        display: block;
        position: fixed; inset: 0;
        z-index: 1099;
        background: rgba(15, 15, 20, 0.45);
        opacity: 0; visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
    }
    .ofp-drawer-backdrop.is-open { opacity: 1; visibility: visible; }

    .ofp-drawer {
        display: flex;
        flex-direction: column;
        position: fixed; inset: 0;
        z-index: 1100;
        width: 100%; height: 100%;
        background: #fff;
        transform: translateX(100%);
        transition: transform .28s cubic-bezier(.4, 0, .2, 1);
        padding: 18px 22px calc(22px + env(safe-area-inset-bottom, 0px));
        overflow-y: auto;
    }
    .ofp-drawer.is-open { transform: translateX(0); }

    .ofp-drawer-head {
        display: flex; align-items: center; justify-content: space-between;
        margin-bottom: 18px;
    }
    .ofp-drawer-logo { font-size: 1.4rem; font-weight: 800; letter-spacing: -.02em; color: #15151a; text-decoration: none; }
    .ofp-drawer-logo span { color: #b85035; }
    .ofp-drawer-close {
        display: inline-flex; align-items: center; justify-content: center;
        width: 40px; height: 40px;
        border: 0; background: transparent; color: #15151a; cursor: pointer;
    }
    .ofp-drawer-close .material-symbols-outlined { font-size: 28px; }

    .ofp-drawer-links { display: flex; flex-direction: column; }
    .ofp-drawer-links a {
        display: block;
        padding: 14px 8px;
        font-size: 1.05rem; font-weight: 600; color: #2f3038;
        text-decoration: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    }
    .ofp-drawer-links a.is-active { color: #b85035; }

    .ofp-drawer-actions { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; }
    .ofp-btn-block {
        width: 100%; justify-content: center; text-align: center;
        padding: 13px 18px; border-radius: 12px;
        font-weight: 700; text-decoration: none;
        background: #f0e9e2; color: #15151a;
    }
    .ofp-btn-block.ofp-btn-primary { background: #b85035; color: #fff; }
    .ofp-drawer-link-sec {
        text-align: center; padding: 10px; color: #6b7280;
        font-weight: 600; text-decoration: none; font-size: .95rem;
    }

    body.ofp-noscroll { overflow: hidden; }
}

/* ===== template-parts/page-contact.php ===== */
body.page-template-template-partspage-contact-php .ofa-contact-grid {display: grid; grid-template-columns: 1fr; gap: 1.5rem;}
@media (min-width: 900px) {
body.page-template-template-partspage-contact-php .ofa-contact-grid {grid-template-columns: 0.8fr 1.2fr;}
}
body.page-template-template-partspage-contact-php .ofa-contact-info .ofa-info-item {display: flex; gap: 0.9rem; align-items: flex-start; margin-bottom: 1.25rem;}
body.page-template-template-partspage-contact-php .ofa-contact-info .ofa-info-item i {color: var(--accent); font-size: 1.1rem; margin-top: 3px; width: 22px; text-align: center;}
body.page-template-template-partspage-contact-php .ofa-contact-info .ofa-info-item small {display: block; color: var(--muted); text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.06em; font-weight: 700;}
body.page-template-template-partspage-contact-php .ofa-cf7 .ofa-cf7-row {margin-bottom: 1.1rem;}
body.page-template-template-partspage-contact-php .ofa-cf7 label {display: block; font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted);}
body.page-template-template-partspage-contact-php .ofa-cf7 input[type="text"],
body.page-template-template-partspage-contact-php .ofa-cf7 input[type="email"],
body.page-template-template-partspage-contact-php .ofa-cf7 textarea {width: 100%; margin-top: 0.4rem; padding: 0.7rem 0.9rem; border: 1px solid rgba(31,41,51,0.15);
        border-radius: var(--radius-md); background: #fff; font: inherit; color: var(--text);}
body.page-template-template-partspage-contact-php .ofa-cf7 textarea {min-height: 130px; resize: vertical;}
body.page-template-template-partspage-contact-php .ofa-cf7 input:focus,
body.page-template-template-partspage-contact-php .ofa-cf7 textarea:focus {border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); outline: none;}
body.page-template-template-partspage-contact-php .ofa-cf7 .wpcf7-not-valid-tip {color: var(--danger-text); font-size: 0.8rem;}
body.page-template-template-partspage-contact-php .ofa-cf7 .wpcf7-response-output {border-radius: var(--radius-md); padding: 0.8rem 1rem !important; margin: 1rem 0 0 !important;}

/* ===== template-parts/page-legal.php ===== */
body.page-template-template-partspage-legal-php .ofa-legal {max-width: 860px; margin: 2.5rem auto; padding: 2.5rem 2.75rem;}
body.page-template-template-partspage-legal-php .ofa-legal h1 {font-family: 'Fraunces', serif; font-size: clamp(1.8rem, 4vw, 2.4rem); color: var(--text); margin: 0 0 .4rem;}
body.page-template-template-partspage-legal-php .ofa-legal .ofa-legal-updated {color: var(--muted); font-size: .9rem; margin-bottom: 2rem;}
body.page-template-template-partspage-legal-php .ofa-legal-content {color: var(--text); line-height: 1.7; font-size: 1rem;}
body.page-template-template-partspage-legal-php .ofa-legal-content h2 {font-family: 'Fraunces', serif; font-size: 1.3rem; margin: 2rem 0 .8rem; color: var(--text);}
body.page-template-template-partspage-legal-php .ofa-legal-content h3 {font-size: 1.05rem; margin: 1.4rem 0 .5rem; color: var(--text);}
body.page-template-template-partspage-legal-php .ofa-legal-content p {margin: 0 0 1rem; color: var(--muted);}
body.page-template-template-partspage-legal-php .ofa-legal-content ul {margin: 0 0 1rem 1.2rem; color: var(--muted);}
body.page-template-template-partspage-legal-php .ofa-legal-content li {margin-bottom: .4rem;}
body.page-template-template-partspage-legal-php .ofa-legal-content a {color: var(--accent-deep);}
body.page-template-template-partspage-legal-php .ofa-legal-content strong {color: var(--text);}

/* ===== template-parts/page-login.php ===== */
body.page-template-template-partspage-login-php {font-family: 'Inter', sans-serif; background-color: #f9f9ff;}
body.page-template-template-partspage-login-php .material-symbols-outlined {font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;}
body.page-template-template-partspage-login-php .auth-split-layout {min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr;}
/* Hero collé à l'écran : marque + tagline restent visibles pendant le scroll */
body.page-template-template-partspage-login-php .hero-side {position: sticky; top: 0; align-self: start; height: 100vh;}
@media (max-width: 768px) {
body.page-template-template-partspage-login-php .auth-split-layout {grid-template-columns: 1fr;}
body.page-template-template-partspage-login-php .hero-side {display: none;}
}

/* ===== template-parts/page-mot-de-passe-oublie.php ===== */
body.page-template-template-partspage-mot-de-passe-oublie-php {font-family: 'Inter', sans-serif; background-color: #f9f9ff;}
body.page-template-template-partspage-mot-de-passe-oublie-php .material-symbols-outlined {font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;}
body.page-template-template-partspage-mot-de-passe-oublie-php .auth-split-layout {min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr;}
@media (max-width: 768px) {
body.page-template-template-partspage-mot-de-passe-oublie-php .auth-split-layout {grid-template-columns: 1fr;}
body.page-template-template-partspage-mot-de-passe-oublie-php .hero-side {display: none;}
}

/* ===== Chrome mobile (nav publique + footer) sur les pages d'authentification ===== */
/* Desktop : le côté « hero » porte déjà la marque → chrome masqué. */
/* Mobile (≤768px, hero caché) : on affiche la nav publique en header + le footer du site. */
.auth-mobile-chrome {display: none;}
@media (max-width: 768px) {
.auth-mobile-chrome {display: block;}
}

/* ===== template-parts/404.php (page non trouvée) ===== */
body.error404 .ofa-page {font-family: 'Inter', system-ui, -apple-system, sans-serif; color: var(--text); background: linear-gradient(180deg, #f9f4ec 0%, #f3ede4 100%); min-height: 60vh; display: flex; align-items: center; padding: 48px 0;}
body.error404 .ofa-page * {box-sizing: border-box;}
body.error404 .ofa-shell {width: min(calc(100% - 32px), 640px); margin: 0 auto;}
body.error404 .ofa-404 {background: var(--surface); border: 1px solid rgba(255,255,255,0.5); border-radius: var(--radius-xl); box-shadow: var(--shadow); backdrop-filter: blur(12px); padding: 3rem 2.75rem; text-align: center;}
body.error404 .ofa-404-code {font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: clamp(4rem, 14vw, 7rem); line-height: 1; margin: 0; background: var(--accent-deep, #b85035); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;}
body.error404 .ofa-404 h1 {font-family: 'Fraunces', Georgia, serif; font-weight: 600; font-size: clamp(1.5rem, 4vw, 2rem); color: var(--text); margin: .5rem 0 .75rem;}
body.error404 .ofa-404-lead {color: var(--muted); line-height: 1.6; margin: 0 auto 2rem; max-width: 42ch;}
body.error404 .ofa-404-actions {display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-bottom: 2rem;}
body.error404 .ofa-btn {border: 0; border-radius: 999px; padding: 12px 24px; font: inherit; font-size: .95rem; font-weight: 600; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; transition: all .2s ease; background: var(--accent-deep, #b85035); color: #fff; box-shadow: 0 10px 25px rgba(185,80,53,0.25);}
body.error404 .ofa-btn:hover {transform: translateY(-2px); filter: brightness(0.93);}
body.error404 .ofa-btn-ghost {background: rgba(255,255,255,0.78); color: var(--text); box-shadow: 0 6px 16px rgba(0,0,0,0.06); border: 1px solid rgba(0,0,0,0.06);}
body.error404 .ofa-404-links {display: flex; flex-wrap: wrap; gap: 1.25rem; justify-content: center; padding-top: 1.5rem; border-top: 1px solid rgba(0,0,0,0.08);}
body.error404 .ofa-404-links a {color: var(--accent-deep); font-size: .9rem; font-weight: 500; text-decoration: none;}
body.error404 .ofa-404-links a:hover {text-decoration: underline;}

/* ===== dashboard-adherent/page-check-in.php (scanner check-in) ===== */
body.page-template-dashboard-adherentpage-check-in-php {--bg: #f6f1e8;
        --surface: rgba(255, 252, 247, 0.86);
        --card: #ffffff;
        --text: #1f2933;
        --muted: #667085;
        --line: rgba(31, 41, 51, 0.08);
        --shadow: 0 20px 60px rgba(39, 32, 24, 0.12);
        --accent: #d96b4d;
        --accent-deep: #b85035;
        --accent-soft: #fde6de;
        --sage-soft: #e4efe7;
        --danger-soft: #fce8e6;
        --danger-text: #9f3a2b;
        --radius-xl: 28px;
        --radius-lg: 20px;
        --radius-md: 14px;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-page * {box-sizing: border-box;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-page {font-family: 'Inter', system-ui, -apple-system, sans-serif; color: var(--text); min-height: 100vh; padding-bottom: 60px;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-page h1,
body.page-template-dashboard-adherentpage-check-in-php .ofa-page h2,
body.page-template-dashboard-adherentpage-check-in-php .ofa-page h3 {margin: 0; font-weight: 600; line-height: 1.1; font-family: 'Fraunces', Georgia, serif;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-page p {margin: 0; color: var(--muted);}
body.page-template-dashboard-adherentpage-check-in-php .ofa-page a {color: inherit; text-decoration: none;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-shell {width: min(calc(100% - 32px), 1280px); margin: 24px auto 0;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-hero-title {padding: 2rem 0; text-align: center; margin-bottom: 1rem;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-hero-title h1 {font-size: clamp(1.6rem, 4vw + .4rem, 2.6rem); display: flex; align-items: center; justify-content: center; gap: 1rem;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-hero-title p {max-width: 52ch; margin: 0.75rem auto 0;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-btn,
body.page-template-dashboard-adherentpage-check-in-php .ghost-btn {border: 0; border-radius: 999px; padding: 12px 22px; font: inherit; font-size: 0.95rem; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; justify-content: center; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-btn {background: var(--accent-deep, #b85035); color: #fff; box-shadow: 0 16px 30px rgba(185,80,53,0.25);}
body.page-template-dashboard-adherentpage-check-in-php .ghost-btn {background: rgba(255,255,255,0.78); color: var(--text); border: 1px solid var(--line);}
body.page-template-dashboard-adherentpage-check-in-php .ofa-btn:hover,
body.page-template-dashboard-adherentpage-check-in-php .ghost-btn:hover {transform: translateY(-2px);}
body.page-template-dashboard-adherentpage-check-in-php .ofa-btn:disabled,
body.page-template-dashboard-adherentpage-check-in-php .ghost-btn:disabled {opacity: 0.5; cursor: not-allowed; transform: none;}
body.page-template-dashboard-adherentpage-check-in-php .ofa-panel {background: var(--surface); border: 1px solid rgba(255,255,255,0.5); border-radius: var(--radius-xl); box-shadow: var(--shadow); backdrop-filter: blur(12px);}
body.page-template-dashboard-adherentpage-check-in-php .ofa-empty-state {text-align: center; padding: 60px 40px;}
body.page-template-dashboard-adherentpage-check-in-php .of-section-title {font-family: 'Fraunces', Georgia, serif; font-size: 1.4rem; font-weight: 600; margin: 2.25rem 0 1rem;}
/* Scanner */
body.page-template-dashboard-adherentpage-check-in-php .of-scan-panel {padding: 28px; display: grid; gap: 18px; justify-items: start;}
body.page-template-dashboard-adherentpage-check-in-php .of-scan-head h2 {font-size: 1.3rem; display: flex; align-items: center; gap: 10px;}
body.page-template-dashboard-adherentpage-check-in-php .of-scan-head h2 i {color: var(--accent);}
body.page-template-dashboard-adherentpage-check-in-php .of-scan-head p {margin-top: 6px; max-width: 60ch; line-height: 1.5;}
body.page-template-dashboard-adherentpage-check-in-php .of-camera-zone {width: 100%; display: grid; gap: 12px; justify-items: center;}
body.page-template-dashboard-adherentpage-check-in-php #of-camera {width: 100%; max-width: 420px; border-radius: var(--radius-lg); overflow: hidden; background: #000;}
body.page-template-dashboard-adherentpage-check-in-php .of-msg {min-height: 24px; font-size: 0.95rem; font-weight: 500;}
body.page-template-dashboard-adherentpage-check-in-php .of-msg.of-info {color: var(--muted);}
body.page-template-dashboard-adherentpage-check-in-php .of-msg.of-success {color: #1a6b42;}
body.page-template-dashboard-adherentpage-check-in-php .of-msg.of-error {color: var(--danger-text);}

/* Écran de confirmation plein écran après un check-in réussi */
.of-checkin-success {position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 24px; background: linear-gradient(160deg, #1a6b42 0%, #14522f 100%); opacity: 0; visibility: hidden; transition: opacity 0.28s ease, visibility 0.28s ease;}
.of-checkin-success.is-visible {opacity: 1; visibility: visible;}
.of-checkin-success .of-cs-card {width: 100%; max-width: 420px; text-align: center; color: #fff; transform: translateY(14px); transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);}
.of-checkin-success.is-visible .of-cs-card {transform: translateY(0);}
.of-checkin-success .of-cs-avatar {position: relative; width: 128px; height: 128px; margin: 0 auto 20px;}
.of-checkin-success .of-cs-photo {width: 128px; height: 128px; border-radius: 50%; object-fit: cover; border: 4px solid rgba(255,255,255,0.85); box-shadow: 0 6px 22px rgba(0,0,0,0.22);}
.of-checkin-success .of-cs-initials {display: flex; align-items: center; justify-content: center; width: 128px; height: 128px; border-radius: 50%; background: rgba(255,255,255,0.16); border: 4px solid rgba(255,255,255,0.85); font-family: 'Fraunces', serif; font-size: 2.6rem; font-weight: 600; color: #fff; text-transform: uppercase;}
.of-checkin-success .of-cs-badge {position: absolute; right: -4px; bottom: -4px; width: 46px; height: 46px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 10px rgba(0,0,0,0.25);}
.of-checkin-success .of-cs-badge svg {width: 30px; height: 30px;}
.of-checkin-success .of-cs-circle {stroke: #1a6b42; stroke-width: 3; stroke-dasharray: 151; stroke-dashoffset: 151; animation: ofCsCircle 0.5s ease-out 0.2s forwards;}
.of-checkin-success .of-cs-tick {stroke: #1a6b42; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: ofCsTick 0.35s ease-out 0.6s forwards;}
.of-checkin-success .of-cs-card, .of-checkin-success .of-cs-card * {color: #fff;}
.of-checkin-success .of-cs-member {color: #fff; font-size: 1.35rem; font-weight: 700; margin: 0 0 4px;}
.of-checkin-success .of-cs-title {color: #fff; font-family: 'Fraunces', serif; font-size: 1.5rem; line-height: 1.2; margin: 0 0 14px; opacity: 0.95;}
.of-checkin-success .of-cs-session {color: #fff; display: inline-flex; align-items: center; gap: 10px; max-width: 100%; margin: 0 auto 16px; padding: 12px 22px; border-radius: 14px; background: rgba(255,255,255,0.16); border: 1px solid rgba(255,255,255,0.28); font-size: 1.3rem; font-weight: 700; line-height: 1.25;}
.of-checkin-success .of-cs-session i {color: #fff; font-size: 1.05rem; opacity: 0.9;}
.of-checkin-success .of-cs-meta {display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin-bottom: 28px; opacity: 0.92;}
.of-checkin-success .of-cs-meta span {color: #fff; display: inline-flex; align-items: center; gap: 7px; font-size: 0.98rem;}
.of-checkin-success .of-cs-btn {display: inline-flex; align-items: center; gap: 9px; padding: 13px 30px; border: 0; border-radius: 999px; background: #fff; color: #14522f; font-size: 1rem; font-weight: 700; cursor: pointer; box-shadow: 0 6px 20px rgba(0,0,0,0.18); transition: transform 0.15s ease, box-shadow 0.15s ease;}
.of-checkin-success .of-cs-btn:hover {transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,0.24);}
.of-checkin-success .of-cs-btn:active {transform: translateY(0);}
@keyframes ofCsCircle {to {stroke-dashoffset: 0;}}
@keyframes ofCsTick {to {stroke-dashoffset: 0;}}

/* Variante ERREUR : même structure plein écran, en rouge */
.of-checkin-success.of-cr-error {background: linear-gradient(160deg, #b3261e 0%, #7f1a15 100%);}
.of-checkin-success.of-cr-error .of-cs-avatar {display: flex; align-items: center; justify-content: center;}
.of-checkin-success .of-cs-badge-x {width: 116px; height: 116px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 22px rgba(0,0,0,0.22);}
.of-checkin-success .of-cs-badge-x svg {width: 76px; height: 76px;}
.of-checkin-success .of-cs-cross {stroke: #b3261e; stroke-width: 5; stroke-linecap: round; stroke-dasharray: 24; stroke-dashoffset: 24; animation: ofCsTick 0.28s ease-out 0.55s forwards;}
.of-checkin-success.of-cr-error .of-cs-circle {stroke: #b3261e;}
.of-checkin-success .of-cs-detail {font-size: 1rem; line-height: 1.5; margin: 0 auto 28px; max-width: 34ch; opacity: 0.92;}
.of-checkin-success.of-cr-error .of-cs-btn {color: #7f1a15;}

@media (prefers-reduced-motion: reduce) {
    .of-checkin-success, .of-checkin-success .of-cs-card {transition: none;}
    .of-checkin-success .of-cs-circle, .of-checkin-success .of-cs-tick, .of-checkin-success .of-cs-cross {animation: none; stroke-dashoffset: 0;}
}

/* Slots (réservations à venir) */
body.page-template-dashboard-adherentpage-check-in-php .slots {display: grid; gap: 14px;}
body.page-template-dashboard-adherentpage-check-in-php .slot {display: grid; grid-template-columns: auto 1fr auto; gap: 18px; padding: 18px; border-radius: var(--radius-lg); align-items: center; background: linear-gradient(160deg, #fff 0%, #fdf9f6 100%); border: 1px solid rgba(217,107,77,0.08); box-shadow: 0 2px 10px rgba(39,32,24,0.04); transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;}
body.page-template-dashboard-adherentpage-check-in-php .slot:hover {transform: translateY(-2px); box-shadow: 0 8px 28px rgba(39,32,24,0.1); border-color: rgba(217,107,77,0.2);}
body.page-template-dashboard-adherentpage-check-in-php .slot-confirmable {border-color: rgba(125,155,135,0.5); box-shadow: 0 4px 18px rgba(125,155,135,0.18);}
body.page-template-dashboard-adherentpage-check-in-php .slot-time {min-width: 90px; text-align: center; padding: 14px 12px; border-radius: 18px; background: linear-gradient(145deg, #fde6de, #fff5f0); color: var(--accent-deep); box-shadow: 0 2px 8px rgba(217,107,77,0.12);}
body.page-template-dashboard-adherentpage-check-in-php .slot-time strong {display: block; font-size: 1.4rem; font-family: 'Fraunces', serif;}
body.page-template-dashboard-adherentpage-check-in-php .slot-time span {font-size: 0.85rem;}
body.page-template-dashboard-adherentpage-check-in-php .slot-title {display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 8px;}
body.page-template-dashboard-adherentpage-check-in-php .slot-title h3 {font-size: 1.2rem;}
body.page-template-dashboard-adherentpage-check-in-php .slot-title h3 a:hover {color: var(--accent);}
body.page-template-dashboard-adherentpage-check-in-php .slot-badge {padding: 7px 10px; border-radius: 999px; font-size: 0.82rem; font-weight: 600; display: inline-flex; align-items: center; gap: 6px;}
body.page-template-dashboard-adherentpage-check-in-php .slot-badge.open {background: var(--sage-soft); color: #446c52;}
body.page-template-dashboard-adherentpage-check-in-php .slot-badge.low {background: #fff3d8; color: #8d6403;}
body.page-template-dashboard-adherentpage-check-in-php .slot-badge.confirmable {background: var(--sage-soft); color: #2f5d40;}
body.page-template-dashboard-adherentpage-check-in-php .slot-meta {display: flex; gap: 14px; flex-wrap: wrap; color: var(--muted); font-size: 0.95rem;}
body.page-template-dashboard-adherentpage-check-in-php .slot-meta span {display: flex; align-items: center; gap: 6px;}
body.page-template-dashboard-adherentpage-check-in-php .slot-action {display: grid; gap: 8px; text-align: right;}
body.page-template-dashboard-adherentpage-check-in-php .of-hint {font-size: 0.85rem; font-weight: 600; color: #2f5d40; display: inline-flex; align-items: center; gap: 6px;}
body.page-template-dashboard-adherentpage-check-in-php .reveal {opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease;}
body.page-template-dashboard-adherentpage-check-in-php .reveal.visible {opacity: 1; transform: translateY(0);}
@media (max-width: 720px) {
body.page-template-dashboard-adherentpage-check-in-php .slot {grid-template-columns: 1fr; gap: 14px; text-align: center;}
body.page-template-dashboard-adherentpage-check-in-php .slot-time {display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; width: 100%;}
body.page-template-dashboard-adherentpage-check-in-php .slot-time strong,
body.page-template-dashboard-adherentpage-check-in-php .slot-time span {display: inline; font-size: 1.1rem;}
body.page-template-dashboard-adherentpage-check-in-php .slot-title,
body.page-template-dashboard-adherentpage-check-in-php .slot-meta {justify-content: center;}
body.page-template-dashboard-adherentpage-check-in-php .slot-action {text-align: center;}
body.page-template-dashboard-adherentpage-check-in-php .of-scan-panel {padding: 22px;}
}

/* ============================================================
   CORRECTIONS D'ESPACEMENT (audit encre-à-encre, juil. 2026)
   Les resets par page (h1-h4/p {margin:0}) collaient certains
   textes au bloc suivant (<5px d'air mesuré, parfois chevauchés).
   !important nécessaire : chaque template redéclare margin:0 avec
   une spécificité body.page-template-* difficile à égaler une à une.
   ============================================================ */
/* Dashboard adhérent : « VOS CRÉDITS » chevauchait le solde (-0.8px). */
body .ofa-page p.ofa-wallet-balance {margin-top: 8px !important;}
/* États vides : titre collé à la phrase d'aide (1.6px). */
body .ofa-page .ofa-empty-state h2 {margin-bottom: 8px !important;}
/* Profil : nom collé à l'email (2.4px) ; « Crédits restants » collé au chiffre (3.2px). */
body .ofa-page .ofa-profile-card h3 {margin-bottom: 6px !important;}
body .ofa-page .credits-display p.amount {margin-top: 8px !important;}
/* Cartes activité (partenaire + réservations) : titre collé à la salle (0.2px). */
body .ofa-list-grid h3.ofa-card-title {margin-bottom: 6px !important;}
/* Cartes salle (mes salles) : titre collé à l'adresse (1px), adresse collée aux stats (4.8px). */
body .ofa-card--partner h3.ofa-card-title {margin-bottom: 6px !important;}
body .ofa-card--partner p.ofa-card-location {margin-bottom: 4px !important;}
/* Fiche activité : « Prochain créneau » collé à l'horaire (2.4px) ; « Aucun avis » collé au formulaire (4.8px). */
body.single-activity .ofa-booking-price .ofa-muted {margin-bottom: 9px !important;}
body.single-activity #reviews-section > p {margin-bottom: 4px !important;}
/* Packs : titre collé au prix (3.6px, la marge d'openfit-main était annulée). */
body .ofc-pack-card__title {margin-bottom: 8px !important;}
/* Facturation : pack (4.5px), libellés (2.6px) et montants (2px) du tableau. */
body .ofb-pack-card__name {margin: 2px 0 !important;}
body .ofb-act-sub {margin-top: 4px !important;}
body .ofb-amount-sub {margin-top: 5px !important;}
/* Dashboard partenaire : titres des panneaux latéraux collés au texte (5.2px). */
body .ofp-main-grid aside h3 {margin-bottom: 8px !important;}
/* — Audit v2 (multi-états, 4 viewports, juil. 2026) — */
/* 404 : le « 404 » géant (Fraunces, line-height 1) débordait de sa boîte et chevauchait le h1. */
body.error404 p.ofa-404-code {line-height: 1.15 !important;}
body.error404 .ofa-404 h1 {margin-top: .75rem !important;}
/* Fiche activité : « Vous aimerez aussi » collé à son sous-titre (1.6px). */
body.single-activity .ofa-section-head h2 {margin-bottom: 6px !important;}
/* Contact : libellé EMAIL/TÉLÉPHONE collé au lien (4.5px). */
body .ofa-info-item small {margin-bottom: 3px !important;}
/* Facturation : métrique (gros chiffre) collée à sa légende (2.4px). */
body .ofb-metric__sub {margin-top: 7px !important;}
/* Drawer partenaire fermé : ne doit contribuer ni au paint ni au débordement horizontal. */
@media (max-width: 1279.98px) {
    .ofp-drawer:not(.is-open) {visibility: hidden;}
    .ofp-drawer {transition: transform .28s cubic-bezier(.4,0,.2,1), visibility .28s;}
}
/* Formulaires ajout activité/salle : titre collé au sous-titre (4.5px). */
body .ofa-form-card h1 {margin-bottom: 8px !important;}
/* FullCalendar : titres d'événements coupés net → ellipsis ; th de la vue liste collé au bord. */
body .fc .fc-event-title {overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
body .fc .fc-list-table th .fc-list-day-cushion, body .fc .fc-list-table th {padding-left: 8px; padding-right: 8px;}
/* Drawers plein écran : width/height 100% sur position:fixed inclut la barre de
   défilement (=100vw) → 20px de scroll horizontal parasite. inset:0 suffit. */
@media (max-width: 1279.98px) {
    .ofp-drawer, .ofpn-drawer {width: auto !important; height: auto !important;}
}
/* Ceinture de sécurité : jamais de scroll horizontal de page en mobile/tablette
   (drawers fixed + scrollbars classiques créaient 20px de spill en fenêtre étroite). */
@media (max-width: 1279.98px) {
    html {overflow-x: clip;}
}

/* ═══════════════════════════════════════════════════════════════════════
   CORRECTIONS AUDIT MOBILE (juillet 2026) — bloc en fin de fichier pour
   gagner la cascade sur les blocs page par page ci-dessus.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Tables : jamais de colonnes qui se superposent ──
   table-layout:fixed + width:100% écrasait la colonne auto sous 640px ;
   un min-width rend le wrap (overflow-x:auto) réellement scrollable. */
body.page-template-dashboard-adherentpage-billing-transactions-php table.ofb-table {min-width: 640px;}
.ofp-rev-table {min-width: 560px;}
.ofp-table {min-width: 560px;}
body.page-template-dashboard-partenairepage-mes-adherents-php .ofa-pc-table {min-width: 680px;}

/* ── Check-ins partenaire : la table devient des CARTES en mobile ──
   « Marquer présent » est le geste principal du partenaire en salle : il doit
   être visible sans scroll horizontal. Les cellules sont auto-descriptives
   (nom, activité, salle, date, badge statut) → pas besoin des en-têtes. */
@media (max-width: 767.98px) {
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-table,
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-table tbody,
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-table tr,
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-table td {display: block; width: 100%;}
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-table thead {display: none;}
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-table tr {
        background: #fff;
        border: 1px solid rgba(31, 41, 51, 0.08);
        border-radius: 14px;
        padding: 14px 16px;
        margin-bottom: 14px;
        box-shadow: 0 4px 14px rgba(39, 32, 24, 0.05);
    }
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-table td {
        padding: 6px 0 !important;
        border: 0 !important;
    }
    body.page-template-dashboard-partenairepage-checkins-php .ofa-pc-actions {
        display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px;
    }
}

/* ── Top bar adhérent : plus de collision logo / bouton ≤400px ── */
@media (max-width: 400px) {
    .ofa-appbar-logo {font-size: 1.15rem;}
    .ofa-appbar-cta {padding-left: 12px; padding-right: 12px; font-size: .9rem;}
    .ofa-appbar > div {height: 64px; gap: 8px;}
}

/* ── Bouton flottant carte/liste : une seule ligne, même à 320px ── */
.ofa-mobile-map-toggle {white-space: nowrap;}

/* ── Calendrier partenaire : toolbar FullCalendar empilée en mobile ── */
@media (max-width: 640px) {
    body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-header-toolbar {
        flex-direction: column; align-items: stretch; gap: 10px;
    }
    body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-toolbar-title {
        font-size: 1.15rem; text-align: center;
    }
    body.page-template-dashboard-partenairepage-calendrier-partenaire-php .fc .fc-toolbar-chunk {
        display: flex; justify-content: center;
    }
}

/* ── Homepage : la section réseau (sombre) colle au hero photo — la bande
      blanche de 48px entre deux fonds pleins se lisait comme un bug. ── */
@media (max-width: 767px) {
    body.page-template-page-homepage-php .ofh-cats-section {margin-top: 0;}
}

/* ── reCAPTCHA v3 : badge flottant masqué (chevauchait les CTA mobile) ;
      la mention .openfit-recaptcha-note le remplace dans chaque formulaire. ── */
.grecaptcha-badge {visibility: hidden !important;}
.openfit-recaptcha-note {
    font-size: .78rem; color: #6b7280; margin: 10px 0 0; line-height: 1.5;
}
.openfit-recaptcha-note a {color: inherit; text-decoration: underline;}
