/* LA BOUSSOLE - Gutenberg Homepage Block Styles
 * Styles for the Gutenberg-edited "Accueil" front page.
 * Works alongside existing tokens, components, layout, and home.css.
 */

/* ============================================================
   VIDEO HERO (Section 1)
   ============================================================ */
.lbs-hero {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    background: var(--lbs-primary); overflow: hidden;
    padding: clamp(3rem, 8vh, 6rem) var(--lbs-gutter) clamp(2rem, 4vh, 3rem);
}
/* Kill legacy gold radial from home.css — hero must stay navy/blue/coral */
.lbs-hero::before { content: none; }
.lbs-hero-video {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0;
}
.lbs-hero-video video,
.lbs-hero-video.wp-block-video {
    width: 100%; height: 100%; object-fit: cover; object-position: center; margin: 0;
}
/* Gutenberg wraps video in <figure> — reset its defaults */
.lbs-hero-video figure,
.lbs-hero-video.wp-block-video figure { margin: 0; }
.lbs-hero-video figcaption { display: none; }

.lbs-hero-overlay {
    position: relative; z-index: 1; width: 100%;
}
.lbs-hero-content {
    max-width: 840px; margin: 0 auto; text-align: center;
    text-shadow: 0 2px 30px rgba(5,14,32,0.45);
}
.lbs-hero-content .lbs-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 0.5rem;
    padding: 0.5rem 1rem; background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12); border-radius: var(--lbs-radius-full);
    font-size: var(--lbs-fs-caption); font-weight: var(--lbs-fw-semibold);
    text-transform: uppercase; letter-spacing: 0.14em;
    color: var(--lbs-white);
}
.lbs-hero-content .lbs-eyebrow-dot {
    width: 6px; height: 6px; background: var(--lbs-accent); border-radius: 50%;
    animation: lbs-pulse 2s infinite;
}
.lbs-hero-content .lbs-hero-title {
    font-family: var(--lbs-font-heading);
    font-size: clamp(3.25rem, 7vw, 6.25rem);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-white);
    line-height: 1.04; letter-spacing: -0.01em;
}
.lbs-hero-content .lbs-hero-highlight {
    color: var(--lbs-blue-accent); position: relative; display: inline-block;
}
.lbs-hero-content .lbs-hero-subtitle {
    font-size: clamp(1.0625rem, 1.4vw, 1.25rem); line-height: 1.75;
    color: rgba(255,255,255,0.85); max-width: 720px;
}
.lbs-hero-content .lbs-hero-location {
    font-size: 0.8125rem; font-weight: var(--lbs-fw-semibold);
    color: rgba(255,255,255,0.66); letter-spacing: 0.18em; text-transform: uppercase;
}

/* ============================================================
   COUNTDOWN TIMER
   ============================================================ */
.lbs-countdown {
    display: inline-flex; align-items: center; justify-content: center;
    gap: clamp(0.4rem, 1vw, 0.75rem);
    background: transparent; padding: 0; margin: 0;
}
.lbs-countdown__unit { text-align: center; min-width: clamp(56px, 6.5vw, 84px); }
.lbs-countdown__number {
    display: block; font-family: var(--lbs-font-heading);
    font-size: clamp(2.25rem, 5vw, 4rem); font-weight: var(--lbs-fw-bold);
    color: var(--lbs-white); line-height: 1; font-variant-numeric: tabular-nums;
}
.lbs-countdown__label {
    display: block; font-size: clamp(0.6rem, 1.1vw, 0.6875rem);
    font-weight: var(--lbs-fw-medium);
    color: rgba(255,255,255,0.62); text-transform: uppercase;
    letter-spacing: 0.16em; margin-top: 0.375rem; white-space: nowrap;
}
.lbs-countdown__separator {
    font-family: var(--lbs-font-heading); font-size: clamp(1.5rem, 2.75vw, 2.25rem);
    color: rgba(255,255,255,0.28); padding-bottom: 1.35rem;
}

/* Hero buttons — override Gutenberg button defaults */
.lbs-hero-actions {
    display: flex; align-items: center; justify-content: center;
    gap: clamp(0.75rem, 1.5vw, 1rem); flex-wrap: wrap;
}
.lbs-hero-actions .wp-block-button { margin: 0; }
.lbs-hero-actions .wp-block-button__link {
    min-height: 52px; display: inline-flex; align-items: center; justify-content: center;
    padding: 0.875rem 2.25rem; font-weight: var(--lbs-fw-semibold);
    font-size: var(--lbs-fs-small); text-transform: uppercase;
    letter-spacing: var(--lbs-ls-wider); border-radius: var(--lbs-radius-sm);
    border: 2px solid transparent; text-decoration: none; white-space: nowrap;
    transition: background var(--lbs-transition-base), border-color var(--lbs-transition-base),
        color var(--lbs-transition-base), transform var(--lbs-transition-fast), box-shadow var(--lbs-transition-base);
    cursor: pointer;
}
.lbs-hero-actions .wp-block-button__link:focus-visible {
    outline: 3px solid var(--lbs-accent); outline-offset: 3px;
}
.lbs-hero-actions .lbs-btn-primary .wp-block-button__link,
.lbs-hero-actions .lbs-btn--primary .wp-block-button__link {
    background: var(--lbs-accent); color: var(--lbs-white); border-color: var(--lbs-accent);
}
.lbs-hero-actions .lbs-btn-primary .wp-block-button__link:hover,
.lbs-hero-actions .lbs-btn--primary .wp-block-button__link:hover {
    background: var(--lbs-accent-hover); border-color: var(--lbs-accent-hover);
    transform: translateY(-2px); box-shadow: var(--lbs-shadow-lg);
}
.lbs-hero-actions .lbs-btn-outline-white .wp-block-button__link,
.lbs-hero-actions .lbs-btn--ghost .wp-block-button__link {
    background: transparent; color: var(--lbs-white); border-color: rgba(255,255,255,0.45);
}
.lbs-hero-actions .lbs-btn-outline-white .wp-block-button__link:hover,
.lbs-hero-actions .lbs-btn--ghost .wp-block-button__link:hover {
    background: var(--lbs-white); color: var(--lbs-primary); border-color: var(--lbs-white);
    transform: translateY(-2px); box-shadow: var(--lbs-shadow-lg);
}

/* ============================================================
   GUTENBERG COLUMNS — override WP core defaults for theme layout
   ============================================================ */
/* Reset Gutenberg's default column gap to use theme spacing */
.wp-block-columns {
    margin-bottom: 0; /* Gutenberg adds margin-bottom by default */
}
.wp-block-column {
    margin-bottom: 0; /* Reset Gutenberg's column margin-bottom */
}

/* ============================================================
   PHASE 9.2 — SECTION RHYTHM (stats, presentations, audience)
   Desktop ≈ 88–130px, mobile ≈ 60–80px
   ============================================================ */
.lbs-section-dark.lbs-section,
.lbs-section:has(.lbs-about-grid),
.lbs-section:has(.lbs-targets-grid) {
    padding: clamp(4.5rem, 10vw, 8.125rem) 0;
}

/* ============================================================
   STATS (Section 2) — editorial event figures, no cards
   ============================================================ */
.lbs-stats-grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: clamp(1.5rem, 3vw, 2.75rem);
}
.lbs-stat-card {
    text-align: center; padding: 0; background: transparent;
    border-radius: 0; border: none;
}
.lbs-section-dark .lbs-stat-number {
    font-family: var(--lbs-font-heading);
    font-size: clamp(2.5rem, 4.5vw, 4rem);
    line-height: 1; font-weight: var(--lbs-fw-bold);
    color: var(--lbs-blue-accent); margin-bottom: 0.5rem;
    font-variant-numeric: tabular-nums;
}
.lbs-section-dark .lbs-stat-number::after {
    content: ''; display: block; width: 30px; height: 2px;
    background: var(--lbs-accent); margin: 0.875rem auto 0;
}
.lbs-section-dark .lbs-stat-label {
    font-size: clamp(0.625rem, 1vw, 0.75rem);
    font-weight: var(--lbs-fw-medium);
    color: rgba(255,255,255,0.62);
    text-transform: uppercase; letter-spacing: 0.16em;
    line-height: 1.55; max-width: 190px; margin: 0 auto;
}

/* ============================================================
   ABOUT / TWO-COLUMN SECTIONS (Sections 3–4)
   Editorial 45/55 split, alternating; premium image frame
   ============================================================ */
.lbs-about-grid {
    display: grid; grid-template-columns: 45fr 55fr;
    gap: clamp(2rem, 4vw, 4.5rem); align-items: center;
}
.lbs-section-gray .lbs-about-grid {
    grid-template-columns: 55fr 45fr;
}
.lbs-about-grid .lbs-about-image {
    overflow: hidden; aspect-ratio: 4/3;
    background: var(--lbs-gray-100);
    border-radius: var(--lbs-radius-xl);
    position: relative; box-shadow: 0 0 0 1px var(--lbs-gray-200), var(--lbs-shadow-card);
}
.lbs-about-grid .lbs-about-image img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.lbs-about-grid .lbs-about-image::after {
    content: ''; position: absolute; inset: 12px;
    border: 1px solid rgba(255,255,255,0.55);
    border-radius: calc(var(--lbs-radius-xl) - 12px);
    pointer-events: none;
}
.lbs-about-content h2 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h2);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-xl);
}
.lbs-about-content p {
    font-size: var(--lbs-fs-body); line-height: var(--lbs-lh-relaxed);
    color: var(--lbs-gray-600); margin-bottom: var(--lbs-space-lg);
}
.lbs-about-content .lbs-eyebrow {
    display: inline-block; font-size: var(--lbs-fs-caption); font-weight: var(--lbs-fw-semibold);
    text-transform: uppercase; letter-spacing: var(--lbs-ls-wider);
    color: var(--lbs-blue-accent); margin-bottom: var(--lbs-space-md);
}
/* LOT B · Partie 0.1 — la section « Pourquoi » reprend la mise en page
   2 colonnes d'origine (contenu | image banner-1.webp, eager/async).
   Le modificateur .lbs-about-grid--single du LOT A-ter est retiré. */
.lbs-text-accent { color: var(--lbs-blue-accent) !important; }
.lbs-text-accent em { font-style: italic; }

/* ============================================================
   FONDATEUR (LOT B · Partie 2) — 2 colonnes texte (~58 %) | visuels (~42 %)
   Même traitement que les autres sections : eyebrow, titre Playfair,
   filet d'accent 80×5 à gauche, fond teinte bleue claire.

   FINAL · P4 — RETOUR à l'ancien design (pré-cc16378, validé client) :
   - portrait dans un CADRE : bordure royal, coins arrondis (12px), ombre ;
   - logo Guidion EN DESSOUS, ancien traitement (conteneur centré, largeur
     alignée sur le portrait, image contenue).
   SEUL changement conservé : l'image est Yassine-Gouiaa-transparent.webp,
   posée sur un FOND BLEU DANS le cadre (dégradé royal #1B3A6B → bleu
   #1B6BC9). Le portrait détouré est contenu ENTIER (object-fit: contain,
   aucun rognage du visage ; la transparence laisse apparaître le dégradé).
   ============================================================ */
.lbs-founder-grid {
    display: grid; grid-template-columns: 58fr 42fr;
    gap: clamp(2rem, 4vw, 4.5rem); align-items: center;
}
.lbs-founder-content .lbs-eyebrow {
    display: inline-block; font-size: var(--lbs-fs-caption);
    font-weight: var(--lbs-fw-semibold); text-transform: uppercase;
    letter-spacing: var(--lbs-ls-wider);
}
.lbs-founder-content h2 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h2);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-md);
    position: relative; padding-bottom: var(--lbs-space-md);
}
.lbs-founder-content h2::after {
    content: ''; position: absolute; left: 0; bottom: 0;
    width: 80px; height: 5px;
    background: var(--lbs-accent-underline);
    border-radius: 3px;
}
.lbs-founder-subtitle {
    font-size: var(--lbs-fs-body-lg); font-weight: var(--lbs-fw-semibold);
    color: var(--lbs-primary); margin: 0 0 var(--lbs-space-lg);
}
.lbs-founder-content p {
    font-size: var(--lbs-fs-body); line-height: var(--lbs-lh-relaxed);
    color: var(--lbs-gray-600); margin-bottom: var(--lbs-space-lg);
}
.lbs-founder-visuals {
    display: flex; flex-direction: column; align-items: center;
    gap: var(--lbs-space-xl);
}
/* FINAL BIS · P2 — portrait JPEG plein cadre (object-fit cover, top).
   FOND dégradé bleu + bande de couleur RETIRÉS du cadre ; le cadre
   (bordure royal + ombre) et le logo Guidion restent inchangés. */
.lbs-founder-portrait {
    width: 100%; max-width: 400px; aspect-ratio: 3/4;
    border-radius: 12px; overflow: hidden;
    border: 2px solid var(--lbs-primary-royal);
    box-shadow: var(--lbs-shadow-lg);
}
.lbs-founder-portrait img {
    width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block;
}
/* Logo Guidion EN DESSOUS — ancien traitement (conteneur neutre, centré). */
.lbs-founder-logo {
	width: 100%; max-width: 400px;
	margin: 0 auto;
	display: flex; justify-content: center;
}
.lbs-founder-logo img {
	display: block; width: auto; max-width: 70%;
	max-height: 200px; object-fit: contain;
}

/* ============================================================
   TARGET GROUPS (Section 5) — editorial rows with index numbers
   ============================================================ */
.lbs-targets-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(2.5rem, 5vw, 4.5rem);
    counter-reset: lbs-target;
    align-items: start;
}
/* FINAL · P5 — le titre de la cible quitte l'ancien emplacement (sous
   l'image, soulignement coral) et rejoint le BAS de l'image, PAR-DESSUS un
   overlay bleu dégradé (transparent en haut → bleu royal ~0.85 en bas,
   sur la MOITIÉ basse), en blanc. Les listes dessous restent inchangées. */
.lbs-target-img {
    position: relative;
    border-radius: var(--lbs-radius-lg);
    overflow: hidden;
    aspect-ratio: 3 / 2;
    background: var(--lbs-gray-100);
    margin-bottom: var(--lbs-space-lg);
}
.lbs-target-img img {
    width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    display: block;
}
/* Overlay bleu royal ~0.85 — moitié basse de l'image. */
.lbs-target-img::after {
    content: '';
    position: absolute; left: 0; right: 0; bottom: 0;
    height: 50%;
    background: linear-gradient(180deg, rgba(27, 58, 107, 0) 0%, rgba(27, 58, 107, 0.85) 100%);
    z-index: 1;
    pointer-events: none;
}
/* Titre posé EN BAS de l'image, sur l'overlay, en blanc — plus de doublon. */
.lbs-target-img-title {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    margin: 0;
    padding: 0 var(--lbs-space-md) var(--lbs-space-md);
    font-family: var(--lbs-font-heading);
    font-size: var(--lbs-fs-h5);
    font-weight: var(--lbs-fw-bold);
    color: var(--lbs-white);
    text-align: center;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 4px rgba(10, 22, 40, 0.35);
}
.lbs-target-card {
    padding: var(--lbs-space-lg) 0;
    background: transparent; border-radius: 0;
    box-shadow: none; margin-bottom: 0;
    border-bottom: 1px solid var(--lbs-gray-200);
    counter-increment: lbs-target;
    transition: color var(--lbs-transition-base);
}
.lbs-target-card:last-child { border-bottom: none; }
.lbs-target-card h4 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-small);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-xs);
    display: flex; align-items: baseline; gap: var(--lbs-space-md);
}
.lbs-target-card h4::before {
    content: counter(lbs-target, decimal-leading-zero);
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-caption);
    font-weight: var(--lbs-fw-semibold); color: var(--lbs-accent);
    letter-spacing: 0.08em;
}
.lbs-target-card p {
    font-size: var(--lbs-fs-small); color: var(--lbs-gray-500);
    line-height: var(--lbs-lh-body); margin: 0;
}
.lbs-target-card:hover h4 { color: var(--lbs-blue-accent); }

/* ============================================================
   INTERVENANTS GRID (Section 6)
   ============================================================ */
.lbs-intervenants-grid {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--lbs-space-xl);
}
.lbs-intervenant-card {
    text-align: center; padding: 0;
    background: var(--lbs-white); border-radius: var(--lbs-radius-lg);
    box-shadow: var(--lbs-shadow-card); overflow: hidden;
    transition: transform var(--lbs-transition-base), box-shadow var(--lbs-transition-base);
}
.lbs-intervenant-card:hover { transform: translateY(-4px); box-shadow: var(--lbs-shadow-card-hover); }
/* LOT F · P2 — cartes « image pleine carte » : les six images (1254²) remplissent
   chacune toute sa carte avec un ratio UNIFORME 3/4 ; objet de couverture (cover,
   jamais déformé). Dégradé blanc en bas (≈62% de hauteur) pour la lisibilité du
   titre h4 bleu --lbs-blue-accent en surimpression. Hover : zoom léger de l'image
   + élévation de la carte (le titre, en position absolue, ne bouge pas). */
.lbs-intervenant-media {
    position: relative; aspect-ratio: 3 / 4;
    overflow: hidden; margin: 0; display: block;
    background: var(--lbs-white);
}
.lbs-intervenant-media::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 62%;
    background: linear-gradient(to top, rgba(255,255,255,1) 0%, rgba(255,255,255,0.92) 30%, rgba(255,255,255,0) 100%);
    pointer-events: none;
}
.lbs-intervenant-img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform var(--lbs-transition-base);
}
.lbs-intervenant-card:hover .lbs-intervenant-img { transform: scale(1.05); }
.lbs-intervenant-title {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    margin: 0; padding: var(--lbs-space-2xl) var(--lbs-space-md) var(--lbs-space-lg);
}
.lbs-intervenant-title h4 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-body);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-blue-accent);
    margin: 0; text-transform: uppercase; letter-spacing: 0.02em;
}

/* ============================================================
   PANELS GRID (Section 7)
   ============================================================ */
.lbs-panels-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: var(--lbs-space-xl);
}
.lbs-panel-card {
    padding: var(--lbs-space-xl); background: var(--lbs-white);
    border-radius: var(--lbs-radius-lg); box-shadow: var(--lbs-shadow-card);
    border-top: 3px solid var(--lbs-accent);
}
.lbs-panel-number {
    font-size: var(--lbs-fs-caption); font-weight: var(--lbs-fw-bold);
    text-transform: uppercase; letter-spacing: var(--lbs-ls-wider);
    color: var(--lbs-accent); margin-bottom: var(--lbs-space-md);
}
.lbs-panel-card h3 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-body);
    font-weight: var(--lbs-fw-semibold); color: var(--lbs-primary);
    line-height: var(--lbs-lh-body); margin-bottom: var(--lbs-space-lg);
}
.lbs-panel-speakers {
    font-size: var(--lbs-fs-small); color: var(--lbs-gray-500);
    line-height: var(--lbs-lh-body);
}

/* ============================================================
   PARTNERS GRID (Section 8)
   ============================================================ */
.lbs-partners-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: var(--lbs-space-lg);
}
.lbs-partner-name {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-body);
    font-weight: var(--lbs-fw-semibold); color: var(--lbs-primary);
    text-align: center; padding: var(--lbs-space-xl);
    background: var(--lbs-white); border-radius: var(--lbs-radius-md);
    box-shadow: var(--lbs-shadow-sm); margin: 0;
}

/* ============================================================
   CTA SECTION (Section 15)
   ============================================================ */
.lbs-cta-section {
    background: linear-gradient(135deg, var(--lbs-primary) 0%, var(--lbs-primary-royal) 100%);
    color: var(--lbs-white); padding: var(--lbs-space-section) 0;
}
.lbs-cta-content h2 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h2);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-white);
    margin-bottom: var(--lbs-space-md);
}
.lbs-cta-content p {
    font-size: var(--lbs-fs-body-lg); color: rgba(255,255,255,0.7);
    margin-bottom: var(--lbs-space-2xl);
}
.lbs-cta-actions {
    display: flex; gap: var(--lbs-space-md); flex-wrap: wrap;
    justify-content: center;
}
.lbs-cta-actions .wp-block-button { margin: 0; }
.lbs-cta-actions .wp-block-button__link {
    padding: 0.875rem 2rem; font-weight: var(--lbs-fw-semibold);
    font-size: var(--lbs-fs-small); text-transform: uppercase;
    letter-spacing: var(--lbs-ls-wider); border-radius: var(--lbs-radius-sm);
    border: 2px solid transparent; text-decoration: none;
    transition: all var(--lbs-transition-base); cursor: pointer;
}
.lbs-cta-actions .lbs-btn-primary .wp-block-button__link,
.lbs-cta-actions .lbs-btn--primary .wp-block-button__link {
    background: var(--lbs-accent); color: var(--lbs-white); border-color: var(--lbs-accent);
}
.lbs-cta-actions .lbs-btn-primary .wp-block-button__link:hover,
.lbs-cta-actions .lbs-btn--primary .wp-block-button__link:hover {
    background: var(--lbs-accent-hover); border-color: var(--lbs-accent-hover);
    transform: translateY(-1px); box-shadow: var(--lbs-shadow-lg);
}
.lbs-cta-actions .lbs-btn-outline-white .wp-block-button__link,
.lbs-cta-actions .lbs-btn--ghost .wp-block-button__link {
    background: transparent; color: var(--lbs-white); border-color: rgba(255,255,255,0.4);
}
.lbs-cta-actions .lbs-btn-outline-white .wp-block-button__link:hover,
.lbs-cta-actions .lbs-btn--ghost .wp-block-button__link:hover {
    background: var(--lbs-white); color: var(--lbs-primary); border-color: var(--lbs-white);
}

/* ============================================================
   GENERIC BUTTONS (used outside hero/CTA)
   ============================================================ */
/* Gutenberg button blocks inside sections — inherit theme button styles */
.wp-block-buttons { margin-bottom: 0; }
.wp-block-button { margin-bottom: 0; }
.wp-block-button__link {
    padding: 0.875rem 2rem; font-weight: var(--lbs-fw-semibold);
    font-size: var(--lbs-fs-small); text-transform: uppercase;
    letter-spacing: var(--lbs-ls-wider); border-radius: var(--lbs-radius-sm);
    border: 2px solid transparent; text-decoration: none;
    transition: all var(--lbs-transition-base); cursor: pointer;
}
.lbs-btn-primary > .wp-block-button__link,
.wp-block-button.lbs-btn-primary .wp-block-button__link,
.lbs-btn--primary > .wp-block-button__link,
.wp-block-button.lbs-btn--primary .wp-block-button__link {
    background: var(--lbs-accent); color: var(--lbs-white); border-color: var(--lbs-accent);
}
.lbs-btn-outline > .wp-block-button__link,
.wp-block-button.lbs-btn-outline .wp-block-button__link,
.lbs-btn--ghost > .wp-block-button__link,
.wp-block-button.lbs-btn--ghost .wp-block-button__link {
    background: transparent; color: var(--lbs-primary); border-color: var(--lbs-primary);
}
.lbs-btn-lg > .wp-block-button__link,
.wp-block-button.lbs-btn-lg .wp-block-button__link {
    padding: 1rem 2.5rem; font-size: var(--lbs-fs-body);
}

/* ============================================================
   SECTION HEADERS (shared across sections)
   ============================================================ */
.lbs-section-header { text-align: center; margin-bottom: var(--lbs-space-3xl); }
.lbs-section-header .lbs-eyebrow {
    display: inline-block; font-size: var(--lbs-fs-caption); font-weight: var(--lbs-fw-semibold);
    text-transform: uppercase; letter-spacing: var(--lbs-ls-wider);
    color: var(--lbs-blue-accent); margin-bottom: var(--lbs-space-md);
}
.lbs-section-title {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h2);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-md);
}
.lbs-section-subtitle {
    font-size: var(--lbs-fs-body-lg); line-height: var(--lbs-lh-relaxed);
    color: var(--lbs-gray-500); max-width: 600px; margin: 0 auto;
}

/* ============================================================
   SECTION 10 BANNER (Exposant CTA)
   ============================================================ */
.lbs-section .lbs-eyebrow {
    display: inline-block; font-size: var(--lbs-fs-caption); font-weight: var(--lbs-fw-semibold);
    text-transform: uppercase; letter-spacing: var(--lbs-ls-wider);
    color: var(--lbs-blue-accent); margin-bottom: var(--lbs-space-md);
}

/* ============================================================
   MAPS GRID (Section 14)
   ============================================================ */
.lbs-maps-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--lbs-space-xl);
    align-items: stretch;
}
.lbs-map-card {
    display: flex; flex-direction: column;
    align-items: stretch;
}
.lbs-map-card .lbs-map-block { flex: 1; height: 100%; min-height: 0; }
.lbs-map-card h4 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h5);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-md);
}
.lbs-map-card iframe {
    width: 100%; height: 100%; min-height: 260px;
    border-radius: var(--lbs-radius-lg); border: 0; display: block;
}
/* LOT F · P0 — coordonnées SIÈGE sous la carte (restaurées, données client :
   jamais réécrites ; le BUREAU non reconfirmé n'apparaît pas). */
.lbs-map-address {
    margin: var(--lbs-space-md) 0 0;
    font-weight: var(--lbs-fw-medium); color: var(--lbs-primary);
    line-height: var(--lbs-lh-body);
}
.lbs-map-phone {
    margin: var(--lbs-space-xs) 0 0;
    font-size: var(--lbs-fs-body); font-weight: var(--lbs-fw-semibold);
    color: var(--lbs-blue-accent); letter-spacing: 0.02em;
}

/* ============================================================
   CONTACT SECTION (Section 13)
   ============================================================ */
.lbs-contact-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--lbs-space-4xl); align-items: start;
}
.lbs-contact-info .lbs-eyebrow {
    font-size: var(--lbs-fs-caption); font-weight: var(--lbs-fw-semibold);
    text-transform: uppercase; letter-spacing: var(--lbs-ls-wider);
    color: var(--lbs-blue-accent); margin-bottom: var(--lbs-space-md);
}
.lbs-contact-info h2 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h2);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-lg);
}
.lbs-contact-info > p {
    font-size: var(--lbs-fs-body); color: var(--lbs-gray-600);
    line-height: var(--lbs-lh-relaxed); margin-bottom: var(--lbs-space-2xl);
}
.lbs-contact-cards { display: flex; flex-direction: column; gap: var(--lbs-space-lg); }
.lbs-contact-card h4 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-small);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-sm);
}
.lbs-contact-card p {
    font-size: var(--lbs-fs-small); color: var(--lbs-gray-600);
    line-height: var(--lbs-lh-body); margin: 0;
}
.lbs-contact-form-card {
    background: var(--lbs-white); border-radius: var(--lbs-radius-lg);
    box-shadow: var(--lbs-shadow-card); padding: var(--lbs-space-2xl);
}
.lbs-form-title {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h5);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-xl);
}

/* ============================================================
   REGISTRATION SECTION (Section 11)
   ============================================================ */
.lbs-registration-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: var(--lbs-space-4xl); align-items: start;
}
.lbs-registration-info .lbs-eyebrow {
    font-size: var(--lbs-fs-caption); font-weight: var(--lbs-fw-semibold);
    text-transform: uppercase; letter-spacing: var(--lbs-ls-wider);
    color: var(--lbs-blue-accent); margin-bottom: var(--lbs-space-md);
}
.lbs-registration-info h2 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h2);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-lg);
}
.lbs-registration-info > p {
    font-size: var(--lbs-fs-body); color: var(--lbs-gray-600);
    line-height: var(--lbs-lh-relaxed); margin-bottom: var(--lbs-space-xl);
}
.lbs-registration-checklist {
    list-style: none; padding: 0; margin: 0;
}
.lbs-registration-checklist li {
    display: flex; align-items: center; gap: var(--lbs-space-sm);
    padding: var(--lbs-space-sm) 0; font-size: var(--lbs-fs-body);
    color: var(--lbs-gray-600);
}
.lbs-registration-checklist li::before {
    content: '✓'; display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; background: var(--lbs-blue-accent-soft);
    color: var(--lbs-blue-accent); border-radius: 50%;
    font-size: 12px; font-weight: 700; flex-shrink: 0;
}
.lbs-registration-form-card {
    background: var(--lbs-white); border-radius: var(--lbs-radius-lg);
    box-shadow: var(--lbs-shadow-card); padding: var(--lbs-space-2xl);
}
.lbs-registration-form-card h3 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-h5);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-xl);
}

/* ============================================================
   FORM ROWS (inside Gutenberg-rendered forms)
   ============================================================ */
.lbs-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lbs-space-lg); }
.lbs-form-row .lbs-form-group { margin-bottom: 0; }

/* ============================================================
   ABOUT FEATURES (Section 12 — Informations Pratiques)
   ============================================================ */
.lbs-about-feature {
    text-align: center; padding: var(--lbs-space-xl);
    background: var(--lbs-white); border-radius: var(--lbs-radius-lg);
    box-shadow: var(--lbs-shadow-card);
}
.lbs-about-feature-icon { font-size: 2rem; color: var(--lbs-blue-accent); margin-bottom: var(--lbs-space-md); }
.lbs-about-feature-icon svg { width: 40px; height: 40px; }
.lbs-about-feature h4 {
    font-family: var(--lbs-font-heading); font-size: var(--lbs-fs-body);
    font-weight: var(--lbs-fw-bold); color: var(--lbs-primary);
    margin-bottom: var(--lbs-space-sm);
}
.lbs-about-feature p {
    font-size: var(--lbs-fs-small); color: var(--lbs-gray-500); margin: 0;
}

/* ============================================================
   RESPONSIVE — 8 breakpoints (spec: desktop, laptop, 1024, 768, 600, 480, 360, 320)
   ============================================================ */

/* ≤ 1200px — laptop */
@media (max-width: 1200px) {
    .lbs-intervenants-grid { grid-template-columns: repeat(3, 1fr); }
    .lbs-panels-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ≤ 1024px — small laptop / large tablet */
@media (max-width: 1024px) {
    .lbs-hero-content .lbs-hero-title { font-size: clamp(3rem, 6vw, 5rem); }
    .lbs-stats-grid { gap: clamp(1.25rem, 3vw, 2rem); }
    .lbs-about-grid { grid-template-columns: minmax(0, 1fr); gap: var(--lbs-space-2xl); }
    /* LOT B · Partie 1.2 — en colonne unique l'image reste compacte
       (cap 520px, ratio portrait ~693px ≤ hauteur texte) et centrée. */
    .lbs-about-grid .lbs-about-image { max-width: 520px; margin: 0 auto; }
    /* FINAL · P2 — section « Pourquoi » : dès la colonne unique, l'IMAGE
       passe EN PREMIER (la section L'Événement est déjà image → texte dans
       le DOM) ; les deux sections ont ainsi le même ordre visuel.
       On force aussi la colonne unique pour .lbs-section-gray : sa règle
       55fr/45fr (0,2,0) éclipsait la règle mobile 1fr (0,1,0) — c'est là
       que les colonnes écrasées côte à côte venaient. */
    .lbs-section-gray .lbs-about-grid { grid-template-columns: minmax(0, 1fr); }
    .lbs-section-gray .lbs-about-grid .lbs-about-content { order: 2; }
    .lbs-section-gray .lbs-about-grid .lbs-about-image { order: 1; }
    .lbs-targets-grid { grid-template-columns: 1fr; }
    .lbs-intervenants-grid { grid-template-columns: repeat(3, 1fr); }
    .lbs-partners-grid { grid-template-columns: repeat(2, 1fr); }
    .lbs-maps-grid { grid-template-columns: 1fr; }
}

/* ≤ 768px — tablet */
@media (max-width: 768px) {
    .lbs-founder-grid { grid-template-columns: minmax(0, 1fr); gap: var(--lbs-space-2xl); }
    /* FINAL · P4 — mobile : portrait centré (~260 px), logo Guidion DESSOUS.
       Reprend l'ancien traitement responsive (pré-cc16378). */
    .lbs-founder-portrait { max-width: 260px; margin: 0 auto; }
    .lbs-founder-logo { margin: 0 auto; }
    /* FINAL · P2 — mobile : IMAGE PLEINE LARGEUR (on lève le cap 520px),
       toujours en premier, texte ensuite. S'applique aux sections
       « L'Événement » et « Pourquoi La Boussole ? ». */
    .lbs-about-grid .lbs-about-image { max-width: none; margin: 0; }
    .lbs-hero-content .lbs-hero-title { font-size: clamp(2.75rem, 7vw, 4rem); }
    .lbs-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .lbs-intervenants-grid { grid-template-columns: repeat(2, 1fr); }
    .lbs-panels-grid { grid-template-columns: minmax(0, 1fr); }
    .lbs-partners-grid { grid-template-columns: 1fr; }
    .lbs-contact-grid { grid-template-columns: 1fr; }
    .lbs-registration-grid { grid-template-columns: 1fr; }
    .lbs-form-row { grid-template-columns: 1fr; }
    .lbs-countdown__unit { min-width: 52px; }
    .lbs-countdown__number { font-size: clamp(1.875rem, 5vw, 2.75rem); }
}

/* ≤ 600px — large phone */
@media (max-width: 600px) {
    .lbs-hero { padding-bottom: clamp(2.25rem, 8vw, 3.5rem); }
    .lbs-hero-content .lbs-hero-title { font-size: clamp(2.4rem, 11vw, 3.25rem); }
    .lbs-hero-actions {
        flex-direction: column; align-items: stretch;
        width: 100%; max-width: 360px; margin: 0 auto;
    }
    .lbs-hero-actions .wp-block-button { width: 100%; }
    .lbs-hero-actions .wp-block-button__link { width: 100%; min-height: 52px; }
    .lbs-cta-actions { flex-direction: column; align-items: center; }
    .lbs-section-dark .lbs-stat-number { font-size: clamp(2rem, 7vw, 2.75rem); }
    .lbs-section-dark .lbs-stat-label { font-size: 0.625rem; letter-spacing: 0.12em; }
    .lbs-targets-grid { gap: clamp(2rem, 5vw, 3rem); }
}

/* ≤ 480px — phone */
@media (max-width: 480px) {
    .lbs-hero-content .lbs-hero-title { font-size: clamp(2.25rem, 11vw, 2.75rem); }
    .lbs-hero-actions { max-width: 320px; }
    .lbs-countdown { gap: 0.25rem; }
    .lbs-countdown__unit { min-width: 46px; }
    .lbs-countdown__number { font-size: clamp(1.625rem, 9vw, 2rem); }
    .lbs-countdown__label { font-size: 0.5625rem; }
}

/* ≤ 360px — small phone */
@media (max-width: 360px) {
    .lbs-hero-content .lbs-hero-title { font-size: clamp(2rem, 10.5vw, 2.375rem); }
    .lbs-hero-content .lbs-hero-subtitle { font-size: 0.9625rem; }
    .lbs-intervenants-grid { grid-template-columns: 1fr 1fr; gap: var(--lbs-space-md); }
    .lbs-section-dark .lbs-stat-number { font-size: clamp(1.75rem, 9vw, 2.125rem); }
    .lbs-stats-grid { gap: 0.75rem 1rem; }
    .lbs-countdown__number { font-size: clamp(1.375rem, 8vw, 1.625rem); }
}

/* ≤ 320px — extra small */
@media (max-width: 320px) {
    .lbs-hero-content .lbs-hero-title { font-size: clamp(1.875rem, 10vw, 2.125rem); }
    .lbs-hero-actions .wp-block-button__link { padding: 0.75rem 1.5rem; font-size: var(--lbs-fs-xs); }
    .lbs-countdown { flex-wrap: wrap; justify-content: center; }
    .lbs-countdown__unit { min-width: 40px; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    .lbs-hero-video video { display: none; }
    .lbs-countdown__number { transition: none; }
    .lbs-hero-content .lbs-eyebrow-dot { animation: none; }
    .lbs-hero-actions .wp-block-button__link { transition: none; }
    .lbs-hero-actions .wp-block-button__link:hover { transform: none; box-shadow: none; }
}
