/* ============ Synodeo · landings scrollytelling (styles partagés) ============ */
.lp{background:var(--cream);color:var(--ink);overflow-x:hidden}
.lp *{box-sizing:border-box}
.lp-wrap{max-width:1120px;margin:0 auto;padding:0 clamp(22px,5vw,64px)}
.lp-narrow{max-width:900px}

/* progress + bar */
.lp-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--ink);z-index:60;transition:width .1s linear}
.lp-topbar{position:fixed;top:0;left:0;right:0;z-index:55;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(18px,4vw,40px);transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.lp-topbar.solid{background:rgba(241,237,227,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--ink)}
.lp-topbar .glyph{width:34px;height:34px;background:var(--ink);color:var(--cream);display:flex;align-items:center;justify-content:center;font-weight:200;font-size:1.4rem;line-height:.6;text-decoration:none}
.lp-topbar .lp-tb-cta{font-size:13.5px;font-weight:500;padding:9px 18px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;transition:all .18s}
.lp-topbar .lp-tb-cta:hover{background:var(--ink);color:var(--cream)}

/* sections */
.lp-sec{position:relative;padding:clamp(90px,14vh,150px) 0}
.lp-sec.full{min-height:100vh;display:flex;flex-direction:column;justify-content:center}
.lp-dark{background:var(--ink);color:var(--cream)}
.lp-dark .lp-kick{color:var(--grey-4)}
.lp-dark .lp-body{color:#D9D5CB}
.lp-kick{font-size:12px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--brick);margin:0 0 26px}
.lp-h{font-family:'Newsreader',Georgia,serif;font-weight:400;letter-spacing:-.02em;line-height:1.08;margin:0;font-size:clamp(2rem,6vw,4.1rem);color:var(--ink)}
.lp-h em{font-style:italic;color:var(--brick)}
.lp-dark .lp-h{color:var(--cream)}
.lp-dark .lp-h em{color:#C9B79C}
.lp-dark .lp-statement,.lp-dark .lp-demand{color:var(--cream)}
.lp-body{font-size:clamp(1.08rem,1.55vw,1.32rem);line-height:1.62;color:var(--grey-2);max-width:760px;margin:26px 0 0}
.lp-lead{font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.5;max-width:880px;margin:30px 0 0;color:var(--grey-2)}
.lp-dark .lp-lead{color:#E4E0D6}

/* hero */
.lp-hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative;padding:120px 0 90px;overflow:hidden}
.lp-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.9}
.lp-hero-bg span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;animation:lpFloat 18s ease-in-out infinite}
.lp-hero-bg .b1{width:46vw;height:46vw;background:#E6DFCF;top:-10vw;right:-8vw}
.lp-hero-bg .b2{width:34vw;height:34vw;background:#EBE6D8;bottom:-12vw;left:-6vw;animation-delay:-6s}
.lp-hero-bg .b3{width:22vw;height:22vw;background:#DED6C2;top:38%;left:44%;animation-delay:-11s}
@keyframes lpFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(2vw,-3vw)}}
.lp-hero .lp-wrap{position:relative;z-index:1}
.lp-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brick);margin:0 0 24px}
.lp-eyebrow::before{content:"";width:26px;height:1px;background:var(--brick)}
.lp-hero-title{font-family:'Newsreader',Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.02;font-size:clamp(2.6rem,8.4vw,6.4rem);margin:0;max-width:17ch}
.lp-hero-title em{font-style:italic;color:var(--brick)}
.lp-w{display:inline-block;opacity:0;transform:translateY(.55em) rotate(2.5deg);animation:lpW 1s cubic-bezier(.2,.75,.2,1) forwards}
@keyframes lpW{to{opacity:1;transform:none}}
.lp-hero-sub{font-size:clamp(1.1rem,1.7vw,1.38rem);line-height:1.58;color:var(--grey-2);max-width:760px;margin:32px 0 0;opacity:0;animation:lpFade 1s ease .9s forwards}
.lp-hero-cta{margin:38px 0 0;display:flex;flex-wrap:wrap;gap:14px;align-items:center;opacity:0;animation:lpFade 1s ease 1.15s forwards}
@keyframes lpFade{to{opacity:1}}
.lp-btn{font-weight:500;font-size:15px;padding:14px 28px;text-decoration:none;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--ink);transition:all .2s}
.lp-btn-primary{background:var(--ink);color:var(--cream)}
.lp-btn-primary:hover{background:var(--brick);border-color:var(--brick);transform:translateY(-2px)}
.lp-btn-ghost{background:transparent;color:var(--ink)}
.lp-btn-ghost:hover{background:var(--ink);color:var(--cream)}
.lp-dark .lp-btn-primary{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.lp-dark .lp-btn-primary:hover{background:#fff;color:var(--ink)}
.lp-dark .lp-btn-ghost{color:var(--cream);border-color:var(--grey-3)}
.lp-dark .lp-btn-ghost:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.lp-scrollcue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-3);opacity:0;animation:lpFade 1s ease 1.5s forwards;z-index:1}
.lp-scrollcue span{display:block;text-align:center;margin-top:8px;animation:lpBounce 1.8s ease-in-out infinite}
@keyframes lpBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* reveal */
.lp-reveal{opacity:0;transform:translateY(26px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}
.lp-reveal.in{opacity:1;transform:none}
.lp-d1{transition-delay:.1s}.lp-d2{transition-delay:.22s}.lp-d3{transition-delay:.34s}.lp-d4{transition-delay:.46s}

/* demande derrière la demande */
.lp-demand{font-family:'Newsreader',Georgia,serif;font-weight:400;line-height:1.2;font-size:clamp(1.85rem,4.8vw,3.5rem);max-width:24ch}
.lp-q{color:var(--grey-4);font-style:italic}
.lp-q2{display:inline-block;color:#C9B79C;font-style:italic;position:relative}

/* stat counters */
.lp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin:44px 0 0}
.lp-stat{background:var(--cream);padding:30px 22px}
.lp-stat .lp-num{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:clamp(1.9rem,3.6vw,2.9rem);color:var(--ink);letter-spacing:-.02em;display:block;line-height:1}
.lp-stat .lp-lbl{font-size:13.5px;color:var(--grey);line-height:1.45;margin-top:10px;display:block}
.lp-note{font-size:13px;color:var(--grey-3);margin:16px 0 0;max-width:640px;line-height:1.55}
.lp-half{margin:52px 0 0;border-top:1px solid var(--line-2);padding-top:34px}
.lp-half .big{font-family:'Newsreader',Georgia,serif;font-size:clamp(2.4rem,7vw,4.4rem);color:var(--ink);line-height:1;letter-spacing:-.02em}
.lp-half .big b{color:var(--brick);font-weight:500}

/* statement */
.lp-statement{font-family:'Newsreader',Georgia,serif;font-weight:400;font-style:italic;line-height:1.16;font-size:clamp(2.1rem,5.6vw,4.1rem);max-width:24ch;margin:0}

/* programme timeline */
.lp-prog{position:relative;max-width:840px;margin:46px auto 0}
.lp-prog .rail{position:absolute;left:26px;top:14px;bottom:24px;width:2px;background:var(--line-2)}
.lp-prog-fill{position:absolute;left:26px;top:14px;width:2px;height:0;background:var(--ink)}
.lp-step{position:relative;padding:0 0 48px 74px;min-height:56px}
.lp-step:last-child{padding-bottom:0}
.lp-step .dot{position:absolute;left:14px;top:0;width:26px;height:26px;border-radius:50%;border:2px solid var(--line-2);background:var(--cream);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--grey-3);transition:all .45s}
.lp-step.on .dot{border-color:var(--ink);background:var(--ink);color:var(--cream);transform:scale(1.08)}
.lp-step .n{font-family:'Newsreader',Georgia,serif;font-size:12.5px;letter-spacing:.22em;color:var(--brick);font-weight:600;text-transform:uppercase}
.lp-step h3{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:clamp(1.25rem,2.6vw,1.7rem);margin:5px 0 9px;color:var(--ink);opacity:.42;transition:opacity .5s}
.lp-step.on h3{opacity:1}
.lp-step p{color:var(--grey);font-size:15.5px;line-height:1.6;max-width:580px;margin:0}

/* cadre cards */
.lp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--grey-2);border:1px solid var(--grey-2);margin:44px 0 0}
.lp-card{background:var(--ink);padding:28px 24px}
.lp-card h4{font-size:15.5px;font-weight:600;color:var(--cream);margin:0 0 8px}
.lp-card p{font-size:14px;line-height:1.55;color:#CDC9BF;margin:0}

/* prix */
.lp-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 26px;margin:34px 0 0}
.lp-price .amount{font-family:'Newsreader',Georgia,serif;font-weight:500;font-size:clamp(3rem,9vw,5.5rem);color:var(--ink);line-height:.95;letter-spacing:-.02em}
.lp-price .per{font-size:1.1rem;color:var(--grey)}
.lp-pricegrid{display:flex;flex-wrap:wrap;gap:12px 40px;margin:26px 0 0}
.lp-pricegrid div{border-left:2px solid var(--ink);padding-left:14px}
.lp-pricegrid .k{font-family:'Newsreader',Georgia,serif;font-size:1.5rem;color:var(--ink);line-height:1.1}
.lp-pricegrid .l{font-size:13px;color:var(--grey);margin-top:2px}
.lp-dark .lp-price .amount{color:var(--cream)}
.lp-dark .lp-price .per{color:#CDC9BF}
.lp-dark .lp-pricegrid div{border-left-color:var(--cream)}
.lp-dark .lp-pricegrid .k{color:var(--cream)}
.lp-dark .lp-pricegrid .l{color:#B4B1A7}

/* final */
.lp-final{text-align:center}
.lp-final .lp-statement{margin:0 auto;max-width:24ch}
.lp-final .lp-body{margin-left:auto;margin-right:auto;text-align:center}
.lp-final .lp-hero-cta{justify-content:center}

/* footer */
.lp-foot{background:var(--ink);color:#B4B1A7;padding:40px 0;font-size:13.5px}
.lp-foot .lp-wrap{display:flex;flex-wrap:wrap;gap:18px 30px;align-items:center;justify-content:space-between}
.lp-foot a{color:#CDC9BF;text-decoration:none;margin-right:20px}
.lp-foot a:hover{color:var(--cream)}
.lp-foot .glyph{width:30px;height:30px;background:var(--cream);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-weight:200;font-size:1.2rem;line-height:.6}

@media(max-width:760px){
  .lp-stats{grid-template-columns:repeat(2,1fr)}
  .lp-cards{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .lp-w,.lp-hero-sub,.lp-hero-cta,.lp-scrollcue{opacity:1!important;transform:none!important;animation:none!important}
  .lp-reveal{opacity:1!important;transform:none!important;transition:none!important}
  .lp-hero-bg span{animation:none!important}
}
