/* === RESET & BASE === */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body),'Segoe UI',system-ui,sans-serif;
  line-height:1.65;
  color:var(--text);
  background-color:var(--bg);
  min-height:100vh;
  display:flex;
  flex-direction:column;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* === HEADER === */
.site-header{
  background:var(--header-bg);
  color:var(--header-text);
  position:sticky;
  top:0;
  z-index:1000;
  box-shadow:0 1px 0 var(--border-light),0 4px 24px var(--shadow);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:1280px;
  margin:0 auto;
  padding:0 1.25rem;
  height:90px;
}
.site-logo{
  font-size:1.35rem;
  font-weight:800;
  color:var(--header-text);
  text-decoration:none;
  letter-spacing:-0.5px;
  display:flex;
  align-items:center;
  gap:.5rem;
}
.site-logo span{
  background:var(--gradient-card);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  font-weight:900;
}

/* === NAVIGATION === */
.nav-list{
  display:flex;
  list-style:none;
  gap:.15rem;
  overflow-x:auto;
  scrollbar-width:none;
}
.nav-list::-webkit-scrollbar{display:none}
.nav-list a{
  color:var(--nav-link);
  text-decoration:none;
  padding:.5rem .85rem;
  border-radius:var(--radius-sm);
  font-size:.85rem;
  font-weight:500;
  white-space:nowrap;
  transition:all .2s;
  display:block;
}
.nav-list a:hover{color:var(--nav-link-hover);background:var(--nav-active-bg)}
.nav-list a.active{color:var(--nav-link-hover);background:var(--nav-active-bg);font-weight:600}

.hamburger{
  display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  background:none;
  border:none;
  padding:8px;
  z-index:1002;
}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.hamburger span{
  display:block;
  width:24px;
  height:2px;
  background:var(--header-text);
  border-radius:2px;
  transition:all .3s;
}

/* === IMAGES RESPONSIVE === */
img{max-width:100%;height:auto;display:block}
.page-content img,
.page-content iframe,
.page-content video{max-width:100%;height:auto;border-radius:var(--radius-sm)}
.page-content iframe{aspect-ratio:16/9;width:100%}

/* === HERO === */
.hero{position:relative;background:var(--hero-bg);color:var(--hero-text);text-align:center;overflow:hidden;min-height:380px;display:flex;align-items:center;justify-content:center;padding:4rem 1.5rem;margin-top:0}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;z-index:0;filter:brightness(0.55)}
.hero .hero-content{position:relative;z-index:1;max-width:800px;margin:0 auto}
.hero h1{font-size:clamp(1.6rem,5vw,3rem);font-weight:900;line-height:1.15;margin-bottom:1rem;color:var(--hero-text);letter-spacing:-1px}
.hero p{font-size:1.1rem;opacity:.9;margin-bottom:2rem;max-width:600px;margin-left:auto;margin-right:auto;color:var(--hero-subtitle)}
.hero .hero-btns{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}

/* === BUTTONS === */
.btn-primary{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:var(--btn-primary);
  color:var(--btn-text);
  padding:.8rem 2rem;
  border-radius:var(--radius-md);
  text-decoration:none;
  font-weight:700;
  font-size:.95rem;
  transition:all .25s;
  box-shadow:0 4px 16px var(--shadow-lg);
  border:none;
  cursor:pointer;
}
.btn-primary:hover{background:var(--btn-hover);transform:translateY(-2px);box-shadow:0 8px 28px var(--shadow-lg)}
.btn-ghost{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:var(--btn-ghost);
  color:var(--hero-text);
  padding:.7rem 1.8rem;
  border-radius:var(--radius-md);
  text-decoration:none;
  font-weight:600;
  font-size:.9rem;
  transition:all .25s;
  border:1px solid rgba(255,255,255,.2);
  cursor:pointer;
}
.btn-ghost:hover{background:var(--btn-ghost-hover);border-color:rgba(255,255,255,.35)}

/* === MAIN CONTENT === */
main{flex:1;max-width:1280px;width:100%;margin:0 auto;padding:0}

/* === PAGE CONTENT === */
.page-content{
  background:var(--surface);
  padding:3rem 1.5rem;
}
.page-content h2{
  color:var(--text);
  margin-bottom:1rem;
  font-size:clamp(1.3rem,3vw,1.8rem);
  font-weight:800;
}
.page-content h3{color:var(--text);margin-bottom:.75rem;font-weight:700}
.page-content ul{padding-left:1.5rem;margin:1rem 0}
.page-content li{margin-bottom:.5rem}
.page-content a{color:var(--primary);text-decoration:none;font-weight:600}

/* === SECTION === */
.section{padding:4rem 1.5rem}
.section-alt{background:var(--bg-alt);position:relative}
.section-alt::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-card);opacity:.6}
.section-title{
  text-align:center;
  margin-bottom:2.5rem;
}
.section-title h2{
  font-size:clamp(1.4rem,3vw,2rem);
  font-weight:900;
  color:var(--text);
  margin-bottom:.5rem;
}
.section-title p{
  color:var(--text-light);
  font-size:1rem;
  max-width:600px;
  margin:0 auto;
}
.section-divider{
  width:60px;
  height:4px;
  background:var(--gradient-card);
  border-radius:2px;
  margin:1rem auto;
}

/* === FEATURES GRID === */
.features-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.5rem;
  max-width:1200px;
  margin:0 auto;
}
.feature-card{
  background:var(--surface);
  padding:2rem 1.5rem;
  border-radius:var(--radius-md);
  box-shadow:0 1px 3px var(--shadow);
  transition:all .3s;
  border:1px solid var(--border-light);
  position:relative;
  overflow:hidden;
}
.feature-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:var(--gradient-card);
}
.feature-card:hover{
  transform:var(--card-hover);
  box-shadow:0 12px 40px var(--shadow-lg);
  border-color:var(--card-border);
}
.feature-card .icon{
  font-size:2rem;
  margin-bottom:1rem;
  display:block;
}
.feature-card h3{
  font-size:1.1rem;
  font-weight:700;
  margin-bottom:.5rem;
  color:var(--text);
}
.feature-card p{color:var(--text-light);font-size:.9rem;line-height:1.6}

/* === STATS === */
.stats-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:1.5rem;
  max-width:1000px;
  margin:0 auto;
}
.stat-card{
  text-align:center;
  padding:2rem 1.5rem;
  background:var(--surface);
  border-radius:var(--radius-md);
  box-shadow:0 2px 12px var(--shadow);
  border:1px solid var(--border-light);
}
.stat-card .stat-num{
  font-size:2.5rem;
  font-weight:900;
  background:var(--gradient-card);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.stat-card .stat-label{color:var(--text-light);font-size:.85rem;margin-top:.25rem;font-weight:500}

/* === TESTIMONIALS === */
.testimonials-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.5rem;
  max-width:1200px;
  margin:0 auto;
}
.testimonial-card{
  background:var(--surface);
  padding:2rem;
  border-radius:var(--radius-md);
  box-shadow:0 2px 8px var(--shadow);
  border:1px solid var(--border-light);
}
.testimonial-card .quote{
  font-style:italic;
  font-size:.95rem;
  line-height:1.7;
  color:var(--text);
  margin-bottom:1rem;
}
.testimonial-card .author{
  font-weight:700;
  color:var(--primary);
  font-size:.85rem;
}
.testimonial-card .role{
  font-size:.75rem;
  color:var(--text-light);
  margin-top:.15rem;
}

/* === PRICE CARDS === */
.price-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.5rem;
  max-width:1000px;
  margin:0 auto;
}
.price-card{
  background:var(--surface);
  border-radius:var(--radius-md);
  padding:2rem;
  text-align:center;
  box-shadow:0 2px 8px var(--shadow);
  border:1px solid var(--border-light);
  transition:all .3s;
  position:relative;
}
.price-card.featured{
  border-color:var(--primary);
  box-shadow:0 8px 40px var(--shadow-lg);
  transform:scale(1.03);
}
.price-card .price{
  font-size:3rem;
  font-weight:900;
  background:var(--gradient-card);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.price-card .price-period{color:var(--text-light);font-size:.85rem}
.price-card .features-list{list-style:none;padding:0;margin:1.5rem 0;text-align:left}
.price-card .features-list li{padding:.4rem 0;color:var(--text-light);font-size:.85rem}
.price-card .features-list li::before{content:'✓ ';color:var(--primary);font-weight:700}

/* === CTA BANNER === */
.cta-banner{
  background:var(--gradient-hero);
  color:var(--hero-text);
  padding:3.5rem 1.5rem;
  text-align:center;
}
.cta-banner h2{
  font-size:clamp(1.4rem,3vw,2rem);
  font-weight:900;
  color:var(--hero-text);
  margin-bottom:.75rem;
}
.cta-banner p{color:var(--hero-subtitle);margin-bottom:1.5rem;font-size:1.05rem}

/* === CONTACT FORM === */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:start;
  max-width:1100px;
  margin:0 auto;
}
.contact-form input,
.contact-form textarea,
.contact-form select{
  width:100%;
  padding:.7rem 1rem;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  font-size:.9rem;
  margin-bottom:.8rem;
  font-family:inherit;
  transition:border .2s;
  background:var(--surface);
  color:var(--text);
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px var(--border-light);
}
.contact-info p{margin-bottom:.75rem;font-size:.95rem}

/* === IMAGE GRID === */
.image-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1rem;
  max-width:1200px;
  margin:0 auto;
}
.image-grid img{
  width:100%;
  height:200px;
  object-fit:cover;
  border-radius:var(--radius-md);
  transition:transform .3s;
}
.image-grid img:hover{transform:scale(1.03)}

/* === SEARCH === */
.search-bar{
  display:flex;
  gap:.5rem;
  align-items:center;
}
.search-bar input{
  padding:.45rem .85rem;
  border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.08);
  color:var(--header-text);
  font-size:.85rem;
  width:180px;
  outline:none;
  transition:all .2s;
}
.search-bar input::placeholder{color:rgba(255,255,255,.4)}
.search-bar input:focus{border-color:var(--accent);background:rgba(255,255,255,.12)}
.search-bar button{
  background:var(--btn-primary);
  color:var(--btn-text);
  border:none;
  padding:.45rem .85rem;
  border-radius:var(--radius-sm);
  cursor:pointer;
  font-size:.8rem;
  font-weight:600;
  white-space:nowrap;
}
.search-bar button:hover{background:var(--btn-hover)}

/* === SEARCH + TICKERS === */
.search-row{display:flex;align-items:center;gap:.65rem;flex-wrap:nowrap;padding:.4rem 0 .2rem}
.info-link{color:var(--accent);font-size:.82rem;font-weight:500;text-decoration:none;white-space:nowrap;padding:.2rem .6rem;border-radius:12px;background:rgba(255,255,255,.06);transition:all .2s}
.info-link:hover{text-decoration:none;opacity:1;background:rgba(255,255,255,.14)}
.header-cta{display:inline-block;background:var(--primary);color:#000;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;padding:.55rem 1.2rem;border-radius:24px;text-decoration:none;white-space:nowrap;transition:all .2s}
.header-cta:hover{background:var(--btn-hover);transform:translateY(-1px)}



/* === FOOTER === */
.site-footer{
  background:var(--footer-bg);
  color:var(--footer-text);
  padding:3rem 1.5rem 1.5rem;
  margin-top:auto;
}
.footer-inner{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:2rem;
  padding-bottom:2rem;
  border-bottom:1px solid var(--footer-border);
}
.footer-col h4{
  color:var(--footer-title);
  font-size:.95rem;
  margin-bottom:1rem;
  font-weight:700;
}
.footer-col a{
  display:block;
  color:var(--footer-text);
  text-decoration:none;
  font-size:.85rem;
  padding:.3rem 0;
  transition:color .2s;
}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{
  text-align:center;
  padding-top:1.5rem;
  font-size:.8rem;
  color:var(--footer-text);
}

/* === UTILS === */
.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}
.text-center{text-align:center}
.mt-1{margin-top:1rem}
.mt-2{margin-top:2rem}
.mb-1{margin-bottom:1rem}
.not-found{text-align:center;padding:4rem 1.5rem}
.not-found h2{font-size:2.5rem;font-weight:900;margin-bottom:.5rem}
.not-found p{color:var(--text-light);margin-bottom:1.5rem}

/* === ANIMATIONS === */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes pulse{
  0%,100%{opacity:1}
  50%{opacity:.7}
}
.animate-fade{animation:fadeUp .6s ease-out}

/* === MOBILE === */
@media(max-width:768px){
  .hamburger{display:flex}
  .nav-wrapper{
    position:fixed;
    top:90px;left:0;right:0;
    height:calc(100vh - 90px);
    height:calc(100dvh - 90px);
    background:var(--header-bg);
    transform:translateX(-100%);
    transition:transform .3s ease;
    overflow-y:auto;
    z-index:1001;
  }
  .nav-wrapper.open{transform:translateX(0)}
  .nav-list{flex-direction:column;padding:1rem;gap:.25rem}
  .nav-list a{padding:.8rem 1rem;font-size:1rem}
  .search-row{flex-direction:column;align-items:stretch;gap:.4rem;padding:0 1rem 1rem}
  .search-bar input{flex:1;width:auto}
  .info-link{text-align:center;font-size:.8rem}
  .hero{padding:2.5rem 1rem;min-height:320px}
  .hero h1{font-size:1.5rem}
  .hero p{font-size:.95rem}
  .hero .hero-btns{flex-direction:column;align-items:center}
  .nav-wrapper{overflow-x:hidden}
  .contact-grid{grid-template-columns:1fr;gap:1.5rem}
  .page-content{padding:2rem 1rem}
  .section{padding:2.5rem 1rem}
  .header-inner{padding:0 .75rem}
  .price-card.featured{transform:none}
  .site-logo{font-size:1rem;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* === FIT PROGRESS : ONGLETS PACKS === */
.fp-tabs{margin-top:1rem}
.fp-tab-labels{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:2rem}
.fp-tab-btn{padding:.6rem 1.4rem;border-radius:30px;cursor:pointer;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;border:2px solid var(--border);background:#fff;color:var(--text);transition:all .2s}
.fp-tab-btn:hover{border-color:var(--primary)}
.fp-tab-btn.active{background:var(--primary);border-color:var(--primary);color:#000}
.fp-tab-panel{display:none}
.fp-tab-panel.active{display:block}

/* === FIT PROGRESS : CARTES DE PRIX === */
.fp-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;align-items:stretch}
.fp-price{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:2rem 1.5rem;text-align:center;display:flex;flex-direction:column}
.fp-price-tag{display:inline-block;background:var(--primary);color:#000;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .9rem;border-radius:20px;margin-bottom:1rem;align-self:center}
.fp-price h3{font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:1rem}
.fp-price-val{display:flex;align-items:baseline;justify-content:center;gap:.2rem;margin-bottom:1.2rem}
.fp-price-val .cur{font-size:1.3rem;font-weight:800;color:var(--primary)}
.fp-price-val .num{font-size:3rem;font-weight:900;line-height:1}
.fp-price-val .period{font-size:.9rem;color:var(--text-light);font-weight:700}
.fp-price ul{list-style:none;margin:0 0 1.5rem;padding:0;text-align:left;font-size:.85rem;line-height:1.7;color:var(--text-light);flex:1}
.fp-price ul li{padding:.35rem 0;border-bottom:1px dashed var(--border)}
.fp-price ul li:last-child{border-bottom:none}
.fp-price-btn{display:inline-block;background:#343d10;color:#000;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;padding:.7rem 1.4rem;border-radius:24px;text-decoration:none;transition:all .2s}
.fp-price-btn:hover{background:var(--btn-hover);transform:translateY(-2px)}
.fp-price-featured{border:2px solid var(--primary);box-shadow:0 10px 36px var(--shadow-lg)}
@media(max-width:768px){
  .fp-tab-btn{flex:1 1 40%;font-size:.75rem;padding:.5rem .8rem}
}

/* === FIT PROGRESS : fond visible (contenu transparent) === */
.page-content{background:transparent}

/* === FIT PROGRESS : HERO SLIDER === */
.fp-hero{position:relative;min-height:82vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:#0d0d0d}
.fp-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease}
.fp-slide.active{opacity:1}
.fp-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,.22) 55%,rgba(0,0,0,.5) 100%);z-index:1}
.fp-hero .hero-content{position:relative;z-index:2}

/* === FIT PROGRESS : ENTRAINEMENTS responsive === */
.fp-entr{display:grid;grid-template-columns:1fr 240px 1fr;gap:2.5rem;align-items:start}
.fp-entr img{border-radius:16px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,.15)}

/* === FIT PROGRESS : 2 colonnes responsive === */
.fp-split{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}
.fp-split img{border-radius:16px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,.15)}

/* === FIT PROGRESS : VIDÉOS galerie === */
.fp-videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem}
.fp-videos video{width:100%;aspect-ratio:auto;object-fit:cover;border-radius:12px;background:#000;display:block;box-shadow:0 8px 32px rgba(0,0,0,.15)}

@media(max-width:768px){
  .container{padding:0 .75rem}
  .page-content{padding:2rem .75rem}
  .section{padding:2.5rem .75rem}
  .fp-hero{min-height:60vh}
  .fp-entr{grid-template-columns:1fr;gap:1.75rem}
  .fp-entr img{order:-1;max-width:100%}
  .fp-split{grid-template-columns:1fr;gap:1.75rem}
}
