/* ==========================================================================
   STAND-UP ACADEMY — Pages Formations (Découverte / Semi-Pro / Pro)
   File: formation-figma.css
   Note: Complète home-figma.css. Reproduit le node Figma 336:2 (Découverte)
   et sera réutilisé pour les autres formations.
   ========================================================================== */

:root {
    --fm-bg-1: linear-gradient(-42deg, #1a0a00 40%, #2b1200 100%);
    --fm-bg-2: linear-gradient(165deg, #2b1200 0%, #1a0a00 60%);
    --fm-bg-3: linear-gradient(135deg, #2b1200 0%, #1a0a00 60%);
    --fm-glass: linear-gradient(168deg, rgba(170, 78, 0, 0.20) 0%, rgba(85, 35, 0, 0.20) 100%);
    --fm-glass-strong: linear-gradient(160deg, rgba(240, 122, 26, 0.22) 0%, rgba(85, 35, 0, 0.32) 100%);
    --fm-glass-shadow: 5px 9px 19px rgba(0, 0, 0, 0.16);
    --fm-glass-shadow-deep: 5px 9px 19px 3px rgba(0, 0, 0, 0.16);
    --fm-cream-soft: rgba(240, 236, 228, 0.85);
    --fm-cream-dim: rgba(240, 236, 228, 0.65);
    --fm-cream-faint: rgba(240, 236, 228, 0.45);
    /* Niveau color (default: Découverte = purple) */
    --fm-niveau: #d876ff;
    --fm-niveau-rgb: 216, 118, 255;
    --fm-niveau-bg: rgba(216, 118, 255, 0.05);
    --fm-niveau-bg-strong: rgba(216, 118, 255, 0.12);
    --fm-niveau-border: rgba(216, 118, 255, 0.25);
    --fm-niveau-border-strong: rgba(216, 118, 255, 1);
    --fm-niveau-soft: rgba(216, 118, 255, 0.08);
}

/* Set Pro — accent rouge */
body.is-semipro {
    --fm-niveau: #ff3131;
    --fm-niveau-rgb: 255, 49, 49;
    --fm-niveau-bg: rgba(255, 49, 49, 0.05);
    --fm-niveau-bg-strong: rgba(255, 49, 49, 0.12);
    --fm-niveau-border: rgba(255, 49, 49, 0.25);
    --fm-niveau-border-strong: rgba(255, 49, 49, 1);
    --fm-niveau-soft: rgba(255, 49, 49, 0.08);
}

/* Spectacle Pro — accent orange brand */
body.is-pro {
    --fm-niveau: #f07a1a;
    --fm-niveau-rgb: 240, 122, 26;
    --fm-niveau-bg: rgba(240, 122, 26, 0.05);
    --fm-niveau-bg-strong: rgba(240, 122, 26, 0.15);
    --fm-niveau-border: rgba(240, 122, 26, 0.3);
    --fm-niveau-border-strong: rgba(240, 122, 26, 1);
    --fm-niveau-soft: rgba(240, 122, 26, 0.08);
}

body.formation-page {
    background:
        radial-gradient(ellipse 1200px 800px at 80% -10%, rgba(240, 122, 26, 0.06), transparent 60%),
        radial-gradient(ellipse 900px 600px at 20% 110%, rgba(240, 122, 26, 0.04), transparent 60%),
        var(--brown-darker);
}

/* ==========================================================================
   NAV — Badge "PRO" (page formation C uniquement)
   ========================================================================== */
.nav-logo-wrap {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.nav-pro-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 7px 16px;
    border-radius: 10px;
    background:
        linear-gradient(180deg, #0c0805 0%, #1a0f08 50%, #0a0604 100%);
    border: 1px solid rgba(255, 196, 130, 0.55);
    box-shadow:
        inset 0 1px 0 rgba(255, 220, 170, 0.22),
        inset 0 -1px 0 rgba(0, 0, 0, 0.55),
        inset 0 0 0 1px rgba(0, 0, 0, 0.4),
        0 10px 26px -10px rgba(255, 138, 58, 0.55),
        0 0 26px -8px rgba(255, 178, 110, 0.45);
    overflow: hidden;
    line-height: 1;
    user-select: none;
    transform: rotate(-1.5deg);
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

.nav-pro-badge-edge {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        linear-gradient(180deg,
            transparent 0%,
            transparent 48%,
            rgba(255, 196, 130, 0.18) 50%,
            transparent 52%,
            transparent 100%);
}

.nav-pro-badge-grid {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    opacity: 0.45;
    background-image:
        repeating-linear-gradient(135deg,
            rgba(255, 196, 130, 0.05) 0,
            rgba(255, 196, 130, 0.05) 1px,
            transparent 1px,
            transparent 6px);
}

.nav-pro-badge:hover {
    transform: rotate(-1.5deg) translateY(-2px);
    border-color: rgba(255, 220, 170, 0.85);
    box-shadow:
        inset 0 1px 0 rgba(255, 220, 170, 0.3),
        inset 0 -1px 0 rgba(0, 0, 0, 0.55),
        inset 0 0 0 1px rgba(0, 0, 0, 0.4),
        0 16px 32px -10px rgba(255, 138, 58, 0.75),
        0 0 36px -6px rgba(255, 178, 110, 0.65);
}

.nav-pro-badge-stack {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nav-pro-badge-text {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.22em;
    line-height: 0.9;
    /* Compense l'espacement à droite de la dernière lettre lié au letter-spacing,
       pour que le mot apparaisse parfaitement centré dans la pastille. */
    padding-left: 0.22em;
    background: linear-gradient(180deg, #fff7e6 0%, #ffd28a 45%, #c98a45 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    text-shadow: 0 0 18px rgba(255, 178, 110, 0.25);
    text-transform: uppercase;
}

@media (max-width: 760px) {
    .nav-pro-badge {
        padding: 6px 11px 6px 9px;
        gap: 9px;
    }
    .nav-pro-badge-text { font-size: 16px; letter-spacing: 0.2em; }
    .nav-logo-wrap { gap: 10px; }
}

.fm-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
    z-index: 2;
    width: 100%;
}

.fm-reveal {
    opacity: 0;
    transform: translateY(48px);
    transition:
        opacity 0.85s cubic-bezier(0.2, 0.7, 0.2, 1),
        transform 0.85s cubic-bezier(0.2, 0.7, 0.2, 1);
    will-change: opacity, transform;
}
.fm-reveal.is-revealed { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .fm-reveal { opacity: 1; transform: none; transition: none; }
}

/* ==========================================================================
   PILL TAG (eyebrow orange — utilisé partout)
   ========================================================================== */
.fm-pill {
    display: inline-flex;
    align-items: center;
    height: 29px;
    padding: 0 18px;
    border-radius: 100px;
    background: var(--orange-grad);
    color: var(--black);
    font-family: 'Inter', sans-serif;
    font-size: 11.2px;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: uppercase;
}

/* ==========================================================================
   HERO — "TES PREMIERS PAS sur scène"
   ========================================================================== */
.fm-hero {
    position: relative;
    min-height: 820px;
    height: 100vh;
    max-height: 1100px;
    padding: 140px 0 80px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(10, 10, 15, 0.88) 0%, rgba(10, 10, 15, 0.92) 50%, rgba(16, 14, 22, 1) 100%),
        var(--brown-darker);
    display: flex;
    align-items: center;
}

.fm-hero-grain {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    background-image: radial-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px);
    background-size: 3px 3px;
    mix-blend-mode: overlay;
    opacity: 0.4;
}

/* Hero orbs : strict copie de la home (4 anneaux concentriques) */
.fm-hero-orb {
    position: absolute;
    pointer-events: none;
    aspect-ratio: 1;
    left: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    z-index: 1;
    --fm-orb-y: 0px;
    --fm-orb-x: 0px;
    --fm-orb-scale: 1;
    --fm-orb-rotate: 0deg;
    transform:
        translate(calc(-50% + var(--fm-orb-x)), calc(-50% + var(--fm-orb-y)))
        scale(var(--fm-orb-scale))
        rotate(var(--fm-orb-rotate));
    transition: transform 0.18s cubic-bezier(0.2, 0.7, 0.2, 1);
    will-change: transform;
}
.fm-hero-orb.h29 {
    background-image: url('assets/figma/hero-ellipse-29.svg');
    width: 167%;
    top: 100%;
    animation: fmOrbBreathe 14s ease-in-out infinite;
}
.fm-hero-orb.h27 {
    background-image: url('assets/figma/hero-ellipse-27.svg');
    width: 107%;
    top: 112%;
    animation: fmOrbBreathe 11s ease-in-out infinite reverse;
}
.fm-hero-orb.h26 {
    background-image: url('assets/figma/hero-ellipse-26.svg');
    width: 77%;
    top: 108.5%;
    animation: fmOrbBreathe 9s ease-in-out infinite;
    animation-delay: -3s;
}
.fm-hero-orb.h28 {
    background-image: url('assets/figma/hero-ellipse-28.svg');
    width: 40%;
    top: 104.5%;
    animation: fmOrbBreathe 7s ease-in-out infinite reverse;
    animation-delay: -1.5s;
}
@keyframes fmOrbBreathe {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.78; }
}
@media (prefers-reduced-motion: reduce) {
    .fm-hero-orb { animation: none !important; }
}

.fm-hero-inner {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
}

/* Banner "Formation Découverte by Stand up Academy" */
.fm-hero-banner {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    height: 48px;
    padding: 0 28px;
    border-radius: 22px;
    background: var(--fm-glass);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid var(--orange);
    margin-bottom: 36px;
}
.fm-hero-banner img {
    width: 26px;
    height: 30px;
    flex-shrink: 0;
}
.fm-hero-banner span {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 20px;
    color: var(--white);
    letter-spacing: 0.04em;
    line-height: 1;
    white-space: nowrap;
}

.fm-hero-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3.5rem, 11vw, 10rem);
    line-height: 0.86;
    letter-spacing: 8px;
    color: var(--cream);
    margin: 0 0 36px;
    text-shadow: var(--text-shadow);
    text-transform: uppercase;
}
.fm-hero-title .accent {
    color: var(--orange);
}

.fm-hero-desc {
    max-width: 700px;
    margin: 0 auto 36px;
    padding: 28px 36px;
    border-radius: 22px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 3px solid var(--orange-1);
    font-family: 'Inter', sans-serif;
    font-size: 15.2px;
    line-height: 1.7;
    color: var(--white);
}

.fm-hero-cta-row {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 110px;
}

.fm-btn-primary,
.fm-btn-outline,
.fm-btn-white {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 55px;
    padding: 0 32px;
    border-radius: 100px;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.5px;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease;
    cursor: pointer;
    white-space: nowrap;
    border: none;
}
.fm-btn-primary {
    background: var(--orange);
    color: var(--white);
    box-shadow: 0 0 13.2px rgba(240, 122, 26, 0.55);
}
.fm-btn-primary:hover {
    transform: translateY(-2px);
    background: #ff8a2d;
    box-shadow:
        0 10px 28px rgba(240, 122, 26, 0.45),
        0 0 22px rgba(240, 122, 26, 0.5);
}
.fm-btn-outline {
    height: 54px;
    background: transparent;
    color: var(--cream);
    border: 2px solid var(--white);
    font-size: 14.4px;
    font-weight: 600;
    padding: 0 28px;
}
.fm-btn-outline:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.1);
}
.fm-btn-white {
    background: var(--white);
    color: var(--night);
    box-shadow: 0 0 13.2px rgba(255, 255, 255, 0.55);
}
.fm-btn-white:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(255, 255, 255, 0.4), 0 0 22px rgba(255, 255, 255, 0.5);
}

/* Scroll indicator */
.fm-hero-scroll {
    position: absolute;
    left: 50%;
    bottom: 40px;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    z-index: 4;
}
.fm-hero-scroll-label {
    font-family: 'Inter', sans-serif;
    font-size: 10.4px;
    font-weight: 400;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--white);
}
.fm-hero-scroll-line {
    width: 2px;
    height: 40px;
    background: linear-gradient(180deg, var(--white) 0%, transparent 100%);
}

@media (max-width: 880px) {
    .fm-hero-title { letter-spacing: 4px; }
    .fm-hero-banner { padding: 0 20px; height: 44px; }
    .fm-hero-banner span { font-size: 16px; }
    .fm-hero-desc { padding: 22px 22px; font-size: 14px; }
    .fm-hero-scroll { bottom: 24px; }
}
@media (max-width: 600px) {
    .fm-hero { min-height: 720px; padding: 120px 0 70px; }
    .fm-hero-title { letter-spacing: 2px; }
}

/* ==========================================================================
   SECTION COMMUNE — base
   ========================================================================== */
.fm-section {
    position: relative;
    padding: 130px 0 130px;
    background: var(--fm-bg-1);
    border-top: 1px solid var(--orange-border);
    overflow: hidden;
    isolation: isolate;
}
.fm-section.is-bg-2 { background: var(--fm-bg-2); }
.fm-section.is-bg-3 { background: var(--fm-bg-3); }

/* Section plein-écran : utilisée pour les slides "Et après ?" des parcours
   afin de garder un rythme visuel constant avec les autres slides. */
.fm-section.is-fullscreen {
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fm-section.is-fullscreen > .fm-container {
    width: 100%;
}
@media (max-width: 760px) {
    .fm-section.is-fullscreen {
        min-height: auto;
        padding: 110px 0 110px;
    }
}

/* Disques de fond — réutilisent les sec-ellipse SVG */
.fm-section-glow {
    position: absolute;
    pointer-events: none;
    aspect-ratio: 1;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    z-index: 0;
    transform: translate(-50%, calc(-50% + var(--orb-offset, 0px)));
    will-change: transform;
}
.fm-section-glow.left {
    background-image: url('assets/figma/sec-ellipse-30.svg');
    width: 130%;
    left: -10%;
    top: 30%;
}
.fm-section-glow.right {
    background-image: url('assets/figma/sec-ellipse-31.svg');
    width: 110%;
    left: 90%;
    top: 60%;
}
.fm-section-glow.top-left {
    background-image: url('assets/figma/sec-ellipse-32.svg');
    width: 95%;
    left: 5%;
    top: 20%;
}
.fm-section-glow.bottom-right {
    background-image: url('assets/figma/sec-ellipse-33.svg');
    width: 100%;
    left: 95%;
    top: 95%;
}
.fm-section-glow.bottom-left {
    background-image: url('assets/figma/sec-ellipse-34.svg');
    width: 100%;
    left: 5%;
    top: 95%;
}
.fm-section-glow.top-right {
    background-image: url('assets/figma/sec-ellipse-35.svg');
    width: 95%;
    left: 100%;
    top: 25%;
}

/* En-tête commun centré */
.fm-section-header {
    text-align: center;
    margin: 0 auto 64px;
    max-width: 760px;
    position: relative;
    z-index: 2;
}
.fm-section-header .fm-pill { margin-bottom: 24px; }
.fm-section-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.4rem, 5.5vw, 56px);
    line-height: 1.1;
    letter-spacing: 2px;
    color: var(--cream);
    margin: 0 0 20px;
    text-transform: none;
}
.fm-section-title .accent {
    color: var(--orange);
}
.fm-section-sub {
    font-family: 'Inter', sans-serif;
    font-size: 16.8px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0;
}

/* ==========================================================================
   INTRO — "2h par semaine pour explorer"
   ========================================================================== */
.fm-intro-card {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 444px;
    gap: 56px;
    align-items: center;
    padding: 48px 56px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid rgba(240, 122, 26, 0.15);
    box-shadow: var(--fm-glass-shadow-deep);
    overflow: hidden;
}
.fm-intro-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, var(--orange) 50%, transparent 100%);
}
.fm-intro-text { position: relative; z-index: 2; }
.fm-intro-text .fm-pill { margin-bottom: 28px; }
.fm-intro-text h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 56px;
    line-height: 1.1;
    letter-spacing: 2px;
    color: var(--cream);
    margin: 0 0 28px;
}
.fm-intro-text h2 .accent { color: var(--orange); }
.fm-intro-text p {
    font-family: 'Inter', sans-serif;
    font-size: 16.8px;
    line-height: 1.8;
    color: var(--gray-text);
    margin: 0 0 36px;
}
.fm-intro-image {
    position: relative;
    width: 100%;
    aspect-ratio: 444 / 361;
    border-radius: 20px;
    border: 1px solid var(--orange);
    overflow: hidden;
    background: #1a0a00;
}
.fm-intro-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

@media (max-width: 1080px) {
    .fm-intro-card { grid-template-columns: 1fr; gap: 32px; padding: 36px 28px; }
    .fm-intro-image { max-width: 540px; margin: 0 auto; aspect-ratio: 4 / 3; }
    .fm-intro-text h2 { font-size: 40px; }
}

/* ==========================================================================
   "CE QU'ON TRAVAILLE ENSEMBLE" — 3 cards avec icônes orange en surimpression
   ========================================================================== */
.fm-axes-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    position: relative;
    z-index: 2;
    margin-bottom: 60px;
}

.fm-axe {
    position: relative;
    padding: 56px 36px 36px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1), border-color 0.4s ease, box-shadow 0.4s ease;
}
.fm-axe:hover {
    transform: translateY(-4px);
    border-color: var(--orange);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.4);
}
.fm-axe-icon {
    position: absolute;
    top: -11px;
    left: -13px;
    width: 55px;
    height: 55px;
    border-radius: 42px;
    background: var(--orange-grad);
    border: 2px solid var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow:
        0 0 13.2px rgba(240, 122, 26, 0.55),
        0 4px 16px rgba(0, 0, 0, 0.3);
}
.fm-axe-icon svg,
.fm-axe-icon img {
    width: 26px;
    height: 26px;
    color: var(--white);
}
.fm-axe h3 {
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--cream);
    margin: 0 0 16px;
    line-height: 1.3;
}
.fm-axe-divider {
    width: 196px;
    max-width: 100%;
    height: 1px;
    background: linear-gradient(90deg, var(--orange), transparent);
    margin: 0 0 18px;
    border: none;
}
.fm-axe p {
    font-family: 'Inter', sans-serif;
    font-size: 14.1px;
    line-height: 1.6;
    color: var(--white);
    margin: 0;
}

@media (max-width: 1000px) {
    .fm-axes-grid { grid-template-columns: 1fr; gap: 32px; max-width: 600px; margin-left: auto; margin-right: auto; }
}

/* ==========================================================================
   GROS PANEL "Parcours Découverte" — détail complet
   ========================================================================== */
.fm-tab-card {
    position: relative;
    z-index: 2;
    padding: 48px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
}

.fm-tab-letter {
    position: absolute;
    top: 29px;
    left: 46px;
    width: 65px;
    height: 65px;
    border-radius: 32px;
    background: var(--orange-grad);
    border: 1.8px solid var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-family: 'Bebas Neue', sans-serif;
    font-size: 35px;
    line-height: 1;
    text-transform: lowercase;
    letter-spacing: 0.02em;
}

.fm-tab-head {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-left: 100px;
    margin-bottom: 28px;
    min-height: 120px;
    justify-content: center;
}
.fm-tab-niveau {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 13.6px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--gray-text);
}
.fm-tab-tag {
    display: inline-flex;
    align-items: center;
    height: 29px;
    padding: 0 16px;
    border-radius: 100px;
    background: var(--fm-niveau-bg-strong);
    border: 1px solid var(--fm-niveau-border);
    font-family: 'Inter', sans-serif;
    font-size: 11.2px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--fm-niveau);
}
.fm-tab-h {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 32px;
    line-height: 1.7;
    color: var(--cream);
    letter-spacing: 2px;
    margin: 0;
}
.fm-tab-desc {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0 0 28px;
}
.fm-tab-desc strong { color: var(--cream); font-weight: 700; }

.fm-tab-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 28px;
}
.fm-stat {
    padding: 22px 18px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--orange-border);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.fm-stat-label {
    font-family: 'Inter', sans-serif;
    font-size: 11.2px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--fm-niveau);
}
.fm-stat-value {
    font-family: 'Inter', sans-serif;
    font-size: 15.2px;
    font-weight: 600;
    color: var(--cream);
    line-height: 1.4;
}

.fm-tab-meta {
    display: grid;
    grid-template-columns: 2fr 1.5fr 1fr;
    gap: 18px;
    margin-bottom: 32px;
}
.fm-meta-block {
    padding: 22px 18px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--orange-border);
}
.fm-meta-block.is-tarif {
    background: var(--fm-niveau-bg);
    border: 1px solid var(--fm-niveau-border-strong);
}
.fm-meta-block.is-tarif .fm-stat-label { color: var(--gray-text); }
.fm-meta-block.is-tarif .fm-stat-value {
    font-family: 'Inter', sans-serif;
    font-size: 17.6px;
    color: var(--fm-niveau);
    font-weight: 600;
}

/* Timeline mois */
.fm-timeline {
    position: relative;
    margin: 32px 0 32px 6px;
    padding-left: 32px;
    border-left: 2px solid var(--white);
}
.fm-timeline-item {
    position: relative;
    padding: 0 0 32px 28px;
}
.fm-timeline-item:last-child { padding-bottom: 0; }
.fm-timeline-item::before {
    content: "";
    position: absolute;
    left: -39px;
    top: 32px;
    width: 12px;
    height: 12px;
    border-radius: 6px;
    background: var(--white);
    border: 2px solid var(--fm-niveau);
}
.fm-timeline-item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 16px;
    height: 1px;
    background: rgba(255, 255, 255, 0.05);
}
.fm-timeline-month {
    display: inline-block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 13.6px;
    letter-spacing: 2px;
    color: var(--fm-niveau);
    margin-bottom: 8px;
    text-transform: uppercase;
    width: 88px;
}
.fm-timeline-row {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 24px;
    align-items: start;
}
.fm-timeline-content h4 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 18.4px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 12px;
    line-height: 1.7;
}
.fm-timeline-content p {
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.6;
    color: var(--gray-text);
    margin: 0 0 14px;
}
.fm-timeline-badge {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 14px;
    border-radius: 100px;
    background: var(--fm-niveau-soft);
    color: var(--fm-niveau);
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.fm-tab-foot {
    padding: 18px 24px;
    border-radius: 8px;
    background: rgba(var(--fm-niveau-rgb), 0.06);
    border: 1px solid rgba(var(--fm-niveau-rgb), 0.15);
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.6;
}
.fm-tab-foot strong { color: var(--fm-niveau); font-weight: 700; }
.fm-tab-foot span { color: var(--gray-text); }

@media (max-width: 1080px) {
    .fm-tab-card { padding: 32px 24px; }
    .fm-tab-letter { width: 56px; height: 56px; font-size: 28px; top: 24px; left: 24px; }
    .fm-tab-head { padding-left: 80px; min-height: 100px; }
    .fm-tab-stats { grid-template-columns: 1fr 1fr; }
    .fm-tab-meta { grid-template-columns: 1fr; }
    .fm-tab-h { font-size: 26px; line-height: 1.3; }
}
@media (max-width: 600px) {
    .fm-tab-stats { grid-template-columns: 1fr; }
    .fm-timeline-row { grid-template-columns: 1fr; gap: 8px; }
    .fm-timeline-month { width: auto; }
}

/* ==========================================================================
   INFOS PRATIQUES — 4 cards (où, groupe, prix, ce qu'on ne promet pas)
   ========================================================================== */
.fm-infos-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    position: relative;
    z-index: 2;
}
.fm-info {
    position: relative;
    padding: 36px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1), border-color 0.4s ease;
}
.fm-info:hover { transform: translateY(-4px); border-color: var(--orange); }
.fm-info-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(212, 168, 83, 0.1) 0%, rgba(212, 168, 83, 0.03) 100%);
    border: 1px solid rgba(240, 122, 26, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 28px;
    color: var(--orange);
}
.fm-info-icon svg { width: 24px; height: 24px; }
.fm-info h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 20.8px;
    letter-spacing: 2px;
    color: var(--cream);
    margin: 0 0 16px;
    text-transform: capitalize;
}
.fm-info p {
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0;
}

@media (max-width: 800px) {
    .fm-infos-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   TARIFS — Carte unique premium
   ========================================================================== */
.fm-tarifs-wrap {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
}
.fm-pricing-card {
    position: relative;
    width: 100%;
    max-width: 506px;
    padding: 48px 32px 32px;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(240, 122, 26, 0.06) 0%, rgba(240, 122, 26, 0.84) 100%);
    border: 1px solid var(--orange);
    box-shadow: 0 0 40.264px 5.671px rgba(240, 122, 26, 0.29);
}
.fm-pricing-ribbon {
    position: absolute;
    top: -12px;
    left: 12px;
    right: 12px;
    height: 26px;
    border-radius: 100px;
    background: var(--orange-grad);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--night);
    font-family: 'Inter', sans-serif;
    font-size: 10.4px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.fm-pricing-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 36px;
    letter-spacing: 2px;
    color: var(--cream);
    margin: 24px 0 24px;
    text-align: center;
}
.fm-pricing-amount {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 64px;
    line-height: 1;
    color: var(--orange);
    text-align: center;
    margin: 0 0 32px;
    letter-spacing: 0.02em;
}
.fm-pricing-amount span {
    font-size: 20px;
    color: var(--orange);
}
.fm-pricing-list {
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
    border-top: 1px solid var(--orange-border);
}
.fm-pricing-list li {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 12px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--orange-border);
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.6;
    color: var(--white);
}
.fm-pricing-list li::before {
    content: "✓";
    color: var(--orange);
    font-weight: 700;
    font-size: 16px;
    text-align: left;
}

.fm-pricing-disclaimer {
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    color: var(--gray-text);
    text-align: center;
    line-height: 1.7;
    max-width: 580px;
    margin: 0 auto;
}
.fm-pricing-disclaimer .accent { color: var(--orange); }

/* ==========================================================================
   CONTACT — "Prêt à monter sur scène ?"
   ========================================================================== */
.fm-contact {
    position: relative;
    z-index: 2;
    padding: 56px 48px 48px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    text-align: center;
}
.fm-contact h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2rem, 4vw, 56px);
    letter-spacing: 2px;
    color: var(--cream);
    margin: 0 0 24px;
    line-height: 1.1;
}
.fm-contact p {
    font-family: 'Inter', sans-serif;
    font-size: 16.8px;
    line-height: 1.7;
    color: var(--gray-text);
    max-width: 720px;
    margin: 0 auto 32px;
}
.fm-contact-actions {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    margin-bottom: 28px;
}
.fm-contact-by {
    font-family: 'Inter', sans-serif;
    font-size: 15.2px;
    color: var(--gray-text);
    margin: 0;
}

/* ==========================================================================
   ADMISSIONS — Concours d'entrée (Set Pro & Spectacle Pro)
   ========================================================================== */

/* Bandeau stats : Sessions / Candidatures / Admis / Taux */
.fm-admissions-stats {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;
    padding: 28px 36px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid rgba(240, 122, 26, 0.15);
    box-shadow: var(--fm-glass-shadow);
    margin-bottom: 32px;
}
.fm-admissions-stat {
    text-align: center;
    position: relative;
}
.fm-admissions-stat:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 1px;
    height: 40px;
    background: rgba(240, 122, 26, 0.15);
    transform: translateY(-50%);
}
.fm-admissions-num {
    display: block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 38.4px;
    color: var(--orange);
    line-height: 1;
    letter-spacing: 0.02em;
    margin-bottom: 12px;
}
.fm-admissions-label {
    font-family: 'Inter', sans-serif;
    font-size: 11.2px;
    font-weight: 600;
    color: var(--white);
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

@media (max-width: 700px) {
    .fm-admissions-stats { grid-template-columns: repeat(2, 1fr); gap: 20px; padding: 24px; }
    .fm-admissions-stat:not(:last-child)::after { display: none; }
}

/* Audition card */
.fm-audition-card {
    position: relative;
    z-index: 2;
    padding: 36px;
    border-radius: 20px;
    background: var(--fm-glass);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
}
.fm-audition-card .fm-tab-letter {
    position: relative;
    top: 0;
    left: 0;
    margin-bottom: 24px;
}
.fm-audition-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.fm-audition-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 10.4px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--fm-niveau);
}
.fm-audition-title {
    font-family: 'Inter', sans-serif;
    font-size: 14.7px;
    color: var(--gray-text);
    line-height: 1.7;
    margin: 0 0 22px;
}
.fm-audition-list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    display: grid;
    gap: 8px;
}
.fm-audition-list li {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--orange-border);
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    color: var(--gray-text);
    line-height: 1.5;
}
.fm-audition-list li svg {
    width: 16px;
    height: 16px;
    color: var(--fm-niveau);
}
.fm-audition-foot {
    padding-top: 18px;
    border-top: 1px solid var(--orange-border);
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--gray-text);
    text-transform: uppercase;
    margin: 0;
}

/* Jury — 3 cards */
.fm-jury-card {
    position: relative;
    z-index: 2;
    padding: 36px 36px 32px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow-deep);
    overflow: hidden;
}
.fm-jury-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, var(--orange) 50%, transparent 100%);
}
.fm-jury-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px;
}
.fm-jury-head h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 25.6px;
    letter-spacing: 2px;
    color: var(--cream);
    margin: 0;
}
.fm-jury-head svg {
    width: 24px;
    height: 24px;
    color: var(--orange);
}
.fm-jury-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.fm-jury-member {
    position: relative;
    padding: 24px 22px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid var(--orange-border);
    text-align: center;
}
.fm-jury-role {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 24px;
    padding: 0 14px;
    margin-bottom: 18px;
    border-radius: 20px;
    background: var(--orange-grad);
    color: var(--black);
    font-family: 'Inter', sans-serif;
    font-size: 9.6px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.fm-jury-member h4 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 18.4px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 14px;
}
.fm-jury-member p {
    font-family: 'Inter', sans-serif;
    font-size: 13.1px;
    line-height: 1.6;
    color: var(--gray-text);
    margin: 0;
}
@media (max-width: 900px) {
    .fm-jury-grid { grid-template-columns: 1fr; }
}

/* Critères — 5 cards */
.fm-criteria-title {
    text-align: center;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 25.6px;
    letter-spacing: 2px;
    color: var(--cream);
    margin: 56px 0 32px;
    position: relative;
    z-index: 2;
}
.fm-criteria-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
}
.fm-criteria {
    padding: 36px 22px 32px;
    border-radius: 12px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    text-align: center;
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-criteria:hover {
    transform: translateY(-3px);
    border-color: var(--orange);
}
.fm-criteria-num {
    display: block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 32px;
    color: var(--orange);
    line-height: 1;
    margin-bottom: 18px;
    text-shadow: 0 0 14px rgba(240, 122, 26, 0.4);
}
.fm-criteria h4 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 16px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 16px;
}
.fm-criteria p {
    font-family: 'Inter', sans-serif;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--gray-text);
    margin: 0;
}
@media (max-width: 1080px) {
    .fm-criteria-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
    .fm-criteria-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}
@media (max-width: 480px) {
    .fm-criteria-grid { grid-template-columns: 1fr; }
}

/* Session info — encart inline avec icône calendrier */
.fm-session-info {
    position: relative;
    z-index: 2;
    margin: 56px auto 32px;
    max-width: 580px;
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 22px 28px;
    border-radius: 12px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
}
.fm-session-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.08);
    border: 1px solid rgba(240, 122, 26, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--orange);
}
.fm-session-icon svg { width: 22px; height: 22px; }
.fm-session-text {
    flex-grow: 1;
}
.fm-session-text strong {
    display: block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 17.6px;
    letter-spacing: 1px;
    color: var(--cream);
    margin-bottom: 6px;
}
.fm-session-text span {
    font-family: 'Inter', sans-serif;
    font-size: 13.1px;
    color: var(--gray-text);
}

.fm-session-cta {
    text-align: center;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}
.fm-session-cta-note {
    font-family: 'Inter', sans-serif;
    font-size: 13.1px;
    color: var(--white);
}

/* ==========================================================================
   PRO STAR — Tab card étoffée (ambition / inclusions / 5 phases)
   ========================================================================== */

/* Bloc ambition mis en avant en haut du tab Pro Star */
.fm-tab-ambition {
    margin: 0 0 32px;
    padding: 28px 32px;
    border-radius: 12px;
    background: var(--fm-glass-strong);
    border: 1px solid var(--fm-niveau-border);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.fm-tab-ambition-eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 11.2px;
    font-weight: 600;
    color: var(--fm-niveau);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.fm-tab-ambition h4 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 26px;
    line-height: 1.2;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 16px;
    text-transform: none;
}
.fm-tab-ambition p {
    font-family: 'Inter', sans-serif;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0;
}

/* 3 chips inclusions sur une ligne (WIP, captation, première...) */
.fm-tab-chips {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin: 0 0 32px;
}
.fm-tab-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--fm-niveau-border);
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    color: var(--gray-text);
    line-height: 1.4;
}
.fm-tab-chip svg {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    color: var(--fm-niveau);
}

@media (max-width: 900px) {
    .fm-tab-chips { grid-template-columns: 1fr; }
}

/* Timeline 5 phases — colonne mois plus large pour "Phase X · Mois Y-Z" */
.fm-timeline.is-pro .fm-timeline-row {
    grid-template-columns: 130px 1fr;
}
.fm-timeline.is-pro .fm-timeline-month {
    width: 130px;
    line-height: 1.2;
}
.fm-timeline.is-pro .fm-timeline-month strong {
    display: block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 16px;
    color: var(--fm-niveau);
    letter-spacing: 1.5px;
}
.fm-timeline.is-pro .fm-timeline-month em {
    display: block;
    font-style: normal;
    font-size: 12px;
    letter-spacing: 1px;
    color: var(--cream-faint, rgba(240,236,228,0.6));
    margin-top: 2px;
}

/* Phase finale "Première officielle" mise en évidence */
.fm-timeline-item.is-final::before {
    background: var(--fm-niveau);
    box-shadow: 0 0 12px rgba(var(--fm-niveau-rgb), 0.6);
}
.fm-timeline-item.is-final h4 {
    color: var(--fm-niveau);
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

@media (max-width: 600px) {
    .fm-timeline.is-pro .fm-timeline-row { grid-template-columns: 1fr; }
    .fm-timeline.is-pro .fm-timeline-month { width: auto; }
}

/* ==========================================================================
   CERTIFICATION RS6554 — 2 cards (4 compétences + Où ça vit) + adossement
   ========================================================================== */
.fm-rs-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 24px;
}
.fm-rs-card {
    padding: 36px 36px 32px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
}
.fm-rs-card h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 25.6px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 22px;
}
.fm-rs-card p {
    font-family: 'Inter', sans-serif;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0;
}
.fm-rs-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}
.fm-rs-list li {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 12px;
    align-items: start;
}
.fm-rs-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--orange-grad);
    color: var(--black);
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
}
.fm-rs-list strong {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--cream);
    line-height: 1.5;
}
.fm-rs-list em {
    display: block;
    font-style: normal;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    color: var(--gray-text);
    margin-top: 2px;
    line-height: 1.5;
}

.fm-rs-list li.is-validated .fm-rs-badge {
    background: linear-gradient(180deg, #ffb16a 0%, #ff8a3a 60%, #d96a1a 100%);
    box-shadow: 0 8px 22px -8px rgba(255, 138, 58, 0.7);
    border: 1px solid rgba(255, 178, 110, 0.5);
}

.fm-rs-list li.is-pending {
    opacity: 0.5;
}

.fm-rs-list li.is-pending .fm-rs-badge {
    background: linear-gradient(180deg, rgba(160, 160, 160, 0.4) 0%, rgba(120, 120, 120, 0.4) 100%);
    color: rgba(245, 235, 220, 0.6);
    box-shadow: none;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.fm-rs-list li.is-pending strong,
.fm-rs-list li.is-pending em {
    color: rgba(245, 235, 220, 0.55);
}

.fm-rs-list strong em.is-tag {
    display: inline;
    margin: 0 0 0 8px;
    padding: 3px 10px;
    background: rgba(255, 138, 58, 0.16);
    border: 1px solid rgba(255, 138, 58, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-style: normal;
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #ffb16a;
    vertical-align: middle;
    white-space: nowrap;
}

.fm-rs-foot {
    position: relative;
    z-index: 2;
    padding: 22px 28px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.08);
    border: 1px solid rgba(240, 122, 26, 0.25);
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.6;
    color: var(--gray-text);
}
.fm-rs-foot strong {
    color: var(--orange);
    font-weight: 700;
}

/* Meta inline (1h / 4 compétences / CPF) — utilisé en header */
.fm-rs-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 24px;
    justify-content: center;
}
.fm-rs-meta-item {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    padding: 12px 18px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.08);
    border: 1px solid rgba(240, 122, 26, 0.22);
    font-family: 'Inter', sans-serif;
    font-size: 12.6px;
    color: var(--gray-text);
    letter-spacing: 0.3px;
}
.fm-rs-meta-item strong {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    letter-spacing: 1px;
    color: var(--orange);
    line-height: 1;
}

/* Étoile dorée discrète (★) pour pointer une mention */
.fm-star {
    color: var(--orange);
    font-size: 0.85em;
    margin-left: 2px;
    vertical-align: middle;
}

/* Citation Playfair italic en bas de la card C1-C4 */
.fm-rs-quote {
    margin: 28px 0 0;
    padding: 20px 22px 4px;
    border-top: 1px solid var(--orange-border);
    font-family: 'Playfair Display', 'Georgia', serif;
    font-size: 14.4px;
    line-height: 1.7;
    color: rgba(244, 240, 232, 0.82);
}

/* Bulle parrain dans le contexte d'une section formation */
.fm-section .kevin-bubble-section {
    margin-top: 72px;
}
.fm-rs-quote strong {
    font-style: normal;
    color: var(--orange);
    font-weight: 700;
}
.fm-rs-quote em {
    font-style: italic;
    color: var(--cream);
}

@media (max-width: 900px) {
    .fm-rs-grid { grid-template-columns: 1fr; }
    .fm-rs-meta-item { padding: 10px 14px; font-size: 12px; }
    .fm-rs-meta-item strong { font-size: 20px; }
}

/* ==========================================================================
   "DU DÉBUT JUSQU'AUX ÉTOILES" — 3 cards d'accroche en haut de section
   ========================================================================== */
.fm-pitch-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 56px;
}
.fm-pitch-card {
    position: relative;
    padding: 36px 36px 28px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-pitch-card:hover {
    transform: translateY(-3px);
    border-color: var(--orange);
}
.fm-pitch-icon {
    position: absolute;
    top: -14px;
    left: -14px;
    width: 55px;
    height: 55px;
    border-radius: 50%;
    background: var(--orange-grad);
    border: 2px solid var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
}
.fm-pitch-icon svg { width: 26px; height: 26px; }
.fm-pitch-card h3 {
    font-family: 'Inter', sans-serif;
    font-size: 16.3px;
    font-weight: 600;
    color: var(--cream);
    margin: 12px 0 14px;
    line-height: 1.4;
}
.fm-pitch-card hr {
    border: 0;
    height: 1px;
    background: var(--orange-border);
    margin: 0 0 14px;
}
.fm-pitch-card p {
    font-family: 'Inter', sans-serif;
    font-size: 14.1px;
    color: var(--white);
    line-height: 1.6;
    margin: 0;
}
@media (max-width: 900px) {
    .fm-pitch-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   PRO — image full width
   ========================================================================== */
.fm-fullimg {
    position: relative;
    z-index: 2;
    margin: 0;
    height: 380px;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--orange);
    box-shadow: var(--fm-glass-shadow-deep);
}
.fm-fullimg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fm-fullimg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,10,15,0.4) 0%, rgba(10,10,15,0) 50%, rgba(10,10,15,0.6) 100%);
    pointer-events: none;
}
@media (max-width: 700px) {
    .fm-fullimg { height: 240px; }
}

/* ==========================================================================
   SET PRO — variantes ribbon "Set Pro - Spectacle"
   ========================================================================== */
.fm-pricing-ribbon.is-niveau {
    background: var(--fm-niveau-bg-strong);
    color: var(--fm-niveau);
    border: 1px solid var(--fm-niveau-border);
}

/* Tab letter "B" : utilisée sur la grosse card du parcours */
.fm-tab-card.is-semipro .fm-tab-letter,
body.is-semipro .fm-tab-card .fm-tab-letter {
    text-transform: uppercase;
}

/* ==========================================================================
   MODULES — POUR QUI ? (3 cards icône + titre + texte centrés)
   ========================================================================== */
.fm-pour-qui-card-wrap {
    position: relative;
    z-index: 2;
    padding: 56px 56px 48px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid rgba(240, 122, 26, 0.15);
    box-shadow: var(--fm-glass-shadow-deep);
    overflow: hidden;
}
.fm-pour-qui-card-wrap::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg,
        rgba(240, 122, 26, 0) 0%,
        var(--orange) 50%,
        rgba(212, 168, 83, 0) 100%);
}
.fm-pour-qui-header {
    text-align: center;
    margin-bottom: 18px;
}
.fm-pour-qui-header .fm-pill { margin-bottom: 18px; }
.fm-pour-qui-header h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 38.4px;
    line-height: 1.2;
    letter-spacing: 1.5px;
    color: var(--cream);
    margin: 0;
    text-transform: uppercase;
}
.fm-pour-qui-header h2 .accent { color: var(--orange); }
.fm-pour-qui-sub {
    text-align: center;
    max-width: 720px;
    margin: 16px auto 36px;
    font-family: 'Inter', sans-serif;
    font-size: 16.8px;
    line-height: 1.7;
    color: var(--gray-text);
}
.fm-pour-qui-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 28px;
}
.fm-pour-qui-card {
    padding: 28px 22px;
    border-radius: 12px;
    background: var(--fm-glass);
    border: 1px solid var(--orange-border);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    box-shadow: var(--fm-glass-shadow);
    text-align: center;
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-pour-qui-card:hover {
    transform: translateY(-4px);
    border-color: var(--orange);
}
.fm-pour-qui-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 18px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.10);
    border: 1px solid rgba(240, 122, 26, 0.25);
    color: var(--orange);
}
.fm-pour-qui-icon svg { width: 26px; height: 26px; }
.fm-pour-qui-card h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 17.6px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 14px;
    text-transform: none;
    line-height: 1.3;
}
.fm-pour-qui-card p {
    font-family: 'Inter', sans-serif;
    font-size: 13.1px;
    line-height: 1.6;
    color: var(--gray-text);
    margin: 0;
}

/* Bandeau infos en bas du bloc */
.fm-pour-qui-foot {
    padding: 22px 26px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.08);
    border: 1px solid rgba(240, 122, 26, 0.22);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    font-family: 'Inter', sans-serif;
    font-size: 14.7px;
    line-height: 1.6;
    color: var(--gray-text);
    text-align: left;
}
.fm-pour-qui-foot strong {
    color: var(--orange);
    font-weight: 700;
    margin-right: 4px;
}

@media (max-width: 900px) {
    .fm-pour-qui-card-wrap { padding: 40px 28px 32px; }
    .fm-pour-qui-grid { grid-template-columns: 1fr; }
    .fm-pour-qui-header h2 { font-size: 30px; }
}

/* ==========================================================================
   MODULES D — 7 mini-cards (4 + 3) avec badge D1...D7
   ========================================================================== */
.fm-modules-d-section {
    position: relative;
    z-index: 2;
    padding: 48px 36px 56px;
    border-radius: 20px;
    background: rgba(10, 10, 15, 0.35);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    box-shadow: var(--fm-glass-shadow-deep);
}
.fm-modules-d-header {
    text-align: center;
    margin-bottom: 36px;
}
.fm-modules-d-header .fm-pill { margin-bottom: 18px; }
.fm-modules-d-header h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 48px;
    line-height: 1.1;
    letter-spacing: 2.6px;
    color: var(--cream);
    margin: 0;
    text-transform: uppercase;
}
.fm-modules-d-header h2 .accent { color: var(--orange); }
.fm-modules-d-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 18px;
}
.fm-modules-d-grid.is-3 {
    grid-template-columns: repeat(3, 1fr);
}
.fm-module-d {
    position: relative;
    padding: 20px 18px 22px;
    border-radius: 16px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-module-d:hover {
    transform: translateY(-3px);
    border-color: var(--orange);
}
.fm-module-d-badge {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 10.9px;
    font-weight: 800;
    color: var(--orange);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.fm-module-d h3 {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--cream);
    margin: 0 0 10px;
    line-height: 1.3;
}
.fm-module-d p {
    font-family: 'Inter', sans-serif;
    font-size: 13.4px;
    line-height: 1.55;
    color: var(--gray-text);
    margin: 0 0 12px;
}
.fm-module-d-meta {
    font-family: 'Inter', sans-serif;
    font-size: 13.4px;
    color: var(--cream-faint, rgba(240,236,228,0.6));
}

@media (max-width: 1100px) {
    .fm-modules-d-grid,
    .fm-modules-d-grid.is-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .fm-modules-d-section { padding: 36px 22px 40px; }
    .fm-modules-d-header h2 { font-size: 32px; }
    .fm-modules-d-grid,
    .fm-modules-d-grid.is-3 { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ATELIER ÉCRITURE HAUT DE GAMME — grosse card titre / prix / 3 colonnes / photo
   ========================================================================== */
.fm-atelier-card {
    position: relative;
    z-index: 2;
    padding: 56px 48px 48px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid rgba(240, 122, 26, 0.20);
    box-shadow: var(--fm-glass-shadow);
    margin-bottom: 56px;
}
.fm-atelier-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 40px;
}
.fm-atelier-eyebrow {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 100px;
    background: var(--orange-grad);
    color: var(--black);
    font-family: 'Inter', sans-serif;
    font-size: 11.2px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 22px;
}
.fm-atelier-card h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 48px;
    line-height: 1.13;
    letter-spacing: 2px;
    color: var(--cream);
    margin: 0 0 18px;
    text-transform: none;
}
.fm-atelier-card h2 .accent { color: var(--orange); display: block; }
.fm-atelier-tagline {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0 0 26px;
    max-width: 460px;
}
.fm-atelier-price {
    display: inline-flex;
    align-items: baseline;
    gap: 14px;
    padding: 18px 26px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.08);
    border: 1px solid rgba(240, 122, 26, 0.25);
}
.fm-atelier-price strong {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 40px;
    font-weight: 400;
    line-height: 1;
    color: var(--orange);
    letter-spacing: 1px;
}
.fm-atelier-price span {
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    color: var(--gray-text);
}
.fm-atelier-photo {
    position: relative;
    height: 320px;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--orange);
    box-shadow: var(--fm-glass-shadow-deep);
}
.fm-atelier-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fm-atelier-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,10,15,0.2) 0%, rgba(10,10,15,0) 50%, rgba(10,10,15,0.45) 100%);
    pointer-events: none;
}
.fm-atelier-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    padding-top: 32px;
    border-top: 1px solid var(--orange-border);
}
.fm-atelier-col h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 16px;
    letter-spacing: 2px;
    color: var(--orange);
    margin: 0 0 18px;
    text-transform: uppercase;
}
.fm-atelier-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.fm-atelier-col li {
    position: relative;
    padding-left: 18px;
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.55;
    color: var(--gray-text);
}
.fm-atelier-col li::before {
    content: "";
    position: absolute;
    left: 0; top: 9px;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--orange);
}

@media (max-width: 980px) {
    .fm-atelier-card { padding: 40px 28px 32px; }
    .fm-atelier-top { grid-template-columns: 1fr; gap: 28px; }
    .fm-atelier-card h2 { font-size: 36px; }
    .fm-atelier-cols { grid-template-columns: 1fr; gap: 28px; }
}

/* ==========================================================================
   MODULE CARDS — Masterclasses Savoir-faire (compact icon + titre + chips)
   ========================================================================== */
.fm-modules-group {
    position: relative;
    z-index: 2;
    margin-bottom: 48px;
}
.fm-modules-group-title {
    font-family: 'Inter', sans-serif;
    font-size: 20.8px;
    font-weight: 700;
    color: var(--orange);
    letter-spacing: 0.3px;
    margin: 0 0 22px;
}
.fm-modules-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.fm-module-card {
    position: relative;
    padding: 28px 28px 24px;
    border-radius: 12px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    display: flex;
    flex-direction: column;
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-module-card:hover {
    transform: translateY(-3px);
    border-color: var(--orange);
}
.fm-module-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(240, 122, 26, 0.06);
    border: 1px solid rgba(240, 122, 26, 0.12);
    color: var(--orange);
    margin-bottom: 28px;
}
.fm-module-icon svg { width: 18px; height: 18px; }
.fm-module-card h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 17.6px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 14px;
    text-transform: none;
    line-height: 1.3;
}
.fm-module-card p {
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    line-height: 1.5;
    color: var(--gray-text);
    margin: 0 0 22px;
    flex-grow: 1;
}
.fm-module-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.fm-module-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.04);
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: var(--gray-text);
    line-height: 1.4;
}
.fm-module-chip.is-price {
    background: rgba(240, 122, 26, 0.10);
    color: var(--orange);
    font-weight: 600;
}
.fm-module-chip.is-free {
    background: rgba(240, 122, 26, 0.10);
    color: var(--orange);
    font-weight: 600;
}

@media (max-width: 1100px) {
    .fm-modules-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
    .fm-modules-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   RENCONTRES "Savoir-être" — bandeau violet/indigo
   ========================================================================== */
.fm-rencontres {
    position: relative;
    z-index: 2;
    padding: 36px 40px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.12) 0%, rgba(139, 92, 246, 0.06) 100%);
    border: 1px solid rgba(139, 92, 246, 0.35);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    margin-top: 16px;
    margin-bottom: 36px;
    overflow: hidden;
}
.fm-rencontres::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, #6366f1, #8b5cf6);
}
.fm-rencontres-head {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
}
.fm-rencontres-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: rgba(99, 102, 241, 0.20);
    color: #c4b5fd;
    flex-shrink: 0;
}
.fm-rencontres-icon svg { width: 28px; height: 28px; }
.fm-rencontres h3 {
    font-family: 'Inter', sans-serif;
    font-size: 21.6px;
    font-weight: 600;
    color: var(--cream);
    margin: 0;
    line-height: 1.4;
}
.fm-rencontres p {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.65;
    color: var(--gray-text);
    margin: 0 0 22px;
}
.fm-rencontres p strong { color: var(--cream); font-weight: 700; }
.fm-rencontres-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.fm-rencontres-chip {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(139, 92, 246, 0.35);
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    color: #c4b5fd;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

/* Variantes des module-card pour les "Rencontres gratuites" */
.fm-module-card.is-rencontre {
    border-color: rgba(139, 92, 246, 0.35);
}
.fm-module-card.is-rencontre .fm-module-icon {
    background: rgba(139, 92, 246, 0.10);
    border-color: rgba(139, 92, 246, 0.25);
    color: #c4b5fd;
}
.fm-module-card.is-rencontre .fm-module-chip.is-free {
    background: rgba(139, 92, 246, 0.15);
    color: #c4b5fd;
}

/* Variantes des module-card pour les modules D (pédagogie · orange) */
.fm-module-card.is-pedago {
    border-color: rgba(255, 122, 47, 0.32);
}
.fm-module-card.is-pedago .fm-module-icon {
    background: rgba(255, 122, 47, 0.10);
    border-color: rgba(255, 122, 47, 0.28);
    color: #ffb079;
}

/* Badge "D1", "D2"... affiché en haut de la card */
.fm-module-badge {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin: -2px 0 10px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255, 122, 47, 0.14);
    border: 1px solid rgba(255, 122, 47, 0.4);
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #ffb079;
}

/* ─── Card avec image (masterclass / rencontre / coaching) ─── */
.fm-module-card.has-image {
    padding-top: 0;
    overflow: hidden;
}
.fm-module-card.has-image > .fm-module-icon {
    margin-top: 24px;
    margin-bottom: 18px;
}
.fm-module-media {
    margin: 0 -28px 20px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #0a0400;
}
.fm-module-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.fm-module-card.has-image:hover .fm-module-media img {
    transform: scale(1.06);
}

/* ─── Bloc "prochaine session" partagé (modules + inscription) ─── */
.mod-sessions {
    margin: 14px 0 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.22);
    border: 1px solid rgba(255, 255, 255, 0.06);
    font-family: 'Inter', sans-serif;
}
.fm-module-card.is-rencontre .mod-sessions {
    background: rgba(139, 92, 246, 0.06);
    border-color: rgba(139, 92, 246, 0.22);
}
.mod-sessions.is-empty {
    background: rgba(255, 255, 255, 0.02);
    border-style: dashed;
    border-color: rgba(255, 255, 255, 0.08);
    text-align: center;
}
.mod-sessions-empty {
    font-size: 11.5px;
    color: var(--gray-text);
    opacity: 0.7;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.mod-sessions-head {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--orange, #f07a1a);
    margin-bottom: 6px;
}
.fm-module-card.is-rencontre .mod-sessions-head {
    color: #c4b5fd;
}
.mod-sessions-main {
    font-size: 13px;
    font-weight: 600;
    color: var(--cream, #fff);
    line-height: 1.45;
    text-transform: capitalize;
}
.mod-sessions-main small {
    font-size: 11.5px;
    font-weight: 400;
    color: var(--gray-text);
    opacity: 0.85;
    text-transform: none;
    margin-left: 2px;
}
.mod-sessions-list {
    list-style: none;
    margin: 8px 0 0;
    padding: 8px 0 0;
    border-top: 1px dashed rgba(255, 255, 255, 0.06);
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--gray-text);
    text-transform: capitalize;
}
.mod-sessions-list li small {
    font-size: 11px;
    opacity: 0.75;
    text-transform: none;
}

@media (max-width: 700px) {
    .fm-rencontres { padding: 28px 24px; }
    .fm-rencontres-head { flex-direction: column; align-items: flex-start; gap: 12px; }
    .fm-rencontres h3 { font-size: 19px; }
}

/* ==========================================================================
   RÉCAP TARIFS — table simple à la carte
   ========================================================================== */
.fm-tarifs-table {
    position: relative;
    z-index: 2;
    overflow: hidden;
    border-radius: 16px;
    background: var(--fm-glass);
    border: 1px solid var(--orange-border);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    box-shadow: var(--fm-glass-shadow);
}
.fm-tarifs-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    align-items: center;
    padding: 18px 28px;
    gap: 24px;
    border-bottom: 1px solid var(--orange-border);
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    color: var(--gray-text);
}
.fm-tarifs-row:last-child { border-bottom: 0; }
.fm-tarifs-row.is-head {
    background: rgba(240, 122, 26, 0.08);
    color: var(--orange);
    font-size: 11.2px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}
.fm-tarifs-row strong {
    color: var(--cream);
    font-weight: 600;
    font-size: 15.2px;
}
.fm-tarifs-row em {
    font-style: normal;
    color: var(--orange);
    font-weight: 600;
}

@media (max-width: 800px) {
    .fm-tarifs-row {
        grid-template-columns: 1fr 1fr;
        font-size: 13.6px;
        padding: 16px 18px;
        gap: 12px;
    }
    .fm-tarifs-row.is-head { display: none; }
    .fm-tarifs-row > *:nth-child(1) { grid-column: 1 / -1; }
}

/* ==========================================================================
   ENTREPRISE — STATS (43% / 55% / texte)
   ========================================================================== */
.fm-stats-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 32px;
}
.fm-stat-card {
    padding: 25px;
    border-radius: 16px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-stat-card:hover {
    transform: translateY(-3px);
    border-color: var(--orange);
}
.fm-stat-card .fm-stat-num {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 40px;
    line-height: 1;
    letter-spacing: 2px;
    color: var(--orange);
    margin: 0 0 18px;
}
.fm-stat-card p {
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0;
}
@media (max-width: 900px) {
    .fm-stats-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ENTREPRISE — 4 cards bénéfices (2x2 grid avec icône horizontale)
   ========================================================================== */
.fm-benefits-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.fm-benefit-card {
    padding: 28px;
    border-radius: 16px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-benefit-card:hover {
    transform: translateY(-3px);
    border-color: var(--orange);
}
.fm-benefit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.10);
    border: 1px solid rgba(240, 122, 26, 0.25);
    color: var(--orange);
    margin-bottom: 26px;
}
.fm-benefit-icon svg { width: 24px; height: 24px; }
.fm-benefit-card h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 20px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 16px;
    text-transform: none;
}
.fm-benefit-card p {
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.65;
    color: var(--gray-text);
    margin: 0;
}
@media (max-width: 900px) {
    .fm-benefits-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ENTREPRISE — 3 piliers (scène / restaurant / formateurs)
   ========================================================================== */
.fm-pillars-card {
    position: relative;
    z-index: 2;
    padding: 56px 48px 40px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid rgba(240, 122, 26, 0.20);
    box-shadow: var(--fm-glass-shadow-deep);
    overflow: hidden;
}
.fm-pillars-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, var(--orange) 50%, transparent 100%);
}
.fm-pillars-header {
    text-align: center;
    margin-bottom: 36px;
}
.fm-pillars-header .fm-pill { margin-bottom: 18px; }
.fm-pillars-header h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 44px;
    line-height: 1.2;
    letter-spacing: 1.5px;
    color: var(--cream);
    margin: 0;
    text-transform: uppercase;
}
.fm-pillars-header h2 .accent { color: var(--orange); }
.fm-pillars-sub {
    text-align: center;
    max-width: 760px;
    margin: 18px auto 36px;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.7;
    color: var(--gray-text);
}
.fm-pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 32px;
}
.fm-pillar {
    padding: 28px 24px;
    border-radius: 12px;
    background: var(--fm-glass);
    border: 1px solid var(--orange-border);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    box-shadow: var(--fm-glass-shadow);
    text-align: center;
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-pillar:hover {
    transform: translateY(-4px);
    border-color: var(--orange);
}
.fm-pillar-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 auto 20px;
    border-radius: 14px;
    background: rgba(240, 122, 26, 0.10);
    border: 1px solid rgba(240, 122, 26, 0.25);
    color: var(--orange);
}
.fm-pillar-icon svg { width: 28px; height: 28px; }
.fm-pillar h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 20.8px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 14px;
    text-transform: none;
    line-height: 1.3;
}
.fm-pillar p {
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    line-height: 1.65;
    color: var(--gray-text);
    margin: 0;
}
.fm-pillars-coup {
    padding: 22px 28px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.08);
    border: 1px solid rgba(240, 122, 26, 0.22);
    font-family: 'Inter', sans-serif;
    font-size: 14.7px;
    line-height: 1.6;
    color: var(--gray-text);
}
.fm-pillars-coup strong { color: var(--orange); font-weight: 700; margin-right: 4px; }

@media (max-width: 900px) {
    .fm-pillars-card { padding: 40px 28px 32px; }
    .fm-pillars-grid { grid-template-columns: 1fr; }
    .fm-pillars-header h2 { font-size: 32px; }
}

/* ==========================================================================
   ENTREPRISE — Parrain Kevin Razi (testimonial card)
   ========================================================================== */
.fm-testimonial {
    position: relative;
    z-index: 2;
    margin-top: 32px;
    padding: 44px 56px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid rgba(240, 122, 26, 0.22);
    box-shadow: var(--fm-glass-shadow-deep);
    display: grid;
    grid-template-columns: 116px 1fr;
    gap: 32px;
    align-items: center;
}
.fm-testimonial-photo {
    width: 116px;
    height: 116px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--orange);
    box-shadow: 0 0 24px rgba(240, 122, 26, 0.25);
}
.fm-testimonial-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fm-testimonial-text h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 24px;
    letter-spacing: 2px;
    color: var(--orange);
    margin: 0 0 4px;
    text-transform: uppercase;
}
.fm-testimonial-role {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--cream-faint, rgba(240,236,228,0.6));
    margin-bottom: 14px;
}
.fm-testimonial-text blockquote {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.7;
    color: var(--cream);
    margin: 0;
    padding: 0;
    border: 0;
}

@media (max-width: 700px) {
    .fm-testimonial { padding: 32px 24px; grid-template-columns: 1fr; text-align: center; }
    .fm-testimonial-photo { margin: 0 auto; }
}

/* ==========================================================================
   ENTREPRISE — Restaurant du Joke (card horizontale image + contenu)
   ========================================================================== */
.fm-resto-card {
    position: relative;
    z-index: 2;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow-deep);
    display: grid;
    grid-template-columns: 5fr 7fr;
    overflow: hidden;
}
.fm-resto-image {
    position: relative;
    min-height: 480px;
    border-right: 1px solid var(--orange-border);
}
.fm-resto-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fm-resto-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(10,10,15,0.30) 0%, rgba(10,10,15,0) 50%, rgba(10,10,15,0.40) 100%);
    pointer-events: none;
}
.fm-resto-body {
    padding: 48px 48px 44px;
    display: flex;
    flex-direction: column;
}
.fm-resto-body .fm-pill { align-self: flex-start; margin-bottom: 18px; }
.fm-resto-body h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: 1.5px;
    color: var(--cream);
    margin: 0 0 18px;
    text-transform: none;
}
.fm-resto-body h2 .accent { color: var(--orange); }
.fm-resto-body p {
    font-family: 'Inter', sans-serif;
    font-size: 15.2px;
    line-height: 1.7;
    color: var(--gray-text);
    margin: 0 0 26px;
}
.fm-resto-list {
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    display: grid;
    gap: 14px;
}
.fm-resto-list li {
    position: relative;
    padding-left: 18px;
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.5;
    color: var(--gray-text);
}
.fm-resto-list li::before {
    content: "";
    position: absolute;
    left: 0; top: 8px;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--orange);
}
.fm-resto-list strong { color: var(--cream); font-weight: 600; margin-right: 4px; }
.fm-resto-body .fm-btn-outline { align-self: flex-start; }

@media (max-width: 980px) {
    .fm-resto-card { grid-template-columns: 1fr; }
    .fm-resto-image { min-height: 280px; border-right: 0; border-bottom: 1px solid var(--orange-border); }
    .fm-resto-body { padding: 36px 28px; }
    .fm-resto-body h2 { font-size: 28px; }
}

/* ==========================================================================
   ENTREPRISE — 4 compétences (Transfert Loisirs → Business)
   ========================================================================== */
.fm-skills-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.fm-skill {
    padding: 24px 28px;
    border-radius: 12px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow);
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 16px;
    align-items: start;
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-skill:hover { transform: translateY(-3px); border-color: var(--orange); }
.fm-skill-icon {
    color: var(--orange);
    display: flex;
    align-items: center;
    justify-content: center;
    height: 28px;
}
.fm-skill-icon svg { width: 28px; height: 28px; }
.fm-skill h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 10px;
    text-transform: none;
    line-height: 1.2;
}
.fm-skill p {
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    line-height: 1.55;
    color: var(--gray-text);
    margin: 0;
}
@media (max-width: 800px) {
    .fm-skills-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ENTREPRISE — Offres B2B (4 grandes cartes catalogue)
   ========================================================================== */
.fm-offers-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}
.fm-offer-card {
    display: flex;
    flex-direction: column;
    padding: 38px;
    border-radius: 20px;
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    border: 1px solid var(--orange-border);
    box-shadow: var(--fm-glass-shadow-deep);
    transition: transform 0.4s ease, border-color 0.4s ease;
}
.fm-offer-card:hover {
    transform: translateY(-4px);
    border-color: var(--orange);
}
.fm-offer-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.10);
    border: 1px solid rgba(240, 122, 26, 0.25);
    color: var(--orange);
    margin-bottom: 22px;
}
.fm-offer-icon svg { width: 22px; height: 22px; }
.fm-offer-card h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 28px;
    letter-spacing: 1.5px;
    color: var(--cream);
    margin: 0 0 14px;
    text-transform: none;
    line-height: 1.2;
}
.fm-offer-pitch {
    font-family: 'Inter', sans-serif;
    font-size: 14.4px;
    line-height: 1.6;
    color: var(--gray-text);
    margin: 0 0 18px;
}
.fm-offer-meta {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--cream-faint, rgba(240,236,228,0.6));
    margin: 0 0 16px;
}
.fm-offer-range {
    padding: 14px 0 22px;
    border-top: 1px solid var(--orange-border);
    font-family: 'Bebas Neue', sans-serif;
    font-size: 26px;
    letter-spacing: 1px;
    color: var(--orange);
    margin: 0 0 28px;
}
.fm-offer-program {
    padding-top: 24px;
    border-top: 1px solid var(--orange-border);
    margin-bottom: 28px;
}
.fm-offer-program-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}
.fm-offer-program-head h4 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 18px;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0;
    text-transform: none;
}
.fm-offer-program-price {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--orange);
    white-space: nowrap;
}
.fm-offer-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.fm-offer-list li {
    position: relative;
    padding-left: 18px;
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    line-height: 1.5;
    color: var(--gray-text);
}
.fm-offer-list li::before {
    content: "›";
    position: absolute;
    left: 0; top: -2px;
    color: var(--orange);
    font-weight: 700;
    font-size: 16px;
}

/* Variante : programme mis en avant (premium) */
.fm-offer-program.is-highlight {
    margin: 0 -10px 28px;
    padding: 22px 24px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.06);
    border: 1px solid rgba(240, 122, 26, 0.25);
}
.fm-offer-program.is-highlight .fm-offer-program-head { margin-bottom: 16px; }

/* Tableau horaires (séminaire 1 jour) */
.fm-offer-table {
    margin: 0 -10px 28px;
    padding: 0;
}
.fm-offer-table-row {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 20px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--orange-border);
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    color: var(--gray-text);
}
.fm-offer-table-row:last-child { border-bottom: 0; }
.fm-offer-table-row .fm-offer-table-time {
    font-weight: 600;
    color: var(--cream);
}
.fm-offer-table-row strong {
    color: var(--cream);
    font-weight: 600;
}

/* Bandeau "option repas" en bas de chaque offre */
.fm-offer-meal {
    margin-top: auto;
    padding: 18px 24px;
    border-radius: 12px;
    background: rgba(240, 122, 26, 0.06);
    border-left: 3px solid var(--orange);
    font-family: 'Inter', sans-serif;
    font-size: 13.4px;
    line-height: 1.6;
    color: var(--gray-text);
}
.fm-offer-meal h5 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 16px;
    letter-spacing: 1px;
    color: var(--orange);
    margin: 0 0 8px;
    text-transform: none;
}

@media (max-width: 1100px) {
    .fm-offers-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .fm-offer-card { padding: 28px 22px; }
    .fm-offer-card h3 { font-size: 24px; }
    .fm-offer-table-row { grid-template-columns: 1fr; gap: 4px; }
}

/* ==========================================================================
   ENTREPRISE — Hero overlay card glass (description sur fond hero)
   ========================================================================== */
.fm-hero-overlay {
    margin-top: 36px;
    padding: 28px 32px;
    border-radius: 22px;
    border: 3px solid var(--orange);
    background: var(--fm-glass);
    backdrop-filter: blur(11.5px);
    -webkit-backdrop-filter: blur(11.5px);
    max-width: 700px;
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 15.2px;
    line-height: 1.7;
    color: var(--white);
}
.fm-hero-overlay strong { color: var(--orange); font-weight: 700; }

/* ==========================================================================
   RESPONSIVE — adjustments
   ========================================================================== */
@media (max-width: 800px) {
    .fm-section { padding: 90px 0 100px; }
    .fm-section-header { margin-bottom: 44px; }
    .fm-intro-text h2 { font-size: 36px; }
    .fm-section-title { font-size: 36px; }
}
@media (max-width: 480px) {
    .fm-section { padding: 70px 0 80px; }
    .fm-contact { padding: 40px 24px 32px; }
}

/* ==========================================================================
   === ALIGNEMENT DESIGN ACCUEIL ===
   Override block — réaligne la typographie, les CTAs, les pilules et les
   gradients de section sur les tokens canoniques de l'accueil
   (cf. home-figma.css + ecole-figma.css : .ecole-pill-tag,
   .ecole-section-title, .ecole-section-desc, .nav-cta, .parcours-cta).
   Chargé après home-figma.css → gagne par cascade.
   ========================================================================== */

/* --- Re-map des fonds de section sur les variables de l'accueil --- */
.fm-section { background: var(--section-bg-1); border-top: 1px solid var(--orange-border-2); }
.fm-section.is-bg-1 { background: var(--section-bg-1); }
.fm-section.is-bg-2 { background: var(--section-bg-2); }
.fm-section.is-bg-3 { background: var(--section-bg-3); }

/* --- Pill / eyebrow tag : look subtil orange-soft (.ecole-pill-tag) --- */
.fm-pill {
    display: inline-block;
    height: auto;
    padding: 6px 14px;
    border-radius: 100px;
    background: var(--orange-soft);
    border: 1px solid var(--orange-border);
    color: var(--orange);
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1.4;
    margin-bottom: 22px;
}

/* --- Header de section : déjà bien dimensionné, on confirme les tokens --- */
.fm-section-header {
    max-width: 760px;
    margin: 0 auto 64px;
    text-align: center;
    position: relative;
    z-index: 2;
}
.fm-section-header .fm-pill { margin-bottom: 22px; }

/* --- Titres "section" : Bebas + clamp + accent gradient orange --- */
.fm-section-title,
.fm-intro-text h2,
.fm-tab-h {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.4rem, 5.5vw, 4.4rem);
    line-height: 0.96;
    letter-spacing: 0.01em;
    color: var(--cream);
    margin: 0 0 22px;
    text-transform: none;
}
.fm-section-title .accent,
.fm-intro-text h2 .accent,
.fm-tab-h .accent,
.fm-hero-title .accent {
    background: var(--orange-grad);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    font-weight: 400;
}

/* --- Hero title : même DNA que .ecole-section-title (Bebas, gradient .accent) --- */
.fm-hero-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3rem, 8vw, 6rem);
    line-height: 0.96;
    letter-spacing: 0.01em;
    color: var(--cream);
    text-transform: none;
    margin: 0 0 28px;
}

/* --- Descriptions : Playfair Display italic (.ecole-section-desc) --- */
.fm-section-sub,
.fm-tab-desc,
.fm-intro-text p {
    font-family: 'Playfair Display', serif;
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    color: var(--fm-cream-soft);
    line-height: 1.7;
    margin: 0 0 28px;
}
.fm-section-sub { margin-bottom: 0; }
.fm-section-sub strong,
.fm-tab-desc strong,
.fm-intro-text p strong,
.fm-hero-desc strong {
    color: var(--cream);
    font-weight: 700;
    font-style: normal;
}
.fm-section-sub em,
.fm-tab-desc em,
.fm-intro-text p em,
.fm-hero-desc em {
    color: var(--orange);
    font-style: italic;
}

/* --- Hero desc : on conserve le panneau glass mais on adopte la typo Playfair --- */
.fm-hero-desc {
    font-family: 'Playfair Display', serif;
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    line-height: 1.7;
    color: var(--fm-cream-soft);
    border: 1px solid var(--orange-border);
    background: var(--fm-glass);
}

/* --- Bouton primaire : tri-tons gradient + glow (.nav-cta / .parcours-cta-primary) --- */
.fm-btn-primary {
    height: 52px;
    padding: 0 30px;
    border-radius: 100px;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.1px;
    line-height: 1;
    color: #1a0e08;
    background: linear-gradient(135deg, #ffb15a 0%, #ff7a2f 55%, #ff9d5a 100%);
    background-size: 200% 200%;
    background-position: 0% 50%;
    border: 1px solid rgba(255, 200, 140, 0.4);
    box-shadow:
        0 6px 18px -4px rgba(255, 122, 47, 0.55),
        0 0 0 1px rgba(255, 122, 47, 0.2),
        0 1px 0 rgba(255, 255, 255, 0.35) inset;
    transition:
        background-position 0.4s cubic-bezier(0.2, 0.7, 0.2, 1),
        transform 0.2s ease,
        box-shadow 0.25s ease;
}
.fm-btn-primary:hover {
    background-position: 100% 50%;
    transform: translateY(-1px);
    color: #1a0e08;
    box-shadow:
        0 10px 24px -4px rgba(255, 122, 47, 0.7),
        0 0 28px rgba(255, 122, 47, 0.4),
        0 1px 0 rgba(255, 255, 255, 0.45) inset;
}
.fm-btn-primary:active { transform: translateY(0); }

/* --- Bouton outline : orange transparent + hover orange clair (.parcours-cta) --- */
.fm-btn-outline {
    height: 52px;
    padding: 0 26px;
    border-radius: 100px;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--cream);
    background: rgba(255, 122, 47, 0.04);
    border: 1px solid rgba(255, 122, 47, 0.32);
    box-shadow: none;
    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        transform 0.2s ease,
        color 0.3s ease,
        box-shadow 0.3s ease;
}
.fm-btn-outline:hover {
    transform: translateY(-1px);
    background: rgba(255, 122, 47, 0.12);
    border-color: var(--orange);
    color: #ffd9b8;
    box-shadow: 0 8px 24px -8px rgba(255, 122, 47, 0.55), 0 0 22px rgba(255, 122, 47, 0.25);
}

/* --- Cards "axes" : look intro-card de l'accueil (glass + lift) --- */
.fm-axe {
    background: var(--glass-bg);
    border: 1px solid var(--orange-border);
    box-shadow: var(--glass-shadow);
}
.fm-axe:hover {
    border-color: var(--orange);
    box-shadow:
        0 18px 40px -12px rgba(240, 122, 26, 0.35),
        0 8px 22px rgba(0, 0, 0, 0.45);
}
.fm-axe h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-weight: 400;
    font-size: 19.2px;
    line-height: 1.4;
    letter-spacing: 1px;
    color: var(--cream);
    margin: 0 0 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--orange-border);
}
.fm-axe-divider { display: none; }
.fm-axe p {
    font-family: 'Inter', sans-serif;
    font-size: 13.6px;
    line-height: 1.55;
    color: var(--white);
}

/* --- Container : confirme le centrage et la largeur (.container/.ecole-container) --- */
.fm-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 24px;
}

/* --- Section base : padding aligné sur l'accueil (.section-intro / .ecole-section) --- */
.fm-section { padding: 100px 0 80px; }

/* --- Hero formation : padding/spacing sur le modèle de .hero accueil --- */
.fm-hero {
    padding: 140px 0 80px;
    background:
        radial-gradient(ellipse 760px 420px at 50% 110%, rgba(240, 122, 26, 0.18) 0%, transparent 65%),
        var(--brown-darker);
}

/* --- Tab heading parcours : titre Bebas accueil mais légèrement compact --- */
.fm-tab-h {
    font-size: clamp(1.8rem, 3.6vw, 2.6rem);
    line-height: 1.05;
    margin: 0 0 8px;
}

/* --- Intro card text bloc : déjà glass, on harmonise margins --- */
.fm-intro-text h2 { margin: 0 0 22px; font-size: clamp(2rem, 4vw, 3.2rem); }
.fm-intro-text p { margin: 0 0 28px; }

/* --- Description tab : on garde une marge basse car suivie de stats --- */
.fm-tab-desc { margin: 0 0 28px; }

/* --- Responsive : adoucit les marges sur mobile --- */
@media (max-width: 800px) {
    .fm-section { padding: 80px 0 70px; }
    .fm-section-header { margin-bottom: 44px; }
    .fm-section-title,
    .fm-intro-text h2 { font-size: clamp(2rem, 7vw, 2.8rem); }
    .fm-hero-title { font-size: clamp(2.4rem, 9vw, 4rem); }
    .fm-btn-primary,
    .fm-btn-outline { height: 48px; padding: 0 22px; font-size: 12.6px; }
}
@media (max-width: 480px) {
    .fm-section { padding: 64px 0 56px; }
    .fm-section-header { margin-bottom: 36px; }
}

/* ==========================================================================
   === HERO PARCOURS (look identique aux .parcours-card de l'accueil) ===
   Adopte la mise en page 2 colonnes de la card accueil, étendue en hero.
   Active sur les 3 pages formation via .fm-hero.parcours-hero.
   ========================================================================== */

/* Le hero adopte la card étendue : on neutralise le centrage du hero original */
.fm-hero.parcours-hero {
    align-items: center;
}

/* Inner : grid 2 colonnes (image | body) sur desktop */
.parcours-hero-inner {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: clamp(32px, 5vw, 60px);
    align-items: center;
    width: 100%;
    max-width: var(--container-max, 1152px);
    margin: 0 auto;
    padding: 0 24px;
    text-align: left;
}

/* Media : version hero, plus haute (4:5) que la card accueil (16:11) */
.parcours-hero-media {
    aspect-ratio: 4 / 5;
    border-radius: 28px;
    overflow: hidden;
    margin: 0;
    box-shadow:
        0 30px 60px -30px rgba(0, 0, 0, 0.65),
        0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* Cas Pro : glow orange marqué autour de l'image */
.fm-hero[data-parcours="pro"] .parcours-hero-media {
    box-shadow:
        0 30px 70px -25px rgba(255, 122, 47, 0.45),
        0 0 0 1px rgba(255, 122, 47, 0.32);
}

/* Body : pas de padding interne (le grid gère l'espacement) */
.parcours-hero-body {
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    color: var(--cream);
}

/* Title hero : remplace fm-hero-title (Bebas + uppercase) par Playfair italic accent */
.fm-hero .parcours-hero-title {
    font-family: var(--font-display, 'Playfair Display', serif);
    font-weight: 500;
    font-style: normal;
    font-size: clamp(48px, 5.4vw, 72px);
    line-height: 0.98;
    letter-spacing: -0.01em;
    text-transform: none;
    text-shadow: none;
    color: var(--cream);
    margin: 0 0 20px;
}

.fm-hero .parcours-hero-title .accent {
    color: #ff7a2f;
    font-style: italic;
    font-weight: 500;
    background: none;
    -webkit-text-fill-color: currentColor;
}

.fm-hero[data-parcours="pro"] .parcours-hero-title .accent {
    color: #ffb27a;
}

/* Desc hero : on neutralise le panneau glass de fm-hero-desc → adopte le ton card */
.fm-hero .parcours-hero-desc {
    max-width: 540px;
    margin: 0 0 28px;
    padding: 0;
    border: none;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    font-family: 'Inter', sans-serif;
    font-style: normal;
    font-size: clamp(15px, 1.2vw, 17px);
    line-height: 1.62;
    color: rgba(244, 234, 224, 0.78);
}

.fm-hero .parcours-hero-desc strong {
    color: var(--cream);
    font-weight: 600;
    font-style: normal;
}

/* Stats : plus aérées sur le hero */
.parcours-hero .parcours-stats {
    margin: 0 0 22px;
    padding: 22px 24px;
}

.parcours-hero .parcours-tags {
    margin: 0 0 28px;
}

/* Row CTAs : flex horizontal (le .parcours-cta seul utilise margin-top:auto sur la card, on l'annule ici) */
.parcours-hero-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 4px;
}

.parcours-hero-cta-row .parcours-cta {
    margin-top: 0;
}

/* Foot Qualiopi : reste sur le Pro, marge ajustée */
.parcours-hero-body .parcours-foot {
    margin-top: 18px;
}

/* Responsive : empile sur tablette */
@media (max-width: 920px) {
    .parcours-hero-inner {
        grid-template-columns: 1fr;
        gap: 36px;
        padding: 0 20px;
    }
    .parcours-hero-media {
        aspect-ratio: 16 / 11;
        max-width: 600px;
        margin: 0 auto;
        width: 100%;
    }
    .fm-hero .parcours-hero-title {
        font-size: clamp(40px, 9vw, 60px);
    }
    .fm-hero .parcours-hero-desc {
        max-width: none;
    }
}

@media (max-width: 560px) {
    .parcours-hero-inner {
        gap: 28px;
    }
    .parcours-hero .parcours-stats {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 18px;
    }
    .parcours-hero-cta-row .parcours-cta {
        width: 100%;
    }
}

/* Hero parcours : on raccourcit légèrement le min-height pour que le scroll
   indicator reste visible mais ne casse pas le grid 2-col */
.fm-hero.parcours-hero {
    min-height: 100vh;
    height: auto;
    max-height: none;
    padding: 180px 0 160px;
    display: flex;
    align-items: center;
}

@media (max-width: 920px) {
    .fm-hero.parcours-hero {
        min-height: auto;
        padding: 140px 0 120px;
    }
}

/* Suppression des disques décoratifs en arrière-plan du hero des 3 formations */
.fm-hero.parcours-hero .fm-hero-orb {
    display: none;
}

/* Le titre du hero doit respecter scrupuleusement les <br> :
   chaque morceau (texte normal ou .accent) reste sur sa propre ligne
   même si la colonne devient étroite. */
.parcours-hero-title {
    text-wrap: balance;
}
.parcours-hero-title .accent {
    display: block;
}

/* ==========================================================================
   DÉCOUVERTE · Slide "La formation"
   Layout modulaire (manifesto + stats strip + timeline + tarif pill)
   Inspiré des parcours-cards de l'accueil mais distinct (pas de carte
   monolithique englobante : sections empilées, transparentes, modulaires).
   ========================================================================== */

.dec-detail {
    display: flex;
    flex-direction: column;
    gap: 80px;
    max-width: 1080px;
    margin: 0 auto;
}

/* --- Ticket d'audition · Concours d'entrée --------------------------- */

/* Section dédiée au ticket (slide de transition entre Formation & Certification) */
.dec-ticket-section {
    position: relative;
    padding-top: 100px;
    padding-bottom: 100px;
    isolation: isolate;
    overflow: hidden;
}

.dec-ticket-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("assets/figma/post-sua-aslem.jpg") center / cover no-repeat;
    filter: grayscale(0.2) contrast(1.05);
    z-index: -2;
}

.dec-ticket-section::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(26, 10, 0, 0.45) 0%, rgba(26, 10, 0, 0.85) 70%, rgba(26, 10, 0, 0.95) 100%),
        linear-gradient(180deg, rgba(26, 10, 0, 0.55) 0%, rgba(26, 10, 0, 0.7) 100%);
    z-index: -1;
}

.dec-ticket-section .dec-ticket {
    width: 100%;
}


.dec-ticket {
    --ticket-bg: linear-gradient(135deg, #1d1410 0%, #261913 60%, #2c1d15 100%);
    --ticket-stub-bg: linear-gradient(180deg, #ff8a3a 0%, #d96a1a 100%);
    --ticket-notch-bg: #110806;
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: stretch;
    color: var(--cream);
    text-decoration: none;
    background: var(--ticket-bg);
    border: 1px solid rgba(255, 138, 58, 0.28);
    border-radius: 22px;
    box-shadow:
        0 32px 70px -28px rgba(255, 138, 58, 0.35),
        0 18px 40px -22px rgba(0, 0, 0, 0.7),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    overflow: hidden;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.dec-ticket:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 178, 110, 0.55);
    box-shadow:
        0 42px 90px -24px rgba(255, 138, 58, 0.55),
        0 24px 50px -22px rgba(0, 0, 0, 0.75),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* Halo orange diffus en haut à droite, derrière la séparation */
.dec-ticket::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 65% 0%,
        rgba(255, 138, 58, 0.18) 0%,
        transparent 55%);
    pointer-events: none;
    z-index: 0;
}

/* Section principale (à gauche) ------------------------------------- */
.dec-ticket-main {
    position: relative;
    z-index: 1;
    padding: 28px 32px 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    border-right: 2px dashed rgba(255, 138, 58, 0.35);
}

.dec-ticket-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    padding: 6px 12px;
    background: rgba(255, 138, 58, 0.14);
    border: 1px solid rgba(255, 138, 58, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: #ffb16a;
}

.dec-ticket-eyebrow svg {
    width: 13px;
    height: 13px;
}

.dec-ticket-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(22px, 2.2vw, 30px);
    line-height: 1.15;
    letter-spacing: 0.025em;
    color: var(--cream);
    text-transform: uppercase;
}

.dec-ticket-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-ticket-meta {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 28px;
    align-items: center;
}

.dec-ticket-meta li {
    display: flex;
    align-items: center;
    gap: 12px;
}

.dec-ticket-meta strong {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(28px, 2.6vw, 38px);
    line-height: 1;
    letter-spacing: 0.02em;
    background: linear-gradient(180deg, #ffb16a 0%, #ff8a3a 60%, #d96a1a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-ticket-meta span {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(245, 235, 220, 0.7);
    line-height: 1.35;
}

/* Encoches circulaires (perforation du ticket) ----------------------- */
.dec-ticket-main::before,
.dec-ticket-main::after {
    content: "";
    position: absolute;
    right: -14px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--ticket-notch-bg);
    border: 1px solid rgba(255, 138, 58, 0.28);
    z-index: 2;
}

.dec-ticket-main::before {
    top: -14px;
}

.dec-ticket-main::after {
    bottom: -14px;
}

/* Stub à droite ----------------------------------------------------- */
.dec-ticket-stub {
    position: relative;
    z-index: 1;
    padding: 28px 22px;
    background: var(--ticket-stub-bg);
    color: #1a0f08;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-width: 110px;
    box-shadow:
        inset 4px 0 0 rgba(255, 255, 255, 0.12),
        inset -4px 0 0 rgba(0, 0, 0, 0.05);
}

.dec-ticket-stub-label {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #1a0f08;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    opacity: 0.85;
}

.dec-ticket-stub-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(26, 15, 8, 0.92);
    color: #ffb16a;
    border: 2px solid rgba(26, 15, 8, 0.6);
    box-shadow: 0 8px 22px -8px rgba(0, 0, 0, 0.5);
    transition: transform 0.25s ease, background 0.3s ease;
}

.dec-ticket:hover .dec-ticket-stub-cta {
    transform: translateX(3px);
    background: #1a0f08;
}

.dec-ticket-stub-cta svg {
    width: 18px;
    height: 18px;
}

.dec-ticket-stub-foot {
    font-family: 'Inter', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(26, 15, 8, 0.7);
    text-align: center;
}

/* Responsive -------------------------------------------------------- */
@media (max-width: 720px) {
    .dec-ticket {
        grid-template-columns: 1fr;
    }

    .dec-ticket-main {
        padding: 24px 22px;
        border-right: 0;
        border-bottom: 2px dashed rgba(255, 138, 58, 0.35);
    }

    .dec-ticket-main::before {
        top: auto;
        right: -14px;
        bottom: -14px;
    }

    .dec-ticket-main::after {
        top: auto;
        bottom: -14px;
        left: -14px;
        right: auto;
    }

    .dec-ticket-meta {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .dec-ticket-stub {
        padding: 22px;
        flex-direction: row;
        justify-content: space-between;
        min-width: 0;
    }

    .dec-ticket-stub-label {
        writing-mode: horizontal-tb;
        transform: none;
    }
}

/* --- (Ancienne) Bannière "Concours d'entrée requis" ----------------- */
.dec-concours-banner {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 24px;
    padding: 22px 28px;
    background: linear-gradient(120deg,
        rgba(255, 138, 58, 0.16) 0%,
        rgba(255, 138, 58, 0.06) 100%);
    border: 1px solid rgba(255, 138, 58, 0.35);
    border-radius: 18px;
    color: var(--cream);
    text-decoration: none;
    box-shadow:
        0 24px 60px -32px rgba(255, 138, 58, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    transition: transform 0.25s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
}

.dec-concours-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 0% 50%,
        rgba(255, 138, 58, 0.18) 0%,
        transparent 55%);
    pointer-events: none;
}

.dec-concours-banner:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 178, 110, 0.55);
    box-shadow:
        0 32px 70px -28px rgba(255, 138, 58, 0.65),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.dec-concours-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: linear-gradient(180deg, #ff8a3a 0%, #d96a1a 100%);
    border: 2px solid rgba(255, 178, 110, 0.45);
    box-shadow:
        0 12px 28px -10px rgba(255, 138, 58, 0.7),
        inset 0 1px 0 rgba(255, 255, 255, 0.25);
    color: #1a0f08;
    flex-shrink: 0;
}

.dec-concours-icon svg {
    width: 22px;
    height: 22px;
}

.dec-concours-text {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.dec-concours-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--orange);
}

.dec-concours-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(18px, 1.6vw, 22px);
    letter-spacing: 0.03em;
    color: var(--cream);
    text-transform: uppercase;
    line-height: 1.2;
}

.dec-concours-title strong {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-concours-sub {
    font-family: 'Playfair Display', serif;
    font-size: 14px;
    color: rgba(245, 235, 220, 0.75);
}

.dec-concours-arrow {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid rgba(255, 138, 58, 0.4);
    color: var(--orange);
    flex-shrink: 0;
    transition: transform 0.25s ease, background 0.3s ease;
}

.dec-concours-banner:hover .dec-concours-arrow {
    transform: translateX(4px);
    background: rgba(255, 138, 58, 0.1);
}

.dec-concours-arrow svg {
    width: 18px;
    height: 18px;
}

@media (max-width: 720px) {
    .dec-concours-banner {
        grid-template-columns: auto 1fr;
        gap: 16px;
        padding: 20px 22px;
    }

    .dec-concours-arrow {
        grid-column: 1 / -1;
        justify-self: end;
    }
}

/* --- 1. Manifesto ----------------------------------------------------- */

.dec-manifesto {
    position: relative;
    margin: 0;
    padding: 32px 60px 28px;
    text-align: center;
    max-width: 820px;
    align-self: center;
}

.dec-manifesto p {
    margin: 0;
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    font-size: clamp(22px, 2.2vw, 30px);
    line-height: 1.45;
    color: var(--cream);
    letter-spacing: 0.005em;
}

.dec-manifesto p em {
    font-style: italic;
    color: var(--orange);
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-manifesto-mark {
    position: absolute;
    top: -10px;
    left: 0;
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: clamp(72px, 7vw, 120px);
    line-height: 1;
    color: var(--orange);
    opacity: 0.32;
    pointer-events: none;
    user-select: none;
}

.dec-manifesto-mark-end {
    left: auto;
    right: 0;
    top: auto;
    bottom: -50px;
}

.dec-manifesto-foot {
    display: block;
    margin-top: 24px;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: rgba(245, 235, 220, 0.55);
}

/* --- 2. Stats strip --------------------------------------------------- */

.dec-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding: 36px 24px;
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0.025) 0%,
        rgba(255, 138, 58, 0.04) 100%);
    border: 1px solid rgba(255, 138, 58, 0.18);
    border-radius: 24px;
    box-shadow:
        0 24px 60px -28px rgba(0, 0, 0, 0.55),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    position: relative;
    overflow: hidden;
}

.dec-stats::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 0%,
        rgba(255, 138, 58, 0.12) 0%,
        transparent 60%);
    pointer-events: none;
}

.dec-stat {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 4px 16px;
    text-align: center;
}

.dec-stat + .dec-stat::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12%;
    bottom: 12%;
    width: 1px;
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(255, 138, 58, 0.28) 50%,
        transparent 100%);
}

.dec-stat-num {
    position: relative;
    display: inline-block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(48px, 5.5vw, 76px);
    line-height: 0.95;
    letter-spacing: 0.01em;
    background: linear-gradient(180deg, #ffb16a 0%, #ff8a3a 60%, #d96a1a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-stat-num-sub {
    position: absolute;
    left: 100%;
    bottom: 0.18em;
    font-size: 0.4em;
    letter-spacing: 0.04em;
    margin-left: 0.12em;
    opacity: 0.85;
    white-space: nowrap;
}

.dec-stat-label {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--cream);
    margin-top: 2px;
}

.dec-stat-sub {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: rgba(245, 235, 220, 0.55);
    letter-spacing: 0.02em;
}

/* --- 3. Phases (timeline horizontale) -------------------------------- */

.dec-phases-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(24px, 2.4vw, 32px);
    letter-spacing: 0.04em;
    text-align: center;
    color: var(--cream);
    margin: 0 0 36px;
    text-transform: uppercase;
}

.dec-phases-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    position: relative;
}

/* Variante 4 colonnes pour le parcours Pro */
.dec-phases-grid.is-quad {
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

@media (max-width: 1080px) {
    .dec-phases-grid.is-quad {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Phase finale "Première officielle" mise en évidence */
.dec-phase.is-final {
    border-color: rgba(255, 138, 58, 0.45);
    background: linear-gradient(160deg,
        rgba(58, 30, 14, 0.7) 0%,
        rgba(38, 22, 12, 0.65) 100%);
    box-shadow: 0 18px 38px -22px rgba(255, 138, 58, 0.55);
}
.dec-phase.is-final .dec-phase-num {
    background: linear-gradient(180deg, #ffb16a 0%, #ff8a3a 60%, #d96a1a 100%);
    color: #1a0a00;
    box-shadow: 0 8px 22px -8px rgba(255, 138, 58, 0.7);
}
.dec-phase.is-final .dec-phase-title {
    color: #ff8a3a;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

/* Connecteur orange filant derrière les 3 phases */
.dec-phases-grid::before {
    content: "";
    position: absolute;
    top: 56px;
    left: 8%;
    right: 8%;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255, 138, 58, 0.4) 18%,
        rgba(255, 138, 58, 0.4) 82%,
        transparent 100%);
    z-index: 0;
}

.dec-phase {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 28px 26px 26px;
    background: linear-gradient(160deg,
        rgba(28, 22, 18, 0.65) 0%,
        rgba(20, 16, 14, 0.55) 100%);
    border: 1px solid rgba(255, 138, 58, 0.16);
    border-radius: 20px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: transform 0.4s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.dec-phase:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 138, 58, 0.32);
    box-shadow: 0 28px 60px -32px rgba(255, 138, 58, 0.4);
}

.dec-phase-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 4px;
}

.dec-phase-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(180deg, #ff8a3a 0%, #d96a1a 100%);
    border: 2px solid rgba(255, 178, 110, 0.4);
    box-shadow:
        0 8px 22px -8px rgba(255, 138, 58, 0.7),
        inset 0 1px 0 rgba(255, 255, 255, 0.25);
    font-family: 'Bebas Neue', sans-serif;
    font-size: 18px;
    color: #1a0f08;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.dec-phase-month {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--orange);
}

.dec-phase-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(20px, 1.7vw, 24px);
    letter-spacing: 0.03em;
    color: var(--cream);
    margin: 0;
    text-transform: uppercase;
}

.dec-phase-desc {
    margin: 0;
    font-family: 'Playfair Display', serif;
    font-size: 15px;
    line-height: 1.55;
    color: rgba(245, 235, 220, 0.75);
}

.dec-phase-badge {
    margin-top: auto;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: rgba(255, 138, 58, 0.12);
    border: 1px solid rgba(255, 138, 58, 0.3);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #ffb16a;
}

/* --- 4. Tarif card avec visuel -------------------------------------- */

.dec-tarif {
    display: block;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    position: relative;
    overflow: visible;
    text-align: center;
}

/* Visuel à gauche */
.dec-tarif-visual {
    position: relative;
    margin: 0;
    overflow: hidden;
    min-height: 320px;
    isolation: isolate;
}

.dec-tarif-visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.95) contrast(1.05);
    transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.dec-tarif:hover .dec-tarif-visual img {
    transform: scale(1.05);
}

.dec-tarif-visual-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(20, 14, 8, 0.15) 0%,
        rgba(20, 14, 8, 0.45) 55%,
        rgba(20, 14, 8, 0.88) 100%);
    z-index: 1;
}

.dec-tarif-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 40%,
        rgba(255, 138, 58, 0.22) 0%,
        transparent 55%);
    z-index: 1;
    pointer-events: none;
    mix-blend-mode: screen;
}

.dec-tarif-visual-stamp {
    position: absolute;
    top: 22px;
    left: 22px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    border: 1px solid rgba(255, 178, 110, 0.5);
    border-radius: 999px;
    color: #1a0f08;
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    box-shadow: 0 14px 32px -10px rgba(255, 138, 58, 0.7);
}

.dec-tarif-visual-stamp svg {
    width: 14px;
    height: 14px;
}

.dec-tarif-visual-caption {
    position: absolute;
    bottom: 22px;
    left: 22px;
    right: 22px;
    z-index: 2;
    font-family: 'Inter', sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--cream);
    line-height: 1.45;
}

/* Variante Pro : tampon "Première officielle" positionné juste au-dessus de la légende */
.is-pro .dec-tarif-visual-stamp {
    top: auto;
    bottom: 70px;
    left: 22px;
}

@media (max-width: 720px) {
    .is-pro .dec-tarif-visual-stamp {
        bottom: 76px;
    }
}

.dec-tarif-visual-caption em {
    display: block;
    margin-top: 4px;
    font-style: italic;
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    font-size: 13px;
    color: rgba(245, 235, 220, 0.78);
}

/* Contenu — bloc centré directement sur le fond */
.dec-tarif-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 22px;
    padding: 16px 0;
    max-width: 720px;
    margin: 0 auto;
}
@media (max-width: 720px) {
    .dec-tarif-content { padding: 8px 0; gap: 18px; }
}

.dec-tarif-price {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.dec-tarif-amount {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(64px, 7vw, 104px);
    line-height: 0.92;
    letter-spacing: 0.01em;
    display: inline-flex;
    align-items: baseline;
    background: linear-gradient(180deg, #ffb16a 0%, #ff8a3a 60%, #d96a1a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-tarif-currency {
    font-size: 0.55em;
    margin-left: 0.05em;
}

.dec-tarif-vat {
    font-family: 'Inter', sans-serif;
    font-size: 0.22em;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-left: 0.55em;
    align-self: baseline;
    transform: translateY(-1.2em);
    color: rgba(245, 235, 220, 0.78);
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    -webkit-text-fill-color: rgba(245, 235, 220, 0.78);
}

/* ------------------------------------------------------------------
   2 formules au choix (Set Pro : 1 set 1499€ · 2 sets 2998€)
   ------------------------------------------------------------------ */
.dec-tarif-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px 7px;
    background: rgba(255, 138, 58, 0.13);
    border: 1px solid rgba(255, 138, 58, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #ffb478;
}

.dec-tarif-formulas {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    width: 100%;
    align-items: stretch;
}

.dec-tarif-formula {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 22px 22px 24px;
    background:
        linear-gradient(150deg, rgba(255, 255, 255, 0.045) 0%, rgba(255, 255, 255, 0.015) 100%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 18px;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.dec-tarif-formula:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 138, 58, 0.45);
    box-shadow: 0 18px 40px -16px rgba(255, 138, 58, 0.35);
}

.dec-tarif-formula.is-featured {
    border-color: rgba(255, 138, 58, 0.55);
    background:
        linear-gradient(150deg, rgba(255, 138, 58, 0.10) 0%, rgba(255, 138, 58, 0.02) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 200, 130, 0.12),
        0 14px 32px -16px rgba(255, 138, 58, 0.45);
}

.dec-tarif-formula-badge {
    position: absolute;
    top: -10px;
    right: 16px;
    padding: 4px 11px;
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 100%);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #1a0d05;
    box-shadow: 0 6px 16px -4px rgba(255, 138, 58, 0.55);
}

.dec-tarif-formula-tag {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 200, 150, 0.85);
}

/* Le prix est plus petit dans une carte formule que le prix principal */
.dec-tarif-formula .dec-tarif-amount {
    font-size: clamp(46px, 5vw, 64px);
    line-height: 0.95;
}

.dec-tarif-formula-duration {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px 4px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 220, 180, 0.78);
}

.dec-tarif-formula-desc {
    margin: 4px 0 0;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(245, 235, 220, 0.78);
}

@media (max-width: 720px) {
    .dec-tarif-formulas {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .dec-tarif-formula {
        padding: 20px 18px 22px;
    }
    .dec-tarif-formula .dec-tarif-amount {
        font-size: clamp(42px, 9vw, 60px);
    }
}

.dec-tarif-period {
    font-family: 'Inter', sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: rgba(245, 235, 220, 0.65);
}

.dec-tarif-info {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
}

.dec-tarif-label {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--orange);
}

.dec-tarif-meta {
    font-family: 'Playfair Display', serif;
    font-size: clamp(16px, 1.4vw, 19px);
    color: var(--cream);
    text-wrap: balance;
}

.dec-tarif-highlight {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    padding: 9px 18px;
    background: rgba(255, 138, 58, 0.12);
    border: 1px solid rgba(255, 138, 58, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: #ffb16a;
    line-height: 1.3;
    text-align: center;
    align-self: center;
    max-width: 100%;
}

.dec-tarif-highlight svg {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
}

/* --- Qualiopi & financements (mention juridique sous le tarif) -------- */
.dec-tarif-qualiopi {
    position: relative;
    margin-top: 14px;
    padding: 22px 24px 22px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.045) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 14px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.dec-tarif-qualiopi::before {
    content: "";
    position: absolute;
    top: -1px;
    bottom: -1px;
    left: -1px;
    width: 3px;
    background: linear-gradient(180deg, #ff8a3a 0%, rgba(255, 138, 58, 0.25) 100%);
    border-radius: 14px 0 0 14px;
}

/* Logo Qualiopi officiel — petit médaillon clair, centré au-dessus du badge */
.dec-tarif-qualiopi-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    aspect-ratio: 1 / 1;
    padding: 6px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.25),
        0 0 0 1px rgba(255, 255, 255, 0.35),
        0 0 0 4px rgba(255, 138, 58, 0.18);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.dec-tarif-qualiopi-logo:hover,
.dec-tarif-qualiopi-logo:focus-visible {
    transform: translateY(-1px) scale(1.04);
    box-shadow:
        0 10px 22px rgba(0, 0, 0, 0.32),
        0 0 0 1px rgba(255, 255, 255, 0.45),
        0 0 0 4px rgba(255, 138, 58, 0.4);
    outline: none;
}

.dec-tarif-qualiopi-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

@media (max-width: 720px) {
    .dec-tarif-qualiopi {
        padding: 18px 18px 18px;
        gap: 8px;
    }
    .dec-tarif-qualiopi-logo {
        width: 56px;
    }
}

.dec-tarif-qualiopi-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 0;
    padding: 5px 12px 5px 10px;
    background: rgba(255, 138, 58, 0.13);
    border: 1px solid rgba(255, 138, 58, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #ffb478;
}

.dec-tarif-qualiopi-tag svg {
    flex-shrink: 0;
    width: 13px;
    height: 13px;
    color: #ffb478;
}

.dec-tarif-qualiopi p {
    margin: 0;
    max-width: 56ch;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(245, 235, 220, 0.78);
}

.dec-tarif-qualiopi p strong {
    color: rgba(245, 235, 220, 0.96);
    font-weight: 600;
}

.dec-tarif-qualiopi p em {
    font-style: italic;
    color: rgba(255, 180, 120, 0.85);
}

.dec-tarif-qualiopi-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #ffb478;
    font-weight: 600;
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 1px;
    transition: color 0.25s ease, background-size 0.25s ease, gap 0.25s ease;
}

.dec-tarif-qualiopi-cta:hover,
.dec-tarif-qualiopi-cta:focus-visible {
    color: #ffd28a;
    background-size: 100% 2px;
    gap: 10px;
    outline: none;
}

.dec-tarif-qualiopi-cta:focus-visible {
    outline: 2px solid rgba(255, 138, 58, 0.7);
    outline-offset: 4px;
    border-radius: 4px;
}

.dec-tarif-qualiopi-cta em {
    font-style: italic;
    color: inherit;
}

.dec-tarif-qualiopi-cta svg {
    flex-shrink: 0;
    width: 13px;
    height: 13px;
    transition: transform 0.25s ease;
}

.dec-tarif-qualiopi-cta:hover svg,
.dec-tarif-qualiopi-cta:focus-visible svg {
    transform: translateX(2px);
}

@media (max-width: 720px) {
    .dec-tarif-qualiopi {
        padding: 14px 16px 16px;
    }
    .dec-tarif-qualiopi p {
        font-size: 12.5px;
    }
}

.dec-tarif-cta {
    position: relative;
    align-self: center;
    margin-top: 6px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    background-size: 200% 100%;
    background-position: 0% 50%;
    border: 1px solid rgba(255, 178, 110, 0.6);
    border-radius: 999px;
    color: #1a0f08;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    box-shadow:
        0 12px 32px -10px rgba(255, 138, 58, 0.7),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
    transition: background-position 0.5s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.dec-tarif-cta:hover {
    background-position: 100% 50%;
    transform: translateY(-2px);
    box-shadow:
        0 18px 44px -10px rgba(255, 138, 58, 0.85),
        inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.dec-tarif-cta svg {
    width: 18px;
    height: 18px;
    transition: transform 0.25s ease;
}

.dec-tarif-cta:hover svg {
    transform: translateX(4px);
}

/* --- 5. Next step (vers le Semi Pro) --------------------------------- */

.dec-next {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 32px;
    padding: 8px 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
}

.dec-next-tag {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    background: rgba(255, 138, 58, 0.14);
    border: 1px solid rgba(255, 138, 58, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: #ffb16a;
    white-space: nowrap;
    align-self: start;
    margin-top: 4px;
}

.dec-next-body {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.dec-next-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(22px, 2.1vw, 28px);
    letter-spacing: 0.03em;
    color: var(--cream);
    text-transform: uppercase;
    line-height: 1.15;
}

.dec-next-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-next-desc {
    margin: 0;
    font-family: 'Playfair Display', serif;
    font-size: 15px;
    line-height: 1.55;
    color: rgba(245, 235, 220, 0.72);
}

.dec-next-desc strong {
    font-style: normal;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: var(--cream);
    letter-spacing: 0.02em;
}

.dec-next-cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 22px;
    background: rgba(255, 138, 58, 0.06);
    border: 1px solid rgba(255, 138, 58, 0.4);
    border-radius: 999px;
    color: #ffb16a;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    white-space: nowrap;
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.25s ease, color 0.25s ease;
}

.dec-next-cta:hover {
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    border-color: rgba(255, 178, 110, 0.6);
    color: #1a0f08;
    transform: translateY(-2px);
    box-shadow: 0 14px 32px -10px rgba(255, 138, 58, 0.6);
}

.dec-next-cta svg {
    width: 16px;
    height: 16px;
    transition: transform 0.25s ease;
}

.dec-next-cta:hover svg {
    transform: translateX(4px);
}

/* === ET APRÈS — Découverte → Semi Pro / équivalence concours ============= */
.dec-apres-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    max-width: 1080px;
    margin: 0 auto;
}

.dec-apres-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 40px 38px 36px;
    border-radius: 26px;
    background:
        radial-gradient(120% 160% at 0% 0%, rgba(255, 138, 58, 0.16) 0%, rgba(255, 138, 58, 0) 60%),
        linear-gradient(160deg, rgba(34, 22, 14, 0.78) 0%, rgba(20, 12, 8, 0.66) 100%);
    border: 1px solid rgba(255, 178, 110, 0.22);
    box-shadow: 0 28px 60px -36px rgba(0, 0, 0, 0.85);
    overflow: hidden;
    transition: transform 0.5s ease, border-color 0.5s ease, box-shadow 0.5s ease;
}
.dec-apres-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255, 178, 110, 0.16) 0%, transparent 35%);
    mix-blend-mode: screen;
    opacity: 0.55;
}
.dec-apres-card:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 178, 110, 0.45);
    box-shadow: 0 32px 70px -30px rgba(255, 138, 58, 0.35);
}

.dec-apres-card-pill {
    display: inline-flex;
    align-self: flex-start;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 178, 110, 0.45);
    background: rgba(255, 138, 58, 0.14);
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #ffb16a;
}

.dec-apres-card-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(24px, 2.4vw, 32px);
    letter-spacing: 0.02em;
    line-height: 1.1;
    color: var(--cream);
    text-transform: uppercase;
}
.dec-apres-card-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.dec-apres-card-desc {
    margin: 0;
    font-family: 'Inter', sans-serif;
    font-size: 14.5px;
    line-height: 1.7;
    color: rgba(245, 235, 220, 0.78);
}
.dec-apres-card-desc strong {
    color: var(--cream);
    font-weight: 700;
}

.dec-apres-card-equiv {
    background:
        radial-gradient(120% 160% at 100% 0%, rgba(255, 138, 58, 0.24) 0%, rgba(255, 138, 58, 0) 60%),
        linear-gradient(160deg, rgba(46, 28, 14, 0.85) 0%, rgba(24, 14, 8, 0.7) 100%);
    border-color: rgba(255, 178, 110, 0.42);
}

.dec-apres-card-cta {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding: 14px 24px;
    border-radius: 999px;
    border: 1px solid rgba(255, 138, 58, 0.5);
    background: rgba(255, 138, 58, 0.08);
    color: #ffb16a;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.3s ease, color 0.3s ease, transform 0.25s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.dec-apres-card-cta:hover {
    background: linear-gradient(110deg, #ff8a3a 0%, #ffb16a 50%, #ff8a3a 100%);
    border-color: rgba(255, 178, 110, 0.7);
    color: #1a0f08;
    transform: translateY(-2px);
    box-shadow: 0 16px 36px -10px rgba(255, 138, 58, 0.55);
}
.dec-apres-card-cta svg {
    width: 16px;
    height: 16px;
    transition: transform 0.25s ease;
}
.dec-apres-card-cta:hover svg {
    transform: translateX(4px);
}

@media (max-width: 920px) {
    .dec-apres-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .dec-apres-card {
        padding: 32px 28px;
    }
}

@media (max-width: 920px) {
    .dec-next {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 28px;
        text-align: center;
    }

    .dec-next-tag {
        justify-self: center;
        align-self: center;
        margin-top: 0;
    }

    .dec-next-cta {
        justify-self: center;
    }
}

/* --- Responsive ------------------------------------------------------- */

@media (max-width: 920px) {
    .dec-detail {
        gap: 56px;
    }

    .dec-manifesto {
        padding: 24px 32px 24px;
    }

    .dec-manifesto-mark {
        font-size: 64px;
    }

    .dec-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 0;
        padding: 28px 16px;
    }

    .dec-stat + .dec-stat::before {
        display: none;
    }

    .dec-stat:nth-child(2n)::before {
        content: "";
        position: absolute;
        left: 0;
        top: 12%;
        bottom: 12%;
        width: 1px;
        background: linear-gradient(180deg,
            transparent 0%,
            rgba(255, 138, 58, 0.28) 50%,
            transparent 100%);
    }

    .dec-phases-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .dec-phases-grid::before {
        display: none;
    }

    .dec-tarif {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 0;
        border-radius: 24px;
    }

    .dec-tarif-visual {
        min-height: 240px;
        aspect-ratio: 16 / 10;
    }

    .dec-tarif-content {
        padding: 28px 28px 32px;
        gap: 18px;
        text-align: center;
        align-items: center;
    }

    .dec-tarif-price,
    .dec-tarif-info {
        justify-self: center;
        align-items: center;
        text-align: center;
    }

    .dec-tarif-cta {
        align-self: center;
        justify-self: center;
    }
}

@media (max-width: 560px) {
    .dec-stats {
        grid-template-columns: 1fr;
    }

    .dec-stat::before,
    .dec-stat + .dec-stat::before,
    .dec-stat:nth-child(2n)::before {
        display: none !important;
    }
}

/* ==========================================================================
   POUR QUI · Comparaison "C'est pour toi" / "Ce n'est pas pour toi"
   (page Pro)
   ========================================================================== */
.fm-profile-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    margin-top: 56px;
}

.fm-profile {
    position: relative;
    padding: 44px 44px 40px;
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(28, 22, 18, 0.6) 0%, rgba(20, 16, 14, 0.5) 100%);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: 0 28px 60px -28px rgba(0, 0, 0, 0.6);
    transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
    overflow: hidden;
}
.fm-profile::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.fm-profile-yes {
    border-color: rgba(255, 138, 58, 0.32);
    box-shadow: 0 28px 60px -28px rgba(255, 138, 58, 0.32);
}
.fm-profile-yes::before {
    background: radial-gradient(ellipse at 90% 0%, rgba(255, 138, 58, 0.14) 0%, transparent 60%);
}
.fm-profile-yes:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 138, 58, 0.55);
    box-shadow: 0 32px 70px -28px rgba(255, 138, 58, 0.45);
}
.fm-profile-no {
    background: linear-gradient(135deg, rgba(20, 14, 10, 0.55) 0%, rgba(20, 14, 10, 0.35) 100%);
    border-color: rgba(255, 255, 255, 0.08);
}

.fm-profile-head {
    position: relative;
    z-index: 1;
    margin: 0 0 24px;
    padding: 0 0 22px;
    border-bottom: 1px solid rgba(255, 138, 58, 0.2);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.fm-profile-no .fm-profile-head { border-bottom-color: rgba(255, 255, 255, 0.08); }

.fm-profile-eyebrow {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: rgba(240, 236, 228, 0.72);
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}
.fm-profile-yes .fm-profile-eyebrow { color: #ffb079; }

.fm-profile-icon {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: linear-gradient(180deg, #ffb16a 0%, #ff8a3a 60%, #d96a1a 100%);
    color: #1a0a00;
    box-shadow: 0 8px 18px -6px rgba(255, 138, 58, 0.7);
}
.fm-profile-no .fm-profile-icon {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.45);
    box-shadow: none;
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.fm-profile-icon svg {
    width: 14px;
    height: 14px;
}

.fm-profile-head h3 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(28px, 2.8vw, 38px);
    line-height: 1;
    letter-spacing: 0.5px;
    color: var(--cream);
    text-wrap: balance;
}
.fm-profile-head h3 em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    background: linear-gradient(110deg, #ffd0a8 0%, #ffb079 50%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.fm-profile-no .fm-profile-head h3 {
    color: rgba(240, 236, 228, 0.78);
}
.fm-profile-no .fm-profile-head h3 em {
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    color: rgba(240, 236, 228, 0.52);
    font-style: italic;
}

.fm-profile ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 16px;
    position: relative;
    z-index: 1;
}

.fm-profile li {
    position: relative;
    padding-left: 30px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: var(--gray-text);
}
.fm-profile li strong {
    color: var(--cream);
    font-weight: 600;
}

.fm-profile-yes li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 0.55em;
    width: 14px;
    height: 8px;
    border-left: 2px solid #ff8a3a;
    border-bottom: 2px solid #ff8a3a;
    transform: rotate(-45deg);
    transform-origin: 4px 4px;
}
.fm-profile-no li::before {
    content: "×";
    position: absolute;
    left: 4px;
    top: 0;
    color: rgba(255, 255, 255, 0.45);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.55;
}

.fm-profile li a {
    color: #ff8a3a;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: color 0.2s ease;
}
.fm-profile li a:hover {
    color: #ffb16a;
}

@media (max-width: 820px) {
    .fm-profile-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .fm-profile {
        padding: 30px 26px 26px;
    }
}

/* ==========================================================================
   DEC-ADMISSION — Slide résumé du concours d'entrée (Semi Pro & Pro)
   ========================================================================== */

.dec-admission {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    border-radius: 28px;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(160deg,
        rgba(28, 18, 12, 0.7) 0%,
        rgba(18, 12, 8, 0.55) 100%);
    border: 1px solid rgba(255, 138, 58, 0.28);
    box-shadow:
        0 40px 80px -32px rgba(0, 0, 0, 0.7),
        0 0 0 1px rgba(255, 138, 58, 0.10) inset;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.dec-admission::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255, 138, 58, 0.6) 30%,
        rgba(255, 138, 58, 0.95) 50%,
        rgba(255, 138, 58, 0.6) 70%,
        transparent 100%);
    z-index: 2;
}

.dec-admission-grid {
    display: grid;
    grid-template-columns: 1.05fr 1.05fr;
    gap: 0;
    align-items: stretch;
    position: relative;
    z-index: 1;
}

/* ── Visuel ── */
.dec-admission-photo {
    position: relative;
    margin: 0;
    overflow: hidden;
    isolation: isolate;
    min-height: 460px;
}
.dec-admission-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.62) saturate(1.1);
    transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.dec-admission:hover .dec-admission-photo img { transform: scale(1.04); }
.dec-admission-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
        rgba(15, 6, 0, 0.05) 0%,
        rgba(15, 6, 0, 0.0) 30%,
        rgba(15, 6, 0, 0.55) 100%);
    pointer-events: none;
}
.dec-admission-stamp {
    position: absolute;
    top: 24px;
    left: 24px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(15, 6, 0, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 138, 58, 0.55);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.dec-admission-stamp-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ff7a2f;
    box-shadow: 0 0 10px rgba(255, 122, 47, 0.7);
}

.dec-admission-quote {
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 28px;
    z-index: 2;
    margin: 0;
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 15.5px;
    line-height: 1.55;
    color: rgba(255, 235, 210, 0.92);
    text-shadow: 0 4px 24px rgba(0, 0, 0, 0.65);
}
.dec-admission-quote::before {
    content: "“";
    display: block;
    font-size: 50px;
    line-height: 0.6;
    color: rgba(255, 138, 58, 0.55);
    margin-bottom: 4px;
}

/* ── Bloc texte ── */
.dec-admission-text {
    padding: 56px 52px 48px;
    display: flex;
    flex-direction: column;
}

.dec-admission-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    align-self: flex-start;
    padding: 7px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 138, 58, 0.45);
    background: rgba(255, 138, 58, 0.10);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    margin-bottom: 22px;
}
.dec-admission-eyebrow svg { width: 13px; height: 13px; }

.dec-admission-title {
    margin: 0 0 18px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(40px, 4.6vw, 60px);
    line-height: 0.96;
    letter-spacing: 0;
    color: #f0ece4;
}
.dec-admission-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    background: linear-gradient(110deg, #ffd0a8 0%, #ffb079 50%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.dec-admission-deck {
    margin: 0 0 32px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(240, 236, 228, 0.78);
    max-width: 460px;
}
.dec-admission-deck strong { color: #f0ece4; font-weight: 600; }

.dec-admission-stats {
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.dec-admission-stats li {
    padding: 18px 16px;
    border-radius: 14px;
    background: rgba(255, 138, 58, 0.06);
    border: 1px solid rgba(255, 138, 58, 0.18);
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.dec-admission-stats strong {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(32px, 3vw, 42px);
    line-height: 1;
    letter-spacing: 0.5px;
    background: linear-gradient(135deg, #ffd0a8 0%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.dec-admission-stats span {
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    line-height: 1.35;
    color: rgba(240, 236, 228, 0.66);
    letter-spacing: 0.04em;
}

.dec-admission-cta {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ffb079 0%, #ff7a2f 100%);
    color: #1a0a00;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    box-shadow: 0 18px 40px -16px rgba(255, 122, 47, 0.6);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.dec-admission-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 24px 50px -16px rgba(255, 122, 47, 0.85);
}
.dec-admission-cta svg { width: 16px; height: 16px; }

.dec-admission-secondary {
    margin: 14px 0 0;
    font-family: 'Inter', sans-serif;
    font-size: 12.5px;
    color: rgba(240, 236, 228, 0.55);
    letter-spacing: 0.04em;
}
.dec-admission-secondary strong { color: rgba(240, 236, 228, 0.78); }

@media (max-width: 1080px) {
    .dec-admission-grid { grid-template-columns: 1fr; }
    .dec-admission-photo { min-height: 320px; order: -1; }
}
@media (max-width: 720px) {
    .dec-admission-text { padding: 36px 28px 30px; }
    .dec-admission-stats { grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .dec-admission-stats li { padding: 14px 12px; }
    .dec-admission-quote { font-size: 13.5px; left: 22px; right: 22px; bottom: 22px; }
}

/* ==========================================================================
   DEC-PROMISE — Bloc "promesse" narrative en intro de la slide formation
   (storytelling cinéma : citation Playfair italique + photo verticale)
   ========================================================================== */

.dec-promise {
    position: relative;
    margin: 0 0 60px;
    padding: 0;
    border-radius: 28px;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(255, 122, 47, 0.07) 0%, rgba(20, 8, 0, 0.3) 100%);
    border: 1px solid rgba(255, 122, 47, 0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.dec-promise::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 90% 20%, rgba(255, 122, 47, 0.12) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}
.dec-promise-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
}
.dec-promise-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 22px;
    padding: 64px 56px 64px 64px;
}
.dec-promise-eyebrow {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 122, 47, 0.45);
    background: rgba(255, 122, 47, 0.10);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.dec-promise-eyebrow svg { width: 12px; height: 12px; }
.dec-promise-quote {
    margin: 0;
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    font-size: clamp(24px, 2.7vw, 34px);
    line-height: 1.4;
    color: #f0ece4;
    letter-spacing: -0.005em;
    text-wrap: balance;
}
.dec-promise-quote::before {
    content: '“';
    display: block;
    font-family: 'Playfair Display', serif;
    font-size: clamp(54px, 5vw, 72px);
    line-height: 0.4;
    color: rgba(255, 122, 47, 0.45);
    margin: 0 0 14px;
    letter-spacing: -0.02em;
}
.dec-promise-quote em {
    font-style: italic;
    background: linear-gradient(110deg, #ffd0a8 0%, #ffb079 50%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.dec-promise-foot {
    margin: 4px 0 0;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: rgba(240, 236, 228, 0.6);
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.dec-promise-foot::before {
    content: '';
    width: 28px;
    height: 1px;
    background: rgba(255, 122, 47, 0.5);
}
.dec-promise-photo {
    position: relative;
    align-self: stretch;
    margin: 0;
    padding: 0;
    min-height: 460px;
    overflow: hidden;
    border-left: 1px solid rgba(255, 122, 47, 0.18);
}
.dec-promise .dec-promise-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.78) saturate(1.1);
    /* On combine opacity + transform + filter pour éviter que l'injection
       d'image-slots.js (transition: opacity .25s ease) écrase la transition
       de zoom au hover. Spécificité chainée pour gagner la cascade. */
    transition:
        transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1),
        filter 0.7s ease,
        opacity 0.25s ease;
    will-change: transform;
}
.dec-promise:hover .dec-promise-photo img {
    transform: scale(1.04);
    filter: brightness(0.85) saturate(1.15);
}
.dec-promise-photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 5, 0, 0.4) 0%, transparent 35%, transparent 100%),
                linear-gradient(180deg, transparent 55%, rgba(15, 5, 0, 0.6) 100%);
    pointer-events: none;
}
.dec-promise-photo-tag {
    position: absolute;
    left: 22px;
    bottom: 22px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(15, 5, 0, 0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 122, 47, 0.45);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.dec-promise-stats {
    list-style: none;
    margin: 0;
    padding: 22px 56px 22px 64px;
    border-top: 1px solid rgba(255, 122, 47, 0.18);
    background: rgba(15, 5, 0, 0.28);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
}
.dec-promise-stats li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-family: 'Inter', sans-serif;
    position: relative;
    flex-wrap: wrap;
}
.dec-promise-stats li + li::before {
    content: '';
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: -10px;
    width: 1px;
    background: rgba(255, 122, 47, 0.14);
}
.dec-promise-stats strong {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1;
    letter-spacing: 0.5px;
    color: #ffb079;
    flex: 0 0 auto;
}
.dec-promise-stats strong em {
    font-family: 'Inter', sans-serif;
    font-style: normal;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: rgba(255, 176, 121, 0.7);
    margin-left: 2px;
    vertical-align: 0.3em;
}
.dec-promise-stats .dec-promise-stat-label {
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(240, 236, 228, 0.92);
    letter-spacing: 0.02em;
}
.dec-promise-stats .dec-promise-stat-sub {
    flex-basis: 100%;
    font-size: 10.5px;
    color: rgba(240, 236, 228, 0.5);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-top: -2px;
}

@media (max-width: 980px) {
    .dec-promise-grid { grid-template-columns: 1fr; }
    .dec-promise-text { padding: 40px 28px 32px; }
    .dec-promise-photo { min-height: 280px; border-left: 0; border-top: 1px solid rgba(255, 122, 47, 0.18); }
    .dec-promise-stats { padding: 22px 28px; grid-template-columns: repeat(2, 1fr); gap: 18px; }
    .dec-promise-stats li + li::before { display: none; }
}

/* ==========================================================================
   DEC-CHAPTERS — Chapitres cinématographiques alternés (image / texte)
   Remplace la timeline phases par un vrai storytelling visuel
   ========================================================================== */

.dec-chapters {
    margin: 0 0 60px;
}
.dec-chapters-head {
    text-align: center;
    margin: 0 0 44px;
}
.dec-chapters-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 122, 47, 0.10);
    border: 1px solid rgba(255, 122, 47, 0.35);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.dec-chapters-title {
    margin: 14px 0 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(30px, 3vw, 42px);
    letter-spacing: 0.5px;
    color: #f0ece4;
    line-height: 1;
}
.dec-chapters-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    background: linear-gradient(110deg, #ffd0a8 0%, #ffb079 50%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.dec-chapters-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 72px;
}

.dec-chap {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 56px;
    align-items: center;
    position: relative;
}
.dec-chap.is-reverse { grid-template-columns: 1fr 1.05fr; }
.dec-chap.is-reverse .dec-chap-image { order: 2; }
.dec-chap.is-reverse .dec-chap-text { order: 1; }

.dec-chap-image {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid rgba(255, 122, 47, 0.18);
    box-shadow: 0 32px 70px -32px rgba(0, 0, 0, 0.7);
}
.dec-chap-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.78) saturate(1.1);
    transition: transform 0.7s ease, filter 0.7s ease;
}
.dec-chap-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(15, 5, 0, 0.62) 100%);
    pointer-events: none;
}
.dec-chap:hover .dec-chap-image img {
    transform: scale(1.05);
    filter: brightness(0.86) saturate(1.18);
}
.dec-chap-num {
    position: absolute;
    top: 18px;
    left: 22px;
    z-index: 2;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(60px, 6vw, 92px);
    color: rgba(255, 255, 255, 0);
    -webkit-text-stroke: 1.4px rgba(255, 208, 168, 0.78);
    letter-spacing: 0.5px;
    line-height: 1;
    text-shadow: 0 4px 18px rgba(0, 0, 0, 0.6);
}
.dec-chap-image-tag {
    position: absolute;
    left: 22px;
    bottom: 22px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(15, 5, 0, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 122, 47, 0.45);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.dec-chap-text {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.dec-chap-eyebrow {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(240, 236, 228, 0.62);
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}
.dec-chap-eyebrow strong {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 22px;
    font-weight: 400;
    letter-spacing: 0.5px;
    color: #ffb079;
}
.dec-chap-eyebrow::before {
    content: '';
    width: 32px;
    height: 1px;
    background: rgba(255, 122, 47, 0.5);
}
.dec-chap-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(34px, 3.4vw, 52px);
    line-height: 0.95;
    color: #f0ece4;
    letter-spacing: 0.5px;
    text-wrap: balance;
}
.dec-chap-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    background: linear-gradient(110deg, #ffd0a8 0%, #ffb079 50%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.dec-chap-desc {
    margin: 0;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: rgba(240, 236, 228, 0.78);
}
.dec-chap-desc strong { color: #f0ece4; font-weight: 600; }
.dec-chap-milestone {
    margin: 8px 0 0;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 122, 47, 0.18) 0%, rgba(255, 122, 47, 0.08) 100%);
    border: 1px solid rgba(255, 122, 47, 0.36);
    color: #ffd0a8;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
}
.dec-chap-milestone svg { width: 16px; height: 16px; }

.dec-chap.is-final .dec-chap-image {
    border-color: rgba(255, 122, 47, 0.45);
    box-shadow: 0 32px 70px -28px rgba(255, 122, 47, 0.32);
}
.dec-chap.is-final .dec-chap-num {
    -webkit-text-stroke-color: rgba(255, 122, 47, 0.95);
    color: rgba(255, 122, 47, 0.18);
}
.dec-chap.is-final .dec-chap-milestone {
    background: linear-gradient(135deg, #ffb079 0%, #ff7a2f 100%);
    color: #1a0a00;
    border-color: rgba(255, 122, 47, 0.6);
    font-weight: 700;
}

@media (max-width: 980px) {
    .dec-chap, .dec-chap.is-reverse { grid-template-columns: 1fr; gap: 24px; }
    .dec-chap.is-reverse .dec-chap-image { order: 1; }
    .dec-chap.is-reverse .dec-chap-text { order: 2; }
    .dec-chapters-list { gap: 56px; }
}

/* ==========================================================================
   FM-HERO-CINE — Hero cinématographique unifié pour les 3 pages formation
   (équivalent orange du cn-hero du QG)
   ========================================================================== */

.fm-hero-cine {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 140px 56px 120px;
    overflow: hidden;
    isolation: isolate;
}
.fm-hero-cine-bg { position: absolute; inset: 0; z-index: -1; }
.fm-hero-cine-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
    filter: brightness(0.55) saturate(1.15);
}
.fm-hero-cine-bg-grade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg,
            rgba(15, 5, 0, 0.5) 0%,
            rgba(15, 5, 0, 0.74) 35%,
            rgba(8, 2, 0, 0.94) 80%,
            #060200 100%),
        radial-gradient(ellipse at 30% 50%, rgba(255, 122, 47, 0.2) 0%, transparent 55%);
}
.fm-hero-cine-bg-grain {
    position: absolute;
    inset: 0;
    opacity: 0.16;
    mix-blend-mode: overlay;
    background-image: radial-gradient(rgba(255, 255, 255, 0.22) 1px, transparent 1px);
    background-size: 3px 3px;
    pointer-events: none;
}

.fm-hero-cine-inner {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.fm-hero-cine-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid rgba(255, 122, 47, 0.45);
    background: rgba(255, 122, 47, 0.10);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.fm-hero-cine-eyebrow svg { width: 14px; height: 14px; }
.fm-hero-cine-eyebrow-letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 122, 47, 0.2);
    color: #ffd0a8;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 14px;
    letter-spacing: 0;
}

.fm-hero-cine-title {
    margin: 28px 0 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(54px, 8.6vw, 132px);
    line-height: 0.92;
    letter-spacing: -0.005em;
    color: #f0ece4;
    text-shadow: 0 4px 40px rgba(0, 0, 0, 0.55);
    text-wrap: balance;
}
.fm-hero-cine-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    background: linear-gradient(110deg, #ffd0a8 0%, #ffb079 50%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.fm-hero-cine-deck {
    margin: 28px 0 0;
    max-width: 620px;
    font-family: 'Inter', sans-serif;
    font-size: clamp(15px, 1.3vw, 17px);
    line-height: 1.7;
    color: rgba(240, 236, 228, 0.78);
}
.fm-hero-cine-deck strong { color: #f0ece4; font-weight: 600; }

.fm-hero-cine-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 36px;
}

.fm-hero-cine-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 26px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.fm-hero-cine-cta svg { width: 16px; height: 16px; }
.fm-hero-cine-cta-primary {
    background: linear-gradient(135deg, #ffb079 0%, #ff7a2f 100%);
    color: #1a0a00;
    box-shadow: 0 16px 40px -16px rgba(255, 122, 47, 0.55);
}
.fm-hero-cine-cta-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 50px -16px rgba(255, 122, 47, 0.75);
}
.fm-hero-cine-cta-ghost {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 122, 47, 0.32);
    color: #f0ece4;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.fm-hero-cine-cta-ghost:hover {
    border-color: rgba(255, 122, 47, 0.6);
    color: #ffb079;
    transform: translateY(-2px);
}

.fm-hero-cine-marks {
    list-style: none;
    margin: 56px 0 0;
    padding: 28px 0 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    max-width: 760px;
    border-top: 1px solid rgba(255, 122, 47, 0.22);
}
/* Adapte la grille quand on a moins de 4 marks (cas Découverte sans le prix). */
.fm-hero-cine-marks:has(> li:nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 600px;
}
.fm-hero-cine-marks:has(> li:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 440px;
}
.fm-hero-cine-marks li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-family: 'Inter', sans-serif;
}
.fm-hero-cine-marks strong {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(34px, 3.6vw, 52px);
    color: #ffb079;
    letter-spacing: 0.5px;
    line-height: 1;
}
.fm-hero-cine-marks span {
    font-size: 11.5px;
    color: rgba(240, 236, 228, 0.72);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.fm-hero-cine-scroll {
    position: absolute;
    bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: rgba(240, 236, 228, 0.72);
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    transition: color 0.3s ease;
    z-index: 2;
}
.fm-hero-cine-scroll:hover { color: #ffb079; }
.fm-hero-cine-scroll svg { width: 18px; height: 18px; animation: fm-scroll-pulse 2.4s ease-in-out infinite; }
@keyframes fm-scroll-pulse {
    0%, 100% { transform: translateY(0); opacity: 0.6; }
    50% { transform: translateY(6px); opacity: 1; }
}

@media (max-width: 1080px) {
    .fm-hero-cine { padding: 120px 36px 100px; }
}
@media (max-width: 720px) {
    .fm-hero-cine { padding: 120px 24px 100px; min-height: 92vh; }
    .fm-hero-cine-marks { grid-template-columns: repeat(2, 1fr); gap: 18px 14px; margin-top: 40px; }
}

/* ==========================================================================
   FM-FINALE — Slide contact full-bleed cinématographique
   ========================================================================== */

.fm-finale {
    position: relative;
    padding: 120px 56px;
    overflow: hidden;
    isolation: isolate;
    text-align: center;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.fm-finale-bg { position: absolute; inset: 0; z-index: -1; }
.fm-finale-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    filter: brightness(0.55) saturate(1.15);
}
.fm-finale-bg-grade {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(15, 5, 0, 0.5) 0%, rgba(15, 5, 0, 0.88) 70%, rgba(8, 2, 0, 0.98) 100%),
        linear-gradient(135deg,
            rgba(255, 122, 47, 0.18) 0%,
            transparent 40%,
            rgba(8, 2, 0, 0.6) 100%);
}
.fm-finale-bg-grain {
    position: absolute;
    inset: 0;
    opacity: 0.16;
    mix-blend-mode: overlay;
    background-image: radial-gradient(rgba(255, 255, 255, 0.22) 1px, transparent 1px);
    background-size: 3px 3px;
    pointer-events: none;
}

.fm-finale-content {
    max-width: 820px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.fm-finale-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid rgba(255, 122, 47, 0.45);
    background: rgba(255, 122, 47, 0.10);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #ffb079;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.fm-finale-pill-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ff7a2f;
    box-shadow: 0 0 10px rgba(255, 122, 47, 0.7);
}

.fm-finale-title {
    margin: 28px 0 24px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(50px, 7.5vw, 120px);
    line-height: 0.9;
    letter-spacing: 0;
    color: #f0ece4;
    text-shadow: 0 4px 40px rgba(0, 0, 0, 0.55);
    text-wrap: balance;
}
.fm-finale-title em {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    background: linear-gradient(110deg, #ffd0a8 0%, #ffb079 50%, #ff7a2f 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.fm-finale-deck {
    margin: 0 auto 36px;
    max-width: 580px;
    font-family: 'Inter', sans-serif;
    font-size: clamp(15px, 1.2vw, 17px);
    line-height: 1.75;
    color: rgba(240, 236, 228, 0.78);
}
.fm-finale-deck strong { color: #f0ece4; font-weight: 600; }

.fm-finale-cta-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}
.fm-finale-cta-row .fm-hero-cine-cta {
    padding: 18px 32px;
    font-size: 15px;
}

.fm-finale-foot {
    margin: 36px 0 0;
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 14px;
    color: rgba(240, 236, 228, 0.55);
    letter-spacing: 0.04em;
}

@media (max-width: 720px) {
    .fm-finale { padding: 120px 24px; }
    .fm-finale-cta-row { flex-direction: column; align-items: stretch; }
    .fm-finale-cta-row .fm-hero-cine-cta { justify-content: center; }
}

/* ==========================================================================
   FONDS UNIFIÉS — couleurs identiques à la page Concours d'entrée
   ink #0e0805 + ink-2 #1a0f08 + radial orange rgba(255, 138, 58, 0.08)
   Alternance ink (avec halo orange en biais) ↔ ink-2 (flat plus clair)
   Appliquée uniquement aux pages formation découverte / semi pro / pro.
   ========================================================================== */

body.formation-page:not(.modules-page):not(.treenity-page):not(.entreprise-page):not(.cocon-page) .fm-section {
    position: relative;
    background: #0e0805 !important;
    border-top: none;
    overflow: hidden;
    isolation: isolate;
}
body.formation-page:not(.modules-page):not(.treenity-page):not(.entreprise-page):not(.cocon-page) .fm-section.is-bg-1 {
    background:
        radial-gradient(ellipse at 80% 0%, rgba(255, 138, 58, 0.08) 0%, transparent 60%),
        #0e0805 !important;
}
body.formation-page:not(.modules-page):not(.treenity-page):not(.entreprise-page):not(.cocon-page) .fm-section.is-bg-1:nth-of-type(2n) {
    background:
        radial-gradient(ellipse at 20% 100%, rgba(255, 138, 58, 0.08) 0%, transparent 55%),
        #0e0805 !important;
}
body.formation-page:not(.modules-page):not(.treenity-page):not(.entreprise-page):not(.cocon-page) .fm-section.is-bg-2 {
    background: #1a0f08 !important;
}
body.formation-page:not(.modules-page):not(.treenity-page):not(.entreprise-page):not(.cocon-page) .fm-section.is-bg-3 {
    background:
        radial-gradient(ellipse at 20% 100%, rgba(255, 138, 58, 0.08) 0%, transparent 55%),
        #0e0805 !important;
}

/* ═══════════════════════════════════════════
   SLIDES PLEIN-ÉCRAN — Parcours (Découverte / Semi Pro / Pro)
   Décompose le programme en slides 100vh successives :
   1 slide titre (Niveau X · Parcours Y)
   1 slide promesse (quote + stats)
   1 slide intro chapitres (Le voyage / N chapitres)
   N slides chapitres (1 par étape du programme)
   1 slide tarif / CTA final
   Homogène avec les autres slides plein-écran du site.
   ═══════════════════════════════════════════ */

/* On garde la section padding par défaut pour le bloc titre + promesse,
   et on ne convertit en slides plein-écran QUE le voyage/programme.
   → la slide "Niveau X · Parcours Y" + promesse restent inchangées. */

.fm-section#travail .dec-detail,
.fm-section#programme .dec-detail {
    gap: 80px;
}

/* En-tête « Le voyage / N chapitres » — slide plein-écran
   Breakout : on libère .dec-chapters du conteneur 1080 px de .dec-detail pour
   atteindre la même largeur utile que la grille du concours (1280 px max
   + 56 px de padding), garantissant des photos de taille identique. */
.fm-section#travail .dec-chapters,
.fm-section#programme .dec-chapters {
    margin: 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0 56px;
    box-sizing: border-box;
    max-width: none;
}
@media (max-width: 760px) {
    .fm-section#travail .dec-chapters,
    .fm-section#programme .dec-chapters {
        padding: 0 22px;
    }
}
/* Tête du voyage / programme : même grammaire que `.ce-section-head` du concours */
.fm-section#travail .dec-chapters-head,
.fm-section#programme .dec-chapters-head {
    min-height: 100vh;
    min-height: 100svh;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    max-width: 720px;
    gap: 22px;
    /* Position relative + isolation pour que le bg en absolute puisse breakout
       en 100vw sans masquer le contenu. */
    position: relative;
    isolation: isolate;
}
/* Background photo plein écran + dégradé noir, calque .fm-finale-bg
   pour donner du caractère à la slide titre du voyage / programme. */
.dec-chapters-head-bg {
    position: absolute;
    top: 0; bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    z-index: -1;
    overflow: hidden;
}
.dec-chapters-head-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    filter: brightness(0.55) saturate(1.15);
}
.dec-chapters-head-bg-grade {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(15, 5, 0, 0.55) 0%, rgba(15, 5, 0, 0.90) 70%, rgba(8, 2, 0, 0.98) 100%),
        linear-gradient(135deg,
            rgba(255, 122, 47, 0.16) 0%,
            transparent 40%,
            rgba(8, 2, 0, 0.6) 100%);
}
.dec-chapters-head-bg-grain {
    position: absolute;
    inset: 0;
    opacity: 0.16;
    mix-blend-mode: overlay;
    background-image: radial-gradient(rgba(255, 255, 255, 0.22) 1px, transparent 1px);
    background-size: 3px 3px;
    pointer-events: none;
}
.fm-section#travail .dec-chapters-head .dec-chapters-eyebrow,
.fm-section#programme .dec-chapters-head .dec-chapters-eyebrow {
    padding: 7px 14px;
    font-size: 11.5px;
    letter-spacing: 1.6px;
}
.fm-section#travail .dec-chapters-head .dec-chapters-title,
.fm-section#programme .dec-chapters-head .dec-chapters-title {
    margin: 0;
    font-size: clamp(42px, 6vw, 84px);
    line-height: 0.96;
    letter-spacing: 0;
    text-wrap: balance;
}

/* Liste des chapitres : retire l'espacement entre chapitres
   puisque chacun est devenu sa propre slide. */
.fm-section#travail .dec-chapters-list,
.fm-section#programme .dec-chapters-list {
    gap: 0;
    max-width: 1280px;
    margin: 0 auto;
}

/* Chaque chapitre = une slide plein-écran avec image dominante
   Calque visuel du concours (ce-chapter) : image cinéma, overlay sombre,
   numéro stroked orange, pill durée backdrop-blur, eyebrow italique Playfair. */
.fm-section#travail .dec-chap,
.fm-section#programme .dec-chap {
    min-height: 100vh;
    min-height: 100svh;
    padding: 80px 0;
    align-items: center;
    align-content: center;
    grid-template-columns: 1.7fr 1fr;
    gap: 64px;
}
.fm-section#travail .dec-chap.is-reverse,
.fm-section#programme .dec-chap.is-reverse {
    grid-template-columns: 1fr 1.7fr;
}

/* — Image — */
.fm-section#travail .dec-chap .dec-chap-image,
.fm-section#programme .dec-chap .dec-chap-image {
    aspect-ratio: auto;
    height: min(82vh, 800px);
    border-radius: 24px;
    box-shadow:
        0 32px 80px -32px rgba(0, 0, 0, 0.7),
        0 0 0 1px rgba(255, 255, 255, 0.05);
    isolation: isolate;
    overflow: hidden;
}
.fm-section#travail .dec-chap .dec-chap-image::after,
.fm-section#programme .dec-chap .dec-chap-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(14, 8, 5, 0.10) 0%,
        rgba(14, 8, 5, 0.40) 60%,
        rgba(14, 8, 5, 0.85) 100%);
    pointer-events: none;
    z-index: 1;
}
.fm-section#travail .dec-chap .dec-chap-image img,
.fm-section#programme .dec-chap .dec-chap-image img {
    filter: grayscale(0.15) contrast(1.05);
    transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.fm-section#travail .dec-chap:hover .dec-chap-image img,
.fm-section#programme .dec-chap:hover .dec-chap-image img {
    transform: scale(1.04);
}

/* — Numéro (stroked outline) — */
.fm-section#travail .dec-chap .dec-chap-num,
.fm-section#programme .dec-chap .dec-chap-num {
    top: 28px;
    left: 28px;
    z-index: 2;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(64px, 7vw, 100px);
    line-height: 0.85;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255, 138, 58, 0.85);
    letter-spacing: 0.02em;
    background: none;
    padding: 0;
    border: 0;
    text-shadow: none;
}
.fm-section#travail .dec-chap.is-final .dec-chap-num,
.fm-section#programme .dec-chap.is-final .dec-chap-num {
    color: #ffb079;
    -webkit-text-stroke: 0;
}

/* — Pill durée / mois (équivalent ce-chapter-time) — */
.fm-section#travail .dec-chap .dec-chap-image-tag,
.fm-section#programme .dec-chap .dec-chap-image-tag {
    top: auto;
    right: auto;
    bottom: 24px;
    left: 28px;
    z-index: 2;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(14, 8, 5, 0.7);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 178, 110, 0.4);
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    letter-spacing: 0.06em;
    color: #ffb079;
}

/* — Texte — */
.fm-section#travail .dec-chap .dec-chap-text,
.fm-section#programme .dec-chap .dec-chap-text {
    padding: 12px 0;
}
.fm-section#travail .dec-chap .dec-chap-eyebrow,
.fm-section#programme .dec-chap .dec-chap-eyebrow {
    display: inline-block;
    align-self: flex-start;
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    font-size: 17px;
    color: #ffb079;
    margin-bottom: 14px;
    letter-spacing: 0.04em;
    padding: 0;
    background: none;
    border: 0;
    gap: 0;
}
.fm-section#travail .dec-chap .dec-chap-eyebrow::before,
.fm-section#programme .dec-chap .dec-chap-eyebrow::before {
    display: none;
}
.fm-section#travail .dec-chap .dec-chap-eyebrow strong,
.fm-section#programme .dec-chap .dec-chap-eyebrow strong {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 400;
    font-size: inherit;
    color: inherit;
    letter-spacing: inherit;
}
.fm-section#travail .dec-chap .dec-chap-title,
.fm-section#programme .dec-chap .dec-chap-title {
    margin: 0 0 22px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(42px, 5.6vw, 72px);
    line-height: 0.96;
    letter-spacing: 0;
}
.fm-section#travail .dec-chap .dec-chap-desc,
.fm-section#programme .dec-chap .dec-chap-desc {
    margin: 0 0 22px;
    font-family: 'Inter', sans-serif;
    font-size: clamp(15px, 1.15vw, 16.5px);
    line-height: 1.75;
    max-width: 520px;
}
.fm-section#travail .dec-chap .dec-chap-milestone,
.fm-section#programme .dec-chap .dec-chap-milestone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.10);
    background: rgba(255, 255, 255, 0.03);
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.72);
    letter-spacing: 0.06em;
}
.fm-section#travail .dec-chap .dec-chap-milestone svg,
.fm-section#programme .dec-chap .dec-chap-milestone svg {
    width: 14px;
    height: 14px;
    color: #ffb079;
}

/* Carte tarif / CTA — slide finale plein-écran */
.fm-section#travail .dec-tarif,
.fm-section#programme .dec-tarif {
    min-height: 100vh;
    min-height: 100svh;
    margin: 0 auto;
    max-width: 1080px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* Pour ancrer le bg en absolute */
    position: relative;
    isolation: isolate;
    /* Padding interne pour aérer le contenu par-dessus la photo */
    padding: 80px 32px;
    text-align: center;
    box-sizing: border-box;
}
.fm-section#travail .dec-tarif .dec-tarif-content,
.fm-section#programme .dec-tarif .dec-tarif-content {
    background: rgba(15, 8, 4, 0.72);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 122, 47, 0.22);
    border-radius: 22px;
    padding: 48px 40px;
    box-shadow: 0 32px 80px -32px rgba(0, 0, 0, 0.6);
    max-width: 560px;
    margin: 0 auto;
}

/* Quand la card tarif contient 2 formules au choix, on élargit pour
   permettre l'affichage horizontal en grand écran. */
.fm-section#programme .dec-tarif:has(.dec-tarif-formulas) .dec-tarif-content {
    max-width: 760px;
    margin: 0 auto;
}

/* Background photo plein écran + dégradé noir, identique au .fm-finale-bg */
.dec-tarif-bg {
    position: absolute;
    top: 0; bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    z-index: -1;
    overflow: hidden;
}
.dec-tarif-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    filter: brightness(0.55) saturate(1.15);
}
.dec-tarif-bg-grade {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(15, 5, 0, 0.55) 0%, rgba(15, 5, 0, 0.90) 70%, rgba(8, 2, 0, 0.98) 100%),
        linear-gradient(135deg,
            rgba(255, 122, 47, 0.16) 0%,
            transparent 40%,
            rgba(8, 2, 0, 0.6) 100%);
}
.dec-tarif-bg-grain {
    position: absolute;
    inset: 0;
    opacity: 0.16;
    mix-blend-mode: overlay;
    background-image: radial-gradient(rgba(255, 255, 255, 0.22) 1px, transparent 1px);
    background-size: 3px 3px;
    pointer-events: none;
}

@media (max-width: 980px) {
    .fm-section#travail .dec-chap,
    .fm-section#programme .dec-chap {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .fm-section#travail .dec-chap.is-reverse,
    .fm-section#programme .dec-chap.is-reverse {
        grid-template-columns: 1fr;
    }
    .fm-section#travail .dec-chap.is-reverse .dec-chap-image,
    .fm-section#programme .dec-chap.is-reverse .dec-chap-image {
        order: 0;
    }
    .fm-section#travail .dec-chap .dec-chap-image,
    .fm-section#programme .dec-chap .dec-chap-image {
        height: 56vh;
    }
}

@media (max-width: 760px) {
    .fm-section#travail .dec-chapters-head,
    .fm-section#programme .dec-chapters-head,
    .fm-section#travail .dec-chap,
    .fm-section#programme .dec-chap,
    .fm-section#travail .dec-tarif,
    .fm-section#programme .dec-tarif {
        min-height: auto;
        padding-top: 80px;
        padding-bottom: 80px;
    }
    .fm-section#travail .dec-chap .dec-chap-image,
    .fm-section#programme .dec-chap .dec-chap-image {
        height: 50vh;
    }
}

/* La slide tarif et la slide « Et après ? » sont toutes deux plein écran :
   on supprime l'espace mort entre elles (padding de section) pour qu'elles
   s'enchaînent sans rupture visuelle, comme deux vrais slides. */
.fm-section#travail:has(.dec-tarif),
.fm-section#programme:has(.dec-tarif) {
    padding-bottom: 0;
}
.fm-section.is-fullscreen#apres {
    padding-top: 0;
}
@media (max-width: 760px) {
    /* En version mobile, la slide tarif redevient un bloc “normal” :
       on rétablit un léger espacement pour aérer. */
    .fm-section#travail:has(.dec-tarif),
    .fm-section#programme:has(.dec-tarif) {
        padding-bottom: 40px;
    }
    .fm-section.is-fullscreen#apres {
        padding-top: 60px;
    }
}
