/* ── Medimotion — Grille vidéos ───────────────────────────────────────────── */


.jm-video-placeholder {
    background: #f3f4f6;
    border-radius: 6px;
    aspect-ratio: 16 / 9;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
    border: 2px dashed #d1d5db;
}

.jm-video-placeholder__icon {
    font-size: 2rem;
    color: #9ca3af;
}

.jm-video-titre {
    font-size: 0.875rem !important;
    font-weight: 500;
    line-height: 1.4;
    margin-top: 6px !important;
    color: #374151;
}

.wp-block-details {
    margin-bottom: 12px;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 12px;
}

.wp-block-details summary {
    cursor: pointer;
    font-weight: 500;
    font-size: 1rem;
    padding: 10px 0;
    line-height: 1.5;
    list-style: none; /* Retire le triangle natif */
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Triangle custom avant le titre */
.wp-block-details summary::before {
    content: '▶';
    font-size: 0.65em;
    color: #6b7280;
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.wp-block-details[open] > summary::before {
    transform: rotate(90deg);
}

.wp-block-details summary::-webkit-details-marker {
    display: none; /* Safari */
}

/* Contenu de la réponse */
.wp-block-details > p,
.wp-block-details .wp-block-paragraph {
    padding: 10px 0 6px 22px;
    color: #374151;
    line-height: 1.7;
    margin: 0;
}

/* Espacement entre sections H2 */
.entry-content h2,
.wp-block-post-content h2 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

/* ── Page /finaliser-mon-adhesion/ ─────────────────────────────────────── */

.jm-retry-box {
    max-width: 560px;
    margin: 0 auto;
    padding: 48px 40px;
    background: #fff;
    border-radius: var(--jm-radius-lg, 22px);
    box-shadow: var(--jm-shadow, 0 20px 60px rgba(20,33,61,0.08));
    text-align: center;
}
.jm-retry-box--error { border-top: 4px solid var(--jm-red, #ef4444); }
.jm-retry-box--info  { border-top: 4px solid var(--jm-blue, #08598E); }

.jm-retry-icon { font-size: 48px; margin: 0 0 16px; }
.jm-retry-box h2 {
    font-family: 'Manrope', sans-serif;
    font-weight: 800;
    font-size: 24px;
    color: var(--jm-ink, #0e1c2f);
    margin: 0 0 12px;
}
.jm-retry-box p {
    color: var(--jm-muted, #5c6678);
    font-size: 16px;
    line-height: 1.6;
    margin: 0 0 28px;
}
.jm-btn--retry {
    display: inline-block;
    background: linear-gradient(135deg, var(--jm-blue, #08598E), #2a86ff);
    color: #fff !important;
    font-family: 'Manrope', sans-serif;
    font-weight: 800;
    font-size: 16px;
    padding: 16px 36px;
    border-radius: 999px;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(8,89,142,0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    margin-bottom: 12px;
    display: inline-block;
}
.jm-btn--retry:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 32px rgba(8,89,142,0.35);
}
.jm-retry-note {
    font-size: 13px !important;
    color: #8a93a3 !important;
    margin: 8px 0 0 !important;
}
.jm-retry-error { color: var(--jm-red, #ef4444); font-size: 14px; }
.jm-retry-contact {
    margin-top: 24px !important;
    font-size: 13px !important;
    color: #8a93a3 !important;
}
.jm-retry-contact a,
.jm-retry-contact-link {
    color: var(--jm-blue, #08598E);
    text-decoration: underline;
}

/* ── Page bienvenue post-paiement ────────────────────────────────────────── */

.jm-bienvenue__hero {
    text-align: center;
    padding: 56px 24px 40px;
    background: var(--jm-grad-hero, linear-gradient(155deg, #eaf5ff 0%, #fff 42%, #edf3fb 100%));
    border-radius: var(--jm-radius-xl, 28px);
    margin-bottom: 32px;
}
.jm-bienvenue__check {
    width: 72px; height: 72px; border-radius: 50%;
    background: linear-gradient(135deg, var(--jm-blue, #08598E), #2a86ff);
    color: #fff; font-size: 36px; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 24px;
    box-shadow: 0 12px 32px rgba(8,89,142,0.25);
}
.jm-bienvenue__titre {
    font-family: 'Manrope', sans-serif;
    color: var(--jm-ink, #0e1c2f); margin: 0 0 12px;
}
.jm-bienvenue__sous-titre {
    font-size: 18px; color: var(--jm-muted, #5c6678); line-height: 1.6; margin: 0;
}
.jm-bienvenue__steps {
    background: #fff;
    border-radius: var(--jm-radius-lg, 22px);
    padding: 36px;
    box-shadow: var(--jm-shadow, 0 20px 60px rgba(20,33,61,0.08));
    margin-bottom: 32px;
}
.jm-bienvenue__steps h2 {
    font-family: 'Manrope', sans-serif;
    font-size: 20px; font-weight: 800; color: var(--jm-ink, #0e1c2f);
    margin: 0 0 24px;
}
.jm-bienvenue__steps-grid { display: flex; flex-direction: column; gap: 20px; }
.jm-bienvenue__step {
    display: flex; align-items: flex-start; gap: 16px;
}
.jm-bienvenue__step-num {
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--jm-blue, #08598E); color: #fff;
    font-size: 14px; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; margin-top: 2px;
}
.jm-bienvenue__step strong { display: block; font-size: 15px; color: var(--jm-ink, #0e1c2f); margin-bottom: 4px; }
.jm-bienvenue__step p { font-size: 14px; color: var(--jm-muted, #5c6678); margin: 0; line-height: 1.5; }
.jm-bienvenue__cta { text-align: center; padding: 8px 0 40px; }


/* ── Dashboard adhérent ──────────────────────────────────────────────────── */

.jm-dashboard__header {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 40px 0 24px; border-bottom: 1px solid var(--jm-line, #dfe5ef); margin-bottom: 28px;
}
.jm-dashboard__bonjour { font-size: 14px; color: var(--jm-muted, #5c6678); margin: 0 0 4px; font-weight: 600; }
.jm-dashboard__statut { font-size: 14px; color: var(--jm-muted, #5c6678); margin: 0; }
.jm-dashboard__badge {
    display: flex; align-items: center; gap: 8px;
    background: var(--jm-green-soft, #e6f7ef); color: var(--jm-green, #16a34a);
    font-size: 13px; font-weight: 700;
    padding: 8px 16px; border-radius: 999px;
    border: 1px solid rgba(22,163,74,0.2);
}
.jm-dashboard__card--adhesion {
    display: flex; gap: 32px; flex-wrap: wrap;
    background: linear-gradient(135deg, var(--jm-blue, #08598E), #0a3f6e);
    border-radius: var(--jm-radius-lg, 22px);
    padding: 28px 32px; margin-bottom: 40px;
    color: #fff;
}
.jm-dashboard__card-value { font-size: 18px; font-weight: 800; }
.jm-dashboard__section-title { font-family: 'Manrope', sans-serif; font-size: 20px; font-weight: 800; color: var(--jm-ink, #0e1c2f); margin: 0 0 20px; }
.jm-dashboard__avantages { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 40px; }
.jm-dashboard__avantage {
    display: flex; flex-direction: column; gap: 8px;
    background: #fff; border-radius: var(--jm-radius-md, 16px);
    padding: 24px; text-decoration: none; color: inherit;
    border: 1px solid var(--jm-line, #dfe5ef);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.jm-dashboard__avantage:hover { transform: translateY(-2px); box-shadow: var(--jm-shadow, 0 20px 60px rgba(20,33,61,0.08)); border-color: #08598E; }
.jm-dashboard__avantage-icon { font-size: 28px; }
.jm-dashboard__avantage strong { font-size: 15px; color: var(--jm-ink, #0e1c2f); }
.jm-dashboard__avantage p { font-size: 13px; color: var(--jm-muted, #5c6678); margin: 0; line-height: 1.5; }
.jm-dashboard__footer { text-align: center; padding-bottom: 40px; }
.jm-dashboard__logout { font-size: 13px; color: var(--jm-muted, #5c6678); text-decoration: underline; }
@media (max-width: 600px) {
    .jm-dashboard__avantages { grid-template-columns: 1fr; }
    .jm-dashboard__header { flex-direction: column; gap: 16px; }
    .jm-bienvenue__titre { font-size: 28px; }
}

/* ── Mon profil — Page unique éditable (/mon-profil/) ─────────────────────── */

.jm-mon-profil { padding: 24px 0 56px; }

.jm-mon-profil__header {
    padding: 8px 0 28px;
    border-bottom: 1px solid var(--jm-line, #dfe5ef);
    margin-bottom: 32px;
}
.jm-mon-profil__eyebrow {
    font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--jm-muted, #5c6678); font-weight: 700; margin: 0 0 8px;
}
.jm-mon-profil__title {
    font-family: 'Manrope', sans-serif;
    font-size: 36px; font-weight: 800;
    color: var(--jm-ink, #0e1c2f);
    margin: 0 0 6px; letter-spacing: -0.01em;
}
.jm-mon-profil__subtitle { font-size: 15px; color: var(--jm-muted, #5c6678); margin: 0; }
.jm-mon-profil__separator { margin: 0 6px; opacity: 0.6; }

.jm-mon-profil__nav {
    display: flex; gap: 4px;
    margin: 0 0 32px;
    border-bottom: 1px solid var(--jm-line, #dfe5ef);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.jm-mon-profil__nav::-webkit-scrollbar { display: none; }
.jm-mon-profil__nav-link {
    display: inline-block;
    padding: 14px 18px;
    font-family: 'Manrope', sans-serif;
    font-size: 14px; font-weight: 600;
    color: var(--jm-muted, #5c6678);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
    white-space: nowrap;
    margin-bottom: -1px;
}
.jm-mon-profil__nav-link:hover,
.jm-mon-profil__nav-link:focus {
    color: var(--jm-blue, #08598E);
    border-bottom-color: var(--jm-blue, #08598E);
    text-decoration: none;
}

.jm-mon-profil__notice {
    padding: 14px 18px;
    border-radius: var(--jm-radius-md, 12px);
    margin: 0 0 24px;
    font-size: 14px; line-height: 1.5;
}
.jm-mon-profil__notice--success {
    background: var(--jm-green-soft, #e6f7ef);
    color: var(--jm-green, #16a34a);
    border: 1px solid rgba(22,163,74,0.2);
}
.jm-mon-profil__notice--error {
    background: #fdecec;
    color: #c0392b;
    border: 1px solid rgba(192,57,43,0.2);
}

.jm-mon-profil__admin-banner {
    background: #fff5e6;
    border: 1px solid #f0c378;
    color: #7a4a00;
    padding: 14px 18px;
    border-radius: var(--jm-radius-md, 12px);
    margin: 0 0 24px;
    font-size: 13px;
    line-height: 1.5;
}
.jm-mon-profil__admin-banner strong { font-weight: 700; }

.jm-mon-profil__section { margin: 0 0 56px; scroll-margin-top: 100px; }
.jm-mon-profil__section-title {
    font-family: 'Manrope', sans-serif;
    font-size: 22px; font-weight: 800;
    color: var(--jm-ink, #0e1c2f);
    margin: 0 0 20px; letter-spacing: -0.01em;
}

.jm-mon-profil__form-group {
    background: #fff;
    padding: 24px 28px;
    border: 1px solid var(--jm-line, #dfe5ef);
    border-radius: var(--jm-radius-lg, 22px);
    margin: 0 0 16px;
}
.jm-mon-profil__form-group-title {
    font-family: 'Manrope', sans-serif;
    font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--jm-muted, #5c6678); font-weight: 700;
    margin: 0 0 16px;
}

.jm-mon-profil__row {
    display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.jm-mon-profil__field { margin: 0 0 14px; }
.jm-mon-profil__label {
    display: block; font-size: 13px; font-weight: 600;
    color: var(--jm-muted, #5c6678); margin: 0 0 6px;
}
.jm-mon-profil__hint {
    font-weight: 400; font-style: italic; margin-left: 4px;
    color: var(--jm-muted, #5c6678);
}
.jm-mon-profil__hint a { color: var(--jm-blue, #08598E); text-decoration: underline; }
.jm-mon-profil__hint-block {
    font-size: 13px; color: var(--jm-muted, #5c6678);
    margin: 12px 0 0; line-height: 1.5;
}

.jm-mon-profil__input {
    width: 100%;
    padding: 11px 14px;
    font-family: inherit; font-size: 14px;
    color: var(--jm-ink, #0e1c2f);
    background: #fff;
    border: 1px solid var(--jm-line, #dfe5ef);
    border-radius: 8px;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.jm-mon-profil__input:focus {
    outline: none;
    border-color: var(--jm-blue, #08598E);
    box-shadow: 0 0 0 3px rgba(8,89,142,0.1);
}
.jm-mon-profil__input[readonly] {
    background: #f7f9fc;
    color: var(--jm-muted, #5c6678);
    cursor: default;
}

.jm-mon-profil__actions {
    display: flex; gap: 12px; flex-wrap: wrap;
    margin: 20px 0 0; align-items: center;
}

.jm-mon-profil__card {
    background: #fff;
    border: 1px solid var(--jm-line, #dfe5ef);
    border-radius: var(--jm-radius-lg, 22px);
    padding: 28px;
    margin: 0 0 16px;
}
.jm-mon-profil__card--featured {
    border-color: var(--jm-blue, #08598E);
    border-width: 2px;
}
.jm-mon-profil__card--alert {
    background: #fff5e6;
    border-color: #f0c378;
}
.jm-mon-profil__card-title {
    font-family: 'Manrope', sans-serif;
    font-size: 17px; font-weight: 700;
    color: var(--jm-ink, #0e1c2f);
    margin: 0 0 6px;
}
.jm-mon-profil__card-text {
    font-size: 14px; color: var(--jm-muted, #5c6678);
    margin: 0 0 20px; line-height: 1.5;
}

.jm-mon-profil__card-head {
    display: flex; justify-content: space-between; align-items: flex-start;
    margin-bottom: 16px;
}
.jm-mon-profil__amount {
    font-family: 'Manrope', sans-serif;
    font-size: 28px; font-weight: 800;
    color: var(--jm-ink, #0e1c2f);
    margin: 0; letter-spacing: -0.01em;
}
.jm-mon-profil__pill {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--jm-green-soft, #e6f7ef);
    color: var(--jm-green, #16a34a);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 13px; font-weight: 700;
    border: 1px solid rgba(22,163,74,0.2);
}

.jm-mon-profil__meta { padding: 8px 0; }
.jm-mon-profil__meta-row {
    display: flex; justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--jm-line, #dfe5ef);
    font-size: 14px;
}
.jm-mon-profil__meta-row:last-child { border-bottom: none; }
.jm-mon-profil__meta-row span:first-child { color: var(--jm-muted, #5c6678); }
.jm-mon-profil__meta-row span:last-child { color: var(--jm-ink, #0e1c2f); font-weight: 600; }
.jm-mon-profil__mono {
    font-family: 'SF Mono', ui-monospace, Menlo, monospace;
    font-size: 13px;
}

.jm-mon-profil__pending {
    background: #fff5e6;
    border: 1px solid #f0c378;
    color: #7a4a00;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 13px;
    margin: 16px 0 0;
}

@media (max-width: 600px) {
    .jm-mon-profil__title { font-size: 28px; }
    .jm-mon-profil__row { grid-template-columns: 1fr; gap: 0; }
    .jm-mon-profil__form-group { padding: 20px 18px; }
    .jm-mon-profil__card { padding: 20px; }
    .jm-mon-profil__nav-link { padding: 12px 14px; font-size: 13px; }
    .jm-mon-profil__amount { font-size: 24px; }
    .jm-mon-profil__card-head { flex-direction: column; gap: 12px; }
}


/* ── Section triptyque editorial ───────────────────────────────────────────
   Reprise editable d'un bloc Figma / SVG :
   - intro avec badge + titre + CTA
   - trois cartes premium avec accents cyan, bleu et rouge
   ------------------------------------------------------------------------ */
.jm-section-triptyque {
    border-radius: 32px;
}
.jm-section-triptyque__eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 29px;
    padding: 6px 16px;
    border-radius: 999px;
    background: #88c3ff;
    color: #005082;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}
.jm-section-triptyque__title {
    max-width: 780px;
    color: #1f2a37;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.08;
    font-weight: 800;
}
.jm-section-triptyque__intro {
    max-width: 760px;
    color: #41474f;
    font-size: 18px;
    line-height: 1.7;
}
.jm-section-triptyque__cta {
    width: 100%;
}
.jm-section-triptyque__cta .wp-block-button {
    width: 100%;
}
.jm-section-triptyque__cta .wp-block-button__link {
    width: 100%;
    justify-content: center;
    background: var(--jm-blue-cta, #003c81) !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    padding: 16px 28px !important;
    border-radius: 999px !important;
}
.jm-section-triptyque__cta .wp-block-button__link:hover {
    background: var(--jm-blue, #08598E) !important;
}
.jm-section-triptyque__cards {
    align-items: stretch !important;
}
.jm-section-triptyque__cards > .wp-block-column {
    display: flex;
}
.jm-carte-focus {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 474px;
    padding: 44px;
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(31, 42, 55, 0.08);
}
.jm-carte-focus__top {
    width: 100%;
    margin-bottom: 8px;
}
.jm-carte-focus__icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    font-size: 15px;
    font-weight: 800;
}
.jm-carte-focus__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 4px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}
.jm-carte-focus__title {
    color: #1f2a37;
    font-size: 28px;
    line-height: 1.2;
    font-weight: 800;
}
.jm-carte-focus__text {
    color: #41474f;
    font-size: 16px;
    line-height: 1.75;
}
.jm-carte-focus .wp-block-buttons {
    margin-top: auto;
    padding-top: 28px;
}
.jm-carte-focus .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 16px 28px !important;
    border-radius: 20px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.jm-carte-focus .wp-block-button__link:hover {
    transform: translateY(-1px);
}
.jm-carte-focus--cyan .jm-carte-focus__icone,
.jm-carte-focus--cyan .jm-carte-focus__tag {
    background: rgba(34, 172, 218, 0.1);
    color: #22acda;
}
.jm-carte-focus--cyan .wp-block-button__link {
    background: #8ad3eb !important;
    color: #005082 !important;
    border: 1px solid rgba(18, 196, 255, 0.2);
}
.jm-carte-focus--cyan .wp-block-button__link:hover {
    background: #78cae4 !important;
}
.jm-carte-focus--blue .jm-carte-focus__icone,
.jm-carte-focus--blue .jm-carte-focus__tag {
    background: rgba(8, 89, 142, 0.1);
    color: var(--jm-blue, #08598E);
}
.jm-carte-focus--blue .wp-block-button__link {
    background: var(--jm-blue, #08598E) !important;
    color: #ffffff !important;
    box-shadow: 0 10px 26px rgba(8, 89, 142, 0.18);
}
.jm-carte-focus--blue .wp-block-button__link:hover {
    background: #064d7a !important;
}
.jm-carte-focus--red .jm-carte-focus__icone,
.jm-carte-focus--red .jm-carte-focus__tag {
    background: rgba(193, 75, 75, 0.1);
    color: #c14b4b;
}
.jm-carte-focus--red .wp-block-button__link {
    background: #ffffff !important;
    color: #c14b4b !important;
    border: 1px solid rgba(193, 75, 75, 0.22);
    box-shadow: none !important;
}
.jm-carte-focus--red .wp-block-button__link:hover {
    background: #fff7f7 !important;
}
@media (max-width: 1024px) {
    .jm-carte-focus {
        min-height: 420px;
        padding: 32px;
    }
    .jm-carte-focus__title {
        font-size: 24px;
    }
}
@media (max-width: 781px) {
    .jm-section-triptyque {
        padding-right: 24px !important;
        padding-left: 24px !important;
    }
    .jm-section-triptyque__cta {
        margin-top: 8px;
    }
    .jm-section-triptyque__cta .wp-block-buttons {
        justify-content: flex-start !important;
    }
    .jm-section-triptyque__cta .wp-block-button {
        width: auto;
    }
    .jm-section-triptyque__cta .wp-block-button__link {
        width: auto;
    }
    .jm-carte-focus {
        min-height: auto;
        padding: 28px;
        border-radius: 24px;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   PAGE ACCUEIL — Classes utilitaires
   Les styles non supportés nativement par Gutenberg (box-shadow, overflow,
   display:inline-block) sont gérés ici via className.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hero card — ombre + overflow arrondi */
.jm-hero-card {
    box-shadow: 0 8px 40px rgba(8,89,142,0.12) !important;
    overflow: hidden !important;
}
.jm-hero-card img {
    display: block;
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
}

/* Badge pill inline */
.jm-badge-pill {
    display: inline-block !important;
    border-radius: 999px !important;
    margin-bottom: 8px !important;
}

.jm-hero h1.wp-block-heading,
.single-content .jm-hero h1.wp-block-heading,
.entry-content .jm-hero h1.wp-block-heading,
.wp-block-post-content .jm-hero h1.wp-block-heading {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
    margin-bottom: 20px !important;
}

/* Avantage card — hover subtil */
.jm-avantage-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.jm-avantage-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}

/* Combat card */
.jm-combat-card {
    transition: transform 0.2s ease;
}
.jm-combat-card:hover {
    transform: translateY(-2px);
}

/* CSE bandeau — glass card */
.jm-cse-glass {
    background: rgba(255,255,255,0.1) !important;
}

/* Partenaire card — ombre au hover */
.jm-partenaire-card {
    transition: box-shadow 0.2s ease;
}
.jm-partenaire-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


/* ── Grille avantages adhérent — séparateurs lignes partenaires ────────────── */

.jm-partner-row {
    border-bottom-color: var(--jm-line, #dfe5ef);
    border-bottom-style: solid;
    border-bottom-width: 1px;
}
.jm-partner-row:last-child {
    border-bottom-width: 0;
}


/* ═══════════════════════════════════════════════════════════════════════════
   BLOCK STYLES JM — classes is-style-jm-*
   Enregistrés via block-styles.php → register_block_style()
   CSS chargé en front ET dans l'éditeur Gutenberg (jm_enqueue_editor_styles)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Template : JM — Fond libre ─────────────────────────────────────────── */

.jm-tpl-fond-libre {
    background-color: var(--jm-bg, #edf2f8);
    padding-top: clamp(48px, 7vw, 80px);
    padding-bottom: clamp(64px, 9vw, 120px);
}
.jm-tpl-fond-libre__inner {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(20px, 4vw, 40px);
    padding-right: clamp(20px, 4vw, 40px);
}

/* Articles (single posts) : légèrement plus étroit pour la lisibilité */
body.single .jm-tpl-fond-libre__inner {
    max-width: 900px;
}
.jm-tpl-fond-libre__header { margin-bottom: 40px; }
.jm-tpl-fond-libre__title {
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 800;
    color: var(--jm-ink, #0e1c2f);
    line-height: 1.1;
    margin-bottom: 16px;
}
.jm-tpl-fond-libre__excerpt {
    font-size: 18px;
    color: var(--jm-muted, #5c6678);
    line-height: 1.65;
    max-width: 680px;
}

/* ── Template : JM — Grand panneau blanc ────────────────────────────────── */

.jm-tpl-panneau {
    background-color: var(--jm-bg, #edf2f8);
    padding-top: clamp(40px, 6vw, 72px);
    padding-bottom: clamp(40px, 6vw, 72px);
    padding-left: clamp(16px, 3vw, 32px);
    padding-right: clamp(16px, 3vw, 32px);
}
.jm-tpl-panneau__outer {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}
.jm-tpl-panneau__panel {
    background-color: #ffffff;
    border-radius: 20px;
    padding: clamp(32px, 5vw, 64px) clamp(28px, 5vw, 72px);
}
.jm-tpl-panneau__header { margin-bottom: 32px; }
.jm-tpl-panneau__title {
    font-size: clamp(26px, 3.5vw, 38px);
    font-weight: 800;
    color: var(--jm-ink, #0e1c2f);
    line-height: 1.1;
    margin-bottom: 14px;
}
.jm-tpl-panneau__excerpt {
    font-size: 17px;
    color: var(--jm-muted, #5c6678);
    line-height: 1.65;
}
.jm-tpl-panneau__sep {
    border: none;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: var(--jm-line, #dfe5ef);
    margin-bottom: 36px;
}

/* ── Override Kadence — templates JM (no-sidebar, full-width) ────────────── */

/* Force le conteneur principal à pleine largeur sur nos templates */
.jm-tpl-no-sidebar,
.jm-tpl-no-sidebar #main {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

/* Supprime le margin-top du content-area sur nos templates
   (on gère l'espacement nous-mêmes) */
.jm-tpl-fond-libre,
.jm-tpl-panneau,
.jm-tpl-pleine-largeur {
    margin-top: 0 !important;
}

/* ── Template : JM — Pleine largeur ─────────────────────────────────────── */

.jm-tpl-pleine-largeur {
    width: 100%;
}

.jm-tpl-pleine-largeur__content {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

/* Blocs alignwide/alignfull dans le template pleine largeur */
.jm-tpl-pleine-largeur__content .alignwide {
    /* max-width: 100%; */
    /* width: 100%; */
}
.jm-tpl-pleine-largeur__content .alignfull {
    /* max-width: 100%; */
    /* width: 100%; */
    /* margin-left: 0; */
    /* margin-right: 0; */
}


/* ══════════════════════════════════════════════════════════════════════════
   Article single — .jm-article
   Panneau blanc arrondi contenant : image mise en avant, header, contenu.
   S'applique via body.single + template jm-tpl-fond-libre.
   ══════════════════════════════════════════════════════════════════════════ */

.jm-article {
    background: #ffffff;
    border-radius: var(--jm-radius-xl);
    box-shadow: var(--jm-shadow-card);
    overflow: hidden;
}

/* ── Image mise en avant ── */
.jm-article__thumbnail {
    width: 100%;
    aspect-ratio: 16 / 6;
    object-fit: cover;
    display: block;
}

/* Fallback si pas d'image — bandeau décoratif, pas un vide */
.jm-article__thumbnail-placeholder {
    width: 100%;
    height: 120px;
    background: linear-gradient(135deg, var(--jm-blue) 0%, var(--jm-night) 100%);
    display: block;
}

/* ── Header de l'article (meta + titre) ── */
.jm-article__header {
    padding: clamp(28px, 4vw, 48px) clamp(24px, 5vw, 56px) 0;
}

.jm-article__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.jm-article__date {
    font-size: 13px;
    font-weight: 600;
    color: var(--jm-muted);
}

.jm-article__cat {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--jm-blue);
    background: var(--jm-cyan);
    padding: 3px 10px;
    border-radius: var(--jm-radius-pill);
}

.jm-article__title {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(26px, 4vw, 40px);
    font-weight: 800;
    color: var(--jm-ink);
    line-height: 1.15;
    margin-bottom: 0;
}

/* ── Contenu de l'article ── */
.jm-article__content {
    padding: clamp(28px, 4vw, 48px) clamp(24px, 5vw, 56px) clamp(40px, 5vw, 64px);
}

/* Typographie interne à l'article */
.jm-article__content p {
    font-size: 17px;
    line-height: 1.8;
    color: var(--jm-ink);
    margin-bottom: 1.4em;
}

.jm-article__content h2 {
    font-size: clamp(20px, 3vw, 26px);
    font-weight: 800;
    color: var(--jm-ink);
    margin-top: 2.2em;
    margin-bottom: 0.6em;
    line-height: 1.2;
}

.jm-article__content h3 {
    font-size: clamp(17px, 2.5vw, 21px);
    font-weight: 700;
    color: var(--jm-ink);
    margin-top: 1.8em;
    margin-bottom: 0.5em;
}

.jm-article__content ul,
.jm-article__content ol {
    padding-left: 1.4em;
    margin-bottom: 1.4em;
}

.jm-article__content li {
    font-size: 17px;
    line-height: 1.7;
    color: var(--jm-ink);
    margin-bottom: 0.4em;
}

/* Séparateur meta / titre */
.jm-article__sep {
    border: none;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: var(--jm-line);
    margin: clamp(24px, 3vw, 36px) clamp(24px, 5vw, 56px);
}

/* ── Responsive ── */
@media (max-width: 767px) {
    .jm-article {
        border-radius: var(--jm-radius-lg);
    }
    .jm-article__thumbnail,
    .jm-article__thumbnail-placeholder {
        aspect-ratio: 16 / 9;
    }
}

/* ══════════════════════════════════════════════════════════════════════════
   Breadcrumb JM — .jm-breadcrumb
   Affiché uniquement sur les pages enfants et les articles.
   Style : chevron ›, texte muted, dernier item ink.
   ══════════════════════════════════════════════════════════════════════════ */

.jm-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 20px;
    font-size: 13px;
    font-weight: 600;
    color: var(--jm-muted);
}

.jm-breadcrumb a {
    color: var(--jm-muted);
    text-decoration: none;
}

.jm-breadcrumb a:hover {
    color: var(--jm-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Séparateur › */
.jm-breadcrumb__sep {
    color: var(--jm-line);
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    user-select: none;
}

/* Dernier item — page courante */
.jm-breadcrumb__current {
    color: var(--jm-ink);
    font-weight: 700;
    /* Tronqué si trop long */
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* ==========================================================================
   SHORTCODE [jm_partenaires] + archive-partenaire.php
   Layout media object : image gauche / texte droite, empilé verticalement
   ========================================================================== */

.jm-archive-header {
    text-align: center;
    padding: 48px 24px 32px;
}
.jm-archive-header__titre {
    font-family: 'Manrope', sans-serif;
    font-size: 36px;
    font-weight: 800;
    color: var(--jm-ink, #0e1c2f);
    margin: 0 0 12px;
}
.jm-archive-header__description {
    font-size: 16px;
    color: var(--jm-muted, #5c6678);
    max-width: 600px;
    margin: 0 auto;
}

.jm-partenaires-wrapper {
    max-width: 960px;
    margin: 0 auto 64px;
    padding: 0 24px;
}

.jm-partenaires-liste {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ── Item : image gauche + texte droite ─────────────────────────────────── */
.jm-partenaires-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch;
    background: #ffffff;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--jm-line, #dfe5ef);
    min-height: 260px;
    text-decoration: none !important;
    color: inherit !important;
    cursor: pointer;
    transition: box-shadow 0.18s ease, transform 0.18s ease;
}
.jm-partenaires-item:hover {
    box-shadow: 0 6px 28px rgba(8, 89, 142, 0.13);
    transform: translateY(-2px);
}

.jm-partenaires-item__media {
    flex: 0 0 48% !important;
    max-width: 48% !important;
    overflow: hidden;
    position: relative;
}

.jm-partenaires-item__img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
    position: absolute;
    top: 0; left: 0;
}

.jm-partenaires-item__img--placeholder {
    position: static;
    width: 100%;
    height: 100%;
    min-height: 260px;
    background: var(--jm-cyan, #dff4ff);
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.jm-partenaires-item__img--placeholder span {
    font-family: 'Manrope', sans-serif;
    font-size: 56px;
    font-weight: 800;
    color: var(--jm-blue, #08598E);
    text-transform: uppercase;
}

.jm-partenaires-item__body {
    flex: 1 !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 40px 48px;
    gap: 16px;
}

.jm-partenaires-item__chip {
    display: inline-block;
    font-family: 'Manrope', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--jm-blue, #08598E);
    background: var(--jm-cyan, #dff4ff);
    border-radius: 20px;
    padding: 3px 12px;
}

.jm-partenaires-item__titre {
    font-family: 'Manrope', sans-serif;
    font-size: 24px !important;
    font-weight: 800 !important;
    color: var(--jm-ink, #0e1c2f) !important;
    line-height: 1.25 !important;
    margin: 0 !important;
}

.jm-partenaires-item__description {
    font-size: 15px;
    color: var(--jm-muted, #5c6678);
    line-height: 1.65;
    margin: 0;
    max-width: 380px;
}

.jm-partenaires-item__cta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: 'Manrope', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--jm-blue, #08598E) !important;
    text-decoration: none !important;
}
.jm-partenaires-item__cta:hover {
    color: var(--jm-night, #10294f) !important;
    text-decoration: underline !important;
}

.jm-partenaires-vide {
    font-size: 14px;
    color: var(--jm-muted, #5c6678);
    font-style: italic;
    text-align: center;
    padding: 48px;
}

@media (max-width: 700px) {
    .jm-partenaires-item {
        flex-direction: column !important;
    }
    .jm-partenaires-item__media {
        flex: 0 0 auto !important;
        max-width: 100% !important;
        height: 220px;
    }
    .jm-partenaires-item__img {
        position: absolute;
    }
    .jm-partenaires-item__body {
        padding: 28px 24px;
    }
    .jm-partenaires-item__titre {
        font-size: 20px !important;
    }
}

/* ── Bannière accès restreint (page /adherer/?acces=restreint) ──────────── */

/* ── Bloc page entière restreinte (jm_verifier_acces_page) ─────────────── */
.jm-page-restreinte {
    text-align: center;
    padding-top: 64px;
    padding-right: 24px;
    padding-bottom: 64px;
    padding-left: 24px;
    max-width: 560px;
    margin-top: 0;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
}

.jm-page-restreinte__icone {
    font-size: 48px;
    margin-bottom: 20px;
}

.jm-page-restreinte__titre {
    color: var(--jm-night);
    font-size: clamp(22px, 4vw, 28px);
    font-weight: 700;
    margin-bottom: 16px;
}

.jm-page-restreinte__texte {
    color: var(--jm-muted);
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 32px;
}

.jm-page-restreinte__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}


/* ══════════════════════════════════════════════════════════════════════════
   Événement single — .jm-event-hero
   Bloc date/heure visuellement fort en haut du panneau article.
   Template : single-evenement.php
   ══════════════════════════════════════════════════════════════════════════ */

.jm-event-hero {
    display: flex;
    align-items: flex-start;
    gap: clamp(24px, 4vw, 48px);
    padding: clamp(32px, 5vw, 56px) clamp(24px, 5vw, 56px) clamp(28px, 4vw, 40px);
}

/* ── Bloc calendrier (colonne gauche) ── */
.jm-event-hero__calendar {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    background: linear-gradient(160deg, var(--jm-blue) 0%, var(--jm-night) 100%);
    border-radius: var(--jm-radius-lg);
    padding: 20px 28px;
    min-width: 110px;
    flex-shrink: 0;
    text-align: center;
    position: relative;
}

/* Trait décoratif gauche (comme les cards de la home) */
.jm-event-hero__calendar::before {
    content: '';
    position: absolute;
    left: -6px;
    top: 16px;
    bottom: 16px;
    width: 4px;
    background: var(--jm-cyan);
    border-radius: 2px;
}

.jm-event-hero__day {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(45px, 8vw, 50px);
    font-weight: 800;
    color: #ffffff;
    line-height: 1;
    letter-spacing: -2px;
}

.jm-event-hero__month {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(13px, 2vw, 16px);
    font-weight: 700;
    color: rgba(255,255,255,0.75);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-top: 2px;
}

.jm-event-hero__year {
    font-family: 'Manrope', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: rgba(255,255,255,0.5);
    letter-spacing: 1px;
    margin-top: 1px;
}

.jm-event-hero__time {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(15px, 2vw, 18px);
    font-weight: 800;
    color: var(--jm-cyan);
    margin-top: 10px;
    padding-top: 10px;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: rgba(255,255,255,0.2);
    width: 100%;
    text-align: center;
}

/* ── Colonne info (droite) ── */
.jm-event-hero__info {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-top: 6px;
    flex: 1;
    min-width: 0;
}

.jm-event-hero__category {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--jm-blue);
    background: var(--jm-cyan);
    padding: 4px 12px;
    border-radius: var(--jm-radius-pill);
    align-self: flex-start;
}

.jm-event-hero__title {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(22px, 3.5vw, 36px);
    font-weight: 800;
    color: var(--jm-ink);
    line-height: 1.15;
    margin-top: 0;
    margin-bottom: 0;
}

.jm-event-hero__meta,
.jm-event-hero__intervenants {
    font-size: 15px;
    font-weight: 500;
    color: var(--jm-muted);
    margin-top: 0;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.jm-event-hero__meta-icon {
    font-size: 14px;
    flex-shrink: 0;
}

.jm-event-hero__cta {
    align-self: flex-start;
    margin-top: 8px;
}

/* ── Responsive : basculement vertical sous 600px ── */
@media (max-width: 599px) {
    .jm-event-hero {
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
    }

    .jm-event-hero__calendar {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0 16px;
        min-width: unset;
        padding: 16px 20px;
    }

    .jm-event-hero__calendar::before {
        display: none;
    }

    .jm-event-hero__day {
        font-size: 44px;
        letter-spacing: -1px;
    }

    .jm-event-hero__month,
    .jm-event-hero__year {
        margin-top: 0;
    }

    .jm-event-hero__time {
        border-top: none;
        padding-top: 0;
        margin-top: 0;
        width: auto;
        color: #ffffff;
    }
}
