/* ==========================================================================
   THÉO COACHING - TEST DE DESIGN "XNRGY"
   Reproduction fidèle du système de design de xnrgyclub.com :
   grille 4 colonnes avec lignes verticales, typographie Space Mono +
   sans-serif légère, rythme de sections généreux, palette sombre/claire.
   ========================================================================== */

:root{
  --color-primary:168,146,84;       /* or profond - CTA, liens */
  --color-secondary:10,10,10;       /* noir - sections sombres */
  --color-white:243,238,227;        /* ivoire chaud - fond clair */
  --color-black:20,17,13;           /* quasi-noir chaud - texte */
  --color-orange:219,189,106;       /* or clair - accent, chiffres, tags */
  --color-bg-accent:231,214,177;    /* champagne - section citation */

  --font-heading:'Garet',sans-serif;
  --font-subtitle:'Archivo Narrow',sans-serif;
  --font-body:'Open Sauce One',sans-serif;
  --lh-heading:1;
  --lh-body:1.47;

  --fw-light:300;
  --fw-normal:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;

  --container-max:108.375rem; /* 1734px */
  --ease:.25s ease-in-out;
}

@font-face{
  font-family:'Garet';
  src:url('../fonts/garet/Garet-Book.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Garet';
  src:url('../fonts/garet/Garet-Heavy.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Open Sauce One';
  src:url('../fonts/open-sauce-one/open-sauce-one-latin-400-normal.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Open Sauce One';
  src:url('../fonts/open-sauce-one/open-sauce-one-latin-500-normal.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Open Sauce One';
  src:url('../fonts/open-sauce-one/open-sauce-one-latin-600-normal.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Open Sauce One';
  src:url('../fonts/open-sauce-one/open-sauce-one-latin-700-normal.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  background:rgb(var(--color-white));
  color:rgb(var(--color-black));
  font-family:var(--font-body);
  line-height:var(--lh-body);
  font-size:.9375rem;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font:inherit;}

h1,h2,h3,h4{
  font-family:var(--font-heading);
  font-weight:var(--fw-light);
  line-height:var(--lh-heading);
  margin:0;
}

/* ==========================================================================
   GRILLE - container / container-grid / colonnes
   ========================================================================== */

.container{
  width:89.23%;
  max-width:calc(var(--container-max) + 1.875rem);
  margin-inline:auto;
}
@media (min-width:992px){
  .container{width:90.94%;}
}

.container-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  column-gap:1.25rem;
  width:89.23%;
  margin-inline:auto;
  position:relative;
  z-index:3;
}
@media (min-width:992px){
  .container-grid{
    grid-template-columns:23.65% 26.35% 26.35% 23.65%;
    max-width:var(--container-max);
    width:90.94%;
    column-gap:0;
  }
}

.sm-full{grid-column:span 2;}
@media (min-width:992px){
  .sm-full{grid-column:span 4;}
  .lg-1{grid-column:1/2;}
  .lg-2{grid-column:2/3;}
  .lg-3{grid-column:3/4;}
  .lg-4{grid-column:4/5;}
  .lg-1-2-3{grid-column:1/4;}
  .lg-2-3{grid-column:2/4;}
  .lg-half{grid-column:span 2;}
  .lg-half-2{grid-column:3/5;}
  .lg-full{grid-column:span 4;}
}

/* ==========================================================================
   LIGNES VERTICALES - la marque de fabrique
   3 lignes de 1px, positionnées aux jonctions de colonnes (23.65% / 50% / 76.35%),
   présentes en fond de chaque section. Couleur claire sur fond sombre,
   couleur sombre (via .dark) sur fond clair.
   ========================================================================== */

.lines{
  position:absolute;
  inset:0;
  height:100%;
  pointer-events:none;
  z-index:2;
}
.lines-inner{
  position:absolute;
  left:50%;
  top:0;
  transform:translateX(-50%);
  width:90.94%;
  max-width:var(--container-max);
  height:100%;
  display:none;
}
.lines-inner .line{
  position:absolute;
  top:0;
  width:.0625rem;
  height:100%;
  background:rgba(var(--color-white),.09);
}
.lines.dark .lines-inner .line{background:rgba(var(--color-black),.06);}
.lines-inner .line-1{left:23.65%;}
.lines-inner .line-2{left:50%;}
.lines-inner .line-3{right:23.65%;left:auto;}

section{position:relative;}

/* rythme vertical des sections */
.pad{padding-block:3.125rem;}
@media (min-width:768px){.pad{padding-block:5rem;}}
@media (min-width:992px){.pad{padding-block:5rem;}}

.pad-sm{padding-block:2.8125rem;}
@media (min-width:768px){.pad-sm{padding-block:3.75rem;}}
@media (min-width:992px){.pad-sm{padding-block:4rem;}}

.bg-dark{background:rgb(var(--color-secondary));color:rgb(var(--color-white));}
.bg-accent{background:rgb(var(--color-bg-accent));color:rgb(var(--color-black));}

/* ==========================================================================
   TYPO - eyebrow / titres
   ========================================================================== */

.subtitle{
  font-family:var(--font-subtitle);
  font-weight:var(--fw-medium);
  font-size:clamp(.8125rem,.7966rem + .0654vw,.875rem);
  text-transform:uppercase;
  letter-spacing:.12em;
  margin:0 0 1.25rem;
  color:rgb(var(--color-primary));
}
@media (min-width:992px){.subtitle{margin-bottom:2.8125rem;}}
.bg-dark .subtitle{color:rgba(var(--color-white),.6);}
.bg-accent .subtitle{color:rgb(var(--color-secondary));}

h1.title,h2.title{
  font-size:clamp(2.25rem,1.7083rem + 2.2222vw,4.375rem);
  letter-spacing:-1px;
  text-transform:uppercase;
}
@media (min-width:992px){h1.title,h2.title{letter-spacing:-2px;}}

.section-content{
  font-size:clamp(1.0625rem,1.0466rem + .0654vw,1.125rem);
  line-height:1.5;
  max-width:42.5rem;
  margin-top:1.25rem;
}
.bg-dark .section-content{color:rgba(var(--color-white),.72);}

/* ==========================================================================
   BOUTONS
   ========================================================================== */

.btn{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  height:2.5rem;
  padding-inline:1rem;
  font-family:var(--font-body);
  font-size:clamp(.8125rem,.8vw,.875rem);
  text-transform:uppercase;
  letter-spacing:.06em;
  white-space:nowrap;
  border:1px solid transparent;
  transition:background var(--ease),color var(--ease),border-color var(--ease);
}
@media (min-width:992px){
  .btn{height:3.125rem;padding-inline:1.5625rem;gap:.625rem;}
}
.btn--primary{
  background:rgb(var(--color-primary));
  color:rgb(var(--color-white));
  border-color:rgb(var(--color-primary));
}
.btn--primary:hover{
  background:rgb(var(--color-secondary));
  border-color:rgb(var(--color-secondary));
}
.btn--outline{
  background:transparent;
  color:currentColor;
  border-color:currentColor;
}
.btn--outline:hover{
  background:rgba(var(--color-black),.06);
}
.bg-dark .btn--outline:hover,
.c-hero .btn--outline:hover{
  background:rgba(255,255,255,.1);
}
.btn--white{
  background:rgb(var(--color-white));
  color:rgb(var(--color-black));
  border-color:rgb(var(--color-white));
}
.btn--white:hover{
  background:rgb(var(--color-orange));
  border-color:rgb(var(--color-orange));
}
.btn-row{display:flex;flex-wrap:wrap;gap:.9375rem;align-items:center;}

.text-link{
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  border-bottom:1px solid rgba(var(--color-black),.35);
  padding-bottom:2px;
  transition:border-color var(--ease),opacity var(--ease);
}
.text-link:hover{border-color:rgb(var(--color-primary));}
button.text-link{background:none;color:inherit;font-family:inherit;cursor:pointer;display:inline-block;border-width:0 0 1px;padding:0 0 2px;appearance:none;}
.bg-dark .text-link{border-color:rgba(255,255,255,.35);}
.bg-dark .text-link:hover{border-color:rgb(var(--color-orange));}

/* ==========================================================================
   HEADER
   ========================================================================== */

.header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:50;
  height:4.5rem;
  display:flex;
  align-items:center;
  background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 100%);
  transition:background var(--ease),height var(--ease),transform .3s ease;
}
@media (min-width:992px){.header{height:5.625rem;}}
.header--hidden{transform:translateY(-100%);}
.header.is-scrolled,
.header.header--light{
  background:rgba(var(--color-white),.92);
  backdrop-filter:blur(10px);
  color:rgb(var(--color-black));
}
.header.is-scrolled .logo-mark,
.header.header--light .logo-mark{filter:none;}
.header.is-scrolled .navlinks a,
.header.is-scrolled .btn--outline,
.header.header--light .navlinks a,
.header.header--light .btn--outline{color:rgb(var(--color-black));}
.header.is-scrolled .navlinks a:hover,
.header.header--light .navlinks a:hover{color:rgb(var(--color-primary));}
.header.is-scrolled .btn--outline,
.header.header--light .btn--outline{border-color:rgba(var(--color-black),.35);}

.header__wrapper{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  width:100%;
}
.logo-mark{
  height:2.375rem;
  width:auto;
  filter:drop-shadow(0 1px 6px rgba(0,0,0,.5));
}
@media (min-width:992px){.logo-mark{height:2.875rem;}}

.navlinks{
  display:none;
  align-items:center;
  gap:2rem;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
@media (min-width:992px){.navlinks{display:flex;}}
.navlinks a{
  position:relative;
  opacity:.85;
  padding-block:.35rem;
  transition:opacity var(--ease),color var(--ease);
}
.navlinks a::after{
  content:"";
  position:absolute;left:0;right:0;bottom:0;
  height:1px;
  background:rgb(var(--color-primary));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
.navlinks a:hover{opacity:1;color:rgb(var(--color-primary));}
.navlinks a:hover::after{transform:scaleX(1);}

.header__cta{display:flex;align-items:center;gap:1rem;}
.header__cta .btn{display:none;}
@media (min-width:640px){.header__cta .btn{display:inline-flex;}}

.nav-burger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.5rem;height:2.5rem;
  background:none;border:none;color:currentColor;
  cursor:pointer;
}
@media (min-width:992px){.nav-burger{display:none;}}
.nav-burger span{display:block;width:20px;height:1px;background:currentColor;position:relative;}
.nav-burger span::before,.nav-burger span::after{content:"";position:absolute;left:0;width:100%;height:1px;background:currentColor;}
.nav-burger span::before{top:-6px;}
.nav-burger span::after{top:6px;}

.mobile-menu{
  position:fixed;inset:0;
  background:rgb(var(--color-secondary));
  color:rgb(var(--color-white));
  z-index:60;
  display:flex;flex-direction:column;
  padding:1.5rem 6%;
  transform:translateY(-100%);
  transition:transform .35s ease;
}
.mobile-menu.is-open{transform:translateY(0);}
.mobile-menu__top{display:flex;justify-content:space-between;align-items:center;}
.mobile-menu__top .logo-mark{filter:none;}
.mobile-close{background:none;border:none;color:currentColor;font-size:1.75rem;line-height:1;cursor:pointer;}
.mobile-menu nav{display:flex;flex-direction:column;gap:1.125rem;margin-top:3.5rem;}
.mobile-menu nav a{font-family:var(--font-heading);font-weight:var(--fw-light);font-size:1.375rem;}
.mobile-menu .btn{margin-top:2.5rem;align-self:flex-start;}

/* ==========================================================================
   HERO
   ========================================================================== */

.c-hero{
  position:relative;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  color:rgb(var(--color-white));
  overflow:hidden;
}
@keyframes hero-rise{
  0%{opacity:0;transform:translateY(34px) scale(.99);filter:blur(10px);}
  100%{opacity:1;transform:none;filter:none;}
}
@keyframes hero-eyebrow-in{
  0%{opacity:0;letter-spacing:.5em;filter:blur(6px);}
  100%{opacity:1;letter-spacing:.08em;filter:none;}
}
.c-hero__bg{
  position:absolute;inset:0;
  z-index:0;
}
.c-hero__bg img,
.c-hero__bg video{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 15%;
}
.c-hero__bg-video{display:none;}
@media (max-width:767px){
  .c-hero__bg img{display:none;}
  .c-hero__bg-video--mobile{display:block;}
}
@media (min-width:768px){
  .c-hero__bg img{display:none;}
  .c-hero__bg-video--desktop{display:block;}
}
.c-hero__bg::after{
  content:"";
  position:absolute;inset:0;
  background:rgba(0,0,0,.42);
}
.c-hero .container-grid{
  padding-bottom:3.75rem;
  padding-top:8rem;
  align-items:flex-end;
  position:relative;
  z-index:3;
}
@media (min-width:992px){
  .c-hero .container-grid{padding-bottom:5.5rem;}
}
.c-hero__eyebrow{
  grid-column:span 2;
  font-size:clamp(.8125rem,.875vw,.9375rem);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:1.5rem;
  opacity:.85;
  animation:hero-eyebrow-in 1.4s cubic-bezier(.22,1,.36,1) both;
}
@media (min-width:992px){
  .c-hero__eyebrow{grid-column:4/5;grid-row:1;order:2;margin-bottom:0;text-align:right;}
}
.c-hero__title-block{grid-column:span 2;}
@media (min-width:992px){.c-hero__title-block{grid-column:1/5;order:1;}}
h1.c-hero__title{
  font-size:clamp(3.25rem,2.2rem + 6vw,10.5rem);
  font-weight:var(--fw-light);
  letter-spacing:-2px;
  line-height:.96;
  margin-bottom:2.25rem;
}
@media (max-width:767.98px){h1.c-hero__title{font-size:clamp(2rem,11.5vw,5.5rem);}}
@media (min-width:992px){h1.c-hero__title{letter-spacing:-5px;}}
h1.c-hero__title span{display:block;animation:hero-rise 1.3s cubic-bezier(.22,1,.36,1) both;}
h1.c-hero__title .l1{animation-delay:.15s;}
h1.c-hero__title .l2{text-align:right;animation-delay:.28s;}
.c-hero__sub{
  font-size:clamp(.9375rem,1vw,1.0625rem);
  opacity:.85;
  margin-top:-1.25rem;
  margin-bottom:2.25rem;
  max-width:32ch;
  animation:hero-rise 1.1s cubic-bezier(.22,1,.36,1) .42s both;
}
@media (min-width:992px){.c-hero__sub{text-align:right;margin-left:auto;}}
.c-hero .btn-row{animation:hero-rise 1.1s cubic-bezier(.22,1,.36,1) .58s both;}
@media (prefers-reduced-motion:reduce){
  .c-hero__eyebrow,
  h1.c-hero__title span,
  .c-hero__sub,
  .c-hero .btn-row{animation:none;opacity:1;filter:none;transform:none;letter-spacing:.08em;}
}

/* ==========================================================================
   AVIS GOOGLE - carrousel de cartes
   ========================================================================== */

.reviews__header{margin-bottom:1.5rem;}
.reviews__header .subtitle{margin:0;}
@media (min-width:992px){.reviews__header{grid-column:1/3;margin-bottom:0;align-self:end;}}

.reviews__summary{
  display:flex;align-items:center;gap:.625rem;
  margin-bottom:2.5rem;
}
@media (min-width:992px){
  .reviews__summary{grid-column:3/5;justify-content:flex-end;align-self:end;margin-bottom:0;}
}
.reviews__summary-stars{display:inline-flex;align-items:center;gap:.2rem;}
.reviews__summary-stars img{width:1.0625rem;height:1.0625rem;display:block;}
.reviews__summary-text{font-size:.8125rem;opacity:.65;}
.reviews__summary-text strong{
  font-family:var(--font-heading);font-weight:var(--fw-medium);
  color:rgb(var(--color-black));opacity:1;margin-right:.15rem;
}

.reviews__wrap{
  grid-column:span 2;
  display:flex;align-items:center;gap:.875rem;
  margin-top:2.5rem;
}
@media (min-width:992px){.reviews__wrap{grid-column:1/5;margin-top:3.75rem;}}
.reviews__viewport{flex:1;min-width:0;overflow:hidden;}
.reviews__track{
  display:flex;align-items:flex-start;gap:1.25rem;
  transition:transform .5s ease;
}
.review-card{
  position:relative;
  flex:0 0 100%;
  display:flex;flex-direction:column;
  border:1px solid rgba(var(--color-black),.1);
  border-radius:.5rem;
  padding:1.75rem 1.625rem;
  background:#fff;
  box-shadow:0 1px 2px rgba(var(--color-black),.06),0 8px 24px rgba(var(--color-black),.05);
}
@media (min-width:768px){.review-card{flex:0 0 calc(50% - .625rem);}}
@media (min-width:992px){.review-card{flex:0 0 calc(33.333% - .834rem);}}
.review-card__brand{position:absolute;top:1.25rem;right:1.375rem;width:1.0625rem;height:1.0625rem;}
.review-card__head{display:flex;align-items:center;gap:.75rem;margin-bottom:1.125rem;padding-right:1.5rem;}
.review-card__avatar{
  flex:none;width:2.75rem;height:2.75rem;border-radius:50%;overflow:hidden;
  background:rgba(var(--color-black),.08);
}
.review-card__avatar img{width:100%;height:100%;object-fit:cover;}
.review-card__id{display:flex;flex-direction:column;gap:.3rem;min-width:0;}
.review-card__name{
  font-style:normal;font-family:'Sora',sans-serif;font-weight:500;
  font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;
  color:#202124;
}
.review-card__stars{display:inline-flex;align-items:center;gap:.15rem;}
.review-card__stars img{width:.75rem;height:.75rem;display:block;}
.review-card__text{
  margin:0;font-family:'Sora',sans-serif;font-weight:400;
  font-size:.875rem;line-height:1.6;color:#202124;white-space:pre-line;
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;
}
.review-card.is-expanded .review-card__text{
  display:block;overflow:visible;-webkit-line-clamp:unset;
}
.review-card__more{
  align-self:flex-start;margin-top:.75rem;padding:0;border:none;background:none;
  font-family:'Sora',sans-serif;font-weight:500;font-size:.75rem;
  color:rgb(var(--color-primary));cursor:pointer;
}
.review-card__more:hover{text-decoration:underline;}
.review-card__more[hidden]{display:none;}
.reviews__nav{
  flex:none;width:2.5rem;height:2.5rem;border-radius:50%;
  border:1px solid rgba(var(--color-black),.25);
  background:transparent;color:inherit;
  font-family:var(--font-heading);font-size:1.375rem;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:border-color var(--ease),background var(--ease);
}
.reviews__nav:hover{border-color:rgb(var(--color-primary));background:rgba(var(--color-black),.05);}
.reviews__foot{
  grid-column:span 2;
  display:flex;flex-direction:column;align-items:center;gap:1.25rem;
  margin-top:2rem;
}
@media (min-width:992px){
  .reviews__foot{grid-column:1/5;flex-direction:row;justify-content:center;margin-top:2.5rem;}
}
.reviews__dots{display:flex;gap:.5rem;}
.reviews__dots button{
  width:.5rem;height:.5rem;border-radius:50%;border:none;padding:0;
  background:rgba(var(--color-black),.18);cursor:pointer;
  transition:background var(--ease),transform var(--ease);
}
.reviews__dots button.is-active{background:rgb(var(--color-primary));transform:scale(1.3);}

/* ==========================================================================
   PARTENAIRES - logos qui défilent
   ========================================================================== */
.partners-logos__header{margin-bottom:2rem;}
.partners-logos__header .subtitle{margin:0;}
.partners-logos__header .title{margin-top:.375rem;font-size:clamp(1.5rem,3vw,2rem);}
@media (min-width:992px){.partners-logos__header{grid-column:1/5;text-align:center;margin-inline:auto;margin-bottom:2.5rem;}}

.partners-logos__grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.25rem;
}
@media (min-width:600px){.partners-logos__grid{grid-template-columns:repeat(3,1fr);}}
@media (min-width:992px){.partners-logos__grid{grid-template-columns:repeat(5,1fr);gap:1.5rem;}}

.partners-logos__cell a{
  display:flex;
  align-items:center;
  justify-content:center;
  height:7rem;
  padding:.5rem;
  border-radius:.5rem;
  transition:background var(--ease);
}
.partners-logos__cell a:hover,
.partners-logos__cell a:focus-visible{background:rgba(var(--color-black),.05);}
.partners-logos__cell img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  transition:transform var(--ease);
}
.partners-logos__cell a:hover img,
.partners-logos__cell a:focus-visible img{
  transform:scale(1.06);
}
@media (min-width:768px){
  .partners-logos__cell a{height:9rem;padding:.75rem;}
}

/* ==========================================================================
   USPS - 4 cartes (formats)
   ========================================================================== */

.usps__header{margin-bottom:2.5rem;}
@media (min-width:992px){.usps__header{margin-bottom:0;}}
.usps .container-grid{row-gap:2.5rem;}
@media (min-width:768px){.usps .container-grid{row-gap:3.125rem;}}
@media (min-width:992px){.usps .container-grid{row-gap:5rem;}}

.formats__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:.625rem;
  width:100%;
  max-width:calc(var(--container-max) + 1.875rem);
  margin:2.5rem auto 0;
  padding:0 .625rem;
  list-style:none;
}
@media (min-width:768px){.formats__grid{grid-template-columns:repeat(2,1fr);margin-top:3.75rem;}}
@media (min-width:992px){.formats__grid{margin-top:5rem;}}

.format-card{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  min-height:33.125rem;
  overflow:hidden;
  text-align:center;
  color:rgb(var(--color-white));
  --wipe-delay:0s;
  --wipe-end:calc(var(--wipe-delay) + 1.1s);
}
.format-card:nth-child(2),.format-card:nth-child(3){--wipe-delay:.14s;}
.format-card:nth-child(4){--wipe-delay:.28s;}

.format-card__img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.format-card__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(var(--color-black),0) 0%,rgba(var(--color-black),.92) 100%);
}
.format-card__content{
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;
  gap:.5rem;
  padding:1.875rem 1.5rem;
  max-width:22.5rem;
}
.format-card__tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:rgb(var(--color-orange));}
.format-card__title{font-size:clamp(1.5rem,1.1rem + 1.6vw,2rem);font-weight:var(--fw-light);letter-spacing:-1px;text-transform:uppercase;margin:0;}
.format-card__text{font-size:.85rem;line-height:1.5;opacity:.8;margin:0;max-width:26ch;}
.format-card__link{margin-top:.5rem;color:rgb(var(--color-white));border-color:rgb(var(--color-white));}
.format-card__link:hover{background:rgba(255,255,255,.12);}

/* état d'entrée (armé uniquement une fois le JS de reveal actif) */
.format-card.reveal{opacity:1;transform:none;transition:none;}
.format-card.reveal .format-card__img{
  transform:scale(1.18);
  opacity:0;
  clip-path:inset(0 100% 0 0);
  transition:clip-path 1.1s ease-in-out var(--wipe-delay),opacity 1.1s ease-out var(--wipe-delay),transform 1.9s ease-out var(--wipe-delay);
}
.format-card.reveal .format-card__overlay{
  opacity:0;
  clip-path:inset(0 100% 0 0);
  transition:clip-path 1.1s ease-in-out var(--wipe-delay),opacity 1.1s ease-out var(--wipe-delay);
}
.format-card.reveal:nth-child(2) .format-card__img,.format-card.reveal:nth-child(2) .format-card__overlay{clip-path:inset(0 0 100% 0);}
.format-card.reveal:nth-child(3) .format-card__img,.format-card.reveal:nth-child(3) .format-card__overlay{clip-path:inset(100% 0 0 0);}
.format-card.reveal:nth-child(4) .format-card__img,.format-card.reveal:nth-child(4) .format-card__overlay{clip-path:inset(0 0 0 100%);}

.format-card.reveal .format-card__tag,
.format-card.reveal .format-card__title,
.format-card.reveal .format-card__text{
  opacity:0;
  transform:translateY(24px);
  filter:blur(8px);
  transition:opacity .9s ease-out var(--wipe-end),transform .9s ease-out var(--wipe-end),filter .9s ease-out var(--wipe-end);
}
.format-card.reveal .format-card__tag{transition-delay:calc(var(--wipe-end) + .15s);}
.format-card.reveal .format-card__link{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .7s ease-out calc(var(--wipe-end) + .35s),transform .7s ease-out calc(var(--wipe-end) + .35s);
}

.format-card.reveal.is-visible .format-card__img,
.format-card.reveal.is-visible .format-card__overlay{clip-path:inset(0);opacity:1;}
.format-card.reveal.is-visible .format-card__img{transform:scale(1);}
.format-card.reveal.is-visible .format-card__tag,
.format-card.reveal.is-visible .format-card__title,
.format-card.reveal.is-visible .format-card__text{opacity:1;transform:none;filter:none;}
.format-card.reveal.is-visible .format-card__link{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  .format-card.reveal .format-card__img,
  .format-card.reveal .format-card__overlay,
  .format-card.reveal .format-card__tag,
  .format-card.reveal .format-card__title,
  .format-card.reveal .format-card__text,
  .format-card.reveal .format-card__link{
    clip-path:none;transform:none;filter:none;transition:opacity .6s;
  }
}

/* ==========================================================================
   SERVICES (section sombre) - liste des cours
   ========================================================================== */

.services__hub-wrap{display:none;}
@media (max-width:991.98px){.services__hub-wrap{display:none !important;}}
@media (min-width:992px){
  .services__hub-wrap{
    display:block;
    position:absolute;
    left:34%;right:0;
    top:0;
    height:23.4rem;max-height:30.6vw;
    pointer-events:none;
    z-index:1;
  }
}
.services__hub{display:block;width:100%;height:100%;object-fit:contain;object-position:right center;}

.services__header .section-content{margin-bottom:0;}
.services__list{
  margin-top:3.125rem;
  display:flex;
  flex-direction:column;
}
@media (min-width:992px){.services__list{margin-top:5rem;}}

/* ligne de cours - aspect d'origine (mobile + tablette) */
.service-row{
  display:grid;
  grid-template-columns:3rem 1fr;
  gap:1.25rem;
  padding-block:1.75rem;
  border-top:1px solid rgba(255,255,255,.14);
  align-items:start;
}
@media (min-width:768px){
  .service-row{grid-template-columns:4rem 1fr 25rem;align-items:center;padding-block:2.1875rem;}
}
.service-row:last-child{border-bottom:1px solid rgba(255,255,255,.14);}
.service-row .num{
  font-size:.8rem;color:rgba(255,255,255,.45);
}
.service-row .info{grid-column:2;}
@media (min-width:768px){.service-row .info{grid-column:auto;}}
.service-row .tag{
  font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;
  color:rgb(var(--color-orange));margin-bottom:.5rem;display:block;
}
.service-row h3{font-size:clamp(1.25rem,1.6vw,1.5rem);font-weight:var(--fw-light);margin-bottom:.5rem;}
.service-row p{font-size:.85rem;opacity:.65;max-width:44ch;line-height:1.5;}
.service-row .slots{
  grid-column:2;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));
  gap:.625rem;
  margin-top:1.125rem;
}
@media (min-width:768px){.service-row .slots{grid-column:auto;margin-top:0;}}
@media (max-width:767px){
  .service-row .info{cursor:pointer;position:relative;padding-right:2rem;}
  .service-row .info::after{
    content:"+";
    position:absolute;top:0;right:0;
    font-size:1.25rem;line-height:1;
    color:rgb(var(--color-orange));
  }
  .service-row.is-open .info::after{content:"–";}
  .service-row .slots{display:none;}
  .service-row.is-open .slots{display:grid;}
}

/* carte de date - aspect d'origine (mobile + tablette) : bloc simple (pas flex),
   pour que l'heure et les places restent sur la même ligne */
.slot-card{
  display:block;
  border:1px solid rgba(255,255,255,.22);
  padding:.7rem .8rem;
  color:inherit;
  transition:border-color var(--ease),background var(--ease);
}
a.slot-card:hover{border-color:rgb(var(--color-orange));background:rgba(255,255,255,.05);}
.slot-card .d{display:block;margin-bottom:.3rem;font-size:.72rem;text-transform:capitalize;line-height:1.3;}
.slot-card .t,
.slot-card .spots{display:inline;font-size:.7rem;opacity:.6;}
.slot-card .spots::before{content:" · ";}
.slot-card .r{
  display:block;margin-top:.3rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;
  color:rgb(var(--color-orange));
}
.slot-card.full{opacity:.4;border-style:dashed;}
.services__loading{opacity:.55;}

/* ==========================================================================
   SERVICES - évolution visuelle PC uniquement (>= 992px)
   ========================================================================== */
@media (min-width:992px){
  .service-row{grid-template-columns:4rem 24rem 1fr;gap:2rem;}
  .service-row .num{
    font-family:var(--font-heading);
    font-weight:var(--fw-normal);
    font-size:3rem;
    line-height:1;
    color:transparent;
    -webkit-text-stroke:1px rgba(255,255,255,.22);
  }
  .service-row h3{font-size:clamp(1.5rem,2vw,1.875rem);}
  .service-row .slots{grid-template-columns:repeat(3,1fr);gap:0;}

  .slot-card,
  .slot-card.full{
    display:flex;flex-direction:column;gap:.2rem;
    border:none;padding:0 1.5rem;
    border-left:1px solid rgba(255,255,255,.16);
    transition:none;
  }
  a.slot-card:hover{border-color:rgba(255,255,255,.16);background:none;}
  .slot-card .d{margin-bottom:0;}
  .slot-card .t{
    font-family:var(--font-heading);font-weight:var(--fw-normal);
    font-size:1.375rem;color:rgb(var(--color-white));margin:.1rem 0;
    display:block;opacity:1;
  }
  a.slot-card:hover .t{color:rgb(var(--color-orange));}
  .slot-card .spots{
    font-size:.72rem;color:rgb(var(--color-orange));
    display:block;opacity:1;
  }
  .slot-card .spots::before{content:none;}
  .slot-card .r{
    margin-top:.35rem;display:block;text-decoration:underline;text-underline-offset:2px;
  }
}

/* ==========================================================================
   VIDEO SHOWCASE - ambiance des cours (sous la liste des cours)
   portrait seul sur mobile, 3 clips paysage à partir de 768px
   ========================================================================== */

.video-showcase__portrait{
  margin-top:3.125rem;
  max-width:20rem;
  margin-inline:auto;
}
@media (min-width:992px){.video-showcase__portrait{margin-top:5rem;}}
@media (min-width:768px){.video-showcase__portrait{display:none;}}

.video-showcase__portrait video{
  display:block;
  width:100%;
  aspect-ratio:9/16;
  object-fit:cover;
}

.video-showcase__grid{
  display:none;
}
@media (min-width:768px){
  .video-showcase__grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.5rem;
    margin-top:3.125rem;
  }
}
@media (min-width:992px){.video-showcase__grid{margin-top:5rem;}}

.video-showcase__item{
  position:relative;
  aspect-ratio:16/9;
  overflow:hidden;
  background:rgba(255,255,255,.05);
}
.video-showcase__item video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ==========================================================================
   PRICING - 2 cartes photo (formules)
   ========================================================================== */

.pricing .container-grid{row-gap:1.5rem;}
.price-card{
  grid-column:span 2;
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:1.75rem;
  color:rgb(var(--color-white));
}
@media (min-width:992px){
  .pricing .container-grid{grid-template-columns:repeat(3,1fr);column-gap:1.25rem;}
  .price-card{
    aspect-ratio:auto;height:38rem;grid-column:span 1;
    transition:transform var(--ease),box-shadow var(--ease);
  }
  .price-card:hover{
    transform:translateY(-.5rem);
    box-shadow:0 1.5rem 3rem rgba(0,0,0,.35);
  }
  .price-card:hover img{transform:scale(1.06);}
}
.price-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  transition:transform .5s ease;
}
.price-card::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,rgba(15,19,32,.95) 0%,rgba(15,19,32,.78) 32%,rgba(15,19,32,.32) 60%,rgba(15,19,32,0) 82%);
}
.price-card__body{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:1.75rem 1.5rem;}
.price-card .tag{
  font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:rgb(var(--color-orange));margin-bottom:.625rem;
  text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 14px rgba(0,0,0,.35);
}
.price-card h3{font-weight:var(--fw-medium);font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:.375rem;}
.price-card__subtitle{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;opacity:.65;margin:0 0 1.25rem;}
.price-card__note{font-size:.8rem;line-height:1.4;opacity:.75;margin:-.5rem 0 1rem;}
.price-card ul{margin-bottom:1.5rem;}
.price-card li{
  display:flex;justify-content:space-between;gap:1rem;
  font-size:.85rem;padding:.6rem 0;border-top:1px solid rgba(255,255,255,.18);
}
.price-card li:first-child{border-top:none;}
.price-card li span:last-child{color:rgb(var(--color-orange));}
.price-note{margin-top:1.5rem;font-size:.78rem;opacity:.55;grid-column:span 2;max-width:70ch;}
@media (min-width:992px){.price-note{grid-column:1/-1;}}

/* PRICING - carrousel tactile (mobile) */
.price-carousel{
  display:flex;
  gap:1rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:.25rem;
}
.price-carousel::-webkit-scrollbar{display:none;}
.price-carousel .price-card{flex:0 0 82%;scroll-snap-align:start;}
.price-carousel__meta{
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  margin-top:1.25rem;
}
.price-carousel__hint{
  display:flex;align-items:center;justify-content:center;gap:.375rem;margin:0;
  font-size:.78rem;color:rgba(var(--color-black),.55);text-align:center;
  transition:opacity .4s ease;
}
.price-carousel__hint.is-hidden{opacity:0;}
.price-carousel__hint-icon{
  width:1rem;height:1rem;color:rgb(var(--color-primary));flex:none;
  animation:price-hint-swipe 1.4s ease-in-out infinite;
}
@keyframes price-hint-swipe{
  0%,100%{transform:translateX(0);}
  50%{transform:translateX(.3rem);}
}
.price-carousel__dots{display:flex;gap:.5rem;flex:none;}
.price-carousel__dots button{
  width:.5rem;height:.5rem;border-radius:50%;border:none;padding:0;
  background:rgba(var(--color-black),.18);cursor:pointer;
  transition:background var(--ease),transform var(--ease);
}
.price-carousel__dots button.is-active{background:rgb(var(--color-primary));transform:scale(1.3);}
@media (min-width:992px){
  .price-carousel{display:contents;}
  .price-carousel__meta{display:none;}
}

/* ==========================================================================
   CITATION (fond accent clair)
   ========================================================================== */

.quote-section .container-grid{align-items:flex-start;row-gap:2.5rem;}
.quote-section .image{grid-column:span 2;aspect-ratio:4/5;overflow:hidden;}
@media (min-width:992px){.quote-section .image{grid-column:1/2;grid-row:1;height:28rem;aspect-ratio:auto;}}
.quote-section .image img{width:100%;height:100%;object-fit:cover;}
@media (min-width:992px){
  .quote-section .image img{
    object-position:53% 10%;
    transform:scale(1.18);
    transform-origin:53% 10%;
  }
}
.quote-section .content{grid-column:span 2;position:relative;}
@media (min-width:992px){.quote-section .content{grid-column:2/5;grid-row:1;padding-left:3.5rem;}}
.quote-section__trajectory{display:none;}
@media (max-width:991.98px){.quote-section__trajectory{display:none !important;}}
@media (min-width:992px){
  .quote-section__trajectory{
    display:block;
    position:absolute;
    top:-2.75rem;right:-9%;
    width:34rem;max-width:46vw;
    height:auto;
    pointer-events:none;
    z-index:-1;
  }
}
.quote-section h2{
  font-size:clamp(1.5rem,2.2vw,2.125rem);
  letter-spacing:-1px;
  margin-bottom:1rem;
}
.quote-section__more{
  display:inline-flex;align-items:center;gap:.5rem;
  margin-top:.75rem;
  background:none;border:none;padding:0;
  font-family:var(--font-body);font-weight:var(--fw-semibold);
  font-size:.85rem;letter-spacing:.02em;
  color:rgb(var(--color-primary));
  cursor:pointer;
  transition:color var(--ease);
}
.quote-section__more svg{flex:none;transition:transform var(--ease);}
.quote-section__more:hover{color:rgb(var(--color-secondary));}
.quote-section__more:hover svg{transform:translateX(.2rem);}
.quote-section blockquote{
  margin:1.75rem 0;
  padding-left:1.25rem;
  border-left:2px solid rgb(var(--color-secondary));
  font-style:italic;
}
.quote-section blockquote p{font-size:1.05rem;margin:0;}
.quote-section p.lede{font-size:1.05rem;line-height:1.6;max-width:44ch;}
.quote-section p.lede:last-of-type{margin-bottom:0;}

/* ==========================================================================
   BIO MODAL - histoire complète de Théo en popup
   ========================================================================== */

.bio-modal{position:fixed;inset:0;z-index:100;display:none;}
.bio-modal.is-open{display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem;}
.bio-modal__backdrop{
  position:absolute;inset:0;
  background:rgba(15,19,32,.75);
  backdrop-filter:blur(2px);
}
.bio-modal__panel{
  position:relative;z-index:1;
  width:100%;max-width:40rem;max-height:88vh;overflow-y:auto;
  background:rgb(var(--color-white));color:rgb(var(--color-black));
  padding:2.75rem 1.75rem 2.5rem;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
@media (min-width:768px){.bio-modal__panel{padding:3.5rem 3.5rem 3rem;}}
.bio-modal__close{
  position:absolute;top:.75rem;right:.75rem;z-index:2;
  width:2.25rem;height:2.25rem;border-radius:50%;
  background:rgba(var(--color-black),.06);color:rgb(var(--color-black));
  border:none;font-size:1.375rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--ease);
}
.bio-modal__close:hover{background:rgba(var(--color-black),.12);}
.bio-modal__title{
  font-size:clamp(1.375rem,2.6vw,1.875rem);
  letter-spacing:-1px;
  margin:.5rem 0 1.5rem;
  max-width:26ch;
}
.bio-modal__body p{
  font-size:.95rem;line-height:1.7;
  margin:0 0 1.25rem;
  opacity:.8;
}
.bio-modal__body p:last-child{margin-bottom:0;}
.bio-modal__body strong{font-weight:var(--fw-semibold);opacity:1;}

/* ==========================================================================
   SPLIT - bloc image + texte réutilisable (pages intérieures)
   ========================================================================== */

.split .container-grid{align-items:flex-start;row-gap:2.5rem;}
.split .image{grid-column:span 2;aspect-ratio:4/5;overflow:hidden;}
@media (min-width:992px){.split .image{grid-column:1/3;grid-row:1;height:32rem;aspect-ratio:auto;}}
.split .image img{width:100%;height:100%;object-fit:cover;}

/* Coaching à domicile : photo verticale (bilan sur table), boîte plus haute
   pour garder le visage du coach sans couper trop bas */
@media (min-width:992px){
  #domicile .image{height:43rem;}
  #domicile .image img{object-position:center 12%;}
}
.split .content{grid-column:span 2;}
@media (min-width:992px){.split .content{grid-column:3/5;grid-row:1;padding-left:3.5rem;}}
.split--reverse .image{order:-1;}
@media (min-width:992px){
  .split--reverse .image{grid-column:3/5;order:0;}
  .split--reverse .content{grid-column:1/3;padding-left:0;padding-right:3.5rem;}
}
.split--compact .image{aspect-ratio:16/9;}
@media (min-width:992px){.split--compact .image{height:14rem;}}
.split h2{
  font-size:clamp(1.75rem,2.8vw,2.5rem);
  letter-spacing:-1px;
  margin-bottom:1.25rem;
}
.split p.lede{font-size:1rem;line-height:1.6;max-width:44ch;opacity:.75;margin-bottom:1.5rem;}
.split ul.checklist{margin-bottom:1.5rem;}
.split ul.checklist li{
  font-size:.9rem;padding:.5rem 0 .5rem 1.25rem;position:relative;opacity:.8;
  border-top:1px solid rgba(var(--color-black),.12);
}
.split ul.checklist li:first-child{border-top:none;}
.split ul.checklist li::before{content:"-";position:absolute;left:0;color:rgb(var(--color-primary));}

/* ==========================================================================
   STATS - le constat qui interpelle (4 chiffres, page entreprise)
   ========================================================================== */

.stats__header{margin-bottom:2.5rem;}
@media (min-width:992px){.stats__header{margin-bottom:3.125rem;}}

.stat-item{
  grid-column:span 2;
  padding:1.75rem 1.5rem 1.75rem 0;
  border-top:1px solid rgba(255,255,255,.14);
}
@media (min-width:768px){.stat-item{grid-column:span 1;padding-right:1.75rem;}}
.stat-item__n{
  display:block;
  font-family:var(--font-heading);
  font-weight:var(--fw-light);
  font-size:clamp(2.25rem,4vw,3.5rem);
  line-height:1;
  margin-bottom:.75rem;
  color:rgb(var(--color-orange));
}
.stat-item p{font-size:.85rem;line-height:1.5;opacity:.72;max-width:26ch;}

/* ==========================================================================
   PAGE-HERO - hero compact pour pages intérieures (réutilise .split)
   ========================================================================== */

.page-hero{padding-top:8.5rem;padding-bottom:3.125rem;}
@media (min-width:768px){.page-hero{padding-top:10rem;padding-bottom:5rem;}}
@media (min-width:992px){.page-hero{padding-top:12rem;padding-bottom:6.25rem;}}
.page-hero .image{aspect-ratio:4/5;}
@media (min-width:992px){.page-hero .image{height:36rem;}}
.page-hero h1{
  font-size:clamp(2.25rem,4.5vw,4.25rem);
  font-weight:var(--fw-light);
  letter-spacing:-2px;
  line-height:1.02;
  margin-bottom:1.5rem;
}
.page-hero p.lede{font-size:1.05rem;}
.page-hero .btn-row{margin-top:.5rem;}

/* ==========================================================================
   FEATURES NUMÉROTÉES (ex : atouts entreprise)
   ========================================================================== */

.features-num .container-grid{row-gap:1.25rem;}

/* en-tête : vague décorative, note "chaque place compte" */
.features-num__header{position:relative;}
.features-num__wave-wrap{display:none;}
@media (max-width:991.98px){
  .features-num__wave-wrap{display:none !important;}
}
@media (min-width:992px){
  .features-num__wave-wrap{
    display:block;
    position:absolute;
    left:34%;right:0;
    top:1.5rem;height:9rem;
    pointer-events:none;
    z-index:-1;
  }
}
.features-num__wave{display:block;width:100%;height:100%;object-fit:contain;object-position:right center;}
.features-num__note{margin-top:2rem;}
.features-num__note p{margin:0;font-size:.85rem;line-height:1.5;opacity:.75;}

/* cartes - mobile/tablette (< 992px) : aspect d'origine, sans habillage carte ni icônes */
.feature-num{grid-column:span 2;min-width:0;position:relative;}
@media (min-width:768px){.feature-num{grid-column:span 1;padding-right:1.5rem;}}

.feature-num__top{display:block;}
.feature-num__icon{display:none;}
@media (max-width:991.98px){.feature-num__icon{display:none !important;}}
.feature-num__n,
.feature-num .n{
  display:block;
  font-family:var(--font-heading);
  font-weight:var(--fw-light);
  font-size:2.25rem;
  line-height:1;
  margin-bottom:1rem;
  color:rgb(var(--color-primary));
}
.bg-dark .feature-num .n,
.feature-num--dark .feature-num__n{color:rgb(var(--color-orange));}
.feature-num h3{
  font-family:var(--font-body);
  font-weight:600;
  font-size:1.2rem;
  margin-bottom:.625rem;
}
.feature-num h3 .optional{display:block;font-size:.75rem;font-weight:var(--fw-light);opacity:.55;margin-top:.25rem;text-transform:none;letter-spacing:0;}
.feature-num p{font-size:.85rem;line-height:1.55;opacity:.72;max-width:30ch;}
.feature-num__cta{margin-top:1.5rem;}
.feature-num__arrow{display:none;}
@media (max-width:991.98px){.feature-num__arrow{display:none !important;}}

/* cartes - version PC uniquement (>= 992px) : fond, icônes, chiffres fantômes, flèches, carte sombre */
@media (min-width:992px){
  .features-num--sgt .container-grid{grid-template-columns:repeat(4,1fr);column-gap:1.25rem;}
  .features-num--3col .container-grid{grid-template-columns:repeat(3,1fr);column-gap:1.25rem;}
  .features-num--3col .usps__header{grid-column:1/-1;}

  .feature-num{
    padding:2rem 1.75rem;
    background:rgba(var(--color-black),.035);
    border-radius:1.5rem;
    transition:background var(--ease);
  }
  .feature-num:hover{background:rgba(var(--color-black),.075);}
  .feature-num--dark{background:rgb(var(--color-secondary));color:rgb(var(--color-white));}
  .feature-num--dark:hover{background:#1c1812;}
  .feature-num--dark p{color:rgba(255,255,255,.68);}
  .feature-num--dark .text-link{border-color:rgba(255,255,255,.35);}
  .feature-num--dark .text-link:hover{border-color:rgb(var(--color-orange));}

  .feature-num__top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;}
  .feature-num__icon{
    display:flex;
    flex:none;width:3.25rem;height:3.25rem;border-radius:50%;
    align-items:center;justify-content:center;
    border:1px solid rgba(var(--color-primary),.4);
    background:rgba(var(--color-primary),.08);
    color:rgb(var(--color-primary));
  }
  .feature-num__icon img{width:1.5rem;height:1.5rem;object-fit:contain;}
  .feature-num--dark .feature-num__icon{
    border-color:rgba(var(--color-orange),.4);
    background:rgba(var(--color-orange),.1);
    color:rgb(var(--color-orange));
  }
  .feature-num__n{
    margin-bottom:0;
    font-weight:var(--fw-normal);
    font-size:3rem;
    color:transparent;
    -webkit-text-stroke:1px rgba(var(--color-black),.18);
  }
  .feature-num--dark .feature-num__n{-webkit-text-stroke:1px rgba(255,255,255,.22);}

  .feature-num__cta{
    height:auto;min-height:2.5rem;
    padding:.65rem 1.125rem;
    font-size:.75rem;
    white-space:normal;
    text-align:center;
    line-height:1.3;
  }

  /* flèche entre les cartes : centrée sur la hauteur du cercle d'icône (padding-top 2rem + rayon 1.625rem) */
  .feature-num__arrow{
    display:block;
    position:absolute;top:3.625rem;left:100%;z-index:3;
    width:2.25rem;
    transform:translate(-50%,-50%);
  }
  .feature-num__arrow img{display:block;width:100%;height:auto;}
}

/* ==========================================================================
   PAGE-HEADER - en-tête léger (ex : réservation)
   ========================================================================== */

.page-header{padding-top:8.5rem;padding-bottom:2rem;}
@media (min-width:768px){.page-header{padding-top:10rem;padding-bottom:2.5rem;}}
@media (min-width:992px){.page-header{padding-top:12rem;}}
.page-header .back-link{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;
  opacity:.6;margin-bottom:2rem;
}
.page-header .back-link:hover{opacity:1;color:rgb(var(--color-primary));}
.page-header h1.title{margin-bottom:1.25rem;}
.page-header p.lede{font-size:1rem;opacity:.7;max-width:56ch;}

/* ==========================================================================
   IFRAME RÉSERVATION
   ========================================================================== */

.iframe-section{padding-bottom:0;}
.iframe-wrap{
  border-top:1px solid rgba(var(--color-black),.12);
  background:rgb(var(--color-white));
}
.iframe-wrap iframe{display:block;width:100%;height:1150px;border:0;}
.iframe-fallback{
  text-align:center;font-size:.82rem;opacity:.6;padding:1.25rem 0 5rem;
}
@media (min-width:768px){.iframe-fallback{padding-bottom:6.25rem;}}
.iframe-fallback a{text-decoration:underline;}
.iframe-fallback a:hover{color:rgb(var(--color-primary));}

/* ==========================================================================
   FORMULAIRE DE CONTACT
   ========================================================================== */

.contact-form .form{display:flex;flex-direction:column;gap:1.25rem;max-width:32rem;}
.form__field{display:flex;flex-direction:column;gap:.5rem;}
.form__field label{font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;opacity:.7;}
.form__field input,
.form__field textarea{
  font-family:var(--font-body);
  font-size:1rem;
  padding:.8rem 1rem;
  border:1px solid rgba(var(--color-black),.25);
  background:rgb(var(--color-white));
  color:rgb(var(--color-black));
  resize:vertical;
}
.form__field input:focus,
.form__field textarea:focus{outline:none;border-color:rgb(var(--color-primary));}
.form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.contact-form .btn{align-self:flex-start;border:1px solid transparent;cursor:pointer;}
.form-notice{padding:1rem 1.25rem;margin-bottom:1.5rem;max-width:32rem;font-size:.9rem;}
.form-notice p{margin:0;}
.form-notice p + p{margin-top:.4rem;}
.form-notice--success{background:rgba(var(--color-primary),.1);border:1px solid rgba(var(--color-primary),.4);}
.form-notice--error{background:rgba(200,60,40,.08);border:1px solid rgba(200,60,40,.35);}

/* ==========================================================================
   FAQ
   ========================================================================== */

.faq__header{margin-bottom:2rem;}
.faq-list{grid-column:span 2;}
@media (min-width:992px){.faq-list{grid-column:1/4;}}
.faq-item{border-top:1px solid rgba(var(--color-black),.14);}
.faq-item:last-child{border-bottom:1px solid rgba(var(--color-black),.14);}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  padding:1.375rem 0;
  font-family:var(--font-heading);
  font-size:clamp(1.05rem,1.6vw,1.25rem);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";
  font-family:var(--font-body);
  font-size:1.3rem;
  flex-shrink:0;
  transition:transform var(--ease);
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .a{font-size:.9rem;line-height:1.6;opacity:.68;max-width:62ch;margin:0 0 1.75rem;}

/* ==========================================================================
   CTA (fond sombre + bandeau texte défilant)
   ========================================================================== */

.cta-final{overflow:hidden;text-align:center;}
.cta-final .avatar{
  width:5.5rem;height:5.5rem;
  border-radius:50%;
  overflow:hidden;
  margin:0 auto 2rem;
  border:1px solid rgba(255,255,255,.25);
}
.cta-final .avatar img{width:100%;height:100%;object-fit:cover;}
.marquee{
  overflow:hidden;
  white-space:nowrap;
  margin-bottom:1.5rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__track{
  display:inline-flex;
  gap:2.5rem;
  animation:marquee 22s linear infinite;
}
.marquee__track span{
  font-family:var(--font-heading);
  font-weight:var(--fw-semibold);
  font-size:clamp(2.5rem,7vw,5.5rem);
  letter-spacing:-2px;
  opacity:.92;
}
@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.cta-final .sub{max-width:44ch;margin:0 auto 2.25rem;opacity:.7;font-size:.95rem;}
.cta-final .btn-row{justify-content:center;}
.cta-final h2.title{max-width:26ch;margin:0 auto 1.5rem;}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.footer{padding-block:3rem 2rem;}
@media (min-width:768px){.footer{padding-block:5.5rem 2.5rem;}}
@media (min-width:992px){.footer{padding-block:8rem 3.5rem;}}
.footer .container-grid{row-gap:3rem;}
.footer__intro{grid-column:span 2;}
@media (min-width:992px){.footer__intro{grid-column:1/3;}}
.footer__logo{width:8rem;height:auto;margin-bottom:1.75rem;}
.footer__intro p{max-width:36ch;opacity:.7;font-size:.9rem;margin-bottom:1.75rem;}
.footer__contact{font-family:var(--font-heading);font-weight:var(--fw-light);font-size:clamp(1.5rem,2.6vw,2rem);display:block;margin-bottom:.5rem;}
.footer__contact:hover{color:rgb(var(--color-orange));}
.footer__sub-link{font-size:.85rem;opacity:.65;text-decoration:underline;}
.footer__sub-link:hover{opacity:1;}

.footer__links{grid-column:span 2;display:flex;gap:3.5rem;flex-wrap:wrap;}
@media (min-width:992px){.footer__links{grid-column:3/5;justify-content:flex-end;}}
.footer__col span.h{
  display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;opacity:.5;margin-bottom:1rem;
}
.footer__col a,.footer__col span{display:block;font-size:.9rem;opacity:.8;margin-bottom:.65rem;}
.footer__col a:hover{opacity:1;color:rgb(var(--color-orange));}

.footer__bottom{
  grid-column:span 2;
  margin-top:1rem;
  padding-top:1.75rem;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;
  font-size:.75rem;opacity:.5;
}
@media (min-width:992px){.footer__bottom{grid-column:1/5;}}

/* ==========================================================================
   STICKY MOBILE CTA
   ========================================================================== */

.mobile-cta{
  display:flex;position:fixed;bottom:0;left:0;right:0;z-index:45;
  background:rgb(var(--color-secondary));
  padding:.75rem 1rem;
  box-shadow:0 -10px 24px rgba(0,0,0,.35);
}
.mobile-cta .btn{width:100%;justify-content:center;}
@media (min-width:768px){.mobile-cta{display:none;}}

/* ==========================================================================
   BOOKING MODAL - réservation Deciplus en overlay
   ========================================================================== */

body.modal-open{overflow:hidden;}
.booking-modal{position:fixed;inset:0;z-index:100;display:none;}
.booking-modal.is-open{display:block;}
.booking-modal__backdrop{
  position:absolute;inset:0;
  background:rgba(15,19,32,.75);
  backdrop-filter:blur(2px);
}
.booking-modal__panel{
  position:relative;z-index:1;
  margin:2rem auto;
  width:92%;max-width:60rem;
  height:calc(100vh - 4rem);
  background:rgb(var(--color-white));
  color:rgb(var(--color-black));
  display:flex;flex-direction:column;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
}
@media (max-width:640px){
  .booking-modal__panel{width:100%;height:100%;margin:0;}
}
.booking-modal__bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:.9375rem 1.25rem;
  border-bottom:1px solid rgba(var(--color-black),.12);
  font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;
  flex-shrink:0;
}
.booking-modal__actions{display:flex;align-items:center;gap:1.25rem;}
.booking-modal__fullscreen{font-size:.75rem;opacity:.65;text-decoration:underline;text-transform:none;letter-spacing:normal;}
.booking-modal__fullscreen:hover{opacity:1;color:rgb(var(--color-primary));}
.booking-modal__close{
  background:none;border:none;font-size:1.5rem;line-height:1;
  cursor:pointer;color:currentColor;padding:0;
}
.booking-modal__close:hover{color:rgb(var(--color-primary));}
.booking-modal iframe{flex:1;width:100%;border:0;}

/* ==========================================================================
   PLANNING MODAL - planning hebdomadaire en popup
   ========================================================================== */

.services__planning-link{display:block;margin-top:1.75rem;}
@media (min-width:992px){.services__planning-link{margin-top:2.5rem;}}

.planning-modal{position:fixed;inset:0;z-index:100;display:none;}
.planning-modal.is-open{display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem;}
.planning-modal__backdrop{
  position:absolute;inset:0;
  background:rgba(15,19,32,.85);
  backdrop-filter:blur(2px);
}
.planning-modal__panel{
  position:relative;z-index:1;
  width:100%;max-width:34rem;max-height:88vh;overflow-y:auto;
  background:rgb(var(--color-secondary));color:rgb(var(--color-white));
  padding:2.75rem 1.75rem 2rem;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
@media (min-width:768px){.planning-modal__panel{padding:3rem 2.75rem 2.5rem;}}
.planning-modal__close{
  position:absolute;top:.75rem;right:.75rem;z-index:2;
  width:2.25rem;height:2.25rem;border-radius:50%;
  background:rgba(255,255,255,.08);color:rgb(var(--color-white));
  border:none;font-size:1.375rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--ease);
}
.planning-modal__close:hover{background:rgb(var(--color-primary));}
.planning-modal__head{margin-bottom:1.5rem;}
.planning-modal__head .subtitle{color:rgba(var(--color-white),.6);margin-bottom:.5rem;}
.planning-modal__head .title{font-size:clamp(1.5rem,3vw,1.875rem);}
.planning-table{display:flex;flex-direction:column;}
.planning-row{
  display:grid;grid-template-columns:6rem 1fr;gap:1rem;
  padding-block:1.125rem;
  border-top:1px solid rgba(255,255,255,.14);
  align-items:center;
}
.planning-row:last-child{border-bottom:1px solid rgba(255,255,255,.14);}
.planning-day{
  font-family:var(--font-subtitle);font-weight:var(--fw-medium);
  font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;
  color:rgb(var(--color-orange));
}
.planning-slots{display:flex;flex-direction:column;gap:.5rem;}
.planning-slot{display:flex;align-items:baseline;gap:.75rem;font-size:.85rem;}
.planning-slot .t{opacity:.55;min-width:4rem;font-variant-numeric:tabular-nums;}
.planning-modal__cta{margin-top:2rem;text-align:center;}
.planning-modal__cta .btn{width:100%;justify-content:center;}
@media (min-width:768px){.planning-modal__cta .btn{width:auto;}}

/* ==========================================================================
   MOBILE - textes principaux centrés
   ========================================================================== */

@media (max-width:767px){
  .subtitle,
  h1.title,
  h2.title,
  .section-content{
    text-align:center;
    margin-inline:auto;
  }
  .usps__header,
  .services__header,
  .faq__header,
  .reviews__header,
  .partners-logos__header,
  .page-header p.lede{text-align:center;margin-inline:auto;}
  .split .content,
  .page-hero .content,
  .quote-section .content{text-align:center;}
  .split .content .btn-row,
  .page-hero .content .btn-row,
  .quote-section .content .btn-row{justify-content:center;}
  .split .content p.lede,
  .page-hero .content p.lede,
  .quote-section .content p.lede{margin-inline:auto;}
  .quote-section blockquote,
  .split ul.checklist{text-align:left;}
  .feature-num{text-align:center;}
  .feature-num p{margin-inline:auto;}
}

/* ==========================================================================
   SCROLL REVEAL - apparition au scroll
   ========================================================================== */

.reveal{opacity:0;transform:translateY(1.75rem);transition:opacity .6s ease,transform .6s ease;}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1 !important;transform:none !important;transition:none !important;}
}

/* ==========================================================================
   NOTE INTERNE (bandeau de test, à retirer ensuite)
   ========================================================================== */

.test-banner{
  position:relative;z-index:70;
  background:rgb(var(--color-orange));
  color:rgb(var(--color-white));
  font-size:.75rem;
  text-align:center;
  padding:.5rem 1rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
