/* Français avec Alice — style « affiche » : marine dominant, blocs de couleur, grotesque
   Couleurs et polices injectées par le serveur dans :root (modifiables dans l'admin). */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}
body{margin:0;font-family:var(--f-body);font-size:1.0625rem;line-height:1.6;color:var(--navy);background:var(--navy);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--f-display);font-weight:800;line-height:1.02;margin:0;letter-spacing:-.035em;text-wrap:balance}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--cream);color:var(--navy);padding:.6rem 1rem;border-radius:6px}
.skip:focus{top:1rem}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right))}
.hl{font-style:normal;color:var(--coral)}

:root{--ease:cubic-bezier(.22,.8,.24,1);--navy-2:color-mix(in srgb,#fff 6%,var(--navy));--r:18px;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* ---------- Fonds ---------- */
.t-dark{background:var(--navy);color:var(--cream);--line:color-mix(in srgb,var(--cream) 16%,transparent);--muted:color-mix(in srgb,var(--cream) 78%,transparent)}
.t-light{background:var(--cream);color:var(--navy);--line:color-mix(in srgb,var(--navy) 14%,transparent);--muted:color-mix(in srgb,var(--navy) 80%,transparent)}
.t-soft{background:var(--rose);color:var(--navy);--line:color-mix(in srgb,var(--navy) 16%,transparent);--muted:color-mix(in srgb,var(--navy) 82%,transparent)}
.t-gold{background:var(--gold);color:var(--navy)}

/* ---------- Bandes tricolores ---------- */
.tricolor{display:grid;grid-template-columns:1fr 1fr 1fr;height:36px}
.tricolor i:nth-child(1){background:var(--navy);border-top:1px solid color-mix(in srgb,var(--cream) 16%,transparent)}
.tricolor i:nth-child(2){background:var(--cream)}
.tricolor i:nth-child(3){background:var(--coral)}
.tricolor--thin{height:4px}
.tricolor--thin i:nth-child(1){border:0}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.75rem 1.4rem;border-radius:10px;font:600 1rem/1.2 var(--f-body);text-decoration:none;border:2px solid transparent;transition:background-color .25s,color .25s,border-color .25s,transform .25s var(--ease);text-align:center;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn--cta{background:var(--coral);color:var(--navy)}
.btn--cta:hover{background:color-mix(in srgb,var(--coral) 88%,#fff)}
.btn--gold{background:var(--gold);color:var(--navy)}
.btn--gold:hover{background:color-mix(in srgb,var(--gold) 85%,#fff)}
.btn--ghost{border-color:currentColor;color:inherit}
.btn--ghost:hover{background:var(--cream);color:var(--navy);border-color:var(--cream)}
.btn--navy{background:var(--navy);color:var(--cream)}
.btn--navy:hover{background:color-mix(in srgb,var(--navy) 85%,#fff)}
.btn--cream{background:var(--cream);color:var(--navy)}
.btn--cream:hover{background:#fff}
.btn--line{border-color:var(--navy);color:var(--navy)}
.btn--block{width:100%}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* ---------- En-tête ---------- */
.top{position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top);transition:background-color .35s,box-shadow .35s}
.top--dark{background:var(--navy);color:var(--cream)}
.top--light{background:var(--cream);color:var(--navy)}
.top.is-scrolled{box-shadow:0 1px 0 color-mix(in srgb,currentColor 12%,transparent)}
.top--dark.is-scrolled{background:color-mix(in srgb,var(--navy) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:4.75rem;transition:min-height .35s var(--ease)}
.top.is-scrolled .top__in{min-height:4rem}
.brand{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--f-display);font-weight:700;font-size:1.2rem;letter-spacing:-.02em;text-decoration:none;white-space:nowrap}
.brand img{height:40px;width:auto}
.flag{display:inline-grid;grid-template-columns:repeat(3,1fr);width:26px;height:19px;border-radius:5px;overflow:hidden;border:1.5px solid var(--cream);flex:none}
.flag i:nth-child(1){background:var(--navy)}
.flag i:nth-child(2){background:var(--cream)}
.flag i:nth-child(3){background:var(--coral)}
.nav{display:flex;align-items:center;gap:2.25rem}
.nav ul{display:flex;gap:1.75rem}
.nav ul a{position:relative;text-decoration:none;font-size:.95rem;padding:.3rem 0}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav ul a:hover::after{transform:scaleX(1);transform-origin:left}
.nav .btn{min-height:42px;padding:.5rem 1.15rem;font-size:.92rem}
.menu-btn{display:none;background:none;border:0;color:inherit;width:44px;height:44px;padding:10px;cursor:pointer}
.menu-btn i{display:block;height:2px;background:currentColor;margin:6px 0;transition:transform .3s var(--ease)}
.menu-btn[aria-expanded="true"] i:first-of-type{transform:translateY(4px) rotate(45deg)}
.menu-btn[aria-expanded="true"] i:last-of-type{transform:translateY(-4px) rotate(-45deg)}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{position:fixed;inset:calc(4rem + 4px + env(safe-area-inset-top)) 0 auto 0;flex-direction:column;align-items:stretch;gap:1.25rem;padding:1.5rem;background:var(--navy);color:var(--cream);border-top:1px solid color-mix(in srgb,var(--cream) 15%,transparent);visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .3s,transform .3s var(--ease),visibility 0s .3s}
  .nav.is-open{visibility:visible;opacity:1;transform:none;transition:opacity .3s,transform .3s var(--ease)}
  .nav ul{flex-direction:column;gap:0}
  .nav ul a{display:block;padding:.95rem 0;border-bottom:1px solid color-mix(in srgb,var(--cream) 12%,transparent);font-size:1.15rem}
  .nav ul a::after{display:none}
}

/* ---------- Sections ---------- */
.sec{padding:clamp(4.5rem,9vw,7rem) 0}
.sec__head{max-width:44rem;margin-bottom:clamp(2rem,4vw,3rem)}
.sec__title{font-size:clamp(2.4rem,5vw,3.75rem)}
.sec__intro{margin-top:1.1rem;color:var(--muted);font-size:1.1rem;max-width:36rem}
/* Premier panneau clair après la bannière : coins arrondis qui chevauchent le marine */
.sec--hero + .sec:not(.t-dark){position:relative;margin-top:-2.25rem;border-radius:2.25rem 2.25rem 0 0}

/* ---------- Bannière ---------- */
.sec--hero{padding-top:clamp(2.5rem,5vw,4.5rem);padding-bottom:clamp(6rem,10vw,8.5rem)}
.hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:center}
.hero__title{font-size:clamp(3rem,7.4vw,6.4rem);line-height:.96;letter-spacing:-.045em}
.hero__title .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.14em .02em .12em;margin:-.14em -.02em -.12em}
.hero__title .w>span{display:inline-block}
.hero__title .w.hl{color:var(--coral)}
.hero__text{margin-top:1.75rem;max-width:32rem;font-size:1.1rem;color:var(--muted)}
.hero__note{margin-top:1.1rem;font-size:.92rem;color:var(--gold)}
.hero__grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.hero__photo,.photo{position:relative;margin:0;border-radius:var(--r);overflow:hidden;background:var(--navy-2)}
.hero__photo{grid-column:1/-1;aspect-ratio:16/10}
.hero__photo img,.photo img{width:100%;height:100%;object-fit:cover}
.is-empty{background:repeating-linear-gradient(135deg,var(--navy-2) 0 14px,color-mix(in srgb,#fff 9%,var(--navy)) 14px 28px)}
.hero__ph{position:absolute;left:.9rem;bottom:.9rem;padding:.25rem .5rem;background:var(--cream);color:var(--navy);font:500 .75rem/1.2 var(--mono);border-radius:3px}
.hcard{display:flex;flex-direction:column;justify-content:space-between;gap:1.25rem;min-height:9.5rem;padding:1.35rem 1.35rem 1.2rem;border-radius:var(--r)}
.hcard--a{background:var(--cream);color:var(--navy)}
.hcard--b{background:var(--coral);color:var(--navy)}
.hcard__v{margin:0;font-family:var(--f-display);font-weight:800;font-size:clamp(2rem,3.6vw,2.9rem);line-height:.95;letter-spacing:-.035em}
.hcard__l{margin:0;font-size:.85rem;font-weight:500}
@media (max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero__grid{max-width:34rem}
}

/* ---------- Étapes : blocs de couleur ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem}
.step{display:flex;flex-direction:column;padding:1.6rem 1.6rem 1.75rem;border-radius:var(--r);color:var(--navy);min-height:13rem}
.step:nth-child(3n+1){background:var(--gold)}
.step:nth-child(3n+2){background:var(--rose)}
.step:nth-child(3n+3){background:var(--coral)}
.step__num{font-family:var(--f-display);font-weight:800;font-size:3.75rem;line-height:1;letter-spacing:-.04em;margin-bottom:auto;padding-bottom:1.75rem}
.step__title{font-size:1.3rem;letter-spacing:-.02em;margin-bottom:.45rem}
.step__text{font-size:.95rem}

/* ---------- Cours ---------- */
.feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem}
.feat{display:flex;flex-direction:column;padding:1.6rem;border:2px solid var(--navy);border-radius:var(--r);background:var(--cream);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.feat:hover{transform:translateY(-4px);box-shadow:6px 6px 0 var(--navy)}
.tag{align-self:flex-start;padding:.3rem .7rem;border-radius:999px;background:var(--navy);color:var(--cream);font-size:.75rem;font-weight:600;margin-bottom:1rem}
.feat__title{font-size:1.65rem;letter-spacing:-.03em;margin-bottom:.6rem}
.feat__text{font-size:.97rem;color:var(--muted);margin-bottom:1.1rem}
.feat__link{margin-top:auto;font-weight:600;font-size:.92rem;text-decoration:none}
.feat__link:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- Texte + photo ---------- */
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2.5rem,6vw,5rem);align-items:center}
.split--rev .split__copy{order:2}
.prose{margin-top:1.4rem;max-width:36rem;font-size:1.1rem;color:var(--muted)}
.text__media{aspect-ratio:4/5;max-width:26rem;width:100%;justify-self:center}
@media (max-width:860px){.split{grid-template-columns:1fr}.split--rev .split__copy{order:0}.text__media{max-width:20rem;justify-self:start}}

/* ---------- Tarifs ---------- */
.pricing__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.5rem 2rem;margin-bottom:clamp(2rem,4vw,3rem)}
.pricing__head .sec__head{margin-bottom:0}
.pricing__note{margin:0;color:var(--gold);font-size:.9rem;font-weight:500}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16.5rem),1fr));gap:1rem;align-items:stretch}
.plan{display:flex;flex-direction:column;padding:1.75rem 1.6rem 1.6rem;border-radius:var(--r);background:var(--navy-2);color:var(--cream);--muted:color-mix(in srgb,var(--cream) 78%,transparent);transition:transform .4s var(--ease)}
.plan:hover{transform:translateY(-4px)}
.plan--hl{background:var(--gold);color:var(--navy);--muted:color-mix(in srgb,var(--navy) 80%,transparent)}
.plan__top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.plan__name{font-family:var(--f-body);font-size:.95rem;font-weight:600;letter-spacing:0}
.plan__flag{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.plan__price{margin:1.1rem 0 .6rem;display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem}
.plan__price span{font-family:var(--f-display);font-weight:800;font-size:clamp(2.6rem,4.5vw,3.25rem);line-height:1;letter-spacing:-.04em}
.plan__price small{color:var(--muted);font-size:.9rem}
.plan__desc{color:var(--muted);font-size:.9rem;margin-bottom:0}
.plan__list{margin:1rem 0 1.9rem;display:grid;gap:.55rem;font-size:.92rem}
.plan__list li{display:flex;gap:.55rem}
.plan__list li::before{content:"✓";flex:none;font-weight:700}
.plan .btn{margin-top:auto;min-height:46px}

/* ---------- Témoignages ---------- */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16.5rem),1fr));gap:1rem}
.quote{display:flex;flex-direction:column;gap:1rem;padding:1.6rem;border-radius:var(--r);background:var(--cream)}
.quote__stars{margin:0;letter-spacing:.2em;font-size:.8rem}
.quote blockquote{margin:0;flex:1;font-family:var(--f-display);font-weight:500;font-size:1.25rem;line-height:1.3;letter-spacing:-.015em}
.quote blockquote p::before{content:"« "}
.quote blockquote p::after{content:" »"}
.quote__who{display:flex;align-items:center;gap:.75rem;padding-top:.5rem}
.quote__who img,.quote__av{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none}
.quote__av{display:grid;place-items:center;background:var(--navy);color:var(--gold);font-weight:700;font-size:.9rem}
.quote__who p{margin:0;display:flex;flex-direction:column;line-height:1.3}
.quote__who strong{font-weight:700;font-size:.95rem}
.quote__who span{color:var(--muted);font-size:.85rem}

/* ---------- Contact ---------- */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(2.5rem,6vw,5rem);align-items:start}
.contact__title{font-size:clamp(2.75rem,6vw,4.75rem);line-height:.98;letter-spacing:-.045em}
.contact__title .hl{color:var(--gold)}
.contact__text{margin-top:1.4rem;max-width:26rem;color:var(--muted)}
.contact__card{padding:clamp(1.25rem,3vw,1.75rem);border-radius:calc(var(--r) + 4px);background:var(--cream);color:var(--navy)}
.form{display:grid;gap:1rem}
.field{display:grid;gap:.35rem;font-size:.85rem;font-weight:600}
.field input{width:100%;min-height:48px;padding:.6rem .8rem;font:inherit;font-weight:400;font-size:1rem;color:var(--navy);background:var(--cream);border:2px solid var(--navy);border-radius:10px}
.field input:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 60%,transparent)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .btn{margin-top:.5rem;min-height:52px}
.form__note{margin:0;font-size:.8rem;color:color-mix(in srgb,var(--navy) 70%,transparent);text-align:center}
.form__err{margin:0;color:#B3261E;font-size:.9rem;font-weight:500}
.form__ok{padding:1.25rem;border-radius:12px;background:var(--gold);font-weight:600}
@media (max-width:860px){.contact{grid-template-columns:1fr}}

/* ---------- Sections optionnelles (masquées par défaut) ---------- */
.sec--marquee{padding:0}
.mq{overflow:hidden;padding:1.1rem 0}
.mq__track{display:flex;width:max-content;animation:mq 38s linear infinite}
.mq__row{display:flex;align-items:center;flex:none}
.mq__item{font-family:var(--f-display);font-weight:800;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-.03em;white-space:nowrap;padding:0 1.4rem}
.mq__sep{opacity:.7}
@keyframes mq{to{transform:translateX(-50%)}}
.logos{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 3rem}
.logos__list{display:flex;flex-wrap:wrap;gap:1rem 2.5rem}
.logos__list img{height:34px;width:auto}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin:0}
.stat{display:flex;flex-direction:column-reverse;padding:1.5rem;border-radius:var(--r);background:var(--navy-2)}
.t-light .stat,.t-soft .stat{background:var(--cream);border:2px solid var(--navy)}
.stat__value{margin:0;font-family:var(--f-display);font-weight:800;font-size:3rem;line-height:1;letter-spacing:-.04em}
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.faq__list{display:grid;gap:.75rem}
.qa{border:2px solid currentColor;border-radius:14px}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;font-weight:600}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-size:1.4rem;line-height:1;transition:transform .3s var(--ease)}
.qa[open] summary::after{transform:rotate(45deg)}
.qa__a{padding:0 1.25rem 1.2rem;color:var(--muted)}
@media (max-width:860px){.faq{grid-template-columns:1fr}}
.cta{text-align:center;padding:clamp(3rem,7vw,5rem) 1.5rem;border-radius:calc(var(--r) + 6px);background:var(--navy-2)}
.cta__title{font-size:clamp(2.4rem,5.5vw,4rem)}
.cta__text{margin:1.2rem auto 0;max-width:32rem;color:var(--muted)}
.cta .actions{justify-content:center}

/* ---------- Pied de page ---------- */
.foot{padding:1.6rem 0 calc(1.6rem + env(safe-area-inset-bottom))}
.foot__in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem}
.foot__brand{margin:0;font-family:var(--f-display);font-weight:700;letter-spacing:-.02em}
.foot__links{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.9rem}
.foot__links li+li::before{content:"•";margin-right:.35rem;opacity:.7}
.foot__links a{text-decoration:none}
.foot__links a:hover{color:var(--gold)}
.foot__copy{margin-top:1rem;font-size:.82rem;color:var(--muted)}

/* =====================================================================
   Animations (actives seulement si html.anim, posé par site.js)
   ===================================================================== */
.anim [data-reveal]{opacity:0;transform:translateY(34px);filter:blur(10px);transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease);transition-delay:calc(var(--d,0) * 110ms)}
.anim [data-reveal].is-in{opacity:1;transform:none;filter:none}
.anim .feat[data-reveal].is-in,.anim .plan[data-reveal].is-in{transition:opacity 1s var(--ease) calc(var(--d,0) * 110ms),transform .4s var(--ease),filter 1s var(--ease) calc(var(--d,0) * 110ms),box-shadow .4s var(--ease)}
.anim .top{opacity:0;transform:translateY(-12px);transition:opacity .8s var(--ease),transform .8s var(--ease),background-color .35s,box-shadow .35s}
.anim.loaded .top{opacity:1;transform:none}
.anim .hero__title .w>span{transform:translateY(110%);transition:transform 1.05s var(--ease);transition-delay:calc(var(--i) * 70ms + 150ms)}
.anim.loaded .hero__title .w>span{transform:none}
.anim [data-hero]{opacity:0;transform:translateY(24px);filter:blur(8px);transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease)}
.anim [data-hero="1"]{transition-delay:.5s}
.anim [data-hero="2"]{transition-delay:.65s}
.anim [data-hero="3"]{transition-delay:.8s}
.anim .hero__photo[data-hero]{transform:scale(.96) translateY(18px);transition-duration:1.2s;transition-delay:.3s}
.anim.loaded [data-hero]{opacity:1;transform:none;filter:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .mq__track{flex-wrap:wrap;width:auto}
  .mq__row:last-child{display:none}
}

/* Deux sections consécutives de même fond : on ne double pas l'espacement */
.sec.t-light + .sec.t-light,.sec.t-dark + .sec.t-dark:not(.sec--hero),.sec.t-soft + .sec.t-soft{padding-top:0}
