/* =============================================================
   CMF 2027 · 61ème Congrès de la SFSCMFCO
   Palette : Navy #1a3259 · Orange #d97220 · Fond blanc
   Typo    : Inter
   ============================================================= */

:root {
    --navy        : #1a3259;
    --navy-deep   : #0c1929;
    --navy-dark   : #111e2e;
    --navy-light  : #243f72;
    --navy-mid    : rgba(12,25,41,0.96);
    --orange      : #d97220;
    --orange-dark : #b85d10;
    --orange-glow : rgba(217,114,32,0.18);
    --ink         : #111827;
    --ink-muted   : #4b5563;
    --line        : #e5e7eb;
    --bg          : #ffffff;
    --surface     : #f7f8fa;

    --primary-color  : var(--navy);
    --accent-color   : var(--orange);

    --cmf-header-h: 5.5rem; /* remplacé par JS dès le chargement */
}

::selection      { background: var(--navy); color: #fff; }
::-moz-selection { background: var(--navy); color: #fff; }
html { scrollbar-width: none; }
html::-webkit-scrollbar { display: none; }

body {
    background: var(--bg);
    color: var(--ink);
    font-family: 'Inter', system-ui, sans-serif;
}

/* ── Navbar · fixe, transparent → navy au scroll ────────────── */
.congress-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 50 !important;
    background: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
    transition: background 0.35s ease, box-shadow 0.35s ease;
}
.congress-header.cmf-scrolled {
    background: var(--navy) !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.28) !important;
}
.congress-nav { background: transparent; }

/* Pousse le contenu hors du header fixe */
.congress-container {
    padding-top: var(--cmf-header-h) !important;
}
.congress-footer .congress-container {
    padding-top: 1.5rem !important;
}
/* En mode aperçu admin : la barre webvo est sticky dans le flux, le header fixe est à top:4rem
   La barre sticky compense les 4rem — le padding du container reste donc inchangé */
body:has(.webvo-preview-bar) .congress-header {
    top: 4rem !important;
}
body:has(.webvo-preview-bar) .congress-container {
    padding-top: var(--cmf-header-h) !important;
}
body:has(.webvo-preview-bar) .congress-footer .congress-container {
    padding-top: 1.5rem !important;
}
/* Annule le py-8 px-6 du wrapper blocks.blade.php (déjà géré par congress-container) */
.congress-content > .space-y-10 {
    padding: 0;
}
/* Boutons des blocs pages : carrés comme les boutons nav CMF */
.congress-content a.rounded-lg { border-radius: 0; }

/* Cache le wrapper content quand la section est vide (home page : tout est dans @section('hero')) */
.congress-container:has(.congress-content:not(:has(*))) {
    display: none;
}

.congress-nav-link {
    color: #fff !important;
    font-size: 0.875rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.5rem 1rem;
    border-radius: 0;
    transition: color 0.2s;
}
.congress-nav-link:hover { background: var(--orange) !important; color: #fff !important; }
.congress-nav-link--active { background: var(--orange) !important; color: #fff !important; }

/* Hauteur de la nav augmentée — uniquement la barre principale, pas le menu mobile */
.congress-nav > div:first-child { height: 5.5rem !important; }
/* Espace égal logo ↔ onglets ↔ Se connecter : centrer le bloc d'onglets dans le flex-1 */
.congress-nav > div > div:first-child { gap: 0 !important; }
.congress-nav > div > div:first-child > div.lg\:flex { margin-left: auto !important; margin-right: auto !important; }
/* Masque le nom texte à côté du logo : logo seul comme CMF 2025 */
.congress-nav a.shrink-0 > span { display: none !important; }
/* Logo blanc, plus grand */
.congress-nav a.shrink-0 > img { filter: brightness(0) invert(1); height: 3.5rem; width: auto; }
/* Texte nav blanc, boutons blancs */
.congress-nav a span { color: #fff !important; }

/* dropdown nav */
.congress-nav-dropdown {
    background: var(--navy);
    border: none;
    border-top: 3px solid var(--orange);
    border-radius: 0;
    box-shadow: 0 8px 24px rgba(0,0,0,0.35);
    min-width: 200px;
    padding: 0;
}
.congress-nav-dropdown .congress-nav-dropdown-item {
    color: #fff !important;
    border-radius: 0;
    font-size: 0.875rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.6rem 1rem;
    transition: background 0.15s;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.congress-nav-dropdown .congress-nav-dropdown-item:last-child { border-bottom: none; }
.congress-nav-dropdown .congress-nav-dropdown-item:hover,
.congress-nav-dropdown .congress-nav-dropdown-item--active {
    background: var(--orange) !important;
    color: #fff !important;
}

/* boutons auth : même style que les onglets nav */
.congress-nav-btn,
.congress-nav-btn--primary,
.congress-nav-btn--ghost {
    background: transparent !important;
    color: #fff !important;
    border: none;
    border-radius: 0 !important;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    transition: background 0.2s;
}
.congress-nav-btn:hover,
.congress-nav-btn--primary:hover,
.congress-nav-btn--ghost:hover { background: var(--orange) !important; color: #fff !important; }

/* langue */
.congress-nav-lang-btn {
    color: rgba(255,255,255,0.65);
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    transition: color 0.2s;
}
.congress-nav-lang-btn:hover { background: transparent; color: var(--orange); }

/* mobile */
.congress-nav > div:last-child { background: var(--navy-dark) !important; border-top: 1px solid rgba(255,255,255,0.08) !important; }
.congress-nav > div:last-child [class*="border-t"] { border-color: rgba(255,255,255,0.08) !important; }
.congress-nav-mobile-link {
    color: rgba(255,255,255,0.82) !important;
    display: block;
    padding: 0.5rem 0.875rem;
    border-radius: 0.3rem;
    font-size: 0.875rem;
    transition: background 0.12s;
}
.congress-nav-mobile-link:hover { background: rgba(255,255,255,0.09) !important; color: #fff !important; }
button.congress-nav-mobile-link { display: flex; justify-content: flex-start; gap: 0.35rem; }

/* ── Carrousel hero (Revolution Slider · même lib que CMF 2025) ─ */
.cmf-carousel {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 480px;
    overflow: hidden;
    background: var(--navy-deep);
}


/* ── Keynotes strip (sous le carrousel, style CMF 2025) ──────── */
.cmf-keynotes {
    background: var(--navy-dark);
    border-top: 3px solid var(--orange);
}
.cmf-keynotes__inner {
    max-width: 90rem;
    margin: 0 auto;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    /* colonnes séparées via border-right sur chaque .cmf-keynote */
}
@media (max-width: 900px) { .cmf-keynotes__inner { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .cmf-keynotes__inner { grid-template-columns: 1fr; } }

.cmf-keynote {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.25rem 1.5rem;
    border-right: 1px solid rgba(255,255,255,0.06);
    gap: 0.625rem;
    transition: background 0.2s;
}
.cmf-keynote:last-child { border-right: none; }
.cmf-keynote:hover { background: rgba(255,255,255,0.03); }

.cmf-keynote__icon {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--orange-glow);
    color: var(--orange);
    margin-bottom: 0.25rem;
    flex-shrink: 0;
}
.cmf-keynote__label {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.38);
}
.cmf-keynote__value {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #fff;
    line-height: 1.35;
}

/* ── Keynotes CTA bar ────────────────────────────────────────── */
.cmf-keynotes__cta {
    text-align: center;
    padding: 1.375rem 1.5rem 1.625rem;
    border-top: 1px solid rgba(255,255,255,0.06);
}

/* ── Compte à rebours (two-column split, style CMF 2025) ────── */
.cmf-split-section {
    display: flex;
    height: 360px;
}
@media (max-width: 900px) { .cmf-split-section { flex-direction: column; height: auto; } }

.cmf-split-section__info {
    flex: 1;
    background: linear-gradient(140deg, #22497f 0%, #1a3259 45%, #0f2545 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.5rem;
    padding: 3rem 3.5rem;
    overflow: hidden;
    position: relative;
    border-top: 3px solid var(--orange);
}
.cmf-split-section__info::before {
    content: '';
    position: absolute;
    bottom: -4rem;
    right: -4rem;
    width: 18rem;
    height: 18rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(217,114,32,0.13) 0%, transparent 65%);
    pointer-events: none;
}
@media (max-width: 640px) { .cmf-split-section__info { padding: 2.5rem 1.5rem; } }

.cmf-split-section__timer {
    flex: 0 0 50%;
    background: linear-gradient(160deg, #111e2e 0%, #0c1929 60%, #060f1a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 2.5rem;
    position: relative;
    overflow: hidden;
}
.cmf-split-section__timer::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(217,114,32,0.2) 0%, transparent 65%);
    pointer-events: none;
}
@media (max-width: 900px) { .cmf-split-section__timer { flex: none; padding: 2.5rem 1.5rem; } }
@media (max-width: 640px) { .cmf-split-section__timer { padding: 2rem 1rem; } }

.cmf-info-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: 0;
}
.cmf-info-list__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0;
    padding-right: 1.5rem;
    margin-right: 1.5rem;
    border-right: 1px solid rgba(255,255,255,0.12);
}
.cmf-info-list__item:last-child {
    border-right: none;
    padding-right: 0;
    margin-right: 0;
}
.cmf-info-list__icon {
    color: var(--orange);
    font-size: 1.25rem;
    line-height: 1;
    margin-bottom: 0.75rem;
}
.cmf-info-list__label {
    font-size: 0.5625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.38);
    display: block;
    margin-bottom: 0.25rem;
}
.cmf-info-list__value {
    font-size: 0.875rem;
    font-weight: 600;
    color: #fff;
    line-height: 1.35;
}

.cmf-countdown {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 36rem;
}
.cmf-countdown__sep { display: none; }
.cmf-countdown__unit {
    text-align: center;
    background: rgba(255,255,255,0.12);
    border-radius: 8px;
    padding: 2rem 1rem;
}
.cmf-countdown__number {
    display: block;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 900;
    color: var(--orange);
    line-height: 1;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}
.cmf-countdown__label {
    display: block;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: rgba(255,255,255,0.6);
    margin-top: 0.625rem;
}
@media (max-width: 640px) {
    .cmf-countdown { grid-template-columns: 1fr 1fr; gap: 0.625rem; }
    .cmf-countdown__unit { padding: 1.25rem 0.75rem; }
    .cmf-countdown__number { font-size: 2.5rem; }
}

/* ── Comités ──────────────────────────────────────────────────── */
.cmf-committees-section {
    background: var(--navy-deep);
    position: relative;
    overflow: hidden;
}
.cmf-committees-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(ellipse at top right, rgba(26,50,89,0.7) 0%, transparent 55%);
    pointer-events: none;
}
.cmf-committees-inner {
    max-width: 90rem;
    margin: 0 auto;
    padding: 4rem 2rem;
    position: relative;
    z-index: 1;
}
.cmf-committees-body {
    margin-top: 3rem;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}
.cmf-cmt-row {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}
.cmf-cmt-row__label {
    flex: 0 0 140px;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--orange);
    padding-top: 0.6rem;
    border-top: 2px solid var(--orange);
}
.cmf-cmt-row__chips {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.cmf-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.09);
    border-radius: 3px;
    padding: 0.375rem 0.875rem;
    font-size: 0.9375rem;
    color: rgba(255,255,255,0.72);
    line-height: 1.3;
    white-space: nowrap;
}
.cmf-chip--president {
    background: rgba(217,114,32,0.1);
    border-color: rgba(217,114,32,0.3);
    color: #fff;
    font-weight: 500;
}
.cmf-chip--president em {
    font-style: normal;
    font-size: 0.5rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--orange);
    border: 1px solid rgba(217,114,32,0.5);
    border-radius: 2px;
    padding: 1px 4px;
}
.cmf-committees-footnote {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.25);
    text-align: center;
    margin-top: 3rem;
}
@media (max-width: 640px) {
    .cmf-cmt-row { flex-direction: column; gap: 1rem; }
    .cmf-cmt-row__label { flex: none; padding-top: 0; border-top: none; border-left: 2px solid var(--orange); padding-left: 0.75rem; }
    .cmf-chip { font-size: 0.875rem; }
}

/* ── Partenaires · marquee infini ─────────────────────────────── */
.cmf-partners-section {
    background: var(--surface);
    overflow: hidden;
    padding: 3.5rem 0;
}
.cmf-partners-header {
    max-width: 90rem;
    margin: 0 auto;
    padding: 0 2rem 2.5rem;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}
@media (max-width: 640px) { .cmf-partners-header { flex-direction: column; padding: 0 1rem 1.5rem; } }
.cmf-partners-header__title {
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--navy);
    letter-spacing: -0.01em;
}
.cmf-partners-header__cta {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--orange);
    text-decoration: none;
    white-space: nowrap;
}
.cmf-partners-header__cta:hover { color: var(--orange-dark); }

.cmf-marquee-wrap { overflow: hidden; }
.cmf-marquee {
    display: flex;
    gap: 2rem;
    animation: cmf-marquee 28s linear infinite;
    width: max-content;
}
@keyframes cmf-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.cmf-marquee:hover { animation-play-state: paused; }
.cmf-partner-logo {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.25rem 1.75rem;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    min-width: 9rem;
    transition: box-shadow 0.2s;
}
.cmf-partner-logo:hover { box-shadow: 0 4px 16px rgba(26,50,89,0.1); }
.cmf-partner-logo img {
    height: 3.5rem;
    width: auto;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.65;
    transition: filter 0.2s, opacity 0.2s;
}
.cmf-partner-logo:hover img { filter: none; opacity: 1; }
.cmf-partner-logo__name {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-muted);
}
.cmf-partner-placeholder {
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 700;
    color: rgba(26,50,89,0.4);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* ── Section titre (style CMF 2025 : centré, trait orange) ───── */
.cmf-section-header {
    text-align: center;
    margin-bottom: 3rem;
}
.cmf-section-header__eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--orange);
    margin-bottom: 0.625rem;
}
.cmf-section-header__title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    color: var(--navy);
    letter-spacing: -0.01em;
    position: relative;
    display: inline-block;
    padding-bottom: 1rem;
}
.cmf-section-header__title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2.75rem;
    height: 3px;
    background: var(--orange);
    border-radius: 2px;
}
.cmf-section-header--light .cmf-section-header__title { color: #fff; }
.cmf-section-header--light .cmf-section-header__eyebrow { color: rgba(217,114,32,0.9); }

/* ── Stats section (style CMF 2025 : dark + chiffres orange) ─── */
.cmf-stats-section {
    background: var(--navy-deep);
    position: relative;
    overflow: hidden;
}
.cmf-stats-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(217,114,32,0.07) 0%, transparent 60%),
                      radial-gradient(circle at 80% 50%, rgba(26,50,89,0.4) 0%, transparent 60%);
    pointer-events: none;
}
.cmf-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    position: relative;
    z-index: 1;
    max-width: 90rem;
    margin: 0 auto;
}
@media (max-width: 768px) { .cmf-stats-grid { grid-template-columns: repeat(2, 1fr); } }

.cmf-stat {
    text-align: center;
    padding: 3.5rem 1.5rem;
    border-right: 1px solid rgba(255,255,255,0.06);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.cmf-stat:nth-child(4n) { border-right: none; }
@media (max-width: 768px) { .cmf-stat:nth-child(2n) { border-right: none; } }

.cmf-stat__number {
    display: block;
    font-size: clamp(2.75rem, 5vw, 4rem);
    font-weight: 900;
    color: var(--orange);
    line-height: 1;
    letter-spacing: -0.02em;
}
.cmf-stat__suffix {
    font-size: 0.55em;
    font-weight: 700;
    vertical-align: super;
    color: rgba(217,114,32,0.7);
}
.cmf-stat__label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.38);
    margin-top: 0.625rem;
}

/* ── CTA button ───────────────────────────────────────────────── */
.cmf-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--orange);
    color: #fff;
    font-weight: 700;
    font-size: 0.875rem;
    padding: 0.8125rem 2rem;
    border-radius: 3px;
    transition: background 0.15s, transform 0.1s, box-shadow 0.15s;
    text-decoration: none;
    letter-spacing: 0.02em;
}
.cmf-btn:hover {
    background: var(--orange-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(217,114,32,0.4);
}
.cmf-btn--outline {
    background: transparent;
    color: var(--navy);
    border: 2px solid var(--navy);
}
.cmf-btn--outline:hover { background: var(--navy); color: #fff; box-shadow: none; }
.cmf-btn--outline-white {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.4);
}
.cmf-btn--outline-white:hover { background: rgba(255,255,255,0.1); color: #fff; border-color: rgba(255,255,255,0.7); box-shadow: none; }

/* ── Section foncée générique ─────────────────────────────────── */
.cmf-dark-section {
    background: var(--navy-deep);
    color: rgba(255,255,255,0.85);
    position: relative;
}
.cmf-dark-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(ellipse at top left, rgba(26,50,89,0.5) 0%, transparent 60%);
    pointer-events: none;
}

/* ── Cards (sections claires) ─────────────────────────────────── */
.cmf-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 1.75rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 4px 12px rgba(0,0,0,0.04);
    transition: box-shadow 0.2s, transform 0.2s;
}
.cmf-card:hover {
    box-shadow: 0 4px 20px rgba(26,50,89,0.12);
    transform: translateY(-2px);
}



/* ── Page titles (en-têtes de pages intérieures) ──────────────── */
.cmf-page-hero {
    background: var(--navy-dark);
    padding: 3.5rem 0 3rem;
    position: relative;
    overflow: hidden;
}
.cmf-page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(217,114,32,0.08) 0%, transparent 60%);
    pointer-events: none;
}
.cmf-page-hero__title {
    font-size: clamp(1.625rem, 3vw, 2.25rem);
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.01em;
    position: relative;
    z-index: 1;
}
.cmf-page-hero__subtitle {
    font-size: 0.9375rem;
    color: rgba(255,255,255,0.55);
    margin-top: 0.375rem;
    position: relative;
    z-index: 1;
}

/* ── Tableau transport ─────────────────────────────────────────── */
.cmf-transport-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}
.cmf-transport-item {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    transition: box-shadow 0.2s;
}
.cmf-transport-item:hover { box-shadow: 0 4px 16px rgba(26,50,89,0.1); }
.cmf-transport-item__header {
    display: flex;
    align-items: center;
    gap: 0.875rem;
}
.cmf-transport-item__icon {
    width: 1.5rem;
    min-width: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy);
    flex-shrink: 0;
    font-size: 1.125rem;
    line-height: 1;
}
.cmf-transport-item__name,
.cmf-transport-item__header h3,
.cmf-transport-item__header h4 {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--navy);
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3;
}
.cmf-transport-item__detail {
    font-size: 0.8125rem;
    color: var(--ink-muted);
    line-height: 1.6;
}
.cmf-transport-item__badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--orange);
    background: var(--orange-glow);
    border-radius: 2px;
    padding: 0.2rem 0.5rem;
    letter-spacing: 0.04em;
    width: fit-content;
}

/* ── FAQ · remontée dans public/css/blocks.css (.page-faq*) ─────
   Le bloc FAQ est un bloc du page-builder, donc commun à tous les congrès :
   son style vivait ici et laissait la FAQ sans mise en forme ailleurs.
   L'accent y suit --secondary-color et le texte --primary-color, qui valent
   ici l'orange et le navy ci-dessus : le rendu de CMF est inchangé. */

/* ── Section titre inline (pages intérieures) ─────────────────── */
.cmf-section-title {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--navy);
    position: relative;
    padding-bottom: 0.625rem;
    margin-bottom: 1rem;
    letter-spacing: -0.01em;
}
.cmf-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 2.25rem;
    height: 3px;
    background: var(--orange);
    border-radius: 2px;
}

/* ── Footer ────────────────────────────────────────────────────── */
.congress-footer {
    background: var(--navy-dark) !important;
    border-color: var(--orange) !important;
    color: rgba(255,255,255,0.65);
}
.congress-footer a { color: rgba(255,255,255,0.65); transition: color 0.15s; }
.congress-footer a:hover { color: var(--orange); }

/* ── Scroll progress + back-to-top ───────────────────────────── */
.congress-scroll-progress { background: rgba(26,50,89,0.08); }
.congress-scroll-progress-fill { background: linear-gradient(90deg, var(--orange), #f09440); }
.congress-back-top { background: var(--navy); color: #fff; box-shadow: 0 4px 16px rgba(26,50,89,0.35); }
.congress-back-top:hover { background: var(--orange); }

/* ── Mot de la Présidente ─────────────────────────────────────── */
.cmf-president-section {
    background: var(--bg);
    padding: 5rem 0;
    border-bottom: 1px solid var(--line);
}
.cmf-president-inner {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    gap: 5rem;
    align-items: flex-start;
}
.cmf-president-aside {
    flex: 0 0 220px;
    position: sticky;
    top: calc(var(--cmf-header-h) + 2.5rem);
}
.cmf-president-aside__title {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    color: var(--navy);
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin: 0 0 2rem;
}
.cmf-president-aside__sig {
    border-top: 2px solid var(--orange);
    padding-top: 1rem;
    margin-bottom: 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.cmf-president-aside__name {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--navy);
}
.cmf-president-aside__role {
    font-size: 0.75rem;
    color: var(--orange);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.cmf-president-content {
    flex: 1;
    position: relative;
    color: var(--ink-muted);
    line-height: 1.85;
    font-size: 1.0625rem;
}
.cmf-president-quote-mark {
    position: absolute;
    top: -2rem;
    left: -1.5rem;
    font-size: 8rem;
    line-height: 1;
    color: var(--orange);
    opacity: 0.12;
    font-family: Georgia, serif;
    pointer-events: none;
    user-select: none;
}
.cmf-president-content p { margin-bottom: 1.25rem; }
.cmf-president-content p:last-child { margin-bottom: 0; }
.cmf-president-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}
@media (max-width: 768px) {
    .cmf-president-inner { flex-direction: column; gap: 2.5rem; }
    .cmf-president-aside { position: static; flex: none; width: 100%; }
    .cmf-president-quote-mark { font-size: 5rem; top: -1rem; left: -0.5rem; }
}
.cmf-cta-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.75rem 2rem;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    background: var(--navy);
    color: #fff;
}
.cmf-cta-btn:hover { background: var(--orange); color: #fff; }
.cmf-cta-btn--outline {
    background: transparent;
    color: var(--navy);
    box-shadow: inset 0 0 0 2px var(--navy);
}
.cmf-cta-btn--outline:hover { background: var(--navy); color: #fff; }

/* ── Bandeau pages intérieures (cmf-inner-hero) ──────────────── */
.cmf-inner-hero {
    background: var(--navy-deep);
    /* Full-bleed : sort du congress-container (max-w 90rem + px-6) */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: 2rem;
    /* Padding interne aligné sur le même containeur que la nav */
    padding-top: 3rem;
    padding-bottom: 3rem;
    padding-left: max(1.5rem, calc(50vw - 45rem + 1.5rem));
    padding-right: max(1.5rem, calc(50vw - 45rem + 1.5rem));
    position: relative;
    overflow: hidden;
    border-bottom: 3px solid var(--orange);
}
.cmf-inner-hero__eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--orange);
    margin: 0 0 0.5rem;
}
.cmf-inner-hero__title,
.cmf-inner-hero h1 {
    font-size: clamp(1.5rem, 4vw, 2.25rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    letter-spacing: -0.02em !important;
    line-height: 1.15 !important;
    margin: 0 0 0.625rem !important;
}
.cmf-inner-hero__sub {
    font-size: 0.9375rem;
    color: rgba(255,255,255,0.6);
    margin: 0;
}

/* ── Éditions précédentes · affiches ──────────────────────────── */
.cmf-editions-section {
    background: var(--navy-dark);
    padding: 4rem 2rem;
    text-align: center;
    border-top: 3px solid var(--orange);
    border-bottom: 3px solid var(--orange);
    position: relative;
    overflow: hidden;
}
.cmf-editions-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 120%, rgba(217,114,32,0.07) 0%, transparent 60%);
    pointer-events: none;
}
.cmf-editions-inner {
    max-width: 90rem;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.cmf-editions-grid {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: nowrap;
    margin-top: 2.5rem;
}
@media (max-width: 1024px) {
    .cmf-editions-grid {
        flex-wrap: wrap;
    }
    .cmf-edition-thumb { width: 9rem; }
    .cmf-edition-thumb--current { width: 11rem; }
}
@media (max-width: 640px) {
    .cmf-editions-grid { gap: 1rem; }
    .cmf-edition-thumb { width: 7rem; }
    .cmf-edition-thumb--current { width: 9rem; }
}
.cmf-edition-thumb {
    position: relative;
    width: 11rem;
    cursor: pointer;
    border: 0;
    padding: 0;
    background: none;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.5);
    transition: transform 0.22s, box-shadow 0.22s;
}
.cmf-edition-thumb:hover {
    transform: translateY(-5px) scale(1.03);
    box-shadow: 0 14px 36px rgba(0,0,0,0.6);
}
.cmf-edition-thumb img {
    width: 100%;
    height: auto;
    display: block;
}
.cmf-edition-year {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 100%);
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 700;
    padding: 2rem 0.75rem 0.5rem;
    letter-spacing: 0.08em;
}
.cmf-edition-thumb--current {
    width: 14rem;
    box-shadow: 0 6px 28px rgba(217,114,32,0.45);
    outline: 2px solid var(--orange);
    outline-offset: 3px;
}

/* Lightbox */
.cmf-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.93);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    cursor: zoom-out;
}
.cmf-lightbox__img {
    max-width: min(90vw, 60vh * 0.7);
    max-height: 90vh;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.6);
    cursor: default;
}
.cmf-lightbox__close {
    position: fixed;
    top: 1.25rem;
    right: 1.5rem;
    background: rgba(255,255,255,0.1);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.375rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, border-color 0.15s;
}
.cmf-lightbox__close:hover { background: var(--orange); border-color: var(--orange); }
.cmf-lightbox__nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.1);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    width: 3rem;
    height: 3rem;
    font-size: 1.5rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, border-color 0.15s;
    z-index: 1001;
}
.cmf-lightbox__nav:hover { background: var(--orange); border-color: var(--orange); }
.cmf-lightbox__nav--prev { left: 1.5rem; }
.cmf-lightbox__nav--next { right: 1.5rem; }
.cmf-lightbox__counter {
    position: fixed;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,0.4);
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
}

/* ── Page Contact ─────────────────────────────────────────────── */
.cmf-contact-section {
    padding: 4rem 2rem;
    background: var(--surface);
}
.cmf-contact-inner {
    max-width: 68rem;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2.5rem;
    align-items: start;
}
@media (max-width: 768px) { .cmf-contact-inner { grid-template-columns: 1fr; gap: 2rem; } }

.cmf-contact-aside {
    background: var(--navy-dark);
    border-top: 3px solid var(--orange);
    border-radius: 6px;
    padding: 2rem;
    position: sticky;
    top: calc(var(--cmf-header-h) + 1.5rem);
}
.cmf-contact-aside__label {
    font-size: 0.5625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--orange);
    margin-bottom: 1.5rem;
    display: block;
}
.cmf-contact-meta {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
}
.cmf-contact-meta li {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    font-size: 0.875rem;
    color: rgba(255,255,255,0.7);
    line-height: 1.45;
}
.cmf-contact-meta li i, .cmf-contact-meta li svg { color: var(--orange); font-size: 0.8125rem; margin-top: 0.175rem; flex-shrink: 0; width: 1rem; text-align: center; }
.cmf-contact-meta li a { color: rgba(255,255,255,0.85); text-decoration: none; transition: color 0.15s; }
.cmf-contact-meta li a:hover { color: var(--orange); }

.cmf-contact-main {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 2.5rem;
    box-shadow: 0 2px 16px rgba(26,50,89,0.06);
}
.cmf-contact-main__title {
    font-size: 1.125rem;
    font-weight: 800;
    color: var(--navy);
    letter-spacing: -0.01em;
    margin: 0 0 0.375rem;
}
.cmf-contact-main__sub {
    font-size: 0.875rem;
    color: var(--ink-muted);
    margin: 0 0 2rem;
}
.cmf-contact-divider {
    height: 1px;
    background: var(--line);
    margin: 0 0 2rem;
}

.cmf-contact-form { display: flex; flex-direction: column; gap: 1.25rem; }
.cmf-contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 480px) { .cmf-contact-row { grid-template-columns: 1fr; } }

.cmf-contact-field { display: flex; flex-direction: column; gap: 0.375rem; }
.cmf-contact-label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-muted);
}
.cmf-contact-input {
    width: 100%;
    padding: 0.6875rem 0.875rem;
    border: 1px solid var(--line);
    border-radius: 4px;
    font-size: 0.9375rem;
    color: var(--ink);
    background: var(--surface);
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    outline: none;
    font-family: inherit;
}
.cmf-contact-input:focus { border-color: var(--navy); background: #fff; box-shadow: 0 0 0 3px rgba(26,50,89,0.08); }
.cmf-contact-input--error { border-color: #dc2626; background: #fff; }
.cmf-contact-textarea { resize: vertical; min-height: 8rem; }
.cmf-contact-error { font-size: 0.75rem; color: #dc2626; }

.cmf-contact-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--line);
    margin-top: 0.25rem;
}

.cmf-contact-success {
    text-align: center;
    padding: 3.5rem 2rem;
}
.cmf-contact-success__icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: rgba(217,114,32,0.1);
    color: var(--orange);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin: 0 auto 1.25rem;
}
.cmf-contact-success__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--navy);
    margin: 0 0 0.375rem;
}
.cmf-contact-success__text {
    font-size: 0.875rem;
    color: var(--ink-muted);
    margin: 0;
}

/* ── Formulaires / boutons authentifiés ───────────────────────── */
.congress-primary-btn,
button[style*="--primary-color"] { background: var(--orange) !important; }

/* ── Crédit photo carrousel ──────────────────────────────────── */
.cmf-carousel__credit {
    position: absolute;
    bottom: 0.5rem;
    right: 0.75rem;
    z-index: 10;
    font-size: 0.625rem;
    color: rgba(255,255,255,0.45);
    margin: 0;
    pointer-events: none;
    letter-spacing: 0.03em;
}

/* ── Blocs page-builder ───────────────────────────────────────── */

/* Card */
.page-card { background:#fff; border:1px solid var(--line); border-radius:6px; padding:1.5rem;
    display:flex; flex-direction:column; gap:0.75rem; transition:box-shadow 0.2s; height:100%; }
.page-card:hover { box-shadow:0 4px 16px rgba(26,50,89,0.1); }
.page-card--dark { background: var(--navy); border-color: transparent; color: rgba(255,255,255,0.8); gap: 1.25rem; justify-content: center; }
.page-card--dark .page-card__title { color: #fff; font-size: 1.0625rem; }
.page-card--dark .page-card__body { color: rgba(255,255,255,0.7); font-size: 0.875rem; }
.page-card--dark .page-card__body p { margin: 0 0 0.75rem; }
.page-card--dark .page-card__body p:last-child { margin-bottom: 0; }
.page-card--dark .page-card__body strong { color: #fff; font-weight: 600; }
.page-card--dark .page-card__body a { color: var(--orange) !important; font-weight: 700; text-decoration: none; }
.page-card--dark .page-card__body a:hover { text-decoration: underline; }
.page-card--dark .page-card__body .ccard-label {
    font-size: 0.625rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
    color: rgba(255,255,255,0.35); display: block; margin-bottom: 0.5rem; margin-top: 1rem; }
.page-card--dark .page-card__body .ccard-label:first-child { margin-top: 0; }
.page-card--dark .page-card__body .ccard-row {
    display: flex; align-items: center; gap: 0.625rem; margin: 0 0 0.5rem; }
.page-card--dark .page-card__body .ccard-row svg { color: var(--orange); flex-shrink: 0; }
.page-card--dark .page-card__body .ccard-row strong { font-size: 0.9375rem; }
.page-card--dark .page-card__body .ccard-row a { font-size: 0.9375rem; }
.page-card--dark .page-card__icon { color: var(--orange); }
.page-card--dark:hover { box-shadow: 0 4px 24px rgba(0,0,0,0.3); }
.page-card__header { display:flex; align-items:center; gap:0.875rem; }
.page-card__icon { width:1.5rem; min-width:1.5rem; display:flex; align-items:center;
    justify-content:center; color:var(--navy); flex-shrink:0; font-size:1.125rem; line-height:1; }
.page-card__title { font-size:0.9375rem; font-weight:700; color:var(--navy);
    margin:0!important; padding:0!important; line-height:1.3; }
.page-card__body { font-size:0.8125rem; color:var(--ink-muted); line-height:1.6; }
.page-card__body a, .page-card__badge a { color:var(--orange) !important; font-weight:600; text-decoration:none; }
.page-card__body a:hover, .page-card__badge a:hover { text-decoration:underline; }
.page-card__badge { display:inline-flex; align-items:center; font-size:0.6875rem; font-weight:700;
    color:var(--orange); background:var(--orange-glow); border-radius:2px; padding:0.2rem 0.5rem;
    letter-spacing:0.04em; width:fit-content; }

/* Titres h2 dans le contenu de pages */
.congress-content h2 {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--navy);
    position: relative;
    padding-bottom: 0.625rem;
    margin-bottom: 1rem;
    letter-spacing: -0.01em;
}
.congress-content h2::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 2.25rem; height: 3px;
    background: var(--orange);
    border-radius: 2px;
}

/* Notice */
.page-notice {
    display: flex; align-items: flex-start; gap: 0.75rem;
    border-radius: 0.5rem; border: 1px solid; padding: 1rem; margin-top: 1rem;
}
.page-notice__icon { margin-top: 0.125rem; flex-shrink: 0; }
.page-notice__body { font-size: 0.875rem; line-height: 1.5; }
.page-notice__body strong { font-weight: 600; }
.page-notice--info  { border-color: rgba(26,50,89,0.15); background: rgba(26,50,89,0.04); color: #374151; }
.page-notice--info  .page-notice__icon { color: var(--navy); }
.page-notice--info  .page-notice__body a { color: var(--orange); }
.page-notice--warning { border-color: rgba(251,146,60,0.25); background: rgba(251,146,60,0.06); color: #92400e; }
.page-notice--warning .page-notice__icon { color: var(--orange); }
.page-notice--success { border-color: rgba(34,197,94,0.2); background: rgba(34,197,94,0.05); color: #166534; }
.page-notice--success .page-notice__icon { color: #16a34a; }
.page-notice--danger  { border-color: rgba(239,68,68,0.2); background: rgba(239,68,68,0.05); color: #991b1b; }
.page-notice--danger  .page-notice__icon { color: #dc2626; }

/* Bandeau */
.page-bandeau { background: var(--navy-deep);
    width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
    margin-bottom: 2rem;
    padding-top: 3rem; padding-bottom: 3rem;
    padding-left: max(1.5rem, calc(50vw - 45rem + 1.5rem));
    padding-right: max(1.5rem, calc(50vw - 45rem + 1.5rem));
    position: relative; overflow: hidden; border-bottom: 3px solid var(--orange); }
.page-bandeau__eyebrow { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.14em; color: var(--orange); margin: 0 0 0.5rem; }
.page-bandeau__title, .page-bandeau h1 { font-size: clamp(1.5rem, 4vw, 2.25rem) !important;
    font-weight: 800 !important; color: #fff !important; letter-spacing: -0.02em !important;
    line-height: 1.15 !important; margin: 0 0 0.625rem !important; }
.page-bandeau__sub { font-size: 0.9375rem; color: rgba(255,255,255,0.6); margin: 0; }

/* Grilles tarifaires · le socle (fond d'en-tête, zébrage, bordures, rayon) vient de
   .congress-content table dans app.css · ici seulement la colonne de prix et la densité. */
.congress-content table { margin: 0; border-color: var(--line); }
.congress-content table th { padding: 0.75rem 1rem; font-size: 0.6875rem; color: var(--ink-muted);
    vertical-align: bottom; }
.congress-content table td { padding: 0.625rem 1rem; font-size: 0.875rem; }
.congress-content table th + th { text-align: right; }
.congress-content table td + td { text-align: right; white-space: nowrap;
    font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; }

/* Sous 640px, les grilles passent en blocs : chaque cellule affiche l'intitulé
   de sa colonne (data-period posé par script.js) au lieu de scroller à l'horizontale. */
@media (max-width: 640px) {
    .congress-content .overflow-x-auto { overflow-x: visible; }
    .congress-content thead { display: none; }
    .congress-content table, .congress-content tbody,
    .congress-content table tr, .congress-content table td { display: block; width: 100%; }
    .congress-content table tr { padding: 0.75rem 1rem; }
    .congress-content table td { padding: 0.125rem 0; font-size: 0.8125rem; text-align: left; border-bottom: none; }
    .congress-content table td:first-child { font-weight: 600; margin-bottom: 0.25rem; }
    .congress-content table td.reg-none { display: none; }
    .congress-content table th.reg-sep, .congress-content table td.reg-sep { border-left: none; }
    .congress-content table td + td { display: flex; align-items: baseline;
        justify-content: space-between; gap: 1rem; width: 100%; }
    .congress-content table td + td::before { content: attr(data-period); font-size: 0.6875rem;
        font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-muted); }
    .congress-content td.reg-current::before { color: var(--orange); }
}

/* Bloc texte · pas de plugin typography, les marges sont à poser */
.congress-content .prose p { font-size: 0.875rem; line-height: 1.65; margin: 0 0 0.75rem; }
.congress-content .prose p:last-child { margin-bottom: 0; }
.congress-content .prose a { color: var(--orange); font-weight: 600; text-decoration: none; }
.congress-content .prose a:hover { text-decoration: underline; }

/* Bloc liste */
.congress-content ul.divide-y { border-color: var(--line); list-style: none; padding-left: 0; }
.congress-content ul.divide-y li { color: var(--ink); }

/* Période tarifaire en cours · classes posées par script.js selon la date du jour */
.congress-content th.reg-current { color: var(--orange); }
.congress-content td.reg-current { color: var(--orange); background: rgba(217,114,32,0.06); }
.congress-content table td.reg-none { font-weight: 400; color: var(--ink-muted); }
/* Deux formules dans la même grille : en-tête chapeau et trait de séparation */
.congress-content table th.reg-group { text-align: center; font-size: 0.75rem; font-weight: 700;
    color: var(--navy); letter-spacing: 0.04em; padding-bottom: 0.375rem; border-bottom: none; }
.congress-content table th .reg-group__note { font-weight: 400; }
.congress-content table .reg-sep { border-left: 2px solid var(--ink-muted); }
.congress-content th.reg-inactive,
.congress-content td.reg-inactive { color: var(--ink-muted); opacity: 0.6; }
.reg-badge { display: block; width: fit-content; margin: 0 0 0.3125rem auto; padding: 0.125rem 0.375rem;
    font-size: 0.625rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--orange); background: var(--orange-glow); border-radius: 2px; }

/* Listes dans une carte · les puces viennent de .congress-content ul li::before */
.page-card__body ul { margin: 0; }

/* Pages de contenu · interligne entre blocs resserré, grilles plus denses */
.congress-content .space-y-10 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.75rem; }

