/* ============================================================
   ALP'THLETICS — style.css
   Charte graphique : noir intensité, rose combat, vert pulse
   ============================================================ */

:root{
  --noir:#0D0D0F;
  --noir-2:#17171B;
  --rose:#FF1F6D;
  --rose-soft:#FFB4CB;
  --pulse:#00D68F;
  --blanc:#F7F5F4;
  --gris:#8C8C93;
  --gris-d:#4A4A50;
  --radius:3px;
  --nav-h:76px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--blanc); color:var(--noir);
  font-family:'Manrope',sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.disp{font-family:'Archivo Black',sans-serif; text-transform:uppercase; margin:0; color:var(--noir);}
.mono{font-family:'JetBrains Mono',monospace; letter-spacing:0.03em;}
.wrap{max-width:1080px;margin:0 auto;padding:0 30px;}
section{padding:90px 0;}
img,svg{max-width:100%;}
a{color:inherit; text-decoration:none;}
.on-dark{color:var(--blanc);}
.on-dark-soft{color:rgba(247,245,244,0.65);}
.section-noir{background:var(--noir); color:var(--blanc);}
.section-dark2{background:var(--noir-2); color:var(--blanc);}

/* ---------- SCROLL RAIL (page d'accueil) ----------
   Chaque section = un cran. Le hero et les bandes
   remplissent l'écran. Les sections longues restent
   scrollables en interne, puis le snap passe à la suivante.
*/
html.page-home-scroll,
body.page-home{
  scroll-snap-type: y mandatory;
  scroll-padding-top: 0;
}
body.page-home > section{
  scroll-snap-align: start;
  scroll-snap-stop: always;
  min-height: 100dvh;
  min-height: 100svh;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: calc(var(--nav-h) + 36px);
  padding-bottom: 48px;
}
body.page-home > section > .wrap,
body.page-home > section > .approche-grid{
  width: 100%;
}
/* Hero : plein viewport, pas de double padding */
body.page-home > section.cover{
  justify-content: center;
  padding-top: calc(var(--nav-h) + 40px);
  padding-bottom: 56px;
}
/* Sections denses : ancrage en haut, contenu peut dépasser 100vh */
body.page-home > section#coach,
body.page-home > section#avantages,
body.page-home > section#offres,
body.page-home > section#retours,
body.page-home > section#bilan,
body.page-home > section#contact,
body.page-home > section.approche,
body.page-home > section.retours-section{
  justify-content: flex-start;
  padding-top: calc(var(--nav-h) + 48px);
  padding-bottom: 64px;
}
body.page-home > footer{
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
@media (max-width: 700px){
  body.page-home{
    scroll-snap-type: y proximity;
  }
  body.page-home > section{
    min-height: auto;
    padding-top: calc(var(--nav-h) + 40px);
    padding-bottom: 56px;
  }
  body.page-home > section.cover{
    min-height: 100dvh;
    min-height: 100svh;
    justify-content: flex-end;
  }
}
@media (prefers-reduced-motion: reduce){
  body.page-home{
    scroll-snap-type: none;
  }
}

.eyebrow{
  font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--rose); font-weight:500;
  display:flex; align-items:center; gap:10px; margin-bottom:16px;
}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--rose);display:inline-block;flex-shrink:0;}
.section-noir .eyebrow,.section-dark2 .eyebrow{color:var(--rose-soft);}
.section-noir .eyebrow::before,.section-dark2 .eyebrow::before{background:var(--rose-soft);}

p.lead{font-size:16.5px; color:var(--gris-d); max-width:600px;}
.section-head{max-width:640px; margin-bottom:48px;}
.section-head h2{font-size:clamp(28px,4vw,44px); line-height:1.05;}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-block; font-weight:700; font-size:13.5px;
  text-transform:uppercase; letter-spacing:0.03em; text-decoration:none;
  padding:14px 26px; border:none; border-radius:var(--radius);
  cursor:pointer; transition:transform .15s, box-shadow .15s, background .15s;
  font-family:'Manrope',sans-serif;
}
.btn-rose{background:var(--rose); color:var(--noir);}
.btn-rose:hover{transform:translateY(-2px); box-shadow:0 8px 24px rgba(255,31,109,0.35);}
.btn-ghost{background:transparent; color:var(--blanc); border:1px solid rgba(247,245,244,0.35);}
.btn-ghost:hover{border-color:var(--blanc); background:rgba(247,245,244,0.08);}
.btn-dark{background:var(--noir); color:var(--blanc);}
.btn-outline{background:transparent; border:1.5px solid var(--noir); color:var(--noir);}
.btn-outline:hover{background:var(--noir); color:var(--blanc);}
.btn-sm{padding:10px 18px; font-size:12.5px;}
.btn:disabled{opacity:0.45; cursor:not-allowed; transform:none !important; box-shadow:none !important;}

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--nav-h); background:rgba(13,13,15,0.92);
  backdrop-filter:blur(12px); border-bottom:1px solid rgba(247,245,244,0.08);
  transition:background .2s;
}
.nav-inner{display:flex; align-items:center; height:100%; gap:28px;}
.brand{display:flex; align-items:center; gap:10px; color:var(--blanc); text-decoration:none;}
.brand-icon{width:34px; height:34px; object-fit:contain; background:#F7F5F4; border-radius:4px; padding:3px;}
.wordmark{font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:18px; letter-spacing:0.01em;}
.wordmark .dot{color:var(--rose);}
.wordmark.small{font-size:16px;}
.nav-links{display:flex; gap:26px; margin-left:auto;}
.nav-links a{color:rgba(247,245,244,0.72); font-size:14px; font-weight:500; transition:color .15s;}
.nav-links a:hover{color:var(--blanc);}
.nav-cta{margin-left:8px;}
.nav-burger{display:none; background:none; border:none; cursor:pointer; padding:8px; margin-left:auto;}
.nav-burger span{display:block; width:22px; height:2px; background:var(--blanc); margin:5px 0; transition:.2s;}
.nav-mobile{display:none; flex-direction:column; gap:18px; padding:24px 30px 30px; background:var(--noir);}
.nav.open .nav-mobile{display:flex;}
.nav-mobile a{color:var(--blanc); font-size:16px; font-weight:500;}
@media (max-width:860px){
  .nav-links,.nav-cta{display:none;}
  .nav-burger{display:block;}
}

/* ---------- COVER / HERO ---------- */
.cover{
  background:var(--noir); color:var(--blanc);
  padding:calc(var(--nav-h) + 48px) 0 56px; position:relative; overflow:hidden;
  min-height:100dvh;
  min-height:100svh;
  display:flex; align-items:center;
}
.cover-bg{
  position:absolute; inset:0;
  background-image:url('img/hero-ai.jpg');
  background-size:cover;
  background-position:center 40%;
  background-repeat:no-repeat;
  z-index:0;
  will-change: transform;
}
.cover-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(
    180deg,
    rgba(13,13,15,0.55) 0%,
    rgba(13,13,15,0.40) 40%,
    rgba(13,13,15,0.88) 100%
  );
}
.cover .wrap{position:relative; z-index:2; width:100%; padding-bottom:28px;}
.pulse-bg{position:absolute; inset:0; opacity:0.45; pointer-events:none; z-index:1; will-change:transform;}
.cover h1{color:var(--blanc); font-size:clamp(42px,6.5vw,78px); line-height:0.95; margin-top:10px;
  text-shadow:0 2px 24px rgba(0,0,0,0.35);}
.cover h1 span{color:var(--rose);}
.cover p.lead{color:rgba(247,245,244,0.82); margin-top:20px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-top:32px;}
.values-row{
  display:flex; gap:0; margin-top:48px; border-top:1px solid rgba(247,245,244,0.16);
  background:rgba(13,13,15,0.35); backdrop-filter:blur(8px);
  margin-left:-12px; margin-right:-12px; padding-left:12px; padding-right:12px;
  border-radius:4px;
}
.value-item{flex:1; padding:22px 18px 18px; border-right:1px solid rgba(247,245,244,0.16);}
.value-item:last-child{border-right:none;}
.value-item .num{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--rose);}
.value-item h3{font-size:16px; color:var(--blanc); margin-top:8px;}
.value-item p{font-size:12.5px; color:rgba(247,245,244,0.55); margin-top:6px;}
@media (max-width:700px){
  .values-row{flex-wrap:wrap;}
  .value-item{flex:1 1 45%; border-bottom:1px solid rgba(247,245,244,0.12); padding-bottom:16px;}
  .cover{
    min-height:100dvh;
    min-height:100svh;
    padding:calc(var(--nav-h) + 36px) 0 48px;
    align-items:flex-end;
  }
  .cover .wrap{padding-bottom:48px;}
}

/* Scroll cue */
.scroll-cue{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  width:26px; height:42px; border:1.5px solid rgba(247,245,244,0.4); border-radius:14px;
  z-index:3; display:flex; justify-content:center; padding-top:8px;
}
.scroll-cue span{
  width:4px; height:8px; background:var(--rose-soft); border-radius:2px;
  animation:scrollCue 1.8s ease-in-out infinite;
}
@keyframes scrollCue{
  0%{opacity:1; transform:translateY(0);}
  60%{opacity:0.2; transform:translateY(12px);}
  100%{opacity:0; transform:translateY(12px);}
}
@media (max-width:700px){.scroll-cue{display:none;}}
@media (prefers-reduced-motion: reduce){.scroll-cue span{animation:none;}}

/* ---------- AVANTAGES ---------- */
.avantages-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.avantage-card{
  position:relative;
  background:var(--blanc); border:1px solid #E6E4E1; padding:30px 26px 26px; border-radius:var(--radius);
  transition:border-color .2s, box-shadow .2s, transform .25s;
  overflow:hidden;
}
.avantage-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--rose); transform:scaleY(0); transform-origin:top;
  transition:transform .3s ease;
}
.avantage-card:hover{
  border-color:rgba(255,31,109,0.35);
  box-shadow:0 12px 32px rgba(13,13,15,0.08);
  transform:translateY(-4px);
}
.avantage-card:hover::before{transform:scaleY(1);}
.avantage-num{
  display:block; font-family:'JetBrains Mono',monospace; font-size:12px;
  letter-spacing:0.12em; color:var(--rose); opacity:0.85; margin-bottom:16px;
}
.avantage-card h3{font-size:16px; margin-bottom:10px; letter-spacing:0.02em;}
.avantage-card p{font-size:14px; color:var(--gris-d); margin:0; line-height:1.65;}
@media (max-width:800px){.avantages-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.avantages-grid{grid-template-columns:1fr;}}

/* ---------- GALERIE MOSAÏQUE (immersion) ---------- */
.gallery-band{background:var(--noir); padding:90px 0 96px;}
.gallery-eyebrow{color:var(--rose-soft);}
.gallery-eyebrow::before{background:var(--rose-soft);}
.gallery-title{
  color:var(--blanc); font-size:clamp(26px,3.6vw,40px); line-height:1.05;
  max-width:640px; margin-bottom:44px;
}
.gallery-mosaic{
  max-width:1080px; margin:0 auto; padding:0 30px;
  display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:110px; gap:14px;
}
.g-item{margin:0; position:relative; overflow:hidden; border-radius:var(--radius); background:#17171B;}
.g-item img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s cubic-bezier(.22,1,.36,1);}
.g-item:hover img{transform:scale(1.07);}
.g-item::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(13,13,15,0.82) 100%);
  pointer-events:none;
}
.g-item figcaption{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:14px 16px;
  color:var(--blanc); font-size:13.5px; font-weight:600; display:flex; flex-direction:column; gap:2px;
}
.g-item figcaption .mono{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--rose-soft); font-weight:500;
}
.g-1{grid-column:1 / 4; grid-row:1 / 5;}
.g-2{grid-column:4 / 7; grid-row:1 / 3;}
.g-3{grid-column:4 / 7; grid-row:3 / 5;}
.g-4{grid-column:1 / 3; grid-row:5 / 7;}
.g-5{grid-column:3 / 5; grid-row:5 / 7;}
.g-6{grid-column:5 / 7; grid-row:5 / 7;}
@media (max-width:820px){
  .gallery-mosaic{grid-template-columns:repeat(2,1fr); grid-auto-rows:160px;}
  .g-1{grid-column:1 / 3; grid-row:1 / 3;}
  .g-2{grid-column:1 / 2; grid-row:3 / 4;}
  .g-3{grid-column:2 / 3; grid-row:3 / 4;}
  .g-4{grid-column:1 / 2; grid-row:4 / 5;}
  .g-5{grid-column:2 / 3; grid-row:4 / 5;}
  .g-6{grid-column:1 / 3; grid-row:5 / 7;}
}
@media (max-width:520px){
  .gallery-band{padding:64px 0;}
  .gallery-mosaic{padding:0 20px; gap:10px; grid-auto-rows:130px;}
}

/* ---------- APPROCHE (méthode) ---------- */
.approche{padding:90px 0;}
body.page-home > section.approche{padding-top:calc(var(--nav-h) + 48px); padding-bottom:64px;}
.approche-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center;}
.approche-media{position:relative;}
.approche-img-main{
  width:100%; height:520px; object-fit:cover; border-radius:var(--radius); display:block;
}
.approche-img-accent{
  position:absolute; right:-32px; bottom:-32px; width:46%; height:auto; aspect-ratio:360/260;
  object-fit:cover; border-radius:var(--radius); border:6px solid var(--blanc);
  box-shadow:0 20px 44px rgba(13,13,15,0.18);
}
.approche-content h2{font-size:clamp(26px,3.4vw,38px); line-height:1.06; margin:14px 0 16px;}
.approche-content p.lead{margin-bottom:30px;}
.approche-list{list-style:none; margin:0 0 34px; padding:0; display:flex; flex-direction:column; gap:20px;}
.approche-list li{display:flex; gap:16px; align-items:flex-start;}
.approche-ico{
  flex-shrink:0; width:32px; height:32px; border-radius:50%; margin-top:2px;
  background:rgba(255,31,109,0.1); position:relative;
}
.approche-ico::before{
  content:""; position:absolute; inset:0; margin:auto; width:8px; height:8px;
  border-radius:50%; background:var(--rose);
}
.approche-list strong{display:block; font-size:15.5px; margin-bottom:3px;}
.approche-list span{font-size:14px; color:var(--gris-d); line-height:1.55;}
@media (max-width:860px){
  .approche{padding:70px 0;}
  .approche-grid{grid-template-columns:1fr; gap:60px;}
  .approche-img-main{height:380px;}
  .approche-img-accent{right:0; bottom:-28px; width:52%;}
}
@media (max-width:480px){
  .approche-img-accent{display:none;}
}

/* ---------- BANDE VISUELLE (ambiance montagne) ---------- */
.visual-band{
  position:relative; min-height:100dvh; min-height:100svh;
  display:flex; align-items:center; overflow:hidden;
  isolation: isolate;
  padding:0 !important; /* override section padding — content centered via flex */
}
body.page-home > section.visual-band{
  padding-top: 0;
  padding-bottom: 0;
  justify-content: center;
}
.visual-band::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(13,13,15,0.88) 0%, rgba(13,13,15,0.55) 55%, rgba(13,13,15,0.35) 100%);
  z-index:1;
}
.visual-band .wrap{position:relative; z-index:2; padding-top:var(--nav-h);}
.visual-band .band-content{max-width:520px; color:var(--blanc);}
.visual-band h2{font-size:clamp(28px,4vw,44px); line-height:1.05; color:var(--blanc); margin-bottom:16px;}
.visual-band p{font-size:16px; color:rgba(247,245,244,0.78); margin:0 0 26px; line-height:1.6;}
.visual-band.trail{background:var(--noir);}
.visual-band.alpine{background-image:url('img/hero-ai.jpg'); background-position:center 40%;}
.visual-band.team{background:var(--noir);}
.visual-band.team::before{
  background:linear-gradient(90deg, rgba(13,13,15,0.92) 0%, rgba(13,13,15,0.62) 45%, rgba(13,13,15,0.25) 100%);
}
@media (max-width:700px){
  .visual-band{ min-height:70dvh; }
  body.page-home > section.visual-band{ min-height:70dvh; }
}

/* ---------- GRILLE AMBIANCE (photos lifestyle) ---------- */
.ambiance-grid{
  display:grid; grid-template-columns:1.2fr 1fr; gap:18px;
  margin-top:40px;
}
.ambiance-grid .main-shot{
  position:relative; border-radius:var(--radius); overflow:hidden;
  min-height:320px; background:#17171B;
}
.ambiance-grid .main-shot img{
  width:100%; height:100%; object-fit:cover; display:block;
  min-height:320px;
}
.ambiance-grid .side-shots{
  display:grid; grid-template-rows:1fr 1fr; gap:18px;
}
.ambiance-grid .side-shots figure{
  position:relative; border-radius:var(--radius); overflow:hidden;
  margin:0; min-height:150px; background:#17171B;
}
.ambiance-grid .side-shots img{
  width:100%; height:100%; object-fit:cover; display:block;
  min-height:150px;
}
.ambiance-caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:14px 16px;
  background:linear-gradient(transparent, rgba(13,13,15,0.85));
  color:var(--blanc); font-size:12.5px; font-family:'JetBrains Mono',monospace;
  letter-spacing:0.06em; text-transform:uppercase;
}
@media (max-width:720px){
  .ambiance-grid{grid-template-columns:1fr;}
  .ambiance-grid .side-shots{grid-template-columns:1fr 1fr; grid-template-rows:auto;}
  .visual-band{min-height:320px;}
  .visual-band::before{
    background:linear-gradient(180deg, rgba(13,13,15,0.75) 0%, rgba(13,13,15,0.9) 100%);
  }
}

/* ---------- OFFRES ---------- */
.offres-group{margin-bottom:48px;}
.offres-group-label{
  font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--rose-soft); margin-bottom:16px;
}
.offres-group-note{font-size:13px; color:rgba(247,245,244,0.5); margin-bottom:16px;}
.offres-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px;}
.offre-card{
  background:var(--noir); border:1px solid rgba(247,245,244,0.1);
  padding:28px 24px; border-radius:var(--radius); display:flex; flex-direction:column;
  position:relative;
}
.offre-card.featured{border-color:var(--rose); box-shadow:0 0 0 1px var(--rose);}
.offre-badge{
  position:absolute; top:-11px; right:18px;
  background:var(--rose); color:var(--noir); font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.04em; padding:4px 12px; border-radius:2px;
}
.offre-card h3{font-size:20px; color:var(--blanc); margin-bottom:6px;}
.offre-price{font-family:'Archivo Black',sans-serif; font-size:28px; color:var(--blanc); margin:10px 0 4px;}
.offre-price span{font-size:14px; font-family:'Manrope',sans-serif; font-weight:500; color:rgba(247,245,244,0.55);}
.offre-price-devis{color:var(--rose-soft); font-size:20px;}
.offre-desc{font-size:14px; color:rgba(247,245,244,0.65); margin:12px 0 20px; flex:1;}
.offre-items{list-style:none; margin:0 0 22px; padding:0;}
.offre-items li{
  font-size:13.5px; color:rgba(247,245,244,0.75); padding:7px 0;
  border-top:1px solid rgba(247,245,244,0.08); display:flex; gap:8px;
}
.offre-items li:first-child{border-top:none;}
.offre-items li::before{content:"+"; color:var(--pulse); font-weight:800;}
.offre-card .btn{align-self:flex-start; margin-top:auto;}

/* ---------- BILAN ---------- */
.bilan-layout{display:grid; grid-template-columns:1fr 1.1fr; gap:40px; align-items:start;}
.bilan-checklist{list-style:none; margin:0; padding:0;}
.bilan-checklist li{
  font-size:15px; padding:12px 0; border-top:1px solid #E6E4E1;
  display:flex; gap:12px; color:var(--gris-d);
}
.bilan-checklist li:first-child{border-top:none;}
.bilan-checklist li::before{content:"✓"; color:var(--pulse); font-weight:800; flex-shrink:0;}
.bilan-format{font-size:13px; color:var(--gris); margin-top:20px;}
.calendar-wrap{
  background:var(--noir-2); color:var(--blanc); padding:28px; border-radius:var(--radius);
}
.cal-title{font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:18px; margin-bottom:6px;}
.cal-lead{font-size:13.5px; color:rgba(247,245,244,0.55); margin-bottom:20px;}
.booking-embed{min-height:200px;}
.booking-placeholder{
  background:var(--noir); border:1px dashed rgba(247,245,244,0.2);
  padding:40px 24px; text-align:center; color:rgba(247,245,244,0.5); font-size:14px;
}
@media (max-width:800px){.bilan-layout{grid-template-columns:1fr;}}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
.contact-form label{display:block; font-size:13px; font-weight:600; margin:16px 0 6px; color:rgba(247,245,244,0.8);}
.contact-form label:first-of-type{margin-top:0;}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%; padding:12px 14px; border:1px solid #2A2A30; border-radius:var(--radius);
  background:var(--noir); color:var(--blanc); font-family:inherit; font-size:15px;
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  outline:none; border-color:var(--rose);
}
.contact-form .btn{margin-top:22px;}
.form-note{font-size:12.5px; color:rgba(247,245,244,0.45); margin-top:12px;}
.success-panel{text-align:center; padding:40px 20px;}
.success-mark{font-size:42px; color:var(--pulse); margin-bottom:12px;}
@media (max-width:700px){.contact-grid{grid-template-columns:1fr;}}

/* ---------- FOOTER ---------- */
footer{background:var(--noir); color:var(--gris); padding:40px 0 28px; font-size:13px;}
.foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-bottom:28px;}
.foot-brand{display:flex; align-items:center; gap:14px;}
.foot-pulse{width:64px; height:16px; flex-shrink:0; opacity:0.9;}
.foot-links{display:flex; gap:22px; flex-wrap:wrap;}
.foot-links a{color:rgba(247,245,244,0.55); transition:color .15s;}
.foot-links a:hover{color:var(--blanc);}
.foot-bottom{border-top:1px solid rgba(247,245,244,0.08); padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px;}

/* ---------- PAGES INTÉRIEURES (offre, questionnaire, espace…) ---------- */
.page-hero{
  background:var(--noir); color:var(--blanc);
  padding:calc(var(--nav-h) + 50px) 0 50px;
}
.page-hero h1{font-size:clamp(28px,4.5vw,42px); line-height:1.05; color:var(--blanc);}
.page-hero h1 span{color:var(--rose);}
.page-hero .lead{color:rgba(247,245,244,0.7); margin-top:12px;}

/* Offre detail */
.offre-detail-grid{display:grid; grid-template-columns:1.2fr 0.8fr; gap:40px; align-items:start;}
.offre-detail-card{
  background:var(--noir-2); color:var(--blanc); padding:32px; border-radius:var(--radius);
  position:sticky; top:calc(var(--nav-h) + 20px);
}
.offre-detail-card .price{font-family:'Archivo Black',sans-serif; font-size:36px; margin:12px 0;}
.offre-detail-card .price span{font-size:15px; font-family:'Manrope',sans-serif; color:rgba(247,245,244,0.55);}
.steps{counter-reset:step;}
.step{display:flex; gap:16px; margin-bottom:28px;}
.step-num{
  width:36px; height:36px; border-radius:50%; background:var(--rose); color:var(--noir);
  font-family:'Archivo Black',sans-serif; font-size:14px; display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.step h3{font-size:16px; margin-bottom:4px;}
.step p{font-size:14px; color:var(--gris-d); margin:0;}
@media (max-width:800px){.offre-detail-grid{grid-template-columns:1fr;}.offre-detail-card{position:static;}}

/* Questionnaire (réutilise styles déjà bons) */
.q-block{
  background:var(--blanc); border:1px solid #E6E4E1; border-radius:var(--radius);
  padding:26px 24px; margin-bottom:16px;
}
.q-block.dark{background:var(--noir-2); border-color:transparent; color:var(--blanc);}
.q-label{font-weight:700; font-size:15px; margin-bottom:6px; display:block;}
.q-hint{font-size:13px; color:var(--gris-d); margin-bottom:14px;}
.q-block.dark .q-hint{color:rgba(247,245,244,0.55);}
input[type="text"],input[type="email"],input[type="tel"],input[type="date"],input[type="password"],
select,textarea{
  width:100%; padding:12px 14px; border:1px solid #D8D6D3; border-radius:var(--radius);
  font-family:'Manrope',sans-serif; font-size:15px; background:#fff; color:var(--noir);
}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--rose);}
textarea{min-height:100px; resize:vertical;}
.q-block.dark input,.q-block.dark select,.q-block.dark textarea{
  background:var(--noir); border-color:#2A2A30; color:var(--blanc);
}
.options{display:flex; flex-direction:column; gap:10px;}
.options.row{flex-direction:row; flex-wrap:wrap; gap:10px 18px;}
.opt{display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:14.5px;}
.opt input{width:17px; height:17px; margin-top:2px; accent-color:var(--rose); flex-shrink:0;}
.scale{display:flex; gap:6px; flex-wrap:wrap; margin-top:8px;}
.scale label{
  flex:1; min-width:40px; text-align:center; padding:11px 4px;
  border:1px solid #D8D6D3; border-radius:var(--radius); cursor:pointer; font-size:14px; font-weight:600;
}
.scale input{display:none;}
.scale label:has(input:checked){background:var(--rose); color:var(--noir); border-color:var(--rose);}
.scale-labels{display:flex; justify-content:space-between; font-size:12px; color:var(--gris); margin-top:8px;}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:560px){.grid-2{grid-template-columns:1fr;}.options.row{flex-direction:column;}}

/* Espace client / Admin */
.auth-box{
  max-width:420px; margin:0 auto; background:var(--blanc);
  border:1px solid #E6E4E1; border-radius:var(--radius); padding:36px 32px;
}
.auth-box h2{font-size:24px; margin-bottom:8px;}
.auth-tabs{display:flex; gap:0; margin-bottom:28px; border-bottom:1px solid #E6E4E1;}
.auth-tab{
  flex:1; text-align:center; padding:12px; font-weight:600; font-size:14px;
  cursor:pointer; color:var(--gris-d); border-bottom:2px solid transparent; margin-bottom:-1px;
}
.auth-tab.active{color:var(--noir); border-bottom-color:var(--rose);}
.dashboard-header{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; margin-bottom:32px;}
.credit-card{
  background:var(--noir); color:var(--blanc); padding:28px; border-radius:var(--radius);
  text-align:center; margin-bottom:24px;
}
.credit-card .num{font-family:'Archivo Black',sans-serif; font-size:56px; color:var(--rose); line-height:1;}
.credit-card .label{font-size:13px; color:rgba(247,245,244,0.55); margin-top:6px; text-transform:uppercase; letter-spacing:0.08em;}
.panel{background:var(--blanc); border:1px solid #E6E4E1; border-radius:var(--radius); padding:24px; margin-bottom:18px;}
.panel h3{font-size:15px; margin-bottom:12px;}

/* Tables admin */
.table{width:100%; border-collapse:collapse; font-size:14px;}
.table th,.table td{padding:12px 14px; text-align:left; border-bottom:1px solid #E6E4E1;}
.table th{font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--gris); font-weight:600;}
.table tr:hover td{background:#F9F7F6;}

/* Legal pages */
.legal-content{max-width:720px; margin:0 auto;}
.legal-content h2{font-size:20px; margin:36px 0 12px;}
.legal-content h3{font-size:16px; margin:24px 0 8px; text-transform:none; font-family:'Manrope',sans-serif; font-weight:700;}
.legal-content p,.legal-content li{font-size:15px; color:var(--gris-d); margin-bottom:10px;}
.legal-content ul{padding-left:20px;}

/* Entreprise — page contact */
.entreprise-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:40px; align-items:start;}
.entreprise-contact-card{
  background:var(--noir-2); color:var(--blanc); padding:34px; border-radius:var(--radius);
  position:sticky; top:calc(var(--nav-h) + 20px);
}
.contact-line{padding:18px 0; border-top:1px solid rgba(247,245,244,0.1);}
.contact-line:first-of-type{border-top:none; padding-top:0;}
.contact-label{
  display:block; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.1em;
  text-transform:uppercase; color:rgba(247,245,244,0.5); margin-bottom:8px;
}
.contact-value-row{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;}
.contact-value{font-size:18px; font-weight:700; color:var(--blanc); word-break:break-word;}
.copy-btn{
  flex-shrink:0; background:transparent; border:1px solid rgba(247,245,244,0.3); color:var(--blanc);
  font-family:'Manrope',sans-serif; font-size:12.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.03em; padding:8px 14px; border-radius:var(--radius); cursor:pointer;
  transition:border-color .2s, background .2s, color .2s;
}
.copy-btn:hover{border-color:var(--rose); color:var(--rose-soft);}
.copy-btn.copied{background:var(--pulse); border-color:var(--pulse); color:var(--noir);}
.entreprise-note{font-size:13px; color:rgba(247,245,244,0.55); margin-top:24px;}
.entreprise-list{list-style:none; margin:0; padding:0;}
.entreprise-list li{
  padding:16px 0; border-top:1px solid #E6E4E1; display:flex; flex-direction:column; gap:4px;
}
.entreprise-list li:first-child{border-top:none;}
.entreprise-list strong{font-size:15.5px;}
.entreprise-list span{font-size:14px; color:var(--gris-d); line-height:1.55;}
@media (max-width:800px){
  .entreprise-grid{grid-template-columns:1fr;}
  .entreprise-contact-card{position:static;}
}

/* Utilitaires */
.mt-0{margin-top:0;}
.mb-0{margin-bottom:0;}
.text-center{text-align:center;}
.hidden{display:none !important;}
.alert{
  padding:14px 18px; border-radius:var(--radius); font-size:14px; margin-bottom:18px;
}
.alert-ok{background:rgba(0,214,143,0.12); color:#0A7A52; border:1px solid rgba(0,214,143,0.3);}
.alert-err{background:rgba(255,31,109,0.1); color:#B0104A; border:1px solid rgba(255,31,109,0.25);}
.alert-info{background:rgba(13,13,15,0.06); color:var(--gris-d); border:1px solid #E6E4E1;}


/* ============================================================
   ENHANCEMENTS — effets, micro-interactions, responsive fort
   ============================================================ */

/* Smooth base */
html { scroll-padding-top: calc(var(--nav-h) + 12px); }
body { overflow-x: hidden; }
img { height: auto; display: block; }

/* Reveal on scroll */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
}
.reveal.in {
  opacity: 1;
  transform: none;
}

/* Buttons — richer feedback */
.btn {
  position: relative;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.btn-rose::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform .55s ease;
}
.btn-rose:hover::after { transform: translateX(120%); }
.btn-rose:active { transform: translateY(0) scale(0.98); }
.btn-ghost:hover { box-shadow: 0 0 0 1px rgba(247,245,244,0.5); }

/* Nav polish */
.nav { transition: background .25s, box-shadow .25s, backdrop-filter .25s; }
.nav.scrolled {
  background: rgba(13,13,15,0.97);
  box-shadow: 0 8px 32px rgba(0,0,0,0.35);
}
.nav-links a {
  position: relative;
}
.nav-links a::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -4px;
  height: 2px; background: var(--rose);
  transform: scaleX(0); transform-origin: left;
  transition: transform .25s ease;
}
.nav-links a:hover::after { transform: scaleX(1); }

/* Burger animation */
.nav.open .nav-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav.open .nav-burger span:nth-child(2) { opacity: 0; }
.nav.open .nav-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-burger span { transition: transform .25s, opacity .2s; }

/* Hero glow */
.cover::after {
  content: "";
  position: absolute; width: 60%; height: 40%;
  right: -10%; bottom: 10%;
  background: radial-gradient(ellipse, rgba(255,31,109,0.18) 0%, transparent 70%);
  pointer-events: none; z-index: 1;
  animation: pulseGlow 6s ease-in-out infinite alternate;
}
@keyframes pulseGlow {
  from { opacity: 0.55; transform: scale(1); }
  to { opacity: 1; transform: scale(1.08); }
}

.hero-ctas .btn { min-height: 48px; display: inline-flex; align-items: center; }

/* Values row hover */
.value-item { transition: background .25s; }
.value-item:hover { background: rgba(255,31,109,0.08); }

/* Avantage cards */
.avantage-card {
  transition: border-color .25s, box-shadow .3s, transform .3s;
}
.avantage-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255,31,109,0.4);
  box-shadow: 0 16px 40px rgba(13,13,15,0.1);
}

/* Ambiance images zoom */
.ambiance-grid figure { overflow: hidden; }
.ambiance-grid img {
  transition: transform .8s cubic-bezier(.22,1,.36,1);
}
.ambiance-grid figure:hover img { transform: scale(1.06); }

/* Visual bands */
.visual-band {
  transition: background-position .4s ease;
}
.visual-band .band-content {
  animation: none;
}
.visual-band.trail { background: var(--noir); }
.visual-band.team { background: var(--noir); }

/* Offre cards */
.offre-card {
  transition: transform .3s, border-color .3s, box-shadow .35s;
}
.offre-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255,31,109,0.45);
  box-shadow: 0 20px 48px rgba(0,0,0,0.35);
}
.offre-card.featured {
  box-shadow: 0 0 0 1px var(--rose), 0 12px 40px rgba(255,31,109,0.15);
}
.offre-card.featured:hover {
  box-shadow: 0 0 0 1px var(--rose), 0 20px 50px rgba(255,31,109,0.28);
}

/* Steps */
.step { transition: transform .25s; }
.step:hover { transform: translateX(4px); }
.step-num {
  box-shadow: 0 4px 14px rgba(255,31,109,0.35);
  transition: transform .25s;
}
.step:hover .step-num { transform: scale(1.08); }

/* Forms focus glow */
input:focus, select:focus, textarea:focus {
  box-shadow: 0 0 0 3px rgba(255,31,109,0.18);
}

/* Calendar card */
.calendar-wrap {
  box-shadow: 0 16px 48px rgba(0,0,0,0.25);
  border: 1px solid rgba(247,245,244,0.06);
}

/* Footer */
.foot-links a { position: relative; }
.foot-links a:hover { color: var(--rose-soft); }

/* ---------- RESPONSIVE FORT ---------- */
@media (max-width: 860px) {
  .wrap { padding: 0 20px; }
  section { padding: 64px 0; }
  .nav-mobile {
    max-height: calc(100vh - var(--nav-h));
    overflow-y: auto;
    border-top: 1px solid rgba(247,245,244,0.08);
  }
  .nav-mobile a {
    padding: 12px 0;
    border-bottom: 1px solid rgba(247,245,244,0.06);
    min-height: 48px;
    display: flex;
    align-items: center;
  }
  .nav-mobile .btn { margin-top: 12px; width: 100%; text-align: center; justify-content: center; }
  .cover h1 { font-size: clamp(34px, 10vw, 52px); }
  .hero-ctas { flex-direction: column; align-items: stretch; }
  .hero-ctas .btn { width: 100%; justify-content: center; text-align: center; }
  .values-row { margin-top: 40px; }
  .offres-cards { grid-template-columns: 1fr; }
  .offre-card .btn { width: 100%; text-align: center; }
}

@media (max-width: 700px) {
  :root { --nav-h: 64px; }
  .brand-icon { width: 30px; height: 30px; }
  .wordmark.small { font-size: 14px; }
  .section-head { margin-bottom: 32px; }
  .ambiance-grid .main-shot img,
  .ambiance-grid .side-shots img { min-height: 200px; }
  .visual-band { min-height: 280px; padding: 48px 0; }
  .bilan-layout, .contact-grid, .offre-detail-grid { gap: 28px; }
  .calendar-wrap { padding: 20px; }
  .booking-embed iframe { min-height: 520px !important; }
  footer { padding: 32px 0 24px; }
  .foot-grid { flex-direction: column; gap: 16px; }
  .foot-links { gap: 14px 18px; }
}

@media (max-width: 480px) {
  .wrap { padding: 0 16px; }
  section { padding: 52px 0; }
  .cover { padding: calc(var(--nav-h) + 48px) 0 48px; }
  .value-item { flex: 1 1 100%; border-right: none !important; }
  .avantage-card { padding: 22px 18px; }
  .offre-price { font-size: 24px; }
  .btn { padding: 14px 20px; font-size: 13px; }
  .page-hero { padding: calc(var(--nav-h) + 36px) 0 36px; }
}

/* Accessibility — visible focus states */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--rose); outline-offset:3px; border-radius:2px;
}
.nav-links a:focus-visible, .foot-links a:focus-visible{outline-offset:4px;}

/* Prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .cover::after { animation: none; }
  html { scroll-behavior: auto; }
  .btn-rose::after { display: none; }
}

/* Safe areas (notch / home indicator) */
@supports (padding: max(0px)) {
  .nav-inner, .wrap, .nav-mobile {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
  footer { padding-bottom: max(28px, env(safe-area-inset-bottom)); }
}


/* ---------- PARALLAX (CSS scroll-timeline + fallback) ---------- */
@supports (animation-timeline: view()) {
  @keyframes parallax-shift {
    from { transform: translate3d(0, -12%, 0); }
    to   { transform: translate3d(0, 12%, 0); }
  }
  @keyframes parallax-shift-soft {
    from { transform: translate3d(0, -6%, 0); }
    to   { transform: translate3d(0, 6%, 0); }
  }
  @keyframes parallax-shift-micro {
    from { transform: translate3d(0, -4%, 0); }
    to   { transform: translate3d(0, 4%, 0); }
  }

  .parallax-layer[data-parallax],
  .parallax-band-bg {
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-timeline: view();
    animation-range: contain 0% contain 100%;
    will-change: transform;
  }

  /* Vitesses selon data-parallax (approx) */
  .cover-bg.parallax-layer {
    animation-name: parallax-shift;
  }
  .pulse-bg.parallax-layer {
    animation-name: parallax-shift-micro;
  }
  .parallax-band-bg {
    animation-name: parallax-shift-soft;
  }

  /* Désactive le pilotage JS quand CSS scroll-timeline est dispo */
  html.css-scroll-timeline .parallax-layer,
  html.css-scroll-timeline .parallax-band-bg {
    /* animation CSS prime ; JS ne doit pas écraser */
  }
}

.parallax-band-bg {
  position: absolute;
  inset: -20% 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  z-index: 0;
  will-change: transform;
  pointer-events: none;
}
.visual-band::before {
  z-index: 1;
}
.visual-band .wrap {
  z-index: 2;
}
.parallax-layer {
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
}
.parallax-disabled .parallax-layer,
.parallax-disabled .parallax-band-bg {
  transform: none !important;
  animation: none !important;
}

@media (max-width: 700px) {
  .cover-bg { inset: -8% 0; }
  .parallax-band-bg { inset: -12% 0; }
  @supports (animation-timeline: view()) {
    .cover-bg.parallax-layer { animation-name: parallax-shift-soft; }
    .parallax-band-bg { animation-name: parallax-shift-micro; }
  }
}

@media (prefers-reduced-motion: reduce) {
  .parallax-layer,
  .parallax-band-bg {
    transform: none !important;
    animation: none !important;
    will-change: auto;
  }
  .cover-bg { inset: 0; }
  .parallax-band-bg { inset: 0; }
}


/* ============================================================
   RETOURS CLIENTS — section avis
   ============================================================ */

.retours-section {
  background: var(--blanc);
  position: relative;
  overflow: hidden;
}
.retours-section::before {
  content: "";
  position: absolute;
  top: -40px; right: -80px;
  width: 320px; height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,31,109,0.07) 0%, transparent 70%);
  pointer-events: none;
}
.retours-head { max-width: 680px; margin-bottom: 52px; }
.retours-accent { color: var(--rose); }

/* Featured (grand format) */
.retours-featured {
  margin-bottom: 28px;
}
.retours-featured .retours-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 40px 40px 36px;
  background: var(--noir);
  color: var(--blanc);
  border: none;
  border-radius: var(--radius);
  position: relative;
  overflow: hidden;
}
.retours-featured .retours-card::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--rose) 0%, var(--pulse) 100%);
}
.retours-featured .retours-quote-mark {
  color: var(--rose);
  opacity: 0.9;
  font-size: 72px;
  line-height: 0.7;
  margin-bottom: 8px;
}
.retours-featured .retours-text {
  font-size: clamp(18px, 2.4vw, 22px);
  line-height: 1.55;
  color: rgba(247,245,244,0.92);
  max-width: 820px;
}
.retours-featured .retours-stars .star.on { color: var(--rose-soft); }
.retours-featured .retours-name { color: var(--blanc); }
.retours-featured .retours-role { color: rgba(247,245,244,0.55); }
.retours-featured .retours-avatar-init {
  background: var(--noir-2);
  color: var(--rose-soft);
  border-color: rgba(255,180,203,0.25);
}
.retours-featured .retours-result {
  background: rgba(255,31,109,0.18);
  color: var(--rose-soft);
  border-color: rgba(255,31,109,0.35);
}

/* Grid */
.retours-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
@media (max-width: 900px) {
  .retours-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .retours-grid { grid-template-columns: 1fr; }
  .retours-featured .retours-card { padding: 28px 22px 24px; }
}

/* Card */
.retours-card {
  background: var(--blanc);
  border: 1px solid #E6E4E1;
  border-radius: var(--radius);
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: border-color .2s, box-shadow .25s, transform .25s;
  min-height: 100%;
}
.retours-card:hover {
  border-color: rgba(255,31,109,0.3);
  box-shadow: 0 14px 36px rgba(13,13,15,0.07);
  transform: translateY(-3px);
}
.retours-quote-mark {
  font-family: 'Archivo Black', sans-serif;
  font-size: 48px;
  line-height: 0.6;
  color: var(--rose);
  opacity: 0.35;
  margin-bottom: 6px;
  user-select: none;
}
.retours-stars {
  display: flex;
  gap: 3px;
  margin-bottom: 14px;
}
.retours-stars .star {
  font-size: 13px;
  color: #D8D6D3;
  letter-spacing: 0;
}
.retours-stars .star.on {
  color: var(--rose);
}
.retours-text {
  margin: 0 0 22px;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--gris-d);
  flex: 1;
  quotes: none;
}
.retours-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid #EDEBE8;
}
.retours-avatar {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.retours-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.retours-avatar-init {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F0EEEC;
  color: var(--rose);
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  border: 1px solid #E6E4E1;
  border-radius: 50%;
}
.retours-who {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.retours-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--noir);
  line-height: 1.2;
}
.retours-role {
  font-size: 12px;
  color: var(--gris);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.retours-result {
  flex-shrink: 0;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 10px;
  border-radius: 2px;
  background: rgba(0,214,143,0.1);
  color: #00a86b;
  border: 1px solid rgba(0,214,143,0.28);
  font-weight: 500;
  white-space: nowrap;
}

.retours-note {
  margin-top: 36px;
  text-align: center;
  font-size: 12px;
  color: var(--gris);
  letter-spacing: 0.04em;
}

/* Featured card meta border tweak */
.retours-featured .retours-meta {
  border-top-color: rgba(247,245,244,0.12);
}


/* ---------- PERSONAL TRAINER — premium ---------- */
.hero-tags{list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 0; padding:0;}
.hero-tags li{
  font-size:11.5px; text-transform:uppercase; letter-spacing:0.12em; color:var(--blanc);
  padding:7px 14px; border:1px solid rgba(255,180,203,0.45); border-radius:999px;
  background:rgba(13,13,15,0.35); backdrop-filter:blur(4px);
}
.hero-tags li:first-child{border-color:var(--rose); color:var(--rose-soft);}
.coach-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; align-items:center;}
.coach-media{position:relative;}
.coach-media img{
  width:100%; aspect-ratio:4/5; object-fit:cover; display:block; border-radius:var(--radius);
  box-shadow:-14px 14px 0 -2px var(--rose), 0 30px 60px rgba(0,0,0,0.5);
}
.coach-tag{
  font-size:11px; text-transform:uppercase; letter-spacing:0.12em;
  background:var(--noir); color:var(--rose-soft); padding:8px 12px; border-left:3px solid var(--rose);
}
.coach-content h2{font-size:clamp(30px,4.4vw,52px); line-height:1.02; margin:14px 0 18px;}
.coach-content h2 span{color:var(--rose);}
.coach-stats{display:flex; gap:34px; margin:28px 0; padding:22px 0; border-top:1px solid rgba(247,245,244,0.14); border-bottom:1px solid rgba(247,245,244,0.14);}
.coach-stats strong{display:block; font-family:'Archivo Black',sans-serif; font-size:38px; line-height:1; color:var(--blanc);}
.coach-stats span{font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:var(--gris);}
.coach-points{list-style:none; margin:0 0 32px; padding:0; display:flex; flex-direction:column; gap:16px;}
.coach-points li{padding-left:18px; border-left:2px solid var(--rose);}
.coach-points strong{display:block; font-size:15.5px; color:var(--blanc);}
.coach-points span{font-size:14px; color:rgba(247,245,244,0.65);}
.offre-badge{letter-spacing:0.08em;}
@media (max-width:860px){
  .coach-grid{grid-template-columns:1fr; gap:36px;}
  .coach-media{max-width:360px;}
  .coach-stats{gap:20px;}
  .coach-stats strong{font-size:30px;}
}


/* ---------- AVIS CLIENTS : dépôt + photos ---------- */
.review-box{margin-top:36px; text-align:center;}
.review-form{max-width:560px; margin:24px auto 0; text-align:left; background:var(--noir-2); color:var(--blanc); padding:28px; border-radius:var(--radius);}
.review-form h3{color:var(--blanc); font-size:20px; margin-bottom:6px;}
.review-help{font-size:13px; color:rgba(247,245,244,0.6); margin:0 0 18px;}
.review-form label{display:block; font-size:13px; font-weight:700; margin:14px 0 6px;}
.review-form input[type=text], .review-form textarea, .review-form input[type=file]{
  width:100%; padding:12px 14px; font:inherit; color:var(--blanc); background:var(--noir); border:1px solid rgba(247,245,244,0.2); border-radius:var(--radius);}
.review-form input:focus, .review-form textarea:focus{outline:2px solid var(--rose); outline-offset:1px;}
.review-form .hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
.rv-stars{border:0; padding:0; margin:16px 0 0;}
.rv-stars legend{font-size:13px; font-weight:700; padding:0; margin-bottom:6px;}
.rv-stars-row{display:flex; gap:4px;}
.rv-star{background:none; border:0; cursor:pointer; font-size:34px; line-height:1; color:var(--gris-d); padding:2px;}
.rv-star.on{color:var(--rose);}
.rv-star:hover,.rv-star:focus-visible{color:var(--rose-soft);}
.rv-preview{display:flex; gap:8px; margin-top:10px;}
.rv-preview img{width:72px; height:72px; object-fit:cover; border-radius:var(--radius);}
.review-form .rv-consent{display:flex; gap:10px; align-items:flex-start; font-weight:500; font-size:12.5px; color:rgba(247,245,244,0.75);}
.rv-consent input{margin-top:3px; accent-color:var(--rose);}
.rv-msg{min-height:22px; font-size:13.5px; margin:14px 0 10px;}
.rv-msg.ok{color:var(--pulse);} .rv-msg.err{color:var(--rose-soft);}
.retours-photos{display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 4px;}
.retours-photos img{width:96px; height:96px; object-fit:cover; border-radius:var(--radius); display:block; transition:transform .2s;}
.retours-photos a:hover img{transform:scale(1.04);}

/* ---------- ADMIN : modération des avis ---------- */
.rv-badge{display:inline-block; background:var(--rose); color:var(--noir); font-family:'JetBrains Mono',monospace; font-size:12px; padding:2px 8px; border-radius:999px; margin-left:8px; vertical-align:middle;}
.rv-item{border:1px solid #E6E4E1; border-radius:var(--radius); padding:16px; margin-bottom:12px; background:#fff;}
.rv-top{display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:14px;}
.rv-rate{color:var(--rose); letter-spacing:2px;} .rv-date{margin-left:auto; font-size:11px; color:var(--gris);}
.rv-item p{font-size:14px; margin:10px 0; white-space:pre-wrap;}
.rv-thumbs{display:flex; gap:8px; margin-bottom:12px;} .rv-thumbs img{width:150px; height:150px; object-fit:cover; border-radius:var(--radius);}


/* ---------- AVIS : refonte des cartes (v2) ---------- */
.retours-grid{display:block; column-count:3; column-gap:20px;}
@media (max-width:900px){ .retours-grid{column-count:2;} }
@media (max-width:560px){ .retours-grid{column-count:1;} }
.retours-grid .retours-card{break-inside:avoid; margin-bottom:20px; min-height:0; width:100%; display:inline-flex;}
.retours-card{padding:26px 26px 24px; box-shadow:0 1px 0 rgba(13,13,15,0.04);}
.retours-card::before{content:"“"; position:absolute; top:10px; right:20px; font-family:'Archivo Black',sans-serif; font-size:84px; line-height:1; color:var(--rose); opacity:0.12; pointer-events:none;}
.retours-meta{order:-1; margin:0 0 16px; padding:0 0 16px; border-top:0; border-bottom:1px solid #EDEBE8; align-items:center;}
.retours-featured .retours-meta{border-bottom-color:rgba(247,245,244,0.12);}
.retours-name{font-size:17px; letter-spacing:0.01em; line-height:1.25;}
.retours-role{font-size:12.5px; white-space:normal; margin-top:2px;}
.retours-avatar{width:52px; height:52px;}
.retours-stars{margin-bottom:12px;}
.retours-stars .star{font-size:16px;}
.retours-text{font-size:15.5px; line-height:1.7; color:#3a3a40; margin-bottom:18px; flex:none;}
.retours-featured .retours-text{color:rgba(247,245,244,0.92);}
.retours-featured .retours-quote-mark{display:none;}
.retours-featured .retours-card::before{color:var(--rose); opacity:0.25; font-size:120px;}

/* Photos : grandes, cliquables */
.retours-photos{display:grid; gap:6px; margin:2px 0 4px; border-radius:var(--radius); overflow:hidden;}
.retours-photos a{display:block; overflow:hidden; cursor:zoom-in; background:#EDEBE8; position:relative;}
.retours-photos img{width:100%; height:100%; object-fit:cover; display:block; border-radius:0; transition:transform .35s;}
.retours-photos a:hover img{transform:scale(1.05);}
.retours-photos.n1{grid-template-columns:1fr;}
.retours-photos.n1 a{aspect-ratio:4/3;}
.retours-photos.n2{grid-template-columns:1fr 1fr;}
.retours-photos.n2 a{aspect-ratio:1/1.1;}
.retours-photos.n3{grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; aspect-ratio:4/3;}
.retours-photos.n3 a:first-child{grid-row:1 / span 2;}
.retours-featured .retours-photos{max-width:760px;}

/* Lightbox */
.lightbox{position:fixed; inset:0; z-index:9999; background:rgba(13,13,15,0.92); display:flex; align-items:center; justify-content:center; padding:24px; cursor:zoom-out;}
.lightbox img{max-width:100%; max-height:100%; object-fit:contain; border-radius:var(--radius); box-shadow:0 20px 60px rgba(0,0,0,0.6);}
.lightbox-x{position:absolute; top:14px; right:20px; background:none; border:0; color:var(--blanc); font-size:42px; line-height:1; cursor:pointer;}

/* Formulaire : prénom / nom côte à côte */
.rv-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:480px){ .rv-row{grid-template-columns:1fr;} }
.rv-preview img{width:96px; height:96px;}


/* ===== v2 — lisibilité, un seul CTA rose, pouls, preuves ===== */
.on-dark-soft, .section-noir .lead, .section-dark2 .lead, .coach-content .lead{color:rgba(247,245,244,0.88) !important;}
.section-dark2 .offre-desc, .section-dark2 .offres-group-note, .section-dark2 .offre-items li, .coach-points span{color:rgba(247,245,244,0.8) !important;}
.coach-stats span{color:rgba(247,245,244,0.75) !important;}
.btn-line{background:transparent; color:var(--blanc); border:1.5px solid rgba(247,245,244,0.55);}
.btn-line:hover{border-color:var(--rose); color:var(--rose); background:rgba(255,31,109,0.06);}
.offres-top{margin-bottom:8px;}
.offres-more{margin:36px 0 8px;}
#offresAll{margin-top:36px;}
.offres-entreprise{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
  margin-top:48px; padding:28px 30px; border:1px solid rgba(247,245,244,0.18); background:var(--noir);}
.offres-entreprise p{margin:6px 0 0; color:rgba(247,245,244,0.8); font-size:14.5px;}
.offres-entreprise .offres-group-label{margin:0;}
.pulse-divider{display:flex; align-items:center; gap:18px; max-width:1080px; margin:0 auto 44px; padding:0 30px;}
.pulse-divider span{flex:1; height:1px; background:#DAD7D4;}
.proof-strip{background:var(--noir-2); border-top:1px solid rgba(247,245,244,0.12);}
.proof-row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:28px; padding-top:34px; padding-bottom:34px;}
.proof-row strong{display:block; font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:clamp(28px,4vw,40px); color:var(--blanc); line-height:1;}
.proof-row span{display:block; margin-top:8px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--rose-soft);}
.steps3{margin-top:64px; padding-top:40px; border-top:1px solid #DAD7D4;}
.steps3 ol{list-style:none; margin:20px 0 34px; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.steps3 li{display:flex; flex-direction:column; gap:6px;}
.steps3 li .mono{color:var(--rose); font-size:12px;}
.steps3 li strong{font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:17px;}
.steps3 li em{font-style:normal; font-size:14px; color:var(--gris-d); line-height:1.55;}
@media (max-width:720px){ .steps3 ol{grid-template-columns:1fr;} }
.q-progress{position:sticky; top:var(--nav-h,64px); z-index:40; background:var(--noir); padding:10px 30px 12px; border-bottom:1px solid rgba(247,245,244,0.1);}
.q-track{position:relative; height:2px; background:rgba(247,245,244,0.18); margin-bottom:8px;}
.q-fill{height:100%; width:0; background:var(--rose); transition:width .35s ease;}
.q-pulse{position:absolute; top:-6px; left:0; transition:left .35s ease;}
.q-progress .mono{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--rose-soft);}


/* ===== v3 — premium & inspiration flyers ===== */
.cover .eyebrow{font-family:'Barlow Condensed','Archivo Black',sans-serif; font-weight:700; font-size:clamp(16px,2vw,20px); letter-spacing:.08em; color:var(--blanc);}
.cover .eyebrow::before{width:40px;}
.cover .eyebrow::after{content:"";width:40px;height:2px;background:var(--rose);display:inline-block;}
.cover h1 span{position:relative; display:inline-block; z-index:1; color:var(--blanc); font-style:italic; padding:.04em .45em .06em .3em; margin-left:-.1em;}
.cover h1 span::before{content:""; position:absolute; inset:0; z-index:-1; background:var(--rose); transform:skewX(-9deg);
  clip-path:polygon(0 18%,3% 4%,18% 10%,40% 0,66% 8%,88% 2%,100% 14%,97% 48%,100% 84%,84% 96%,58% 90%,30% 100%,8% 92%,2% 100%,5% 60%);}
.cover-bg::before{content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg,rgba(255,122,61,0) 20%,rgba(255,31,109,.20) 62%,rgba(91,43,122,.28) 100%); mix-blend-mode:screen;}
.hero-tags li{border-color:rgba(255,31,109,.6);}
.values-row{border-top:2px solid var(--rose);}
.value-item{text-align:center; border-right:2px solid var(--rose); padding:26px 16px 22px;}
.value-item .ico svg{width:46px; height:46px; fill:none; stroke:var(--blanc); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; margin:0 auto;}
.value-item .ico svg .acc{stroke:var(--rose);}
.value-item h3{font-family:'Barlow Condensed','Archivo Black',sans-serif; font-weight:700; font-size:17px; letter-spacing:.03em; margin-top:12px;}
.value-item p{color:rgba(247,245,244,.78); font-size:12.5px;}
.section-head h2::after{content:""; display:block; width:68px; height:4px; background:var(--rose); transform:skewX(-20deg); margin-top:16px;}
.offre-card.premium{background:linear-gradient(155deg,#17171B 0%,#2b1226 70%,#46183a 100%); border-color:rgba(255,31,109,.5);}
.offre-card.featured{background:linear-gradient(155deg,#17171B 0%,#241222 100%);}
.offre-notice{font-size:12px; line-height:1.5; color:rgba(247,245,244,.72); border-left:2px solid var(--rose); padding-left:10px; margin:0 0 16px;}
.legal-note{margin-top:34px; padding:20px 22px; border:1px solid #DAD7D4; border-left:4px solid var(--rose); background:#fff;}
.legal-note strong{font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:16px;}
.legal-note p{margin:8px 0 10px; font-size:14px; color:var(--gris-d);}
.legal-note ul{margin:0; padding-left:18px; font-size:13.5px; color:var(--gris-d); line-height:1.6;}
.foot-legal{border-top:2px solid var(--rose); margin:28px 0 0; padding-top:14px; font-size:11.5px; line-height:1.7; color:rgba(247,245,244,.7); text-align:center;}
.foot-legal i{font-style:normal; color:var(--rose); margin:0 6px;}
@media (max-width:720px){ .value-item{border-right:none;} .values-row{border-top-width:2px;} }


/* ===== v3 — Rubrique coach (photo réelle) + mise en avant Instagram ===== */
.coach-frame{position:relative;}
.coach-frame::after{
  content:""; position:absolute; inset:0; border-radius:var(--radius); pointer-events:none;
  background:linear-gradient(180deg, rgba(13,13,15,0) 55%, rgba(13,13,15,0.72) 100%);
}
.coach-media img{object-position:50% 40%;}
.coach-badges{
  position:absolute; left:16px; right:16px; bottom:16px; z-index:2;
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
}
.coach-tag{display:inline-block;}
.coach-ig-chip{
  display:inline-flex; align-items:center; gap:8px; font-size:12px; letter-spacing:0.06em;
  color:var(--blanc); background:var(--rose); color:var(--noir); font-weight:500;
  padding:8px 14px; border-radius:999px; text-decoration:none;
  transition:transform .15s, box-shadow .15s;
}
.coach-ig-chip:hover{transform:translateY(-2px); box-shadow:0 8px 24px rgba(255,31,109,0.35);}
.coach-quote{
  font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:clamp(15px,1.8vw,19px);
  letter-spacing:0.02em; color:var(--rose-soft); margin:0 0 18px;
}
.coach-ctas{display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
.btn-ig{display:inline-flex; align-items:center; gap:10px;}
.btn-ig svg{flex-shrink:0;}

/* Carte Instagram */
.ig-card{
  position:relative; overflow:hidden; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px;
  margin-top:64px; padding:30px 34px; text-decoration:none; color:var(--blanc);
  background:var(--noir-2); border:1px solid rgba(247,245,244,0.12); border-left:4px solid var(--rose);
  border-radius:var(--radius); transition:border-color .2s, transform .2s, box-shadow .2s;
}
.ig-card:hover{border-color:var(--rose); transform:translateY(-3px); box-shadow:0 18px 40px rgba(0,0,0,0.45);}
.ig-card-icon{
  display:flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%;
  border:1.5px solid var(--rose); color:var(--rose); flex-shrink:0;
}
.ig-card-body{display:flex; flex-direction:column; gap:6px; position:relative; z-index:1;}
.ig-card-body .eyebrow{margin:0; color:var(--rose-soft);}
.ig-card-body .eyebrow::before{background:var(--rose-soft);}
.ig-card-handle{font-family:'Archivo Black',sans-serif; font-size:clamp(24px,3.4vw,38px); line-height:1; color:var(--blanc);}
.ig-card-text{font-size:14.5px; color:rgba(247,245,244,0.8); max-width:520px;}
.ig-card-cta{
  position:relative; z-index:1; white-space:nowrap; font-weight:800; font-size:12.5px; text-transform:uppercase;
  letter-spacing:0.05em; color:var(--blanc); padding:14px 20px; border:1.5px solid rgba(247,245,244,0.55); border-radius:var(--radius);
  transition:border-color .2s, color .2s, background .2s;
}
.ig-card:hover .ig-card-cta{border-color:var(--rose); color:var(--rose); background:rgba(255,31,109,0.06);}
.ig-card-pulse{position:absolute; right:-10px; bottom:-6px; width:220px; height:48px; opacity:0.18; pointer-events:none;}
.contact-ig{
  display:inline-flex; align-items:center; gap:10px; margin-top:14px; color:var(--rose-soft); text-decoration:none;
  font-family:'JetBrains Mono',monospace; font-size:13.5px; letter-spacing:0.04em;
}
.contact-ig:hover{color:var(--blanc);}
.foot-links a[data-instagram]{color:var(--rose-soft);}
@media (max-width:860px){
  .coach-media{max-width:380px;}
  .ig-card{grid-template-columns:auto 1fr; gap:18px 20px; padding:24px 22px; margin-top:44px;}
  .ig-card-cta{grid-column:1 / -1; text-align:center;}
  .ig-card-icon{width:52px; height:52px;}
}
@media (max-width:480px){
  .coach-ctas .btn{width:100%; justify-content:center; text-align:center;}
}
.ig-card-icon svg{display:block; width:30px; height:30px; overflow:visible; fill:none; stroke:currentColor;}
.ig-card-icon svg circle:last-child{fill:currentColor; stroke:none;}
@media (max-width:860px){ .ig-card-icon svg{width:26px; height:26px;} }
