/* ==========================================================================
   WeXchange 2026 Core Styles
   Brand Palette:
   - Primary Purple: #6f6aa6
   - Deep Purple: #231c42
   - Vibrant Coral: #f08150
   - Accent Teal: #5fa4b0
   - Dark Charcoal: #383838
   - Backgrounds: #fbfbfc / #ffffff / #1f1938 (MSIA)
   ========================================================================== */

/* Gotham : fichiers aux métriques verticales corrigées (gotham-*.woff2/.ttf).
   Les TTF d'origine avaient des métriques « hhea » à 0 : Safari / iOS plaçait
   alors la ligne de base au milieu de la ligne et le texte des boutons
   apparaissait trop haut. Métriques unifiées : ascent 850 / descent 150
   (hauteur des capitales 700 parfaitement centrée) sur tous les navigateurs. */
@font-face {
    font-family: 'Gotham';
    src: url('../fonts/gotham-book.woff2') format('woff2'),
         url('../fonts/gotham-book.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    ascent-override: 85%;
    descent-override: 15%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Gotham';
    src: url('../fonts/gotham-medium.woff2') format('woff2'),
         url('../fonts/gotham-medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    ascent-override: 85%;
    descent-override: 15%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Safiro';
    src: url('../fonts/safiro-medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

:root {
    --wex-purple: #6f6aa6;
    --wex-purple-dark: #231c42;
    --wex-purple-light: #f1f0f8;
    --wex-orange: #f08150;
    --wex-orange-hover: #e06e3d;
    --wex-orange-light: #fff3ec;
    --wex-teal: #5fa4b0;
    --wex-teal-light: #eef6f8;
    --wex-charcoal: #383838;
    --wex-muted: #6c757d;
    --wex-border: #e5e7eb;
    --wex-radius: 12px;
    --wex-radius-lg: 18px;
    --wex-shadow: 0 10px 25px -5px rgba(111, 106, 166, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
    --wex-shadow-hover: 0 20px 30px -10px rgba(111, 106, 166, 0.2);
}

.wex-font-safiro {
    font-family: 'Safiro', sans-serif !important;
}

.wex-font-gotham {
    font-family: 'Gotham', sans-serif !important;
}

.elementor-widget-wexchange_speakers,
.elementor-widget-wexchange_form,
.elementor-widget-wexchange_agenda,
.elementor-widget-wexchange_timeline,
.elementor-widget-wexchange_stats,
.elementor-widget-wexchange_countdown,
.elementor-widget-wexchange_collaborative_text,
.elementor-widget-wexchange_programme_tabs,
.elementor-widget-wexchange_puzzle_process,
.elementor-widget-wexchange_partenaires,
.elementor-widget-wexchange_nav,
.wex-speakers-container {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    align-self: stretch !important;
}

/* ==========================================================================
   GLOBAL RESET: Suppression totale des contours / strokes noirs au clic / focus
   sur TOUS les widgets WeXchange Core
   ========================================================================== */
[class*="elementor-widget-wexchange"] *,
[class*="elementor-widget-wexchange"] *::before,
[class*="elementor-widget-wexchange"] *::after,
[class*="wex-"] *,
[class*="wex-"] *::before,
[class*="wex-"] *::after {
    -webkit-tap-highlight-color: transparent !important;
}

[class*="elementor-widget-wexchange"] a,
[class*="elementor-widget-wexchange"] button,
[class*="elementor-widget-wexchange"] [role="button"],
[class*="elementor-widget-wexchange"] [role="tab"],
[class*="elementor-widget-wexchange"] [tabindex],
[class*="wex-"] a,
[class*="wex-"] button,
[class*="wex-"] [role="button"],
[class*="wex-"] [role="tab"],
[class*="wex-"] [tabindex],
.wex-programme-tab-btn,
.wex-collab-text-link,
.wex-collab-toggle-btn,
.wex-puzzle-card,
.wex-carousel-arrow,
.wex-nav-link,
.wex-nav-btn,
.wex-nav-cta,
.wex-nav-toggle,
.wex-custom-btn,
.wex-custom-btn-back {
    outline: none !important;
    outline-color: transparent !important;
    outline-style: none !important;
    outline-width: 0 !important;
}

[class*="elementor-widget-wexchange"] a:focus,
[class*="elementor-widget-wexchange"] a:focus-visible,
[class*="elementor-widget-wexchange"] a:active,
[class*="elementor-widget-wexchange"] button:focus,
[class*="elementor-widget-wexchange"] button:focus-visible,
[class*="elementor-widget-wexchange"] button:active,
[class*="elementor-widget-wexchange"] [role="button"]:focus,
[class*="elementor-widget-wexchange"] [role="button"]:focus-visible,
[class*="elementor-widget-wexchange"] [role="button"]:active,
[class*="elementor-widget-wexchange"] [role="tab"]:focus,
[class*="elementor-widget-wexchange"] [role="tab"]:focus-visible,
[class*="elementor-widget-wexchange"] [role="tab"]:active,
[class*="elementor-widget-wexchange"] [tabindex]:focus,
[class*="elementor-widget-wexchange"] [tabindex]:focus-visible,
[class*="elementor-widget-wexchange"] [tabindex]:active,
[class*="wex-"] a:focus,
[class*="wex-"] a:focus-visible,
[class*="wex-"] a:active,
[class*="wex-"] button:focus,
[class*="wex-"] button:focus-visible,
[class*="wex-"] button:active,
[class*="wex-"] [role="button"]:focus,
[class*="wex-"] [role="button"]:focus-visible,
[class*="wex-"] [role="button"]:active,
[class*="wex-"] [role="tab"]:focus,
[class*="wex-"] [role="tab"]:focus-visible,
[class*="wex-"] [role="tab"]:active,
[class*="wex-"] [tabindex]:focus,
[class*="wex-"] [tabindex]:focus-visible,
[class*="wex-"] [tabindex]:active,
.wex-programme-tab-btn:focus,
.wex-programme-tab-btn:focus-visible,
.wex-programme-tab-btn:active,
.wex-collab-text-link:focus,
.wex-collab-text-link:focus-visible,
.wex-collab-text-link:active,
.wex-collab-toggle-btn:focus,
.wex-collab-toggle-btn:focus-visible,
.wex-collab-toggle-btn:active,
.wex-puzzle-card:focus,
.wex-puzzle-card:focus-visible,
.wex-puzzle-card:active,
.wex-carousel-arrow:focus,
.wex-carousel-arrow:focus-visible,
.wex-carousel-arrow:active,
.wex-nav-link:focus,
.wex-nav-link:focus-visible,
.wex-nav-link:active,
.wex-nav-btn:focus,
.wex-nav-btn:focus-visible,
.wex-nav-btn:active,
.wex-nav-cta:focus,
.wex-nav-cta:focus-visible,
.wex-nav-cta:active,
.wex-nav-toggle:focus,
.wex-nav-toggle:focus-visible,
.wex-nav-toggle:active,
.wex-custom-btn:focus,
.wex-custom-btn:focus-visible,
.wex-custom-btn:active,
.wex-custom-btn-back:focus,
.wex-custom-btn-back:focus-visible,
.wex-custom-btn-back:active {
    outline: none !important;
    outline-color: transparent !important;
    outline-style: none !important;
    outline-width: 0 !important;
    box-shadow: none !important;
}

[class*="elementor-widget-wexchange"] button::-moz-focus-inner,
[class*="wex-"] button::-moz-focus-inner,
.wex-programme-tab-btn::-moz-focus-inner,
.wex-collab-toggle-btn::-moz-focus-inner,
.wex-carousel-arrow::-moz-focus-inner {
    border: 0 !important;
    padding: 0 !important;
}

/* ==========================================================================
   GLOBAL RESPONSIVE SAFEGUARDS: Prévention des débordements sur mobile
   ========================================================================== */
[class*="elementor-widget-wexchange"],
[class*="elementor-widget-wexchange"] > .elementor-widget-container {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

[class*="wex-"] {
    box-sizing: border-box !important;
}

[class*="elementor-widget-wexchange"] img,
[class*="wex-"] img {
    max-width: 100%;
    height: auto;
    box-sizing: border-box;
}

[class*="elementor-widget-wexchange"] svg,
[class*="wex-"] svg {
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    [class*="elementor-widget-wexchange"],
    [class*="wex-"] {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
}

/* ==========================================================================
   Countdown Widget
   ========================================================================== */
.wex-countdown-container {
    display: flex;
    gap: 16px;
    justify-content: center;
    align-items: center;
    margin: 25px 0;
    flex-wrap: wrap;
}

.wex-countdown-box {
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid var(--wex-border);
    backdrop-filter: blur(8px);
    border-radius: var(--wex-radius);
    padding: 18px 24px;
    min-width: 100px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.04);
    transition: transform 0.2s ease;
}

.wex-countdown-box:hover {
    transform: translateY(-2px);
}

.wex-countdown-num {
    font-family: 'Gotham', sans-serif;
    font-size: 40px;
    font-weight: 700;
    color: var(--wex-purple);
    line-height: 1;
    margin-bottom: 6px;
}

.wex-countdown-label {
    font-family: 'Gotham', sans-serif;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--wex-muted);
    font-weight: 500;
}

/* Dark mode for countdown in hero/banner */
.wex-countdown-dark .wex-countdown-box {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
}
.wex-countdown-dark .wex-countdown-num {
    color: #ffffff;
}
.wex-countdown-dark .wex-countdown-label {
    color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 767px) {
    .wex-countdown-container {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: clamp(10px, 3.5vw, 20px) !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 15px 0 !important;
        width: 100% !important;
    }
    .wex-countdown-box {
        flex: 0 1 auto !important;
        min-width: 0 !important;
        padding: clamp(8px, 2.5vw, 14px) clamp(10px, 3vw, 16px) !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
    .wex-countdown-num {
        font-size: clamp(26px, 8vw, 40px) !important;
        line-height: 1 !important;
        margin-bottom: 2px !important;
    }
    .wex-countdown-label {
        font-size: clamp(10.5px, 3vw, 13px) !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }
}

/* ==========================================================================
   Timeline: Une journée en 5 temps
   ========================================================================== */
.wex-timeline-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px;
    margin: 30px 0;
}

.wex-timeline-card {
    background: #ffffff;
    border: 1px solid var(--wex-border);
    border-radius: var(--wex-radius);
    padding: 24px 20px;
    position: relative;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    text-decoration: none !important;
    display: flex;
    flex-direction: column;
}

.wex-timeline-card:hover {
    transform: translateY(-5px);
    border-color: var(--wex-orange);
    box-shadow: 0 12px 24px rgba(240, 129, 80, 0.15);
}

.wex-timeline-time {
    display: inline-block;
    background: var(--wex-purple-light);
    color: var(--wex-purple);
    font-family: 'Gotham', sans-serif;
    font-weight: 700;
    font-size: 15px;
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 14px;
    align-self: flex-start;
}

.wex-timeline-card.celebrer .wex-timeline-time {
    background: #fff3ec;
    color: var(--wex-orange);
}

.wex-timeline-title {
    font-family: 'Gotham', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: var(--wex-charcoal);
    margin: 0 0 10px 0;
}

.wex-timeline-desc {
    font-family: 'Gotham', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: var(--wex-muted);
    margin: 0;
    flex-grow: 1;
}

.wex-timeline-badge {
    margin-top: 15px;
    font-size: 12px;
    font-weight: 600;
    color: var(--wex-orange);
    display: flex;
    align-items: center;
    gap: 5px;
}

/* ==========================================================================
   Chiffres Clés 2026 (Stats)
   ========================================================================== */
.wex-stats-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    margin: 40px 0;
}

@media (max-width: 991px) {
    .wex-stats-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 575px) {
    .wex-stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.wex-stat-item {
    text-align: center;
    padding: 25px 15px;
    background: #ffffff;
    border-radius: var(--wex-radius);
    border: 1px solid var(--wex-border);
    transition: transform 0.25s ease;
}

.wex-stat-item:hover {
    transform: translateY(-4px);
    box-shadow: var(--wex-shadow);
}

.wex-stat-number {
    font-family: 'Gotham', sans-serif;
    font-size: 48px;
    font-weight: 800;
    color: var(--wex-purple);
    line-height: 1.1;
    margin-bottom: 8px;
}

.wex-stat-label {
    font-family: 'Gotham', sans-serif;
    font-size: 15px;
    color: var(--wex-charcoal);
    font-weight: 500;
    line-height: 1.3;
}

/* Stats on dark purple background (like SITE.pdf) */
.wex-stats-theme-dark .wex-stat-item {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
}
.wex-stats-theme-dark .wex-stat-number {
    color: #ffffff;
}
.wex-stats-theme-dark .wex-stat-label {
    color: rgba(255, 255, 255, 0.85);
}

/* ==========================================================================
   Programme / Agenda Widget
   ========================================================================== */
.wex-agenda-wrapper {
    margin: 30px 0;
}

.wex-agenda-nav {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 35px;
}

.wex-agenda-tab-btn {
    padding: 12px 28px;
    font-family: 'Gotham', sans-serif;
    font-size: 16px;
    font-weight: 700;
    border-radius: 30px;
    border: 2px solid var(--wex-purple);
    background: transparent;
    color: var(--wex-purple);
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.wex-agenda-tab-btn.active,
.wex-agenda-tab-btn:hover {
    background: var(--wex-purple);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(111, 106, 166, 0.25);
}

.wex-agenda-tab-pane {
    display: none;
}
.wex-agenda-tab-pane.active {
    display: block;
    animation: wexFadeIn 0.3s ease;
}

@keyframes wexFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.wex-session-card {
    background: #ffffff;
    border: 1px solid var(--wex-border);
    border-radius: var(--wex-radius);
    padding: 24px;
    margin-bottom: 18px;
    display: flex;
    gap: 24px;
    align-items: flex-start;
    transition: all 0.25s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.02);
}

.wex-session-card:hover {
    border-color: var(--wex-purple);
    box-shadow: 0 6px 20px rgba(111, 106, 166, 0.08);
}

.wex-session-time-col {
    flex: 0 0 140px;
}

.wex-session-time {
    font-family: 'Gotham', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--wex-purple);
    background: var(--wex-purple-light);
    padding: 6px 12px;
    border-radius: 8px;
    display: inline-block;
    text-align: center;
    width: 100%;
}

.wex-session-body {
    flex: 1 1 auto;
}

.wex-session-type-badge {
    display: inline-block;
    font-family: 'Gotham', sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--wex-orange);
    background: var(--wex-orange-light);
    padding: 3px 10px;
    border-radius: 6px;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.wex-session-title {
    font-family: 'Gotham', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--wex-charcoal);
    margin: 0 0 10px 0;
    line-height: 1.35;
}

.wex-session-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    font-size: 13px;
    color: var(--wex-muted);
    margin-bottom: 12px;
}

.wex-session-meta-item {
    display: flex;
    align-items: center;
    gap: 6px;
}

.wex-badge-ai {
    background: linear-gradient(135deg, #5fa4b0, #6f6aa6);
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.wex-session-speakers {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.wex-speaker-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f8f9fa;
    border: 1px solid #edf0f2;
    border-radius: 30px;
    padding: 4px 12px 4px 4px;
    font-size: 13px;
    font-weight: 500;
    color: var(--wex-charcoal);
    cursor: pointer;
    transition: all 0.2s ease;
}

.wex-speaker-chip:hover {
    background: #eef2f5;
    border-color: var(--wex-teal);
}

.wex-speaker-chip img {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    object-fit: cover;
}

/* Session Details Modal */
.wex-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease;
}

.wex-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.wex-modal-card {
    background: #ffffff;
    border-radius: var(--wex-radius-lg);
    max-width: 600px;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    padding: 35px;
    position: relative;
    box-shadow: 0 20px 50px rgba(0,0,0,0.25);
    transform: translateY(20px);
    transition: transform 0.25s ease;
}

.wex-modal-overlay.active .wex-modal-card {
    transform: translateY(0);
}

.wex-modal-close {
    position: absolute;
    top: 18px;
    right: 20px;
    background: #f1f3f5;
    border: none;
    font-size: 20px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #495057;
    transition: background 0.2s;
}

.wex-modal-close:hover {
    background: #e9ecef;
}

/* ==========================================================================
   Registration Form Widget (3-Steps)
   ========================================================================== */
.wex-form-container {
    max-width: 820px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid var(--wex-border);
    border-radius: var(--wex-radius-lg);
    box-shadow: var(--wex-shadow);
    padding: 40px;
}

@media (max-width: 767px) {
    .wex-form-container {
        padding: 24px 18px;
    }
}

.wex-form-progress {
    display: flex;
    justify-content: space-between;
    margin-bottom: 35px;
    position: relative;
}

.wex-form-progress::before {
    content: '';
    position: absolute;
    top: 18px;
    left: 40px;
    right: 40px;
    height: 3px;
    background: #e9ecef;
    z-index: 1;
}

.wex-progress-bar {
    position: absolute;
    top: 18px;
    left: 40px;
    height: 3px;
    background: var(--wex-orange);
    z-index: 2;
    transition: width 0.3s ease;
}

.wex-progress-step {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    padding: 0 10px;
}

.wex-step-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #e9ecef;
    color: var(--wex-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Gotham', sans-serif;
    font-weight: 700;
    font-size: 14px;
    transition: all 0.3s ease;
}

.wex-progress-step.active .wex-step-num {
    background: var(--wex-orange);
    color: #ffffff;
    box-shadow: 0 0 0 4px rgba(240, 129, 80, 0.2);
}

.wex-progress-step.completed .wex-step-num {
    background: var(--wex-purple);
    color: #ffffff;
}

.wex-step-label {
    font-family: 'Gotham', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--wex-muted);
}

.wex-progress-step.active .wex-step-label {
    color: var(--wex-orange);
}

.wex-progress-step.completed .wex-step-label {
    color: var(--wex-purple);
}

.wex-form-step-content {
    display: none;
}
.wex-form-step-content.active {
    display: block;
    animation: wexFadeIn 0.3s ease;
}

.wex-form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

@media (max-width: 650px) {
    .wex-form-grid {
        grid-template-columns: 1fr;
    }
}

.wex-form-group {
    margin-bottom: 18px;
}

.wex-form-group.full-width {
    grid-column: 1 / -1;
}

.wex-form-label {
    display: block;
    font-family: 'Gotham', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--wex-charcoal);
    margin-bottom: 6px;
}

.wex-form-label .required {
    color: var(--wex-orange);
}

.wex-form-control {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--wex-border);
    border-radius: 8px;
    font-family: 'Gotham', sans-serif;
    font-size: 14px;
    color: var(--wex-charcoal);
    background: #fbfbfc;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.wex-form-control:focus {
    border-color: var(--wex-purple);
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(111, 106, 166, 0.15);
    outline: none;
}

.wex-form-control.is-invalid {
    border-color: #dc3545;
    background: #fff8f8;
}

.wex-invalid-feedback {
    color: #dc3545;
    font-size: 12px;
    margin-top: 4px;
    display: none;
}

.wex-session-choice-box {
    border: 1px solid var(--wex-border);
    border-radius: var(--wex-radius);
    padding: 16px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.2s ease;
    cursor: pointer;
    background: #ffffff;
}

.wex-session-choice-box:hover {
    border-color: var(--wex-purple);
    background: var(--wex-purple-light);
}

.wex-session-choice-box.selected {
    border-color: var(--wex-purple);
    background: var(--wex-purple-light);
    box-shadow: 0 0 0 2px var(--wex-purple);
}

.wex-session-choice-box.full {
    opacity: 0.6;
    pointer-events: none;
    background: #f8f9fa;
    border-style: dashed;
}

.wex-capacity-badge {
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}

.wex-capacity-badge.available {
    background: #e6f7ec;
    color: #0f8b44;
}

.wex-capacity-badge.limited {
    background: #fff3ec;
    color: var(--wex-orange);
}

.wex-capacity-badge.full {
    background: #fde8e8;
    color: #e02424;
}

.wex-form-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--wex-border);
}

.wex-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 30px;
    font-family: 'Gotham', sans-serif;
    font-size: 15px;
    font-weight: 700;
    border-radius: 30px;
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    text-decoration: none !important;
}

.wex-btn-primary {
    background: var(--wex-orange);
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(240, 129, 80, 0.35);
}

.wex-btn-primary:hover {
    background: var(--wex-orange-hover);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(240, 129, 80, 0.45);
}

.wex-btn-secondary {
    background: #e9ecef;
    color: var(--wex-charcoal) !important;
}

.wex-btn-secondary:hover {
    background: #dee2e6;
}

.wex-autosave-notice {
    font-size: 12px;
    color: var(--wex-muted);
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Success Confirmation Card */
.wex-confirmation-card {
    text-align: center;
    padding: 40px 20px;
}

.wex-confirmation-icon {
    width: 70px;
    height: 70px;
    background: #e6f7ec;
    color: #0f8b44;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    margin-bottom: 20px;
}

.wex-confirmation-title {
    font-family: 'Gotham', sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: var(--wex-charcoal);
    margin-bottom: 12px;
}

.wex-confirmation-text {
    font-family: 'Gotham', sans-serif;
    font-size: 15px;
    color: var(--wex-muted);
    max-width: 500px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.wex-confirmation-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ==========================================================================
   Soirée MSIA Section
   ========================================================================== */
.wex-msia-section {
    background: linear-gradient(135deg, #1c1635 0%, #2b2252 50%, #17122b 100%);
    color: #ffffff;
    border-radius: var(--wex-radius-lg);
    padding: 60px 45px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.wex-msia-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
}

.wex-msia-badge {
    display: inline-block;
    background: rgba(240, 129, 80, 0.2);
    border: 1px solid var(--wex-orange);
    color: #ffffff;
    font-family: 'Gotham', sans-serif;
    font-size: 13px;
    font-weight: 700;
    padding: 6px 16px;
    border-radius: 30px;
    margin-bottom: 18px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.wex-msia-title {
    font-family: 'Gotham', sans-serif;
    font-size: 36px;
    font-weight: 800;
    color: #ffffff;
    margin-bottom: 16px;
    line-height: 1.25;
}

.wex-msia-desc {
    font-family: 'Gotham', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 30px;
}

.wex-msia-timeline {
    display: flex;
    gap: 25px;
    margin-bottom: 35px;
    flex-wrap: wrap;
}

.wex-msia-time-box {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(5px);
    border-radius: var(--wex-radius);
    padding: 16px 20px;
    min-width: 180px;
}

.wex-msia-time-box .time {
    font-family: 'Gotham', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: var(--wex-orange);
    margin-bottom: 4px;
}

.wex-msia-time-box .event {
    font-size: 14px;
    color: #ffffff;
    font-weight: 500;
}

/* ==========================================================================
   Smooth Scroll & Anchor Margins for Sticky Header Offset
   ========================================================================== */
html {
    scroll-behavior: smooth;
}

#programme,
#intervenants,
#exposition,
#partenaires,
#msia,
#inscription,
[id="programme"],
[id="intervenants"],
[id="exposition"],
[id="partenaires"],
[id="msia"],
[id="inscription"] {
    scroll-margin-top: 95px;
}

@media (max-width: 767px) {
    #programme,
    #intervenants,
    #exposition,
    #partenaires,
    #msia,
    #inscription,
    [id="programme"],
    [id="intervenants"],
    [id="exposition"],
    [id="partenaires"],
    [id="msia"],
    [id="inscription"] {
        scroll-margin-top: 75px;
    }

    .wex-msia-section {
        padding: 40px 20px;
    }

    .wex-msia-title {
        font-size: 26px;
    }

    .wex-msia-time-box {
        min-width: 100%;
    }
}

/* ==========================================================================
   Libellés des chiffres (Chiffres clés / Éditions précédentes)
   Classe ajoutée aux widgets Heading Elementor : texte sur une seule ligne.
   ========================================================================== */
@media (min-width: 1025px) {
    .wex-stat-caption .elementor-heading-title {
        display: block;
        width: max-content;
        white-space: nowrap;
        position: relative;
        left: 50%;
        transform: translateX(-50%);
    }
}

