/* ==========================================================================
   MBC 2026 — Salon des Mutuelles d'Entreprises
   Design system extracted from the official mockup
   ========================================================================== */

/* ---------- 1. Fonts & CSS variables ---------- */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
    /* Brand colors */
    --navy: #0E2C5B;
    --navy-dark: #0A2148;
    --navy-deep: #061735;
    --orange: #F26B1F;
    --orange-light: #FF8A3D;
    --orange-soft: #FDEEE3;

    /* Neutrals */
    --white: #FFFFFF;
    --bg-page: #FFFFFF;
    --bg-section: #EEF1F6;     /* pale blue-grey for the "tournée terrain" section */
    --bg-soft: #F7F9FC;
    --border-soft: #E1E6EF;
    --text-heading: #0E2C5B;
    --text-body: #4A5878;
    --text-muted: #8B95A8;
    --text-on-dark: #FFFFFF;
    --text-on-dark-soft: rgba(255, 255, 255, 0.82);

    /* Typography */
    --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Spacing scale */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 48px;
    --space-8: 64px;
    --space-9: 96px;

    /* Layout */
    --container: 1200px;
    --container-wide: 1320px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --radius-pill: 999px;

    /* Shadows */
    --shadow-sm: 0 1px 2px rgba(14, 44, 91, 0.06);
    --shadow-md: 0 6px 18px rgba(14, 44, 91, 0.08);
    --shadow-lg: 0 18px 40px rgba(14, 44, 91, 0.12);
}

/* ---------- 2. Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-body);
    background: var(--bg-page);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

h1, h2, h3, h4, h5, h6 {
    margin: 0;
    color: var(--text-heading);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.01em;
}

p { margin: 0; }

/* ---------- 3. Layout primitives ---------- */
.container {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

.container-wide {
    width: 100%;
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 0 24px;
}

.section { padding: 80px 0; }
.section-tight { padding: 56px 0; }

/* Eyebrow label */
.eyebrow {
    display: inline-block;
    color: var(--orange);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.eyebrow--on-dark { color: var(--orange); }

.section-title {
    font-size: clamp(28px, 3.4vw, 40px);
    color: var(--text-heading);
    margin-bottom: 8px;
}

/* ---------- 4. Buttons ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 22px;
    border-radius: var(--radius-pill);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
    white-space: nowrap;
}

.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn--primary {
    background: var(--navy);
    color: var(--white);
}
.btn--primary:hover { background: var(--navy-dark); box-shadow: var(--shadow-md); }

.btn--orange {
    background: var(--orange);
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.btn--orange:hover { background: #DD5C12; box-shadow: var(--shadow-md); }

.btn--ghost-light {
    background: transparent;
    color: var(--white);
    border: 1.5px solid rgba(255,255,255,0.55);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.btn--ghost-light:hover { background: rgba(255,255,255,0.08); border-color: #fff; }

.btn .icon { width: 16px; height: 16px; }

/* ==========================================================================
   HEADER — Two-row layout (brand left spans both rows, CTA top-right, nav bottom-right)
   ========================================================================== */
.site-header {
    background: var(--white);
    border-bottom: 1px solid var(--border-soft);
    position: sticky;
    top: 0;
    z-index: 50;
}

.header-inner {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    grid-template-areas:
        "brand cta"
        "brand nav";
    column-gap: 32px;
    row-gap: 10px;
    padding: 14px 32px;
    max-width: var(--container-wide);
    margin: 0 auto;
    align-items: center;
}

.brand {
    grid-area: brand;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
    align-self: center;
}

.brand__logo-img {
    height: 90px;
    width: auto;
    display: block;
    flex-shrink: 0;
}

.brand__tagline {
    font-size: 11px;
    line-height: 1.4;
    color: var(--text-heading);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-left: 1px solid var(--border-soft);
    padding-left: 14px;
    white-space: nowrap;
}
.brand__tagline strong {
    display: block;
    font-weight: 800;
    margin-bottom: 2px;
}
.brand__tagline span {
    display: block;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0.02em;
    color: var(--text-body);
    font-size: 10.5px;
}

/* Row 1 right: CTA */
.header-cta {
    grid-area: cta;
    justify-self: end;
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}
.header-cta .btn {
    padding: 10px 20px;
    font-size: 12px;
}

/* Row 2 right: Nav (10 items, dont 2 sur 2 lignes) */
.main-nav {
    grid-area: nav;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 14px;
}

.main-nav a {
    position: relative;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-heading);
    letter-spacing: 0.02em;
    padding: 6px 0;
    transition: color .2s;
    text-align: center;
    line-height: 1.2;
    /* Allow line breaks for "MBC TOUR PRÉPARATOIRE" and "ESPACES & EXPÉRIENCE" */
    white-space: normal;
}
.main-nav a:hover { color: var(--orange); }

.main-nav a.is-active {
    color: var(--orange);
}
.main-nav a.is-active::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 2px;
    background: var(--orange);
    border-radius: 2px;
}

/* Hamburger for mobile */
.nav-toggle {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    grid-area: cta;
    justify-self: end;
}
.nav-toggle svg { width: 22px; height: 22px; color: var(--navy); }

/* ==========================================================================
   HERO — MBC TOUR
   ========================================================================== */
.hero-tour {
    background: var(--navy);
    color: var(--white);
    position: relative;
    overflow: hidden;
}

.hero-tour__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    min-height: 480px;
    max-width: var(--container-wide);
    margin: 0 auto;
}

.hero-tour__copy {
    padding: 70px 56px 70px 64px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero-tour__title {
    color: var(--white);
    font-size: clamp(38px, 5vw, 58px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.015em;
    margin-bottom: 14px;
}
.hero-tour__title-accent {
    display: block;
    color: var(--orange);
}

.hero-tour__subtitle {
    color: var(--white);
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 22px;
    line-height: 1.3;
}

.hero-tour__desc {
    color: var(--text-on-dark-soft);
    font-size: 14.5px;
    line-height: 1.65;
    max-width: 520px;
    margin-bottom: 36px;
}

.hero-tour__stats {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 28px;
}

.hero-stat {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.hero-stat__icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    color: var(--orange);
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-stat__icon svg { width: 32px; height: 32px; }
.hero-stat__value {
    font-size: 26px;
    font-weight: 800;
    color: var(--white);
    line-height: 1;
    margin-bottom: 4px;
}
.hero-stat__label {
    font-size: 12px;
    color: var(--text-on-dark-soft);
    line-height: 1.4;
    max-width: 130px;
}

.hero-tour__image {
    position: relative;
    background-size: cover;
    background-position: center;
    min-height: 480px;
}
.hero-tour__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ==========================================================================
   "NOS OBJECTIFS" — 5 columns of icon cards
   ========================================================================== */
.objectives {
    text-align: center;
    padding: 80px 0;
    background: var(--white);
}

.objectives__head {
    margin-bottom: 56px;
}

.objectives__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

.objective {
    text-align: center;
    padding: 16px 18px;
    position: relative;
}
.objective + .objective::before {
    content: '';
    position: absolute;
    left: 0;
    top: 18%;
    bottom: 18%;
    width: 1px;
    background: var(--border-soft);
}

.objective__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy);
}
.objective:nth-child(2) .objective__icon,
.objective:nth-child(4) .objective__icon {
    color: var(--orange);
}
.objective__icon svg { width: 44px; height: 44px; }

.objective__title {
    font-size: 14px;
    font-weight: 800;
    color: var(--text-heading);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.objective__desc {
    font-size: 13px;
    color: var(--text-body);
    line-height: 1.5;
}

/* ==========================================================================
   "NOTRE DÉROULEMENT" — 3 column layout: timeline / map / photos
   ========================================================================== */
.tour-flow {
    background: var(--bg-section);
    padding: 70px 0;
}

.tour-flow__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    align-items: start;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

.tour-flow__head .eyebrow { margin-bottom: 10px; }
.tour-flow__title {
    font-size: 30px;
    color: var(--text-heading);
    line-height: 1.15;
    margin-bottom: 30px;
}

.timeline {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.timeline-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.timeline-item__num {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--white);
    color: var(--orange);
    font-weight: 800;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-sm);
}

.timeline-item__text {
    font-size: 13.5px;
    color: var(--text-body);
    line-height: 1.5;
    padding-top: 8px;
}

.tour-flow__map {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
}
.tour-flow__map svg { width: 100%; height: auto; max-width: 320px; }

.tour-flow__photos {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.tour-flow__photos img {
    width: 100%;
    height: 110px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

/* ==========================================================================
   RESULTS + LINK SECTION — 2 column
   ========================================================================== */
.results-link {
    padding: 60px 0;
    background: var(--white);
}

.results-link__grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

.results-card {
    background: var(--navy);
    color: var(--white);
    border-radius: var(--radius-lg);
    padding: 36px 38px;
}
.results-card .eyebrow { color: var(--orange); }
.results-card__title {
    color: var(--white);
    font-size: 26px;
    margin-bottom: 30px;
    line-height: 1.2;
}

.results-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
.result-stat {
    text-align: left;
}
.result-stat__icon {
    width: 36px;
    height: 36px;
    color: var(--white);
    margin-bottom: 10px;
}
.result-stat__icon svg { width: 36px; height: 36px; }
.result-stat__value {
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 6px;
    color: var(--white);
}
.result-stat__label {
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--text-on-dark-soft);
    text-transform: lowercase;
}
.result-stat__label::first-letter { text-transform: uppercase; }

.link-card {
    background: var(--bg-soft);
    border-radius: var(--radius-lg);
    padding: 36px 38px;
    border: 1px solid var(--border-soft);
}
.link-card .eyebrow { margin-bottom: 8px; }
.link-card__title {
    font-size: 22px;
    margin-bottom: 14px;
    color: var(--text-heading);
}
.link-card__text {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--text-body);
    margin-bottom: 26px;
}
.link-card__text u { text-decoration: underline; }

.flow-diagram {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}
.flow-step {
    flex: 1;
    text-align: center;
}
.flow-step__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 10px;
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
}
.flow-step__icon svg { width: 42px; height: 42px; }
.flow-step__label {
    font-size: 11px;
    font-weight: 800;
    color: var(--text-heading);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.3;
}
.flow-step__sub {
    font-size: 10.5px;
    color: var(--text-muted);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0.02em;
    margin-top: 2px;
    display: block;
}
.flow-arrow {
    color: var(--text-muted);
    flex-shrink: 0;
    font-weight: 800;
    letter-spacing: -2px;
    font-size: 14px;
    padding-bottom: 20px;
}

/* ==========================================================================
   IMAGE CAROUSEL — "Retour en images"
   ========================================================================== */
.images-section {
    padding: 60px 0 40px;
    background: var(--white);
    text-align: center;
}

.images-section__title {
    font-size: 22px;
    font-weight: 800;
    color: var(--text-heading);
    letter-spacing: 0.04em;
    margin-bottom: 30px;
    text-transform: uppercase;
}

.carousel {
    position: relative;
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 0 60px;
}

.carousel__track {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
}

.carousel__slide {
    border-radius: var(--radius-md);
    overflow: hidden;
    aspect-ratio: 4/3;
    box-shadow: var(--shadow-sm);
}
.carousel__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--white);
    border: 1px solid var(--border-soft);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-md);
    transition: background .2s, color .2s;
}
.carousel__btn:hover { background: var(--navy); color: var(--white); }
.carousel__btn--prev { left: 8px; }
.carousel__btn--next { right: 8px; }
.carousel__btn svg { width: 18px; height: 18px; }

/* ==========================================================================
   CTA BANNER
   ========================================================================== */
.cta-banner {
    background: var(--navy);
    color: var(--white);
    padding: 26px 0;
}

.cta-banner__inner {
    display: flex;
    align-items: center;
    gap: 30px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 36px;
}

.cta-banner__icon {
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    color: var(--orange);
    display: flex;
    align-items: center;
    justify-content: center;
}
.cta-banner__icon svg { width: 56px; height: 56px; }

.cta-banner__text {
    flex: 1;
    font-size: 22px;
    font-weight: 700;
    color: var(--white);
    line-height: 1.25;
}

.cta-banner__buttons {
    display: flex;
    gap: 14px;
    flex-shrink: 0;
}

/* ==========================================================================
   HOMEPAGE — HERO
   ========================================================================== */
.hero-home {
    background: var(--navy);
    color: var(--white);
    position: relative;
    overflow: hidden;
    min-height: 480px;
}

/* Background image — fills the entire hero, positioned to the right */
.hero-home__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
    z-index: 1;
}

/* Gradient overlay — solid navy on the left, fades to transparent on the right
   so the photo blends naturally with the navy text area */
.hero-home::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        var(--navy) 0%,
        var(--navy) 28%,
        rgba(14, 44, 91, 0.92) 42%,
        rgba(14, 44, 91, 0.55) 55%,
        rgba(14, 44, 91, 0.15) 75%,
        rgba(14, 44, 91, 0) 100%
    );
    z-index: 2;
    pointer-events: none;
}

.hero-home__inner {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    min-height: 480px;
    max-width: var(--container-wide);
    margin: 0 auto;
}

.hero-home__copy {
    padding: 64px 56px 64px 64px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero-home__title {
    font-size: clamp(46px, 6.2vw, 76px);
    color: var(--white);
    font-weight: 800;
    line-height: 0.95;
    letter-spacing: -0.025em;
    margin-bottom: 20px;
    text-shadow: 0 2px 12px rgba(0,0,0,0.15);
}

.hero-home__lead {
    font-size: clamp(20px, 1.8vw, 24px);
    color: var(--white);
    line-height: 1.3;
    font-weight: 600;
    margin-bottom: 22px;
    max-width: 540px;
}
.hero-home__lead u {
    text-decoration-color: var(--orange);
    text-decoration-thickness: 2.5px;
    text-underline-offset: 4px;
}

.hero-home__bullets {
    color: rgba(255,255,255,0.88);
    font-size: 14.5px;
    font-weight: 500;
    margin-bottom: 22px;
    letter-spacing: 0.01em;
}
.hero-home__bullets .sep {
    color: var(--orange);
    margin: 0 10px;
    font-weight: 700;
}

.hero-home__info {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
    margin-bottom: 34px;
}
.hero-home__info-item {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    color: var(--white);
    font-weight: 600;
}
.hero-home__info-item svg {
    color: var(--orange);
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.hero-home__cta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

/* ==========================================================================
   HOMEPAGE — STATS BAR (floating card overlapping hero)
   ========================================================================== */
.stats-bar {
    position: relative;
    margin-top: -55px;
    z-index: 5;
    padding: 0 24px 0;
}
.stats-bar__inner {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: 0 18px 50px rgba(14, 44, 91, 0.14);
    padding: 26px 36px;
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    align-items: center;
}
.stat-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 4px 24px;
    position: relative;
}
.stat-item + .stat-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 14%;
    bottom: 14%;
    width: 1px;
    background: var(--border-soft);
}
.stat-item__icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.stat-item__icon--orange { color: var(--orange); }
.stat-item__icon--navy   { color: var(--navy); }
.stat-item__icon svg { width: 42px; height: 42px; }

.stat-item__value {
    font-size: 30px;
    font-weight: 800;
    color: var(--navy);
    line-height: 1;
    margin-bottom: 4px;
    letter-spacing: -0.01em;
}
.stat-item__label {
    font-size: 12px;
    color: var(--text-body);
    font-weight: 500;
    line-height: 1.35;
}

/* Hero badge "1ère ÉDITION" */
.hero-home__badge {
    display: inline-block;
    background: var(--orange);
    color: var(--white);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 7px 14px;
    border-radius: var(--radius-sm);
    margin-bottom: 22px;
}
.hero-home__badge sup { font-size: 0.78em; }

.text-orange { color: var(--orange); }
.hero-home__lead sup { font-size: 0.65em; }

/* Add extra space at the bottom of the hero for the stats card overlap */
.hero-home__copy { padding-bottom: 90px; }

/* ==========================================================================
   À PROPOS DU SALON
   ========================================================================== */
.about {
    padding: 80px 0 70px;
    background: var(--white);
}
.about__grid {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 60px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    align-items: center;
}
.about__photos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 12px;
    height: 440px;
}
.about-photo {
    border-radius: var(--radius-md);
    overflow: hidden;
    position: relative;
    background-size: cover;
    background-position: center;
    min-height: 0;  /* allows the photo to shrink to fit its grid cell */
}
.about-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Caption (placeholder text) is hidden by default — shows only when image fails */
.about-photo__caption {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.5);
    font-size: 11px;
    letter-spacing: 0.04em;
}
.about-photo--placeholder .about-photo__caption {
    display: flex;
}

/* Explicit grid positions — each photo placed on its own cell to prevent any layout shift */
.about-photo--tl {
    grid-column: 1;
    grid-row: 1;
    background: linear-gradient(135deg,#4a6991,#2c4670);
}
.about-photo--bl {
    grid-column: 1;
    grid-row: 2;
    background: linear-gradient(135deg,#5a7aa1,#3a5680);
}
.about-photo--r {
    grid-column: 2;
    grid-row: 1 / span 2;
    background: linear-gradient(135deg,#6a8ab1,#4a6690);
}
.about__content .eyebrow { margin-bottom: 12px; }
.about__content .section-title { margin-bottom: 22px; max-width: 480px; }
.about__text {
    font-size: 14.5px;
    color: var(--text-body);
    line-height: 1.7;
    margin-bottom: 14px;
}
.about__text strong { color: var(--text-heading); font-weight: 700; }
.about__content .btn { margin-top: 14px; }

/* ==========================================================================
   UN PROGRAMME STRATÉGIQUE
   ========================================================================== */
.programme-strategy {
    padding: 70px 0 80px;
    background: var(--white);
    text-align: center;
}
.programme-strategy .eyebrow { margin-bottom: 10px; }
.programme-strategy .section-title { margin-bottom: 50px; }
.programme-strategy__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}
.programme-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.programme-item__icon {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: var(--bg-section);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
}
.programme-item__icon svg { width: 34px; height: 34px; }
.programme-item__title {
    font-size: 14px;
    font-weight: 800;
    color: var(--navy);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.programme-item__desc {
    font-size: 13px;
    color: var(--text-body);
    line-height: 1.55;
    max-width: 200px;
}

/* ==========================================================================
   UNE EXPÉRIENCE IMMERSIVE
   ========================================================================== */
.experience {
    padding: 70px 0 80px;
    background: var(--bg-section);
    text-align: center;
}
.experience .eyebrow { margin-bottom: 10px; }
.experience .section-title { margin-bottom: 44px; }
.experience__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}
.experience-card {
    background: var(--white);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(14, 44, 91, 0.06);
    text-align: left;
    transition: transform .25s, box-shadow .25s;
}
.experience-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(14, 44, 91, 0.12);
}
.experience-card__image {
    height: 200px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #4a6991, #2c4670);
    /* Make sure the image area has no parasitic spacing */
    line-height: 0;
    font-size: 0;
}
.experience-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    /* Eliminate any inline-image baseline gap */
    vertical-align: top;
    margin: 0;
    padding: 0;
    border: 0;
}
/* Caption (placeholder text) — hidden by default, shown only when image fails */
.experience-card__caption {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.5);
    font-size: 11px;
    letter-spacing: 0.04em;
    line-height: normal;
}
.experience-card__image--placeholder .experience-card__caption {
    display: flex;
}
.experience-card__body {
    padding: 20px 22px 22px;
}
.experience-card__header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.experience-card__icon {
    width: 28px;
    height: 28px;
    color: var(--navy);
    flex-shrink: 0;
}
.experience-card__icon svg { width: 28px; height: 28px; }
.experience-card__name {
    font-size: 13.5px;
    font-weight: 800;
    color: var(--navy);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0;
}
.experience-card__desc {
    font-size: 13px;
    color: var(--text-body);
    line-height: 1.55;
    margin: 0;
}

/* ==========================================================================
   CATALOGUES BANNER
   ========================================================================== */
.catalogues-banner {
    background: var(--navy);
    padding: 44px 0;
    color: var(--white);
}
.catalogues-banner__inner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 50px;
    align-items: center;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}
.catalogues-banner__intro .eyebrow {
    color: var(--orange);
    margin-bottom: 8px;
}
.catalogues-banner__title {
    color: var(--white);
    font-size: 26px;
    line-height: 1.25;
    margin: 0;
}
.catalogues-banner__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.catalogue-card {
    border-radius: var(--radius-sm);
    padding: 22px 24px;
    color: var(--white);
}
.catalogue-card--green  { background: #2D9B5E; }
.catalogue-card--orange { background: var(--orange); }
.catalogue-card__header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.catalogue-card__icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}
.catalogue-card__icon svg { width: 32px; height: 32px; }
.catalogue-card__title {
    font-size: 13.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--white);
    margin: 0;
}
.catalogue-card__desc {
    font-size: 12.5px;
    line-height: 1.45;
    margin-bottom: 16px;
    color: rgba(255,255,255,0.95);
}
.catalogue-card__btn {
    display: inline-block;
    background: var(--white);
    color: var(--navy);
    padding: 7px 14px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    transition: transform .15s;
}
.catalogue-card__btn:hover { transform: translateY(-1px); }

/* ==========================================================================
   ILS NOUS FONT CONFIANCE
   ========================================================================== */
.trust {
    padding: 40px 0 36px;
    background: var(--white);
}
.trust .container { padding: 0 24px; }
.trust__label {
    display: block;
    text-align: center;
    color: var(--navy);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    margin-bottom: 26px;
}

/* Carrousel défilant infini */
.logos-marquee {
    width: 100%;
    overflow: hidden;
    position: relative;
    /* Fade-out edges so the loop transition is invisible */
    mask-image:
        linear-gradient(to right, transparent 0, black 80px, black calc(100% - 80px), transparent 100%);
    -webkit-mask-image:
        linear-gradient(to right, transparent 0, black 80px, black calc(100% - 80px), transparent 100%);
}
.logos-marquee__track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: logos-scroll 40s linear infinite;
}
.logos-marquee:hover .logos-marquee__track {
    animation-play-state: paused;
}

.logos-marquee__item {
    flex-shrink: 0;
    width: 180px;
    height: 90px;
    margin: 0 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Subtle gray-out + saturation drop for a unified look; remove if logos must be in full color */
    filter: grayscale(20%);
    opacity: 0.92;
    transition: filter .25s, opacity .25s, transform .25s;
}
.logos-marquee__item:hover {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.05);
}
.logos-marquee__item img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

@keyframes logos-scroll {
    from { transform: translateX(0); }
    /* -50% car on a dupliqué 2x les logos : on défile sur exactement une copie complète */
    to   { transform: translateX(-50%); }
}

/* Respect user reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
    .logos-marquee__track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
    }
}

/* ==========================================================================
   PAGE — LE SALON
   ========================================================================== */

/* HERO */
.salon-hero {
    padding: 50px 0 70px;
    background: var(--white);
}
.salon-hero__inner {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 60px;
    align-items: center;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}
.salon-hero__title {
    color: var(--navy);
    font-size: clamp(46px, 5.5vw, 64px);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 16px;
    line-height: 1;
}
.salon-hero__subtitle {
    color: var(--navy);
    font-size: clamp(18px, 1.6vw, 22px);
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 24px;
    border-top: 3px solid var(--orange);
    padding-top: 16px;
    max-width: 460px;
}
.salon-hero__text {
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--text-body);
    margin-bottom: 14px;
    max-width: 520px;
}
.salon-hero__text strong { color: var(--text-heading); font-weight: 700; }

.salon-hero__photos {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 16px;
    height: 420px;
}
.salon-hero__photo {
    border-radius: var(--radius-md);
    overflow: hidden;
    position: relative;
    background: linear-gradient(135deg, #4a6991, #2c4670);
    line-height: 0;
    font-size: 0;
}
.salon-hero__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    vertical-align: top;
}
.salon-hero__photo-caption {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.5);
    font-size: 11px;
    letter-spacing: 0.04em;
    line-height: normal;
}
.salon-hero__photo--empty .salon-hero__photo-caption {
    display: flex;
}

/* VISION / AMBITION / MISSION */
.vam {
    padding: 30px 0 60px;
    background: var(--white);
}
.vam__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}
.vam-card {
    border-radius: var(--radius-md);
    padding: 32px 28px 30px;
    text-align: center;
    color: var(--white);
    box-shadow: 0 6px 20px rgba(14, 44, 91, 0.08);
}
.vam-card--orange { background: var(--orange); }
.vam-card--navy   { background: var(--navy); }

.vam-card__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 18px;
    color: var(--white);
    opacity: 0.95;
}
.vam-card__icon svg { width: 56px; height: 56px; display: block; }

.vam-card__title {
    color: var(--white);
    font-size: 17px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 14px;
}
.vam-card__text {
    color: rgba(255,255,255,0.92);
    font-size: 13.5px;
    line-height: 1.55;
}

/* POURQUOI CE SALON ? */
.why-salon {
    background: var(--navy);
    color: var(--white);
    padding: 50px 0 60px;
}
.why-salon__title {
    color: var(--orange);
    text-align: center;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.18em;
    margin-bottom: 36px;
}
.why-salon__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 50px;
    row-gap: 18px;
    max-width: 980px;
    margin: 0 auto;
}
.why-salon__item {
    display: flex;
    align-items: center;
    gap: 14px;
    color: var(--white);
    font-size: 14.5px;
    font-weight: 500;
}
.why-salon__bullet {
    width: 8px;
    height: 8px;
    background: var(--orange);
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 4px rgba(242, 107, 31, 0.18);
}

/* Responsive — Le Salon */
@media (max-width: 1100px) {
    .salon-hero__inner { grid-template-columns: 1fr; gap: 40px; }
    .salon-hero__photos { height: 380px; max-width: 600px; margin: 0 auto; }
    .vam__grid { gap: 14px; }
    .why-salon__grid { grid-template-columns: 1fr 1fr; max-width: 700px; }
}
@media (max-width: 800px) {
    .salon-hero { padding: 36px 0 50px; }
    .salon-hero__photos { grid-template-rows: 220px 220px; height: auto; }
    .vam__grid { grid-template-columns: 1fr; }
    .why-salon__grid { grid-template-columns: 1fr; }
}



/* ==========================================================================
   PAGE — PROGRAMME (4 espaces × 2 jours)
   ========================================================================== */
.programme {
    padding: 56px 0 30px;
    background: var(--white);
}
.programme__head {
    text-align: center;
    margin-bottom: 32px;
}
.programme__title {
    font-size: clamp(28px, 3.2vw, 38px);
    color: var(--navy);
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
}
.programme__subtitle {
    font-size: 17px;
    color: var(--text-body);
    font-weight: 500;
}

/* Niveau 1 — onglets espaces (pill style centered) */
.programme-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 30px;
}
.programme-tab {
    padding: 12px 22px;
    border-radius: var(--radius-pill);
    background: var(--bg-section);
    color: var(--navy);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: background .2s, color .2s, transform .2s;
}
.programme-tab:hover {
    background: rgba(14, 44, 91, 0.1);
    transform: translateY(-1px);
}
.programme-tab.is-active {
    background: var(--navy);
    color: var(--white);
}

/* Espaces (Niveau 1 content) */
.programme-space { display: none; }
.programme-space.is-active { display: block; }

/* Niveau 2 — sélecteur jours */
.day-switch {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 22px;
}
.day-btn {
    background: var(--white);
    border: 2px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 12px 22px;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s, transform .2s, background .2s, color .2s;
    min-width: 200px;
}
.day-btn:hover {
    border-color: var(--orange);
    transform: translateY(-1px);
}
.day-btn.is-active {
    background: var(--navy);
    border-color: var(--navy);
    color: var(--white);
}
.day-btn__num {
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--navy);
}
.day-btn.is-active .day-btn__num { color: var(--orange); }
.day-btn__date {
    display: block;
    font-size: 12px;
    font-weight: 500;
    margin-top: 4px;
    color: var(--text-muted);
}
.day-btn.is-active .day-btn__date { color: rgba(255,255,255,0.9); }

.day-content { display: none; }
.day-content.is-active { display: block; }

/* Bannière "Programme identique J1 & J2" */
.identical-days {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 14px 20px;
    background: rgba(242, 107, 31, 0.08);
    border: 1px solid rgba(242, 107, 31, 0.25);
    border-radius: var(--radius-md);
    color: var(--navy);
    font-size: 13.5px;
    margin-bottom: 22px;
}
.identical-days svg { color: var(--orange); flex-shrink: 0; }
.identical-days strong { color: var(--navy); font-weight: 800; }

/* Bandeau de thème (au-dessus de la timeline) */
.theme-banner {
    border-radius: var(--radius-md);
    padding: 14px 24px;
    text-align: center;
    font-size: 13.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 22px;
    color: var(--white);
}
.theme-banner--orange { background: var(--orange); }
.theme-banner--navy   { background: var(--navy); }

/* ----- Timeline (lignes de programme) ----- */
.timeline {
    background: var(--white);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 40px;
}
.tl-row {
    display: grid;
    grid-template-columns: 160px 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 14px 22px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--white);
    transition: background .15s;
}
.tl-row:last-child { border-bottom: 0; }
.tl-row:hover { background: var(--bg-soft); }

.tl-row__time {
    background: var(--navy);
    color: var(--white);
    padding: 8px 12px;
    border-radius: var(--radius-sm);
    font-size: 12.5px;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}
.tl-row__title {
    color: var(--navy);
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 3px;
    letter-spacing: 0.01em;
    line-height: 1.3;
}
.tl-row__desc {
    color: var(--text-body);
    font-size: 13px;
    line-height: 1.5;
    margin: 0;
}
.tl-row__duration {
    background: var(--bg-section);
    color: var(--navy);
    padding: 6px 12px;
    border-radius: var(--radius-pill);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

/* Highlighted rows (orange ou navy plein) */
.tl-row--orange {
    background: var(--orange);
}
.tl-row--orange:hover { background: #e25f15; }
.tl-row--orange .tl-row__time {
    background: rgba(255, 255, 255, 0.18);
    color: var(--white);
}
.tl-row--orange .tl-row__title,
.tl-row--orange .tl-row__desc {
    color: var(--white);
}
.tl-row--orange .tl-row__duration {
    background: rgba(255, 255, 255, 0.18);
    color: var(--white);
}

.tl-row--navy {
    background: rgba(14, 44, 91, 0.05);
}
.tl-row--navy .tl-row__title { color: var(--navy); }

/* État "à venir" pour les jours non encore documentés */
.programme-coming-soon {
    background: var(--bg-soft);
    border: 1px dashed var(--border-soft);
    border-radius: var(--radius-md);
    padding: 50px 30px;
    text-align: center;
    color: var(--text-muted);
    margin-bottom: 40px;
}
.programme-coming-soon svg {
    color: var(--orange);
    margin-bottom: 14px;
    opacity: 0.7;
}
.programme-coming-soon p {
    font-size: 14.5px;
    line-height: 1.55;
    margin-bottom: 6px;
}
.programme-coming-soon strong { color: var(--navy); }
.programme-coming-soon__hint {
    color: var(--text-muted);
    font-size: 13px;
    margin-top: 10px !important;
}

/* ----- ESPACE CAFÉ : table à 3 colonnes (Horaires / VVIP / VIP) ----- */
.cafe-table {
    background: var(--white);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 40px;
}
.cafe-table__head {
    display: grid;
    grid-template-columns: 160px 1fr 1fr;
    background: var(--navy);
    color: var(--white);
    padding: 14px 22px;
    gap: 18px;
}
.cafe-table__col-head {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--orange);
    text-align: center;
    line-height: 1.3;
}
.cafe-table__col-sub {
    display: block;
    color: rgba(255, 255, 255, 0.9);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.04em;
    margin-top: 4px;
}

.cafe-row {
    display: grid;
    grid-template-columns: 160px 1fr 1fr;
    gap: 18px;
    padding: 14px 22px;
    align-items: center;
    border-bottom: 1px solid var(--border-soft);
    transition: background .15s;
}
.cafe-row:last-child { border-bottom: 0; }
.cafe-row:hover { background: var(--bg-soft); }

.cafe-row__time {
    background: var(--navy);
    color: var(--white);
    padding: 8px 12px;
    border-radius: var(--radius-sm);
    font-size: 12.5px;
    font-weight: 700;
    text-align: center;
}
.cafe-row__cell {
    color: var(--navy);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}
.cafe-row--merged .cafe-row__cell {
    color: var(--navy);
    font-weight: 700;
}
.cafe-row--highlight .cafe-row__cell {
    color: var(--orange);
    font-weight: 800;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.04em;
}

/* ----- Info bar ----- */
.programme-info {
    background: var(--white);
    padding: 0 0 60px;
}
.programme-info__bar {
    background: var(--bg-section);
    border-radius: var(--radius-md);
    padding: 22px 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    max-width: 1000px;
    margin: 0 auto 30px;
}
.programme-info__item {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    position: relative;
}
.programme-info__item + .programme-info__item::before {
    content: '';
    position: absolute;
    left: -12px;
    top: 18%;
    bottom: 18%;
    width: 1px;
    background: rgba(14, 44, 91, 0.15);
}
.programme-info__icon {
    width: 32px;
    height: 32px;
    color: var(--navy);
    flex-shrink: 0;
}
.programme-info__icon svg { width: 30px; height: 30px; }
.programme-info__item strong {
    display: block;
    font-size: 14px;
    color: var(--navy);
    font-weight: 800;
    line-height: 1.2;
}
.programme-info__item span {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.3;
    margin-top: 2px;
}

.programme-info__cta {
    text-align: center;
}
.programme-info__cta-hint {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 12px;
}
.btn--lg {
    padding: 16px 32px;
    font-size: 13px;
    letter-spacing: 0.08em;
}

/* ----- Responsive — Programme ----- */
@media (max-width: 1100px) {
    .programme-info__bar { flex-wrap: wrap; gap: 18px 12px; padding: 22px 24px; }
    .programme-info__item { flex: 0 0 calc(50% - 12px); }
    .programme-info__item + .programme-info__item::before { display: none; }
}
@media (max-width: 800px) {
    .tl-row {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .tl-row__time {
        justify-self: start;
        width: auto;
        max-width: 160px;
    }
    .tl-row__duration { justify-self: start; }
    .day-btn { min-width: 0; flex: 1; padding: 10px 14px; }
    .cafe-table__head { grid-template-columns: 1fr; gap: 6px; padding: 14px; }
    .cafe-row { grid-template-columns: 1fr; gap: 6px; padding: 14px; text-align: left; }
    .cafe-row__time { justify-self: start; max-width: 160px; }
    .cafe-row__cell { text-align: left; padding-left: 8px; }
    .cafe-row__cell::before { content: '◆ '; color: var(--orange); }
}
@media (max-width: 600px) {
    .programme-tabs { gap: 4px; }
    .programme-tab { padding: 10px 14px; font-size: 11px; }
    .programme-info__bar { padding: 18px; }
    .programme-info__item { flex: 0 0 100%; }
}


/* ==========================================================================
   PAGE — PARTICIPER
   ========================================================================== */
.participer {
    padding: 56px 0 70px;
    background: var(--white);
}
.participer__head {
    text-align: center;
    margin-bottom: 40px;
}
.participer__title {
    font-size: clamp(28px, 3.2vw, 38px);
    color: var(--navy);
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 14px;
}
.participer__subtitle {
    font-size: 16px;
    color: var(--text-body);
    font-weight: 500;
    max-width: 720px;
    margin: 0 auto;
}

/* 3 cartes profils */
.profile-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    margin-bottom: 70px;
}
.profile-card {
    border-radius: var(--radius-md);
    padding: 36px 32px 32px;
    color: var(--white);
    text-align: left;
    box-shadow: 0 6px 20px rgba(14, 44, 91, 0.10);
    display: flex;
    flex-direction: column;
    transition: transform .25s, box-shadow .25s;
}
.profile-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(14, 44, 91, 0.16);
}
.profile-card--navy   { background: var(--navy); }
.profile-card--orange { background: var(--orange); }
.profile-card--green  { background: #2D9B5E; }

.profile-card__title {
    color: var(--white);
    font-size: 21px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.2;
    margin-bottom: 18px;
}
.profile-card__desc {
    color: rgba(255, 255, 255, 0.92);
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 26px;
    flex: 1;
}
.profile-card__btn {
    display: inline-block;
    background: var(--white);
    color: var(--navy);
    padding: 12px 22px;
    border-radius: var(--radius-pill);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-align: center;
    align-self: flex-start;
    transition: transform .15s, box-shadow .15s;
}
.profile-card--orange .profile-card__btn { color: var(--orange); }
.profile-card--green  .profile-card__btn { color: #2D9B5E; }
.profile-card__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Comment participer ? */
.how-to {
    text-align: center;
}
.how-to__title {
    color: var(--navy);
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.12em;
    margin-bottom: 40px;
}
.how-to__steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    max-width: 900px;
    margin: 0 auto;
}
.how-step {
    text-align: center;
}
.how-step__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.85;
}
.how-step__icon svg { width: 34px; height: 34px; }
.how-step__title {
    font-size: 13px;
    color: var(--navy);
    font-weight: 600;
    line-height: 1.5;
}
.how-step__num {
    font-weight: 800;
    color: var(--navy);
    margin-right: 2px;
}

/* Responsive — Participer */
@media (max-width: 1000px) {
    .profile-cards { grid-template-columns: 1fr; max-width: 500px; margin: 0 auto 60px; }
    .how-to__steps { grid-template-columns: repeat(2, 1fr); gap: 30px 18px; }
}
@media (max-width: 500px) {
    .how-to__steps { grid-template-columns: 1fr; }
}


/* ==========================================================================
   PAGE — CATALOGUES
   ========================================================================== */
.catalogues {
    background: var(--navy);
    color: var(--white);
    padding: 60px 0 80px;
}
.catalogues__head {
    text-align: center;
    margin-bottom: 44px;
}
.catalogues__title {
    color: var(--orange);
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: 800;
    letter-spacing: 0.06em;
    margin-bottom: 14px;
}
.catalogues__subtitle {
    color: var(--white);
    font-size: clamp(15px, 1.4vw, 17px);
    font-weight: 500;
    opacity: 0.95;
}

/* 2 grandes cartes */
.catalogue-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    max-width: 980px;
    margin: 0 auto 60px;
}
.cat-card {
    border-radius: var(--radius-md);
    padding: 32px 34px 30px;
    display: flex;
    flex-direction: column;
    transition: transform .25s, box-shadow .25s;
}
.cat-card:hover { transform: translateY(-3px); }

.cat-card--green {
    background: #1F9251;
    color: var(--white);
}
.cat-card--navy {
    background: rgba(255, 255, 255, 0.04);
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.25);
}

.cat-card__icon {
    width: 56px;
    height: 56px;
    color: var(--white);
    margin-bottom: 16px;
    opacity: 0.95;
}
.cat-card__icon svg { width: 50px; height: 50px; }

.cat-card__title {
    color: var(--white);
    font-size: 22px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
    line-height: 1.15;
}
.cat-card__sub {
    color: rgba(255, 255, 255, 0.85);
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 20px;
    text-align: center;
}
.cat-card__intro {
    color: rgba(255, 255, 255, 0.95);
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 22px;
}

.cat-card__list {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
}
.cat-card__list li {
    position: relative;
    padding-left: 18px;
    margin-bottom: 9px;
    color: rgba(255, 255, 255, 0.92);
    font-size: 14px;
    line-height: 1.4;
}
.cat-card__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    width: 6px;
    height: 6px;
    background: var(--white);
    border-radius: 50%;
}
.cat-card--green .cat-card__list li::before { background: rgba(255, 255, 255, 0.85); }

.cat-card__btn {
    display: inline-block;
    background: var(--white);
    padding: 12px 22px;
    border-radius: var(--radius-pill);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-align: center;
    align-self: flex-start;
    transition: transform .15s, box-shadow .15s;
    margin-top: auto;
}
.cat-card--green .cat-card__btn { color: #1F9251; }
.cat-card--navy .cat-card__btn  { color: var(--navy); }
.cat-card__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

/* Bottom benefits bar */
.catalogues-benefits {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    padding-top: 36px;
}
.catalogues-benefits__intro {
    text-align: center;
    color: var(--white);
    font-size: 15px;
    font-weight: 500;
    margin-bottom: 32px;
    opacity: 0.95;
}
.catalogues-benefits__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    max-width: 900px;
    margin: 0 auto;
}
.benefit {
    text-align: center;
    color: var(--white);
}
.benefit__icon {
    width: 44px;
    height: 44px;
    margin: 0 auto 12px;
    color: var(--orange);
    display: flex;
    align-items: center;
    justify-content: center;
}
.benefit__icon svg { width: 32px; height: 32px; }
.benefit__title {
    color: var(--white);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

/* Responsive — Catalogues */
@media (max-width: 900px) {
    .catalogue-cards { grid-template-columns: 1fr; max-width: 500px; }
    .catalogues-benefits__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
@media (max-width: 500px) {
    .catalogues-benefits__grid { grid-template-columns: 1fr; }
    .cat-card { padding: 28px 24px; }
}




/* ==========================================================================
   PAGE — PARTENAIRES (nouvelle maquette : hero + 4 cartes + 6 avantages + 5 étapes + CTA)
   ========================================================================== */

/* Generic centered section title used across the page */
.section-title-center {
    text-align: center;
    color: var(--navy);
    font-size: clamp(20px, 2.2vw, 26px);
    font-weight: 800;
    letter-spacing: 0.05em;
    margin-bottom: 40px;
}

/* ----- HERO ----- */
.partners-hero {
    background: var(--navy);
    color: var(--white);
    position: relative;
    overflow: hidden;
    margin-bottom: 60px;
}
.partners-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
    z-index: 1;
}
.partners-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        var(--navy) 0%,
        var(--navy) 30%,
        rgba(14, 44, 91, 0.92) 45%,
        rgba(14, 44, 91, 0.55) 60%,
        rgba(14, 44, 91, 0.15) 80%,
        rgba(14, 44, 91, 0) 100%
    );
    z-index: 2;
    pointer-events: none;
}
.partners-hero__inner {
    position: relative;
    z-index: 3;
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 56px 24px 48px;
}
.partners-hero__copy {
    max-width: 600px;
}
.partners-hero__title {
    color: var(--white);
    font-size: clamp(28px, 3.4vw, 42px);
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 18px;
    letter-spacing: -0.01em;
}
.partners-hero__title .text-orange {
    color: var(--orange);
}
.partners-hero__lead {
    color: var(--white);
    font-size: clamp(15px, 1.4vw, 17px);
    font-weight: 600;
    line-height: 1.45;
    margin-bottom: 18px;
}
.partners-hero__text {
    color: rgba(255, 255, 255, 0.88);
    font-size: 14px;
    line-height: 1.65;
    margin-bottom: 28px;
}

.partners-hero__stats {
    display: flex;
    gap: 36px;
    flex-wrap: wrap;
}
.ph-stat {
    display: flex;
    align-items: center;
    gap: 12px;
}
.ph-stat__icon {
    width: 36px;
    height: 36px;
    color: var(--orange);
    flex-shrink: 0;
}
.ph-stat__icon svg { width: 30px; height: 30px; }
.ph-stat__txt strong {
    display: block;
    color: var(--white);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.2;
}
.ph-stat__txt span {
    display: block;
    color: rgba(255, 255, 255, 0.85);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    margin-top: 2px;
}


/* ----- NOS OFFRES DE PARTENARIAT (4 cartes) ----- */
.offres {
    padding: 0 0 60px;
    background: var(--white);
}
.offres__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.offre-card {
    background: var(--white);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 0 26px 24px;
    text-align: center;
    box-shadow: 0 4px 16px rgba(14, 44, 91, 0.06);
    display: flex;
    flex-direction: column;
    position: relative;
    transition: transform .25s, box-shadow .25s;
    padding-top: 60px;
}
.offre-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(14, 44, 91, 0.14);
}
/* Colored top border */
.offre-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    border-top-left-radius: var(--radius-md);
    border-top-right-radius: var(--radius-md);
}
.offre-card--navy::before   { background: var(--navy); }
.offre-card--orange::before { background: var(--orange); }
.offre-card--green::before  { background: #1F9251; }

.offre-card__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: var(--white);
}
.offre-card__icon svg { width: 28px; height: 28px; }
.offre-card__icon--navy   { background: var(--navy); }
.offre-card__icon--orange { background: var(--orange); }
.offre-card__icon--green  { background: #1F9251; }

.offre-card__name {
    color: var(--navy);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.offre-card__tagline {
    color: var(--text-muted);
    font-size: 12.5px;
    font-weight: 500;
    margin-bottom: 22px;
}
.offre-card__list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    text-align: left;
    flex: 1;
}
.offre-card__list li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 10px;
    font-size: 13px;
    color: var(--text-body);
    line-height: 1.45;
}
.offre-card__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E");
    background-size: 10px 10px;
    background-position: center;
    background-repeat: no-repeat;
}
.offre-card--navy .offre-card__list li::before   { background-color: var(--navy); }
.offre-card--orange .offre-card__list li::before { background-color: var(--orange); }
.offre-card--green .offre-card__list li::before  { background-color: #1F9251; }

.offre-card__btn {
    display: inline-block;
    padding: 12px 18px;
    border-radius: var(--radius-pill);
    color: var(--white);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: center;
    transition: transform .15s, box-shadow .15s, filter .15s;
}
.offre-card__btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
    box-shadow: 0 4px 14px rgba(14, 44, 91, 0.25);
}
.offre-card__btn--navy   { background: var(--navy); }
.offre-card__btn--orange { background: var(--orange); }
.offre-card__btn--green  { background: #1F9251; }


/* ----- LES AVANTAGES (6 icônes en ligne) ----- */
.avantages {
    background: var(--bg-soft);
    padding: 56px 0 60px;
    margin-bottom: 60px;
}
.avantages__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
}
.avantage {
    text-align: center;
}
.avantage__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 14px;
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
}
.avantage__icon svg { width: 36px; height: 36px; }
.avantage__title {
    color: var(--navy);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 10px;
    line-height: 1.3;
}
.avantage__text {
    color: var(--text-body);
    font-size: 12.5px;
    line-height: 1.55;
}


/* ----- COMMENT DEVENIR PARTENAIRE ? (5 étapes avec flèches entre) ----- */
.parcours {
    background: var(--white);
    padding: 0 0 60px;
}
.parcours__steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    position: relative;
    max-width: 1180px;
    margin: 0 auto;
}
.parcours-step {
    background: var(--white);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 32px 18px 22px;
    text-align: center;
    position: relative;
    box-shadow: 0 3px 12px rgba(14, 44, 91, 0.04);
}
/* Number badge that pokes out of the top */
.parcours-step__num {
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: var(--white);
    font-size: 16px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}
.parcours-step__num--navy   { background: var(--navy); }
.parcours-step__num--orange { background: var(--orange); }
.parcours-step__num--green  { background: #1F9251; }

.parcours-step__icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 14px;
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
}
.parcours-step__icon svg { width: 36px; height: 36px; }
.parcours-step__title {
    color: var(--navy);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 10px;
    line-height: 1.3;
}
.parcours-step__text {
    color: var(--text-body);
    font-size: 12px;
    line-height: 1.5;
}

/* Dotted arrows between steps */
.parcours-step + .parcours-step::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -16px;
    width: 16px;
    height: 2px;
    background: repeating-linear-gradient(
        to right,
        var(--border-soft) 0,
        var(--border-soft) 4px,
        transparent 4px,
        transparent 8px
    );
    transform: translateY(-50%);
}
.parcours-step + .parcours-step::after {
    content: '';
    position: absolute;
    top: 50%;
    left: -2px;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 6px solid var(--border-soft);
    transform: translateY(-50%);
}


/* ----- ILS NOUS ONT FAIT CONFIANCE + CTA NAVY ----- */
.trust-cta {
    background: var(--white);
    padding: 0 0 30px;
}
.trust-cta__grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 26px;
    align-items: stretch;
}
.trust-cta__logos {
    background: var(--white);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 22px 26px 18px;
}
.trust-cta__label {
    color: var(--navy);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    margin-bottom: 18px;
}
.trust-cta__logos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    align-items: center;
}
.trust-cta-logo {
    height: 96px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    position: relative;
    padding: 10px;
}
.trust-cta-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.trust-cta-logo__caption {
    display: none;
    color: var(--navy);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.trust-cta-logo--empty {
    background: var(--bg-soft);
    border: 1px dashed var(--border-soft);
}
.trust-cta-logo--empty .trust-cta-logo__caption {
    display: block;
}

/* CTA card navy */
.trust-cta__card {
    background: var(--navy);
    color: var(--white);
    border-radius: var(--radius-md);
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.trust-cta__card-icon {
    width: 48px;
    height: 48px;
    color: var(--orange);
    margin-bottom: 14px;
}
.trust-cta__card-icon svg { width: 40px; height: 40px; }
.trust-cta__card-text {
    color: var(--white);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: 0.02em;
    margin-bottom: 20px;
}
.trust-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--orange);
    color: var(--white);
    padding: 12px 22px;
    border-radius: var(--radius-pill);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    align-self: flex-start;
    transition: transform .15s, filter .15s, box-shadow .15s;
}
.trust-cta__btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
    box-shadow: 0 6px 16px rgba(242, 107, 31, 0.4);
}


/* ----- Responsive — Partenaires ----- */
@media (max-width: 1100px) {
    .offres__grid { grid-template-columns: repeat(2, 1fr); }
    .avantages__grid { grid-template-columns: repeat(3, 1fr); gap: 30px 20px; }
    .parcours__steps { grid-template-columns: repeat(3, 1fr); gap: 30px 18px; }
    .parcours-step + .parcours-step::before,
    .parcours-step + .parcours-step::after { display: none; }
    .trust-cta__grid { grid-template-columns: 1fr; }
    .trust-cta__logos-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
    .partners-hero__stats { gap: 20px; }
    .offres__grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
    .avantages__grid { grid-template-columns: repeat(2, 1fr); }
    .parcours__steps { grid-template-columns: 1fr; max-width: 360px; margin: 0 auto; }
    .trust-cta__logos-grid { grid-template-columns: repeat(2, 1fr); }
}



.infos {
    padding: 56px 0 70px;
    background: var(--white);
}
.infos__grid {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 40px;
    align-items: stretch;
    max-width: 1100px;
    margin: 0 auto;
}

/* Colonne gauche — blocs d'info */
.infos__col-left {
    display: flex;
    flex-direction: column;
    gap: 26px;
}
.info-block {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}
.info-block__icon {
    width: 44px;
    height: 44px;
    color: var(--orange);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.info-block__icon svg { width: 32px; height: 32px; }
.info-block__title {
    color: var(--navy);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 6px;
}
.info-block__text {
    color: var(--text-body);
    font-size: 14.5px;
    line-height: 1.55;
}

/* Colonne droite — carte + hébergement */
.infos__col-right {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.infos-map {
    flex: 1;
    min-height: 340px;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(14, 44, 91, 0.10);
    background: var(--bg-soft);
}
.infos-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Encart hébergement */
.hosting-card {
    background: var(--navy);
    color: var(--white);
    padding: 26px 28px;
    border-radius: var(--radius-md);
    box-shadow: 0 6px 18px rgba(14, 44, 91, 0.18);
}
.hosting-card__title {
    color: var(--orange);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 10px;
}
.hosting-card__text {
    color: rgba(255, 255, 255, 0.92);
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 14px;
}
.hosting-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--white);
    font-size: 13px;
    font-weight: 700;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    padding-bottom: 2px;
    transition: color .15s, border-color .15s;
}
.hosting-card__link:hover {
    color: var(--orange);
    border-color: var(--orange);
}

/* Responsive — Infos pratiques */
@media (max-width: 900px) {
    .infos__grid { grid-template-columns: 1fr; gap: 32px; }
    .infos-map { min-height: 380px; }
}


/* ==========================================================================
   PAGE — CONTACT
   ========================================================================== */
.contact {
    padding: 56px 0 70px;
    background: var(--white);
}
.contact__head {
    text-align: center;
    margin-bottom: 40px;
}
.contact__title {
    font-size: clamp(26px, 3vw, 36px);
    color: var(--navy);
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
}
.contact__subtitle {
    font-size: 15px;
    color: var(--text-body);
    font-weight: 500;
}

/* Flash messages */
.form-flash {
    max-width: 980px;
    margin: 0 auto 26px;
    padding: 14px 20px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 500;
}
.form-flash--success {
    background: #E5F5EC;
    color: #1F7A47;
    border: 1px solid #B5E2C8;
}
.form-flash svg { flex-shrink: 0; }

.contact__grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 50px;
    max-width: 1000px;
    margin: 0 auto;
    align-items: start;
}

/* Colonne gauche — canaux de contact */
.contact__channels {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
.contact-channel {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}
.contact-channel__icon {
    width: 44px;
    height: 44px;
    color: var(--orange);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.contact-channel__icon svg { width: 32px; height: 32px; }
.contact-channel__title {
    color: var(--navy);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
}
.contact-channel__link {
    display: block;
    color: var(--text-body);
    font-size: 14.5px;
    line-height: 1.55;
    transition: color .15s;
}
.contact-channel__link:hover { color: var(--orange); }

.contact-channel__socials {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}
.contact-social {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    transition: transform .15s, box-shadow .15s;
}
.contact-social:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.18);
}
.contact-social svg { width: 16px; height: 16px; }
.contact-social--fb { background: #1877F2; }
.contact-social--li { background: #0A66C2; }
.contact-social--yt { background: #FF0000; }

/* Colonne droite — formulaire */
.contact__form-wrap {
    background: var(--white);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 32px 36px;
    box-shadow: 0 6px 22px rgba(14, 44, 91, 0.06);
}

.form-row {
    margin-bottom: 18px;
}
.form-label {
    display: block;
    color: var(--navy);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-bottom: 6px;
}
.form-input,
.form-textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 14px;
    color: var(--text-heading);
    background: var(--white);
    transition: border-color .15s, box-shadow .15s;
}
.form-input:focus,
.form-textarea:focus {
    outline: 0;
    border-color: var(--orange);
    box-shadow: 0 0 0 3px rgba(242, 107, 31, 0.15);
}
.form-textarea {
    resize: vertical;
    min-height: 120px;
    line-height: 1.5;
}
.form-input.is-invalid,
.form-textarea.is-invalid {
    border-color: #D43A3A;
    box-shadow: 0 0 0 3px rgba(212, 58, 58, 0.10);
}
.form-error {
    display: block;
    color: #D43A3A;
    font-size: 12px;
    font-weight: 500;
    margin-top: 5px;
}

.contact-form__submit {
    margin-top: 8px;
    width: auto;
}

/* Responsive — Contact */
@media (max-width: 900px) {
    .contact__grid { grid-template-columns: 1fr; gap: 36px; }
    .contact__form-wrap { padding: 26px; }
}


.wa-float {
    position: fixed;
    bottom: 22px;
    right: 22px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25D366;
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(37, 211, 102, 0.45);
    z-index: 100;
    transition: transform .2s;
}
.wa-float:hover { transform: scale(1.08); }
.wa-float svg { width: 28px; height: 28px; }

/* ==========================================================================
   FOOTER — Dark navy version
   ========================================================================== */
.site-footer {
    background: var(--navy);
    color: var(--text-on-dark);
    padding: 56px 0 0;
    border-top: none;
    margin-top: 0;
}

.site-footer__inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 50px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px 40px;
}

/* Brand column */
.footer-brand__logo-img {
    height: 78px;
    width: auto;
    display: block;
    margin-bottom: 18px;
    background: var(--white);
    padding: 8px 14px;
    border-radius: 8px;
}

.footer-brand__tagline {
    color: rgba(255,255,255,0.72);
    font-size: 13px;
    line-height: 1.65;
    margin-bottom: 22px;
    max-width: 340px;
}
.footer-brand__tagline sup { font-size: 0.7em; }

.footer-social {
    display: flex;
    gap: 10px;
}
.footer-social a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, transform .2s;
}
.footer-social a:hover {
    background: var(--orange);
    transform: translateY(-2px);
}
.footer-social svg { width: 15px; height: 15px; }

/* Link columns */
.footer-col__title {
    color: var(--orange);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin-bottom: 18px;
}

.footer-col__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-col__list li {
    margin-bottom: 10px;
    font-size: 13.5px;
}
.footer-col__list a {
    color: rgba(255,255,255,0.78);
    transition: color .2s, padding-left .2s;
}
.footer-col__list a:hover {
    color: var(--orange);
    padding-left: 4px;
}
.footer-col__list--plain li {
    color: rgba(255,255,255,0.78);
}

/* Bottom bar */
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    background: var(--navy);
}
.footer-bottom__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: var(--container);
    margin: 0 auto;
    padding: 18px 24px;
    font-size: 12.5px;
    color: rgba(255,255,255,0.6);
}
.footer-bottom__links {
    display: flex;
    align-items: center;
    gap: 10px;
}
.footer-bottom__links a {
    color: rgba(255,255,255,0.6);
    transition: color .2s;
}
.footer-bottom__links a:hover { color: var(--orange); }
.footer-bottom__links .sep { opacity: 0.4; }

/* ==========================================================================
   HOMEPAGE (stub) — placeholder until the homepage mockup arrives
   ========================================================================== */
.home-stub {
    padding: 100px 0;
    text-align: center;
    background: linear-gradient(180deg, var(--white) 0%, var(--bg-section) 100%);
}
.home-stub h1 {
    font-size: 42px;
    margin-bottom: 16px;
}
.home-stub p {
    color: var(--text-body);
    max-width: 560px;
    margin: 0 auto 30px;
}
.home-stub .nav-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    max-width: 760px;
    margin: 36px auto 0;
}
.home-stub .nav-cards a {
    padding: 18px;
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--border-soft);
    font-weight: 700;
    color: var(--navy);
    transition: transform .2s, box-shadow .2s, color .2s;
}
.home-stub .nav-cards a:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    color: var(--orange);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1100px) {
    .header-inner { padding: 14px 24px; column-gap: 24px; }
    .main-nav { gap: 18px; }
    .hero-tour__copy, .hero-home__copy { padding: 50px 36px 90px; }
    .objectives__grid { grid-template-columns: repeat(3, 1fr); gap: 30px 0; }
    .objective:nth-child(3) ~ .objective::before,
    .objective:nth-child(4)::before { display: none; }
    .tour-flow__grid { grid-template-columns: 1fr 1fr; }
    .tour-flow__photos { grid-column: 1 / -1; flex-direction: row; }
    .tour-flow__photos img { flex: 1; height: 140px; }
    .results-link__grid { grid-template-columns: 1fr; }
    .carousel__track { grid-template-columns: repeat(3, 1fr); }
    .stats-bar__inner { grid-template-columns: repeat(2, 1fr); gap: 16px; padding: 22px 28px; }
    .stat-item { padding: 8px 16px; }
    .stat-item:nth-child(3)::before { display: none; }
    .about__grid { grid-template-columns: 1fr; gap: 40px; }
    .about__photos { max-width: 600px; }
    .programme-strategy__grid { grid-template-columns: repeat(3, 1fr); gap: 30px; }
    .experience__grid { grid-template-columns: repeat(2, 1fr); }
    .catalogues-banner__inner { grid-template-columns: 1fr; gap: 28px; }
    .site-footer__inner { grid-template-columns: 1fr 1fr; gap: 40px; }
    .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 800px) {
    .header-inner {
        grid-template-columns: auto auto;
        grid-template-areas: "brand toggle";
        row-gap: 0;
    }
    .nav-toggle { display: flex; grid-area: toggle; }
    .main-nav, .header-cta { display: none; }
    .main-nav.is-open {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding: 16px 0 8px;
        grid-area: nav;
        grid-column: 1 / -1;
        justify-self: stretch;
    }
    .header-cta.is-open {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding-top: 8px;
        grid-area: cta;
        grid-column: 1 / -1;
        justify-self: stretch;
    }
    .header-cta.is-open .btn { justify-content: center; }
    .header-inner.is-open {
        grid-template-areas:
            "brand toggle"
            "nav nav"
            "cta cta";
    }
    .hero-tour__inner, .hero-home__inner { grid-template-columns: 1fr; }
    .hero-tour__image, .hero-home__image { min-height: 280px; }
    .hero-tour__copy { padding: 40px 24px; }
    .hero-home__copy { padding: 40px 24px 90px; }
    .hero-tour__stats { grid-template-columns: 1fr; gap: 16px; }
    .hero-home__info { gap: 14px 22px; }
    .hero-home__cta { width: 100%; }
    .hero-home__cta .btn { flex: 1; justify-content: center; }
    .stats-bar { margin-top: -40px; }
    .stats-bar__inner { grid-template-columns: 1fr 1fr; }
    .objectives__grid { grid-template-columns: repeat(2, 1fr); }
    .objective::before { display: none; }
    .tour-flow__grid { grid-template-columns: 1fr; }
    .tour-flow__photos { flex-direction: column; }
    .results-grid { grid-template-columns: repeat(2, 1fr); }
    .flow-diagram { flex-wrap: wrap; }
    .cta-banner__inner { flex-direction: column; text-align: center; padding: 0 20px; }
    .cta-banner__text { font-size: 18px; }
    .about__photos { height: 320px; }
    .programme-strategy__grid { grid-template-columns: repeat(2, 1fr); gap: 30px 20px; }
    .programme-item:nth-child(5) { grid-column: 1 / -1; }
    .experience__grid { grid-template-columns: 1fr; }
    .catalogues-banner__cards { grid-template-columns: 1fr; }
    .site-footer__inner { grid-template-columns: 1fr; gap: 30px; }
    .footer-brand { grid-column: auto; }
    .footer-bottom__inner { flex-direction: column; gap: 8px; text-align: center; }
    .carousel__track { grid-template-columns: repeat(2, 1fr); }
    .carousel { padding: 0 40px; }
}

@media (max-width: 500px) {
    .objectives__grid { grid-template-columns: 1fr; }
    .results-grid { grid-template-columns: 1fr 1fr; }
    .stats-bar__inner { grid-template-columns: 1fr; }
    .stat-item + .stat-item::before { display: none; }
    .programme-strategy__grid { grid-template-columns: 1fr; }
    .programme-item:nth-child(5) { grid-column: auto; }
    .carousel__track { grid-template-columns: 1fr; }
}

/* ============================================================
   FIX HEADER — empêcher la nav de chevaucher le tagline
   ============================================================ */

/* Le logo s'étend sur 2 rangées mais reste centré sur lui-même */
.site-header .brand {
    align-self: stretch;       /* occupe toute la hauteur des 2 rangées */
    align-items: flex-start;   /* tagline aligné en haut, avec la ligne CTA */
    padding-top: 4px;
}

/* CTA aligné en haut (ligne 1) */
.site-header .header-cta {
    align-self: start;
}

/* Nav alignée en bas (ligne 2) — ne chevauche plus le tagline */
.site-header .main-nav {
    align-self: end;
    padding-top: 14px;
}

/* Plus d'air entre les 2 rangées */
.site-header .header-inner {
    row-gap: 16px;
    align-items: stretch;      /* override du align-items:center qui écrase tout */
}

/* ============================================================
   PAGE ESPACES & EXPÉRIENCE
   ============================================================ */

/* ---------- Eyebrow au-dessus du titre hero ---------- */
.spaces-hero__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--orange);
    margin: 0 0 14px;
}

/* ---------- Fallback fond navy quand l'image hero est absente ---------- */
.partners-hero--empty {
    background:
        radial-gradient(circle at 20% 30%, rgba(242, 107, 31, 0.18) 0, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(31, 146, 81, 0.20) 0, transparent 55%),
        linear-gradient(135deg, var(--navy-dark) 0%, var(--navy) 100%);
}

/* ---------- Section grille ---------- */
.spaces-grid-section {
    padding: 80px 0 90px;
    background: var(--bg-section);
}
.spaces-grid-section__head {
    text-align: center;
    margin-bottom: 56px;
}
.spaces-grid-section__title {
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
    color: var(--navy);
    margin: 0 0 12px;
    letter-spacing: -0.01em;
}
.spaces-grid-section__title span {
    color: #1F9251;
}
.spaces-grid-section__kicker {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: #1F9251;
    margin: 0;
}

/* ---------- Rangées ---------- */
.spaces-row {
    display: grid;
    gap: 28px;
    margin-bottom: 28px;
}
.spaces-row:last-child { margin-bottom: 0; }
.spaces-row--three { grid-template-columns: repeat(3, 1fr); }
.spaces-row--two   { grid-template-columns: repeat(2, 1fr); }

/* ---------- Carte espace (commun) ---------- */
.space-card {
    position: relative;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 6px 22px rgba(14, 44, 91, 0.08);
    padding-top: 18px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.space-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(14, 44, 91, 0.14);
}

/* Onglet numéro en haut à gauche (forme drapeau) */
.space-card__tab {
    position: absolute;
    top: 0;
    left: 24px;
    width: 56px;
    height: 36px;
    background: var(--card-color, var(--navy));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 15px;
    letter-spacing: 0.04em;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 75%, 0 100%);
}

.space-card__body {
    padding: 60px 28px 32px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Icône circulaire colorée */
.space-card__icon {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    background: var(--card-color, var(--navy));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}
.space-card__icon svg {
    width: 44px;
    height: 44px;
}

.space-card__title {
    font-size: 19px;
    font-weight: 800;
    color: var(--navy);
    line-height: 1.25;
    margin: 0 0 16px;
    letter-spacing: 0.02em;
}

.space-card__divider {
    width: 64px;
    height: 2px;
    background: var(--card-color, var(--navy));
    border-radius: 2px;
    margin-bottom: 18px;
}

.space-card__badge {
    display: inline-block;
    background: var(--card-color, var(--navy));
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.10em;
    padding: 6px 14px;
    border-radius: 4px;
    margin-bottom: 18px;
    text-transform: uppercase;
}

.space-card__text {
    font-size: 14px;
    line-height: 1.65;
    color: var(--text-body);
    margin: 0;
}

/* ---------- Cartes larges (rangée 2) — icône à gauche, texte à droite ---------- */
.space-card--wide .space-card__body--wide {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 28px;
    padding: 60px 32px 32px;
}
.space-card--wide .space-card__icon {
    flex-shrink: 0;
    margin-bottom: 0;
}
.space-card--wide .space-card__content {
    flex: 1;
    border-left: 1px solid rgba(14, 44, 91, 0.10);
    padding-left: 28px;
}
.space-card--wide .space-card__title {
    margin: 0 0 12px;
    text-align: left;
}
.space-card__text--wide {
    text-align: left;
}

/* ---------- Variantes de couleur (utilise --card-color) ---------- */
.space-card--navy   { --card-color: #0E2C5B; }
.space-card--green  { --card-color: #1F9251; }
.space-card--gold   { --card-color: #C9A227; }
.space-card--purple { --card-color: #5B2D8C; }

/* ---------- Bandeau final CTA ---------- */
.spaces-cta {
    background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy) 100%);
    color: #fff;
    padding: 56px 0;
    position: relative;
    overflow: hidden;
}
.spaces-cta::before {
    content: '';
    position: absolute;
    bottom: -40px;
    left: -40px;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(31, 146, 81, 0.30) 0%, transparent 70%);
    pointer-events: none;
}
.spaces-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}
.spaces-cta__text {
    display: flex;
    align-items: center;
    gap: 22px;
    flex: 1;
    min-width: 320px;
}
.spaces-cta__icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(31, 146, 81, 0.20);
    color: #4FCF85;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid rgba(31, 146, 81, 0.40);
}
.spaces-cta__icon svg {
    width: 28px;
    height: 28px;
}
.spaces-cta__title {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 6px;
    line-height: 1.3;
}
.spaces-cta__subtitle {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    line-height: 1.5;
}
.spaces-cta__actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
    .spaces-row--three { grid-template-columns: repeat(2, 1fr); }
    .spaces-row--two   { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .spaces-grid-section { padding: 56px 0 64px; }
    .spaces-grid-section__head { margin-bottom: 40px; }
    .spaces-row--three { grid-template-columns: 1fr; }
    .space-card--wide .space-card__body--wide {
        flex-direction: column;
        text-align: center;
        padding: 60px 24px 28px;
    }
    .space-card--wide .space-card__icon { margin-bottom: 20px; }
    .space-card--wide .space-card__content {
        border-left: none;
        padding-left: 0;
    }
    .space-card--wide .space-card__title,
    .space-card__text--wide {
        text-align: center;
    }
    .spaces-cta__inner {
        flex-direction: column;
        text-align: center;
    }
    .spaces-cta__text {
        flex-direction: column;
        text-align: center;
        min-width: 0;
    }
    .spaces-cta__actions { justify-content: center; width: 100%; }
    .spaces-cta__actions .btn { flex: 1; min-width: 0; }
}


/* ============================================================
   PAGE ACTUALITÉS — Revue de presse MBC 2026
   ============================================================ */

/* ---------- Eyebrow hero ---------- */
.news-hero__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--orange);
    margin: 0 0 14px;
}

/* ---------- Section heads ---------- */
.news-section__head {
    margin-bottom: 40px;
}
.news-section__head--center {
    text-align: center;
}
.news-section__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--orange);
    margin-bottom: 10px;
}
.news-section__title {
    font-size: clamp(28px, 3.6vw, 38px);
    font-weight: 800;
    color: var(--navy);
    margin: 0 0 12px;
    letter-spacing: -0.01em;
}
.news-section__subtitle {
    font-size: 16px;
    color: var(--text-body);
    line-height: 1.6;
    margin: 0 auto;
    max-width: 640px;
}

/* ============================================================
   ARTICLE VEDETTE
   ============================================================ */
.news-featured-section {
    padding: 80px 0 60px;
    background: var(--bg-soft);
}

.news-featured {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(14, 44, 91, 0.10);
    border: 1px solid rgba(14, 44, 91, 0.06);
}

.news-featured__media {
    background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 40px 28px;
}
.news-featured__media::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 30% 20%, rgba(242, 107, 31, 0.20) 0, transparent 50%),
        radial-gradient(circle at 70% 80%, rgba(31, 146, 81, 0.20) 0, transparent 50%);
    pointer-events: none;
}
.news-featured__media-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    color: #fff;
}
.news-featured__badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(4px);
    color: #fff;
    padding: 10px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 18px;
    border: 1px solid rgba(255, 255, 255, 0.18);
}
.news-featured__badge svg {
    width: 14px;
    height: 14px;
}
.news-featured__date {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    font-weight: 600;
}
.news-featured__date svg {
    width: 14px;
    height: 14px;
}

.news-featured__body {
    padding: 40px 44px;
}
.news-featured__title {
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 800;
    color: var(--navy);
    line-height: 1.3;
    margin: 0 0 18px;
    letter-spacing: -0.01em;
}
.news-featured__excerpt {
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-body);
    margin: 0 0 18px;
}
.news-featured__excerpt strong {
    color: var(--navy);
    font-weight: 700;
}

.news-featured__quote {
    border-left: 4px solid var(--orange);
    background: var(--bg-section);
    padding: 18px 22px;
    margin: 0 0 18px;
    font-style: italic;
    color: var(--navy-dark);
    font-size: 15px;
    line-height: 1.6;
    border-radius: 0 8px 8px 0;
}
.news-featured__quote cite {
    display: block;
    margin-top: 10px;
    font-style: normal;
    font-size: 13px;
    color: var(--orange);
    font-weight: 700;
    letter-spacing: 0.02em;
}

.news-featured__cta {
    margin-top: 8px;
}
.news-featured__cta svg {
    width: 14px;
    height: 14px;
    margin-left: 4px;
}

/* ============================================================
   GRILLE 4 CARTES
   ============================================================ */
.news-grid-section {
    padding: 60px 0 80px;
    background: var(--bg-section);
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
}

.news-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(14, 44, 91, 0.08);
    border: 1px solid rgba(14, 44, 91, 0.06);
    transition: transform .25s ease, box-shadow .25s ease;
    display: flex;
    flex-direction: column;
}
.news-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(14, 44, 91, 0.14);
}

/* Source bar avec couleur unique par média */
.news-card__source {
    padding: 14px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    font-size: 13px;
}
.news-card__source-name {
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.news-card__source-date {
    opacity: 0.85;
    font-weight: 600;
}

/* Variantes couleurs */
.news-card__source--rti         { background: linear-gradient(135deg, #C9302C 0%, #A02523 100%); }
.news-card__source--intelligent { background: linear-gradient(135deg, #1F9251 0%, #157A41 100%); }
.news-card__source--infodrome   { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%); }
.news-card__source--opera       { background: linear-gradient(135deg, #F26B1F 0%, #C9551A 100%); }

.news-card__body {
    padding: 24px 22px 22px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.news-card__title {
    font-size: 17px;
    font-weight: 800;
    color: var(--navy);
    line-height: 1.35;
    margin: 0 0 12px;
}
.news-card__excerpt {
    font-size: 14px;
    line-height: 1.65;
    color: var(--text-body);
    margin: 0 0 16px;
    flex: 1;
}
.news-card__excerpt strong {
    color: var(--navy);
    font-weight: 700;
}

.news-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 18px;
}
.news-card__tag {
    background: var(--bg-section);
    color: var(--navy);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(14, 44, 91, 0.08);
}

.news-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--orange);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
    transition: gap .2s;
}
.news-card__link:hover {
    gap: 10px;
}
.news-card__link svg {
    width: 12px;
    height: 12px;
}

/* ============================================================
   BANDEAU RESTEZ INFORMÉ
   ============================================================ */
.news-follow {
    background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy) 100%);
    color: #fff;
    padding: 60px 0;
    position: relative;
    overflow: hidden;
}
.news-follow::before {
    content: '';
    position: absolute;
    top: -60px;
    right: -60px;
    width: 240px;
    height: 240px;
    background: radial-gradient(circle, rgba(242, 107, 31, 0.20) 0%, transparent 70%);
    pointer-events: none;
}
.news-follow__inner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 50px;
    align-items: center;
    position: relative;
    z-index: 1;
}
.news-follow__title {
    font-size: clamp(24px, 2.6vw, 30px);
    font-weight: 800;
    margin: 0 0 14px;
    line-height: 1.2;
}
.news-follow__subtitle {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    line-height: 1.6;
}

.news-follow__socials {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.news-social {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 12px;
    padding: 20px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: #fff;
    text-decoration: none;
    text-align: center;
    transition: background .25s, transform .25s, border-color .25s;
}
.news-social:hover {
    transform: translateY(-3px);
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.28);
}
.news-social svg {
    width: 32px;
    height: 32px;
}
.news-social span {
    display: block;
    line-height: 1.3;
}
.news-social span strong {
    display: block;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.news-social span em {
    display: block;
    font-style: normal;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.70);
    font-weight: 500;
    margin-top: 3px;
}
.news-social--facebook svg { color: #4267B2; }
.news-social--linkedin svg { color: #0A66C2; }
.news-social--youtube  svg { color: #FF0000; }

/* ============================================================
   CTA BOTTOM
   ============================================================ */
.news-cta-bottom {
    padding: 70px 0;
    background: var(--bg-soft);
    text-align: center;
}
.news-cta-bottom__inner {
    max-width: 720px;
    text-align: center;
}
.news-cta-bottom__title {
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 800;
    color: var(--navy);
    margin: 0 0 14px;
    line-height: 1.3;
}
.news-cta-bottom__text {
    font-size: 15px;
    color: var(--text-body);
    line-height: 1.65;
    margin: 0 0 28px;
}
.news-cta-bottom__actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
    .news-featured {
        grid-template-columns: 1fr;
    }
    .news-featured__media {
        padding: 28px 24px;
    }
    .news-featured__body {
        padding: 32px 28px;
    }
    .news-grid {
        grid-template-columns: 1fr;
    }
    .news-follow__inner {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
    }
    .news-follow__socials {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 560px) {
    .news-featured-section { padding: 56px 0 40px; }
    .news-grid-section { padding: 40px 0 56px; }
    .news-follow__socials {
        grid-template-columns: 1fr;
    }
    .news-cta-bottom__actions .btn {
        width: 100%;
        justify-content: center;
    }
}



/* ============================================================
   HOME — Programme stratégique : variantes pour 2 sections
   ============================================================ */

/* Variante "alt" pour Section 2 (fond légèrement différent + accent vert) */
.programme-strategy--alt {
    background: var(--bg-section);
    padding-top: 80px;
    padding-bottom: 80px;
    margin-top: 0;
}

/* Eyebrow vert pour différencier Section 2 */
.eyebrow--green {
    color: #1F9251 !important;
}

/* Grilles : 4 et 3 colonnes (override de la grille 5-col existante) */
.programme-strategy__grid--four,
.programme-strategy__grid--three {
    display: grid;
    gap: 24px;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}
.programme-strategy__grid--four  { grid-template-columns: repeat(4, 1fr); }
.programme-strategy__grid--three { grid-template-columns: repeat(3, 1fr); max-width: 980px; }

/* Carte cliquable (transformée en <button>) */
.programme-strategy__grid .programme-item {
    background: #fff;
    border: 1px solid rgba(14, 44, 91, 0.06);
    font: inherit;
    color: inherit;
    text-align: center;
    cursor: pointer;
    width: 100%;
    padding: 28px 22px 26px;
    border-radius: 16px;
    box-shadow: 0 4px 14px rgba(14, 44, 91, 0.05);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.programme-strategy__grid .programme-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(14, 44, 91, 0.12);
    border-color: rgba(242, 107, 31, 0.30);
}
.programme-strategy__grid .programme-item:focus-visible {
    outline: 3px solid var(--orange);
    outline-offset: 3px;
}

/* Hover sur l'icône : passe en orange */
.programme-strategy__grid .programme-item:hover .programme-item__icon {
    background: var(--orange);
    color: #fff;
    transform: scale(1.05);
}
.programme-strategy__grid .programme-item .programme-item__icon {
    transition: background .25s, color .25s, transform .25s;
}

/* Variante "alt" sur Section 2 : hover en vert */
.programme-item--alt:hover .programme-item__icon {
    background: #1F9251 !important;
}
.programme-item--alt:hover {
    border-color: rgba(31, 146, 81, 0.30) !important;
}

/* Lien "En savoir plus" */
.programme-item__more {
    margin-top: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: var(--orange);
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .25s, transform .25s;
}
.programme-strategy__grid .programme-item:hover .programme-item__more,
.programme-strategy__grid .programme-item:focus-visible .programme-item__more {
    opacity: 1;
    transform: translateY(0);
}
.programme-item--alt .programme-item__more {
    color: #1F9251;
}

/* Responsive */
@media (max-width: 980px) {
    .programme-strategy__grid--four  { grid-template-columns: repeat(2, 1fr); }
    .programme-strategy__grid--three { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
    .programme-strategy__grid--four,
    .programme-strategy__grid--three {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}


/* ============================================================
   MODALS — Centré classique + animations
   ============================================================ */

.modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.modal[hidden] {
    display: none !important;
}

.modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 33, 72, 0.72);
    backdrop-filter: blur(4px);
    cursor: pointer;
    animation: modalOverlayIn .2s ease-out;
}

.modal__dialog {
    position: relative;
    background: #fff;
    border-radius: 18px;
    width: 100%;
    max-width: 640px;
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.30);
    animation: modalDialogIn .3s cubic-bezier(0.16, 1, 0.3, 1);
    cursor: default;
}

.modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--bg-section);
    border: none;
    color: var(--navy);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, color .2s, transform .2s;
    z-index: 2;
}
.modal__close:hover {
    background: var(--orange);
    color: #fff;
    transform: rotate(90deg);
}
.modal__close svg {
    width: 18px;
    height: 18px;
}

.modal__header {
    padding: 36px 40px 20px;
    border-bottom: 1px solid rgba(14, 44, 91, 0.08);
}
.modal__tag {
    display: inline-block;
    background: var(--navy);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.10em;
    padding: 5px 12px;
    border-radius: 4px;
    margin-bottom: 14px;
}
.modal__tag--green {
    background: #1F9251;
}
.modal__title {
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 800;
    color: var(--navy);
    margin: 0;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.modal__body {
    padding: 24px 40px 28px;
}
.modal__body p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-body);
    margin: 0 0 16px;
}
.modal__body p:last-child {
    margin-bottom: 0;
}
.modal__body strong {
    color: var(--navy);
    font-weight: 700;
}

.modal__footer {
    padding: 20px 40px 32px;
    border-top: 1px solid rgba(14, 44, 91, 0.08);
    background: var(--bg-soft);
    border-radius: 0 0 18px 18px;
}
.modal__footer .btn {
    width: 100%;
    justify-content: center;
}

/* Body class quand un modal est ouvert (bloque scroll) */
body.modal-open {
    overflow: hidden;
}

@keyframes modalOverlayIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes modalDialogIn {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 560px) {
    .modal { padding: 12px; }
    .modal__header  { padding: 28px 24px 16px; }
    .modal__body    { padding: 20px 24px 24px; }
    .modal__footer  { padding: 16px 24px 24px; }
    .modal__dialog  { max-height: calc(100vh - 24px); }
}


/* ============================================================
   FIX MBC TOUR — Image hero + fallback gradient
   ============================================================ */
.hero-tour__image {
    overflow: hidden;
    background: linear-gradient(135deg, #1a3a6f 0%, var(--navy-dark) 100%);
}
.hero-tour__image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.hero-tour__image-fallback {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.35);
    font-size: 13px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    text-align: center;
    padding: 20px;
}
/* Quand l'image n'a pas pu charger, on affiche le fallback */
.hero-tour__image--empty .hero-tour__image-fallback {
    display: flex;
}
.hero-tour__image--empty {
    background:
        radial-gradient(circle at 30% 30%, rgba(242, 107, 31, 0.18) 0, transparent 50%),
        radial-gradient(circle at 70% 70%, rgba(31, 146, 81, 0.18) 0, transparent 50%),
        linear-gradient(135deg, #1a3a6f 0%, var(--navy-dark) 100%);
}

/* ==========================================================================
   VIDÉO DE LANCEMENT — lecteur à gauche, texte à droite
   ========================================================================== */
.video-launch { padding: 70px 0 80px; background: var(--white); }
.video-launch__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 56px; align-items: center; }
.video-launch__player { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--navy-deep); box-shadow: var(--shadow-lg); aspect-ratio: 16 / 9; }
.video-launch__video { display: block; width: 100%; height: 100%; object-fit: cover; }
.video-launch__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 76px; height: 76px; border-radius: var(--radius-pill); background: rgba(255,255,255,0.92); color: var(--navy); display: grid; place-items: center; transition: transform .2s ease, background .2s ease, opacity .25s ease, visibility .25s ease; box-shadow: var(--shadow-lg); }
.video-launch__play svg { width: 34px; height: 34px; margin-left: 4px; }
.video-launch__play:hover { transform: translate(-50%, -50%) scale(1.06); background: var(--white); }
.video-launch__play.is-hidden { opacity: 0; visibility: hidden; }
.video-launch__copy .eyebrow { margin-bottom: 12px; }
.video-launch__copy .section-title { margin-bottom: 22px; max-width: 460px; }
.video-launch__text { margin-bottom: 32px; color: var(--text-body); line-height: 1.7; font-size: 16px; max-width: 460px; }
.video-launch__text strong { color: var(--text-heading); }
@media (max-width: 900px) {
    .video-launch { padding: 48px 0 56px; }
    .video-launch__grid { grid-template-columns: 1fr; gap: 32px; }
    .video-launch__copy .section-title, .video-launch__text { max-width: none; }
    .video-launch__play { width: 64px; height: 64px; }
    .video-launch__play svg { width: 28px; height: 28px; }
}

/* ==========================================================================
   CONDITIONS D'ACCÈS & BADGES — section intégrée à la page Espaces
   ========================================================================== */
.badges-page {
    padding: 16px 0 80px;
}
.badges-layout {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 48px;
    align-items: start;
}

/* ---------- Sidebar infos pratiques ---------- */
.info-rail {
    display: flex;
    flex-direction: column;
    gap: 28px;
    position: sticky;
    top: 100px;
}
.info-rail__item { display: flex; gap: 14px; align-items: flex-start; }
.info-rail__icon {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    color: var(--orange);
}
.info-rail__icon svg { width: 100%; height: 100%; }
.info-rail__label {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-heading);
    margin: 0 0 3px;
}
.info-rail__value {
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-body);
    margin: 0;
}

/* ---------- En-tête : titre + intro + visuel SVG ---------- */
.badges-head {
    display: grid;
    grid-template-columns: 1fr 0.95fr;
    gap: 40px;
    align-items: center;
    margin-bottom: 48px;
}
.badges-head__title {
    font-size: clamp(28px, 3.4vw, 40px);
    color: var(--text-heading);
    line-height: 1.1;
    margin: 0;
}
.badges-head__rule {
    display: block;
    width: 56px;
    height: 4px;
    border-radius: 2px;
    background: var(--orange);
    margin: 18px 0 20px;
}
.badges-head__intro {
    font-size: 16px;
    line-height: 1.65;
    color: var(--text-body);
    max-width: 420px;
}
.badges-head__media svg { width: 100%; height: auto; display: block; }

/* ---------- Grille des 3 cartes catégories ---------- */
.access-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 40px;
}
.access-card {
    --ac-color: var(--navy);
    background: var(--white);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-sm);
}
.access-card--red    { --ac-color: #E0322B; --ac-soft: #FDECEC; }
.access-card--gold   { --ac-color: #E8A317; --ac-soft: #FEF6E6; }
.access-card--green  { --ac-color: #1F9251; --ac-soft: #E9F5EF; }

.access-card__head {
    background: var(--ac-soft);
    padding: 26px 24px 22px;
    text-align: center;
    border-bottom: 1px solid var(--border-soft);
}
.access-card__badge-icon {
    display: inline-grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: var(--radius-pill);
    background: var(--ac-color);
    color: #fff;
    margin-bottom: 14px;
}
.access-card__badge-icon svg { width: 28px; height: 28px; }
.access-card__title {
    font-size: 19px;
    line-height: 1.2;
    color: var(--ac-color);
    margin: 0 0 12px;
    text-transform: uppercase;
}
.access-card__count {
    display: inline-block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-heading);
    line-height: 1.4;
    margin: 0;
}

.access-card__section { padding: 20px 24px; }
.access-card__section--bordered { border-top: 1px solid var(--border-soft); }
.access-card__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.access-card__subtitle {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--ac-color);
    margin: 0 0 12px;
}
.access-card__section-head .access-card__subtitle { margin-bottom: 0; }
.access-card__list { list-style: none; margin: 12px 0 0; padding: 0; }
.access-card__list li {
    position: relative;
    padding-left: 16px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-body);
    margin-bottom: 7px;
}
.access-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ac-color);
}
.access-card__list-sub { color: var(--text-muted); font-size: 13px; }

.access-card__pictogram {
    flex-shrink: 0;
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-pill);
    color: #fff;
}
.access-card__pictogram svg { width: 22px; height: 22px; }
.access-card__pictogram--red    { background: #E0322B; }
.access-card__pictogram--gold   { background: #E8A317; }
.access-card__pictogram--green  { background: #1F9251; }
.access-card__pictogram--orange { background: var(--orange); }

.access-card__note {
    margin: auto 24px 24px;
    padding: 14px 16px;
    border-radius: var(--radius-md);
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-body);
    background: var(--ac-soft);
}
.access-card__note strong { color: var(--text-heading); }

/* ---------- Mini badges (SVG/CSS) ---------- */
.badge-mini-row { display: flex; gap: 8px; margin-top: 16px; }
.badge-mini {
    position: relative;
    width: 26px;
    height: 36px;
    border-radius: 5px;
    background: var(--bm-color, var(--navy));
    flex-shrink: 0;
}
.badge-mini::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    height: 8px;
    border: 2px solid var(--bm-color, var(--navy));
    border-bottom: none;
    border-radius: 4px 4px 0 0;
}
.badge-mini::after {
    content: "";
    position: absolute;
    top: 7px;
    left: 50%;
    transform: translateX(-50%);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
}
.badge-mini--red    { --bm-color: #E0322B; }
.badge-mini--gold   { --bm-color: #E8A317; }
.badge-mini--green  { --bm-color: #1F9251; }
.badge-mini--orange { --bm-color: var(--orange); }
.badge-mini--navy   { --bm-color: var(--navy); }

/* ---------- Rangée : visiteurs pros + parrainage ---------- */
.badges-extra {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 28px;
}

.visitor-block {
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%);
    color: #fff;
    border-radius: var(--radius-lg);
    padding: 28px;
}
.visitor-block__head { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.visitor-block__icon {
    flex-shrink: 0;
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}
.visitor-block__icon svg { width: 26px; height: 26px; }
.visitor-block__title { color: #fff; font-size: 20px; margin: 0 0 2px; }
.visitor-block__subtitle { color: var(--text-on-dark-soft); font-size: 14px; margin: 0; }
.visitor-block__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.visitor-card {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--radius-md);
    padding: 18px;
    display: flex;
    gap: 14px;
}
.visitor-card__badge { margin-top: 4px; }
.badge-mini--vip {
    display: grid;
    place-items: center;
    font-size: 7px;
    font-weight: 800;
    color: #fff;
    letter-spacing: 0.02em;
}
.badge-mini--vip::after { display: none; }
.visitor-card__name { font-size: 14px; font-weight: 800; color: #fff; line-height: 1.3; margin: 0 0 10px; }
.visitor-card__access-label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--orange-light);
    margin: 0 0 6px;
}
.visitor-card__list { list-style: none; margin: 0; padding: 0; }
.visitor-card__list li {
    position: relative;
    padding-left: 14px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--text-on-dark-soft);
    margin-bottom: 4px;
}
.visitor-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--orange-light);
}

.sponsor-block {
    background: var(--orange-soft);
    border-radius: var(--radius-lg);
    padding: 28px;
}
.sponsor-block__head { display: flex; gap: 16px; margin-bottom: 20px; }
.sponsor-block__icon {
    flex-shrink: 0;
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: var(--radius-pill);
    background: var(--orange);
    color: #fff;
}
.sponsor-block__icon svg { width: 26px; height: 26px; }
.sponsor-block__title { font-size: 20px; color: var(--text-heading); margin: 0 0 8px; }
.sponsor-block__text { font-size: 14px; line-height: 1.6; color: var(--text-body); margin: 0; }
.sponsor-block__advantage {
    display: flex;
    gap: 16px;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(242, 107, 31, 0.18);
    border-radius: var(--radius-md);
    padding: 20px;
}
.sponsor-block__tag-icon { flex-shrink: 0; color: var(--orange); width: 26px; height: 26px; }
.sponsor-block__tag-icon svg { width: 100%; height: 100%; }
.sponsor-block__advantage-title {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--orange);
    margin: 0 0 6px;
}
.sponsor-block__advantage-lead { font-size: 14px; color: var(--text-body); margin: 0 0 4px; }
.sponsor-block__advantage-figure {
    font-size: 26px;
    font-weight: 800;
    color: var(--text-heading);
    line-height: 1.1;
    margin: 0 0 4px;
}
.sponsor-block__advantage-note { font-size: 14px; color: var(--text-body); margin: 0; }

/* ---------- Bandeau badges non nominatifs ---------- */
.non-nominatif {
    display: flex;
    align-items: center;
    gap: 24px;
    background: var(--bg-soft);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 28px 32px;
}
.non-nominatif__icon {
    flex-shrink: 0;
    display: inline-grid;
    place-items: center;
    width: 60px;
    height: 60px;
    border-radius: var(--radius-pill);
    background: var(--navy);
    color: #fff;
}
.non-nominatif__icon svg { width: 28px; height: 28px; }
.non-nominatif__body { flex: 1; }
.non-nominatif__title { font-size: 20px; color: var(--text-heading); margin: 0 0 8px; }
.non-nominatif__text { font-size: 14px; line-height: 1.65; color: var(--text-body); margin: 0; max-width: 620px; }
.non-nominatif__deco { flex-shrink: 0; color: var(--navy); opacity: 0.25; width: 72px; height: 72px; }
.non-nominatif__deco svg { width: 100%; height: 100%; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
    .badges-layout { grid-template-columns: 1fr; gap: 32px; }
    .info-rail {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 20px 32px;
    }
    .info-rail__item { flex: 1 1 200px; }
}
@media (max-width: 900px) {
    .badges-head { grid-template-columns: 1fr; }
    .badges-head__media { order: -1; max-width: 480px; }
    .access-grid { grid-template-columns: 1fr; }
    .badges-extra { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .visitor-block__cards { grid-template-columns: 1fr; }
    .non-nominatif { flex-direction: column; text-align: center; }
    .non-nominatif__deco { display: none; }
}

/* ==========================================================================
   INSCRIPTION DES MUTUELLES & ASSOCIATIONS — formulaire
   ========================================================================== */
.container--narrow { max-width: 820px; }

.register { padding: 56px 0 80px; background: var(--bg-soft); }
.register__head { text-align: center; margin-bottom: 36px; }
.register__title {
    font-size: clamp(26px, 3.2vw, 38px);
    color: var(--text-heading);
    margin: 10px 0 14px;
}
.register__subtitle {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-body);
    max-width: 560px;
    margin: 0 auto;
}
.req { color: var(--orange); font-weight: 700; }

/* Flash messages */
.form-flash--error {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #FDECEC;
    color: #B42318;
    border: 1px solid #F5C2C0;
    border-radius: var(--radius-md);
    padding: 14px 18px;
    margin-bottom: 24px;
    font-size: 14px;
    font-weight: 600;
}

/* Sections (fieldset) */
.register-form { display: flex; flex-direction: column; gap: 28px; }
.reg-section {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--white);
    padding: 0;
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(14, 44, 91, 0.06);
}
.reg-section__legend {
    display: block;
    width: 100%;
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 16px 28px;
    box-sizing: border-box;
}
.reg-section__body { padding: 26px 28px 28px; }

.reg-subhead {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--orange);
    margin: 0 0 14px;
}
.reg-subhead--spaced { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--border-soft); }

/* Grille 2 colonnes pour téléphone + email/fonction */
.form-grid { display: grid; gap: 0 22px; }
.form-grid--2 { grid-template-columns: 1fr 1fr; }

/* Cases à cocher (mode de cotisation) */
.check-group { display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
.check-group.is-invalid { padding: 10px 12px; border: 1px solid #D43A3A; border-radius: var(--radius-sm); }
.check-option {
    display: flex;
    align-items: center;
    gap: 11px;
    cursor: pointer;
    font-size: 14px;
    color: var(--text-heading);
    user-select: none;
}
.check-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.check-option__box {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-soft);
    border-radius: 5px;
    background: var(--white);
    position: relative;
    transition: border-color .15s, background .15s;
}
.check-option__box::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg) scale(0);
    transition: transform .15s ease;
}
.check-option input:checked + .check-option__box {
    background: var(--orange);
    border-color: var(--orange);
}
.check-option input:checked + .check-option__box::after { transform: rotate(45deg) scale(1); }
.check-option input:focus-visible + .check-option__box {
    box-shadow: 0 0 0 3px rgba(242, 107, 31, 0.25);
}

/* Actions */
.register-form__actions {
    text-align: center;
    margin-top: 4px;
}
.register-form__actions .btn { width: 100%; max-width: 360px; padding: 14px 22px; }
.register-form__note {
    margin: 16px auto 0;
    font-size: 13px;
    color: var(--text-muted);
    max-width: 460px;
    line-height: 1.5;
}

/* Responsive */
@media (max-width: 640px) {
    .form-grid--2 { grid-template-columns: 1fr; }
    .reg-section__body { padding: 22px 20px 24px; }
    .reg-section__legend { padding: 14px 20px; }
}

/* ==========================================================================
   INSCRIPTION — Sélecteur de profil (3 cartes radio)
   ========================================================================== */
.profile-switch {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 8px;
}
.profile-switch.is-invalid {
    padding: 10px;
    border: 1px solid #D43A3A;
    border-radius: var(--radius-sm);
}
.profile-switch__option { cursor: pointer; }
.profile-switch__option input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.profile-switch__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
    padding: 20px 14px;
    border: 2px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--white);
    transition: border-color .15s, background .15s, box-shadow .15s, transform .15s;
    height: 100%;
}
.profile-switch__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-pill);
    background: var(--bg-soft);
    color: var(--text-muted);
    transition: background .15s, color .15s;
}
.profile-switch__icon svg { width: 22px; height: 22px; }
.profile-switch__label {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-heading);
    line-height: 1.3;
}
.profile-switch__option:hover .profile-switch__card {
    border-color: var(--orange-light);
    transform: translateY(-2px);
}
.profile-switch__option input:checked + .profile-switch__card {
    border-color: var(--orange);
    background: var(--orange-soft);
    box-shadow: 0 0 0 3px rgba(242, 107, 31, 0.12);
}
.profile-switch__option input:checked + .profile-switch__card .profile-switch__icon {
    background: var(--orange);
    color: #fff;
}
.profile-switch__option input:focus-visible + .profile-switch__card {
    box-shadow: 0 0 0 3px rgba(242, 107, 31, 0.30);
}

@media (max-width: 560px) {
    .profile-switch { grid-template-columns: 1fr; }
    .profile-switch__card { flex-direction: row; justify-content: flex-start; text-align: left; }
}

/* ==========================================================================
   INSCRIPTION — Variante bouton radio (mode de cotisation)
   ========================================================================== */
.check-option--radio .check-option__box {
    border-radius: 50%;
}
.check-option--radio .check-option__box::after {
    /* annule la coche carrée, on met un point central rond */
    content: "";
    left: 50%;
    top: 50%;
    width: 9px;
    height: 9px;
    border: none;
    border-radius: 50%;
    background: #fff;
    transform: translate(-50%, -50%) scale(0);
    transition: transform .15s ease;
}
.check-option--radio input:checked + .check-option__box {
    background: var(--orange);
    border-color: var(--orange);
}
.check-option--radio input:checked + .check-option__box::after {
    transform: translate(-50%, -50%) scale(1);
}
/* ==========================================================================
   INSCRIPTION MULTI-ÉTAPES — styles à ajouter à votre feuille CSS
   À coller dans le fichier CSS de la page inscription (ou votre app.css).
   Les couleurs reprennent les variables du thème ; ajustez si besoin.
   ========================================================================== */

:root {
    /* Reprenez vos variables existantes si elles diffèrent */
    --reg-accent: #5b4be8;        /* violet bandeau (cf. maquette) */
    --reg-accent-soft: #eceaff;
    --reg-orange: #f5821f;
    --reg-line: #d9d9e3;
    --reg-done: #2ec27e;
}

/* --------------------------------------------------------------------------
   TIMELINE DES ÉTAPES
   -------------------------------------------------------------------------- */
.reg-steps {
    list-style: none;
    margin: 0 0 2.5rem;
    padding: 0;
    display: flex;
    justify-content: space-between;
    counter-reset: step;
    position: relative;
}

/* Ligne de liaison derrière les pastilles */
.reg-steps::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 5%;
    right: 5%;
    height: 2px;
    background: var(--reg-line);
    z-index: 0;
}

.reg-steps__item {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    text-align: center;
    cursor: default;
}

/* étapes déjà franchies cliquables */
.reg-steps__item.is-done { cursor: pointer; }

.reg-steps__dot {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #fff;
    border: 2px solid var(--reg-line);
    color: #9a9aa8;
    font-weight: 700;
    font-size: .95rem;
    transition: all .2s ease;
}

.reg-steps__item.is-active .reg-steps__dot {
    background: var(--reg-accent);
    border-color: var(--reg-accent);
    color: #fff;
    box-shadow: 0 0 0 4px var(--reg-accent-soft);
}

.reg-steps__item.is-done .reg-steps__dot {
    background: var(--reg-done);
    border-color: var(--reg-done);
    color: #fff;
}

.reg-steps__label {
    font-size: .78rem;
    line-height: 1.2;
    color: #6b6b7b;
    font-weight: 600;
}

.reg-steps__item.is-active .reg-steps__label { color: #1c1c28; }

/* --------------------------------------------------------------------------
   ÉTAPES (panneaux)
   -------------------------------------------------------------------------- */
.reg-step[hidden] { display: none; }

/* --------------------------------------------------------------------------
   ÉLÉMENTS DE FORMULAIRE COMPLÉMENTAIRES
   -------------------------------------------------------------------------- */

/* Note de section (texte d'intro confidentialité) */
.reg-note {
    background: var(--reg-accent-soft);
    border-radius: 8px;
    padding: .85rem 1rem;
    font-size: .9rem;
    color: #4a4a5a;
    margin: 0 0 1.4rem;
}

/* Zone de texte multiligne — hérite de form-input */
.form-textarea {
    resize: vertical;
    min-height: 84px;
    font-family: inherit;
    line-height: 1.5;
}

/* Champ texte « Autre : » en ligne dans une option radio */
.form-input--inline {
    display: inline-block;
    width: auto;
    flex: 1 1 160px;
    min-width: 140px;
    margin-left: .5rem;
    padding: .25rem .25rem;
}
.form-input--inline:disabled {
    opacity: .45;
    cursor: not-allowed;
}

/* Permet au champ « Autre » de s'aligner avec le label de l'option */
.check-option--radio { flex-wrap: wrap; }

/* Case à cocher placée juste sous un champ (ex : budget non défini) */
.reg-inline-check {
    margin-top: .55rem;
}

/* Champ montant désactivé quand « budget non défini » est coché */
.form-input:disabled {
    background: #f2f2f6;
    opacity: .6;
    cursor: not-allowed;
}

/* --------------------------------------------------------------------------
   BARRE DE NAVIGATION (Précédent / Suivant / Envoyer)
   -------------------------------------------------------------------------- */

/* Masque un bouton de navigation hors de son étape.
   Le bouton « Envoyer » et « Précédent » partent masqués dès le HTML : ils
   ne réapparaissent que lorsque le JS retire cette classe à la bonne étape.
   Ainsi le bouton d'envoi n'est JAMAIS visible avant la dernière étape, même
   le temps que le JavaScript se charge. */
.is-step-hidden {
    display: none !important;
}

.register-form__nav {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: 2rem;
}

/* Pousse le bouton Suivant/Envoyer à droite quand Précédent est masqué */
.register-form__nav [data-nav="next"],
.register-form__nav [data-nav="submit"] {
    margin-left: auto;
}

/* Bouton secondaire « Précédent » */
.btn--ghost {
    background: #fff;
    border: 1.5px solid var(--reg-line);
    color: #4a4a5a;
}
.btn--ghost:hover {
    border-color: var(--reg-accent);
    color: var(--reg-accent);
}

/* --------------------------------------------------------------------------
   RESPONSIVE — timeline compacte sur mobile
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
    .reg-steps__label { display: none; }      /* on garde juste les pastilles */
    .reg-steps::before { top: 18px; }
    .reg-steps__dot { width: 32px; height: 32px; font-size: .85rem; }
    .register-form__nav { flex-wrap: wrap; }
}
