/*!
 * LeBonFlip · Design System CSS
 * Source : pages/accueil/accueil.html (extrait du <style> bloc accueil v2)
 * Cible  : enqueue global via wp-content/novamira-sandbox/lbf-ds-enqueue.php
 *
 * Toutes les classes .lbf-* sont disponibles partout sur le site une fois
 * ce CSS charge. Utilise par les pages Kadence Blocks, les blocs Custom HTML,
 * les FluentForms, etc. Modifier ce fichier impacte tout le site.
 */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..700;1,9..144,400..700&family=Inter:wght@300..700&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* =========================================================
   LeBonFlip · accueil v2 (direction Sage + greffes Ambitieuse)
   Source : design Cloud Design "Page Accueil LeBonFlip" + lbf DS.
   ========================================================= */

:root {
  --orange:        #F08A24;
  --orange-light:  #F5A552;
  --orange-glow:   #F5A552;
  --orange-deep:   #D97114;
  --orange-gold:   #FCD9B0;

  --d-bg:         #1A1322;
  --d-surface:    #2A2236;
  --d-surface-2:  #3D3552;
  --d-surface-3:  #2A2236;
  --d-text:       #FDF8F1;
  --d-text-dim:   rgba(253, 248, 241, 0.62);
  --d-text-muted: rgba(253, 248, 241, 0.45);
  --d-border:     rgba(253, 248, 241, 0.07);
  --d-border-2:   rgba(253, 248, 241, 0.12);

  --l-bg:         #FDF8F1;
  --l-surface:    #FBEFE0;
  --l-surface-2:  #FCD9B0;
  --l-text:       #1A1322;
  --l-text-dim:   rgba(26, 19, 34, 0.62);
  --l-text-muted: rgba(26, 19, 34, 0.42);
  --l-border:     rgba(26, 19, 34, 0.08);
  --l-border-2:   rgba(26, 19, 34, 0.14);

  --success: #22C55E;
  --danger:  #EF4444;
  --info:    #3B82F6;

  --f-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --f-body:    'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --container:  1200px;
  --container-wide: 1320px;
  --section-py: clamp(72px, 10vw, 128px);
  --section-px: clamp(20px, 5vw, 48px);

  --r-card:    16px;
  --r-card-lg: 20px;
  --r-btn:     12px;
  --r-icon:    12px;  --aubergine-900: #1A1322;
  --aubergine-800: #2A2236;
  --aubergine-700: #3D3552;
  --aubergine-500: #5C5170;
  --orange-600:    #D97114;
  --orange-500:    #F08A24;
  --orange-400:    #F5A552;
  --orange-200:    #FCD9B0;
  --cream-100:     #FBEFE0;
  --cream-50:      #FDF8F1;
  --ink-50:        #FFFFFF;
  --ink-900:       #0F0A15;

  --f-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --r-sm:      8px;
  --r-md:      12px;
  --r-lg:      20px;
  --r-xl:      28px;
  --r-pill:    999px;

  --shadow-sm: 0 2px 8px rgba(26, 19, 34, 0.06);
  --shadow-md: 0 8px 24px rgba(26, 19, 34, 0.10);
  --shadow-lg: 0 20px 60px rgba(26, 19, 34, 0.18);


  --ease:       cubic-bezier(0.22, 1, 0.36, 1);
}

html, body { margin: 0; padding: 0; }
/* NOTE : la regle body { bg + color } d'origine de la maquette
   accueil.html a ete retiree pour eviter de fuiter sur les autres
   pages WP (CGV, mentions, etc.). Le DS s'applique uniquement
   dans .lbf-root et via les classes .lbf-* explicites. */

.lbf-root *,
.lbf-root *::before,
.lbf-root *::after { box-sizing: border-box; }
.lbf-root {
  font-family: var(--f-body);
  font-weight: 400;
  line-height: 1.5;
  color: var(--d-text);
  background: var(--d-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  container-type: inline-size;
  container-name: lbf;
}
.lbf-root p { margin: 0; }
.lbf-root h1, .lbf-root h2, .lbf-root h3, .lbf-root h4, .lbf-root h5, .lbf-root h6 { margin: 0; font-weight: 600; }
.lbf-root a { color: inherit; text-decoration: none; }
.lbf-root button { font: inherit; color: inherit; background: none; border: none; padding: 0; cursor: pointer; }
.lbf-root img { max-width: 100%; display: block; }

/* ===== SECTION ===== */
.lbf-section {
  position: relative;
  padding: var(--section-py) var(--section-px);
  overflow: hidden;
}
.lbf-section.dark { background: var(--d-bg); color: var(--d-text); }
.lbf-section.light { background: var(--l-bg); color: var(--l-text); }
.lbf-section.surface-light { background: var(--l-surface); color: var(--l-text); }
.lbf-section.dark::before {
  content: ''; position: absolute; top: -30%; left: 50%;
  transform: translateX(-50%);
  width: 80vw; max-width: 1400px; height: 80vh; max-height: 800px;
  background: radial-gradient(ellipse, rgba(240, 138, 36,0.10) 0%, transparent 60%);
  pointer-events: none; z-index: 0;
}
.lbf-section.light::before {
  content: ''; position: absolute; top: 0; right: -20%;
  width: 60vw; max-width: 900px; height: 60vh; max-height: 700px;
  background: radial-gradient(ellipse, rgba(240, 138, 36,0.04) 0%, transparent 70%);
  pointer-events: none; z-index: 0;
}
.lbf-container {
  position: relative; z-index: 1;
  max-width: var(--container);
  margin: 0 auto;
}
.lbf-container.wide { max-width: var(--container-wide); }

/* ===== TYPE ===== */
.lbf-eyebrow {
  font-family: var(--f-body);
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--orange);
  display: inline-block;
}
.lbf-section.dark .lbf-eyebrow { color: var(--orange-glow); }
.lbf-display {
  font-family: var(--f-display);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.015em;
}
.lbf-display em { font-style: italic; color: var(--orange); font-weight: 600; }
.lbf-section.dark .lbf-display em { color: var(--orange-light); }
.lbf-h1 { font-size: clamp(40px, 5.6vw, 76px); }
.lbf-h2 { font-size: clamp(32px, 4.4vw, 56px); }
.lbf-h3 { font-size: clamp(22px, 2.6vw, 32px); }
.lbf-h4 { font-size: clamp(18px, 1.8vw, 24px); }
.lbf-lead {
  font-family: var(--f-body);
  font-size: clamp(15px, 1.3vw, 18px);
  font-weight: 400; line-height: 1.6;
  max-width: 56ch; color: var(--l-text-dim);
}
.lbf-section.dark .lbf-lead { color: var(--d-text-dim); }
.lbf-lead em { color: var(--orange); font-style: italic; font-weight: 500; }
.lbf-section.dark .lbf-lead em { color: var(--orange-light); }

/* ===== NAV (sticky + fade backdrop on scroll) ===== */
.lbf-nav {
  position: sticky;
  top: 0; z-index: 30;
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px var(--section-px);
  background: transparent;
  transition: background .35s var(--ease), backdrop-filter .35s var(--ease),
              border-color .35s var(--ease), box-shadow .35s var(--ease),
              padding .35s var(--ease);
  border-bottom: 1px solid transparent;
}
.lbf-nav-scrolled {
  background: rgba(26, 19, 34, 0.88);
  -webkit-backdrop-filter: blur(14px);
          backdrop-filter: blur(14px);
  border-bottom-color: var(--d-border);
  box-shadow: 0 4px 24px -8px rgba(0, 0, 0, 0.35);
  padding-top: 14px; padding-bottom: 14px;
}
/* En reverse / all-light, le bg sticky devient clair */
.lbf-root[data-theme="dark"] .lbf-nav-scrolled,
.lbf-root[data-theme="all-light"] .lbf-nav-scrolled {
  background: rgba(255, 255, 255, 0.92);
  border-bottom-color: var(--l-border);
  box-shadow: 0 4px 24px -8px rgba(26, 19, 34, 0.12);
}
.lbf-root[data-theme="all-dark"] .lbf-nav-scrolled {
  background: rgba(26, 19, 34, 0.88);
}
.lbf-nav.on-dark { color: var(--d-text); }
.lbf-nav-brand {
  font-family: var(--f-display); font-style: italic; font-weight: 600;
  font-size: 22px; letter-spacing: -0.02em;
}
.lbf-nav-brand em { color: var(--orange); font-style: italic; }
.lbf-nav-links { display: flex; gap: 28px; font-size: 14px; font-weight: 500; }
.lbf-nav-links a { position: relative; opacity: 0.88; font-weight: 500; transition: opacity .2s var(--ease); }
.lbf-nav-links a:hover { opacity: 1; }
.lbf-nav-links a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -6px;
  height: 1px; background: var(--orange);
  transform: scaleX(0); transform-origin: left;
  transition: transform .3s var(--ease);
}
.lbf-nav-links a:hover::after { transform: scaleX(1); }
.lbf-nav-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px;
  height: 34px;
  border-radius: 100px;
  background: linear-gradient(135deg, #F5A552 0%, #F08A24 55%, #D97114 100%);
  color: #fff !important;
  font-size: 12.5px; font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
  border: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 6px 16px -6px rgba(240, 138, 36, 0.5);
  transition: transform .2s var(--ease), box-shadow .25s var(--ease);
}
.lbf-nav-cta:hover {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 10px 24px -6px rgba(240, 138, 36, 0.6);
}
.lbf-nav-cta svg { width: 13px; height: 13px; flex-shrink: 0; }
@container lbf (max-width: 980px) {
  .lbf-nav-links { gap: 18px; font-size: 13px; }
}
@container lbf (max-width: 860px) {
  .lbf-nav-links { gap: 14px; font-size: 12.5px; }
}

/* ===== NAV BURGER (tablette + mobile) ===== */
.lbf-nav-burger {
  display: none;
  width: 36px; height: 36px;
  align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  color: inherit;
  cursor: pointer;
  padding: 0;
  transition: background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.lbf-nav-burger:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.22);
}
.lbf-nav-burger:active { transform: scale(0.96); }
.lbf-nav-burger-bars {
  position: relative;
  display: block;
  width: 16px; height: 12px;
}
.lbf-nav-burger-bars span {
  position: absolute; left: 0; right: 0;
  height: 1.5px;
  background: currentColor;
  border-radius: 2px;
  transition: transform .25s var(--ease), opacity .2s var(--ease), top .25s var(--ease);
}
.lbf-nav-burger-bars span:nth-child(1) { top: 0; }
.lbf-nav-burger-bars span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.lbf-nav-burger-bars span:nth-child(3) { top: calc(100% - 1.5px); }
.lbf-nav-burger-bars[data-open="true"] span:nth-child(1) { top: 50%; transform: translateY(-50%) rotate(45deg); }
.lbf-nav-burger-bars[data-open="true"] span:nth-child(2) { opacity: 0; }
.lbf-nav-burger-bars[data-open="true"] span:nth-child(3) { top: 50%; transform: translateY(-50%) rotate(-45deg); }

/* ===== NAV DRAWER (panel deroulant tablette + mobile) ===== */
.lbf-nav-drawer {
  display: none;
  position: absolute;
  top: 100%; left: 0; right: 0;
  flex-direction: column;
  padding: 8px var(--section-px) 18px;
  background: rgba(26, 19, 34, 0.96);
  -webkit-backdrop-filter: blur(14px);
          backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--d-border);
  box-shadow: 0 12px 32px -16px rgba(0, 0, 0, 0.5);
  transform: translateY(-8px);
  opacity: 0;
  pointer-events: none;
  transition: transform .25s var(--ease), opacity .25s var(--ease);
}
.lbf-nav-drawer[data-open="true"] {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.lbf-nav-drawer a {
  display: block;
  padding: 14px 4px;
  font-size: 15px; font-weight: 500;
  color: var(--d-text);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition: color .2s var(--ease), padding-left .2s var(--ease);
}
.lbf-nav-drawer a:last-child { border-bottom: none; }
.lbf-nav-drawer a:hover {
  color: var(--orange);
  padding-left: 8px;
}
.lbf-root[data-theme="dark"] .lbf-nav-drawer,
.lbf-root[data-theme="all-light"] .lbf-nav-drawer {
  background: rgba(255, 255, 255, 0.96);
  border-bottom-color: var(--l-border);
}
.lbf-root[data-theme="dark"] .lbf-nav-drawer a,
.lbf-root[data-theme="all-light"] .lbf-nav-drawer a {
  color: var(--l-text);
  border-bottom-color: rgba(26, 19, 34, 0.08);
}

/* Bascule tablette + mobile : on cache les liens horizontaux et on revele
   le burger + le drawer. Place apres les regles de base pour gagner la cascade. */
@container lbf (max-width: 820px) {
  .lbf-nav-links { display: none; }
  .lbf-nav-burger { display: inline-flex; }
  .lbf-nav-drawer { display: flex; }
}

/* ===== BUTTONS ===== */
.lbf-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px;
  font-family: var(--f-body);
  font-size: 14.5px; font-weight: 500; letter-spacing: 0.01em;
  padding: 14px 22px; border-radius: 12px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform .22s var(--ease), box-shadow .22s ease, background .22s ease, border-color .22s ease, color .22s ease;
  white-space: nowrap;
}
.lbf-btn:active { transform: scale(0.98); }
.lbf-btn svg { width: 16px; height: 16px; }
.lbf-btn-primary {
  background: var(--orange); color: #fff;
  box-shadow: 0 1px 0 0 var(--orange-deep) inset;
}
.lbf-btn-primary:hover {
  background: var(--orange-deep);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -8px rgba(240, 138, 36,0.45);
}
.lbf-btn-ghost-light {
  background: transparent; color: var(--l-text);
  border-color: var(--l-border);
}
.lbf-btn-ghost-light:hover { border-color: var(--orange); transform: translateY(-2px); }
.lbf-btn-ghost-dark {
  background: transparent; color: var(--d-text);
  border-color: var(--d-border-2);
}
.lbf-btn-ghost-dark:hover {
  border-color: var(--orange-light);
  background: rgba(255,255,255,0.03);
  transform: translateY(-2px);
}
.lbf-btn-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.lbf-btn-row.center { justify-content: center; }

/* ===== NEWSLETTER (host pour FluentForm) ===== */
.lbf-newsletter-host {
  display: flex; gap: 8px;
  padding: 6px;
  border-radius: 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--d-border-2);
  max-width: 480px;
  margin-top: 32px;
  align-items: center;
  min-width: 0;
}
.lbf-section.light .lbf-newsletter-host { background: var(--l-surface); border-color: var(--l-border); }

/* Override generique de FluentForm pour coller au design Sage */
.lbf-newsletter-host > form,
.lbf-newsletter-host .frm-fluent-form,
.lbf-newsletter-host .ff-el-group,
.lbf-newsletter-host .ff-el-form-control,
.lbf-newsletter-host .ff_columns,
.lbf-newsletter-host .ff-t-cell,
.lbf-newsletter-host .ff-el-input--container {
  flex: 1; margin: 0; padding: 0;
  background: transparent !important; border: none !important;
  display: flex; gap: 8px; align-items: center; width: 100%;
  min-width: 0;
}
.lbf-newsletter-host label,
.lbf-newsletter-host .ff-el-label,
.lbf-newsletter-host .ff-message,
.lbf-newsletter-host .ff-message-success,
.lbf-newsletter-host .ff-error-message,
.lbf-newsletter-host .ff-el-help-message,
.lbf-newsletter-host h1,
.lbf-newsletter-host h2,
.lbf-newsletter-host h3,
.lbf-newsletter-host h4,
.lbf-newsletter-host .ff-el-section-title { display: none !important; }
.lbf-newsletter-host input[type="email"],
.lbf-newsletter-host input[type="text"] {
  flex: 1; min-width: 0;
  background: transparent !important;
  border: none !important; outline: none !important;
  padding: 10px 14px;
  font-family: var(--f-body); font-size: 14.5px;
  color: inherit !important;
  box-shadow: none !important;
}
.lbf-newsletter-host input::placeholder { color: currentColor; opacity: 0.45; }
.lbf-newsletter-host button[type="submit"],
.lbf-newsletter-host .ff-btn-submit,
.lbf-newsletter-host .ff-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  border-radius: 10px !important;
  background: linear-gradient(135deg, #F5A552 0%, #F08A24 55%, #D97114 100%) !important;
  color: #fff !important;
  font-size: 13.5px; font-weight: 600;
  border: none !important; cursor: pointer;
  font-family: var(--f-body);
  letter-spacing: 0.02em;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
  white-space: nowrap;
  width: auto !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 6px 16px -6px rgba(240, 138, 36, 0.5);
}
.lbf-newsletter-host button[type="submit"]:hover,
.lbf-newsletter-host .ff-btn-submit:hover {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 10px 22px -6px rgba(240, 138, 36, 0.6);
}
.lbf-newsletter-host .ff-btn-submit svg,
.lbf-newsletter-host button[type="submit"] svg {
  width: 14px; height: 14px;
  animation: lbf-newsletter-bob 2.4s ease-in-out infinite;
}
@keyframes lbf-newsletter-bob {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  50%      { transform: translate(2px, -2px) rotate(8deg); }
}
.lbf-newsletter-host button[type="submit"]:hover svg,
.lbf-newsletter-host .ff-btn-submit:hover svg {
  animation: lbf-newsletter-lift 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes lbf-newsletter-lift {
  0%   { transform: translate(0, 0) rotate(0); }
  60%  { transform: translate(4px, -6px) rotate(-12deg); }
  100% { transform: translate(8px, -10px) rotate(-18deg); opacity: 0.6; }
}
@media (prefers-reduced-motion: reduce) {
  .lbf-newsletter-host button[type="submit"] svg,
  .lbf-newsletter-host .ff-btn-submit svg { animation: none; }
}

/* Newsletter en colonne sur petits viewports : input pleine largeur dessus,
   bouton pleine largeur dessous. Evite la troncature de "Recevoir la newsletter". */
@container lbf (max-width: 480px) {
  .lbf-newsletter-host {
    flex-direction: column;
    align-items: stretch;
    padding: 8px;
  }
  .lbf-newsletter-host > form,
  .lbf-newsletter-host .frm-fluent-form,
  .lbf-newsletter-host .ff-el-group,
  .lbf-newsletter-host .ff-el-form-control,
  .lbf-newsletter-host .ff_columns,
  .lbf-newsletter-host .ff-t-cell,
  .lbf-newsletter-host .ff-el-input--container {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .lbf-newsletter-host input[type="email"],
  .lbf-newsletter-host input[type="text"] {
    width: 100%;
    padding: 12px 14px;
  }
  .lbf-newsletter-host button[type="submit"],
  .lbf-newsletter-host .ff-btn-submit,
  .lbf-newsletter-host .ff-btn {
    width: 100% !important;
    justify-content: center;
    padding: 12px 16px;
  }
}

.lbf-newsletter-meta {
  margin-top: 12px;
  font-size: 12px;
  color: var(--d-text-muted);
  line-height: 1.5;
}

/* CTAs primaires "premium" qui partagent le langage visuel du bouton newsletter
   et du magnet Club : degrade orange + halo + inset white. Appliques aux CTAs
   d action principaux (call, deals, simulateur, club, whatsapp). */
.lbf-cta-call-host,
.lbf-cta-deals-host,
.lbf-cta-sim-host,
.lbf-cta-club-host,
.lbf-cta-agenda-host,
.lbf-cta-wa-host {
  background: linear-gradient(135deg, #F5A552 0%, #F08A24 55%, #D97114 100%) !important;
  border: 0 !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 6px 16px -6px rgba(240, 138, 36, 0.5) !important;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease) !important;
}
.lbf-cta-call-host:hover,
.lbf-cta-deals-host:hover,
.lbf-cta-sim-host:hover,
.lbf-cta-club-host:hover,
.lbf-cta-agenda-host:hover,
.lbf-cta-wa-host:hover {
  background: linear-gradient(135deg, #F5A552 0%, #F08A24 55%, #D97114 100%) !important;
  transform: translateY(-2px) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 12px 24px -8px rgba(240, 138, 36, 0.6) !important;
}

/* Icone calendrier dynamique pour "Reserver un call" (idle wobble + hover pop). */
.lbf-cta-call-icon {
  width: 16px; height: 16px;
  transform-origin: center;
  animation: lbf-cta-call-wobble 2.4s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes lbf-cta-call-wobble {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50%      { transform: rotate(-4deg) translateY(-1px); }
}
.lbf-cta-call-host:hover .lbf-cta-call-icon {
  animation: lbf-cta-call-pop 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes lbf-cta-call-pop {
  0%   { transform: rotate(0deg) scale(1); }
  60%  { transform: rotate(-12deg) scale(1.18); }
  100% { transform: rotate(-6deg) scale(1.1); }
}

/* Icone cloche dynamique pour "Recevoir les prochains deals" : idle = balancement
   subtil depuis le sommet, hover = sonnerie (5 oscillations rapides). */
.lbf-cta-deals-icon {
  width: 16px; height: 16px;
  transform-origin: 50% 15%;
  animation: lbf-cta-deals-tilt 2.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes lbf-cta-deals-tilt {
  0%, 100% { transform: rotate(0deg); }
  50%      { transform: rotate(-6deg); }
}
.lbf-cta-deals-host:hover .lbf-cta-deals-icon {
  animation: lbf-cta-deals-ring 0.65s ease forwards;
}
@keyframes lbf-cta-deals-ring {
  0%   { transform: rotate(0); }
  18%  { transform: rotate(-16deg); }
  36%  { transform: rotate(13deg); }
  54%  { transform: rotate(-10deg); }
  72%  { transform: rotate(7deg); }
  100% { transform: rotate(0); }
}

/* Icone calculatrice pour "Telecharger le simulateur" : idle = balancement
   leger + breath, hover = pop appuye (geste "calcul fait"). */
.lbf-cta-sim-icon {
  width: 16px; height: 16px;
  transform-origin: center;
  animation: lbf-cta-sim-rock 2.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes lbf-cta-sim-rock {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50%      { transform: rotate(-3deg) scale(1.04); }
}
.lbf-cta-sim-host:hover .lbf-cta-sim-icon {
  animation: lbf-cta-sim-pop 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes lbf-cta-sim-pop {
  0%   { transform: rotate(0) scale(1); }
  35%  { transform: rotate(-8deg) scale(1.18) translateY(-1px); }
  65%  { transform: rotate(6deg) scale(1.12); }
  100% { transform: rotate(-3deg) scale(1.08); }
}

/* Icone calendrier pour "Decouvrir toutes les dates" : idle = wobble doux
   (rappel calendrier), hover = pop avec inclinaison (geste "j'epingle"). */
.lbf-cta-agenda-icon {
  width: 16px; height: 16px;
  transform-origin: center;
  animation: lbf-cta-agenda-bob 2.4s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes lbf-cta-agenda-bob {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-2px) rotate(-3deg); }
}
.lbf-cta-agenda-host:hover .lbf-cta-agenda-icon {
  animation: lbf-cta-agenda-pop 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes lbf-cta-agenda-pop {
  0%   { transform: translateY(0) rotate(0deg) scale(1); }
  40%  { transform: translateY(-3px) rotate(8deg) scale(1.18); }
  100% { transform: translateY(0) rotate(0deg) scale(1.1); }
}

/* Icone etoile pour "Rejoindre Le Club" : idle = scintille, hover = tour complet. */
.lbf-cta-club-icon {
  width: 16px; height: 16px;
  transform-origin: center;
  animation: lbf-cta-club-twinkle 2.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes lbf-cta-club-twinkle {
  0%, 100% { transform: rotate(0deg) scale(1); opacity: 1; }
  50%      { transform: rotate(22deg) scale(1.12); opacity: 0.85; }
}
.lbf-cta-club-host:hover .lbf-cta-club-icon {
  animation: lbf-cta-club-spin 0.65s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes lbf-cta-club-spin {
  0%   { transform: rotate(0) scale(1); }
  60%  { transform: rotate(180deg) scale(1.25); }
  100% { transform: rotate(360deg) scale(1.15); }
}

/* Icone bulle de chat pour "Rejoindre le WhatsApp" : idle = bounce subtil
   (notification arrive), hover = ping (typing en cours). */
.lbf-cta-wa-icon {
  width: 16px; height: 16px;
  transform-origin: center;
  animation: lbf-cta-wa-bounce 2.4s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes lbf-cta-wa-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  50%      { transform: translateY(-2px) scale(1.06); }
}
.lbf-cta-wa-host:hover .lbf-cta-wa-icon {
  animation: lbf-cta-wa-ping 0.55s ease forwards;
}
@keyframes lbf-cta-wa-ping {
  0%   { transform: translateY(0) scale(1) rotate(0); }
  40%  { transform: translateY(-3px) scale(1.2) rotate(-8deg); }
  70%  { transform: translateY(-2px) scale(1.15) rotate(6deg); }
  100% { transform: translateY(0) scale(1.1) rotate(0); }
}

@media (prefers-reduced-motion: reduce) {
  .lbf-cta-call-icon,
  .lbf-cta-deals-icon,
  .lbf-cta-sim-icon,
  .lbf-cta-club-icon,
  .lbf-cta-agenda-icon,
  .lbf-cta-wa-icon { animation: none !important; }
}
.lbf-section.light .lbf-newsletter-meta { color: var(--l-text-muted); }
.lbf-newsletter-avatars { display: flex; align-items: center; }
.lbf-newsletter-avatars span {
  width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid var(--d-bg);
  margin-left: -6px;
  background: linear-gradient(135deg, var(--orange-glow), var(--orange-deep));
  font-family: var(--f-display); font-size: 10px; color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 600;
}
.lbf-newsletter-avatars span:first-child { margin-left: 0; }
.lbf-section.light .lbf-newsletter-avatars span { border-color: var(--l-bg); }

/* ===== HERO ===== */
.lbf-hero { min-height: 92cqh; display: flex; align-items: center; }
.lbf-hero-grid {
  display: grid; grid-template-columns: 1.15fr 1fr;
  gap: 64px; align-items: center; width: 100%;
}
.lbf-hero-meta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px; border-radius: 100px;
  background: rgba(253, 248, 241,0.04);
  border: 1px solid rgba(253, 248, 241,0.10);
  font-size: 12px; font-weight: 500;
  color: var(--d-text);
  margin-bottom: 24px;
}
.lbf-hero-meta strong { color: var(--orange-light); font-weight: 600; }
.lbf-pulse-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--orange);
  animation: lbf-pulseDot 2.4s ease infinite;
}
.lbf-hero-visual {
  position: relative; aspect-ratio: 4/5;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--d-surface) 0%, #2a1d18 100%);
  border: 1px solid var(--d-border);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.lbf-hero-visual::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(240, 138, 36,0.25), transparent 60%);
}
.lbf-hero-visual-content { position: relative; text-align: center; padding: 32px; z-index: 1; }
.lbf-hero-monogram {
  font-family: var(--f-display); font-style: italic; font-weight: 600;
  font-size: clamp(72px, 10cqw, 140px);
  color: var(--orange);
  line-height: 1; letter-spacing: -0.04em;
}
.lbf-hero-monogram-sub {
  margin-top: 16px;
  font-family: var(--f-display); font-size: 18px;
  font-style: italic; color: var(--d-text-dim);
}
.lbf-hero-chips { position: absolute; inset: 0; pointer-events: none; }
.lbf-hero-chip {
  position: absolute;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: 100px;
  background: rgba(28,27,39,0.9);
  border: 1px solid var(--d-border-2);
  backdrop-filter: blur(6px);
  font-size: 12px; font-weight: 500;
  color: var(--d-text);
  box-shadow: 0 12px 32px -12px rgba(0,0,0,0.5);
}
.lbf-hero-chip strong { color: var(--orange-light); }
.lbf-hero-chip.tl { top: 24px; left: 24px; animation: lbf-float 6s var(--ease) infinite; }
.lbf-hero-chip.br { bottom: 24px; right: 24px; animation: lbf-float 6s var(--ease) infinite reverse; }

/* ===== STATS BAND ===== */
.lbf-statband {
  background: var(--d-bg); color: var(--d-text);
  padding: 40px var(--section-px);
  border-top: 1px solid var(--d-border);
  border-bottom: 1px solid var(--d-border);
}
.lbf-statband-inner {
  max-width: 960px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.lbf-statband-item {
  display: flex; align-items: baseline; justify-content: center; gap: 14px;
  background: transparent; border: none;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 10px;
  transition: transform .25s var(--ease), background .25s var(--ease);
  font: inherit; color: inherit;
}
.lbf-statband-item:hover {
  transform: translateY(-2px);
  background: rgba(240, 138, 36, 0.06);
}
.lbf-statband-item:hover .lbf-statband-num { color: var(--orange-light); }
.lbf-statband-item:hover .lbf-statband-lbl { color: var(--d-text); }
.lbf-statband-item .lbf-statband-arrow {
  width: 14px; height: 14px;
  color: var(--orange);
  opacity: 0; transform: translate(-4px, 2px);
  transition: opacity .25s var(--ease), transform .25s var(--ease);
}
.lbf-statband-item:hover .lbf-statband-arrow {
  opacity: 1; transform: translate(0, 2px);
}
.lbf-statband-item:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}
.lbf-statband-num {
  font-family: var(--f-display);
  font-size: clamp(28px, 3.2vw, 42px);
  font-weight: 600; color: var(--orange);
  line-height: 1; letter-spacing: -0.02em;
}
.lbf-statband-num em { font-style: italic; }
.lbf-statband-lbl {
  font-family: var(--f-body);
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--d-text-muted);
}

/* ===== ECO 3 PILIERS ===== */
.lbf-eco-header { max-width: 720px; margin-bottom: 64px; }
.lbf-eco-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lbf-eco-card {
  background: var(--l-surface);
  border: 1px solid var(--l-border);
  border-radius: 16px; padding: 32px;
  transition: transform .3s var(--ease), border-color .3s ease, box-shadow .3s ease;
  position: relative; overflow: hidden;
}
.lbf-eco-card:hover {
  transform: translateY(-4px);
  border-color: var(--orange);
  box-shadow: 0 16px 40px -16px rgba(240, 138, 36,0.18);
}
.lbf-eco-card::before {
  content: ''; position: absolute; top: 0; left: 0;
  width: 32px; height: 2px; background: var(--orange);
  transition: width .4s var(--ease);
}
.lbf-eco-card:hover::before { width: 64px; }
.lbf-eco-num {
  position: absolute; top: 24px; right: 28px;
  font-family: var(--f-display); font-style: italic;
  font-size: 14px; color: var(--l-text-muted);
  letter-spacing: 0.04em;
}
.lbf-eco-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  background: rgba(240, 138, 36,0.08);
  color: var(--orange);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 24px;
}
.lbf-eco-icon svg { width: 24px; height: 24px; }
.lbf-eco-title {
  font-family: var(--f-display);
  font-size: 26px; font-weight: 600;
  margin-bottom: 12px; line-height: 1.15;
}
.lbf-eco-title em { font-style: italic; color: var(--orange); }
.lbf-eco-body {
  font-size: 14.5px; line-height: 1.6;
  color: var(--l-text-dim);
}
.lbf-eco-link {
  margin-top: 24px;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 500;
  color: var(--orange);
  border-bottom: 1px solid rgba(240, 138, 36,0.4);
  padding-bottom: 2px;
  transition: color .2s ease, border-color .2s ease, gap .2s var(--ease);
}
.lbf-eco-link:hover { color: var(--orange-deep); border-color: var(--orange-deep); gap: 10px; }

/* ===== CLUB DARK ===== */
.lbf-club-grid {
  display: grid; grid-template-columns: 1fr 1.1fr;
  gap: 80px; align-items: center;
}
.lbf-quote {
  font-family: var(--f-display); font-style: italic;
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 400; line-height: 1.45;
  color: var(--d-text);
  padding-left: 24px;
  border-left: 2px solid var(--orange);
  margin-top: 32px;
}
.lbf-quote-author {
  margin-top: 16px;
  font-family: var(--f-body); font-size: 13px;
  letter-spacing: 0.04em; color: var(--d-text-dim);
  font-style: normal;
}
.lbf-quote-author strong { color: var(--orange-light); font-weight: 600; }
.lbf-club-stats {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--d-border);
  border-radius: 16px; overflow: hidden;
  border: 1px solid var(--d-border);
}
.lbf-club-stat {
  background: var(--d-surface);
  padding: 32px 28px;
  position: relative; overflow: hidden;
}
.lbf-club-stat::before {
  content: ''; position: absolute; top: 0; left: 0;
  width: 24px; height: 1px; background: var(--orange);
}
.lbf-club-num {
  font-family: var(--f-display);
  font-size: clamp(40px, 4.5vw, 56px);
  font-weight: 600; color: var(--orange);
  line-height: 1; letter-spacing: -0.02em;
}
.lbf-club-num em { font-style: italic; }
.lbf-club-lbl {
  margin-top: 12px;
  font-size: 12px; letter-spacing: 0.13em;
  text-transform: uppercase; color: var(--d-text-dim);
}

/* ===== COMMUNITY ===== */
.lbf-comm-grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 80px; align-items: center;
}
.lbf-chat {
  background: var(--l-surface);
  border-radius: 20px;
  padding: 24px;
  border: 1px solid var(--l-border);
  display: flex; flex-direction: column; gap: 12px;
  max-height: 480px; overflow: hidden;
  position: relative;
}
.lbf-chat::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 80px;
  background: linear-gradient(to bottom, transparent, var(--l-surface));
  pointer-events: none;
}
.lbf-chat-msg { display: flex; gap: 10px; align-items: flex-start; max-width: 80%; }
.lbf-chat-msg.self { align-self: flex-end; flex-direction: row-reverse; }
.lbf-chat-avatar {
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg, var(--orange-glow), var(--orange-deep));
  flex-shrink: 0;
  font-family: var(--f-display); font-size: 11px; font-weight: 600;
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
}
.lbf-chat-bubble {
  padding: 10px 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--l-border);
  font-size: 13.5px; line-height: 1.5;
  color: var(--l-text);
}
.lbf-chat-bubble .name {
  display: block;
  font-size: 11px; font-weight: 600;
  color: var(--orange);
  margin-bottom: 2px;
}
.lbf-chat-msg.self .lbf-chat-bubble {
  background: rgba(240, 138, 36,0.08);
  border-color: rgba(240, 138, 36,0.2);
}

/* ===== INVEST ===== */
.lbf-invest-grid {
  display: grid; grid-template-columns: 1fr;
  gap: 16px; margin-top: 48px;
}
.lbf-invest-row {
  display: grid;
  grid-template-columns: 80px 2fr 1fr 1fr;
  align-items: center; gap: 24px;
  padding: 20px 24px;
  background: var(--d-surface);
  border: 1px solid var(--d-border);
  border-radius: 16px;
  transition: transform .3s var(--ease), border-color .3s ease;
  text-decoration: none;
  color: inherit;
}
.lbf-invest-row:hover { background: rgba(240, 138, 36, 0.04); }
.lbf-invest-row:hover {
  transform: translateX(4px);
  border-color: rgba(240, 138, 36,0.4);
}
.lbf-invest-row.head {
  background: transparent; border: none;
  padding: 0 24px 8px; pointer-events: none;
}
.lbf-invest-row.head > * {
  font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--d-text-muted);
}
.lbf-invest-date {
  font-family: var(--f-display); font-style: italic;
  font-size: 14px; color: var(--orange-light);
}
.lbf-invest-deal {
  font-family: var(--f-display);
  font-size: 18px; font-weight: 600;
  color: var(--d-text); line-height: 1.2;
}
.lbf-invest-deal small {
  display: block;
  font-family: var(--f-body); font-size: 12px;
  font-weight: 400; color: var(--d-text-muted);
  letter-spacing: 0.04em; margin-top: 4px;
}
.lbf-invest-num {
  font-family: var(--f-display);
  font-size: 22px; font-weight: 600;
  color: var(--d-text);
  font-variant-numeric: tabular-nums;
}
.lbf-invest-num em { font-style: italic; color: var(--orange); }
.lbf-invest-status {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.06em; border-radius: 100px;
  border: 1px solid var(--d-border-2);
  color: var(--d-text-dim);
  width: fit-content;
}
.lbf-invest-status.live { color: var(--success); border-color: rgba(34,197,94,0.3); }
.lbf-invest-status.live::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--success);
  animation: lbf-pulseDot 2.4s ease infinite;
}
/* Co-investissement à venir : bleu info, signale "a suivre / ouverture imminente". */
.lbf-invest-status.soon { color: var(--info); border-color: rgba(59,130,246,0.35); }
.lbf-invest-status.soon::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--info);
  animation: lbf-pulseDot 2.4s ease infinite;
}
.lbf-invest-status.done { color: var(--orange-light); border-color: rgba(245,169,106,0.3); }
/* Disclaimer pousse au plus bas du dark : grand margin-top et padding-bottom
   reduit sur la section pour que le texte de mention legale flotte juste
   au-dessus du bord inferieur du fond noir, bien detache des CTAs. */
.lbf-invest-disclaimer {
  margin: clamp(96px, 14vw, 180px) 0 0;
  padding-top: clamp(28px, 4vw, 40px);
  border-top: 1px solid var(--d-border);
  font-family: var(--f-body);
  font-size: 11.5px;
  font-style: italic;
  line-height: 1.5;
  color: var(--d-text-muted);
  display: flex; align-items: center; gap: 8px;
}
#invest { padding-bottom: clamp(24px, 3vw, 36px); }
.lbf-invest-disclaimer span { color: var(--orange-light); font-style: normal; font-size: 13px; }

/* ===== BLOG ===== */
.lbf-blog-grid {
  display: grid; grid-template-columns: 1.4fr 1fr;
  gap: 48px; margin-top: 48px;
}
.lbf-blog-feature {
  padding: 40px;
  background: var(--l-surface);
  border: 1px solid var(--l-border);
  border-radius: 20px;
  display: flex; flex-direction: column; gap: 24px;
  position: relative; overflow: hidden;
  transition: transform .3s var(--ease), border-color .3s ease, box-shadow .3s ease;
  min-height: 480px; justify-content: space-between;
}
.lbf-blog-feature:hover {
  transform: translateY(-4px);
  border-color: var(--orange);
  box-shadow: 0 16px 40px -16px rgba(240, 138, 36,0.18);
}
.lbf-blog-feature::before {
  content: ''; position: absolute; top: 0; left: 0;
  width: 64px; height: 2px; background: var(--orange);
}
.lbf-blog-feature .meta {
  display: flex; align-items: center; gap: 12px;
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--l-text-muted);
}
.lbf-blog-feature .meta .cat { color: var(--orange); }
.lbf-blog-feature h3 {
  font-family: var(--f-display);
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 600; line-height: 1.1;
  letter-spacing: -0.015em;
}
.lbf-blog-feature h3 em { font-style: italic; color: var(--orange); }
.lbf-blog-feature p {
  font-size: 15px; line-height: 1.6;
  color: var(--l-text-dim); max-width: 56ch;
}
.lbf-blog-feature .read {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 500;
  color: var(--orange);
  border-bottom: 1px solid rgba(240, 138, 36,0.4);
  width: fit-content; padding-bottom: 2px;
}
.lbf-blog-list { display: flex; flex-direction: column; gap: 0; }
.lbf-blog-item {
  padding: 24px 0;
  border-bottom: 1px solid var(--l-border);
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 20px; align-items: start;
  transition: transform .3s var(--ease);
  cursor: pointer;
}
.lbf-blog-item:first-child { padding-top: 0; }
.lbf-blog-item:last-child { border-bottom: none; }
.lbf-blog-item:hover { transform: translateX(4px); }
.lbf-blog-item:hover .blog-arrow { transform: translate(2px, -2px); color: var(--orange); }
.lbf-blog-item .num {
  font-family: var(--f-display); font-style: italic;
  font-size: 22px; font-weight: 500;
  color: var(--l-text-muted);
  letter-spacing: -0.01em;
}
.lbf-blog-item .meta {
  display: flex; align-items: center; gap: 10px;
  font-size: 10.5px; font-weight: 500;
  letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--l-text-muted); margin-bottom: 8px;
}
.lbf-blog-item .meta .cat { color: var(--orange); }
.lbf-blog-item h4 {
  font-family: var(--f-display);
  font-size: 18px; font-weight: 600;
  line-height: 1.25; letter-spacing: -0.005em;
  display: flex; justify-content: space-between; gap: 12px;
}
.blog-arrow {
  flex-shrink: 0; color: var(--l-text-muted);
  transition: color .2s ease, transform .2s var(--ease);
}

/* ===== TEAM ===== */
.lbf-team-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 48px; margin-top: 64px;
}
.lbf-team-card {
  position: relative;
  padding: 48px 40px;
  background: var(--d-surface);
  border: 1px solid var(--d-border);
  border-radius: 24px;
  overflow: hidden;
  display: grid; grid-template-columns: auto 1fr;
  gap: 32px; align-items: center;
  transition: transform .3s var(--ease), border-color .3s ease;
}
.lbf-team-card:hover { transform: translateY(-4px); border-color: rgba(240, 138, 36,0.3); }
.lbf-team-portrait {
  width: 140px; height: 140px;
  border-radius: 50%;
  position: relative;
  background: linear-gradient(135deg, var(--d-surface-2), #2a1d18);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.lbf-team-portrait::before {
  content: ''; position: absolute; inset: -8px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, var(--orange), transparent 30%, var(--orange) 60%, transparent 90%, var(--orange));
  animation: lbf-spin 8s linear infinite;
  z-index: 0;
}
.lbf-team-portrait::after {
  content: ''; position: absolute; inset: -3px;
  border-radius: 50%; background: var(--d-surface);
  z-index: 0;
}
.lbf-team-portrait .face {
  position: relative; z-index: 1;
  width: 100%; height: 100%;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--orange-glow) 0%, var(--orange-deep) 100%);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display); font-style: italic;
  font-size: 56px; font-weight: 600;
  color: #fff; letter-spacing: -0.02em;
}
.lbf-team-name { font-family: var(--f-display); font-size: 28px; font-weight: 600; letter-spacing: -0.015em; }
.lbf-team-name em { font-style: italic; color: var(--orange); }
.lbf-team-role {
  margin-top: 6px;
  font-size: 12px; font-weight: 500;
  letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--d-text-muted);
}
.lbf-team-bio {
  margin-top: 16px;
  font-family: var(--f-display); font-style: italic;
  font-size: 15px; line-height: 1.5;
  color: var(--d-text-dim);
}
.lbf-team-tags { margin-top: 16px; display: flex; gap: 8px; flex-wrap: wrap; }
.lbf-team-tags span {
  padding: 4px 10px; border-radius: 100px;
  border: 1px solid var(--d-border-2);
  font-size: 11px; color: var(--d-text-dim);
}
.lbf-team-linkedin {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  margin-top: 18px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--d-border-2);
  color: var(--d-text-dim);
  transition: all .25s var(--ease);
}
.lbf-team-linkedin svg { width: 16px; height: 16px; }
.lbf-team-linkedin:hover {
  background: #0A66C2;
  border-color: #0A66C2;
  color: #fff;
  transform: translateY(-2px);
}

/* Club topics carousel : remplace le panneau de stats par un cycler des
   terrains/avantages du Club. Animation fondu + scale + blur, futuriste,
   avec gradient multi-radial + drift subtil pour profondeur. */
.lbf-club-topics {
  background:
    radial-gradient(ellipse 65% 55% at 90% -5%, rgba(240, 138, 36, 0.28), transparent 60%),
    radial-gradient(ellipse 60% 60% at 5% 105%, rgba(245, 169, 106, 0.18), transparent 60%),
    radial-gradient(ellipse 90% 80% at 50% 50%, rgba(200, 81, 20, 0.06), transparent 75%),
    linear-gradient(135deg, var(--d-surface) 0%, var(--d-surface-2) 100%);
  border: 1px solid var(--d-border-2);
  border-radius: 16px;
  padding: 32px 28px 28px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.lbf-club-topics::before {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 32px; height: 2px;
  background: var(--orange);
  z-index: 2;
}
/* Aurora drifting : couche secondaire qui derive lentement pour donner
   l impression d un fond vivant, futuriste */
.lbf-club-topics::after {
  content: '';
  position: absolute; inset: -10%;
  background:
    radial-gradient(ellipse 40% 30% at 75% 25%, rgba(245, 199, 138, 0.18), transparent 60%),
    radial-gradient(ellipse 35% 45% at 25% 75%, rgba(240, 138, 36, 0.10), transparent 60%);
  pointer-events: none;
  z-index: 0;
  animation: lbf-club-bg-drift 16s ease-in-out infinite alternate;
  filter: blur(4px);
}
@keyframes lbf-club-bg-drift {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-24px, 12px) scale(1.06); }
}
@media (prefers-reduced-motion: reduce) {
  .lbf-club-topics::after { animation: none; }
}
.lbf-club-topics-head {
  font-family: var(--f-body);
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--orange-glow);
  margin-bottom: 24px;
  text-align: center;
  position: relative; z-index: 1;
}
/* Stage : zone aeree avec un systeme de slots (grille 3x3) pour eviter
   les chevauchements. Effet 3D plus prononce : perspective resserree
   (800px = plus dramatique), translateZ +60px en focus pour pousser
   les mots franchement vers l'avant, rotation continue douce pendant
   la phase de focus pour un rendu vivant. */
.lbf-club-topics-stage {
  position: relative;
  height: 240px;
  z-index: 1;
  overflow: hidden;
  perspective: 800px;
  perspective-origin: center 50%;
  transform-style: preserve-3d;
}
.lbf-club-burst {
  position: absolute;
  transform: translate(-50%, -50%);
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(16px, 1.8cqw, 22px);
  color: var(--orange);
  line-height: 1.05;
  letter-spacing: -0.01em;
  white-space: nowrap;
  max-width: 84%;
  pointer-events: none;
  text-shadow: 0 0 24px rgba(240, 138, 36, 0.4);
  animation: lbf-burst-life 5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  will-change: opacity, filter, transform;
  transform-origin: center center;
}
.lbf-club-burst.size-l { font-size: clamp(20px, 2.4cqw, 28px); }
.lbf-club-burst.size-s { font-size: clamp(14px, 1.4cqw, 18px); }
.lbf-club-burst.tone-light { color: var(--orange-light); }
.lbf-club-burst.tone-glow  { color: var(--orange-glow); }
/* 5 etapes au lieu de 4 : entree depuis le fond + bascule de rotation
   pendant le focus (sway subtil de -3deg a +3deg) + sortie vers
   l'arriere. Le mot reste franchement en avant (translateZ +60px)
   pendant 60% de sa vie. */
@keyframes lbf-burst-life {
  0%   { opacity: 0; transform: translate(-50%, -50%) translateZ(-110px) rotateY(-18deg) rotateX(8deg)  scale(0.82); filter: blur(6px); }
  20%  { opacity: 1; transform: translate(-50%, -50%) translateZ(60px)   rotateY(-3deg)  rotateX(-1deg) scale(1.05); filter: blur(0); }
  50%  {              transform: translate(-50%, -50%) translateZ(70px)   rotateY(3deg)   rotateX(1deg)  scale(1.06); filter: blur(0); }
  80%  { opacity: 1; transform: translate(-50%, -50%) translateZ(60px)   rotateY(-1deg)  rotateX(-1deg) scale(1.04); filter: blur(0); }
  100% { opacity: 0; transform: translate(-50%, -50%) translateZ(-90px)  rotateY(18deg)  rotateX(-5deg) scale(0.9);  filter: blur(6px); }
}
.lbf-club-topics-foot {
  position: relative; z-index: 1;
  margin-top: 14px;
  font-family: var(--f-display);
  font-style: italic;
  font-size: 13px;
  color: var(--d-text-dim);
  text-align: center;
}
.lbf-club-topics-foot em {
  color: var(--orange-light);
  font-style: italic;
  font-weight: 500;
}
@media (prefers-reduced-motion: reduce) {
  .lbf-club-burst { animation: none; opacity: 0.85; filter: none; }
}

/* Animation rotation pour la quote du Club (mount via key change) */
.lbf-quote-rotate {
  animation: lbf-quote-fade 0.75s var(--ease) both;
}
@keyframes lbf-quote-fade {
  0%   { opacity: 0; transform: translateY(8px); filter: blur(2px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}

/* Hero chips cycling animation (chaque chip se renouvelle avec fade) */
.lbf-hero-chip-cycle {
  animation: lbf-chip-pop 0.65s cubic-bezier(0.34, 1.4, 0.64, 1) both;
}
@keyframes lbf-chip-pop {
  0%   { opacity: 0; transform: scale(0.85) translateY(-4px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
.lbf-hero-chip.tl.lbf-hero-chip-cycle { animation-name: lbf-chip-pop-tl; }
@keyframes lbf-chip-pop-tl {
  0%   { opacity: 0; transform: scale(0.85) translate(-6px, -6px); }
  100% { opacity: 1; transform: scale(1) translate(0, 0); }
}
.lbf-hero-chip.br.lbf-hero-chip-cycle { animation-name: lbf-chip-pop-br; }
@keyframes lbf-chip-pop-br {
  0%   { opacity: 0; transform: scale(0.85) translate(6px, 6px); }
  100% { opacity: 1; transform: scale(1) translate(0, 0); }
}

/* Stack pour chat WhatsApp (2 threads qui alternent en fondu) */
.lbf-chat-stack {
  position: relative;
  min-height: 480px;
}
.lbf-chat-stack .lbf-chat {
  position: absolute; inset: 0;
  opacity: 0;
  transform: translateY(8px) scale(0.99);
  transition: opacity 0.65s var(--ease), transform 0.65s var(--ease);
  pointer-events: none;
}
.lbf-chat-stack .lbf-chat.active {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.lbf-chat-stack-dots {
  position: absolute; bottom: -28px; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 8px;
}
.lbf-chat-stack-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--l-border-2);
  transition: background .3s var(--ease), width .3s var(--ease);
}
.lbf-chat-stack-dot.active {
  background: var(--orange);
  width: 22px;
  border-radius: 100px;
}

/* Nav contrast renforce en reverse mode (sur fond clair, full opacite + bold) */
.lbf-root[data-theme="dark"] .lbf-nav-links a {
  opacity: 1;
  font-weight: 600;
  color: var(--d-text);
}

/* Hero card spacing fix : evite que la chip BR colle au CTA en plein ecran */
.lbf-hv-a-content { padding-bottom: 64px; }
.lbf-hero-chip.br { bottom: 64px; }

/* ===== FAQ ===== */
.lbf-faq { max-width: 800px; margin: 48px auto 0; }
.lbf-faq-item .answer p { margin: 0 0 14px; }
.lbf-faq-item .answer p:last-child { margin-bottom: 0; }
.lbf-faq-item .answer a {
  color: var(--orange);
  border-bottom: 1px solid rgba(240, 138, 36, 0.4);
  transition: color .2s ease, border-color .2s ease;
}
.lbf-faq-item .answer a:hover {
  color: var(--orange-deep);
  border-bottom-color: var(--orange-deep);
}
.lbf-faq-item .answer strong { color: var(--l-text); font-weight: 600; }
.lbf-faq-item .answer em { font-style: italic; }
.lbf-section.dark .lbf-faq-item .answer strong { color: var(--d-text); }
.lbf-faq-disclaimer {
  display: block;
  margin-top: 14px;
  padding: 10px 14px;
  background: var(--l-surface);
  border-left: 2px solid var(--orange);
  border-radius: 0 6px 6px 0;
  font-size: 11.5px;
  font-style: italic;
  line-height: 1.5;
  color: var(--l-text-muted);
}
.lbf-faq-item { border-bottom: 1px solid var(--l-border); }
.lbf-faq-item summary {
  list-style: none; cursor: pointer;
  padding: 24px 0;
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  font-family: var(--f-display);
  font-size: 22px; font-weight: 600;
  letter-spacing: -0.005em;
  transition: color .2s ease;
}
.lbf-faq-item summary::-webkit-détails-marker { display: none; }
.lbf-faq-item summary::after {
  content: '+';
  font-family: var(--f-display);
  font-size: 28px; color: var(--orange);
  transition: transform .3s var(--ease);
  flex-shrink: 0; font-weight: 400;
}
.lbf-faq-item[open] summary::after { transform: rotate(45deg); }
.lbf-faq-item summary:hover { color: var(--orange); }
.lbf-faq-item .answer {
  padding: 0 0 28px;
  max-width: 64ch;
  font-size: 15px; line-height: 1.65;
  color: var(--l-text-dim);
}

/* ===== CTA + FOOTER ===== */
.lbf-cta-final { text-align: center; max-width: 720px; margin: 0 auto; }

/* Transition discrete entre FAQ (light) et CtaFinal (light) : deux sections
   blanches back-to-back. On reduit le padding combine et on pose un trait
   orange court et centre tout en haut du CtaFinal pour marquer le passage
   sans casser le fond blanc continu. */
#faq { padding-bottom: clamp(40px, 5vw, 64px); }
#cta-final {
  padding-top: clamp(48px, 6vw, 80px);
  position: relative;
}
#cta-final::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 48px; height: 2px;
  background: var(--orange);
  border-radius: 1px;
  z-index: 2;
}
.lbf-mail {
  margin-top: 48px;
  font-family: var(--f-display); font-style: italic;
  font-size: 17px; color: var(--l-text-dim);
}
.lbf-mail a {
  color: var(--orange);
  border-bottom: 1px solid rgba(240, 138, 36,0.4);
  padding-bottom: 2px;
  transition: border-color .2s ease, color .2s ease;
}
.lbf-mail a:hover { color: var(--orange-deep); border-bottom-color: var(--orange-deep); }

.lbf-footer {
  padding: 64px var(--section-px) 32px;
  background: var(--d-bg);
  color: var(--d-text-muted);
  font-family: var(--f-body);
  font-size: 13px;
}
.lbf-footer-grid {
  max-width: var(--container-wide); margin: 0 auto;
  display: grid; grid-template-columns: 1.6fr repeat(3, 1fr);
  gap: 48px; padding-bottom: 48px;
  border-bottom: 1px solid var(--d-border);
}
.lbf-footer-mail-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--d-border-2);
  color: var(--d-text-dim);
  margin-top: 16px;
  transition: all .25s var(--ease);
}
.lbf-footer-mail-btn svg { width: 15px; height: 15px; }
.lbf-footer-mail-btn:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
  transform: translateY(-2px);
}
.lbf-footer-brand {
  font-family: var(--f-display); font-style: italic;
  font-size: 32px; font-weight: 600;
  color: var(--orange); letter-spacing: -0.02em;
  display: block; margin-bottom: 16px;
}
.lbf-footer-tag {
  font-family: var(--f-display); font-style: italic;
  font-size: 16px; color: var(--d-text-dim);
  line-height: 1.5; max-width: 32ch;
}
.lbf-footer-social {
  margin-top: 20px;
  display: inline-flex; align-items: center; gap: 10px;
}
.lbf-footer-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--d-border-2);
  color: var(--d-text-dim);
  transition: all .25s var(--ease);
}
.lbf-footer-social a svg { width: 16px; height: 16px; }
.lbf-footer-social a:hover { transform: translateY(-2px); }
.lbf-footer-social a.lbf-footer-li:hover {
  background: #0A66C2; border-color: #0A66C2; color: #fff;
}
.lbf-footer-social a.lbf-footer-yt:hover {
  background: #FF0000; border-color: #FF0000; color: #fff;
}
.lbf-footer h5 {
  font-family: var(--f-body);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--d-text); margin-bottom: 16px;
}
.lbf-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.lbf-footer ul a { color: var(--d-text-dim); font-size: 13.5px; transition: color .2s ease; }
.lbf-footer ul a:hover { color: var(--orange-light); }
.lbf-footer-bottom {
  max-width: var(--container-wide);
  margin: 32px auto 0;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 16px;
  font-family: var(--f-display); font-style: italic;
  font-size: 13.5px;
}
.lbf-footer-bottom strong { color: var(--orange-light); font-style: normal; font-weight: 600; }

/* Ribbon head (intro posee au-dessus d un ruban) */

/* ===== AGENDA TEASER (3 prochains rendez-vous, lien vers la page Agenda) ===== */
.lbf-agenda-teaser-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 56px;
}
@container lbf (max-width: 900px) {
  .lbf-agenda-teaser-grid { grid-template-columns: 1fr; gap: 12px; }
}
/* Section Agenda en mode dark : on cree une distinction visuelle avec
   le bandeau simulateur juste au-dessus via une fine ligne lumineuse
   en haut + un fond legerement plus clair (d-surface au lieu de d-bg)
   + un halo orange discret. */
.lbf-section.dark.lbf-section-agenda {
  background: linear-gradient(180deg, var(--d-surface) 0%, var(--d-bg) 100%);
}
.lbf-section.dark.lbf-section-agenda::after {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(240, 138, 36, 0.55) 50%, transparent 100%);
  pointer-events: none; z-index: 1;
}

.lbf-agenda-teaser-card {
  position: relative;
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--d-border);
  border-radius: 14px;
  color: var(--d-text);
  text-decoration: none;
  transition: transform .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
  overflow: hidden;
}
.lbf-agenda-teaser-card::before {
  content: '';
  position: absolute; top: 0; left: 0; bottom: 0;
  width: 3px;
  background: var(--cat-color, var(--orange));
}
.lbf-agenda-teaser-card:hover {
  transform: translateY(-2px);
  border-color: rgba(240, 138, 36, 0.45);
  background: rgba(240, 138, 36, 0.06);
  box-shadow: 0 12px 28px -10px rgba(240, 138, 36, 0.25);
}
.lbf-agenda-teaser-date {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding-right: 14px;
  border-right: 1px solid var(--d-border);
  text-align: center;
}
.lbf-agenda-teaser-date .day {
  font-family: var(--f-display);
  font-size: 30px; font-weight: 600;
  line-height: 1; letter-spacing: -0.02em;
  color: var(--d-text);
}
.lbf-agenda-teaser-date .month {
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--d-text-dim);
  margin-top: 4px;
}
.lbf-agenda-teaser-date .year {
  font-size: 9.5px; font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--d-text-muted);
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
}
.lbf-agenda-teaser-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.lbf-agenda-teaser-tags {
  display: flex; gap: 6px; flex-wrap: wrap;
}
.lbf-agenda-teaser-tags .tag {
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 100px;
  border: 1px solid var(--cat-color, var(--orange));
  color: var(--cat-color, var(--orange));
  background: rgba(255, 255, 255, 0.02);
  white-space: nowrap;
}
.lbf-agenda-teaser-tags .tag.access {
  border-color: var(--d-border-2);
  color: var(--d-text-dim);
  background: transparent;
}
.lbf-agenda-teaser-tags .tag.access.public { border-color: rgba(34, 197, 94, 0.4);   color: #4ADE80; }
.lbf-agenda-teaser-tags .tag.access.club   { border-color: rgba(201, 164, 90, 0.5);  color: #C9A45A; }
.lbf-agenda-teaser-tags .tag.access.invite { border-color: rgba(59, 130, 246, 0.4);  color: #60A5FA; }
.lbf-agenda-teaser-title {
  font-family: var(--f-display);
  font-size: 18px; font-weight: 600;
  line-height: 1.2; letter-spacing: -0.01em;
  color: var(--d-text);
  margin: 0;
}
.lbf-agenda-teaser-meta {
  display: flex; gap: 8px;
  font-size: 12px;
  color: var(--d-text-dim);
  font-variant-numeric: tabular-nums;
}

/* ===== PARTENAIRES (bento 3x2 avec rotation 6/9 + watermark + flip 3D) ===== */
.lbf-partners-grid {
  display: grid;
  grid-template-columns: repeat(var(--cols, 5), 1fr);
  gap: 16px;
  max-width: 1080px;
  margin: 56px auto 0;
}
.lbf-partner-card {
  position: relative;
  padding: 32px 28px;
  background: var(--l-surface);
  border: 1px solid var(--l-border);
  border-radius: 16px;
  text-align: left;
  transition: transform .4s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
  min-height: 132px;
  display: flex; flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  isolation: isolate;
}
.lbf-partner-card::before {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 24px; height: 2px;
  background: var(--orange);
  transition: width .45s var(--ease);
  z-index: 2;
}
.lbf-partner-card:hover {
  transform: translateY(-6px);
  border-color: var(--orange);
  box-shadow: 0 24px 48px -24px rgba(240, 138, 36, 0.22);
}
.lbf-partner-card:hover::before { width: 64px; }
.lbf-partner-watermark {
  position: absolute;
  bottom: -28px; right: -16px;
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(120px, 14vw, 180px);
  color: rgba(240, 138, 36, 0.06);
  line-height: 0.82;
  letter-spacing: -0.06em;
  pointer-events: none;
  z-index: 0;
  transition: color .45s var(--ease), transform .45s var(--ease);
}
.lbf-partner-card:hover .lbf-partner-watermark {
  color: rgba(240, 138, 36, 0.16);
  transform: translate(-2px, -4px) scale(1.04);
}
.lbf-partner-name {
  position: relative; z-index: 1;
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(20px, 2.4vw, 26px);
  letter-spacing: -0.015em;
  line-height: 1.1;
  color: var(--l-text);
}
.lbf-partner-vertical {
  position: relative; z-index: 1;
  margin-top: 16px;
  font-family: var(--f-body);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--l-text-muted);
  display: inline-flex; align-items: center; gap: 8px;
}
.lbf-partner-vertical::before {
  content: '';
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--orange);
  flex-shrink: 0;
}
/* Animation flip 3D quand le partenaire d un slot change */
.lbf-partner-flip {
  animation: lbf-partner-flip 0.7s cubic-bezier(0.34, 1.2, 0.64, 1) both;
  transform-origin: center center;
  perspective: 1000px;
}
@keyframes lbf-partner-flip {
  0%   { opacity: 0; transform: rotateY(45deg) scale(0.94); filter: blur(4px); }
  55%  { opacity: 0.85; }
  100% { opacity: 1; transform: rotateY(0) scale(1); filter: blur(0); }
}
@media (prefers-reduced-motion: reduce) {
  .lbf-partner-flip { animation: none; }
}
@container lbf (max-width: 980px) {
  .lbf-partners-grid { grid-template-columns: 1fr 1fr; }
}
@container lbf (max-width: 640px) {
  .lbf-partners-grid { grid-template-columns: 1fr; gap: 12px; }
  .lbf-partner-card { min-height: 110px; padding: 24px 22px; }
  .lbf-partner-watermark { font-size: 100px; bottom: -16px; right: -8px; }
}
.lbf-partners-foot {
  margin-top: 48px;
  padding: 24px 32px;
  text-align: center;
  background: var(--l-surface);
  border: 1px solid var(--l-border);
  border-radius: 20px;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.lbf-partners-foot-eyebrow {
  font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--orange);
  display: block;
  margin-bottom: 8px;
}
.lbf-partners-foot-text {
  font-family: var(--f-display);
  font-style: italic;
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 1.4;
  color: var(--l-text);
  margin: 0 0 16px;
}
.lbf-partners-foot-text em { color: var(--orange); font-style: italic; font-weight: 500; }
.lbf-partners-foot-cta {
  margin-top: 22px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  border-radius: 100px;
  background: transparent;
  border: 1px solid rgba(240, 138, 36, 0.45);
  color: var(--orange);
  font-family: var(--f-body);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.13em; text-transform: uppercase;
  text-decoration: none;
  transition: all .25s var(--ease);
}
.lbf-partners-foot-cta:hover {
  background: var(--orange);
  color: #fff !important;
  border-color: var(--orange);
}
.lbf-partners-foot-cta svg { width: 11px; height: 11px; }

/* ===== AMB SIM (panneau simulateur ambitieuse) ===== */
.amb-sim {
  position: relative;
  background: var(--d-bg); color: var(--d-text);
  padding: clamp(72px, 10vw, 128px) var(--section-px);
  overflow: hidden;
}
.amb-sim::before {
  content: ''; position: absolute; top: -10%; left: 60%;
  width: 60vw; height: 60vh;
  background: radial-gradient(ellipse, rgba(240, 138, 36,0.18), transparent 60%);
  z-index: 0;
}
.amb-sim-inner {
  max-width: var(--container-wide); margin: 0 auto;
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr 1.2fr;
  gap: 80px; align-items: center;
}
.amb-sim-mockup {
  background: var(--d-surface);
  border: 1px solid var(--d-border-2);
  border-radius: 24px; padding: 32px;
  box-shadow: 0 32px 64px -32px rgba(0,0,0,0.6);
  position: relative;
}
.amb-sim-mockup .head {
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--d-border);
  margin-bottom: 16px;
}
.amb-sim-mockup .head .title {
  font-family: var(--f-display);
  font-size: 18px; font-weight: 600;
  color: var(--d-text);
}
.amb-sim-mockup .head .title em { font-style: italic; color: var(--orange-light); display: inline-block; }
.amb-sim-op-cycle {
  animation: amb-sim-op 0.65s cubic-bezier(0.34, 1.3, 0.64, 1) both;
  transform-origin: left center;
}
@keyframes amb-sim-op {
  0%   { opacity: 0; transform: translateY(8px) scale(0.94); filter: blur(2px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@media (prefers-reduced-motion: reduce) {
  .amb-sim-op-cycle { animation: none; }
}
.amb-sim-mockup .head .live {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--success);
}
.amb-sim-mockup .head .live::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--success);
  animation: lbf-pulseDot 2.4s ease infinite;
}
.amb-sim-mockup .row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--d-border);
  font-size: 14px;
}
.amb-sim-mockup .row:last-of-type { border-bottom: none; }
.amb-sim-mockup .row .l { color: var(--d-text-dim); }
.amb-sim-mockup .row .v { color: var(--d-text); font-weight: 500; font-variant-numeric: tabular-nums; }
.amb-sim-mockup .total {
  margin-top: 16px;
  padding: 18px 22px;
  background: linear-gradient(135deg, rgba(240, 138, 36,0.18), rgba(240, 138, 36,0.04));
  border: 1px solid rgba(240, 138, 36,0.3);
  border-radius: 14px;
  display: flex; justify-content: space-between; align-items: center;
}
.amb-sim-mockup .total .l {
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 700; color: var(--orange-light);
}
.amb-sim-mockup .total .v {
  font-family: var(--f-display);
  font-size: 36px; font-weight: 600;
  color: var(--orange);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.amb-sim-mockup .scn-row {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
  margin-top: 14px;
}
.amb-sim-mockup .scn {
  padding: 12px 10px;
  border: 1.5px solid var(--d-border-2);
  border-radius: 10px;
  text-align: center; cursor: pointer;
  background: transparent;
  transition: all .2s var(--ease);
  font-family: var(--f-body);
}
.amb-sim-mockup .scn .l {
  font-size: 9.5px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--d-text-muted);
}
.amb-sim-mockup .scn .l .d {
  font-size: 8px; font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--d-text-muted);
  margin-left: 4px;
  opacity: 0.7;
}
.amb-sim-mockup .scn .v {
  margin-top: 4px;
  font-family: var(--f-display);
  font-size: 18px; font-weight: 600;
  color: var(--d-text);
}
.amb-sim-mockup .scn.active { box-shadow: 0 8px 24px -8px rgba(240, 138, 36,0.4); }
.amb-sim-mockup .scn.bad.active { border-color: var(--danger); }
.amb-sim-mockup .scn.cible.active { border-color: var(--orange); }
.amb-sim-mockup .scn.opt.active { border-color: var(--success); }
.amb-sim-mockup .scn.bad.active .v { color: var(--danger); }
.amb-sim-mockup .scn.opt.active .v { color: var(--success); }
.amb-sim-side .eyebrow { color: var(--orange-glow); }
.amb-sim-side h2 {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: clamp(40px, 5vw, 68px);
  line-height: 1; letter-spacing: -0.02em;
  margin-top: 16px;
}
.amb-sim-side h2 em { font-style: italic; color: var(--orange); }
.amb-sim-side .lead {
  margin-top: 24px;
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 1.55;
  color: var(--d-text-dim);
  max-width: 50ch;
}
.amb-sim-side .checks {
  margin-top: 28px;
  display: flex; flex-direction: column; gap: 12px;
}
.amb-sim-side .checks span {
  display: flex; align-items: center; gap: 12px;
  font-size: 14px; color: var(--d-text);
}
.amb-sim-side .checks svg {
  width: 16px; height: 16px;
  color: var(--orange);
  flex-shrink: 0;
  padding: 4px;
  background: rgba(240, 138, 36,0.12);
  border-radius: 50%;
  box-sizing: content-box;
}

/* ===== THEME TOGGLE (Normal / Full White / Full Dark, dans la nav) ===== */
.lbf-theme-toggle {
  display: inline-flex; align-items: center; gap: 2px;
  padding: 3px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--d-border-2);
  border-radius: 100px;
  font-family: var(--f-body);
}
.lbf-theme-btn {
  position: relative;
  width: 28px; height: 28px;
  border-radius: 100px;
  border: none; background: transparent;
  color: var(--d-text-dim);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: all .25s var(--ease);
}
.lbf-theme-btn svg { width: 14px; height: 14px; }
.lbf-theme-btn:hover { color: var(--orange-light); }
.lbf-theme-btn.active {
  background: var(--orange);
  color: #fff;
  box-shadow: inset 0 1px 0 0 rgba(255,255,255,0.2);
}
/* Tooltip CSS instantane sur survol des boutons theme */
.lbf-theme-btn[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(-4px);
  background: rgba(28, 27, 39, 0.95);
  color: #fff;
  font-size: 9.5px; font-weight: 600;
  letter-spacing: 0.13em; text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 110;
  box-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.4);
}
.lbf-theme-btn[data-tooltip]:hover::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.lbf-nav-actions {
  display: inline-flex; align-items: center; gap: 12px;
}
@container lbf (max-width: 640px) {
  .lbf-theme-toggle { padding: 2px; }
  .lbf-theme-btn { width: 26px; height: 26px; }
  .lbf-nav-actions { gap: 8px; }
}

/* ===== REVERSE MODE (data-theme="dark") =====
   Inversion complete de l alternance : chaque section dark devient light
   et vice versa. Implementation : on redefinit les tokens --d-* et --l-*
   a l interieur de .lbf-root[data-theme="dark"]. Toutes les règles
   existantes qui utilisent ces tokens basculent automatiquement via la
   cascade CSS. Quelques patches en dessous pour les couleurs hardcodees
   (gradients, sheen, chips) qui ne passent pas par les tokens. */
.lbf-root[data-theme="dark"] {
  --d-bg:         #FFFFFF;
  --d-surface:    #FBEFE0;
  --d-surface-2:  #FCD9B0;
  --d-surface-3:  #FBEFE0;
  --d-text:       #1A1322;
  --d-text-dim:   rgba(26, 19, 34, 0.62);
  --d-text-muted: rgba(26, 19, 34, 0.42);
  --d-border:     rgba(26, 19, 34, 0.08);
  --d-border-2:   rgba(26, 19, 34, 0.14);

  --l-bg:         #1A1322;
  --l-surface:    #2A2236;
  --l-surface-2:  #3D3552;
  --l-text:       #FDF8F1;
  --l-text-dim:   rgba(253, 248, 241, 0.62);
  --l-text-muted: rgba(253, 248, 241, 0.45);
  --l-border:     rgba(253, 248, 241, 0.07);
  --l-border-2:   rgba(253, 248, 241, 0.12);
}

/* Patches pour les couleurs hardcodees qui ne sont pas via tokens */
/* Hero card : gradient sombre brun -> gradient surface clair + orange pale */
.lbf-root[data-theme="dark"] .lbf-hero-visual {
  background: linear-gradient(135deg, var(--d-surface) 0%, #FFE5D2 100%);
}
/* Hero chips : passent en backdrop blanc avec texte sombre */
.lbf-root[data-theme="dark"] .lbf-hero-chip {
  background: rgba(255, 255, 255, 0.92);
  color: var(--d-text);
  border-color: rgba(26, 19, 34, 0.08);
  box-shadow: 0 12px 32px -12px rgba(0, 0, 0, 0.15);
}
/* Hero meta pill : backdrop subtle dark sur fond clair */
.lbf-root[data-theme="dark"] .lbf-hero-meta {
  background: rgba(26, 19, 34, 0.04);
  border-color: rgba(26, 19, 34, 0.10);
  color: var(--d-text);
}
/* Newsletter host : bg ardoise -> bg surface clair */
.lbf-root[data-theme="dark"] .lbf-newsletter-host {
  background: var(--d-surface);
  border-color: var(--d-border);
}
/* Team portrait : gradient surface clair + orange pale */
.lbf-root[data-theme="dark"] .lbf-team-portrait {
  background: linear-gradient(135deg, var(--d-surface-2), #FFE5D2);
}
/* Tilt sheen : white-on-light invisible, on bascule en orange + multiply */
.lbf-root[data-theme="dark"] .lbf-tilt::after {
  background: radial-gradient(
    600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(240, 138, 36, 0.12) 0%,
    transparent 45%
  );
  mix-blend-mode: multiply;
}

/* ===== ALL-LIGHT MODE (data-theme="all-light") =====
   Tout le site en clair : les tokens --d-* prennent les valeurs light. */
.lbf-root[data-theme="all-light"] {
  --d-bg:         #FFFFFF;
  --d-surface:    #FBEFE0;
  --d-surface-2:  #FCD9B0;
  --d-surface-3:  #FBEFE0;
  --d-text:       #1A1322;
  --d-text-dim:   rgba(26, 19, 34, 0.62);
  --d-text-muted: rgba(26, 19, 34, 0.42);
  --d-border:     rgba(26, 19, 34, 0.08);
  --d-border-2:   rgba(26, 19, 34, 0.14);
}
.lbf-root[data-theme="all-light"] .lbf-hero-visual {
  background: linear-gradient(135deg, var(--d-surface) 0%, #FFE5D2 100%);
}
.lbf-root[data-theme="all-light"] .lbf-hero-chip {
  background: rgba(255, 255, 255, 0.92);
  color: var(--d-text);
  border-color: rgba(26, 19, 34, 0.08);
  box-shadow: 0 12px 32px -12px rgba(0, 0, 0, 0.15);
}
.lbf-root[data-theme="all-light"] .lbf-hero-meta {
  background: rgba(26, 19, 34, 0.04);
  border-color: rgba(26, 19, 34, 0.10);
  color: var(--d-text);
}
.lbf-root[data-theme="all-light"] .lbf-newsletter-host {
  background: var(--d-surface);
  border-color: var(--d-border);
}
.lbf-root[data-theme="all-light"] .lbf-team-portrait {
  background: linear-gradient(135deg, var(--d-surface-2), #FFE5D2);
}
.lbf-root[data-theme="all-light"] .lbf-tilt::after {
  background: radial-gradient(
    600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(240, 138, 36, 0.12) 0%,
    transparent 45%
  );
  mix-blend-mode: multiply;
}

/* ===== ALL-DARK MODE (data-theme="all-dark") =====
   Tout le site en sombre : les tokens --l-* prennent les valeurs dark. */
.lbf-root[data-theme="all-dark"] {
  --l-bg:         #1A1322;
  --l-surface:    #2A2236;
  --l-surface-2:  #3D3552;
  --l-text:       #FDF8F1;
  --l-text-dim:   rgba(253, 248, 241, 0.62);
  --l-text-muted: rgba(253, 248, 241, 0.45);
  --l-border:     rgba(253, 248, 241, 0.07);
  --l-border-2:   rgba(253, 248, 241, 0.12);
}
.lbf-root[data-theme="all-dark"] .lbf-chat-bubble {
  background: var(--l-surface-2);
  border-color: var(--l-border);
  color: var(--l-text);
}
.lbf-root[data-theme="all-dark"] .lbf-partner-card,
.lbf-root[data-theme="all-dark"] .lbf-tp-card,
.lbf-root[data-theme="all-dark"] .lbf-blog-feature {
  background: var(--l-surface);
  border-color: var(--l-border);
}
.lbf-root[data-theme="all-dark"] .lbf-modal-placeholder-frame {
  background: var(--l-surface);
  border-color: var(--l-border);
}
.lbf-root[data-theme="dark"] .lbf-nav-brand { color: var(--d-text); }

/* Tagline "Let s go !" / "Let s up !" / "Let s flip !" en ticket promo
   colle en bas-a-droite de chaque eco-card, legerement incline */
.lbf-eco-tagline {
  position: absolute;
  bottom: 20px; right: 20px;
  margin: 0;
  background: var(--orange);
  color: #fff !important;
  padding: 6px 14px;
  border-radius: 100px 100px 4px 100px;
  font-family: var(--f-display);
  font-style: italic;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-decoration: none;
  transform: rotate(-3deg);
  transform-origin: bottom right;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  box-shadow: 0 8px 16px -8px rgba(240, 138, 36, 0.45),
              inset 0 1px 0 rgba(255, 255, 255, 0.25);
  white-space: nowrap;
  z-index: 2;
  cursor: pointer;
}
.lbf-eco-card:hover .lbf-eco-tagline {
  transform: rotate(0deg) translateY(-3px);
  box-shadow: 0 14px 24px -8px rgba(240, 138, 36, 0.55),
              inset 0 1px 0 rgba(255, 255, 255, 0.25);
}
/* On ajoute un peu de padding bas a la card pour eviter chevauchement avec le link */
.lbf-eco-card { padding-bottom: 64px; }

/* ===== HERO CARD — variantes A et B ===== */
/* Eyebrow et CTA partages entre les deux variantes */
.lbf-card-eyebrow {
  font-family: var(--f-body);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.20em; text-transform: uppercase;
  color: var(--orange-glow);
}
.lbf-card-eyebrow-cycle {
  display: inline-block;
  color: var(--orange-light);
  transform-origin: left center;
}
.lbf-card-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--f-body); font-size: 11.5px; font-weight: 600;
  letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--orange-light);
  padding: 9px 16px;
  border-radius: 100px;
  border: 1px solid rgba(245, 169, 106, 0.35);
  background: rgba(240, 138, 36, 0.05);
  transition: all .25s var(--ease);
  width: fit-content;
}
.lbf-card-cta:hover {
  border-color: var(--orange-light);
  background: rgba(240, 138, 36, 0.14);
  transform: translateY(-1px);
  color: #fff;
}
.lbf-card-cta svg { width: 12px; height: 12px; }

/* Variante A : monogramme central, tagline italique sous, CTA bas anime */
.lbf-hv-a-content {
  position: relative; z-index: 1;
  text-align: center;
  padding: 80px 36px 72px;
  display: flex; flex-direction: column;
  align-items: center; gap: 0;
}
.lbf-hv-a-content .lbf-card-eyebrow { margin-bottom: 28px; }
.lbf-hv-a-content .lbf-hero-monogram { margin: 0; }
.lbf-hv-a-tagline {
  margin-top: 32px;
  font-family: var(--f-display); font-style: italic;
  font-size: clamp(17px, 2.2cqw, 22px);
  line-height: 1.3;
  color: var(--d-text);
  max-width: 26ch;
}
.lbf-hv-a-tagline em { color: var(--orange-light); font-style: italic; font-weight: 500; }
.lbf-hv-a-content .lbf-card-cta { margin-top: 40px; }

/* CTA "Rejoindre le Club" : magnetique + spotlight (2026)
   Le bouton suit legerement le curseur, une lumiere radiale suit le curseur
   a l interieur, halo orange qui respire en idle. */
.lbf-cta-magnet {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px;
  margin-top: 56px;
  padding: 14px 30px;
  border-radius: 100px;
  background: linear-gradient(135deg, #F5A552 0%, #F08A24 55%, #D97114 100%);
  color: #fff !important;
  font-family: var(--f-body);
  font-size: 12.5px; font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  isolation: isolate;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  transform: translate(var(--tx, 0), var(--ty, 0));
  transition: transform .35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .35s var(--ease);
  animation: lbf-cta-magnet-pulse 3.6s ease-in-out infinite;
}
/* Spotlight radial qui suit le curseur a l interieur */
.lbf-cta-magnet::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: 100px;
  background: radial-gradient(
    180px circle at var(--mx, 50%) var(--my, 50%),
    rgba(255, 255, 255, 0.32),
    transparent 60%
  );
  opacity: 0;
  transition: opacity .4s var(--ease);
  pointer-events: none;
  mix-blend-mode: screen;
  z-index: 0;
}
.lbf-cta-magnet:hover::before { opacity: 1; }
/* Gloss top fixe pour profondeur 3D */
.lbf-cta-magnet::after {
  content: '';
  position: absolute; top: 1px; left: 10px; right: 10px; height: 50%;
  border-radius: 100px 100px 50% 50%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.28) 0%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}
.lbf-cta-magnet > span,
.lbf-cta-magnet > svg {
  position: relative; z-index: 1;
}
.lbf-cta-magnet svg {
  width: 14px; height: 14px;
  transition: transform .35s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.lbf-cta-magnet:hover {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 18px 40px -10px rgba(240, 138, 36, 0.65),
    0 0 0 5px rgba(240, 138, 36, 0.18);
}
.lbf-cta-magnet:hover svg { transform: translateX(5px); }
.lbf-cta-magnet:active { transform: translate(var(--tx, 0), var(--ty, 0)) scale(0.98); }

@keyframes lbf-cta-magnet-pulse {
  0%, 100% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.28),
      0 8px 24px -6px rgba(240, 138, 36, 0.45),
      0 0 0 0 rgba(240, 138, 36, 0);
  }
  50% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.34),
      0 12px 32px -8px rgba(240, 138, 36, 0.6),
      0 0 0 6px rgba(240, 138, 36, 0.14);
  }
}
@media (prefers-reduced-motion: reduce) {
  .lbf-cta-magnet { animation: none; }
}
@media (hover: none) {
  .lbf-cta-magnet { transform: none !important; }
}

/* Preuve sociale en bas de la carte hero : avatars fins + nudge italique
   detache du bouton via position absolute, full-width pour centrage robuste. */
.lbf-cta-social {
  position: absolute;
  bottom: 22px;
  left: 0; right: 0;
  display: flex; align-items: center; justify-content: center;
  gap: 7px;
  font-family: var(--f-body);
  z-index: 2;
  pointer-events: none;
}
.lbf-cta-social-avatars,
.lbf-cta-social-text { pointer-events: auto; }
.lbf-cta-social-avatars {
  display: inline-flex; align-items: center;
}
.lbf-cta-social-avatars span {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1.5px solid rgba(245, 199, 138, 0.35);
  margin-left: -4px;
  background: linear-gradient(135deg, var(--orange-glow), var(--orange-deep));
  font-family: var(--f-display); font-size: 7.5px;
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.lbf-cta-social-avatars span:first-child { margin-left: 0; }
.lbf-cta-social-text {
  font-family: var(--f-display);
  font-style: italic;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--d-text-dim);
  letter-spacing: 0.01em;
  white-space: nowrap;
}

/* Animation moderne du CTA hero : shimmer + glow pulse + breathing */
.lbf-card-cta-pulse {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  animation: lbf-cta-glow 4s ease-in-out infinite;
}
.lbf-card-cta-pulse::after {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 60%; height: 100%;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 220, 180, 0.55) 50%,
    transparent 100%
  );
  transform: translateX(-200%);
  animation: lbf-cta-shimmer 5s ease-in-out infinite;
  pointer-events: none;
  mix-blend-mode: screen;
  z-index: 0;
}
.lbf-card-cta-pulse > * { position: relative; z-index: 1; }
@keyframes lbf-cta-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(240, 138, 36, 0); }
  50%      { box-shadow: 0 0 0 6px rgba(240, 138, 36, 0.16); }
}
@keyframes lbf-cta-shimmer {
  0%, 25%   { transform: translateX(-200%); }
  60%, 100% { transform: translateX(280%); }
}
@media (prefers-reduced-motion: reduce) {
  .lbf-card-cta-pulse, .lbf-card-cta-pulse::after { animation: none; }
}

/* ===== TILT 3D + SHEEN (effet cinematic, JS rAF + CSS vars) =====
   Applique aux cartes hero-visual et amb-sim-mockup via la classe .lbf-tilt.
   Neutralise sur tactile, prefers-reduced-motion, et viewport < 820px. */
.lbf-hero-grid, .amb-sim-inner, .lbf-club-grid { perspective: 1500px; }
.lbf-tilt {
  transform: rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transform-style: preserve-3d;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}
.lbf-tilt::after {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(
    600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
    rgba(255, 255, 255, 0.12) 0%,
    transparent 45%
  );
  mix-blend-mode: screen;
  opacity: 0;
  transition: opacity 0.4s var(--ease);
  z-index: 6;
}
.lbf-tilt:hover::after { opacity: 1; }
@media (hover: none), (prefers-reduced-motion: reduce) {
  .lbf-tilt { transform: none !important; transition: none; }
  .lbf-tilt::after { display: none; }
}
@container lbf (max-width: 820px) {
  .lbf-tilt { transform: none !important; }
  .lbf-tilt::after { display: none; }
}

/* ===== TRUSTPILOT (3 colonnes scroll vertical infini) ===== */
.lbf-tp-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
  max-height: 720px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
          mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.lbf-tp-col { overflow: hidden; }
.lbf-tp-track {
  display: flex; flex-direction: column; gap: 24px;
  animation: lbf-tp-scroll var(--tp-d, 30s) linear infinite;
  will-change: transform;
}
.lbf-tp-grid:hover .lbf-tp-track { animation-play-state: paused; }
/* Pause aussi quand la section n est pas dans le viewport (gere via JS).
   Evite que les colonnes defilent en peripheral vision pendant qu on lit ailleurs. */
.lbf-tp-grid.lbf-tp-paused .lbf-tp-track { animation-play-state: paused; }
@keyframes lbf-tp-scroll {
  from { transform: translateY(0); }
  to   { transform: translateY(-50%); }
}
.lbf-tp-card {
  padding: 28px;
  background: #fff;
  border: 1px solid var(--l-border);
  border-radius: 20px;
  box-shadow: 0 16px 32px -24px rgba(26, 19, 34,0.18);
  position: relative;
  display: flex; flex-direction: column; gap: 16px;
}
.lbf-tp-card::before {
  content: ''; position: absolute; top: 0; left: 24px;
  width: 32px; height: 2px; background: var(--orange);
  border-radius: 0 0 2px 2px;
}
.lbf-tp-stars {
  display: flex; gap: 2px;
  color: var(--orange);
}
.lbf-tp-stars svg { width: 16px; height: 16px; }
.lbf-tp-text {
  font-family: var(--f-display);
  font-style: italic;
  font-size: 16px; line-height: 1.45;
  color: var(--l-text);
}
.lbf-tp-meta {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 10.5px; font-weight: 500;
  letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--l-text-muted);
}
.lbf-tp-meta .src {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--success);
}
.lbf-tp-meta .src::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--success);
}
.lbf-tp-author {
  padding-top: 16px;
  border-top: 1px solid var(--l-border);
  display: flex; gap: 12px; align-items: center;
}
.lbf-tp-author .av {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--orange-glow), var(--orange-deep));
  font-family: var(--f-display); font-size: 13px; font-weight: 600;
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.lbf-tp-author .name { font-family: var(--f-body); font-size: 13px; font-weight: 600; letter-spacing: 0.02em; }
.lbf-tp-author .role { font-size: 11.5px; color: var(--l-text-muted); margin-top: 2px; }

.lbf-tp-foot {
  margin-top: 40px;
  display: flex; justify-content: center; align-items: center; gap: 16px;
  flex-wrap: wrap;
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--l-text-muted);
}
.lbf-tp-foot strong { color: var(--orange); font-weight: 600; }
.lbf-tp-foot a {
  color: var(--orange);
  border-bottom: 1px solid rgba(240, 138, 36,0.4);
  padding-bottom: 1px;
}
.lbf-tp-foot a:hover { color: var(--orange-deep); border-bottom-color: var(--orange-deep); }

@media (prefers-reduced-motion: reduce) {
  .lbf-tp-track { animation: none; }
}

/* ===== MODAL "RAPPORT TYPE" ===== */
.lbf-modal-backdrop {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(26, 19, 34, 0.7);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  animation: lbf-modal-bg 0.32s var(--ease) forwards;
}
@keyframes lbf-modal-bg {
  from { opacity: 0; }
  to { opacity: 1; }
}
.lbf-modal {
  background: #fff; color: var(--l-text);
  border-radius: 24px;
  max-width: 720px; width: 100%; max-height: 86vh;
  overflow: auto;
  position: relative;
  padding: 40px 36px 32px;
  animation: lbf-modal-pop 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  box-shadow: 0 32px 80px -16px rgba(0, 0, 0, 0.55);
  font-family: var(--f-body);
}
@keyframes lbf-modal-pop {
  0%   { opacity: 0; transform: scale(0.82) translateY(28px) rotateX(-6deg); }
  60%  { opacity: 1; }
  100% { opacity: 1; transform: scale(1) translateY(0) rotateX(0deg); }
}
.lbf-modal-close {
  position: absolute; top: 16px; right: 16px;
  width: 36px; height: 36px;
  border-radius: 50%; border: none;
  background: var(--l-surface); color: var(--l-text-dim);
  font-size: 22px; line-height: 1; font-weight: 400;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: all .2s var(--ease);
}
.lbf-modal-close:hover { background: var(--orange); color: #fff; transform: rotate(90deg); }

.lbf-modal-head h3 {
  font-family: var(--f-display);
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 600; line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 12px 0 12px;
  color: var(--l-text);
}
.lbf-modal-head h3 em { font-style: italic; color: var(--orange); }
.lbf-modal-head p {
  font-size: 14.5px; line-height: 1.55;
  color: var(--l-text-dim);
  max-width: 56ch;
  margin: 0;
}

.lbf-modal-image {
  margin-top: 24px;
  border-radius: 16px;
  background: var(--l-surface);
  border: 1px solid var(--l-border);
  overflow: hidden;
  position: relative;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 24px;
}

/* Reproduction miniature fidele du rapport reel genere par le simulateur */
.lbf-rpt-mock {
  width: 100%; max-width: 560px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid #E5E7EB;
  padding: 22px 24px 64px;
  font-family: var(--f-body);
  color: #1E1E2F;
  font-size: 12px;
  position: relative;
  box-shadow: 0 16px 40px -16px rgba(26, 19, 34, 0.18);
  overflow: hidden;
  text-align: left;
}
.lbf-rpt-header {
  background: linear-gradient(135deg, #1E1E2F, #3D3552);
  padding: 12px 16px;
  border-radius: 8px;
  margin-bottom: 14px;
  display: flex; justify-content: space-between; align-items: center;
}
.lbf-rpt-brand-name {
  font-weight: 800; letter-spacing: -0.6px; font-size: 15px;
  font-family: var(--f-body);
}
.lbf-rpt-brand-name .o { color: #E8872E; }
.lbf-rpt-brand-name .w { color: #fff; }
.lbf-rpt-brand-name .dot { color: #fff; font-size: 9px; font-weight: 500; }
.lbf-rpt-brand-tag { font-size: 8px; color: #999; margin-top: 2px; }
.lbf-rpt-date { color: #999; font-size: 9px; }
.lbf-rpt-title {
  font-size: 13px; text-align: center;
  color: #1E1E2F;
  margin: 0 0 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.lbf-rpt-h2 {
  font-size: 11px; font-weight: 700;
  color: #E8872E;
  margin: 14px 0 6px;
  padding-bottom: 4px;
  border-bottom: 2px solid #E8872E;
  text-transform: none;
  letter-spacing: 0;
}
.lbf-rpt-kpis {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px;
  margin-bottom: 8px;
}
.lbf-rpt-kpi {
  border: 1.5px solid #E8872E;
  border-radius: 7px;
  padding: 7px 6px;
  text-align: center;
}
.lbf-rpt-kpi.h { background: #FFF3E6; }
.lbf-rpt-kpi.g { border-color: #22C55E; }
.lbf-rpt-kpi.g .v { color: #22C55E; }
.lbf-rpt-kpi.b { border-color: #3B82F6; }
.lbf-rpt-kpi.b .v { color: #3B82F6; }
.lbf-rpt-kpi .l {
  font-size: 7.5px; color: #6B7280;
  text-transform: uppercase; letter-spacing: 0.4px;
  font-weight: 600;
}
.lbf-rpt-kpi .v {
  font-size: 13px; font-weight: 800; color: #1E1E2F;
  margin-top: 2px;
}
.lbf-rpt-scenarios {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px;
  margin-top: 6px;
}
.lbf-rpt-scenarios > div {
  border: 1.5px solid #E5E7EB;
  border-radius: 6px;
  padding: 7px 6px;
  text-align: center;
}
.lbf-rpt-scenarios > div.bad { border-color: #EF4444; }
.lbf-rpt-scenarios > div.opt { border-color: #22C55E; }
.lbf-rpt-scenarios .l { font-size: 7.5px; color: #6B7280; font-weight: 600; text-transform: uppercase; }
.lbf-rpt-scenarios .v { font-size: 11.5px; font-weight: 800; color: #1E1E2F; margin-top: 2px; }
.lbf-rpt-scenarios > div.bad .v,
.lbf-rpt-scenarios > div.opt .v { color: #22C55E; }
.lbf-rpt-scenarios .s { font-size: 8px; color: #6B7280; margin-top: 1px; }
.lbf-rpt-table {
  width: 100%; border-collapse: collapse;
  font-size: 10.5px; margin-top: 4px;
}
.lbf-rpt-table td {
  padding: 5px 8px; border-bottom: 1px solid #eee;
  font-weight: 400;
}
.lbf-rpt-table td:last-child { text-align: right; }
.lbf-rpt-table tr.total td {
  font-weight: 700; background: #FFF3E6;
}
.lbf-rpt-fade {
  position: absolute; left: 0; right: 0; bottom: 0; height: 64px;
  background: linear-gradient(to bottom, transparent, #fff);
  pointer-events: none;
}
.lbf-rpt-fade-tag {
  position: absolute; bottom: 14px; left: 0; right: 0;
  text-align: center;
  font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--l-text-muted);
  font-weight: 600;
  z-index: 1;
}

.lbf-modal-foot {
  margin-top: 28px;
  display: flex; justify-content: center;
}

@media (max-width: 640px) {
  .lbf-modal { padding: 28px 20px 24px; border-radius: 20px; }
  .lbf-modal-head h3 { font-size: 24px; }
  .lbf-modal-image { min-height: 240px; }
}

.lbf-modal-disclaimer {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--l-border);
  font-size: 11px;
  line-height: 1.5;
  color: var(--l-text-muted);
  font-style: italic;
}

/* Modal "Voir le programme" du Club : features en deux colonnes */
.lbf-club-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 24px;
}
.lbf-club-features-section {
  background: var(--l-surface);
  border: 1px solid var(--l-border);
  border-radius: 14px;
  padding: 20px 22px;
}
.lbf-club-features-eyebrow {
  display: block;
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 14px;
}
.lbf-club-features-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex; flex-direction: column;
  gap: 10px;
}
.lbf-club-features-list li {
  font-size: 13px;
  line-height: 1.45;
  color: var(--l-text);
  display: flex; align-items: flex-start; gap: 10px;
  font-weight: 500;
}
.lbf-club-features-list li::before {
  content: '→';
  color: var(--orange);
  font-weight: 700;
  flex-shrink: 0;
  font-size: 14px;
  line-height: 1.3;
}
@media (max-width: 640px) {
  .lbf-club-features { grid-template-columns: 1fr; }
}

/* ===== NOUVEAUTES YouTube ===== */
.lbf-yt-section {
  margin-top: 56px;
  padding-top: 56px;
  border-top: 1px solid var(--l-border);
}
.lbf-yt-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 32px;
}
.lbf-yt-card {
  display: block;
  background: var(--l-bg);
  border: 1px solid var(--l-border);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.lbf-yt-card:hover {
  transform: translateY(-4px);
  border-color: var(--orange);
  box-shadow: 0 16px 40px -16px rgba(240, 138, 36, 0.18);
}
.lbf-yt-thumb {
  position: relative;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--d-surface) 0%, #2a1d18 100%);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.lbf-yt-thumb-mark {
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 600;
  font-size: clamp(60px, 6vw, 90px);
  color: rgba(240, 138, 36, 0.32);
  line-height: 0.9;
  letter-spacing: -0.04em;
}
.lbf-yt-thumb-play {
  position: absolute;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: rgba(240, 138, 36, 0.95);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 24px -4px rgba(240, 138, 36, 0.5);
  transition: transform .3s var(--ease), background .3s var(--ease);
}
.lbf-yt-card:hover .lbf-yt-thumb-play {
  transform: scale(1.08);
  background: var(--orange);
}
.lbf-yt-thumb-play svg {
  width: 22px; height: 22px;
  color: #fff;
  margin-left: 3px;
}
.lbf-yt-body {
  padding: 18px 20px 20px;
}
.lbf-yt-meta {
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--orange);
  display: inline-flex; align-items: center; gap: 8px;
}
.lbf-yt-meta::before {
  content: '';
  width: 14px; height: 10px;
  background: var(--orange);
  border-radius: 3px;
  display: inline-block;
  flex-shrink: 0;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M23.5 6.2c-.3-1-1.1-1.8-2.1-2.1C19.5 3.5 12 3.5 12 3.5s-7.5 0-9.4.6c-1 .3-1.8 1.1-2.1 2.1C0 8.1 0 12 0 12s0 3.9.5 5.8c.3 1 1.1 1.8 2.1 2.1 1.9.6 9.4.6 9.4.6s7.5 0 9.4-.6c1-.3 1.8-1.1 2.1-2.1.5-1.9.5-5.8.5-5.8s0-3.9-.5-5.8zM9.6 15.6V8.4l6.2 3.6-6.2 3.6z'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M23.5 6.2c-.3-1-1.1-1.8-2.1-2.1C19.5 3.5 12 3.5 12 3.5s-7.5 0-9.4.6c-1 .3-1.8 1.1-2.1 2.1C0 8.1 0 12 0 12s0 3.9.5 5.8c.3 1 1.1 1.8 2.1 2.1 1.9.6 9.4.6 9.4.6s7.5 0 9.4-.6c1-.3 1.8-1.1 2.1-2.1.5-1.9.5-5.8.5-5.8s0-3.9-.5-5.8zM9.6 15.6V8.4l6.2 3.6-6.2 3.6z'/></svg>") center / contain no-repeat;
}
.lbf-yt-title {
  margin-top: 10px;
  font-family: var(--f-display);
  font-size: 17px; font-weight: 600;
  line-height: 1.3;
  color: var(--l-text);
  letter-spacing: -0.01em;
}
.lbf-yt-foot {
  margin-top: 32px;
  text-align: center;
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--l-text-dim);
}
.lbf-yt-foot a {
  color: var(--orange);
  border-bottom: 1px solid rgba(240, 138, 36, 0.4);
  font-weight: 500;
  padding-bottom: 1px;
  transition: color .2s ease, border-color .2s ease;
}
.lbf-yt-foot a:hover { color: var(--orange-deep); border-color: var(--orange-deep); }

@container lbf (max-width: 980px) {
  .lbf-yt-grid { grid-template-columns: 1fr 1fr; }
}
@container lbf (max-width: 640px) {
  .lbf-yt-grid { grid-template-columns: 1fr; }
}

/* ===== ANIMATIONS ===== */
@keyframes lbf-pulseDot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(240, 138, 36,0.5); }
  60%      { box-shadow: 0 0 0 6px rgba(240, 138, 36,0); }
}
@keyframes lbf-fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes lbf-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes lbf-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
.lbf-reveal { opacity: 0; animation: lbf-fadeUp 0.8s var(--ease) forwards; }
.lbf-r1 { animation-delay: 0.05s; }
.lbf-r2 { animation-delay: 0.18s; }
.lbf-r3 { animation-delay: 0.30s; }
.lbf-r4 { animation-delay: 0.42s; }
.lbf-section.scroll-reveal {
  opacity: 0; transform: translateY(30px);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}
.lbf-section.scroll-reveal.visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  .lbf-section.scroll-reveal { opacity: 1; transform: none; }
}

/* ===== RESPONSIVE (container queries) ===== */
@container lbf (max-width: 980px) {
  .lbf-hero-grid, .lbf-club-grid, .lbf-comm-grid, .lbf-blog-grid, .amb-sim-inner {
    grid-template-columns: 1fr; gap: 48px;
  }
  .lbf-eco-grid { grid-template-columns: 1fr 1fr; }
  .lbf-team-grid { grid-template-columns: 1fr; }
  .lbf-statband-inner { grid-template-columns: 1fr 1fr; gap: 24px; }
  .lbf-invest-row { grid-template-columns: 80px 1.4fr 1fr 1fr; }
  .lbf-footer-grid { grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
  .lbf-footer-grid > *:nth-child(4) { grid-column: 1 / -1; }
  .lbf-tp-grid { grid-template-columns: repeat(2, 1fr); max-height: 640px; }
  .lbf-tp-col.tp-hide-lg { display: none; }
  /* Hero card en 1-col : on aere le top pour que la chip TL ne chevauche
     pas l eyebrow et le monogramme. */
  .lbf-hv-a-content { padding-top: 84px; }
}
@container lbf (max-width: 640px) {
  .lbf-eco-grid { grid-template-columns: 1fr; }
  .lbf-statband-inner { grid-template-columns: 1fr; }
  .lbf-statband-item { padding-bottom: 16px; border-bottom: 1px solid var(--d-border); }
  .lbf-statband-item:last-child { border-bottom: none; padding-bottom: 0; }
  .lbf-team-card { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .lbf-club-stats { grid-template-columns: 1fr; }
  /* Hero card mobile : shrink chip + push content sous elle */
  .lbf-hero-chip { font-size: 10.5px; padding: 6px 10px; }
  .lbf-hero-chip.tl { top: 14px; left: 14px; }
  .lbf-hero-chip.br { bottom: 14px; right: 14px; }
  .lbf-hv-a-content { padding: 84px 24px 48px; }
  .lbf-hv-a-content .lbf-card-eyebrow { margin-bottom: 24px; }
  .lbf-cta-magnet { margin-top: 40px; padding: 12px 24px; font-size: 11.5px; }
  .lbf-cta-social { bottom: 16px; gap: 6px; }
  .lbf-cta-social-avatars span { width: 16px; height: 16px; font-size: 7px; margin-left: -3px; }
  .lbf-cta-social-text { font-size: 10.5px; }
  .lbf-tp-grid { grid-template-columns: 1fr; max-height: 560px; }
  .lbf-tp-col.tp-hide-md, .lbf-tp-col.tp-hide-lg { display: none; }

  /* Footer : 4 cols (desktop) / 3 cols (980) -> 2 cols sur mobile.
     La brand block (col 1) et le bloc Contact (col 4) prennent toute la largeur. */
  .lbf-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px 20px;
  }
  .lbf-footer-grid > *:first-child { grid-column: 1 / -1; }
  .lbf-footer-grid > *:nth-child(4) { grid-column: 1 / -1; }

  /* Invest row : 4 cols ecrasees -> grille 2x3 lisible.
     Ligne 1 : date a gauche, statut a droite. Ligne 2 : nom du deal pleine largeur.
     Ligne 3 : ticket pleine largeur. La row d en-tetes est masquee. */
  .lbf-invest-row {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
    gap: 8px 12px;
    padding: 16px 18px;
  }
  .lbf-invest-row.head { display: none; }
  .lbf-invest-row > .lbf-invest-date  { grid-column: 1; grid-row: 1; }
  .lbf-invest-row > .lbf-invest-status { grid-column: 2; grid-row: 1; justify-self: end; }
  .lbf-invest-row > div                { grid-column: 1 / -1; grid-row: 2; min-width: 0; }
  .lbf-invest-row > .lbf-invest-num   { grid-column: 1 / -1; grid-row: 3; font-size: 22px; }
  .lbf-invest-disclaimer { margin-top: 48px; }
}


/* === LBF v3 : neutralise le caret browsing F7 hors champs editables === */
body, html { caret-color: transparent; }
input, textarea, select, [contenteditable="true"], [contenteditable=""], [role="textbox"] {
  caret-color: auto;
}
/* Empeche le focus outline parasite quand le caret remonte au body */
html:focus, body:focus, html:focus-visible, body:focus-visible { outline: none; }
