:root{--bg:#0A0A0B;--surface:#151517;--text:#F4F4F2;--muted:#A6A6AD;--accent:#FF2B2B;--accent-text:#FFFFFF;--accent-btn:#DC1F1F;--hero-focus:55% 12%}
/* Template LFK landing salle de sport. Couleurs injectées par build.mjs (:root en tête de fichier). */
@font-face{font-family:"Montserrat";font-weight:800;font-display:swap;src:url(/fonts/montserrat-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-weight:900;font-display:swap;src:url(/fonts/montserrat-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:400;font-display:swap;src:url(/fonts/barlow-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:500;font-display:swap;src:url(/fonts/barlow-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url(/fonts/barlow-latin-600-normal.woff2) format("woff2")}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.55 "Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,.done__title{font-family:"Montserrat",system-ui,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.95;margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* Logo */
.topbar{position:absolute;inset:0 0 auto 0;z-index:3;padding:max(18px,env(safe-area-inset-top)) 20px 0}
.logo{width:76px;height:auto;filter:drop-shadow(0 1px 6px rgba(0,0,0,.45))}

/* Hero : la photo n'est jamais recouverte par le texte (mobile : photo puis texte ; ordinateur : texte à gauche, photo à droite) */
.hero{position:relative;display:flex;flex-direction:column;isolation:isolate}
.hero__media{position:relative;height:38svh;min-height:240px;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-focus,50% 35%);filter:grayscale(1) contrast(1.08)}
.hero__content{width:100%;max-width:1180px;margin:0 auto;padding:22px 20px max(32px,env(safe-area-inset-bottom))}
.badge{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;font:600 .8125rem/1 "Barlow",sans-serif;letter-spacing:.22em;text-transform:uppercase}
.badge::before{content:"";width:34px;height:3px;background:var(--accent);box-shadow:0 0 10px var(--accent),0 0 22px var(--accent)}
.hero h1{font-size:clamp(2.35rem,10.6vw,5.6rem);max-width:13ch}
.tagline{margin:14px 0 0;font:800 clamp(1.15rem,4.6vw,1.6rem)/1.15 "Montserrat",sans-serif;text-transform:uppercase;color:var(--accent);letter-spacing:-.01em}
.lead{margin:10px 0 20px;max-width:46ch;color:#dcdce0;font-size:1rem;line-height:1.45}

/* Boutons : larges, au pouce */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 30px;border:0;border-radius:4px;font:800 1rem/1 "Montserrat",sans-serif;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s}
.btn--primary{background:var(--accent-btn,var(--accent));color:var(--accent-text);box-shadow:0 0 0 0 transparent}
.btn--primary:hover{box-shadow:0 0 24px color-mix(in srgb,var(--accent) 60%,transparent)}
.btn--primary:active{transform:scale(.98)}
.btn--primary[disabled]{opacity:.6;cursor:wait}
.btn--ghost{border:2px solid var(--text);color:var(--text);background:transparent}
.btn--full{width:100%}
.hero .btn{width:100%;max-width:420px}

/* Piliers : rythme irrégulier, image en grand, texte à côté (jamais posé sur les angles) */
.pillars{max-width:1180px;margin:0 auto;padding:72px 20px 24px;display:grid;gap:44px}
.pillar__media{overflow:hidden;border-radius:2px;aspect-ratio:4/5;background:var(--surface)}
.pillar__media img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:grayscale(1) contrast(1.06)}
.pillar__body{padding-top:16px;border-top:3px solid var(--accent);margin-top:-3px;position:relative}
.pillar h2{font-size:clamp(1.6rem,6.5vw,2.4rem);padding-top:14px}
.pillar p{margin:8px 0 0;color:var(--muted);font-size:1.125rem}
.pillar--2 .pillar__media{aspect-ratio:3/2}
.pillar--3 .pillar__media{aspect-ratio:1/1}

/* Formulaire */
.join{padding:64px 20px 80px;background:var(--surface);scroll-margin-top:0}
.join__inner{max-width:560px;margin:0 auto}
.join h2{font-size:clamp(2rem,8vw,3rem)}
.join__intro{margin:12px 0 24px;color:var(--muted)}
label{display:block;margin-bottom:14px;font-weight:600;font-size:.9375rem}
input:not([type=checkbox]){display:block;width:100%;margin-top:6px;min-height:54px;padding:0 14px;border:1.5px solid #3a3a40;border-radius:4px;background:var(--bg);color:var(--text);font:500 1.0625rem "Barlow",sans-serif}
input:not([type=checkbox]):focus{border-color:var(--accent);outline:none}
input[aria-invalid=true]{border-color:#ff6b6b}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.consent{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:.875rem;color:var(--muted);line-height:1.45;margin:6px 0 18px}
.consent input{flex:none;width:24px;height:24px;margin:0;accent-color:var(--accent)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.error{color:#ff8080;font-weight:600;margin:0 0 14px}
.disclaimer{font-size:.8125rem;color:var(--muted);margin:14px 0 0;line-height:1.45}

/* Étape 2 */
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0}
.progress{height:4px;background:#2a2a2f;margin-bottom:22px;border-radius:2px;overflow:hidden}
.progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .3s ease}
.q__label{font:800 1.35rem/1.15 "Montserrat",sans-serif;text-transform:none;letter-spacing:-.01em;margin:0 0 6px}
.q__hint{color:var(--muted);font-size:.875rem;margin:0 0 14px}
.opts{display:grid;gap:10px;margin-top:14px}
.opt{display:flex;align-items:center;min-height:56px;padding:0 18px;border:1.5px solid #3a3a40;border-radius:4px;background:var(--bg);color:var(--text);font:600 1.0625rem "Barlow",sans-serif;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.opt:hover{border-color:#6a6a72}
.opt[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--bg))}
.q__next{margin-top:16px}
.q__back{background:none;border:0;color:var(--muted);font:500 .9375rem "Barlow",sans-serif;padding:14px 0;cursor:pointer;text-decoration:underline}

/* Fin */
.step--done{text-align:left}
.step--done:focus{outline:none}
.done__title{font-size:clamp(2rem,8vw,3rem);margin-bottom:12px}
.step--done .btn{margin-top:22px}

.footer{padding:36px 20px 48px;max-width:1180px;margin:0 auto;color:var(--muted);font-size:.8125rem}
.footer details{margin-top:14px}
.footer summary{cursor:pointer;text-decoration:underline}
.copy{margin-top:18px}

@media (min-width:900px){
  .topbar{padding:28px 40px 0}
  .logo{width:120px}
  .hero{flex-direction:row;min-height:min(100svh,920px)}
  .lead{font-size:1.125rem}
  .hero h1{font-size:clamp(3rem,4.6vw,4.6rem);max-width:none}
  .hero__media{order:2;flex:0 0 50%;height:auto;min-height:100%}
  .hero__content{order:1;flex:1;align-self:center;max-width:none;margin:0;padding:140px 56px 80px max(40px,calc((100vw - 1180px)/2))}
  .hero .btn{width:auto}
  .pillars{grid-template-columns:7fr 5fr;grid-template-rows:auto auto;column-gap:56px;row-gap:64px;padding:110px 40px 40px}
  .pillar--1 .pillar__media{aspect-ratio:4/5}
  .pillar--2{align-self:end;padding-bottom:12%}
  .pillar--3{grid-column:1/-1;display:grid;grid-template-columns:4fr 8fr;column-gap:56px;align-items:end}
  .pillar--3 .pillar__media{order:2;aspect-ratio:16/9}
  .pillar--3 .pillar__body{order:1;margin-top:0;margin-bottom:8%}
  .join{padding:100px 40px 110px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
