:root{
  --gold:#A8985c;
  --teal:#1e565c;
  --light:#f2ffff;
  --sand:#a87e60;
  --blue:#488c94;
  --peach:#f9c5a2;
  --orange:#ff914d;
  --slate:#3e6677;
  --clay:#dd915f;
  --ink:#153e43;
  --muted:#5f777a;
  --white:#ffffff;
  --shadow:0 22px 60px rgba(30,86,92,.16);
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--light);
  font-family:"Franklin Gothic Book", "Franklin Gothic Medium", Arial, sans-serif;
  line-height:1.6;
}
a{color:inherit}
img{max-width:100%;display:block}
.container{width:min(1120px, calc(100% - 40px));margin:0 auto}
.skip-link{position:absolute;left:-999px;top:16px;background:var(--teal);color:#fff;padding:10px 14px;border-radius:10px;z-index:100}
.skip-link:focus{left:16px}
.site-header{position:sticky;top:0;z-index:10;background:rgba(242,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(30,86,92,.12)}
.header-inner{display:flex;justify-content:space-between;align-items:center;padding:14px 0;gap:24px}
.brand img{height:56px;width:auto}
.nav{display:flex;align-items:center;gap:24px;font-size:.96rem;color:var(--teal)}
.nav a{text-decoration:none;font-weight:700}
.nav-cta{background:var(--orange);color:#fff!important;padding:10px 16px;border-radius:999px;box-shadow:0 10px 20px rgba(255,145,77,.25)}
.section{padding:86px 0}
.hero{padding:70px 0 92px;background:radial-gradient(circle at top right, rgba(255,145,77,.18), transparent 35%), linear-gradient(135deg, #f2ffff 0%, #ffffff 100%)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:54px;align-items:center}
.eyebrow,.section-kicker{letter-spacing:.13em;text-transform:uppercase;color:var(--blue);font-weight:800;font-size:.78rem;margin:0 0 14px}
h1,h2,h3,h4{font-family:"Eras Demi ITC", "Franklin Gothic Medium", Arial, sans-serif;line-height:1.12;color:var(--teal);margin:0}
h1{font-size:clamp(2.35rem, 5vw, 4.85rem);letter-spacing:-.045em;max-width:860px}
h2{font-size:clamp(1.8rem, 3vw, 3rem);letter-spacing:-.03em}
h3{font-size:1.35rem}
h4{font-size:1.02rem;color:var(--ink)}
.lead{font-size:1.22rem;color:var(--muted);max-width:680px;margin:26px 0 0}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:15px 22px;font-weight:800;text-decoration:none;transition:transform .2s ease, box-shadow .2s ease, background .2s ease;border:2px solid transparent;text-align:center}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--orange);color:#fff;box-shadow:0 16px 30px rgba(255,145,77,.28)}
.button-secondary{background:#fff;color:var(--teal);border-color:rgba(30,86,92,.16);box-shadow:0 12px 26px rgba(30,86,92,.1)}
.trust-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.trust-row span{background:rgba(72,140,148,.1);color:var(--teal);border:1px solid rgba(72,140,148,.18);padding:8px 12px;border-radius:999px;font-weight:700;font-size:.92rem}
.hero-card{background:#fff;border-radius:32px;box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(30,86,92,.12);transform:rotate(1deg)}
.hero-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.hero-card-text{display:flex;flex-direction:column;gap:4px;padding:18px 20px;background:linear-gradient(135deg, rgba(242,255,255,.9), #fff)}
.hero-card-text strong{font-size:1.15rem;color:var(--teal)}
.hero-card-text span{color:var(--muted)}
.two-columns{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center}
.two-columns.align-start{align-items:start}
.text-block p{font-size:1.08rem;color:var(--muted);margin:0 0 16px}
.soft-bg{background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(249,197,162,.18))}
.section-heading{max-width:760px;margin-bottom:34px}
.section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}
.section-heading p{color:var(--muted);font-size:1.05rem}
.cards{display:grid;gap:22px}.cards.three{grid-template-columns:repeat(3,1fr)}
.card,.program-day,.price-card,.info-item{background:#fff;border:1px solid rgba(30,86,92,.12);border-radius:var(--radius);padding:28px;box-shadow:0 14px 40px rgba(30,86,92,.08)}
.card-number{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;background:rgba(255,145,77,.15);color:var(--orange);border-radius:50%;font-weight:900;margin-bottom:18px}
.card p,.program-day li,.info-item span,.price-card p,.trainer-content p,.split-card p{color:var(--muted)}
.split-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:start;background:#fff;border-radius:32px;padding:42px;box-shadow:var(--shadow);border:1px solid rgba(30,86,92,.1)}
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.check-list li{position:relative;padding-left:34px;font-weight:700;color:var(--teal)}
.check-list li::before{content:"✓";position:absolute;left:0;top:-2px;width:24px;height:24px;background:var(--orange);color:#fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem}
.objectives-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.objectives-grid div{background:#fff;border-left:5px solid var(--orange);padding:18px;border-radius:16px;box-shadow:0 10px 30px rgba(30,86,92,.07);font-weight:700;color:var(--teal)}
.program-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.day-label{display:inline-flex;background:var(--teal);color:#fff;border-radius:999px;padding:8px 13px;font-weight:800;margin-bottom:18px;font-size:.9rem}
.program-day h3{margin-bottom:24px}.module{border-top:1px solid rgba(30,86,92,.12);padding-top:18px;margin-top:18px}.module ul{margin:10px 0 0;padding-left:20px}
.center-actions,.centered-actions{display:flex;justify-content:center;margin-top:32px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-item{padding:22px}.info-item strong{display:block;color:var(--teal);font-size:1.02rem;margin-bottom:6px}.info-item span{display:block}
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.price-card h2 span{color:var(--orange)}.price-detail{font-weight:800;color:var(--teal)!important;font-size:1.12rem}.small-note{font-size:.92rem}.main-price{border-top:6px solid var(--orange)}.funding{border-top:6px solid var(--blue)}
.trainer-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:center}.trainer-photo img{border-radius:32px;box-shadow:var(--shadow);border:1px solid rgba(30,86,92,.12)}
.cta-section{padding-top:20px}.cta-box{text-align:center;background:linear-gradient(135deg, var(--teal), var(--slate));color:#fff;border-radius:36px;padding:56px 28px;box-shadow:var(--shadow)}.cta-box h2,.cta-box .section-kicker{color:#fff}.cta-box p{max-width:720px;margin:16px auto;color:rgba(255,255,255,.84)}.cta-box .button-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.32)}.contact-lines{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:26px}.contact-lines a{color:#fff;font-weight:800;text-decoration:none}
.footer{background:#133d42;color:rgba(255,255,255,.84);padding:34px 0}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.footer strong{color:#fff}.footer p{margin:4px 0}.footer a{color:#fff}
.legal{background:#fff}.legal-card{background:#fff;border-radius:28px;padding:42px;box-shadow:var(--shadow);border:1px solid rgba(30,86,92,.1)}.legal-card h1{font-size:2.6rem}.legal-card h2{font-size:1.5rem;margin-top:30px}.legal-card p,.legal-card li{color:var(--muted)}
@media (max-width: 900px){
  .nav{display:none}.hero-grid,.two-columns,.split-card,.program-grid,.pricing-grid,.trainer-grid,.footer-grid{grid-template-columns:1fr}.cards.three,.objectives-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}.section{padding:62px 0}.hero{padding-top:50px}.hero-card{transform:none}.split-card{padding:28px}.brand img{height:48px}
}
@media (max-width: 560px){
  .container{width:min(100% - 28px, 1120px)}.button{width:100%}.hero-actions{width:100%}h1{font-size:2.2rem}.lead{font-size:1.05rem}.cta-box{padding:38px 18px;border-radius:26px}.contact-lines{flex-direction:column;gap:8px}.legal-card{padding:26px}
}

/* --- Correction Nexlogical : justification des textes descriptifs --- */
.text-block p,
.section-heading p,
.card p,
.program-day p,
.program-day li,
.info-item span,
.price-card p,
.trainer-content p,
.split-card p,
.cta-box p,
.legal-card p,
.legal-card li,
.hero-card-text span,
.lead {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

/* Les éléments courts restent alignés à gauche pour garder un rendu naturel */
.hero-card-text strong,
.info-item strong,
.price-detail,
.small-note,
.contact-lines a,
.footer p {
  text-align: left;
}

/* Sur mobile, on évite les grands espaces créés par le texte justifié */
@media (max-width: 560px) {
  .text-block p,
  .section-heading p,
  .card p,
  .program-day p,
  .program-day li,
  .info-item span,
  .price-card p,
  .trainer-content p,
  .split-card p,
  .cta-box p,
  .legal-card p,
  .legal-card li,
  .hero-card-text span,
  .lead {
    text-align: left;
    hyphens: none;
  }
}
