@font-face{font-family:"Young Serif";src:url("/fonts/YoungSerif-Regular.woff2?v=1") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("/fonts/Inter-Regular.woff2?v=1") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("/fonts/Inter-Medium.woff2?v=1") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("/fonts/Inter-SemiBold.woff2?v=1") format("woff2");font-weight:600;font-display:swap}

:root{
  --fond:#0A0D16;
  --blanc:#FFFFFF;
  --cyan:#5BE9FF;
  --cyan-att:#2C7F91;
  --texte:rgba(255,255,255,.80);
  --texte-faible:rgba(255,255,255,.55);
  --ease:cubic-bezier(.215,.61,.355,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:"Inter",system-ui,sans-serif;
  background:var(--fond);
  color:var(--texte);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Fond nébuleuse + scrim ---------- */
.fond{position:fixed;inset:0;z-index:-2;background:var(--fond)}
.fond img{width:100%;height:100%;object-fit:cover;display:block}
.scrim{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse 85% 75% at 50% 42%, rgba(10,13,22,.94) 0%, rgba(10,13,22,.78) 42%, rgba(10,13,22,.18) 100%),
    linear-gradient(to bottom, rgba(10,13,22,.60) 0%, rgba(10,13,22,0) 22%);
}

.page{max-width:1120px;margin:0 auto;padding:0 28px}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ---------- Identité ---------- */
.marque{display:flex;align-items:center;gap:14px;padding:22px 0 0}
.marque img{
  width:46px;height:46px;border-radius:50%;display:block;
  box-shadow:0 0 0 1px rgba(91,233,255,.55), 0 0 24px rgba(91,233,255,.18);
}
.marque span{
  font-family:"Young Serif",Georgia,serif;font-size:19px;color:var(--blanc);line-height:1;
}

/* ---------- Écran 1 : promesse + formulaire ---------- */
.hero{
  display:grid;grid-template-columns:1fr 380px;gap:56px;align-items:center;
  padding:34px 0 0;
}
.surtitre{
  font-weight:600;font-size:12px;color:var(--cyan);
  text-transform:uppercase;letter-spacing:.30em;margin-bottom:18px;
}
h1{
  font-family:"Young Serif",Georgia,serif;font-weight:400;
  font-size:clamp(32px,3.6vw,48px);line-height:1.12;color:var(--blanc);
  letter-spacing:0;margin-bottom:18px;
}
.chapo{font-size:16.5px;max-width:46ch}
.chapo strong{color:var(--blanc);font-weight:500}

/* ---------- Carte formulaire ---------- */
.carte{
  background:rgba(10,13,22,.66);
  border:1px solid rgba(255,255,255,.11);
  border-radius:16px;
  padding:26px;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  box-shadow:0 24px 64px rgba(0,0,0,.48);
}
.carte h2{
  font-family:"Young Serif",Georgia,serif;font-weight:400;font-size:23px;
  color:var(--blanc);line-height:1.25;margin-bottom:20px;
}
label{display:block;font-size:13px;font-weight:500;color:var(--texte-faible);margin-bottom:8px}
input[type=email]{
  width:100%;font-family:inherit;font-size:16px;color:var(--blanc);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;padding:14px 16px;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
input[type=email]::placeholder{color:rgba(255,255,255,.32)}
input[type=email]:focus{
  outline:none;border-color:var(--cyan);background:rgba(255,255,255,.07);
  box-shadow:0 0 0 3px rgba(91,233,255,.13);
}
.consentement{display:flex;gap:11px;align-items:flex-start;margin:18px 0 22px}
.consentement input{
  appearance:none;-webkit-appearance:none;flex:0 0 18px;width:18px;height:18px;margin-top:2px;
  border:1px solid rgba(255,255,255,.28);border-radius:5px;background:rgba(255,255,255,.05);
  cursor:pointer;transition:all .2s var(--ease);
}
.consentement input:checked{background:var(--cyan);border-color:var(--cyan)}
.consentement input:checked::after{
  content:"";display:block;width:5px;height:9px;margin:1px auto 0;
  border:solid var(--fond);border-width:0 2px 2px 0;transform:rotate(45deg);
}
.consentement input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.consentement label{font-size:13px;line-height:1.5;color:var(--texte-faible);margin:0;cursor:pointer}

button{
  width:100%;font-family:inherit;font-size:16px;font-weight:600;
  color:var(--fond);background:var(--cyan);
  border:none;border-radius:10px;padding:16px;cursor:pointer;
  transition:transform .2s var(--ease), box-shadow .25s var(--ease), background .2s var(--ease);
}
button:hover{background:#7DEFFF;box-shadow:0 8px 28px rgba(91,233,255,.28);transform:translateY(-1px)}
button:active{transform:translateY(0)}
button:focus-visible{outline:2px solid var(--blanc);outline-offset:3px}
button:disabled{opacity:.55;cursor:progress;transform:none;box-shadow:none}
.note{font-size:12.5px;color:var(--texte-faible);margin-top:14px;text-align:center;line-height:1.5}

/* Message d'erreur sous le formulaire */
.msg{
  display:none;margin-top:14px;padding:11px 13px;border-radius:9px;
  font-size:13.5px;line-height:1.5;
  background:rgba(216,51,46,.12);border:1px solid rgba(216,51,46,.42);color:#FFB3B0;
}
.msg.visible{display:block}
input[type=email].erreur{border-color:rgba(216,51,46,.65)}

/* ---------- Bénéfices ---------- */
.details{padding:44px 0 0}
.details h3{
  font-weight:600;font-size:12px;color:var(--cyan);
  text-transform:uppercase;letter-spacing:.30em;margin-bottom:22px;
}
.benefices{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.benefices li{padding-left:18px;border-left:1px solid var(--cyan-att);position:relative}
.benefices li::before{content:"";position:absolute;left:-1px;top:0;width:1px;height:18px;background:var(--cyan)}
.benefices b{display:block;color:var(--blanc);font-weight:500;font-size:15.5px;margin-bottom:6px}
.benefices p{font-size:14.5px;line-height:1.5;color:var(--texte-faible)}
.benefices code{
  display:block;margin:8px 0;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.5;
  color:var(--cyan);background:rgba(91,233,255,.06);
  border:1px solid rgba(91,233,255,.16);border-radius:8px;padding:8px 10px;
}

footer{padding:26px 0 22px;font-size:12.5px;color:rgba(255,255,255,.38);text-align:center}
footer a{color:rgba(255,255,255,.55);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.18)}
footer a:hover{color:var(--cyan);border-color:var(--cyan)}

/* ---------- Motion d'entrée ---------- */
@media (prefers-reduced-motion:no-preference){
  .anim{opacity:0;transform:translateY(32px);filter:blur(9px);
        animation:entree 1.2s var(--ease) forwards}
  .d1{animation-delay:.05s}.d2{animation-delay:.16s}.d3{animation-delay:.27s}.d4{animation-delay:.40s}
  .d5{animation-delay:.52s}.d6{animation-delay:.60s}.d7{animation-delay:.68s}.d8{animation-delay:.76s}
  .d9{animation-delay:.88s}
  @keyframes entree{to{opacity:1;transform:none;filter:blur(0)}}
}

/* ---------- Desktop court (portables 720p) : on resserre pour tout garder à l'écran ---------- */
@media (min-width:981px) and (max-height:820px){
  .marque{padding-top:16px}
  .marque img{width:40px;height:40px}
  .marque span{font-size:18px}
  .hero{padding-top:22px;gap:44px}
  h1{font-size:clamp(30px,3.1vw,40px);margin-bottom:15px}
  .surtitre{margin-bottom:14px}
  .chapo{font-size:15.5px}
  .carte{padding:22px}
  .carte h2{font-size:21px;margin-bottom:16px}
  .consentement{margin:14px 0 18px}
  .details{padding-top:32px}
  .details h3{margin-bottom:18px}
  .benefices{gap:26px}
  footer{padding:20px 0 16px}
}

/* ---------- Tablette ---------- */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;gap:34px;align-items:start;padding:20px 0 0}
  .carte{max-width:440px}
  .benefices{grid-template-columns:1fr;gap:26px}
  .details{padding:44px 0 0}
  footer{padding:30px 0 40px}
}

/* ---------- Mobile : tout doit tenir dans le premier écran ---------- */
@media (max-width:600px){
  .page{padding:0 20px}
  .marque{padding-top:22px}
  .marque img{width:40px;height:40px}
  .marque span{font-size:17px}
  .hero{gap:26px;padding:18px 0 40px}
  .surtitre{font-size:11px;margin-bottom:16px}
  h1{font-size:30px;margin-bottom:16px}
  .chapo{font-size:15.5px}
  .carte{padding:22px 20px;max-width:none}
  .carte h2{font-size:20px;margin-bottom:16px}
  input[type=email]{padding:13px 14px}
  button{padding:15px}
}

/* Écrans courts : on comprime encore pour garder le bouton visible */
@media (max-width:600px) and (max-height:740px){
  h1{font-size:27px}
  .chapo{font-size:15px}
  .hero{gap:20px}
}
