/* ── La page de vente « Founder Class » : le Pack Fondateur à 97 € HT (offre du 29/10/2026). Refaite le 28/10/2026, téléphone d'abord.
   Le monde : un terminal la nuit et une carte d'embarquement. Nuit, papier d'ivoire, encre, et la menthe du C de YLC ;
   Anton pour l'affichage, Geist pour le texte, Geist Mono pour ce qui se compte (tableau, champs, prix).
   Une lumière par scène (menthe sur l'équipe, ambre sur la box, couchant sur le Campus), un grain fixe sur toute la nuit,
   des révélations au défilement ([data-rv], vente.js) en transform/opacity seulement, et rien qui bouge si l'on a demandé
   moins d'animations. Tout est rangé sous .fc (classes fc-*), pour ne rien toucher de accueil.css ni de l'habillage. ── */
:root {
  --fc-nuit: #090a0c; --fc-nuit-2: #111317; --fc-nuit-3: #1a1d22;
  --fc-ligne: rgba(236, 240, 245, .1); --fc-ligne-2: rgba(236, 240, 245, .18);
  --fc-texte: #eef0f3; --fc-doux: #a7adb7; --fc-pale: #80868f;
  --fc-papier: #f2ede3; --fc-papier-2: #e4dccb; --fc-encre: #17160f; --fc-encre-2: #575244;
  --fc-menthe: #f0a33a; --fc-menthe-2: #86f2c0; --fc-menthe-encre: #03140c;
  --fc-laiton: #f0c674; --fc-laiton-2: #c9a865;
  --fc-f-aff: "Anton", "Arial Narrow", sans-serif;
  --fc-f-txt: Geist, "Geist Fallback", system-ui, sans-serif;
  --fc-f-mono: "Geist Mono", ui-monospace, Menlo, monospace;
  --fc-sortie: cubic-bezier(.16, 1, .3, 1);
  --fc-ressort: cubic-bezier(.32, .72, 0, 1);
}
:root { --fond: #090a0c; }
html { background: var(--fc-nuit); scrollbar-color: #2c3037 var(--fc-nuit); }
body { background: var(--fc-nuit); }
@keyframes fc-tic { 0% { transform: scaleY(1); } 45% { transform: scaleY(.15); } 100% { transform: scaleY(1); } }
@keyframes fc-pouls { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes fc-ouvre { from { background: rgba(240, 163, 58, .4); } }
@keyframes fc-monte { from { opacity: 0; transform: translateY(26px); } }
@keyframes fc-equipe { from { opacity: 0; transform: translateY(46px) scale(.96); } }
@keyframes fc-pousse { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes fc-defile { to { transform: translateY(calc(-100% + var(--h, 0px))); } }
@keyframes fc-onde { from { transform: scale(.6); opacity: .9; } to { transform: scale(2.6); opacity: 0; } }

/* Le grain : un seul calque fixe, sans clic, au-dessus de la nuit. */
body:has(main.fc)::after { content: ""; position: fixed; inset: 0; z-index: 2; pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); }

.fc { position: relative; overflow-x: clip; color: var(--fc-texte); font-family: var(--fc-f-txt); background: var(--fc-nuit);
  ::selection { background: var(--fc-menthe); color: var(--fc-menthe-encre); }
  /* Une seule gouttière pour toute la page (16 à 20 px sur téléphone) : le texte, les scènes bord à bord et le carrousel s'y alignent. */
  --fc-gout: clamp(16px, 5vw, 20px);
  .fc-env { width: min(1160px, 100% - 2 * var(--fc-gout)); margin-inline: auto; }
  h1, h2, h3, h5 { margin: 0; text-wrap: balance; }
  p { margin: 0; }
  h1, h2 { font-family: var(--fc-f-aff); font-weight: 400; text-transform: uppercase; letter-spacing: .004em; color: #fff; }
  h1 em, h2 em, h3 em { font-style: normal; color: var(--fc-menthe); }
  h2 { font-size: clamp(44px, 11.6vw, 88px); line-height: .98; }
  :focus-visible { outline: 2px solid var(--fc-menthe); outline-offset: 3px; border-radius: 8px; }
  .fc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

  .fc-bloc { position: relative; padding-block: clamp(56px, 10vw, 136px); scroll-margin-top: 80px; }
  .fc-tete { max-width: 880px; margin-bottom: clamp(32px, 5vw, 60px); }
  .fc-sous { margin-top: 18px; max-width: 58ch; color: var(--fc-doux); font-size: clamp(16.5px, 1.5vw, 19px); line-height: 1.55; }

  /* Les révélations : rien n'est caché sans script, ni pour qui demande moins d'animations. */
  [data-rv] { transition: opacity .9s var(--fc-sortie), translate 1s var(--fc-sortie); transition-delay: var(--rv-d, 0ms); }

  /* ── Les boutons : menthe sur la nuit, encre sur le papier ; la flèche dans son rond. ── */
  .fc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 0 26px; border-radius: 999px; border: 0; cursor: pointer;
    font: 650 16px/1.1 var(--fc-f-txt); text-decoration: none; text-align: center; -webkit-tap-highlight-color: transparent;
    transition: transform .45s var(--fc-ressort), background-color .2s ease, box-shadow .45s var(--fc-ressort), border-color .2s ease;
    > svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: translate .45s var(--fc-ressort); }
    &:hover { transform: translateY(-2px); > svg { translate: 3px 0; } }
    &:active { transform: translateY(0) scale(.98); } }
  .fc-btn-rond { display: grid; place-items: center; width: 42px; height: 42px; flex: none; margin-right: -16px; border-radius: 50%; background: rgba(26, 14, 0, .1); transition: transform .45s var(--fc-ressort), background-color .2s;
    svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; } }
  .fc-btn:hover .fc-btn-rond { transform: translate(3px, -1px) scale(1.06); background: rgba(26, 14, 0, .16); }
  .fc-btn-menthe { background: var(--fc-menthe); color: var(--fc-menthe-encre); box-shadow: 0 18px 40px -16px rgba(240, 163, 58, .55), inset 0 1px 0 rgba(255, 255, 255, .45);
    &:hover { background: var(--fc-menthe-2); box-shadow: 0 24px 50px -16px rgba(240, 163, 58, .7), inset 0 1px 0 rgba(255, 255, 255, .5); } }
  .fc-btn-encre { background: var(--fc-encre); color: var(--fc-menthe); box-shadow: 0 14px 30px -16px rgba(23, 22, 15, .8);
    &:hover { background: #000; } &:focus-visible { outline-color: var(--fc-encre); } }
  .fc-btn-trait { background: transparent; color: var(--fc-encre); border: 1.5px solid rgba(23, 22, 15, .32);
    &:hover { border-color: var(--fc-encre); } &:focus-visible { outline-color: var(--fc-encre); } }
  .fc-btn-grand { min-height: 64px; padding: 0 26px 0 28px; font-size: clamp(15.5px, 4.3vw, 17.5px); white-space: nowrap; }
  .fc-lien { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--fc-texte); font: 600 15px/1.2 var(--fc-f-txt);
    text-decoration: underline; text-decoration-color: rgba(238, 240, 243, .35); text-underline-offset: 5px; transition: text-decoration-color .2s;
    svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
    &:hover { text-decoration-color: var(--fc-menthe); } }

  /* ── Le héros : le titre, le bouton, puis l'équipe en vrai, debout, et le tableau des départs posé devant. ── */
  .fc-hero { position: relative; isolation: isolate; padding-top: clamp(100px, 12vw, 148px); }
  .fc-hero::before { content: ""; position: absolute; z-index: -1; inset: 0 0 auto; height: 100%; pointer-events: none;
    background:
      radial-gradient(60% 34% at 50% 64%, rgba(240, 163, 58, .2), transparent 70%),
      radial-gradient(70% 40% at 50% 0%, rgba(120, 150, 180, .16), transparent 72%),
      linear-gradient(180deg, transparent 70%, var(--fc-nuit)); }
  .fc-hero-centre { display: flex; flex-direction: column; align-items: center; text-align: center; }
  .fc-pastille { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; padding: 5px 14px 5px 5px; border-radius: 999px; background: rgba(17, 19, 23, .8); border: 1px solid var(--fc-ligne-2); color: var(--fc-doux); font: 500 12.5px/1.3 var(--fc-f-txt); text-align: left; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06); }
  .fc-avatars { display: inline-flex; flex: none; padding-left: 8px;
    img { width: 26px; height: 26px; margin-left: -8px; border-radius: 50%; border: 2px solid var(--fc-nuit-2); background: var(--fc-nuit-3); } }
  @media (max-width: 480px) { .fc-pastille .fc-avatars img:nth-child(n+4) { display: none; } }
  h1 { margin-top: 22px; font-size: clamp(56px, 15.2vw, 136px); line-height: .92; letter-spacing: 0; }
  h1 .l1, h1 em { display: block; }
  .fc-insec { white-space: nowrap; }
  @media (min-width: 760px) { h1 { font-size: min(8.4vw, 120px); } }
  .fc-hero-sous { margin-top: 20px; max-width: 46ch; color: var(--fc-doux); font-size: clamp(16.5px, 1.6vw, 19.5px); line-height: 1.5; }
  .fc-hero-cta { margin-top: 28px; width: 100%; display: grid; justify-items: center; gap: 14px;
    .fc-btn { width: min(100%, 420px); } }
  .fc-hero-prix { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; color: var(--fc-texte); font-size: 15.5px; font-weight: 600; line-height: 1.4;
    b { color: #fff; font-weight: 650; } }
  .fc-hero-prix-2 { font-size: 14px; font-weight: 500; }
  /* 29/10/2026 : le prix (97 € HT) en grand sous le bouton du héros, pour qu'il se voie tout de suite. */
  .fc-hero-prix .fc-gros { margin-right: 4px; color: var(--fc-menthe); font: 400 clamp(40px, 11vw, 52px)/1 var(--fc-f-aff); vertical-align: -6px; }
  .fc-ttc { max-width: 44ch; color: var(--fc-pale); font-size: 12.5px; line-height: 1.45; }
  .fc-ttc-papier { margin-top: 6px; color: var(--fc-encre-2); }
  .fc-hero-cta { gap: 10px !important; } .fc-hero-cta .fc-btn { margin-bottom: 4px; }
  .fc-hero-garantie { display: inline-flex; align-items: center; gap: 6px; color: var(--fc-texte);
    svg { width: 16px; height: 16px; fill: none; stroke: var(--fc-menthe); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; } }

  .fc-scene-equipe { position: relative; z-index: -1; margin: 18px 0 0 calc(50% - 80vw); width: 160vw; pointer-events: none;
    img { display: block; width: 100%; height: auto; -webkit-mask-image: linear-gradient(180deg, #000 80%, transparent); mask-image: linear-gradient(180deg, #000 80%, transparent); }
    &::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 4%; height: 26%; z-index: -1; border-radius: 50%; background: radial-gradient(closest-side, rgba(240, 163, 58, .34), transparent); filter: blur(10px); } }
  @media (min-width: 760px) { .fc-scene-equipe { width: min(1240px, 100vw); margin: clamp(24px, 4vw, 48px) auto 0; } }

  /* Le tableau des départs : des palettes qui tombent une fois, à l'arrivée. */
  .fc-tableau { position: relative; margin: -18px auto 0; width: 100%; max-width: 1100px; padding: 16px clamp(14px, 2.6vw, 28px) 18px; border-radius: 18px;
    background: linear-gradient(180deg, rgba(23, 25, 30, .94), rgba(12, 14, 17, .96)); border: 1px solid var(--fc-ligne-2); box-shadow: 0 40px 90px -40px #000, inset 0 1px 0 rgba(255, 255, 255, .07);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    dl { margin: 0; display: grid; grid-template-columns: repeat(5, auto); justify-content: space-between; gap: 16px 20px; }
    dt { margin-bottom: 10px; color: var(--fc-pale); font: 500 10.5px/1 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; text-align: left; white-space: nowrap; }
    dd { margin: 0; display: flex; flex-wrap: nowrap; gap: 3px; align-items: center; font: 500 clamp(14px, 1.45vw, 20px)/1 var(--fc-f-mono); color: var(--fc-texte); }
    dd.fc-menthe { color: var(--fc-menthe); }
    dd > span:first-child { letter-spacing: .08em; }
    &.fc-pret dd > span:first-child { display: none; } }
  @media (min-width: 760px) { .fc-tableau { margin-top: clamp(-90px, -6vw, -40px); } }
  .fc-case { display: grid; place-items: center; width: .82em; height: 1.34em; border-radius: 4px; color: inherit;
    background: linear-gradient(180deg, #23262c 0 50%, #1c1f24 50%); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .55), 0 1px 0 rgba(255, 255, 255, .03); position: relative; }
  .fc-case::after { content: ""; position: absolute; inset: 50% 0 auto; height: 1px; background: rgba(0, 0, 0, .7); }
  .fc-case.tic { animation: fc-tic .09s linear; }
  .fc-statut dd::before { content: ""; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--fc-menthe); box-shadow: 0 0 12px rgba(240, 163, 58, .8); animation: fc-pouls 2.4s ease-in-out infinite; }
  @media (max-width: 759px) {
    .fc-tableau dl { grid-template-columns: 1fr 1fr; justify-content: stretch; }
    .fc-tableau .fc-statut { grid-column: 1 / -1; }
    .fc-tableau dd { font-size: min(16px, 4vw); flex-wrap: wrap; letter-spacing: .06em; }
  }

  .fc-video { margin-top: clamp(40px, 6vw, 64px);
    .vy-cadre { border-radius: 24px; overflow: hidden; border: 1px solid var(--fc-ligne-2); } }

  /* ── Ce que tu reçois : quatre chiffres, comme une ligne de tableau chacun. ── */
  .fc-chiffres { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fc-ligne);
    li { border-bottom: 1px solid var(--fc-ligne); }
    a { display: grid; grid-template-columns: 122px minmax(0, 1fr) 20px; gap: 14px; align-items: start; padding: 22px 0; color: inherit; text-decoration: none; }
    a > svg { width: 20px; height: 20px; margin-top: 6px; fill: none; stroke: var(--fc-pale); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: translate .45s var(--fc-ressort), stroke .2s; }
    a:hover > svg { translate: 4px 0; stroke: var(--fc-menthe); }
    .fc-chiffre { color: var(--fc-menthe); font: 400 clamp(44px, 12vw, 92px)/.86 var(--fc-f-aff); font-variant-numeric: tabular-nums; white-space: nowrap; letter-spacing: -.01em; }
    small { display: block; color: var(--fc-pale); font: 500 10.5px/1.3 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
    strong { display: block; margin-top: 7px; color: #fff; font: 400 23px/1.02 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .015em; }
    a > span > span { display: block; margin-top: 8px; color: var(--fc-doux); font-size: 14.5px; line-height: 1.5; }
    li:last-child small { color: var(--fc-laiton-2); } }
  @media (max-width: 559px) {
    .fc-chiffres a { grid-template-columns: minmax(0, 1fr) 20px; gap: 10px 12px; padding: 20px 0 22px; }
    .fc-chiffres .fc-chiffre { grid-column: 1; font-size: clamp(52px, 15vw, 64px); }
    .fc-chiffres a > svg { grid-column: 2; grid-row: 1; align-self: center; }
    .fc-chiffres a > span { grid-column: 1 / -1; } }
  @media (min-width: 1000px) {
    .fc-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--fc-ligne);
      li { border-bottom: 0; }
      li + li { border-left: 1px solid var(--fc-ligne); }
      a { height: 100%; box-sizing: border-box; grid-template-columns: minmax(0, 1fr) 20px; grid-template-rows: auto 1fr; gap: 26px 10px; padding: 32px 26px 30px; transition: background-color .3s; }
      a:hover { background: rgba(255, 255, 255, .025); }
      .fc-chiffre { grid-column: 1; }
      a > svg { grid-column: 2; grid-row: 1; }
      a > span { grid-column: 1 / -1; }
      li:first-child a { padding-left: 0; } }
  }

  /* ── Le sommaire de ce qu'on reçoit, dans le héros : quatre tuiles, chacune mène à sa section. ── */
  .fc-recois { margin-top: 28px; }
  .fc-recois .fc-recois-t { margin-bottom: 12px; color: var(--fc-pale); font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; }
  .fc-tuiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
    a { position: relative; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: 6px; padding: 14px 14px 13px; border-radius: 18px; background: var(--fc-nuit-2); border: 1px solid var(--fc-ligne); color: inherit; text-decoration: none; transition: border-color .25s, transform .45s var(--fc-ressort); }
    a:hover { border-color: rgba(240, 163, 58, .45); transform: translateY(-2px); }
    .fc-chiffre { color: var(--fc-menthe); font: 400 clamp(36px, 10.5vw, 56px)/.9 var(--fc-f-aff); white-space: nowrap; font-variant-numeric: tabular-nums; }
    strong { color: #fff; font: 650 14.5px/1.25 var(--fc-f-txt); }
    small { margin-top: auto; color: var(--fc-pale); font: 500 10px/1.3 var(--fc-f-mono); letter-spacing: .1em; text-transform: uppercase; }
    li:last-child small { color: var(--fc-laiton-2); } }
  @media (min-width: 900px) { .fc-tuiles { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; a { padding: 20px; } } }

  /* ── L'agence : trois gestes au chiffre détouré, puis l'équipe. ── */
  .fc-gestes { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: none;
    li { display: grid; grid-template-columns: 84px minmax(0, 1fr); grid-template-areas: "n t" "n p"; column-gap: 12px; padding: 20px 0; border-top: 1px solid var(--fc-ligne); }
    i { grid-area: n; font: 400 64px/.86 var(--fc-f-aff); font-style: normal; color: transparent; -webkit-text-stroke: 1.4px rgba(240, 163, 58, .75); }
    b { grid-area: t; color: #fff; font: 400 28px/1 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .01em; }
    span { grid-area: p; margin-top: 8px; color: var(--fc-doux); font-size: 15px; line-height: 1.5; max-width: 38ch; } }
  @media (min-width: 900px) {
    .fc-gestes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px;
      li { grid-template-columns: minmax(0, 1fr); grid-template-areas: "n" "t" "p"; padding-top: 26px; }
      i { font-size: 96px; margin-bottom: 18px; }
      b { font-size: 34px; } }
  }
  .fc-eq-tete { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-top: clamp(56px, 8vw, 96px); margin-bottom: 22px;
    h3 { color: #fff; font: 400 clamp(34px, 8.6vw, 56px)/.98 var(--fc-f-aff); text-transform: uppercase; max-width: 14ch; } }
  .fc-glisse { flex: none; display: inline-flex; align-items: center; gap: 6px; padding-bottom: 6px; color: var(--fc-pale); font: 500 10.5px/1.2 var(--fc-f-mono); letter-spacing: .12em; text-transform: uppercase; text-align: right; max-width: 15ch;
    svg { width: 16px; height: 16px; flex: none; fill: none; stroke: var(--fc-menthe); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; animation: fc-pousse 1.8s var(--fc-sortie) infinite; } }
  .fc-equipage { list-style: none; margin: 0; padding: 4px var(--fc-gout) 8px; display: grid; grid-auto-flow: column; grid-auto-columns: min(68vw, 300px); gap: 12px;
    overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--fc-gout); scrollbar-width: none;
    &::-webkit-scrollbar { display: none; }
    li { position: relative; scroll-snap-align: start; display: flex; flex-direction: column; overflow: hidden; border-radius: 24px; padding-bottom: 22px;
      background: radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--c) 30%, transparent), transparent 70%), var(--fc-nuit-2);
      border: 1px solid var(--fc-ligne); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06); }
    img { display: block; width: 100%; aspect-ratio: 1; height: auto; object-fit: cover; object-position: 50% 20%; -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent); mask-image: linear-gradient(180deg, #000 72%, transparent); }
    b { margin: -18px 20px 0; color: #fff; font: 400 46px/.95 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .01em; }
    span { margin: 8px 20px 0; color: var(--c); font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
    p { margin: 10px 20px 0; color: var(--fc-doux); font-size: 14.5px; line-height: 1.5; } }
  @media (min-width: 1000px) {
    .fc-glisse { display: none; }
    .fc-equipage { width: min(1160px, 100% - 32px); margin-inline: auto; padding: 0; grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; overflow: visible;
      li { transition: transform .6s var(--fc-ressort), border-color .3s; }
      li:hover { transform: translateY(-6px); border-color: color-mix(in srgb, var(--c) 50%, transparent); } }
  }

  /* ── Les apps : des onglets par besoin du client, puis une grille compacte (icône, nom, ce qu'elle fait, qui s'en sert). ── */
  .fc-apps { margin-top: clamp(56px, 8vw, 96px); }
  .fc-ap-tete { max-width: 760px;
    h3 { color: #fff; font: 400 clamp(34px, 8.6vw, 56px)/.98 var(--fc-f-aff); text-transform: uppercase; }
    p { margin-top: 14px; color: var(--fc-doux); font-size: 15.5px; line-height: 1.55; } }
  .fc-ap-onglets { position: relative; display: flex; gap: 8px; margin: 22px calc(-1 * var(--fc-gout)) 0; padding: 2px var(--fc-gout) 4px; overflow-x: auto; scrollbar-width: none; scroll-padding-inline: var(--fc-gout);
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
    &::-webkit-scrollbar { display: none; }
    button { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 16px; border-radius: 999px; border: 1px solid var(--fc-ligne-2); background: rgba(255, 255, 255, .03); color: var(--fc-texte); font: 600 14px/1.1 var(--fc-f-txt); cursor: pointer; transition: background-color .25s, border-color .25s, color .25s; }
    button i { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; box-sizing: border-box; border-radius: 999px; background: rgba(255, 255, 255, .08); font: 600 11.5px/1 var(--fc-f-mono); font-style: normal; }
    button[aria-selected="true"] { background: var(--fc-menthe); border-color: var(--fc-menthe); color: var(--fc-menthe-encre); }
    button[aria-selected="true"] i { background: rgba(26, 14, 0, .14); } }
  @media (min-width: 760px) { .fc-ap-onglets { flex-wrap: wrap; margin-inline: 0; padding-inline: 0; overflow: visible; -webkit-mask-image: none; mask-image: none; } }
  .fc-ap-panneau { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
    &[hidden] { display: none; }
    li { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 14px; border-radius: 20px; background: var(--fc-nuit-2); border: 1px solid var(--fc-ligne); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05); animation: fc-monte .5s var(--fc-sortie) both; }
    .fc-ap-ico { width: 44px; height: 44px; border-radius: 12px; margin-bottom: 4px; }
    b { color: #fff; font: 400 22px/1 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .02em; }
    p { color: var(--fc-doux); font-size: 13.5px; line-height: 1.45; }
    .fc-ap-qui { display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 6px; color: var(--fc-pale); font: 500 10.5px/1.2 var(--fc-f-mono); letter-spacing: .06em; text-transform: uppercase; }
    .fc-ap-qui img { width: 22px; height: 22px; border-radius: 50%; } }
  @media (min-width: 760px) { .fc-ap-panneau { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; li { padding: 18px; } } }
  @media (min-width: 1080px) { .fc-ap-panneau { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

  /* ── La preuve : ce que l'équipe prépare, et le reçu qui paie le Pack. ── */
  .fc-escale { display: grid; gap: 28px; align-items: start; }
  @media (min-width: 980px) { .fc-escale { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; align-items: center; } }
  /* L'exemple : les métiers en étiquettes, puis le café Little Fern et ses vrais visuels. */
  .fc-metiers { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px;
    li { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--fc-ligne-2); color: var(--fc-texte); font: 500 13.5px/1.2 var(--fc-f-txt); background: rgba(255, 255, 255, .03); }
    li:first-child { border-color: rgba(240, 160, 90, .6); color: #f3b47a; background: rgba(240, 160, 90, .08); } }
  .fc-cafe-tete { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: center; margin-bottom: 18px;
    img { width: 64px; height: 64px; padding: 2px; box-sizing: border-box; border-radius: 18px; background: #f6efe4; object-fit: contain; }
    h3 { color: #fff; font: 400 clamp(26px, 6.8vw, 40px)/1 var(--fc-f-aff); text-transform: uppercase; }
    h3 em { color: #f3b47a; }
    p { margin-top: 6px; color: var(--fc-doux); font-size: 14px; line-height: 1.5; max-width: 62ch; } }
  .fc-galerie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: 8px; margin-bottom: 32px;
    figure { position: relative; margin: 0; overflow: hidden; border-radius: 18px; aspect-ratio: 1; background: #f6efe4; box-shadow: 0 30px 60px -40px #000; }
    figure > img { display: block; width: 100%; height: 100%; object-fit: cover; }
    .fc-g-site, .fc-g-video { grid-row: span 2; aspect-ratio: auto; }
    .fc-g-logo img { object-fit: contain; padding: 14%; box-sizing: border-box; }
    .fc-g-video { background: #232d22; } }
  .fc-g-defile { position: absolute; inset: 0;
    img { display: block; width: 100%; height: auto; } }
  .fc-g-lire { position: absolute; inset: 0; padding: 0; border: 0; cursor: pointer; background: var(--fond-video, #24301f);
    img { display: block; width: 100%; height: 100%; object-fit: contain; }
    i { position: absolute; left: 50%; top: 84%; display: grid; place-items: center; width: 56px; height: 56px; translate: -50% -50%; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .6); transition: transform .45s var(--fc-ressort); }
    i svg { width: 24px; height: 24px; margin-left: 3px; fill: var(--fc-encre); }
    &:hover i { transform: scale(1.08); } }
  .fc-g-video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #000; }
  @media (min-width: 900px) {
    .fc-galerie { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 48px; }
    .fc-galerie .fc-g-video { grid-column: 3; grid-row: 1 / 3; }
    .fc-galerie .fc-g-site { grid-column: 1; grid-row: 1 / 3; }
  }
  .fc-demo-lien { margin-top: 14px; color: var(--fc-menthe); text-decoration-color: rgba(240, 163, 58, .45); }
  .fc-livrables-t { color: var(--fc-pale); font: 500 11px/1.3 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
  .fc-livrables ul { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--fc-ligne);
    li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--fc-ligne); }
    img { width: 56px; height: 56px; border-radius: 16px; object-fit: cover; }
    b { display: block; font: 650 16px/1.3 var(--fc-f-txt); }
    b span { color: #fff; }
    small { display: block; margin-top: 3px; color: var(--fc-doux); font-size: 14px; line-height: 1.45; } }
  .fc-recu { --z: 10px; position: relative; padding: 26px 24px calc(30px + var(--z)); background: var(--fc-papier); color: var(--fc-encre); border-radius: 10px 10px 0 0;
    -webkit-mask: linear-gradient(#000 0 0) top / 100% calc(100% - var(--z)) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--z) * 2) var(--z) repeat-x;
    mask: linear-gradient(#000 0 0) top / 100% calc(100% - var(--z)) no-repeat, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--z) * 2) var(--z) repeat-x;
    ::selection { background: var(--fc-encre); color: var(--fc-menthe); }
    h3 { margin-top: 14px; font: 400 clamp(34px, 9vw, 46px)/.98 var(--fc-f-aff); text-transform: uppercase; }
    dl { margin: 20px 0 0; }
    dl div { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 12px 0; border-bottom: 1.5px dashed rgba(23, 22, 15, .3); }
    dt { font-size: 15px; line-height: 1.35; }
    dd { margin: 0; font: 500 15.5px/1 var(--fc-f-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
    .fc-recu-total { border-bottom: 2px solid var(--fc-encre); }
    .fc-recu-total dt { font-weight: 650; }
    .fc-recu-total dd { padding: 5px 9px; border-radius: 5px; background: var(--fc-menthe); font: 400 30px/1 var(--fc-f-aff); }
    .fc-recu-pack { border-bottom: 0; color: var(--fc-encre-2); } }
  @media (min-width: 980px) { .fc-recu { rotate: 1.4deg; box-shadow: 0 60px 110px -60px #000; } }
  .fc-recu-ex { color: var(--fc-encre-2); font: 500 11px/1.4 var(--fc-f-mono); letter-spacing: .1em; text-transform: uppercase; }
  .fc-avertit { margin-top: 16px; color: var(--fc-encre-2); font-size: 12.5px; line-height: 1.5; }

  /* ── La box fondateur, en « déballage » (refonte du 29/10/2026) : l'écrin noir ouvert, son couvercle relevé, le shot
     debout dedans (la scène 3D), la carte de membre inclinée devant, l'étiquette d'expédition collée sur la face. Tout
     se mesure sur la scène (cqi), pour garder la même composition de 360 px au bureau. La carte suit le pointeur et le
     défilement (vente.js : --rx, --ry, --sx, --lv), jamais si l'on a demandé moins d'animations. ── */
  .fc-box-bloc { isolation: isolate; }
  .fc-box { display: grid; gap: 26px; align-items: center; }
  @media (min-width: 980px) { .fc-box { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(40px, 5vw, 72px); } }
  .fc-bx-scene { position: relative; z-index: 0; container-type: inline-size; width: calc(100% + 2 * var(--fc-gout)); margin: 0 calc(-1 * var(--fc-gout)); aspect-ratio: 1 / .98;
    --rx: 9deg; --ry: -14deg; --sx: 30%; --lv: 0;
    /* La lumière : une clé chaude derrière l'écrin, un reflet menthe sous la carte, et l'ombre de l'écrin au sol. */
    &::before { content: ""; position: absolute; z-index: -1; inset: -6% -4% 0; pointer-events: none;
      background: radial-gradient(30% 13% at 54% 52%, rgba(246, 184, 26, .34), transparent 72%), radial-gradient(38% 34% at 56% 36%, rgba(246, 184, 26, .16), transparent 70%), radial-gradient(30% 22% at 30% 78%, rgba(240, 163, 58, .12), transparent 72%), radial-gradient(46% 30% at 72% 30%, rgba(155, 63, 150, .12), transparent 72%); }
    &::after { content: ""; position: absolute; z-index: -1; left: 4%; right: 4%; top: 74%; height: 16%; border-radius: 50%; background: radial-gradient(closest-side, rgba(0, 0, 0, .85), transparent); filter: blur(6px); pointer-events: none; } }
  @media (min-width: 760px) { .fc-bx-scene { width: 100%; max-width: 660px; margin-inline: auto; aspect-ratio: 1 / .9; } }
  /* Le couvercle relevé, penché vers l'arrière : le Y gaufré et « Founder box ». */
  .fc-bx-couvercle { position: absolute; left: 17%; width: 66%; top: 3%; height: 45%; display: grid; justify-items: start; align-content: start; gap: 2.2cqi; padding: 5cqi 0 0 4.2cqi; box-sizing: border-box; border-radius: 2cqi 2cqi .6cqi .6cqi;
    background: linear-gradient(118deg, transparent 40%, rgba(255, 255, 255, .035) 52%, transparent 64%), radial-gradient(70% 60% at 50% 30%, #262930, #131519 60%, #0a0b0e); border: 1px solid rgba(255, 255, 255, .08); border-top-color: rgba(255, 255, 255, .2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), inset 0 -3cqi 4cqi -2cqi rgba(0, 0, 0, .8), 0 4cqi 8cqi -4cqi #000;
    transform: perspective(110cqi) rotateX(14deg); transform-origin: 50% 100%;
    span { color: rgba(255, 255, 255, .26); font: 500 max(8.5px, 1.6cqi)/1 var(--fc-f-mono); letter-spacing: .24em; text-transform: uppercase; text-shadow: 0 1px 0 rgba(0, 0, 0, .9); } }
  .fc-bx-y { width: 9cqi; height: 9cqi; fill: none; stroke: #0b0c0f; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 -1px 0 rgba(255, 255, 255, .1)) drop-shadow(0 1px 0 rgba(255, 255, 255, .06)); }
  /* Le creux de l'écrin, vu d'en haut : un fond sombre, et la lumière qui monte de l'intérieur. */
  .fc-bx-creux { position: absolute; left: 12%; width: 76%; top: 47%; height: 10%; background: radial-gradient(60% 120% at 55% 100%, rgba(246, 184, 26, .22), transparent 70%), linear-gradient(180deg, #030304, #0d0e11 70%, #181a1f); clip-path: polygon(6% 0, 94% 0, 100% 100%, 0 100%); }
  /* Le shot, debout dans l'écrin : la scène 3D (scene3d.js, mode « flacon »). */
  .fc-bx-scene .fc-scene3d { inset: auto; left: 22%; width: 66%; top: 0; height: 74%; z-index: 1; }
  .fc-scene3d { position: absolute; inset: 0; cursor: grab; touch-action: pan-y;
    &.tenu { cursor: grabbing; }
    canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; } }
  .fc-repli { position: absolute; left: 50%; top: 18%; height: 66%; width: auto; max-width: 100%; translate: -50% 0; transition: opacity .6s ease; }
  .fc-scene3d.pret .fc-repli { opacity: 0; }
  /* La face de l'écrin : noir mat, un liseré de lumière en haut. */
  .fc-bx-face { position: absolute; z-index: 2; left: 8%; width: 84%; top: 56%; height: 25%; border-radius: .6cqi .6cqi 1.6cqi 1.6cqi;
    background: linear-gradient(180deg, #23262c 0, #121418 7%, #0b0c0f 60%, #060708); border-top: 1px solid rgba(255, 255, 255, .2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), inset 0 -2cqi 3cqi -2cqi rgba(255, 255, 255, .04), 0 5cqi 7cqi -4cqi #000;
  }
  /* L'étiquette d'expédition, collée sur la face, à droite. */
  .fc-etiquette { position: absolute; z-index: 3; right: 9%; top: 60%; width: 33%; padding: 2.2cqi 2.4cqi 2cqi; box-sizing: border-box; border-radius: 1.2cqi; background: var(--fc-papier); color: var(--fc-encre); rotate: 4deg; box-shadow: 0 2cqi 4cqi -1.6cqi rgba(0, 0, 0, .9); pointer-events: none;
    &::before { content: ""; position: absolute; top: 1.8cqi; right: 2cqi; width: 1.6cqi; height: 1.6cqi; border-radius: 50%; background: var(--fc-nuit); box-shadow: 0 0 0 .5cqi var(--fc-papier-2); }
    p { margin-top: 1.4cqi; padding-top: 1.2cqi; border-top: 1.5px dashed rgba(23, 22, 15, .32); font: 500 max(8.5px, 1.55cqi)/1.25 var(--fc-f-mono); letter-spacing: .03em; } }
  .fc-et-route { display: flex; align-items: center; justify-content: space-between; gap: 1cqi; padding-right: 2.6cqi;
    > span { display: grid; gap: .6cqi; min-width: 0; }
    small { color: var(--fc-encre-2); font: 500 max(7.5px, 1.3cqi)/1 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
    b { font: 400 max(13px, 3.6cqi)/1 var(--fc-f-aff); text-transform: uppercase; white-space: nowrap; }
    em { color: var(--fc-encre-2); font: 500 max(7.5px, 1.4cqi)/1 var(--fc-f-mono); font-style: normal; }
    svg { width: 2.8cqi; min-width: 12px; flex: none; fill: none; stroke: var(--fc-encre); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } }
  /* La carte de membre fondateur : noire, brossée, le Y menthe, la puce, le numéro (exemple). Mesurée en em (1em = 1cqi). */
  .fc-carte-m { position: absolute; z-index: 4; left: 3%; top: 49%; width: 52em; aspect-ratio: 1.586; font-size: 1cqi; perspective: 120em; pointer-events: none;
    &::after { content: ""; position: absolute; left: 6%; right: 2%; bottom: -9%; height: 22%; border-radius: 50%; background: rgba(0, 0, 0, .75); filter: blur(1.6em); transform: rotate(-6deg) translateY(calc(var(--lv) * 2em)); z-index: -1; transition: transform .8s var(--fc-ressort); } }
  .fc-cm-face { position: absolute; inset: 0; display: grid; grid-template-rows: auto 1fr auto; padding: 3.4em 3.8em 3.2em; border-radius: 3em; overflow: hidden;
    background: repeating-linear-gradient(100deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 3px), radial-gradient(120% 100% at 14% 0%, #30333a 0, #15171b 44%, #07080a 100%);
    border: 1px solid rgba(255, 255, 255, .16);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), inset 0 0 0 .5em rgba(255, 255, 255, .015), 0 2.4em 4em -1.6em rgba(0, 0, 0, .95);
    transform: rotateZ(-7deg) rotateX(var(--rx)) rotateY(var(--ry)) translateY(calc(var(--lv) * -2.4em)); transform-origin: 50% 80%;
    transition: transform .8s var(--fc-ressort);
    /* Le reflet qui glisse sur le métal. */
    &::after { content: ""; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen;
      background: linear-gradient(112deg, transparent 32%, rgba(255, 255, 255, .13) 44%, rgba(240, 163, 58, .1) 50%, transparent 62%) var(--sx) 0 / 260% 100% no-repeat; transition: background-position .8s var(--fc-ressort); } }
  .fc-cm-haut { display: flex; align-items: flex-start; justify-content: space-between; gap: 2em;
    span { margin-top: .8em; color: rgba(255, 255, 255, .62); font: 500 max(7px, 1.9em)/1 var(--fc-f-mono); letter-spacing: .22em; text-transform: uppercase; white-space: nowrap; } }
  .fc-cm-y { width: 7.4em; height: 7.4em; fill: none; stroke: var(--fc-menthe); stroke-width: 7.5; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 .9em rgba(240, 163, 58, .55)); }
  .fc-cm-puce { align-self: center; width: 7em; height: 5.3em; border-radius: 1em; background: linear-gradient(90deg, transparent 32%, rgba(0, 0, 0, .28) 32% 34%, transparent 34% 66%, rgba(0, 0, 0, .28) 66% 68%, transparent 68%), linear-gradient(0deg, transparent 47%, rgba(0, 0, 0, .28) 47% 53%, transparent 53%), linear-gradient(135deg, #e7e8ec, #8e9198 48%, #d4d6db); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .3); }
  .fc-cm-bas { display: flex; align-items: flex-end; justify-content: space-between; gap: 2em;
    > span { display: grid; gap: .9em; }
    small { color: rgba(255, 255, 255, .5); font: 500 max(6.5px, 1.6em)/1 var(--fc-f-mono); letter-spacing: .22em; text-transform: uppercase; white-space: nowrap; }
    b { color: #fff; font: 400 6em/.9 var(--fc-f-aff); letter-spacing: .03em; white-space: nowrap; font-variant-numeric: tabular-nums; text-shadow: 0 1px 0 rgba(0, 0, 0, .6); }
    em { color: rgba(255, 255, 255, .86); font: 400 4.2em/.9 var(--fc-f-aff); font-style: normal; letter-spacing: .04em; } }
  .fc-bx-ill { position: absolute; right: var(--fc-gout); top: 89%; margin: 0; color: var(--fc-pale); font: 500 10px/1.3 var(--fc-f-mono); letter-spacing: .06em; text-align: right; }
  @media (min-width: 760px) { .fc-bx-ill { right: 0; } }
  /* Le texte : court. Un sur-titre, le titre, une phrase, trois repères numérotés, le rituel, la ligne hors Europe. */
  .fc-box-texte h2 { font-size: clamp(40px, 5.2vw, 66px); line-height: 1; }
  .fc-bx-liste { list-style: none; margin: 26px 0 0; padding: 0; border-top: 1px solid var(--fc-ligne);
    li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--fc-ligne); }
    li > b { color: var(--fc-menthe); font: 500 12px/1 var(--fc-f-mono); letter-spacing: .1em; }
    span { display: grid; gap: 3px; min-width: 0; }
    strong { color: #fff; font: 650 16.5px/1.3 var(--fc-f-txt); }
    small { color: var(--fc-doux); font-size: 14.5px; line-height: 1.4; } }
  .fc-bx-rituel { margin-top: 16px; padding-left: 12px; border-left: 2px solid rgba(240, 163, 58, .55); color: var(--fc-doux); font-size: 13.5px; line-height: 1.5; max-width: 52ch; }
  .fc-bx-hors { display: flex; align-items: center; gap: 9px; margin-top: 14px; color: var(--fc-pale); font: 500 12px/1.45 var(--fc-f-mono);
    svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; } }

  /* Le mode Entreprise d'abord (29/10/2026) : les deux parcours, l'exemple du Café Grenadine (trois créations). */
  .fc-parcours-k { margin: 6px 0 14px; color: var(--fc-menthe); font: 500 11.5px/1.3 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; }
  .fc-parcours-ag { color: #f6c453; }
  .fc-gestes-ent { margin-bottom: clamp(30px, 5vw, 56px); }
  .fc-galerie.fc-galerie-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto; }
  .fc-galerie.fc-galerie-3 > figure.fc-g-site, .fc-galerie.fc-galerie-3 > figure.fc-g-video, .fc-galerie.fc-galerie-3 > figure.fc-g-logo { grid-column: auto; grid-row: auto; aspect-ratio: 9 / 16; }
  .fc-galerie.fc-galerie-3 > figure.fc-g-logo { background: #fbf4ea; }
  .fc-concret { padding: clamp(18px, 2.4vw, 26px); border-radius: 22px; background: var(--fc-papier); color: var(--fc-encre);
    h3 { font: 400 clamp(28px, 6vw, 40px)/1 var(--fc-f-aff); text-transform: uppercase; }
    > p:not(.fc-avertit) { margin-top: 10px; font-size: 17px; font-weight: 600; line-height: 1.45; }
    .fc-metiers { margin-top: 14px; li { color: var(--fc-encre); border-color: rgba(23, 22, 15, .25); background: transparent; } li:first-child { color: #9a4a12; border-color: rgba(154, 74, 18, .45); } }
    .fc-avertit { margin-top: 14px; } }

  /* « Ce que vaut ton Pack » (28/10/2026, nuit) : trois cartes (la valeur en crédits, deux exemples, le reste sans
     chiffre), puis « Tout ça pour 97 € HT ». Les lignes s'empilent ([data-rv], décalées par vente.js). */
  .fc-valeur { padding-bottom: 0; }
  .fc-val-k { margin-bottom: 10px; color: var(--fc-menthe); font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; }
  .fc-val-cartes { display: grid; gap: 12px; }
  @media (min-width: 980px) { .fc-val-cartes { grid-template-columns: 1.15fr 1fr 1fr; gap: 16px; align-items: stretch; } }
  .fc-val-carte { padding: clamp(18px, 2.4vw, 24px); border-radius: 22px; background: linear-gradient(180deg, #14161a, #0e1013); border: 1px solid var(--fc-ligne); }
  .fc-val-credits { border-color: rgba(240, 163, 58, .35); }
  .fc-val-lignes { list-style: none; margin: 0; padding: 0; display: grid;
    li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--fc-ligne); font-size: 15.5px; color: var(--fc-texte); }
    b { color: var(--fc-menthe); font: 400 clamp(26px, 6.4vw, 34px)/1 var(--fc-f-aff); white-space: nowrap; } }
  .fc-val-total { margin-top: 14px; color: var(--fc-texte); font: 700 17px/1.4 var(--fc-f-txt); }
  .fc-val-m { margin-top: 8px; color: var(--fc-pale); font-size: 12.5px; line-height: 1.45; }
  .fc-val-sk { margin-bottom: 10px; color: var(--fc-pale); font: 500 10.5px/1.2 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
  .fc-val-ex { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px;
    li { display: grid; gap: 4px; }
    small { color: #f6c453; font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .12em; text-transform: uppercase; }
    b { color: var(--fc-texte); font-size: 15.5px; line-height: 1.4; }
    span { color: var(--fc-pale); font-size: 12.5px; line-height: 1.45; } }
  .fc-val-plus { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px;
    li { display: flex; gap: 10px; align-items: baseline; color: var(--fc-doux); font-size: 15px; line-height: 1.4; }
    li::before { content: "+"; flex: none; color: var(--fc-menthe); font-weight: 800; } }
  .fc-val-fin { margin-top: clamp(22px, 4vw, 40px); text-align: center; }
  .fc-val-pour { font: 400 clamp(38px, 9vw, 72px)/1 var(--fc-f-aff); text-transform: uppercase; color: #fff;
    em { color: var(--fc-menthe); font-style: normal; white-space: nowrap; } }
  .fc-val-trois { margin-top: 8px; color: var(--fc-doux); font: 500 13px/1.3 var(--fc-f-mono); letter-spacing: .06em; }

  /* Les apps à venir, incluses (28/10/2026, nuit) : une ligne en menthe sous l'explication des apps. */
  .fc-ap-nouv { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; padding: 8px 14px 8px 8px; border-radius: 999px; background: rgba(240, 163, 58, .1); border: 1px solid rgba(240, 163, 58, .35); color: var(--fc-texte); font-weight: 600; font-size: 14.5px; line-height: 1.35;
    i { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--fc-menthe); color: var(--fc-menthe-encre); font-style: normal; font-weight: 800; } }

  /* ── Le Guest Pass (28/10/2026 au soir) : une typographie forte et un reçu d'exemple, sans photo d'hôtel. ── */
  .fc-guest { padding-bottom: 0; }
  .fc-gp { display: grid; gap: 26px; align-items: center; }
  @media (min-width: 980px) { .fc-gp { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; } }
  .fc-gp-k { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; color: #f6c453; font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase;
    i { width: 8px; height: 8px; border-radius: 50%; background: #f6c453; box-shadow: 0 0 14px rgba(246, 196, 83, .7); } }
  .fc-gp-grand { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-top: 22px;
    b { color: #f6c453; font: 400 clamp(84px, 24vw, 168px)/.85 var(--fc-f-aff); letter-spacing: -.01em; white-space: nowrap; }
    small { color: var(--fc-doux); font: 500 12px/1.3 var(--fc-f-mono); letter-spacing: .12em; text-transform: uppercase; }
    small:first-child { flex-basis: 100%; } }
  .fc-gp-ticket { position: relative; margin: 0; padding: clamp(18px, 2.6vw, 26px); border-radius: 22px; background: var(--fc-papier); color: var(--fc-encre); box-shadow: 0 40px 80px -36px rgba(246, 196, 83, .35);
    &::before, &::after { content: ""; position: absolute; top: 50%; width: 22px; height: 22px; border-radius: 50%; background: var(--fc-nuit); translate: 0 -50%; }
    &::before { left: -11px; } &::after { right: -11px; }
    dl { margin: 14px 0 0; display: grid; }
    dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0; border-bottom: 1.5px dashed rgba(23, 22, 15, .22); }
    dt { font-size: 14.5px; line-height: 1.35; }
    dd { margin: 0; font: 600 15px/1.2 var(--fc-f-mono); white-space: nowrap; }
    .fc-gp-moins s { color: var(--fc-encre-2); font-weight: 500; }
    .fc-gp-total dt { font-weight: 700; }
    .fc-gp-total dd { padding: 4px 10px; border-radius: 8px; background: var(--fc-encre); color: #f6c453; font: 400 28px/1 var(--fc-f-aff); }
    .fc-gp-pack { border-bottom: 0; color: var(--fc-encre-2); }
    figcaption { margin-top: 12px; display: grid; gap: 8px; }
    .fc-gp-ex { font-size: 14px; line-height: 1.5; }
    .fc-gp-peut { font-weight: 700; font-size: 15px; }
    .fc-gp-mention { color: var(--fc-encre-2); font-size: 12px; line-height: 1.45; } }
  .fc-gp-ticket-k { display: flex; justify-content: space-between; gap: 10px; color: var(--fc-encre-2); font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase;
    span:last-child { color: #c9961f; letter-spacing: .1em; } }
  /* Cinq tuiles : la dernière prend toute la largeur sur téléphone, cinq colonnes sur ordinateur. */
  .fc-tuiles li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  /* Six tuiles sur grand écran depuis le 29/10 (les recharges −20 %) : trois par rangée, sur la même largeur. */
  @media (min-width: 900px) { .fc-tuiles { grid-template-columns: repeat(6, minmax(0, 1fr)); } .fc-tuiles li { grid-column: span 2; } }

  /* ── Le 25 décembre : les crédits versés sur le compte (100 depuis le 29/10/2026), avant la box. ── */
  .fc-credits { padding-bottom: 0; }
  .fc-cr { display: grid; gap: 22px; align-items: center; }
  .fc-cr .fc-tete { margin-bottom: 0; }
  @media (min-width: 980px) { .fc-cr { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; } }
  .fc-cr-carte { position: relative; overflow: hidden; padding: clamp(18px, 2.6vw, 26px); border-radius: 24px; background: linear-gradient(180deg, #14161a, #0e1013); border: 1px solid rgba(240, 163, 58, .28); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 40px 80px -40px rgba(240, 163, 58, .25);
    &::before { content: ""; position: absolute; inset: auto -20% -60% -20%; height: 90%; background: radial-gradient(50% 50% at 50% 50%, rgba(240, 163, 58, .14), transparent 70%); pointer-events: none; } }
  .fc-cr-haut { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 12px;
    span { color: var(--fc-pale); font: 500 10.5px/1.2 var(--fc-f-mono); letter-spacing: .13em; text-transform: uppercase; }
    b { padding: 5px 10px; border-radius: 999px; background: var(--fc-menthe); color: var(--fc-nuit); font: 600 11px/1 var(--fc-f-mono); letter-spacing: .1em; white-space: nowrap; } }
  .fc-cr-solde { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 18px;
    i { color: var(--fc-menthe); font: 400 clamp(44px, 12vw, 76px)/1 var(--fc-f-aff); font-style: normal; }
    b { color: var(--fc-menthe); font: 400 clamp(56px, 15vw, 96px)/.95 var(--fc-f-aff); font-variant-numeric: tabular-nums; white-space: nowrap; }
    span { color: var(--fc-texte); font: 650 17px/1.2 var(--fc-f-txt); } }
  .fc-cr-lignes { position: relative; list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid var(--fc-ligne); display: grid; gap: 9px;
    li { display: flex; gap: 10px; align-items: baseline; color: var(--fc-doux); font-size: 14.5px; line-height: 1.4; }
    li::before { content: "✓"; flex: none; color: var(--fc-menthe); font-weight: 700; } }

  /* ── La fiche du shot : une étiquette de boisson sur papier, les doses en gros, puis les précautions entières. ── */
  .fc-fiche { margin-top: clamp(44px, 7vw, 80px); display: grid; gap: 14px; align-items: start; }
  @media (min-width: 900px) { .fc-fiche { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 20px; } }
  .fc-etiq { position: relative; padding: 22px 20px 20px; border-radius: 22px; background: var(--fc-papier); color: var(--fc-encre); box-shadow: 0 50px 100px -60px #000, 0 0 0 1px rgba(255, 255, 255, .5) inset;
    ::selection { background: var(--fc-encre); color: var(--fc-menthe); }
    .fc-etiq-tete { padding-right: 124px; padding-bottom: 14px; border-bottom: 8px solid var(--fc-encre); }
    .fc-etiq-tete b { display: block; font: 400 clamp(54px, 15vw, 84px)/.86 var(--fc-f-aff); letter-spacing: .01em; }
    .fc-etiq-tete p { margin-top: 10px; color: var(--fc-encre-2); font: 500 11px/1.35 var(--fc-f-mono); letter-spacing: .1em; text-transform: uppercase; }
    dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    dl > div { padding: 14px 0; border-bottom: 1.5px solid rgba(23, 22, 15, .2); min-width: 0; }
    dl > div:nth-child(even) { padding-right: 14px; }
    dl > div:nth-child(odd):not(.fc-etiq-large) { padding-left: 14px; border-left: 1.5px solid rgba(23, 22, 15, .2); }
    dt { color: var(--fc-encre-2); font: 500 10.5px/1.2 var(--fc-f-mono); letter-spacing: .12em; text-transform: uppercase; }
    dd { margin: 6px 0 0; }
    dd b { display: block; font: 400 clamp(30px, 8.4vw, 42px)/1 var(--fc-f-aff); letter-spacing: .005em; font-variant-numeric: tabular-nums; }
    dd span { display: block; margin-top: 6px; color: var(--fc-encre-2); font-size: 13px; line-height: 1.45; }
    .fc-etiq-large { grid-column: 1 / -1; }
    .fc-etiq-large dd b { font-size: clamp(26px, 7vw, 36px); }
    .fc-etiq-large dd span { max-width: 52ch; } }
  .fc-etiq-flacon { position: absolute; top: -26px; right: 8px; width: 104px; height: auto; rotate: 6deg; filter: drop-shadow(0 22px 24px rgba(0, 0, 0, .45)); pointer-events: none; }
  @media (min-width: 900px) { .fc-etiq { padding: 32px 32px 28px; } .fc-etiq .fc-etiq-tete { padding-right: 170px; } .fc-etiq-flacon { width: 150px; top: -40px; right: 20px; } }
  .fc-etiq-par { padding: 9px 0; border-bottom: 3px solid var(--fc-encre); font: 650 13px/1 var(--fc-f-txt); text-transform: uppercase; letter-spacing: .06em; }
  .fc-etiq-base { margin-top: 14px; color: var(--fc-encre-2); font-size: 13px; line-height: 1.5; }
  .fc-prec { padding: 22px 20px; border-radius: 22px; background: var(--fc-nuit-2); border: 1px solid var(--fc-ligne-2);
    ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
    li { position: relative; padding-left: 20px; color: var(--fc-doux); font-size: 14.5px; line-height: 1.5; }
    li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid var(--fc-menthe); } }
  @media (min-width: 900px) { .fc-prec { padding: 28px; } }
  .fc-prec-t { display: flex; align-items: center; gap: 12px; color: #fff; font: 400 26px/1 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .02em;
    i { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 50%; border: 2px solid var(--fc-texte); font: 600 13px/1 var(--fc-f-mono); font-style: normal; letter-spacing: 0; } }

  /* ── Le badge du prélancement ── */
  .fc-badge { display: inline-flex; align-items: center; gap: 9px; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(240, 163, 58, .55); background: rgba(240, 163, 58, .08); color: var(--fc-menthe); font: 500 11.5px/1.2 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase;
    i { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--fc-menthe); box-shadow: 0 0 12px rgba(240, 163, 58, .9); animation: fc-pouls 1.6s ease-in-out infinite; } }
  @media (max-width: 480px) { .fc-badge { gap: 7px; padding: 7px 12px; font-size: 10px; letter-spacing: .08em; } }

  /* ── Le Campus : la scène bord à bord sur téléphone, sous un couchant. ── */
  .fc-campus { isolation: isolate; }
  .fc-campus::before { content: ""; position: absolute; z-index: -1; inset: 10% 0 auto; height: 60%; pointer-events: none; background: radial-gradient(60% 50% at 50% 40%, rgba(255, 122, 60, .12), transparent 70%); }
  .fc-cp-scene { position: relative; margin: 0 calc(-1 * var(--fc-gout)); aspect-ratio: 1 / 1.05; overflow: hidden; background: #0a1024; border-block: 1px solid var(--fc-ligne-2);
    > .fc-cp-fixe img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    &::after { content: ""; position: absolute; inset: auto 0 0; height: 30%; pointer-events: none; background: linear-gradient(transparent, rgba(9, 10, 12, .55)); } }
  @media (min-width: 640px) { .fc-cp-scene { margin: 0; aspect-ratio: 4 / 3; border-radius: 28px; border: 1px solid var(--fc-ligne-2); box-shadow: 0 60px 120px -70px rgba(255, 106, 43, .55); } }
  @media (min-width: 980px) { .fc-cp-scene { aspect-ratio: 16 / 8.2; } }
  .fc-cp-3d { position: absolute; inset: 0; cursor: grab; touch-action: pan-y;
    &.tenu { cursor: grabbing; }
    canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity .8s ease; }
    &.pret canvas { opacity: 1; } }
  .fc-cp-panneau { position: absolute; z-index: 1; left: 12px; top: 12px; display: flex; flex-wrap: wrap; width: max-content; max-width: calc(100% - 24px); border-radius: 12px; overflow: hidden; background: rgba(8, 9, 11, .8); border: 1px solid var(--fc-ligne-2); pointer-events: none; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    > span { display: grid; gap: 6px; padding: 10px 13px; }
    > span + span { border-left: 1px solid var(--fc-ligne); }
    small { color: var(--fc-pale); font: 500 9.5px/1 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
    b { font: 400 clamp(15px, 1.7vw, 19px)/1.05 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .02em; }
    > span + span b { color: var(--fc-menthe); } }
  .fc-cp-lieux { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 24px;
    li { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-content: start; column-gap: 12px; padding: 15px 0; border-top: 1px solid var(--fc-ligne); }
    em { grid-row: span 2; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--fc-menthe); color: var(--fc-menthe-encre); font: 600 13px/1 var(--fc-f-mono); font-style: normal; }
    li:nth-child(4) em { background: var(--fc-laiton); color: #2e1f04; }
    b { font: 650 15.5px/1.3 var(--fc-f-txt); }
    span { margin-top: 4px; color: var(--fc-doux); font-size: 14px; line-height: 1.5; } }
  @media (min-width: 760px) { .fc-cp-lieux { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1080px) { .fc-cp-lieux { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

  .fc-priorite { margin-top: clamp(40px, 6vw, 72px); display: grid; gap: 28px; align-items: center; padding: clamp(22px, 4.4vw, 52px); border-radius: 28px; background: radial-gradient(80% 60% at 100% 0%, rgba(240, 198, 116, .07), transparent 70%), linear-gradient(180deg, #15171b, #0d0f12); border: 1px solid var(--fc-ligne); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
    h3 { color: #fff; font: 400 clamp(36px, 9.4vw, 58px)/.96 var(--fc-f-aff); text-transform: uppercase; }
    .fc-priorite-texte > p { margin-top: 14px; max-width: 56ch; color: var(--fc-doux); font-size: 15.5px; line-height: 1.55; }
    .fc-priorite-texte ul { list-style: none; margin: 22px 0 0; padding: 0; }
    .fc-priorite-texte li { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 0; border-top: 1px solid var(--fc-ligne); }
    .fc-priorite-texte li > b { color: var(--fc-menthe); font: 400 34px/1 var(--fc-f-aff); white-space: nowrap; }
    .fc-grave { display: block; width: 52px; height: 30px; fill: none; stroke: var(--fc-menthe); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; } /* la plaque gravée du Mur (29/10/2026 : plus de « ∞ », qui disait « à vie ») */
    .fc-grave .fc-vis { fill: var(--fc-menthe); stroke: none; }
    strong { display: block; font: 650 16px/1.3 var(--fc-f-txt); }
    small { display: block; margin-top: 4px; color: var(--fc-doux); font-size: 14px; line-height: 1.45; } }
  @media (min-width: 980px) { .fc-priorite { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 56px; } }
  .fc-priorite-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 26px;
    .fc-fin-vente { color: var(--fc-doux); text-align: left; } }
  @media (max-width: 599px) { .fc-priorite-cta .fc-btn { width: 100%; } }
  .fc-plaque { padding: 22px; border-radius: 16px; background: linear-gradient(160deg, #2d2922, #17150f); border: 1px solid rgba(240, 198, 116, .32); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 34px 70px -36px #000;
    ul { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
    li { height: 30px; border-radius: 6px; opacity: .55; background: repeating-linear-gradient(90deg, rgba(240, 198, 116, .26) 0 44px, transparent 44px 54px) center / 100% 8px no-repeat; }
    li.toi { height: auto; padding: 16px 12px; opacity: 1; text-align: center; background: rgba(240, 198, 116, .09); border: 1px solid rgba(240, 198, 116, .55); }
    li.toi b { display: block; color: var(--fc-laiton); font: 400 30px/1 var(--fc-f-aff); letter-spacing: .14em; text-transform: uppercase; }
    li.toi small { display: block; margin-top: 7px; color: var(--fc-laiton-2); font: 500 10px/1.2 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; } }
  @media (max-width: 979px) { .fc-plaque { width: min(100%, 340px); justify-self: center; ul li:not(.toi) { height: 18px; } } }
  .fc-plaque-mur { color: var(--fc-laiton); font: 500 11px/1.3 var(--fc-f-mono); letter-spacing: .2em; text-transform: uppercase; text-align: center; }
  .fc-campus > .fc-env > .fc-avertit { margin-top: 20px; max-width: 92ch; color: var(--fc-pale); }

  /* ── Le club : une grille à cinq cases de tailles différentes. ── */
  .fc-club-grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px;
    li { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 24px; background: var(--fc-nuit-2); border: 1px solid var(--fc-ligne); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05); }
    li > b { margin-bottom: 6px; color: var(--fc-menthe); font: 400 42px/1 var(--fc-f-aff); text-transform: uppercase; white-space: nowrap; }
    li > b svg { display: block; width: 36px; height: 36px; fill: none; stroke: var(--fc-menthe); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
    strong { display: block; color: #fff; font: 400 25px/1.02 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .01em; }
    small { display: block; color: var(--fc-doux); font-size: 14.5px; line-height: 1.5; max-width: 52ch; }
    .fc-lien { margin-top: 4px; align-self: flex-start; } }
  .fc-cg-groupe { background: radial-gradient(90% 80% at 0% 0%, rgba(240, 163, 58, .12), transparent 60%), var(--fc-nuit-2) !important; }
  .fc-cg-visages { display: flex; margin-top: auto; padding-top: 18px; padding-left: 10px;
    img { width: 44px; height: 44px; margin-left: -10px; border-radius: 50%; border: 2px solid var(--fc-nuit-2); } }
  .fc-cg-live { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; }
  .fc-cg-live::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--fc-menthe); box-shadow: 0 0 0 0 rgba(240, 163, 58, .6), 0 0 16px rgba(240, 163, 58, .8); animation: fc-pouls 1.6s ease-in-out infinite; }
  .fc-cg-amb { border-color: rgba(240, 163, 58, .45) !important; background: linear-gradient(135deg, rgba(240, 163, 58, .13), rgba(240, 163, 58, .02) 60%), var(--fc-nuit-2) !important; }
  .fc-cg-amb > b { font-size: 56px !important; }
  @media (min-width: 900px) {
    .fc-club-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
      li { padding: 28px; }
      .fc-cg-groupe { grid-column: 1 / 3; grid-row: 1 / 3; }
      .fc-cg-groupe strong { font-size: 40px; max-width: 14ch; }
      .fc-cg-groupe small { font-size: 16px; }
      .fc-cg-amb { grid-column: 2 / 4; } }
  }

  /* ── Les trois dates : un rail, un nœud allumé « tu es ici », Noël sur papier. ── */
  .fc-dates { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0;
    &::before { content: ""; position: absolute; left: 9px; top: 12px; bottom: 40px; width: 2px; background: repeating-linear-gradient(180deg, rgba(240, 163, 58, .7) 0 8px, transparent 8px 14px); }
    li { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 0 0 34px 42px; }
    li::before { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; box-sizing: border-box; border-radius: 50%; background: var(--fc-nuit); border: 2px solid var(--fc-menthe); }
    small { color: var(--fc-pale); font: 500 11px/1 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; }
    b { color: #fff; font: 400 clamp(38px, 10vw, 56px)/.95 var(--fc-f-aff); text-transform: uppercase; }
    strong { font: 650 17px/1.3 var(--fc-f-txt); }
    span { color: var(--fc-doux); font-size: 15px; line-height: 1.55; max-width: 46ch; }
    .fc-fin-vente { color: var(--fc-menthe); font-style: normal; text-align: left; text-transform: uppercase; letter-spacing: .1em; }
    li.ouvert::before { background: var(--fc-menthe); box-shadow: 0 0 18px rgba(240, 163, 58, .8); }
    li.ouvert::after { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--fc-menthe); animation: fc-onde 2.2s var(--fc-sortie) infinite; }
    li.ouvert small { color: var(--fc-menthe); }
    li.noel { padding: 22px 22px 24px; margin-left: 42px; border-radius: 22px; background: var(--fc-papier); color: var(--fc-encre); }
    li.noel::before { left: -42px; top: 24px; background: var(--fc-papier); border-color: var(--fc-papier); }
    li.noel b { color: var(--fc-encre); }
    li.noel small, li.noel span { color: var(--fc-encre-2); } }
  @media (min-width: 900px) {
    .fc-dates { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px;
      &::before { left: 0; right: 0; top: 9px; bottom: auto; width: auto; height: 2px; background: repeating-linear-gradient(90deg, rgba(240, 163, 58, .7) 0 8px, transparent 8px 14px); }
      li { padding: 44px 0 0; }
      li::before, li.ouvert::after { top: 0; }
      li.noel { margin: 0; padding: 30px 26px 28px; margin-top: 30px; }
      li.noel::before { left: 26px; top: -30px; } }
  }

  /* ── Le billet : l'offre entière, en carte d'embarquement. ── */
  .fc-tarifs .fc-tete { margin-inline: auto; text-align: center; .fc-sous { margin-inline: auto; } }
  .fc-billet { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); border-radius: 26px; background: var(--fc-papier); color: var(--fc-encre);
    box-shadow: 0 70px 120px -60px rgba(0, 0, 0, .95), 0 0 0 1px rgba(255, 255, 255, .5) inset, 0 40px 120px -80px rgba(240, 163, 58, .5);
    ::selection { background: var(--fc-encre); color: var(--fc-menthe); }
    :focus-visible { outline-color: var(--fc-encre); } }
  @media (min-width: 940px) { .fc-billet { grid-template-columns: minmax(0, 1fr) 360px; } }
  .fc-billet-corps { padding: clamp(20px, 3.6vw, 44px); min-width: 0; }
  .fc-billet-haut { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 16px; border-bottom: 2px solid var(--fc-encre);
    b { font: 400 clamp(19px, 2.4vw, 24px)/1 var(--fc-f-aff); letter-spacing: .05em; white-space: nowrap; }
    span { color: var(--fc-encre-2); font: 500 10.5px/1.3 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; text-align: right; } }
  .fc-champs { margin: 0; padding: 18px 0 20px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px 14px; border-bottom: 1.5px dashed rgba(23, 22, 15, .32);
    dt { color: var(--fc-encre-2); font: 500 10px/1.2 var(--fc-f-mono); letter-spacing: .15em; text-transform: uppercase; }
    dd { margin: 7px 0 0; font: 400 clamp(20px, 2vw, 25px)/1.05 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .02em; }
    div:nth-child(2) dd { display: inline-block; padding: 3px 7px 2px; margin-left: -7px; background: var(--fc-menthe); border-radius: 4px; } }
  @media (max-width: 700px) { .fc-champs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .fc-manifeste { list-style: none; margin: 0; padding: 0;
    li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(23, 22, 15, .12); }
    b { display: block; font: 650 16px/1.3 var(--fc-f-txt); }
    small { display: block; margin-top: 4px; color: var(--fc-encre-2); font-size: 14px; line-height: 1.45; }
    em { padding: 7px 10px; border: 1.5px solid var(--fc-encre); border-radius: 6px; font: 500 13px/1 var(--fc-f-mono); font-style: normal; letter-spacing: .03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
    li:nth-child(4) em, li:nth-child(5) em { background: var(--fc-menthe); }
    li:last-child { border-bottom: 0; } }
  @media (max-width: 599px) { .fc-manifeste small { display: none; } .fc-manifeste li { padding: 12px 0; } }
  .fc-total { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: 10px; padding: 16px 20px; border-radius: 14px; background: var(--fc-encre); color: var(--fc-papier);
    span { font: 500 12px/1.3 var(--fc-f-mono); letter-spacing: .12em; text-transform: uppercase; }
    b { font: 400 clamp(32px, 3.6vw, 44px)/1 var(--fc-f-aff); color: var(--fc-menthe); font-variant-numeric: tabular-nums; white-space: nowrap; } }
  .fc-talon { position: relative; display: flex; flex-direction: column; padding: clamp(24px, 3.6vw, 40px); border-top: 2px dashed rgba(23, 22, 15, .32); }
  .fc-talon::before, .fc-talon::after { content: ""; position: absolute; top: -16px; width: 30px; height: 30px; border-radius: 50%; background: var(--fc-nuit); }
  .fc-talon::before { left: -15px; } .fc-talon::after { right: -15px; }
  @media (min-width: 940px) {
    .fc-talon { border-top: 0; border-left: 2px dashed rgba(23, 22, 15, .32); }
    .fc-talon::before, .fc-talon::after { left: -16px; right: auto; }
    .fc-talon::before { top: -15px; } .fc-talon::after { top: auto; bottom: -15px; }
  }
  .fc-talon-l { color: var(--fc-encre-2); font: 500 11px/1 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; }
  .fc-prix { margin-top: 12px; font: 400 clamp(84px, 24vw, 104px)/.86 var(--fc-f-aff); letter-spacing: -.01em; font-variant-numeric: tabular-nums;
    small { display: block; margin-top: 12px; color: var(--fc-encre-2); font: 500 12.5px/1.3 var(--fc-f-mono); letter-spacing: .1em; text-transform: uppercase; } }
  @media (min-width: 940px) { .fc-prix { font-size: clamp(80px, 7.4vw, 100px); } }
  /* Les fondateurs (28/10/2026, nuit) : deux cartes, photo, prénom, rôle, trois phrases. */
  .fc-fd { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
  @media (min-width: 900px) { .fc-fd { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; } }
  .fc-fd-carte { display: grid; gap: 8px; padding: clamp(18px, 2.4vw, 26px); border-radius: 22px; background: linear-gradient(180deg, #14161a, #0e1013); border: 1px solid var(--fc-ligne);
    img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
    b { font: 400 30px/1 var(--fc-f-aff); text-transform: uppercase; }
    small { color: var(--fc-menthe); font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
    p { color: var(--fc-doux); font-size: 15px; line-height: 1.5; } }

  /* « Une question ? Réserve 15 min avec nous » (28/10/2026, nuit) : un lien discret en forme de pastille. */
  .fc-rdv { display: inline-flex; align-items: center; gap: 9px; margin-top: 14px; padding: 10px 16px; border-radius: 999px; border: 1.5px solid currentColor; color: inherit; font-weight: 600; font-size: 14.5px; text-decoration: none;
    svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
    &:hover { background: rgba(127, 127, 127, .12); } }
  .fc-rdv-faq { margin-top: 18px; color: var(--fc-texte); }
  .fc-rdv-faq:empty { display: none; }

  /* Les 100 premiers et les avis (28/10/2026, nuit) : cachés tant que l'API du compte ne répond pas. */
  .fc-cent { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 14px; padding: 12px 16px; border-radius: 16px; background: rgba(246, 196, 83, .1); border: 1px solid rgba(246, 196, 83, .4); color: var(--fc-texte); font-weight: 600; font-size: 14.5px; line-height: 1.4;
    i { color: #f6c453; font-style: normal; }
    b { margin-left: auto; color: #f6c453; font: 500 12px/1.2 var(--fc-f-mono); letter-spacing: .1em; text-transform: uppercase; } }
  .fc-cent[hidden], .fc-avis[hidden], .fc-cent b[hidden] { display: none; }
  .fc-avis-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
  @media (min-width: 900px) { .fc-avis-liste { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
  .fc-avis-liste li { display: grid; gap: 10px; padding: 20px; border-radius: 20px; background: linear-gradient(180deg, #14161a, #0e1013); border: 1px solid var(--fc-ligne);
    p { color: var(--fc-texte); font-size: 15px; line-height: 1.5; }
    b { color: var(--fc-pale); font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .12em; text-transform: uppercase; }
    img, video { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; background: #0b0c0f; } }

  /* Le paiement en 3 fois, en grand (28/10/2026, nuit). */
  .fc-trois-grand { margin-top: 10px; color: var(--fc-encre); font: 400 clamp(26px, 6vw, 34px)/1.05 var(--fc-f-aff); text-transform: uppercase; }
  .fc-trois-jour { margin-top: 6px; color: var(--fc-encre); font-weight: 600; font-size: 14.5px; line-height: 1.4; }
  .fc-hero-jour { color: var(--fc-doux); font-size: 13.5px; line-height: 1.4; text-align: center; }
  .fc-trois { margin-top: 12px; color: var(--fc-encre-2); font-size: 14px; line-height: 1.5; }
  .fc-talon-cta { display: grid; gap: 10px; margin-top: 24px;
    .fc-btn { padding: 0 18px; font-size: 15.5px; white-space: nowrap; min-height: 56px; } }
  /* 29/10 : sur 360 px, « Commander le Pack Fondateur » dépassait le talon de 20 px. */
  @media (max-width: 400px) { .fc-talon-cta .fc-btn { min-width: 0; padding: 0 14px; gap: 8px; font-size: 14.5px; white-space: normal; text-align: center; } }
  /* La caisse (29/10/2026) : deux choix sur le papier du talon, Europe (box livrée, +12 € HT) et hors Europe (sans box),
     chacun en 1 ou 3 fois. Aucun choix coché d'avance : chaque bouton dit ce qu'il paie. */
  .fc-choix { display: grid; gap: 12px; scroll-margin-top: 90px; }
  .fc-choix-t { color: var(--fc-encre-2); font: 500 11px/1 var(--fc-f-mono); letter-spacing: .16em; text-transform: uppercase; }
  .fc-choix-o { display: grid; gap: 10px; padding: 16px; border-radius: 18px; background: rgba(255, 255, 255, .55); border: 1.5px solid rgba(23, 22, 15, .16);
    .fc-btn { min-height: 52px; padding: 0 16px; font-size: 15px; white-space: normal; text-align: center; justify-content: center; } }
  .fc-choix-nom { display: grid; gap: 4px;
    b { color: var(--fc-encre); font: 400 24px/1.05 var(--fc-f-aff); text-transform: uppercase; }
    span { color: var(--fc-encre-2); font-size: 13.5px; line-height: 1.4; } }
  .fc-choix-prix { display: grid; gap: 2px; color: var(--fc-encre); font-size: 15px; line-height: 1.35;
    b { font: 400 34px/1 var(--fc-f-aff); font-variant-numeric: tabular-nums; }
    small { color: var(--fc-encre-2); font-size: 13.5px; } }
  .fc-fin-vente { color: var(--fc-encre-2); font: 500 12px/1.4 var(--fc-f-mono); letter-spacing: .04em; text-align: center; }
  .fc-fin-vente:empty { display: none; }
  .fc-confiance { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 9px; color: var(--fc-encre-2); font-size: 13.5px; line-height: 1.4;
    li { position: relative; padding-left: 22px; }
    li::before { content: ""; position: absolute; left: 3px; top: .32em; width: 10px; height: 5px; border-left: 2px solid var(--fc-encre); border-bottom: 2px solid var(--fc-encre); rotate: -45deg; } }
  .fc-code-barres { margin-top: auto; padding-top: 24px; height: 58px; background-clip: content-box; opacity: .88;
    background-image: repeating-linear-gradient(90deg, var(--fc-encre) 0 2px, transparent 2px 4px, var(--fc-encre) 4px 5px, transparent 5px 8px, var(--fc-encre) 8px 11px, transparent 11px 12px, var(--fc-encre) 12px 13px, transparent 13px 17px); }
  .fc-petit { margin: 18px auto 0; max-width: 72ch; color: var(--fc-pale); font-size: 13px; line-height: 1.5; text-align: center; }

  /* ── La garantie : un tampon, trois règles. ── */
  .fc-garantie { padding-top: 0; }
  .fc-garantie-grille { display: grid; gap: 30px; align-items: center; padding: clamp(28px, 5vw, 64px) clamp(20px, 5vw, 64px); border-radius: 28px; border: 1px solid rgba(240, 163, 58, .3);
    background: radial-gradient(70% 90% at 0% 50%, rgba(240, 163, 58, .1), transparent 70%), var(--fc-nuit-2);
    h2 { font-size: clamp(40px, 10.4vw, 72px); } }
  @media (min-width: 900px) { .fc-garantie-grille { grid-template-columns: 260px minmax(0, 1fr); gap: 64px; } }
  .fc-tampon { justify-self: center; display: grid; place-content: center; gap: 8px; width: 184px; aspect-ratio: 1; border-radius: 50%; text-align: center; rotate: -9deg;
    border: 3px solid var(--fc-menthe); box-shadow: inset 0 0 0 6px var(--fc-nuit-2), inset 0 0 0 7.5px rgba(240, 163, 58, .7); color: var(--fc-menthe);
    b { font: 400 22px/1 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .03em; }
    small { font: 500 10.5px/1.2 var(--fc-f-mono); letter-spacing: .1em; text-transform: uppercase; } }
  @media (min-width: 900px) { .fc-tampon { width: 236px; b { font-size: 29px; } small { font-size: 12px; } } }
  .fc-regles { list-style: none; margin: 26px 0 0; padding: 0; counter-reset: r;
    li { position: relative; display: grid; gap: 4px; padding: 14px 0 14px 40px; border-top: 1px solid var(--fc-ligne); counter-increment: r; }
    li::before { content: counter(r); position: absolute; left: 0; top: 15px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--fc-menthe); color: var(--fc-menthe); font: 600 12px/1 var(--fc-f-mono); }
    b { font: 650 16.5px/1.3 var(--fc-f-txt); color: #fff; }
    span { color: var(--fc-doux); font-size: 15px; line-height: 1.5; } }

  /* ── Les questions ── */
  .fc-faq-grille { display: grid; gap: 8px; }
  @media (min-width: 980px) { .fc-faq-grille { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; align-items: start; }
    .fc-faq-grille .fc-tete { position: sticky; top: 120px; } }
  .fc-faq { border-top: 1px solid var(--fc-ligne);
    details { margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--fc-ligne); border-radius: 0; background: none; box-shadow: none; }
    details[open] { border-color: var(--fc-ligne); background: none; }
    summary { position: relative; margin: 0; padding: 19px 44px 19px 0; background: none; list-style: none; cursor: pointer; font: 650 16.5px/1.35 var(--fc-f-txt); transition: color .2s; }
    summary::-webkit-details-marker { display: none; }
    summary::after { content: ""; position: absolute; right: 4px; top: 50%; width: 14px; height: 14px; translate: 0 -50%; transition: rotate .35s var(--fc-sortie);
      background: linear-gradient(var(--fc-menthe) 0 0) center / 14px 2px no-repeat, linear-gradient(var(--fc-menthe) 0 0) center / 2px 14px no-repeat; }
    summary:hover { color: #fff; }
    details[open] summary::after { rotate: 45deg; }
    details p { max-width: 68ch; margin: 0; padding: 0 0 20px; color: var(--fc-doux); font-size: 15.5px; line-height: 1.6; }
    details p + p { margin-top: -8px; } }

  /* ── Le dernier appel ── */
  .fc-fin { isolation: isolate; padding-bottom: clamp(110px, 13vw, 160px); }
  .fc-fin::before { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(60% 45% at 50% 45%, rgba(240, 163, 58, .13), transparent 70%); }
  .fc-fin-centre { display: grid; justify-items: center; text-align: center;
    .fc-sous { margin-inline: auto; } }
  .fc-fin-centre h2:has(.l1) { font-size: clamp(44px, 12.2vw, 112px); line-height: .96;
    .l1, em { display: block; } }
  .fc-stock { margin-top: 28px; display: grid; justify-items: center; gap: 6px;
    .fc-chiffre { color: var(--fc-menthe); font: 400 clamp(80px, 24vw, 200px)/.84 var(--fc-f-aff); font-variant-numeric: tabular-nums; white-space: nowrap; letter-spacing: -.01em; text-shadow: 0 0 60px rgba(240, 163, 58, .3); }
    span { color: var(--fc-texte); font: 500 12px/1.3 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; }
    small { margin-top: 6px; max-width: 40ch; color: var(--fc-doux); font-size: 14px; line-height: 1.45; } }
  .fc-fin-cta { display: grid; justify-items: center; gap: 14px; margin-top: 34px; width: 100%;
    .fc-btn-grand { width: min(100%, 420px); }
    .fc-fin-vente { color: var(--fc-doux); } }
  .fc-mention { margin-top: 56px; max-width: 80ch; color: var(--fc-pale); font-size: 12.5px; line-height: 1.55; }

  /* ── La barre collante : un talon de papier, une fois le héros passé. ── */
  .fc-collant { position: fixed; z-index: 60; left: 0; right: 0; bottom: var(--cookies-h, 0px); padding: 10px 10px calc(10px + env(safe-area-inset-bottom, 0px)); translate: 0 120%; visibility: hidden; transition: translate .6s var(--fc-ressort), visibility 0s .6s; pointer-events: none;
    &.montre { translate: 0 0; visibility: visible; transition: translate .6s var(--fc-ressort), visibility 0s; pointer-events: auto; }
    .fc-btn { min-height: 48px; padding: 0 20px; font-size: 15.5px; white-space: nowrap; background: var(--fc-encre); color: var(--fc-menthe); box-shadow: none; }
    .fc-btn:hover { background: #000; }
    .fc-btn:focus-visible { outline-color: var(--fc-encre); } }
  .fc-collant-in { position: relative; max-width: 620px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 8px 8px 18px; border-radius: 18px; background: var(--fc-papier); color: var(--fc-encre); box-shadow: 0 24px 60px -16px rgba(0, 0, 0, .95), 0 0 0 1px rgba(255, 255, 255, .4) inset; }
  .fc-collant-txt { min-width: 0;
    b { display: block; font: 400 clamp(15px, 4.3vw, 18px)/1 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    > span { display: block; margin-top: 5px; color: var(--fc-encre-2); font: 500 11.5px/1.35 var(--fc-f-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .fc-col-fin { display: block; color: var(--fc-encre); }
    .fc-col-fin:has(:empty) { display: none; } }
  @media (min-width: 560px) { .fc-collant-txt .fc-col-fin { display: inline; } .fc-collant-txt .fc-col-fin::before { content: " · "; color: var(--fc-encre-2); } }

  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
}

/* L'entrée du héros et les révélations : seulement avec le script, et seulement si l'on accepte les animations. */
@media (prefers-reduced-motion: no-preference) {
  .fc .fc-galerie.vu .fc-g-defile img { animation: fc-defile 16s ease-in-out 1s infinite alternate; }
  .fc .fc-entre { animation: fc-monte 1s var(--fc-sortie) both; animation-delay: calc(var(--d, 0) * 90ms + 60ms); }
  .fc .fc-scene-equipe.fc-entre { animation: fc-equipe 1.5s var(--fc-sortie) both; animation-delay: .35s; }
  html.fc-js .fc [data-rv]:not(.vu) { opacity: 0; translate: 0 32px; }
}
html[lang="ro"] .fc :is(h1, h2) { line-height: 1.12; }
html.fondateur-fini .fc .fc-collant { display: none; }
/* 29/10 (tournée téléphone) : menu ouvert, la barre collante se range (elle couvrait le bouton Commander du menu). */
html:has(#entete.menu-ouvert) .fc .fc-collant.montre { translate: 0 120%; visibility: hidden; pointer-events: none; }
html:has(.fc-collant.montre) .ylc-aide { bottom: calc(92px + env(safe-area-inset-bottom, 0px)); transition: bottom .35s ease; }
  /* 30/10 (David) : la flèche « Revenir en haut » se cachait derrière la bulle de discussion — elle se pose
     toujours au-dessus d'elle (bulle 64 px + 16 px d'écart), barre collante sortie ou non. */
  html:has(.ylc-aide) .vers-haut { right: 32px; bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
  html:has(.fc-collant.montre):has(.ylc-aide) .vers-haut { bottom: calc(172px + env(safe-area-inset-bottom, 0px)); }
#entete.hb .v2-commencer, .hb .hb-p-cta { background: var(--fc-menthe); color: var(--fc-menthe-encre); box-shadow: 0 10px 28px -12px rgba(240, 163, 58, .55); }
/* Sur la page unique, la bande d'ancres passe à la nuit ; sur téléphone elle se range dans le menu (moins de bandeaux au pouce). */
body:has(main.fc) .hb .hb-sous-in { background: rgba(12, 13, 16, .9); border-color: var(--fc-ligne-2); }
body:has(main.fc) .hb .hb-sous a[aria-current] { background: var(--fc-menthe); color: var(--fc-menthe-encre); }
@media (max-width: 759px) { body:has(main.fc) #entete .hb-sous { display: none; } html.hb-a-sous:has(main.fc) { scroll-padding-top: 84px; } }
@media (max-width: 639px) { .fc .fc-cp-panneau { left: 10px; top: 10px; > span { padding: 9px 11px; } } }

/* Audit mobile du 28/10 : les cibles de l'en-tête et du pied font au moins 44 px sur la page de vente. */
body:has(main.fc) #entete .v2-logo { display: inline-flex; align-items: center; min-height: 44px; }
body:has(main.fc) #entete .v2-commencer { min-height: 44px; }
body:has(main.fc) .hb .pd-simple :is(a, .lien-cookies) { min-height: 44px; }
/* En paysage sur téléphone : le titre se règle sur la hauteur, pour que le bouton reste dans l'écran. */
@media (max-height: 500px) and (orientation: landscape) { .fc h1 { margin-top: 0; font-size: min(8.4vw, 12svh, 120px); } .fc .fc-pastille { display: none; } .fc .fc-hero { padding-top: 80px; } .fc .fc-hero-sous { margin-top: 10px; font-size: 15px; } .fc .fc-hero-cta { margin-top: 14px; gap: 8px; } body:has(main.fc) #entete .hb-sous { display: none; } }

/* Relecture du 28/10 au téléphone : tout plus court, un seul passage détaillé par sujet. */
@media (max-width: 759px) {
  /* Les apps en lignes compactes : icône, nom, phrase, employé. */
  .fc .fc-ap-panneau { grid-template-columns: minmax(0, 1fr); gap: 6px;
    li { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 12px; row-gap: 2px; padding: 12px 14px; border-radius: 16px; }
    .fc-ap-ico { grid-row: 1 / span 3; width: 40px; height: 40px; margin: 0; }
    b { font-size: 19px; }
    p { font-size: 13px; }
    .fc-ap-qui { padding-top: 2px; } }
  /* La galerie du café : trois colonnes, le site et la vidéo en long. */
  .fc .fc-galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-bottom: 24px;
    figure { border-radius: 14px; }
    .fc-g-site { grid-column: 1; grid-row: 1 / 3; }
    .fc-g-video { grid-column: 2; grid-row: 1 / 3; }
    .fc-g-lire i { width: 44px; height: 44px; }
    .fc-g-plus { display: none; } }
  .fc .fc-cafe-tete p { font-size: 13px; }
  .fc .fc-livrables ul li { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 10px 0;
    img { width: 44px; height: 44px; border-radius: 13px; } }
  /* La fiche du shot plus serrée. */
  .fc .fc-etiq { padding: 18px 16px 16px;
    dd b { font-size: 28px; }
    dd span { font-size: 12.5px; }
    dl > div { padding: 11px 0; } }
  .fc .fc-prec { padding: 18px 16px; li { font-size: 13.5px; } }
  /* Le club en liste : un repère, un titre, une phrase. */
  .fc .fc-club-grille { gap: 0; border-top: 1px solid var(--fc-ligne);
    li { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 12px; row-gap: 4px; align-items: start; padding: 16px 0; border: 0; border-bottom: 1px solid var(--fc-ligne); border-radius: 0; background: none !important; box-shadow: none; }
    li > b { grid-row: 1 / span 3; margin: 0; font-size: 30px; }
    li > b svg { width: 30px; height: 30px; }
    strong { font-size: 20px; }
    .fc-cg-visages { display: none; }
    .fc-cg-amb { margin-top: 10px; padding: 16px; border: 1px solid rgba(240, 163, 58, .45) !important; border-radius: 18px; background: linear-gradient(135deg, rgba(240, 163, 58, .13), rgba(240, 163, 58, .02) 60%) !important; }
    .fc-cg-amb > b { font-size: 34px !important; } }
  .fc .fc-cg-live { font-size: 22px !important; }
  /* Le Campus : un bloc, la plaque plus petite. */
  .fc .fc-priorite { padding: 18px 16px; gap: 20px; }
  .fc .fc-plaque { padding: 16px; ul { margin-top: 10px; gap: 7px; } li.toi { padding: 12px; } li.toi b { font-size: 24px; } ul li:not(.toi) { height: 12px; } }
  .fc .fc-dates li { padding-bottom: 26px; }
  .fc .fc-livrables ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px;
    li { grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: start; }
    img { width: 36px; height: 36px; border-radius: 11px; }
    b { font-size: 14px; } small { font-size: 12.5px; } }
  .fc .fc-equipage img { aspect-ratio: 1 / .82; }
  body:has(main.fc) .hb .pd-env:has(.pd-simple) { gap: 22px; }
  .fc h2 { font-size: clamp(38px, 10.4vw, 88px); }
  .fc .fc-box-texte h2 { font-size: clamp(36px, 10.4vw, 56px); }
  .fc .fc-sous, .fc .fc-ap-tete p { font-size: 15px; line-height: 1.5; margin-top: 14px; }
  .fc .fc-club-grille li { grid-template-columns: 78px minmax(0, 1fr); } .fc .fc-club-grille li > b { font-size: 26px; }
  .fc .fc-bloc { padding-block: 46px; }
  .fc .fc-hero { padding-bottom: 8px; }
  .fc .fc-manifeste li { padding: 10px 0; gap: 12px; } .fc .fc-manifeste b { font-size: 14.5px; } .fc .fc-manifeste em { padding: 5px 8px; font-size: 12px; }
  .fc .fc-confiance { display: none; }
  .fc .fc-talon .fc-code-barres { height: 34px; padding-top: 16px; }
  .fc .fc-champs { padding: 14px 0 16px; gap: 12px 14px; }

  .fc .fc-cp-scene { aspect-ratio: 1 / .9; }
  .fc .fc-gestes li { grid-template-columns: 64px minmax(0, 1fr); padding: 16px 0; } .fc .fc-gestes i { font-size: 50px; } .fc .fc-gestes b { font-size: 24px; }
    .fc .fc-tampon { width: 140px; b { font-size: 18px; } small { font-size: 9.5px; letter-spacing: .04em; } }
  .fc .fc-garantie-grille { gap: 18px; padding: 24px 18px; }
  .fc .fc-regles { margin-top: 18px; li { padding: 11px 0 11px 38px; } li::before { top: 12px; } }
  .fc .fc-tuiles small { display: none; }
  .fc .fc-tuiles a { padding: 12px 13px; }
  .fc .fc-fin-cta { margin-top: 22px; }
  .fc .fc-mention { margin-top: 32px; }
  body:has(main.fc) footer .pd-geant, body:has(main.fc) footer [class*="geant"] { display: none; }
  .fc .fc-ap-panneau li { grid-template-areas: "ico nom qui" "ico p p"; grid-template-columns: 40px minmax(0, 1fr) auto; }
  .fc .fc-ap-panneau .fc-ap-ico { grid-area: ico; grid-row: auto; }
  .fc .fc-ap-panneau b { grid-area: nom; align-self: center; }
  .fc .fc-ap-panneau p { grid-area: p; }
  .fc .fc-ap-panneau .fc-ap-qui { grid-area: qui; margin: 0; padding: 0; font-size: 9.5px; }
  .fc .fc-ap-panneau .fc-ap-qui img + span > span { display: none; }
  .fc .fc-ap-panneau .fc-ap-qui { max-width: 120px; text-align: right; }
  .fc .fc-petit-d { max-width: 72ch; margin-inline: auto; }
  .fc .fc-eq-tete { margin-top: 48px; }
  .fc .fc-apps { margin-top: 48px; }
  .fc .fc-fiche { margin-top: 36px; }
  .fc .fc-tete { margin-bottom: 26px; }
  /* Pas deux « Commander » à la fois : celui de l'en-tête s'efface quand la barre collante est là. */
  html:has(.fc-collant.montre) #entete .v2-commencer { visibility: hidden; opacity: 0; }
  /* Le bandeau cookies sur une ligne : phrase courte, boutons de 44 px. */
  body:has(main.fc) .cookies.compact { left: 6px; right: 6px; gap: 6px; padding: 4px 4px 4px 12px; border-radius: 14px; align-items: center; }
  body:has(main.fc) .cookies.compact p { font-size: 12px; line-height: 1.3; }
  body:has(main.fc) .cookies.compact button { min-height: 44px; padding: 0 11px; font-size: 12.5px; }
}
.fc .fc-mentions { margin-top: 18px; border-top: 1px solid var(--fc-ligne);
  summary { display: flex; align-items: center; min-height: 44px; list-style: none; cursor: pointer; color: var(--fc-pale); font: 500 11px/1.2 var(--fc-f-mono); letter-spacing: .12em; text-transform: uppercase; }
  summary::-webkit-details-marker { display: none; }
  summary::after { content: "+"; margin-left: 8px; color: var(--fc-menthe); font-size: 15px; }
  &[open] summary::after { content: "−"; }
  p { padding-bottom: 12px; max-width: 92ch; color: var(--fc-pale); font-size: 12.5px; line-height: 1.55; } }

/* ── Ventes closes (30/10/2026, David) : passé le 24 décembre 2026 au soir, <html> porte « fondateur-fini » (à la date dans
   le navigateur, ou en dur si la page est régénérée après). Ce qui vend [data-vente] et ses boutons [data-fondateur-cta]
   partent ; l'entrée des membres et « Être prévenu de la suite » [data-clos] arrivent. Les trois dates passent au passé :
   le nœud allumé n'est plus « aujourd'hui », c'est Noël. ── */
html:not(.fondateur-fini) .fc [data-clos] { display: none !important; }
html.fondateur-fini .fc [data-vente], html.fondateur-fini [data-fondateur-cta] { display: none !important; }
.fc .fc-clos { justify-items: center; }
.fc .fc-clos-depuis { display: inline-flex; align-items: center; gap: 9px; margin: 2px 0 0; color: var(--fc-texte); font: 500 11.5px/1.35 var(--fc-f-mono); letter-spacing: .14em; text-transform: uppercase; text-align: center;
  i { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--fc-menthe); box-shadow: 0 0 12px rgba(240, 163, 58, .9); animation: fc-pouls 2.4s ease-in-out infinite; } }
.fc .fc-clos-nb { margin: 0; color: var(--fc-menthe); font: 400 22px/1.1 var(--fc-f-aff); letter-spacing: .02em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.fc .fc-clos .fc-lien { color: var(--fc-doux); text-align: center; text-decoration: underline; text-decoration-color: rgba(167, 173, 183, .35); text-underline-offset: 4px;
  svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  &:hover { color: var(--fc-texte); } }
@media (max-width: 480px) { .fc .fc-clos-depuis { font-size: 10.5px; letter-spacing: .1em; } }
html.fondateur-fini .fc .fc-escale { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
html.fondateur-fini .fc .fc-dates {
  li.ouvert::before { background: var(--fc-nuit); box-shadow: none; }
  li.ouvert::after { content: none; }
  li.ouvert small { color: var(--fc-pale); }
  li.noel::before { background: var(--fc-menthe); border-color: var(--fc-menthe); box-shadow: 0 0 18px rgba(240, 163, 58, .8); } }

/* ── Le rappel avant la fin des ventes (28/10/2026) : une carte de la nuit sous le dernier appel, téléphone d'abord. ── */
.fc .rp { width: 100%; max-width: 560px; margin: 36px auto 0; padding: 22px; box-sizing: border-box; border: 1px solid var(--fc-ligne-2); border-radius: 22px; background: var(--fc-nuit-2); text-align: left;
  &[hidden] { display: none; }
  .rp-k { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 10px; color: var(--fc-menthe); font: 500 10.5px/1 var(--fc-f-mono); letter-spacing: .15em; text-transform: uppercase;
    i { width: 7px; height: 7px; border-radius: 50%; background: var(--fc-menthe); box-shadow: 0 0 10px rgba(240, 163, 58, .8); } }
  h3 { margin: 0 0 8px; color: #fff; font: 400 clamp(24px, 6.4vw, 30px)/1.04 var(--fc-f-aff); text-transform: uppercase; letter-spacing: .01em; }
  .rp-intro { margin: 0; color: var(--fc-doux); font-size: 14.5px; line-height: 1.5; }
  form { display: grid; gap: 14px; margin-top: 16px; }
  .rp-ligne { display: flex; flex-wrap: wrap; gap: 10px; }
  input[type=email] { flex: 1 1 220px; min-width: 0; height: 52px; padding: 0 18px; box-sizing: border-box; border-radius: 999px; border: 1px solid var(--fc-ligne-2); background: var(--fc-nuit); color: #fff; font: 400 16px/1 var(--fc-f-txt);
    &::placeholder { color: var(--fc-pale); }
    &:focus-visible { outline: 2px solid var(--fc-menthe); outline-offset: 2px; } }
  .fc-btn { flex: 0 0 auto; min-height: 52px; padding: 0 24px; font-size: 15.5px; }
  .fc-btn:disabled { opacity: .55; cursor: not-allowed; }
  .rp-case { display: flex; gap: 10px; align-items: flex-start; color: var(--fc-doux); font-size: 13px; line-height: 1.5; cursor: pointer;
    input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--fc-menthe); }
    a { color: var(--fc-menthe-2); text-underline-offset: 3px; } }
  .rp-piege { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
  .rp-etat { min-height: 1.2em; color: var(--fc-menthe-2); font-size: 14px;
    &:empty { display: none; }
    &.rp-erreur { color: #ff8f80; } } }
@media (max-width: 480px) { .fc .rp { padding: 18px; .fc-btn { width: 100%; } } }

/* ── Les vidéos des apps (29/10/2026) : une rangée d'affiches 9:16 au pouce (une grille sur grand écran), la vidéo en plein écran. ── */
.fc {
  .fc-films { padding-top: clamp(32px, 6vw, 72px); }
  .fc-films-tete { margin-top: 0; h2 { font-size: clamp(40px, 10.4vw, 72px); } .fc-sous { margin-top: 14px; } }
  .fc-films-rang { list-style: none; margin: 0; padding: 14px var(--fc-gout) 10px; display: grid; grid-auto-flow: column; grid-auto-columns: min(46vw, 230px); gap: 12px;
    overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--fc-gout); scrollbar-width: none;
    &::-webkit-scrollbar { display: none; }
    li { scroll-snap-align: start; } }
  .fc-film-lire { position: relative; display: block; width: 100%; aspect-ratio: 9 / 16; padding: 0; border: 1px solid var(--fc-ligne); border-radius: 20px; overflow: hidden; cursor: pointer;
    background: var(--fc-nuit-2); transition: transform .5s var(--fc-ressort), border-color .3s;
    img { display: block; width: 100%; height: 100%; object-fit: cover; }
    i { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 14px 30px -10px rgba(0, 0, 0, .6); transition: transform .45s var(--fc-ressort); }
    i svg { width: 20px; height: 20px; margin-left: 3px; fill: var(--fc-encre); }
    &:hover { border-color: color-mix(in srgb, var(--fc-menthe) 50%, transparent); i { transform: scale(1.08); } }
    /* Le cadre de sélection à l'intérieur de la carte : à l'extérieur, la rangée (overflow-x) le coupait. */
    &:focus-visible { outline: 2px solid var(--fc-menthe); outline-offset: -2px; } }
  /* Sur grand écran, la même rangée (neuf affiches en grille faisaient deux rangées trop hautes), calée sur la colonne du texte. */
  @media (min-width: 1000px) {
    .fc-films-rang { grid-auto-columns: 216px; gap: 16px; padding-inline: max(var(--fc-gout), calc((100% - 1160px) / 2)); scroll-padding-inline: max(var(--fc-gout), calc((100% - 1160px) / 2));
      li:hover .fc-film-lire { transform: translateY(-6px); } } }
  .fc-film { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)); background: rgba(4, 7, 12, .94); backdrop-filter: blur(8px);
    &[hidden] { display: none; }
    video { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; border-radius: 16px; background: #000; }
    .fc-film-x { position: absolute; top: max(12px, env(safe-area-inset-top)); right: 12px; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255, 255, 255, .2); border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; cursor: pointer;
      svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; } } }
}

/* ── IMPACT : l'habillage propre au site (30/10/2026). Les couleurs sont relevées sur l'étiquette du flacon
   (scene3d.js : JAUNE #f6b81a « TROPICAL », la vague #f0a33a → #d0623f → #9b3f96, VIOLET #9b3f96 « PASSION FRUIT »,
   fond d'étiquette #1d1d20). Le vert menthe de YLC n'existe plus ici : style.css est recoloré à la construction
   (construire.py remplace la menthe par --orange).
   Contrastes sur --noir (#0a0a0b) : --orange 9,6:1, --jaune 11,4:1, --violet-clair 6,3:1, texte #eef0f3 17:1, --fc-doux 8,6:1
   (AA partout) ; --violet (#9b3f96, 3,4:1) ne sert qu'au décor et aux très grands titres (dégradé). ── */
:root {
  --noir: #0a0a0b; --noir-2: #141416; --noir-3: #1d1d20;
  --orange: #f0a33a; --jaune: #f6b81a; --corail: #d0623f; --violet: #9b3f96; --violet-clair: #c983c4;
  --vague: linear-gradient(90deg, var(--jaune) 0%, var(--orange) 30%, var(--corail) 62%, var(--violet) 100%);
  --fc-nuit: var(--noir); --fc-nuit-2: var(--noir-2); --fc-nuit-3: var(--noir-3);
  --fc-menthe: var(--orange); --fc-menthe-2: var(--jaune); --fc-menthe-encre: #1a0e00;
  --fond: var(--noir);
}
@font-face { font-family: 'Geist Fallback'; src: local('Arial'), local('Helvetica Neue'), local('Helvetica'); ascent-override: 95.94%; descent-override: 28.16%; line-gap-override: 0%; size-adjust: 104.76%; }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/polices/geist-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/polices/geist-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Geist Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url(/polices/geist-mono-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Anton'; font-style: normal; font-weight: 400; font-display: swap; src: url(/polices/anton-latin.woff2) format('woff2'); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--noir); color: #eef0f3; font-family: Geist, 'Geist Fallback', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
a { color: inherit; }
ul, ol { padding: 0; }

/* ── L'en-tête : le mot IMPACT, trois ancres, la langue, « Commander ». ── */
.im-entete { position: fixed; z-index: 70; inset: 0 0 auto; transition: background-color .3s ease, border-color .3s ease; border-bottom: 1px solid transparent; }
.im-entete.plie { background: rgba(10, 10, 11, .82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom-color: rgba(236, 240, 245, .08); }
.im-entete-in { width: min(1160px, 100% - 2 * clamp(16px, 5vw, 20px)); margin-inline: auto; height: 64px; display: flex; align-items: center; gap: 18px; }
.im-logo { display: inline-flex; align-items: baseline; gap: 8px; text-decoration: none; color: #fff; margin-right: auto; }
.im-logo b { font: 400 26px/1 Anton, 'Arial Narrow', sans-serif; letter-spacing: .02em; }
.im-logo small { color: #a7adb7; font: 500 10.5px/1 'Geist Mono', ui-monospace, monospace; letter-spacing: .14em; text-transform: uppercase; }
.im-nav { display: none; gap: 22px; }
.im-nav a { color: #c9ced6; text-decoration: none; font-size: 14.5px; font-weight: 500; }
.im-nav a:hover { color: #fff; }
@media (min-width: 860px) { .im-nav { display: flex; } }
.im-langue { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; color: #c9ced6; font: 500 12px/1 'Geist Mono', ui-monospace, monospace; letter-spacing: .12em; text-decoration: none; }
.im-langue:hover { color: #fff; }
.im-entete-cta { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--orange); color: #1a0e00; font-weight: 650; font-size: 14px; text-decoration: none; }
.im-entete-cta:hover { background: var(--jaune); }
@media (max-width: 380px) { .im-logo small { display: none; } }

/* ── Le héros : le shot d'abord. Texte à gauche, les trois flacons à droite (empilés sur téléphone). ── */
.fc .im-hero::before { background:
  radial-gradient(48% 36% at 72% 46%, rgba(240, 163, 58, .22), transparent 70%),
  radial-gradient(40% 40% at 88% 26%, rgba(155, 63, 150, .22), transparent 72%),
  radial-gradient(70% 40% at 30% 0%, rgba(208, 98, 63, .12), transparent 72%),
  linear-gradient(180deg, transparent 72%, var(--noir)); }
.fc .im-hero { padding-top: clamp(92px, 11vw, 132px); }
.fc .im-hero-grille { display: flex; flex-direction: column; align-items: center; text-align: center; }
@media (min-width: 980px) {
  .fc .im-hero-grille { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); grid-template-rows: auto auto auto auto 1fr; column-gap: 40px; align-items: start; text-align: left; }
  .fc .im-hero-grille > :not(.im-shot) { grid-column: 1; justify-self: start; }
  .fc .im-hero-grille > .im-shot { grid-column: 2; grid-row: 1 / span 5; align-self: center; }
  .fc .im-hero-grille .fc-hero-cta { justify-items: start; }
  .fc .im-hero-grille .fc-hero-prix, .fc .im-hero-grille .fc-hero-jour { justify-content: flex-start; text-align: left; }
  .fc .im-hero-grille .fc-ttc { text-align: left; }
}
.fc .im-hero h1 { font-size: clamp(44px, 13.4vw, 128px); }
@media (min-width: 980px) { .fc .im-hero h1 { font-size: min(6.2vw, 96px); } }
.fc .im-hero h1 em, .fc h2 em { background: var(--vague); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .04em; }
.fc .im-entree { margin: 14px 0 0; color: #c9ced6; font-size: clamp(17px, 4.6vw, 22px); line-height: 1.3; font-weight: 500; text-wrap: balance; }
.fc .im-entree b { display: block; margin-top: 4px; font: 400 1.18em/1.1 Anton, 'Arial Narrow', sans-serif; letter-spacing: .02em; text-transform: uppercase; background: var(--vague); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (min-width: 980px) { .fc .im-entree { margin-top: 18px; } }
.fc .im-choix-pays { display: flex; align-items: center; gap: 8px; margin: 2px 0 0; color: var(--fc-encre); font-size: 14px; font-weight: 650; line-height: 1.35; }
.fc .im-choix-pays svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.fc .im-point { width: 8px; height: 8px; margin-left: 6px; border-radius: 50%; background: var(--jaune); box-shadow: 0 0 12px rgba(246, 184, 26, .9); animation: fc-pouls 2.4s ease-in-out infinite; }
.fc .fc-hero-prix-2 { gap: 6px 16px; }
.fc .fc-hero-garantie svg { stroke: var(--orange); }

.fc .im-shot { position: relative; margin: 14px auto 0; width: min(100%, 340px); aspect-ratio: 1 / .78; margin-bottom: 30px; container-type: inline-size; }
@media (min-width: 980px) { .fc .im-shot { width: 100%; max-width: 540px; margin: 0; aspect-ratio: 1 / .95; } }
.fc .im-vague { position: absolute; inset: 14% -10% 18%; border-radius: 50%; background: radial-gradient(closest-side, rgba(246, 184, 26, .30), rgba(208, 98, 63, .16) 55%, rgba(155, 63, 150, 0) 100%); filter: blur(8px); }
.fc .im-vague::after { content: ""; position: absolute; inset: 30% 6% 30%; border-radius: 50%; border: 1px solid rgba(240, 163, 58, .28); box-shadow: 0 0 0 14px rgba(155, 63, 150, .05), 0 0 0 30px rgba(240, 163, 58, .03); }
.fc .im-fl { position: absolute; bottom: 6%; height: auto; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .7)); }
.fc .im-fl-c { left: 50%; width: 54%; translate: -40% 0; z-index: 3; bottom: 4%; }
.fc .im-fl-g { left: 4%; width: 40%; bottom: 14%; z-index: 1; filter: brightness(.55) drop-shadow(0 20px 30px rgba(0, 0, 0, .7)); rotate: -8deg; }
.fc .im-fl-d { right: 0; width: 40%; bottom: 16%; z-index: 2; filter: brightness(.62) drop-shadow(0 20px 30px rgba(0, 0, 0, .7)); rotate: 7deg; }
@media (prefers-reduced-motion: no-preference) {
  .fc .im-fl-c { animation: im-flotte 6s ease-in-out infinite; }
  @keyframes im-flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2.4%); } }
}
.fc .im-carte { position: absolute; z-index: 4; left: -2%; bottom: -2%; width: 40%; aspect-ratio: 1.586; display: grid; grid-template-rows: auto 1fr auto; padding: 4.2cqi 4.6cqi 3.8cqi; border-radius: 3.6cqi; overflow: hidden; rotate: -9deg;
  background: repeating-linear-gradient(100deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 3px), radial-gradient(120% 100% at 14% 0%, #30333a 0, #15171b 44%, #07080a 100%);
  border: 1px solid rgba(255, 255, 255, .14); box-shadow: 0 24px 40px -18px #000, inset 0 1px 0 rgba(255, 255, 255, .14); }
.fc .im-carte::before { content: ""; position: absolute; inset: auto 0 0; height: 3px; background: var(--vague); }
.fc .im-carte-haut { display: flex; justify-content: space-between; align-items: baseline; gap: 2cqi; }
.fc .im-carte-haut b { font: 400 max(13px, 4.6cqi)/1 Anton, sans-serif; letter-spacing: .04em; background: var(--vague); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fc .im-carte-haut span, .fc .im-carte-bas small { color: rgba(255, 255, 255, .55); font: 500 max(7px, 1.8cqi)/1 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; }
.fc .im-carte-puce { align-self: center; width: 7cqi; height: 5.4cqi; border-radius: 1cqi; background: linear-gradient(135deg, #f6d68a, #c99a3b 55%, #f2cf7a); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25); }
.fc .im-carte-bas { display: flex; justify-content: space-between; align-items: end; }
.fc .im-carte-bas span { display: grid; gap: 1cqi; }
.fc .im-carte-bas b { color: #fff; font: 500 max(10px, 3cqi)/1 'Geist Mono', monospace; letter-spacing: .08em; }
.fc .im-carte-bas em { color: rgba(255, 255, 255, .7); font: 400 max(11px, 3.6cqi)/1 Anton, sans-serif; font-style: normal; letter-spacing: .08em; }
.fc .im-shot-leg { position: absolute; right: 0; bottom: -18px; color: #80868f; font: 500 10.5px/1.2 'Geist Mono', monospace; letter-spacing: .08em; }
@media (max-width: 979px) { .fc .im-hero .fc-tableau { margin-top: 24px; } }
@media (min-width: 980px) { .fc .im-hero .fc-tableau { margin-top: 36px; } }

/* La tuile de la box : la seule en dégradé, elle est la commande. */
.fc .im-tuile-box a { background: linear-gradient(140deg, rgba(240, 163, 58, .18), rgba(155, 63, 150, .14)); border-color: rgba(240, 163, 58, .45); }
@media (min-width: 900px) { .fc .fc-tuiles li.im-tuile-box { grid-column: span 2; } }
.fc .fc-tuiles li:last-child:nth-child(odd) { grid-column: auto; }
.fc .fc-tuiles li.im-tuile-box { grid-column: 1 / -1; }
@media (min-width: 900px) { .fc .fc-tuiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } .fc .fc-tuiles li { grid-column: auto; } .fc .fc-tuiles li.im-tuile-box { grid-column: span 1; grid-row: span 2; } .fc .im-tuile-box a { height: 100%; justify-content: center; } }

/* ── La box : la scène 3D (les 12 flacons dans leur présentoir), l'étiquette d'expédition devant. ── */
.fc .im-bx-scene { position: relative; z-index: 0; margin: 0 calc(-1 * var(--fc-gout)); container-type: inline-size; aspect-ratio: 1 / .95; }
@media (min-width: 760px) { .fc .im-bx-scene { margin: 0; aspect-ratio: 1.2 / 1; } }
.fc .im-bx-scene::before { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(46% 36% at 50% 60%, rgba(240, 163, 58, .22), transparent 72%), radial-gradient(36% 30% at 80% 30%, rgba(155, 63, 150, .18), transparent 72%); }
.fc .im-scene3d { inset: 0; }
.fc .im-bx-scene .fc-repli { top: 12%; height: 70%; }
.fc .im-bx-scene .fc-etiquette { top: auto; bottom: 13%; right: 4%; width: 42%; }
@media (min-width: 760px) { .fc .im-bx-scene .fc-etiquette { width: 34%; } }
.fc .im-bx-scene .fc-bx-ill { position: absolute; left: var(--fc-gout); right: auto; top: auto; bottom: 1%; text-align: left; max-width: 60%; }
@media (min-width: 760px) { .fc .im-bx-scene .fc-bx-ill { left: 0; } }

/* La fiche : la liste des ingrédients, la conservation, l'étiquette. */
.fc .im-ingr { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(23, 22, 15, .16); }
.fc .im-ingr summary { cursor: pointer; font: 500 11px/1.2 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--fc-encre-2); min-height: 32px; }
.fc .im-ingr p { margin-top: 8px; font-size: 13.5px; line-height: 1.55; color: var(--fc-encre); }
.fc .im-prec-plus { margin-top: 12px; color: var(--fc-doux); font-size: 13.5px; line-height: 1.5; }
.fc .im-prec-plus a { color: var(--orange); text-underline-offset: 4px; }

/* ── Et en bonus : cinq cartes ; la première (le business AI) est la grande. ── */
.fc .im-bo-cartes { list-style: none; margin: 0; display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .fc .im-bo-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fc .im-bo-grand { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .fc .im-bo-cartes { grid-template-columns: repeat(4, minmax(0, 1fr)); } .fc .im-bo-grand { grid-column: 1 / -1; } }
.fc .im-bo-cartes a { position: relative; display: grid; align-content: start; gap: 10px; height: 100%; padding: 22px 20px 24px; border-radius: 22px; text-decoration: none; overflow: hidden;
  background: linear-gradient(180deg, rgba(29, 29, 32, .9), rgba(14, 14, 16, .95)); border: 1px solid rgba(236, 240, 245, .1); transition: border-color .3s ease, transform .45s var(--fc-ressort); }
.fc .im-bo-cartes a:hover { border-color: rgba(240, 163, 58, .5); transform: translateY(-3px); }
.fc .im-bo-cartes a::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--vague); opacity: .8; }
.fc .im-bo-cartes i { color: var(--violet-clair); font: 500 11px/1 'Geist Mono', monospace; letter-spacing: .16em; font-style: normal; }
.fc .im-bo-n { color: var(--orange); font: 400 clamp(40px, 9vw, 54px)/1 Anton, sans-serif; }
.fc .im-bo-cartes strong { color: #fff; font-size: 19px; line-height: 1.25; }
.fc .im-bo-cartes span { color: var(--fc-doux); font-size: 15px; line-height: 1.55; }
.fc .im-bo-grand a { background: radial-gradient(70% 90% at 80% 0%, rgba(155, 63, 150, .22), transparent 70%), radial-gradient(60% 80% at 10% 100%, rgba(240, 163, 58, .16), transparent 70%), linear-gradient(180deg, #17171a, #0d0d0f); }
.fc .im-bo-grand img { width: 100%; height: auto; margin: 4px 0 2px; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
@media (min-width: 1100px) { .fc .im-bo-grand a { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); column-gap: 32px; align-items: center; } .fc .im-bo-grand img { grid-column: 2; grid-row: 1 / span 3; } .fc .im-bo-grand strong { font-size: 30px; } }

/* La caisse : un seul choix (Europe). */
.fc .im-choix-fiche { margin-top: 4px; font-size: 13px; }
.fc .im-choix-fiche a { color: var(--fc-encre); text-underline-offset: 4px; display: inline-flex; min-height: 32px; align-items: center; }
.fc .im-faq-plus { margin-top: 18px; }
.fc .fc-btn-encre { color: var(--jaune); }

/* La vidéo IMPACT (sous le héros) : le lecteur de ylcnetwork.com, recoloré. */
.vy-cadre { border-color: rgba(240, 163, 58, .3) !important; box-shadow: 0 0 0 6px rgba(240, 163, 58, .04), 0 50px 120px -50px rgba(0, 0, 0, .9), 0 30px 90px -60px rgba(155, 63, 150, .5) !important; }
.vy-lire { background: var(--orange) !important; color: #1a0e00 !important; }

/* ── Le pied de page : celui de ylcnetwork.com (habillage.css, « page unique »), recoloré IMPACT. Centré : le mot,
   le surtitre, la phrase, l'adresse, les réseaux ; une rangée de pilules (Ambassadeur en avant) ; le mot géant en
   filigrane ; puis © et la langue. 120 px en bas pour la barre collante (qui se range aussi quand le pied est là). ── */
.im-pd { position: relative; z-index: 3; overflow: hidden; margin-top: clamp(24px, 4vw, 48px); padding: clamp(56px, 8vw, 96px) 0 calc(120px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid rgba(240, 163, 58, .16);
  background: radial-gradient(60% 45% at 50% 0%, rgba(240, 163, 58, .10), transparent 70%), radial-gradient(40% 30% at 50% 100%, rgba(155, 63, 150, .08), transparent 70%), #070708; color: #a7adb7; font-size: 15px; }
.im-pd::before { content: ""; position: absolute; left: 50%; top: -1px; width: min(720px, 80%); height: 1px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, rgba(240, 163, 58, .7), rgba(155, 63, 150, .6), transparent); }
.im-pd-env, .im-pd-bas { width: min(1160px, 100% - 2 * clamp(16px, 5vw, 20px)); margin-inline: auto; }
.im-pd-env { display: grid; justify-items: center; text-align: center; gap: 34px; }
.im-pd-marque { display: flex; flex-direction: column; align-items: center; gap: 16px; max-width: 560px; }
.im-pd-logo { display: inline-flex; align-items: baseline; gap: 8px; color: #fff; text-decoration: none; }
.im-pd-logo b { font: 400 40px/1 Anton, 'Arial Narrow', sans-serif; letter-spacing: .02em; }
.im-pd-logo small { color: #a7adb7; font: 500 10.5px/1 'Geist Mono', ui-monospace, monospace; letter-spacing: .14em; text-transform: uppercase; }
.im-pd-kick { margin: 6px 0 0; color: var(--orange); font: 600 11.5px/1.4 'Geist Mono', ui-monospace, monospace; letter-spacing: .32em; text-transform: uppercase; }
.im-pd-phrase { margin: 0; color: #eef0f3; font-size: clamp(19px, 2.2vw, 24px); line-height: 1.35; font-weight: 500; letter-spacing: -.01em; text-wrap: balance; }
.im-pd-mail { color: #a7adb7; font-size: 14.5px; font-weight: 550; text-decoration: none; display: inline-flex; min-height: 32px; align-items: center; }
.im-pd-mail:hover { color: var(--orange); }
.im-pd-reseaux { display: flex; gap: 10px; margin-top: 4px; }
.im-pd-reseaux a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: #dcdfe4; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); transition: color .2s, background .2s, transform .2s; }
.im-pd-reseaux a:hover { color: #1a0e00; background: var(--orange); transform: translateY(-2px); }
.im-pd-reseaux svg { width: 20px; height: 20px; }
.im-pd-pilules { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; max-width: 980px; }
.im-pd-pilules a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .10); background: rgba(255, 255, 255, .03); color: #d2d6dc; font-size: 14.5px; font-weight: 500; text-decoration: none; transition: color .2s, border-color .2s, background .2s; }
.im-pd-pilules a:hover { color: #fff; border-color: rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .06); }
.im-pd-pilules .im-pd-amb { color: #1a0e00; font-weight: 700; border-color: transparent; background: linear-gradient(135deg, var(--jaune), var(--orange) 55%, var(--corail)); box-shadow: 0 12px 34px -14px rgba(240, 163, 58, .8); }
.im-pd-pilules .im-pd-amb:hover { color: #1a0e00; filter: brightness(1.06); background: linear-gradient(135deg, var(--jaune), var(--orange) 55%, var(--corail)); }
.im-pd-pilules .im-pd-amb svg { flex: none; }
@media (max-width: 600px) {
  .im-pd-kick { letter-spacing: .2em; }
  .im-pd-pilules { gap: 8px; }
  .im-pd-pilules a { padding: 0 15px; font-size: 14px; }
  .im-pd-pilules .im-pd-amb { flex-basis: 100%; justify-content: center; }
}
/* Le mot géant : le « YLC » de ylcnetwork.com devient « IMPACT ». Anton est étroite : 6 lettres tiennent dans la largeur. */
.im-pd-geant { margin: clamp(40px, 6vw, 72px) 0 0; padding: 0 16px; text-align: center; font: 400 clamp(84px, 24vw, 330px)/.82 Anton, 'Arial Narrow', sans-serif; letter-spacing: -.01em; white-space: nowrap;
  background: linear-gradient(180deg, rgba(240, 163, 58, .46) 0%, rgba(208, 98, 63, .2) 50%, rgba(155, 63, 150, .06) 82%, rgba(155, 63, 150, 0) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; user-select: none; pointer-events: none; }
/* style.css (page de vente YLC) masque le mot géant sous 760 px : David le veut aussi sur téléphone. */
body:has(main.fc) footer p.im-pd-geant { display: block; }
.im-pd-bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 22px; border-top: 1px solid rgba(236, 240, 245, .08); font-size: 14px; }
.im-pd-langues { display: flex; gap: 2px; padding: 3px; border-radius: 999px; border: 1px solid rgba(236, 240, 245, .1); }
.im-pd-langues a { display: inline-grid; place-items: center; min-width: 48px; height: 38px; padding: 0 6px; border-radius: 999px; color: #a7adb7; font-size: 13px; font-weight: 600; text-decoration: none; }
.im-pd-langues a[aria-current] { background: rgba(255, 255, 255, .1); color: #fff; }
.im-pd-langues a:hover { color: #fff; }
