/* =========================================================
   STYLE COMMUN À TOUTES LES PAGES
   Ce fichier est partagé par index.html, qui-suis-je.html, etc.
   Tu modifies une couleur ici → tout le site change.
   ========================================================= */

:root{
  --accent:#F97316;          /* ta couleur principale */
  --accent-dark:#EA580C;
  --accent-rgb:249,115,22;   /* la même, pour les transparences */
  --ink:#0E1116;             /* texte très foncé */
  --ink-soft:#5A6472;        /* texte secondaire */
  --line:#E6E9EE;            /* traits et bordures */
  --bg:#FFFFFF;
  --bg-soft:#F6F8FA;
  --dark:#0E1116;            /* fond des sections sombres */
  --radius:16px;
  --max:1120px;              /* largeur max du contenu */
  --header-h:70px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
section{padding:80px 0}

/* --- Titres --- */
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent);margin-bottom:14px}
h1{font-size:clamp(34px,5vw,56px);line-height:1.06;font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(26px,3.6vw,40px);line-height:1.15;font-weight:800;letter-spacing:-.02em;margin-bottom:18px}
h3{font-size:20px;font-weight:700;margin-bottom:8px}
.lead{font-size:18px;color:var(--ink-soft);max-width:62ch}

/* --- Boutons --- */
.btn{display:inline-block;padding:15px 30px;border-radius:999px;font-weight:700;font-size:15px;
  transition:transform .15s ease,background .15s ease;cursor:pointer;border:none}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-dark)}
.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:#fff}
.btn-dark{background:var(--ink);color:#fff}

/* =========================================================
   LE BOUTON SIGNATURE — tous les liens vers « Me contacter »
   Bordure dégradée qui tourne, éclat qui balaie, remplissage
   au survol. Aucun script : c'est entièrement en CSS.
   ========================================================= */

/* On déclare un angle animable, pour faire tourner la bordure */
@property --ang{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
@keyframes tournerBordure{ to{ --ang:360deg } }
@keyframes eclatCta{
  0%      {left:-60%}
  55%,100%{left:130%}
}
@keyframes halo{
  0%,100%{opacity:.35;transform:scale(1)}
  50%    {opacity:.6;transform:scale(1.06)}
}

.cta{
  position:relative;display:inline-flex;align-items:center;gap:10px;
  padding:12px 22px;border-radius:999px;overflow:hidden;isolation:isolate;
  font-weight:700;font-size:14px;letter-spacing:.01em;color:#fff;cursor:pointer;
  border:2px solid transparent;
  /* deux fonds superposés : l'intérieur sombre, la bordure en dégradé tournant */
  background:
    linear-gradient(#101419,#101419) padding-box,
    conic-gradient(from var(--ang),
      var(--accent), #FFC46B, #FF5E62, #FFC46B, var(--accent)) border-box;
  animation:tournerBordure 6s linear infinite;
  transition:transform .3s cubic-bezier(.22,1.2,.36,1),box-shadow .3s ease,color .3s ease;
}

/* Le remplissage qui monte au survol */
.cta::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:linear-gradient(100deg,var(--accent),#FF7A3D 45%,#FF5E62);
  transform:translateY(101%);transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.cta:hover::before{transform:translateY(0)}

/* L'éclat qui traverse le bouton toutes les cinq secondes */
.cta::after{
  content:"";position:absolute;top:-40%;left:-60%;width:38%;height:180%;z-index:-1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.30),transparent);
  transform:skewX(-22deg);
  animation:eclatCta 5s ease-in-out infinite;
}

.cta:hover{transform:translateY(-2px) scale(1.02);
  box-shadow:0 12px 30px rgba(var(--accent-rgb),.40)}
.cta:active{transform:translateY(-1px) scale(.99)}

/* La flèche : elle avance et sa hampe s'allonge */
.cta-arrow{position:relative;display:flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;flex:none;
  background:rgba(255,255,255,.12);
  transition:background .3s ease,transform .35s cubic-bezier(.22,1.2,.36,1)}
.cta:hover .cta-arrow{background:rgba(255,255,255,.22);transform:translateX(5px)}
.cta-arrow svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}
.cta-arrow svg .hampe{transition:transform .35s ease;transform-origin:right center}
.cta:hover .cta-arrow svg .hampe{transform:scaleX(1.35)}

/* Halo qui respire derrière le bouton */
.cta-wrap{position:relative;display:inline-block}
.cta-wrap::before{content:"";position:absolute;inset:-10px;border-radius:999px;
  background:radial-gradient(ellipse,rgba(var(--accent-rgb),.26),transparent 70%);
  filter:blur(12px);animation:halo 3.4s ease-in-out infinite;pointer-events:none}

/* Variante pleine largeur (dans l'encadré de l'offre) */
.cta.pleine{display:flex;width:100%;justify-content:center;padding:12px 18px}

/* Le « Me contacter » du menu : même famille, en plus discret */
.nav-cta{position:relative;overflow:hidden;
  transition:box-shadow .3s ease,transform .25s ease}
.nav-cta::after{content:"";position:absolute;top:-40%;left:-60%;width:40%;height:180%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-22deg);animation:eclatCta 5s ease-in-out infinite}
.nav-cta:hover{transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(var(--accent-rgb),.45)}

@media (prefers-reduced-motion:reduce){
  .cta,.cta::after,.nav-cta::after,.cta-wrap::before{animation:none!important}
}

/* =========================================================
   BARRE DE NAVIGATION (identique sur toutes les pages)
   ========================================================= */
header{position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(14,17,22,.78);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.08)}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--header-h)}
.logo{color:#fff;font-weight:800;font-size:18px;letter-spacing:-.01em}
.logo span{color:var(--accent)}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{color:rgba(255,255,255,.8);font-size:15px;font-weight:500;transition:color .15s}
.nav-links a:hover{color:#fff}
.nav-links a.active{color:var(--accent)}
.nav-cta{background:var(--accent);color:#fff!important;padding:10px 20px;border-radius:999px;font-weight:700!important}
.nav-cta.active{color:#fff!important}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}

/* Décale le contenu sous la barre fixe (toutes les pages sauf l'accueil) */
.page{padding-top:var(--header-h)}

/* =========================================================
   ACCUEIL : VIDÉO PLEIN ÉCRAN, SANS DÉFILEMENT
   ========================================================= */
body.home,html.home{height:100%;overflow:hidden}
.hero-video{position:relative;height:100vh;overflow:hidden;
  display:flex;
  align-items:flex-end;      /* le texte est posé en bas ...        */
  justify-content:flex-start;/* ... et à gauche, comme sur le modèle */
  text-align:left;
  background:linear-gradient(160deg,#0E1116,#1C2530)}

/* POUR REMETTRE LE TEXTE AU CENTRE :
   dans le bloc ci-dessus, mets align-items:center; justify-content:center;
   text-align:center; et ajoute  .hero-socials{justify-content:center}  */

.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,17,22,.45) 0%,rgba(14,17,22,.25) 40%,rgba(14,17,22,.90) 100%)}
.hero-content{position:relative;z-index:2;color:#fff;width:100%;padding-bottom:12vh}

/* Ton nom */
.hero-name{font-size:clamp(28px,4.3vw,54px);font-weight:800;line-height:1;
  text-transform:uppercase;letter-spacing:-.01em;
  text-shadow:0 4px 40px rgba(0,0,0,.55);margin-bottom:10px}

/* « Online Coaching » : le 2e mot est souligné par un trait de ta couleur */
.hero-sub{font-size:clamp(18px,2.1vw,30px);font-weight:600;color:#fff;
  display:inline-block;line-height:1.5}
.hero-sub .soft{color:rgba(255,255,255,.72);font-weight:400}
.hero-sub .underline{position:relative;padding-bottom:8px}
.hero-sub .underline::after{content:"";position:absolute;left:0;right:0;bottom:0;
  height:3px;border-radius:3px;background:var(--accent)}

/* Le menu de l'accueil : en haut à droite, posé sur la vidéo, sans barre */
.topnav{position:absolute;top:0;left:0;right:0;z-index:4;padding:26px 0}
.topnav-inner{display:flex;justify-content:flex-end;align-items:center}
.topnav-links{display:flex;gap:28px;align-items:center}
.topnav-links a{position:relative;color:rgba(255,255,255,.82);
  font-size:clamp(14px,1.15vw,16px);font-weight:500;padding-bottom:6px;
  transition:color .18s ease;text-shadow:0 2px 14px rgba(0,0,0,.55)}
.topnav-links a:hover{color:#fff}
.topnav-links a.active{color:#fff}
.topnav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:0;
  height:2px;border-radius:2px;background:var(--accent)}
.topnav-burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.topnav-burger span{display:block;width:26px;height:2px;background:#fff;margin:6px 0;
  box-shadow:0 1px 6px rgba(0,0,0,.5)}

/* Pastilles des réseaux sociaux, translucides */
/* L'accroche sous « Online Coaching » : elle arrive en douceur,
   une seule fois, sans toucher au reste de la page */
.hero-accroche{margin-top:20px;max-width:34ch;
  font-size:clamp(14.5px,1.45vw,19px);font-weight:400;line-height:1.55;
  color:rgba(255,255,255,.80);text-shadow:0 2px 18px rgba(0,0,0,.5);
  opacity:0;transform:translateY(14px);
  animation:accrocheArrive .9s cubic-bezier(.22,1,.36,1) .55s forwards}
.hero-accroche span{color:#fff;font-weight:600}
@keyframes accrocheArrive{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .hero-accroche{opacity:1;transform:none;animation:none}
}

.hero-socials{display:flex;gap:12px;margin-top:26px}
.hero-socials a{width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);
  display:flex;align-items:center;justify-content:center;color:#fff;
  backdrop-filter:blur(6px);transition:background .2s ease,border-color .2s ease,transform .2s ease}
.hero-socials a:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}
.hero-socials svg{width:18px;height:18px;fill:currentColor;display:block}

.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

@media (max-width:900px){
  .hero-content{padding-bottom:8vh}
  .hero-socials a{width:40px;height:40px}

  /* Sur mobile, le menu se replie derrière le bouton à trois traits */
  .topnav{padding:16px 0}
  .topnav-burger{display:block}
  .topnav-links{position:absolute;top:64px;right:24px;flex-direction:column;
    align-items:flex-end;gap:0;padding:0;max-height:0;overflow:hidden;
    background:rgba(14,17,22,.94);backdrop-filter:blur(10px);
    border-radius:14px;border:1px solid rgba(255,255,255,.12);
    transition:max-height .3s ease}
  .topnav-links.open{max-height:360px;padding:6px 0}
  .topnav-links a{padding:12px 22px}
  .topnav-links a.active::after{left:22px;right:22px;bottom:8px}
}

/* =========================================================
   EN-TÊTE DE PAGE INTÉRIEURE
   ========================================================= */
.page-head{background:var(--dark);color:#fff;padding:70px 0 60px;text-align:center}
.page-head h1{color:#fff}
.page-head .lead{color:rgba(255,255,255,.72);margin:14px auto 0;text-align:center}

/* --- Bandeau de chiffres --- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stats-band{background:var(--bg-soft);padding:44px 0;border-top:1px solid var(--line)}
.stat b{display:block;font-size:32px;font-weight:800;line-height:1}
.stat span{font-size:14px;color:var(--ink-soft)}

/* =========================================================
   RÉVÉLATION AU DÉFILEMENT (page « Qui suis-je »)
   Les éléments attendent d'entrer dans l'écran pour apparaître.
   ========================================================= */
.rv{opacity:0;transform:translateY(30px);
  transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--i,0) * 110ms)}
.rv.vu{opacity:1;transform:none}

/* Titre dévoilé ligne par ligne, comme un rideau qui se lève */
.masque{display:block;overflow:hidden;padding-bottom:.08em}
.masque > i{display:block;font-style:normal;transform:translateY(115%);
  transition:transform 1.1s cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--i,0) * 110ms + 80ms)}
.rv.vu .masque > i{transform:none}
.rv:has(.masque){opacity:1;transform:none}   /* le masque suffit, pas de fondu */

/* Photo : un balayage découvre l'image pendant qu'elle se dézoome */
.rv-balayage{opacity:1;transform:none;
  clip-path:inset(0 100% 0 0);
  transition:clip-path 1.25s cubic-bezier(.66,0,.2,1)}
.rv-balayage.vu{clip-path:inset(0 0 0 0)}
.rv-balayage img{transform:scale(1.16);transition:transform 1.8s cubic-bezier(.22,1,.36,1)}
.rv-balayage.vu img{transform:scale(1)}

/* Cartes du palmarès : elles montent en se rapprochant */
.rv-carte{transform:translateY(46px) scale(.94)}
.rv-carte.vu{transform:none}
.rv-carte{transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--i,0) * 130ms)}

/* Galerie : elle glisse depuis la droite */
.rv-droite{transform:translateX(60px)}
.rv-droite.vu{transform:none}

@media (prefers-reduced-motion:reduce){
  .rv,.masque > i,.rv-balayage img{transition:none!important}
  .rv{opacity:1!important;transform:none!important}
  .rv-balayage{clip-path:none!important}
  .masque > i{transform:none!important}
}

/* =========================================================
   QUI SUIS-JE
   ========================================================= */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
.about-photo{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;background:var(--bg-soft)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about p{color:var(--ink-soft);margin-bottom:16px}
.about strong{color:var(--ink);font-weight:700}
.signature{margin-top:24px;font-weight:700;color:var(--ink)}

/* =========================================================
   PAGE SOMBRE (utilisée par la page Coaching)
   On ajoute class="page-dark" sur la balise <body>.
   ========================================================= */
.page-dark{background:var(--dark);color:#fff}
.page-dark h1,.page-dark h2,.page-dark h3{color:#fff}
.page-dark p{color:rgba(255,255,255,.70)}

/* Intitulé suivi d'un trait de couleur */
.eyebrow-row{display:flex;align-items:center;gap:22px;margin-bottom:14px}
.eyebrow-row .eyebrow{margin:0}
.eyebrow-row::after{content:"";height:2px;border-radius:2px;background:var(--accent);
  width:clamp(60px,15vw,240px)}

/* Très grand titre en capitales */
.big-title{font-size:clamp(24px,3.3vw,44px);font-weight:800;text-transform:uppercase;
  line-height:1.06;letter-spacing:-.02em;color:#fff}
.big-title.small{font-size:clamp(22px,2.9vw,36px)}

/* Bouton encadré */
.btn-outline{display:inline-block;border:2px solid var(--accent);background:transparent;
  color:#fff;padding:15px 38px;font-weight:600;font-size:15px;border-radius:4px;
  transition:background .2s ease,transform .15s ease}
.btn-outline:hover{background:var(--accent);transform:translateY(-2px)}
.center-cta{text-align:center;margin-top:44px}

/* =========================================================
   ANIMATION D'ARRIVÉE DE LA PAGE COACHING
   Tout part de loin et se met en place en cascade.
   Rien à faire dans le HTML : c'est déclenché à l'ouverture.
   ========================================================= */

/* Élan légèrement élastique : l'élément dépasse puis revient */
:root{ --ressort:cubic-bezier(.22,1.15,.36,1); }

@keyframes venirGauche{
  from{opacity:0;transform:translateX(-120px) rotate(-7deg) scale(.9)}
  to  {opacity:1;transform:none}
}
@keyframes venirDroite{
  from{opacity:0;transform:translateX(140px) rotate(5deg) scale(.92)}
  to  {opacity:1;transform:none}
}
@keyframes monter{
  from{opacity:0;transform:translateY(28px);filter:blur(7px)}
  to  {opacity:1;transform:none;filter:blur(0)}
}
@keyframes monterCourt{
  from{opacity:0;transform:translateY(14px)}
  to  {opacity:1;transform:none}
}
@keyframes tracerTrait{
  from{width:0;opacity:0}
  to  {width:clamp(60px,15vw,240px);opacity:1}
}
@keyframes respirer{
  0%,100%{transform:translateY(0)}
  50%    {transform:translateY(-9px)}
}

/* --- Les textes du haut --- */
.coach-single .eyebrow{animation:monterCourt .7s var(--ressort) .05s both}
.coach-single .eyebrow-row::after{animation:tracerTrait .9s var(--ressort) .2s both}
.coach-single .big-title{animation:monter 1s var(--ressort) .18s both}

/* --- Les écrans : le téléphone arrive de la gauche, l'ordinateur de la droite.
       Une fois posés, ils respirent doucement. --- */
.devices-title{animation:monterCourt .7s var(--ressort) .45s both}
.dev-phone{animation:venirGauche 1.05s var(--ressort) .5s both,
                     respirer 6s ease-in-out 1.7s infinite}
.dev-desktop{animation:venirDroite 1.05s var(--ressort) .62s both,
                       respirer 7s ease-in-out 1.9s infinite}
.badges .badge:nth-child(1){animation:monterCourt .7s var(--ressort) 1.15s both}
.badges .badge:nth-child(2){animation:monterCourt .7s var(--ressort) 1.25s both}

/* --- L'encadré de l'offre : la carte monte, puis les lignes défilent --- */
.offer{animation:monter .95s var(--ressort) .7s both,
  tournerBordure 16s linear 1.8s infinite}
.offer-head{animation:monterCourt .6s var(--ressort) .95s both}
.offer > .offer-list > li:nth-child(1){animation:monterCourt .55s var(--ressort) 1.05s both}
.offer > .offer-list > li:nth-child(2){animation:monterCourt .55s var(--ressort) 1.13s both}
.offer > .offer-list > li:nth-child(3){animation:monterCourt .55s var(--ressort) 1.21s both}
.offer > .offer-list > li:nth-child(4){animation:monterCourt .55s var(--ressort) 1.29s both}
.offer > .offer-list > li:nth-child(5){animation:monterCourt .55s var(--ressort) 1.37s both}
.offer > .offer-list > li:nth-child(6){animation:monterCourt .55s var(--ressort) 1.45s both}
.offer-plus{animation:monter .8s var(--ressort) 1.55s both}
.offer-plus li:nth-child(1){animation:monterCourt .5s var(--ressort) 1.72s both}
.offer-plus li:nth-child(2){animation:monterCourt .5s var(--ressort) 1.79s both}
.offer-plus li:nth-child(3){animation:monterCourt .5s var(--ressort) 1.86s both}
.offer .btn-outline,.offer .cta{animation:monterCourt .7s var(--ressort) 1.95s both,
  tournerBordure 6s linear 2.6s infinite}


/* Les icônes de l'offre arrivent avec un léger rebond */
.offer-list li .oi{opacity:0;transform:scale(.4)}
.offer-list li:nth-child(1) .oi{animation:apparaitreIcone .6s cubic-bezier(.34,1.6,.5,1) 1.12s both}
.offer-list li:nth-child(2) .oi{animation:apparaitreIcone .6s cubic-bezier(.34,1.6,.5,1) 1.20s both}
.offer-list li:nth-child(3) .oi{animation:apparaitreIcone .6s cubic-bezier(.34,1.6,.5,1) 1.28s both}
.offer-list li:nth-child(4) .oi{animation:apparaitreIcone .6s cubic-bezier(.34,1.6,.5,1) 1.36s both}
.offer-list li:nth-child(5) .oi{animation:apparaitreIcone .6s cubic-bezier(.34,1.6,.5,1) 1.44s both}
.offer-list li:nth-child(6) .oi{animation:apparaitreIcone .6s cubic-bezier(.34,1.6,.5,1) 1.52s both}
.offer-plus li:nth-child(1) .oi{animation-delay:1.78s}
.offer-plus li:nth-child(2) .oi{animation-delay:1.86s}
.offer-plus li:nth-child(3) .oi{animation-delay:1.94s}
@keyframes apparaitreIcone{ to{opacity:1;transform:none} }

/* Confort : on coupe tout si la personne a demandé moins d'animations */
@media (prefers-reduced-motion:reduce){
  .coach-single *{animation:none!important}
}

/* Page coaching : tout tient sur un écran, sans défilement */
.coach-single{padding:20px 0 26px;overflow:hidden}   /* évite une barre de défilement pendant l'animation */

/* Vitrine : écrans à gauche, offre à droite */
.app-showcase{display:grid;grid-template-columns:1fr 1fr;gap:40px;
  align-items:center;margin-top:16px}
.devices-title{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.45);text-align:center;margin-bottom:14px}
.devices-row{display:flex;align-items:center;justify-content:center;gap:12px}
.dev-phone{width:92px;flex:none;filter:drop-shadow(0 14px 28px rgba(0,0,0,.6))}
.dev-desktop{width:100%;max-width:340px;filter:drop-shadow(0 14px 28px rgba(0,0,0,.5))}

/* =========================================================
   L'ENCADRÉ DE L'OFFRE
   Cadre dont la lueur tourne, lumière qui suit la souris,
   une icône par ligne et une réaction au survol.
   ========================================================= */
.offer{
  position:relative;overflow:hidden;border-radius:18px;padding:17px 18px 16px;
  border:1px solid transparent;
  /* Deux couches : un voile sombre translucide par-dessus une aurore qui tourne.
     C'est ce voile qui dose l'intensité — baisse le dernier nombre pour plus d'aurore. */
  background:
    linear-gradient(180deg,rgba(17,21,27,.82),rgba(15,18,24,.90)) padding-box,
    conic-gradient(from var(--ang),
      rgba(255,255,255,.16), rgba(var(--accent-rgb),.75),
      rgba(255,255,255,.16), rgba(var(--accent-rgb),.38), rgba(255,255,255,.16)) border-box;
  box-shadow:0 24px 60px rgba(0,0,0,.45);
}

/* La lumière qui suit le curseur */
.offer::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,0%),
    rgba(var(--accent-rgb),.16),transparent 68%);
  opacity:0;transition:opacity .35s ease}
.offer:hover::after{opacity:1}

/* --- En-tête --- */
.offer-head{margin-bottom:11px}
.offer-tag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);
  border:1px solid rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.10);
  border-radius:999px;padding:4px 11px;margin-bottom:10px}
.offer h3{position:relative;font-size:17px;font-weight:800;color:#fff;
  padding-bottom:9px;margin:0}
.offer h3::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:56px;
  border-radius:2px;background:linear-gradient(90deg,var(--accent),transparent)}

/* --- Les lignes --- */
.offer-list{list-style:none;display:grid;gap:3px}
.offer-list li{display:flex;align-items:center;gap:10px;
  font-size:12.5px;line-height:1.38;color:rgba(255,255,255,.88);
  padding:3px 8px;margin-left:-8px;border-radius:9px;
  transition:background .25s ease,transform .25s ease,color .25s ease}
.offer-list li:hover{background:rgba(255,255,255,.05);transform:translateX(4px);color:#fff}

/* L'icône de chaque ligne */
.oi{flex:none;width:23px;height:23px;border-radius:7px;display:flex;
  align-items:center;justify-content:center;
  background:rgba(var(--accent-rgb),.13);border:1px solid rgba(var(--accent-rgb),.24);
  transition:background .25s ease,border-color .25s ease,transform .3s cubic-bezier(.34,1.6,.5,1)}
.oi svg{width:12.5px;height:12.5px;fill:none;stroke:var(--accent);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s ease}
.offer-list li:hover .oi{background:var(--accent);border-color:var(--accent);transform:scale(1.1)}
.offer-list li:hover .oi svg{stroke:#fff}

/* --- Le bloc qui te démarque --- */
.offer-plus{position:relative;overflow:hidden;margin-top:10px;
  background:rgba(var(--accent-rgb),.07);
  border:1px solid rgba(var(--accent-rgb),.30);border-radius:13px;padding:10px 11px 9px}
.offer-plus::before{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.10),transparent);
  transform:skewX(-20deg);animation:eclatCta 6.5s ease-in-out infinite}
.offer-plus h4{display:flex;align-items:center;gap:7px;
  font-size:9.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;
  color:var(--accent);margin-bottom:6px}
.offer-plus li{color:#fff}
.offer-plus li:hover{background:rgba(255,255,255,.07)}

/* Le point lumineux qui bat devant le titre */
.etincelle{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none;
  box-shadow:0 0 0 0 rgba(var(--accent-rgb),.7);animation:battement 2.2s ease-out infinite}
@keyframes battement{
  0%  {box-shadow:0 0 0 0 rgba(var(--accent-rgb),.65)}
  70% {box-shadow:0 0 0 9px rgba(var(--accent-rgb),0)}
  100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),0)}
}

.offer .cta{margin-top:12px}

.badges-note{font-size:12px;line-height:1.5;color:rgba(255,255,255,.6);
  text-align:center;margin-top:22px}
.badges-note strong{color:#fff;font-weight:700}
.badges{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.badge{display:flex;align-items:center;gap:11px;background:#000;
  border:1px solid rgba(255,255,255,.42);border-radius:10px;padding:10px 16px;
  transition:border-color .2s ease,transform .15s ease}
.badge:hover{border-color:#fff;transform:translateY(-2px)}
.badge svg{width:22px;height:22px;flex:none}
.badge span{font-size:10px;color:rgba(255,255,255,.72);line-height:1.25}
.badge b{display:block;font-size:15px;font-weight:700;color:#fff;line-height:1.2}

/* Cartes et étapes en version sombre */
.page-dark .card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.13)}
.page-dark .card:hover{box-shadow:0 16px 44px rgba(0,0,0,.45)}
.page-dark .card p,.page-dark .step p{color:rgba(255,255,255,.68)}
.page-dark .card .ico{background:rgba(var(--accent-rgb),.16)}

/* =========================================================
   PALMARÈS : une carte photo par chrono
   ========================================================= */
.palmares{background:var(--dark);color:#fff}
.palmares-head{text-align:center;margin-bottom:48px}
.palmares-head h2{color:#fff}
.palmares-head .lead{color:rgba(255,255,255,.68);margin:0 auto}

.perfs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}

.perf{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:2/3;
  background:#151A22;box-shadow:0 18px 44px rgba(0,0,0,.35)}
.perf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center;transition:transform .6s ease}
.perf:hover img{transform:scale(1.07)}
.perf-veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,17,22,.10) 0%,rgba(14,17,22,.50) 52%,rgba(14,17,22,.95) 100%)}
.perf-body{position:absolute;left:0;right:0;bottom:0;padding:24px 20px;z-index:2}
.perf-body::before{content:"";display:block;width:34px;height:3px;border-radius:3px;
  background:var(--accent);margin-bottom:16px;transition:width .35s ease}
.perf:hover .perf-body::before{width:72px}
.perf-label{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.perf-time{display:block;font-size:clamp(30px,3.2vw,44px);font-weight:800;line-height:1;
  letter-spacing:-.02em;color:#fff;text-shadow:0 4px 26px rgba(0,0,0,.65)}
.perf-meta{display:block;font-size:13px;color:rgba(255,255,255,.72);margin-top:10px}

/* --- Partie « pourquoi je suis devenu coach » --- */
.coach-part{background:var(--bg-soft);border-top:1px solid var(--line)}
.coach-head{margin-bottom:48px;max-width:70ch}
.coach-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.coach-text p{color:var(--ink-soft);margin-bottom:16px}
.coach-text strong{color:var(--ink);font-weight:700}
.coach-text .signature{margin:26px 0 28px}

/* --- Galerie de photos --- */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.gallery figure{margin:0;border-radius:var(--radius);overflow:hidden;background:#E9EDF2}
.gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4;
  transition:transform .4s ease}
.gallery figure:hover img{transform:scale(1.04)}

/* =========================================================
   COACHING
   ========================================================= */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;
  transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(14,17,22,.09)}
.card .ico{width:48px;height:48px;border-radius:12px;background:rgba(var(--accent-rgb),.12);
  display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:18px}
.card p{color:var(--ink-soft);font-size:15px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:64px}
.step{border-top:2px solid var(--accent);padding-top:22px}
.step b{font-size:13px;font-weight:800;color:var(--accent);letter-spacing:.1em}
.step h3{margin:8px 0 6px}
.step p{color:var(--ink-soft);font-size:15px}

/* =========================================================
   TÉMOIGNAGES
   ========================================================= */
.testis{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.testi .stars{color:#F5A623;font-size:14px;letter-spacing:2px;margin-bottom:12px}
.testi q{display:block;font-size:15px;color:var(--ink-soft);margin-bottom:20px}
.testi-who{display:flex;align-items:center;gap:12px}
.testi-who img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.testi-who b{display:block;font-size:15px}
.testi-who span{font-size:13px;color:var(--ink-soft)}

/* =========================================================
   VIDÉOS (Instagram)
   ========================================================= */
.insta-embed{display:flex;justify-content:center}
.insta-embed blockquote{margin:0 auto!important}
.insta-cta{text-align:center;margin-top:36px}

/* =========================================================
   PAGE MES ATHLÈTES — carrousel de témoignages
   ========================================================= */
.tm-scene{position:relative;overflow:hidden;padding:44px 0 80px}
.tm-glow{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none}
.tm-glow-a{width:600px;height:600px;top:-220px;right:-160px;
  background:radial-gradient(circle,rgba(var(--accent-rgb),.24),transparent 68%);
  animation:tmflotte 18s ease-in-out infinite}
.tm-glow-b{width:520px;height:520px;bottom:-200px;left:-150px;
  background:radial-gradient(circle,rgba(120,150,255,.16),transparent 68%);
  animation:tmflotte 22s ease-in-out infinite reverse}
@keyframes tmflotte{0%,100%{transform:translate(0,0)}50%{transform:translate(-32px,26px)}}
.tm-scene .wrap{position:relative}
.tm-head{margin-bottom:30px}

/* --- Le carrousel --- */
.tm-carousel{position:relative;display:flex;align-items:center;gap:20px;
  max-width:940px;margin:0 auto}
.tm-window{overflow:hidden;flex:1;border-radius:22px}
.tm-track{display:flex;align-items:stretch;
  transition:transform .6s cubic-bezier(.4,0,.2,1)}

/* --- Une carte --- */
.tm-slide{flex:0 0 100%;position:relative;display:flex;flex-direction:column;
  padding:38px 42px 32px;border-radius:22px;
  border:1px solid rgba(255,255,255,.13);
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 26px 66px rgba(0,0,0,.45)}

.tm-q{font-family:Georgia,"Times New Roman",serif;font-size:74px;line-height:.7;
  color:rgba(var(--accent-rgb),.42);margin-bottom:6px;display:block}

.tm-texte{flex:1}
.tm-texte p{font-size:clamp(15px,1.55vw,18px);line-height:1.68;color:#fff;
  max-width:64ch}
.tm-texte p + p{margin-top:14px}

/* --- Qui parle --- */
.tm-who{display:flex;align-items:center;gap:15px;margin-top:26px;
  padding-top:22px;border-top:1px solid rgba(255,255,255,.12)}
.tm-ava{width:58px;height:58px;border-radius:50%;flex:none;overflow:hidden;
  background:linear-gradient(160deg,#2B313B,#1B2028);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 8px 22px rgba(0,0,0,.4)}
.tm-ava img{width:100%;height:100%;object-fit:cover;display:block}
/* Pour un athlète qui ne souhaite pas apparaître : son initiale */
.tm-ava.initiale{display:grid;place-items:center;font-size:23px;font-weight:800;
  color:var(--accent);letter-spacing:.02em;
  background:
    radial-gradient(circle at 32% 26%,rgba(var(--accent-rgb),.30),transparent 62%),
    linear-gradient(160deg,#2B313B,#1B2028);
  border-color:rgba(var(--accent-rgb),.38)}
.tm-id b{display:block;font-size:16.5px;font-weight:800;color:#fff}
.tm-id span{display:block;font-size:13px;color:rgba(255,255,255,.62);margin-top:2px}

/* --- Les flèches, sur les côtés --- */
.tm-arrow{flex:none;width:50px;height:50px;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;
  transition:background .22s ease,border-color .22s ease,transform .22s ease}
.tm-arrow:hover{background:var(--accent);border-color:var(--accent);transform:scale(1.08)}
.tm-arrow svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.tm-carousel.solo .tm-arrow{display:none}

/* --- Barre de progression et points --- */
.tm-progress{max-width:940px;margin:20px auto 0;height:2px;border-radius:2px;
  background:rgba(255,255,255,.12);overflow:hidden}
.tm-progress span{display:block;height:100%;width:0;border-radius:2px;
  background:linear-gradient(90deg,var(--accent),#FF8A4C)}
.tm-progress span.run{animation:tmremplir var(--duree,9000ms) linear forwards}
@keyframes tmremplir{from{width:0}to{width:100%}}

.tm-dots{display:flex;justify-content:center;gap:9px;margin-top:16px}
.tm-dot{width:8px;height:8px;border-radius:50%;border:none;cursor:pointer;padding:0;
  background:rgba(255,255,255,.26);transition:.25s}
.tm-dot.on{background:var(--accent);width:26px;border-radius:5px}

.tm-cta{text-align:center;margin-top:32px}

/* --- Le contenu de la carte visible se met en place --- */
.tm-slide .tm-q,.tm-slide .tm-texte,.tm-slide .tm-who{
  opacity:0;transform:translateY(14px);
  transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.tm-slide.actif .tm-q   {opacity:1;transform:none;transition-delay:.10s}
.tm-slide.actif .tm-texte{opacity:1;transform:none;transition-delay:.20s}
.tm-slide.actif .tm-who {opacity:1;transform:none;transition-delay:.32s}

@media (max-width:900px){
  .tm-scene{padding:34px 0 64px}
  .tm-carousel{gap:8px}
  .tm-arrow{width:38px;height:38px}
  .tm-arrow svg{width:17px;height:17px}
  .tm-slide{padding:26px 20px 22px;border-radius:16px}
  .tm-q{font-size:54px}
  .tm-who{margin-top:20px;padding-top:16px;gap:12px}
  .tm-ava{width:48px;height:48px}
}

@media (prefers-reduced-motion:reduce){
  .tm-track{transition:none}
  .tm-slide .tm-q,.tm-slide .tm-texte,.tm-slide .tm-who{
    opacity:1!important;transform:none!important;transition:none!important}
  .tm-glow,.tm-progress span{animation:none!important}
}

/* =========================================================
   PAGE VIDÉOS — le profil Instagram mis en scène
   ========================================================= */
.ig-scene{position:relative;overflow:hidden;
  min-height:calc(100vh - var(--header-h));
  display:flex;align-items:center;justify-content:center;padding:60px 0}

/* Halos flous en arrière-plan */
.ig-glow{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}
.ig-glow-a{width:620px;height:620px;top:-180px;left:-120px;
  background:radial-gradient(circle,rgba(var(--accent-rgb),.34),transparent 68%);
  animation:igfloat 15s ease-in-out infinite}
.ig-glow-b{width:520px;height:520px;bottom:-200px;right:-100px;
  background:radial-gradient(circle,rgba(120,150,255,.20),transparent 68%);
  animation:igfloat 19s ease-in-out infinite reverse}
@keyframes igfloat{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(38px,-30px)}
}

/* Trame très discrète */
.ig-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:62px 62px;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 20%,transparent 72%);
          mask-image:radial-gradient(ellipse at center,#000 20%,transparent 72%)}

/* La carte */
.ig-card{position:relative;max-width:540px;margin:0 auto;text-align:center;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.14);
  border-radius:28px;padding:48px 40px 40px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 30px 80px rgba(0,0,0,.5)}

/* Photo entourée d'un anneau dégradé */
.ig-avatar{display:block;width:128px;height:128px;margin:0 auto 22px;border-radius:50%;
  padding:4px;background:conic-gradient(from 210deg,var(--accent),#FFB367,#FF5E62,var(--accent));
  transition:transform .3s ease}
.ig-avatar:hover{transform:scale(1.05)}
.ig-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;
  border:3px solid #0E1116;display:block}

.ig-handle{font-size:13.5px;font-weight:600;letter-spacing:.14em;
  color:rgba(255,255,255,.62);margin-bottom:6px}
.ig-name{font-size:clamp(26px,3.4vw,38px);font-weight:800;color:#fff;line-height:1.1}

.ig-claim{margin-top:18px;font-size:clamp(17px,2.1vw,22px);font-weight:600;color:#fff;
  line-height:1.4}

/* Petites étiquettes */
.ig-tags{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:9px;
  margin-top:24px}
.ig-tags li{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.8);
  border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:7px 15px}

/* Bouton principal */
.ig-btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;
  margin-top:30px;padding:16px 34px;border-radius:999px;font-weight:700;font-size:15.5px;
  color:#fff;background:linear-gradient(95deg,#F97316,#FF5E62);
  box-shadow:0 14px 34px rgba(var(--accent-rgb),.34);
  transition:transform .18s ease,box-shadow .18s ease}
.ig-btn:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(var(--accent-rgb),.46)}
.ig-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7}
.ig-btn svg .dot{fill:currentColor;stroke:none}

.ig-note{margin-top:18px;font-size:12.5px;color:rgba(255,255,255,.55)}

@media (max-width:900px){
  .ig-scene{min-height:auto;padding:44px 0 64px}
  .ig-card{padding:38px 24px 32px;border-radius:22px}
  .ig-avatar{width:108px;height:108px}
}

/* =========================================================
   PAGE CONTACT — sombre et minimale
   ========================================================= */

/* --- En-tête --- */
.ct-hero{padding:76px 0 54px;text-align:center;position:relative;overflow:hidden}
.ct-hero::before{content:"";position:absolute;top:-120px;left:50%;transform:translateX(-50%);
  width:680px;height:360px;pointer-events:none;
  background:radial-gradient(ellipse,rgba(var(--accent-rgb),.20),transparent 70%)}
.ct-hero .wrap{position:relative}
.ct-hero h1{font-size:clamp(34px,5.2vw,62px);font-weight:800;color:#fff;
  text-transform:uppercase;letter-spacing:-.015em;line-height:1}
.ct-sub{margin-top:14px;font-size:clamp(12px,1.5vw,16px);font-weight:500;
  letter-spacing:.34em;text-transform:uppercase;color:var(--accent)}

/* --- Les trois moyens de contact, séparés par des filets --- */
.ct-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:52px;
  border-top:1px solid rgba(255,255,255,.10);border-bottom:1px solid rgba(255,255,255,.10)}
.ct-item{display:flex;flex-direction:column;align-items:center;gap:9px;
  padding:30px 18px;position:relative;transition:background .25s ease}
.ct-item + .ct-item::before{content:"";position:absolute;left:0;top:22%;bottom:22%;
  width:1px;background:rgba(255,255,255,.10)}
.ct-item:hover{background:rgba(255,255,255,.03)}
.ct-item svg{width:26px;height:26px;fill:none;stroke:rgba(255,255,255,.85);
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s ease}
.ct-item:hover svg{stroke:var(--accent)}
.ct-label{font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.72)}
.ct-value{font-size:15px;font-weight:600;color:#fff;transition:color .25s ease}
.ct-item:hover .ct-value{color:var(--accent)}

/* --- Formulaire --- */
.ct-form-section{padding:72px 0 96px}
.ct-form-head{margin-bottom:44px;max-width:60ch}
.ct-form-head h2{font-size:clamp(24px,3vw,34px);font-weight:800;color:#fff;margin-bottom:10px}
.ct-form-head p{font-size:15.5px;color:rgba(255,255,255,.82);margin:0}

/* on annule l'ancien style de formulaire hérité */
.ct-form{background:transparent;border:0;border-radius:0;padding:0;
  display:grid;gap:30px;max-width:840px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.ct-form .field label{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:#FFFFFF;margin-bottom:10px}
/* l'étoile des champs obligatoires, uniquement sur l'intitulé principal
   (le « > » évite de colorer aussi le texte des pastilles M/F et Oui/Non) */
.ct-form .field > label > span{color:var(--accent)}

/* Champs : un simple filet sous le texte, rien d'autre */
.ct-form input,.ct-form select,.ct-form textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.30);
  border-radius:0;padding:11px 2px;font-size:16px;font-family:inherit;color:#fff;
  transition:border-color .22s ease}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{
  outline:none;border-bottom-color:var(--accent)}
.ct-form input::placeholder,.ct-form textarea::placeholder{color:rgba(255,255,255,.45)}
.ct-form textarea{resize:vertical;min-height:76px;line-height:1.6}
.ct-form select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.45) 50%),
                   linear-gradient(135deg,rgba(255,255,255,.45) 50%,transparent 50%);
  background-position:calc(100% - 13px) 20px,calc(100% - 8px) 20px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.ct-form select option{background:#12161D;color:#fff}

/* Choix M/F et Oui/Non */
.choices{display:flex;gap:10px;flex-wrap:wrap;padding-top:2px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;width:0;height:0}
.choice span{display:inline-block;min-width:82px;text-align:center;padding:11px 22px;
  border-radius:999px;background:transparent;border:1px solid rgba(255,255,255,.22);
  color:#FFFFFF;font-weight:600;font-size:14px;cursor:pointer;transition:.2s}
.choice span:hover{border-color:rgba(255,255,255,.5);color:#fff}
.choice input:checked + span{background:var(--accent);border-color:var(--accent);color:#fff}
.choice input:focus-visible + span{outline:2px solid var(--accent);outline-offset:3px}

.ct-send{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:6px}
.ct-send .form-note{font-size:13px;color:rgba(255,255,255,.7);margin:0}
.ct-send .form-note span{color:var(--accent)}
.ct-send .form-note.ok{color:#4ADE80}

/* =========================================================
   CONTACT (ancienne page — conservé pour les autres écrans)
   ========================================================= */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.contact-info{margin-top:28px;display:grid;gap:14px}
.contact-info a{display:flex;align-items:center;gap:12px;font-size:16px}
.contact-info a:hover{color:var(--accent)}
.socials{display:flex;gap:12px;margin-top:26px}
.socials a{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;transition:.2s}
.socials a:hover{background:var(--accent);border-color:var(--accent);color:#fff}
form{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);
  padding:32px;display:grid;gap:16px}
label{font-size:13px;font-weight:600;color:var(--ink-soft);display:block;margin-bottom:6px}
input,select,textarea{width:100%;padding:13px 15px;border-radius:10px;font-size:15px;
  font-family:inherit;background:#fff;border:1px solid var(--line);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
textarea{resize:vertical;min-height:110px}
.form-note{font-size:12px;color:var(--ink-soft)}

/* =========================================================
   PAGE VIDÉOS — LES TROIS RÉSEAUX
   ========================================================= */
.res-head{text-align:center;margin-bottom:46px;position:relative}
.res-head h1{font-size:clamp(30px,5vw,54px);font-weight:800;letter-spacing:-.02em;line-height:1.05}
.res-head .res-claim{margin-top:14px;font-size:clamp(15px,2vw,18px);color:rgba(255,255,255,.72)}

.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  max-width:1010px;margin:0 auto;position:relative}
.res-card{position:relative;overflow:hidden;border-radius:24px;padding:36px 24px 30px;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.035);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:transform .45s var(--ressort),border-color .3s ease,background .3s ease}
.res-card::before{content:"";position:absolute;left:50%;top:-46%;width:270px;height:270px;
  transform:translateX(-50%);border-radius:50%;filter:blur(62px);opacity:.18;
  background:var(--teinte);transition:opacity .45s ease}
.res-card:hover{transform:translateY(-9px);border-color:rgba(255,255,255,.24);
  background:rgba(255,255,255,.06)}
.res-card:hover::before{opacity:.44}
.res-card > *{position:relative;z-index:1}

.res-ico{width:64px;height:64px;border-radius:19px;display:grid;place-items:center;
  background:var(--teinte);box-shadow:0 14px 32px -10px var(--teinte);
  transition:transform .4s var(--ressort)}
.res-card:hover .res-ico{transform:scale(1.08) rotate(-4deg)}
.res-ico svg{width:31px;height:31px;fill:#fff}

.res-nom{margin-top:20px;font-size:16px;font-weight:800;color:#fff}
.res-handle{margin-top:4px;font-size:13px;font-weight:600;letter-spacing:.06em;
  color:rgba(255,255,255,.52)}
.res-quoi{margin-top:14px;font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.66)}
.res-btn{margin-top:auto;padding-top:22px}
.res-btn i{display:inline-flex;align-items:center;gap:8px;font-style:normal;
  padding:11px 22px;border-radius:999px;font-size:13.5px;font-weight:700;color:#fff;
  border:1px solid rgba(255,255,255,.22);transition:.25s}
.res-card:hover .res-btn i{background:var(--teinte);border-color:var(--teinte)}
.res-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}

/* =========================================================
   CONTACT — LE PARCOURS EN ÉTAPES
   ========================================================= */
.ct-quest{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:212px 1fr;gap:54px;
  align-items:start}

.rail{position:sticky;top:calc(var(--header-h) + 26px);display:grid;gap:2px}
.rail-item{display:flex;align-items:center;gap:13px;padding:10px 12px;border-radius:12px;
  color:rgba(255,255,255,.42);font-size:13.5px;font-weight:600;text-align:left;
  background:none;border:0;font-family:inherit;cursor:default;transition:.3s}
.rail-num{width:26px;height:26px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-size:11.5px;font-weight:800;border:1px solid rgba(255,255,255,.20);transition:.3s}
.rail-num svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:3;
  stroke-linecap:round;stroke-linejoin:round}
.rail-item.fait{color:rgba(255,255,255,.74);cursor:pointer}
.rail-item.fait:hover{background:rgba(255,255,255,.04)}
.rail-item.fait .rail-num{background:rgba(var(--accent-rgb),.16);color:var(--accent);
  border-color:rgba(var(--accent-rgb),.5)}
.rail-item.ici{color:#fff;background:rgba(255,255,255,.05)}
.rail-item.ici .rail-num{background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 0 0 5px rgba(var(--accent-rgb),.15)}

.jauge{height:3px;border-radius:3px;background:rgba(255,255,255,.10);overflow:hidden;
  margin-bottom:36px}
.jauge span{display:block;height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--accent),#FF8A4C);
  transition:width .55s cubic-bezier(.4,0,.2,1)}

.ct-form.guide{display:block;max-width:none}
.etape{display:none;padding:0}
.etape.ici{display:block;animation:etapeEntre .5s cubic-bezier(.22,1,.36,1) both}
@keyframes etapeEntre{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.etape-num{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent)}
.etape h2{font-size:clamp(23px,3vw,32px);font-weight:800;color:#fff;margin:10px 0 7px;
  line-height:1.2}
.etape-sous{font-size:14.5px;color:rgba(255,255,255,.6);margin-bottom:30px;max-width:52ch}
.etape .field{margin-bottom:26px}
.etape .grid-2{gap:26px}

.pas{display:flex;align-items:center;gap:16px;margin-top:34px;flex-wrap:wrap}
.b-suite{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:999px;
  font-weight:700;font-size:14.5px;color:#fff;border:0;cursor:pointer;font-family:inherit;
  background:linear-gradient(95deg,var(--accent),#FF5E62);
  box-shadow:0 12px 28px rgba(var(--accent-rgb),.28);
  transition:transform .18s ease,box-shadow .18s ease}
.b-suite:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(var(--accent-rgb),.42)}
.b-suite svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.3;
  stroke-linecap:round;stroke-linejoin:round}
.b-retour{background:none;border:0;color:rgba(255,255,255,.52);font-size:13.5px;font-weight:600;
  cursor:pointer;font-family:inherit;padding:10px 2px;transition:color .2s}
.b-retour:hover{color:#fff}
.pas-aide{font-size:12.5px;color:rgba(255,255,255,.38);margin:0 0 0 auto}

.souci{display:none;align-items:center;gap:9px;margin-top:2px;font-size:13.5px;color:#FCA5A5}
.souci.vu{display:flex;animation:tremble .4s}
.souci svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2}
@keyframes tremble{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

.recap{border:1px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden;
  background:rgba(255,255,255,.03)}
.recap-l{display:flex;justify-content:space-between;gap:22px;padding:13px 20px;
  border-bottom:1px solid rgba(255,255,255,.07);font-size:14px}
.recap-l:last-child{border-bottom:0}
.recap-l b{color:rgba(255,255,255,.52);font-weight:600;flex:none;min-width:140px}
.recap-l span{color:#fff;text-align:right;white-space:pre-line}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:26px;font-size:13.5px;
  color:rgba(255,255,255,.7);line-height:1.55;cursor:pointer}
.consent input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--accent);
  padding:0;border:0}
.consent a{color:var(--accent);text-decoration:underline}

.fini{display:none;text-align:center;padding:26px 0 10px}
.fini.vu{display:block;animation:etapeEntre .55s cubic-bezier(.22,1,.36,1) both}
.fini-rond{width:86px;height:86px;margin:0 auto 26px;border-radius:50%;display:grid;
  place-items:center;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.38)}
.fini-rond svg{width:40px;height:40px;fill:none;stroke:#4ADE80;stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:34;stroke-dashoffset:34;
  animation:coche .65s .3s ease forwards}
@keyframes coche{to{stroke-dashoffset:0}}
.fini h2{font-size:clamp(24px,3vw,34px);font-weight:800;color:#fff;margin-bottom:12px}
.fini p{font-size:15px;color:rgba(255,255,255,.68);max-width:48ch;margin:0 auto 10px}
.fini-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.fini-lien{display:inline-flex;align-items:center;gap:9px;padding:12px 24px;border-radius:999px;
  font-size:14px;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.22);transition:.25s}
.fini-lien:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.4)}
.fini-lien svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9}
.fini-lien.wa:hover{background:#25D366;border-color:#25D366}

/* --- Prise de rendez-vous (Calendly, chargé au clic) --- */
.rdv{max-width:720px;margin:38px auto 0;text-align:left;border-radius:22px;
  padding:26px 26px 22px;border:1px solid rgba(var(--accent-rgb),.30);
  background:linear-gradient(180deg,rgba(var(--accent-rgb),.11),rgba(255,255,255,.03))}
.rdv-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent);border:1px solid rgba(var(--accent-rgb),.45);
  background:rgba(var(--accent-rgb),.10);border-radius:999px;padding:5px 12px;margin-bottom:14px}
.rdv h3{font-size:clamp(19px,2.4vw,24px);font-weight:800;color:#fff;margin:0 0 8px}
.rdv > p{font-size:14.5px;color:rgba(255,255,255,.72);margin:0}
.rdv-faits{list-style:none;display:flex;flex-wrap:wrap;gap:10px 20px;margin:16px 0 20px;padding:0}
.rdv-faits li{display:flex;align-items:center;gap:8px;font-size:13.5px;
  color:rgba(255,255,255,.80)}
.rdv-faits svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--accent);
  stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.rdv-note{font-size:11.5px;line-height:1.65;color:rgba(255,255,255,.42);margin:20px 0 0;
  max-width:56ch}
.rdv-note a{color:rgba(255,255,255,.7);text-decoration:underline}
.cal-boite{display:none;margin-top:20px;border-radius:18px;overflow:hidden;background:#fff;
  box-shadow:0 26px 64px rgba(0,0,0,.5)}
.cal-boite.vu{display:block;height:720px}
.cal-attente{padding:70px 0;text-align:center;font-size:14px;color:#5b6472}
.cal-attente a{color:var(--accent-dark);text-decoration:underline}

/* =========================================================
   MENTIONS LÉGALES
   ========================================================= */
.legal{max-width:820px;margin:0 auto;padding:66px 0 90px}
.legal h1{font-size:clamp(28px,4.2vw,46px);font-weight:800;color:#fff;line-height:1.1}
.legal .maj{font-size:13px;color:rgba(255,255,255,.42);margin-top:12px}
.legal h2{font-size:19px;font-weight:800;color:#fff;margin:38px 0 14px;padding-top:30px;
  border-top:1px solid rgba(255,255,255,.10)}
.legal p,.legal li{font-size:14.5px;line-height:1.78;color:rgba(255,255,255,.72)}
.legal p{margin-bottom:14px}
.legal ul{margin:0 0 18px 20px;display:grid;gap:9px}
.legal a{color:var(--accent);text-decoration:underline}
.legal strong{color:#fff;font-weight:700}
.aremplir{color:#FFCE7A;background:rgba(255,206,122,.11);border:1px dashed rgba(255,206,122,.45);
  border-radius:6px;padding:1px 8px;font-size:13px;font-weight:600;white-space:nowrap}
.legal-note{margin-top:50px;border-radius:16px;padding:20px 22px;font-size:13.5px;line-height:1.75;
  background:rgba(var(--accent-rgb),.07);border:1px solid rgba(var(--accent-rgb),.28);
  color:rgba(255,255,255,.82)}
.legal-note b{color:var(--accent)}

/* =========================================================
   PIED DE PAGE
   ========================================================= */
footer{background:#080A0E;color:rgba(255,255,255,.5);padding:32px 0;font-size:14px}
.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.foot a{color:rgba(255,255,255,.5);transition:color .2s}
.foot a:hover{color:var(--accent)}

/* Lien discret pour les pages sans pied de page (accueil, coaching) */
.legal-flottant{position:fixed;right:22px;bottom:14px;z-index:6;
  font-size:11px;letter-spacing:.04em;color:rgba(255,255,255,.34);
  transition:color .25s ease}
.legal-flottant:hover{color:rgba(255,255,255,.8)}
@media (max-width:900px){ .legal-flottant{right:14px;bottom:10px;font-size:10px} }

/* =========================================================
   VERSION MOBILE
   ========================================================= */
@media (max-width:900px){
  section{padding:56px 0}
  .about-grid,.contact-grid,.coach-grid{grid-template-columns:1fr;gap:36px}
  .coach-head{margin-bottom:32px}
  .contact-cards{grid-template-columns:1fr;gap:14px}
  .contact-top{padding:36px 0 0}
  .coach-form{padding:24px 20px;border-radius:16px}
  .grid-2{grid-template-columns:1fr;gap:20px}
  .form-send{justify-self:stretch;text-align:center}
  .app-showcase{grid-template-columns:1fr;gap:36px;margin-top:36px}
  .devices-row{gap:10px}
  .dev-phone{width:84px}
  .badges{grid-template-columns:1fr;max-width:280px;margin:22px auto 0}
  .offer{padding:26px 22px}
  .block-application{padding-bottom:70px}
  .perfs{grid-template-columns:1fr 1fr;gap:14px}
  .palmares-head{margin-bottom:32px}
  .perf-body{padding:18px 16px}
  .perf-body::before{margin-bottom:12px}
  .perf-time{font-size:30px}
  .perf-meta{font-size:12px}
  .cards,.steps,.testis{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr);gap:26px}
  .nav-links{position:fixed;top:var(--header-h);left:0;right:0;background:rgba(14,17,22,.98);
    flex-direction:column;gap:0;padding:0;max-height:0;overflow:hidden;transition:max-height .3s ease;
    border-bottom:1px solid rgba(255,255,255,.1)}
  .nav-links.open{max-height:400px}
  .nav-links a{padding:16px 24px;width:100%;border-top:1px solid rgba(255,255,255,.07)}
  .nav-cta{margin:12px 24px 20px;text-align:center}
  .burger{display:block}

  /* Page vidéos */
  .res-grid{grid-template-columns:1fr;gap:16px;max-width:420px}
  .res-card{padding:30px 22px 26px}
  .res-btn{padding-top:18px}

  /* Contact : les trois moyens de me joindre, l'un sous l'autre */
  .ct-hero{padding:52px 0 40px}
  .ct-strip{grid-template-columns:1fr;margin-top:38px}
  .ct-item{flex-direction:row;justify-content:center;gap:12px;padding:16px 10px}
  .ct-item + .ct-item::before{left:12%;right:12%;top:0;bottom:auto;width:auto;height:1px}
  .ct-item svg{width:22px;height:22px}
  .ct-label{display:none}
  .ct-value{font-size:15.5px}

  /* Contact en étapes */
  .ct-quest{grid-template-columns:1fr;gap:26px}
  /* sur téléphone, le rail devient une simple frise de numéros */
  .rail{position:static;top:auto;display:flex;gap:4px;justify-content:space-between}
  .rail-item{flex:1;min-width:0;padding:8px 0;justify-content:center;border-radius:10px}
  .rail-txt{display:none}
  .pas{gap:12px}
  .pas-aide{display:none}
  .ct-form textarea{min-height:96px}
  .recap-l{flex-direction:column;gap:3px}
  .recap-l b{min-width:0}
  .recap-l span{text-align:left}

  /* Rendez-vous */
  .rdv{padding:22px 18px 20px;border-radius:18px}
  .rdv-faits{gap:9px 16px}
  .cal-boite.vu{height:1010px}

  /* Mentions légales */
  .legal{padding:44px 0 70px}
  .aremplir{white-space:normal}

  /* Rien ne doit dépasser sur le côté */
  .rail{min-width:0;max-width:100%}
  .rv-droite{transform:translateY(30px)}
  .rv-droite.vu{transform:none}
}

/* Le bouton du pouce n'existe que sur téléphone */
.cta-pouce{display:none}

/* =========================================================
   EXPÉRIENCE TÉLÉPHONE
   Ce bloc est le dernier du fichier : il a donc le dernier mot
   sur tout ce qui précède. Il ne change rien sur ordinateur.
   ========================================================= */
@media (max-width:900px){

  /* La barre du haut renonce à son flou : sinon le menu plein écran
     serait enfermé dans sa hauteur au lieu de couvrir tout l'écran. */
  header{backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(12,15,20,.95)}

  /* --- Confort tactile de base --- */
  a,button,input,select,textarea,label{
    -webkit-tap-highlight-color:rgba(var(--accent-rgb),.16);
    touch-action:manipulation}
  body{-webkit-text-size-adjust:100%}
  body.menu-ouvert{overflow:hidden}

  /* ---------------------------------------------------------
     LE MENU : il s'ouvre en plein écran, les liens arrivent
     l'un après l'autre, et le bouton devient une croix.
  --------------------------------------------------------- */
  .logo{position:relative;z-index:3;font-size:19px}

  .nav-links,.topnav-links{
    position:fixed;inset:0;z-index:2;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:0;padding:0;margin:0;max-height:none;height:100%;
    background:rgba(9,11,15,.975);
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border:0;border-radius:0;overflow:hidden;
    opacity:0;visibility:hidden;
    transition:opacity .34s ease,visibility .34s ease}
  /* on neutralise l'ancien repli en hauteur limitée */
  .nav-links.open,.topnav-links.open{opacity:1;visibility:visible;
    max-height:none;height:100%;padding:0}

  .nav-links a,.topnav-links a{
    width:auto;border:0;border-radius:0;background:none;
    padding:15px 26px;font-size:24px;font-weight:700;color:#fff;letter-spacing:-.01em;
    opacity:0;transform:translateY(18px);
    transition:opacity .45s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1),color .2s}
  .nav-links.open a,.topnav-links.open a{opacity:1;transform:none}
  .nav-links.open a:nth-child(1),.topnav-links.open a:nth-child(1){transition-delay:.08s}
  .nav-links.open a:nth-child(2),.topnav-links.open a:nth-child(2){transition-delay:.14s}
  .nav-links.open a:nth-child(3),.topnav-links.open a:nth-child(3){transition-delay:.20s}
  .nav-links.open a:nth-child(4),.topnav-links.open a:nth-child(4){transition-delay:.26s}
  .nav-links.open a:nth-child(5),.topnav-links.open a:nth-child(5){transition-delay:.32s}
  .nav-links.open a:nth-child(6),.topnav-links.open a:nth-child(6){transition-delay:.38s}

  .nav-links a.active,.topnav-links a.active{color:var(--accent)}
  .topnav-links a.active::after{display:none}
  /* « Me contacter » garde sa pastille orange, mais posée au centre */
  .nav-links a.nav-cta{margin:16px 0 0;padding:15px 34px!important;border-radius:999px;
    background:linear-gradient(95deg,var(--accent),#FF5E62);
    box-shadow:0 12px 30px rgba(var(--accent-rgb),.4);font-size:18px!important;
    color:#fff!important;text-align:center}

  /* Le bouton à trois traits devient une croix */
  .burger,.topnav-burger{display:block;position:relative;z-index:3;
    width:46px;height:46px;padding:0;margin-right:-10px;background:none;border:0}
  .burger span,.topnav-burger span{position:absolute;left:11px;width:24px;height:2px;
    margin:0;border-radius:2px;background:#fff;
    transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .18s ease}
  .burger span:nth-child(1),.topnav-burger span:nth-child(1){top:16px}
  .burger span:nth-child(2),.topnav-burger span:nth-child(2){top:23px}
  .burger span:nth-child(3),.topnav-burger span:nth-child(3){top:30px}
  .burger.x span:nth-child(1),.topnav-burger.x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.x span:nth-child(2),.topnav-burger.x span:nth-child(2){opacity:0}
  .burger.x span:nth-child(3),.topnav-burger.x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* ---------------------------------------------------------
     LE BOUTON QUI SUIT LE POUCE
     Toujours à portée, il apparaît dès qu'on commence à lire.
  --------------------------------------------------------- */
  .cta-pouce{display:flex;position:fixed;z-index:40;
    left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));
    align-items:center;justify-content:center;gap:10px;
    padding:16px 22px;border-radius:999px;
    font-size:15.5px;font-weight:800;color:#fff;letter-spacing:-.01em;
    background:linear-gradient(95deg,var(--accent),#FF5E62);
    box-shadow:0 16px 38px rgba(var(--accent-rgb),.42),0 3px 12px rgba(0,0,0,.45);
    transform:translateY(160%);
    transition:transform .5s cubic-bezier(.22,1,.36,1)}
  .cta-pouce.vu{transform:none}
  .menu-ouvert .cta-pouce{transform:translateY(160%)}
  .cta-pouce svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.4;
    stroke-linecap:round;stroke-linejoin:round}
  footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}

  /* ---------------------------------------------------------
     LISIBILITÉ : plus rien sous 12 px
  --------------------------------------------------------- */
  .eyebrow{font-size:11.5px;letter-spacing:.16em}
  .offer-tag{font-size:11px;padding:6px 13px}
  .devices-title{font-size:11px}
  .perf-label{font-size:11.5px}
  .perf-meta{font-size:13px}
  .ct-sub{font-size:13px}
  .logo{padding:8px 0;display:inline-block}
  .tm-dot{border-width:12px}
  .foot{flex-direction:column;gap:10px;text-align:center;font-size:13px}
  .foot a{display:inline-block;padding:6px 4px}
  .legal-flottant{position:static;display:block;text-align:center;
    font-size:12px;padding:26px 0 30px;color:rgba(255,255,255,.4)}
  /* sur l'accueil, la page tient en un écran : le lien reste posé dans le coin */
  body.home .legal-flottant{position:fixed;left:auto;right:16px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    padding:8px 2px;text-align:right;font-size:11px}

  /* ---------------------------------------------------------
     ACCUEIL
  --------------------------------------------------------- */
  .hero-content{padding-bottom:11vh}
  .hero-name{font-size:clamp(30px,8.4vw,42px);margin-bottom:8px}
  .hero-accroche{margin-top:16px;max-width:22ch;font-size:15px}
  .hero-socials{gap:14px;margin-top:24px}
  .hero-socials a{width:46px;height:46px}
  .hero-socials svg{width:19px;height:19px}
  .hero-actions{margin-top:26px}

  /* ---------------------------------------------------------
     COACHING : les écrans respirent, les lignes se lisent
  --------------------------------------------------------- */
  .coach-single{padding:26px 0 30px}
  .app-showcase{gap:30px;margin-top:26px}
  .devices-title{font-size:10.5px;margin-bottom:16px}
  .devices-row{gap:0;justify-content:center;align-items:flex-end}
  .dev-desktop{max-width:none;width:74%}
  .dev-phone{width:27%;margin-right:-7%;position:relative;z-index:2}
  .badges-note{font-size:13.5px;line-height:1.55;margin-top:22px}
  .badges{grid-template-columns:1fr;gap:11px;max-width:320px;margin:18px auto 0}
  .offer{padding:24px 20px 22px;border-radius:20px}
  .offer-head h3{font-size:20px}
  .offer-list li{font-size:14.5px;padding:6px 4px;gap:12px}
  .oi{width:30px;height:30px;border-radius:9px}
  .oi svg{width:16px;height:16px}
  .offer-plus{padding:14px 14px 12px;border-radius:15px}
  .offer-plus h4{font-size:12px}
  .offer-plus .offer-list li{font-size:13.5px}
  /* le bouton du pouce fait déjà le travail : pas de doublon dans l'encadré */
  .offer .cta.pleine{display:none}

  /* ---------------------------------------------------------
     TÉMOIGNAGES : on fait défiler au doigt, les flèches passent dessous
  --------------------------------------------------------- */
  .tm-carousel{gap:0;flex-wrap:wrap;justify-content:center}
  .tm-window{flex:0 0 100%;order:1}
  .tm-arrow{order:2;width:50px;height:50px;margin:20px 9px 0}
  .tm-prev{order:2} .tm-next{order:3}
  .tm-slide{padding:24px 20px 22px}
  .tm-texte p{font-size:15px;line-height:1.62}
  .tm-q{font-size:56px;margin-bottom:2px}
  .tm-dots{margin-top:16px}
  .tm-dot{width:10px;height:10px;padding:0;box-sizing:content-box;
    border:9px solid transparent;background-clip:padding-box}
  .tm-dot.on{width:28px}

  /* ---------------------------------------------------------
     CONTACT : le parcours au format pouce
  --------------------------------------------------------- */
  .ct-hero h1{font-size:clamp(30px,8.2vw,40px)}
  .ct-form-section{padding:34px 0 60px}
  .ct-form-head{margin-bottom:26px}
  .etape h2{font-size:23px}
  .etape-sous{font-size:14.5px;margin-bottom:24px}
  .etape .field{margin-bottom:22px}
  .ct-form .field label{font-size:11.5px;margin-bottom:8px}
  .ct-form input,.ct-form select,.ct-form textarea{padding:13px 2px}
  .choice span{min-width:0;padding:13px 20px;font-size:15px}
  .b-suite{width:100%;justify-content:center;padding:16px 24px;font-size:16px}
  .b-retour{padding:12px 4px;font-size:14px}
  .consent{font-size:13.5px}
  .fini h2{font-size:26px}
  .fini-lien{padding:14px 22px}

  /* ---------------------------------------------------------
     QUI SUIS-JE
  --------------------------------------------------------- */
  .page-head{padding:44px 0 38px}
  .about p{font-size:15.5px}
  .perfs{gap:12px}
  .gallery{gap:12px}

  /* ---------------------------------------------------------
     MENTIONS LÉGALES
  --------------------------------------------------------- */
  .legal h2{font-size:17.5px;margin:30px 0 12px;padding-top:24px}
  .legal p,.legal li{font-size:14.5px}
}

/* Écrans très étroits (iPhone SE) */
@media (max-width:380px){
  .nav-links a,.topnav-links a{font-size:21px;padding:13px 20px}
  .perfs{grid-template-columns:1fr 1fr;gap:10px}
  .offer-list li{font-size:13.5px}
  .cta-pouce{font-size:14.5px;padding:15px 18px}
}
