/* Offre fondateur PRIVÉE (26/10/2026, fondateur.js, serveur/fondateur.py) : carte « Votre abonnement », petit badge de l'en-tête,
   écran de bienvenue. Maquette validée : offre-fondateur-v2. Aucune bordure latérale colorée ; effet festif coupé par
   prefers-reduced-motion. Chargé par espace-pro.html, espace-coach.html et partenaire.html seulement. */
.fo-carte { max-width: 680px; margin: 0 0 20px; padding: 24px; border: 1px solid var(--rule, #dfe3e6); border-radius: 16px; background: #fff; color: var(--ink, #161a1d); }
.fo-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.fo-tete-t { flex: 1 1 220px; min-width: 0; }
.fo-lab { margin: 0; color: var(--ink-3, #646b75); font-size: 13px; }
.fo-titre { margin: 2px 0 8px; font: 800 24px/1.2 var(--f-display, Arial, sans-serif); letter-spacing: -.02em; }
.fo-puce { display: inline-block; margin: 0; padding: 5px 11px; border-radius: 8px; background: #faeeda; color: #633806; font-size: 12.5px; font-weight: 600; }
.fo-sobre .fo-titre { margin: 4px 0 0; font: 600 17px/1.4 var(--f-text, Arial, sans-serif); letter-spacing: 0; color: var(--ink-2, #3e454d); }

/* badge : cadre or arrondi, logo Trackday.Place, filets pointillés, numéro, année, logo ou nom de l'organisation */
.fo-badge { flex: none; width: 190px; box-sizing: border-box; padding: 12px 12px 10px; border: 2px solid #ba7517; border-radius: 14px; background: #fffbf3; text-align: center; }
.fo-b-td { display: block; width: 150px; max-width: 100%; height: auto; margin: 0 auto 8px; }
.fo-b-cadre { display: flex; flex-direction: column; align-items: center; margin: 0 4px; padding: 8px 0; border-top: 1px dashed #ef9f27; border-bottom: 1px dashed #ef9f27; }
.fo-b-titre { color: #854f0b; font: 700 10px/1.3 Arial, sans-serif; letter-spacing: 1.5px; text-transform: uppercase; }
.fo-b-num { color: #633806; font: 800 30px/1.1 Arial, sans-serif; }
.fo-b-an { color: #854f0b; font: 600 10px/1.3 Arial, sans-serif; }
.fo-b-bas { display: flex; align-items: center; justify-content: center; min-height: 34px; margin-top: 9px; }
.fo-b-nom { color: var(--ink, #161a1d); font: 800 15px/1.15 Arial, sans-serif; letter-spacing: .3px; overflow-wrap: anywhere; }
.fo-b-logo { display: block; max-width: 150px; max-height: 44px; width: auto; height: auto; object-fit: contain; }
.fo-badge-grand { width: 220px; margin: 0 auto; }

/* mot d'Olivier */
.fo-mot { margin: 20px 0 0; padding: 16px 18px; border-radius: 10px; background: var(--paper, #f6f7f8); }
.fo-mot p { margin: 0; font: italic 16px/1.65 Georgia, "Times New Roman", serif; color: var(--ink, #161a1d); }
.fo-mot footer { margin-top: 8px; color: var(--ink-3, #646b75); font: 13px/1.4 var(--f-text, Arial, sans-serif); }

/* avantages, action, mention */
.fo-av { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin: 18px 0 0; padding: 0; list-style: none; font-size: 14px; }
.fo-av li::before { content: "✓ "; color: var(--red-deep, #d92d20); font-weight: 700; }
.fo-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--rule, #dfe3e6); }
.fo-note { margin: 10px 0 0; color: #8a9099; font-size: 12px; }

/* petit badge de l'en-tête de l'espace */
.fo-mini { display: inline-flex; align-items: center; gap: 6px; margin-left: 6px; padding: 2px 10px; border: 1.5px solid #ba7517; border-radius: 99px;
  background: #fffbf3; color: #633806; font: 700 12px/1.6 var(--f-text, Arial, sans-serif); text-decoration: none; vertical-align: middle; white-space: nowrap; }
.fo-mini-t { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: #854f0b; }
.fo-mini:hover { background: #faeeda; }
.fo-mini:focus-visible { outline: 2px solid var(--red-deep, #d92d20); outline-offset: 2px; }

/* écran de bienvenue (une seule fois) */
body.fo-accueil-ouvert { overflow: hidden; }
.fo-accueil { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; background: rgba(22, 26, 29, .55); overflow: hidden; }
.fo-acc-carte { position: relative; z-index: 1; box-sizing: border-box; width: 100%; max-width: 540px; max-height: calc(100vh - 32px); overflow: auto;
  padding: 28px 24px 24px; border-radius: 18px; background: #fff; text-align: center; box-shadow: 0 24px 60px rgba(22, 26, 29, .28); }
.fo-acc-carte h2 { margin: 18px 0 0; font: 800 24px/1.2 var(--f-display, Arial, sans-serif); letter-spacing: -.02em; color: var(--ink, #161a1d); }
.fo-acc-carte .fo-mot { text-align: left; }
.fo-acc-actions { margin: 20px 0 0; }
.fo-acc-actions .btn { min-width: 220px; }
.fo-festif { position: absolute; inset: 0; pointer-events: none; }
.fo-c { position: absolute; top: -16px; border-radius: 2px; opacity: 0; }
.fo-accueil.fo-sortie { opacity: 0; transition: opacity .18s ease; }

@media (prefers-reduced-motion: no-preference) {
  .fo-acc-carte { animation: fo-entree .32s cubic-bezier(.2, .8, .2, 1) both; }
  .fo-c { animation-name: fo-chute; animation-timing-function: cubic-bezier(.3, .1, .6, 1); animation-fill-mode: forwards; animation-iteration-count: 1; }
  .fo-acc-carte .fo-badge { animation: fo-lueur 1.6s ease-out .25s 1 both; }
}
@media (prefers-reduced-motion: reduce) {
  .fo-festif { display: none; }
  .fo-accueil.fo-sortie { transition: none; }
}
@keyframes fo-entree { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes fo-chute { 0% { opacity: 1; transform: translateY(0) rotate(0deg); } 85% { opacity: 1; } 100% { opacity: 0; transform: translateY(100vh) rotate(540deg); } }
@keyframes fo-lueur { 0% { box-shadow: 0 0 0 0 rgba(239, 159, 39, .55); } 100% { box-shadow: 0 0 0 18px rgba(239, 159, 39, 0); } }
.fo-c0 { left: 4.0%; width: 8px; height: 13px; background: #ba7517; animation-delay: 0.18s; animation-duration: 2.45s; }
.fo-c1 { left: 6.7%; width: 6px; height: 13px; background: #ef9f27; animation-delay: 0.7s; animation-duration: 3.12s; }
.fo-c2 { left: 14.7%; width: 6px; height: 13px; background: #f5c518; animation-delay: 0.45s; animation-duration: 2.96s; }
.fo-c3 { left: 19.1%; width: 6px; height: 13px; background: #d92d20; animation-delay: 0.76s; animation-duration: 3.14s; }
.fo-c4 { left: 26.8%; width: 8px; height: 11px; background: #faeeda; animation-delay: 0.2s; animation-duration: 2.36s; }
.fo-c5 { left: 31.9%; width: 8px; height: 9px; background: #854f0b; animation-delay: 0.86s; animation-duration: 2.64s; }
.fo-c6 { left: 34.1%; width: 8px; height: 9px; background: #ba7517; animation-delay: 0.66s; animation-duration: 3.21s; }
.fo-c7 { left: 41.5%; width: 8px; height: 13px; background: #ef9f27; animation-delay: 0.58s; animation-duration: 2.76s; }
.fo-c8 { left: 46.3%; width: 7px; height: 13px; background: #f5c518; animation-delay: 0.29s; animation-duration: 3.0s; }
.fo-c9 { left: 51.3%; width: 8px; height: 11px; background: #d92d20; animation-delay: 0.79s; animation-duration: 2.5s; }
.fo-c10 { left: 59.5%; width: 6px; height: 9px; background: #faeeda; animation-delay: 0.55s; animation-duration: 2.39s; }
.fo-c11 { left: 62.0%; width: 6px; height: 11px; background: #854f0b; animation-delay: 0.49s; animation-duration: 3.13s; }
.fo-c12 { left: 67.9%; width: 6px; height: 13px; background: #ba7517; animation-delay: 0.54s; animation-duration: 3.39s; }
.fo-c13 { left: 73.8%; width: 7px; height: 13px; background: #ef9f27; animation-delay: 0.37s; animation-duration: 2.25s; }
.fo-c14 { left: 79.8%; width: 8px; height: 9px; background: #f5c518; animation-delay: 0.07s; animation-duration: 2.62s; }
.fo-c15 { left: 86.7%; width: 7px; height: 11px; background: #d92d20; animation-delay: 0.87s; animation-duration: 3.01s; }
.fo-c16 { left: 92.5%; width: 8px; height: 13px; background: #faeeda; animation-delay: 0.73s; animation-duration: 2.93s; }
.fo-c17 { left: 96.2%; width: 8px; height: 9px; background: #854f0b; animation-delay: 0.47s; animation-duration: 2.92s; }

@media (max-width: 560px) {
  .fo-carte { padding: 18px 16px; }
  .fo-tete { flex-direction: column; align-items: stretch; }
  .fo-badge { margin: 0 auto; }
  .fo-titre { font-size: 21px; }
  .fo-av { grid-template-columns: 1fr; }
  .fo-acc-carte { padding: 22px 16px 18px; }
  .fo-acc-carte h2 { font-size: 21px; }
  .fo-acc-actions .btn { width: 100%; min-width: 0; }
}
