/* ==========================================================================
   Fidelyxa — pages secondaires
   À charger APRÈS fidelyxa.css (qui fournit les variables --fx-*, l'en-tête,
   les boutons et le pied de page). Tout ce qui est propre aux pages vit ici,
   sous le préfixe .pg-
   ========================================================================== */

body.pg{background:var(--fx-paper)}
.pg-main{display:block}
.pg-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pg svg.pg-i{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* --- En-tête : page courante ------------------------------------------- */
.fx-nav a[aria-current="page"]{color:var(--fx-ink);background:var(--fx-mint)}

/* --- Hero --------------------------------------------------------------- */
.pg-hero{position:relative;overflow:hidden;padding-block:clamp(48px,7vw,104px) clamp(56px,8vw,112px)}
.pg-hero::before{
  content:"";position:absolute;right:-14%;top:-34%;width:min(780px,72vw);aspect-ratio:1;
  background:url("assets/optimized/LEF.webp") center/contain no-repeat;opacity:.15;transform:rotate(8deg);pointer-events:none;
}
.pg-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,6vw,96px);align-items:center}
.pg-hero--single .pg-hero-grid{grid-template-columns:minmax(0,1fr)}
.pg-hero-copy{display:grid;gap:clamp(20px,2.6vw,30px);justify-items:start}
.pg-kicker{display:inline-flex;align-items:center;gap:10px;padding:8px 18px 8px 12px;border-radius:999px;background:var(--fx-mint);color:var(--fx-green-text);font:700 .875rem/1 var(--fx-text)}
.pg-kicker svg{width:18px;height:18px}
.pg-h1{font:800 clamp(2.5rem,.9rem + 5.6vw,5.2rem)/.98 var(--fx-display);letter-spacing:-.045em;text-wrap:balance;max-width:13em}
.pg-h1 em{font-style:normal;color:var(--fx-green-text)}
.pg-lead{font-size:clamp(1.125rem,1rem + .5vw,1.3125rem);line-height:1.55;color:var(--fx-soft);max-width:34em}
.pg-cta-row{display:flex;flex-wrap:wrap;gap:12px}

/* --- Sections ----------------------------------------------------------- */
.pg-section{padding-block:clamp(64px,9vw,120px)}
.pg-section--mint{background:var(--fx-mint)}
.pg-section--white{background:#fff}
.pg-section--tight-top{padding-top:0}
.pg-head{display:grid;gap:16px;max-width:44rem;margin-bottom:clamp(32px,5vw,56px)}
.pg-h2{font:700 clamp(2rem,1.2rem + 3vw,3.5rem)/1.04 var(--fx-display);letter-spacing:-.035em;text-wrap:balance}
.pg-head p{color:var(--fx-soft);font-size:1.125rem;max-width:36em}

/* --- Cartes ------------------------------------------------------------- */
.pg-grid{display:grid;gap:20px}
.pg-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pg-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pg-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg-card{
  position:relative;overflow:hidden;display:grid;gap:14px;align-content:start;
  padding:clamp(24px,2.4vw,34px);border-radius:28px;background:#fff;border:1px solid var(--fx-line);
  transition:transform .45s var(--fx-ease),box-shadow .45s ease,border-color .3s ease;
}
.pg-card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s ease;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(15,143,131,.14),transparent 62%);
}
.pg-card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -34px rgba(5,47,43,.5);border-color:rgba(15,143,131,.4)}
.pg-card:hover::before{opacity:1}
.pg-card h2,.pg-card h3{font:700 1.25rem/1.2 var(--fx-display);letter-spacing:-.02em}
.pg-card p{color:var(--fx-soft)}
.pg-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:var(--fx-mint);color:var(--fx-green-text);transition:background-color .3s ease,color .3s ease,transform .5s var(--fx-ease)}
.pg-icon svg{width:26px;height:26px}
.pg-card:hover .pg-icon{background:var(--fx-green-ui);color:#fff;transform:rotate(-6deg) scale(1.06)}

/* --- Étapes (comment ça marche) ------------------------------------------ */
.pg-steps{display:grid}
.pg-step{display:grid;grid-template-columns:clamp(90px,14vw,190px) minmax(0,1fr);gap:clamp(16px,4vw,56px);align-items:start;padding-block:clamp(28px,4vw,52px);border-top:1px solid var(--fx-line)}
.pg-step:last-child{border-bottom:1px solid var(--fx-line)}
.pg-num{font:800 clamp(3.4rem,1.4rem + 8vw,8rem)/.85 var(--fx-display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:2px var(--fx-green);transition:color .6s ease,-webkit-text-stroke-color .6s ease}
.pg-step.is-on .pg-num{color:var(--fx-green);-webkit-text-stroke-color:transparent}
.pg-step h3{font:700 clamp(1.5rem,1.1rem + 1.5vw,2.2rem)/1.1 var(--fx-display);letter-spacing:-.03em;margin-bottom:12px}
.pg-step p{color:var(--fx-soft);max-width:40em;font-size:1.0625rem}

/* --- Pass (visuel du hero) ----------------------------------------------- */
.pg-visual{position:relative;display:grid;justify-items:center;padding:36px 0}
.pg-pass{
  position:relative;z-index:2;width:min(430px,100%);padding:22px 24px 24px;border-radius:26px;color:#06443e;
  background:radial-gradient(120% 90% at 100% 0%,rgba(255,255,255,.72),transparent 55%),linear-gradient(150deg,#eefbf8,#9fe3d5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 34px 60px -30px rgba(5,47,43,.55),0 2px 6px rgba(5,47,43,.14);
  transform:rotate(-3deg);
}
.pg-pass-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pg-pass-brand{display:flex;align-items:center;gap:10px;font:800 1.45rem/1 var(--fx-display);letter-spacing:-.035em}
.pg-pass-brand img{width:38px;height:38px;object-fit:contain}
.pg-pass small{display:block;font:700 .7rem/1.2 var(--fx-text);letter-spacing:.07em;text-transform:uppercase;color:rgba(6,68,62,.7)}
.pg-pass-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:26px}
.pg-pass-row b{display:block;font:800 2rem/1 var(--fx-display);letter-spacing:-.03em;margin-top:6px}
.pg-pass-row .r{text-align:right}
.pg-pass-reward{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}
.pg-pass-reward strong{display:block;font:600 1.25rem/1.2 var(--fx-text);margin-top:4px}
.pg-gift{display:grid;place-items:center;flex:none;width:58px;height:58px;border-radius:50%;border:2px solid rgba(255,255,255,.9);background:rgba(255,255,255,.5);color:#0f8f83}
.pg-gift svg{width:26px;height:26px}
.pg-stamps{display:flex;gap:6px;margin-top:24px}
.pg-stamps li{position:relative;flex:1 1 0;max-width:40px;aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(15,143,131,.38)}
.pg-stamps li.on{border-color:transparent;background:#0f8f83;color:#fff;display:grid;place-items:center}
.pg-stamps li.on svg{width:54%;height:54%;fill:currentColor}
.pg-chip{
  position:absolute;z-index:3;display:inline-flex;align-items:center;gap:10px;padding:12px 18px 12px 14px;border-radius:999px;
  background:#fff;box-shadow:0 18px 36px -18px rgba(5,47,43,.5),0 0 0 1px rgba(15,32,29,.06);font:700 .9375rem/1 var(--fx-text);color:var(--fx-ink);
}
.pg-chip svg{width:20px;height:20px;color:var(--fx-green-text)}
.pg-chip--a{left:-2%;top:6%}
.pg-chip--b{right:-2%;top:42%}
.pg-chip--c{left:4%;bottom:2%}

/* --- Parcours (visuel du hero de « comment ça marche ») ------------------- */
.pg-flow{position:relative;display:grid;gap:34px;justify-items:start;padding:12px 0 12px 12px;max-width:340px;justify-self:center}
.pg-flow::before{content:"";position:absolute;left:49px;top:50px;bottom:50px;width:2px;background:repeating-linear-gradient(to bottom,var(--fx-mint-2) 0 6px,transparent 6px 12px)}
.pg-flow-item{position:relative;display:flex;align-items:center;gap:20px}
.pg-flow-dot{display:grid;place-items:center;width:76px;height:76px;border-radius:26px;background:#fff;color:var(--fx-green-text);box-shadow:0 20px 34px -22px rgba(5,47,43,.5),0 0 0 1px rgba(15,32,29,.06)}
.pg-flow-dot svg{width:32px;height:32px}
.pg-flow-item b{font:800 3rem/1 var(--fx-display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px var(--fx-green)}
.pg-flow-item:nth-child(3) .pg-flow-dot{background:var(--fx-green-ui);color:#fff}

/* --- FAQ ----------------------------------------------------------------- */
.pg-faq{max-width:52rem;margin-inline:auto}
.pg-faq-item{border-bottom:1px solid var(--fx-line)}
.pg-faq-item:first-child{border-top:1px solid var(--fx-line)}
.pg-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;cursor:pointer;list-style:none;font:700 1.1875rem/1.3 var(--fx-display);letter-spacing:-.02em}
.pg-faq-item summary::-webkit-details-marker{display:none}
.pg-faq-item summary:hover{color:var(--fx-green-text)}
.pg-faq-mark{position:relative;flex:none;width:34px;height:34px;border-radius:50%;background:var(--fx-mint);transition:background-color .2s ease}
.pg-faq-mark::before,.pg-faq-mark::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;border-radius:2px;background:var(--fx-ink);transition:transform .3s var(--fx-ease),background-color .2s}
.pg-faq-mark::after{transform:rotate(90deg)}
.pg-faq-item[open] .pg-faq-mark{background:var(--fx-green-ui)}
.pg-faq-item[open] .pg-faq-mark::before,.pg-faq-item[open] .pg-faq-mark::after{background:#fff}
.pg-faq-item[open] .pg-faq-mark::after{transform:rotate(0)}
.pg-faq-item p{padding:0 58px 28px 0;max-width:42em;color:var(--fx-soft);font-size:1.0625rem}

/* --- À propos ------------------------------------------------------------- */
.pg-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.pg-value{position:relative;overflow:hidden;display:grid;gap:14px;align-content:space-between;min-height:clamp(240px,26vw,330px);padding:clamp(26px,3.4vw,44px);border-radius:34px;background:#fff;border:1px solid var(--fx-line)}
.pg-value .pg-v-num{font:800 clamp(2.4rem,1.4rem + 3vw,4.2rem)/1 var(--fx-display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.8px var(--fx-green)}
.pg-value h2{font:700 clamp(1.5rem,1.1rem + 1.4vw,2.1rem)/1.08 var(--fx-display);letter-spacing:-.03em;margin-bottom:10px}
.pg-value p{color:var(--fx-soft);max-width:28em}
.pg-value:nth-child(1){background:var(--fx-mint);border-color:transparent;border-radius:34px 34px 34px 110px}
.pg-value:nth-child(2){background:var(--fx-deep);border-color:transparent;color:#fff;border-radius:34px 110px 34px 34px}
.pg-value:nth-child(2) p{color:rgba(255,255,255,.76)}
.pg-value:nth-child(2) .pg-v-num{-webkit-text-stroke-color:#7fe3d3}
.pg-value:nth-child(3){border-radius:110px 34px 34px 34px}
.pg-value:nth-child(4){background:var(--fx-mint-2);border-color:transparent;border-radius:34px 34px 110px 34px}

/* --- Contact -------------------------------------------------------------- */
.pg-contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:20px;align-items:stretch}
.pg-panel{padding:clamp(26px,3.4vw,48px);border-radius:34px;background:#fff;border:1px solid var(--fx-line)}
.pg-panel--deep{display:grid;gap:20px;align-content:start;background:var(--fx-deep);border-color:transparent;color:#fff;border-radius:34px 34px 34px 110px}
.pg-panel h2{font:700 clamp(1.6rem,1.2rem + 1.4vw,2.2rem)/1.08 var(--fx-display);letter-spacing:-.03em}
.pg-panel--deep p{color:rgba(255,255,255,.78)}
.pg-email{display:inline-block;width:fit-content;max-width:100%;padding-bottom:6px;font:800 clamp(1.3rem,1rem + 1.4vw,2rem)/1.15 var(--fx-display);letter-spacing:-.03em;color:#fff;text-decoration:none;overflow-wrap:anywhere;background:linear-gradient(#7fe3d3,#7fe3d3) 0 100% / 100% 2px no-repeat;transition:background-size .4s var(--fx-ease)}
.pg-email:hover{background-size:0 2px;background-position:100% 100%}
.pg-form{display:grid;gap:20px;margin-top:22px}
.pg-form label{display:grid;gap:8px;font:700 .9375rem/1.2 var(--fx-text);color:var(--fx-ink)}
.pg-form input,.pg-form select,.pg-form textarea{
  width:100%;margin:0;padding:0 16px;border:1.5px solid var(--fx-line);border-radius:14px;background:var(--fx-paper);box-shadow:none;
  font:500 1rem var(--fx-text);color:var(--fx-ink);transition:border-color .2s ease,box-shadow .2s ease;
}
.pg-form input,.pg-form select{height:52px}
.pg-form select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f201d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px}
.pg-form textarea{padding:14px 16px;min-height:150px;resize:vertical;line-height:1.5}
.pg-form input:focus,.pg-form select:focus,.pg-form textarea:focus{outline:none;border-color:var(--fx-green);box-shadow:0 0 0 4px rgba(15,143,131,.16)}

/* --- Pages légales -------------------------------------------------------- */
.pg-legal-hero .pg-hero-grid{grid-template-columns:minmax(0,1fr) auto}
.pg-meta{display:grid;gap:8px;min-width:240px;padding:26px 30px;border-radius:28px;background:#fff;border:1px solid var(--fx-line);box-shadow:0 24px 40px -32px rgba(5,47,43,.5)}
.pg-meta span,.pg-meta small{font:700 .75rem/1.2 var(--fx-text);letter-spacing:.08em;text-transform:uppercase;color:var(--fx-green-text)}
.pg-meta strong{font:800 1.4rem/1.2 var(--fx-display);letter-spacing:-.03em}
.pg-meta small{color:var(--fx-soft)}
.pg-legal{display:grid;grid-template-columns:minmax(210px,3fr) minmax(0,9fr);gap:clamp(32px,6vw,96px);align-items:start;padding-bottom:clamp(72px,9vw,128px)}
.pg-toc{position:sticky;top:calc(var(--fx-header-h) + 24px);display:grid;gap:18px}
.pg-toc>span{font:700 .75rem/1 var(--fx-text);letter-spacing:.08em;text-transform:uppercase;color:var(--fx-soft)}
.pg-toc nav{display:grid;border-left:2px solid var(--fx-line)}
.pg-toc nav a{display:flex;gap:12px;align-items:baseline;margin-left:-2px;padding:10px 0 10px 18px;border-left:2px solid transparent;color:var(--fx-soft);font-weight:600;font-size:.9375rem;line-height:1.3;text-decoration:none;transition:color .2s ease,border-color .2s ease}
.pg-toc nav a b{font:700 .75rem/1 var(--fx-text);color:var(--fx-green-text);font-variant-numeric:tabular-nums}
.pg-toc nav a:hover{color:var(--fx-ink)}
.pg-toc nav a.is-active{color:var(--fx-ink);border-left-color:var(--fx-green)}
.pg-back{width:fit-content;font-weight:700;font-size:.9375rem;color:var(--fx-green-text);text-decoration:none}
.pg-back:hover{text-decoration:underline;text-underline-offset:4px}
.pg-doc{display:grid}
.pg-alert{display:grid;gap:6px;margin-bottom:20px;padding:20px 24px;border-radius:22px;background:#fff3d6;border:1px solid #f1d58a;color:#5c3d00}
.pg-alert span{font:800 .75rem/1 var(--fx-text);letter-spacing:.08em;text-transform:uppercase}
.pg-alert p{color:#5c3d00}
.pg-block{display:grid;grid-template-columns:clamp(56px,7vw,100px) minmax(0,1fr);gap:clamp(16px,3vw,40px);padding-block:clamp(28px,4vw,48px);border-top:1px solid var(--fx-line);scroll-margin-top:calc(var(--fx-header-h) + 16px)}
.pg-block:last-child{border-bottom:1px solid var(--fx-line)}
.pg-block-num{font:800 clamp(2rem,1.2rem + 2.4vw,3.4rem)/1 var(--fx-display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.6px var(--fx-green)}
.pg-label{display:block;margin-bottom:10px;font:700 .75rem/1 var(--fx-text);letter-spacing:.08em;text-transform:uppercase;color:var(--fx-green-text)}
.pg-block h2{font:700 clamp(1.5rem,1.1rem + 1.2vw,2.1rem)/1.1 var(--fx-display);letter-spacing:-.03em;margin-bottom:16px}
.pg-block p{max-width:44em;margin-bottom:14px;color:var(--fx-soft);font-size:1.0625rem}
.pg-block p:last-child{margin-bottom:0}
.pg-block p a,.pg-block dd a{color:var(--fx-green-text);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.pg-block strong{color:var(--fx-ink)}
.pg-mail{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:14px 24px;border-radius:999px;background:var(--fx-deep);color:#fff!important;font-weight:700;text-decoration:none!important;transition:background-color .2s ease,transform .3s var(--fx-ease)}
.pg-mail:hover{background:var(--fx-green-ui);transform:translateY(-2px)}
.pg-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pg-details div{padding:16px 20px;border-radius:18px;background:#fff;border:1px solid var(--fx-line)}
.pg-details dt{font:700 .75rem/1.2 var(--fx-text);letter-spacing:.06em;text-transform:uppercase;color:var(--fx-soft)}
.pg-details dd{margin:6px 0 0;font-weight:600;color:var(--fx-ink)}

/* --- Appel final ---------------------------------------------------------- */
.pg-final{padding-block:0 clamp(72px,10vw,136px)}
.pg-final-card{position:relative;overflow:hidden;display:grid;gap:26px;justify-items:start;padding:clamp(36px,7vw,92px);border-radius:56px 56px 56px 160px;background:var(--fx-deep);color:#fff}
.pg-final-card::after{content:"";position:absolute;right:-10%;bottom:-30%;width:min(620px,70%);aspect-ratio:1;background:url("assets/optimized/LEF.webp") center/contain no-repeat;opacity:.16;pointer-events:none}
.pg-final-card>*{position:relative;z-index:1}
.pg-final-card p{max-width:32em;font-size:1.1875rem;color:rgba(255,255,255,.78)}
.pg-final-card .pg-h2{max-width:14em}

/* --- Inscription client (client-register.html) ----------------------------- */
body.pg-register{min-height:100vh;min-height:100svh;display:grid;align-content:start;justify-items:center;gap:22px;padding:clamp(20px,4vw,40px) 18px 48px;
  background:radial-gradient(90% 50% at 50% -10%,rgba(15,143,131,.16),transparent 70%),var(--fx-paper)!important}
.pg-reg-brand img{display:block;height:34px;width:auto}
.pg-reg-stack{display:grid;gap:18px;width:min(440px,100%)}
.pg-reg-pass{position:relative;padding:20px 22px 22px;border-radius:24px;color:#06443e;background:radial-gradient(120% 90% at 100% 0%,rgba(255,255,255,.72),transparent 55%),linear-gradient(150deg,#eefbf8,#9fe3d5);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 30px 50px -30px rgba(5,47,43,.55)}
.pg-reg-pass .pg-pass-row{margin-top:18px}
.pg-reg-pass .pg-stamps{margin-top:18px;gap:4px}
.pg-reg-pass .pg-stamps li{max-width:32px}
.pg-reg-card{padding:clamp(24px,5vw,34px);border-radius:28px;background:#fff;border:1px solid var(--fx-line);box-shadow:0 30px 50px -40px rgba(5,47,43,.5)}
.pg-reg-card h2{font:800 1.75rem/1.1 var(--fx-display);letter-spacing:-.035em;margin:0 0 8px}
.pg-reg-card>p{margin:0 0 24px;color:var(--fx-soft)}
.pg-reg-card form{display:grid;gap:18px}
.pg-reg-card label.pg-field{display:grid;gap:8px;font:700 .9375rem/1.2 var(--fx-text);color:var(--fx-ink)}
.pg-reg-card input[type=text],.pg-reg-card input[type=email]{width:100%;height:54px;margin:0;padding:0 16px;border:1.5px solid var(--fx-line);border-radius:14px;background:var(--fx-paper);font:500 1rem var(--fx-text);color:var(--fx-ink);transition:border-color .2s ease,box-shadow .2s ease}
.pg-reg-card input:focus{outline:none;border-color:var(--fx-green);box-shadow:0 0 0 4px rgba(15,143,131,.16)}
.pg-consent{display:flex;gap:12px;align-items:flex-start;font-size:.875rem;line-height:1.45;color:var(--fx-soft);cursor:pointer}
.pg-consent input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--fx-green-ui)}
#errorMsg{display:none;margin:0 0 18px;padding:12px 16px;border-radius:14px;background:#fdebe7;border:1px solid #f4c0b6;color:#a02b17;font-size:.9375rem;font-weight:600}
.pg-wallet-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:58px;margin-top:12px;border:1.5px solid transparent;border-radius:999px;font:700 1.0625rem/1 var(--fx-text);cursor:pointer;transition:transform .2s var(--fx-ease),background-color .2s ease}
.pg-wallet-btn:active{transform:scale(.98)}
.pg-wallet-btn--apple{background:#0b0b0b;color:#fff}
.pg-wallet-btn--apple:hover{background:#262626}
.pg-wallet-btn--google{background:#fff;color:var(--fx-ink);border-color:rgba(15,32,29,.28)}
.pg-wallet-btn--google:hover{border-color:var(--fx-ink)}
.pg-wallet-btn svg{width:24px;height:24px}

/* --- Animations : ne s'activent que si fidelyxa-pages.js tourne ------------- */
@keyframes pg-in{from{opacity:0;transform:translateY(16px)}}
@keyframes pg-pass-in{from{opacity:0;transform:translateY(50px) rotate(-8deg) scale(.94)}}
@keyframes pg-chip-in{from{opacity:0;transform:translateY(16px) scale(.9)}}
@keyframes pg-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes pg-stamp{0%{transform:scale(1.9) rotate(-16deg);opacity:0}55%{transform:scale(.9) rotate(3deg);opacity:1}100%{transform:none;opacity:1}}
@keyframes pg-dash{to{background-position:0 24px}}
@media (prefers-reduced-motion:no-preference){
  .pg-hero-copy>*{animation:pg-in .9s var(--fx-ease) both}
  .pg-hero-copy>*:nth-child(2){animation-delay:.08s}
  .pg-hero-copy>*:nth-child(3){animation-delay:.18s}
  .pg-hero-copy>*:nth-child(4){animation-delay:.28s}
  .pg-pass{animation:pg-pass-in 1.1s var(--fx-ease) .15s both}
  .pg-stamps li.on svg{animation:pg-stamp .6s cubic-bezier(.2,1.35,.4,1) both;animation-delay:calc(var(--i,0) * 90ms + 800ms)}
  .pg-chip{animation:pg-chip-in .8s var(--fx-ease) both,pg-float 6s ease-in-out infinite}
  .pg-chip--a{animation-delay:.7s,1.5s}.pg-chip--b{animation-delay:.9s,2.4s}.pg-chip--c{animation-delay:1.1s,.8s}
  .pg-flow-item{animation:pg-in .9s var(--fx-ease) both}
  .pg-flow-item:nth-child(2){animation-delay:.15s}.pg-flow-item:nth-child(3){animation-delay:.3s}
  .pg-hero::before{animation:pg-drift 26s ease-in-out infinite alternate}
  @keyframes pg-drift{from{transform:rotate(8deg) translate3d(0,0,0)}to{transform:rotate(14deg) translate3d(-2%,3%,0)}}
  .pg-anim .pg-reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .9s var(--fx-ease);transition-delay:calc(var(--d,0) * 70ms)}
  .pg-anim .pg-reveal.is-in{opacity:1;transform:none}
}

/* --- Responsive ----------------------------------------------------------- */
@media (max-width:1100px){
  .pg-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg-grid--3{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .pg-hero-grid,.pg-legal-hero .pg-hero-grid{grid-template-columns:1fr}
  .pg-meta{justify-self:start;min-width:0;width:100%}
  .pg-visual{padding:56px 0 24px}
  .pg-contact{grid-template-columns:1fr}
  .pg-panel--deep{border-radius:34px 34px 34px 80px}
  .pg-value:nth-child(n){border-radius:34px}
  .pg-values{grid-template-columns:1fr}
  .pg-final-card{border-radius:40px 40px 40px 100px}
  .pg-legal{grid-template-columns:1fr}
  .pg-toc{position:sticky;top:var(--fx-header-h);z-index:5;gap:0;margin-inline:-20px;padding:10px 20px;background:rgba(246,250,248,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--fx-line)}
  .pg-toc>span,.pg-back{display:none}
  .pg-toc nav{display:flex;gap:8px;overflow-x:auto;border-left:0;scrollbar-width:none}
  .pg-toc nav::-webkit-scrollbar{display:none}
  .pg-toc nav a{flex:none;margin:0;padding:10px 16px;border:1.5px solid var(--fx-line);border-radius:999px;white-space:nowrap}
  .pg-toc nav a.is-active{background:var(--fx-ink);border-color:var(--fx-ink);color:#fff}
  .pg-toc nav a.is-active b{color:#7fe3d3}
}
@media (max-width:720px){
  .pg-grid--4,.pg-grid--3,.pg-grid--2{grid-template-columns:1fr}
  .pg-step{grid-template-columns:1fr;gap:10px}
  .pg-block{grid-template-columns:1fr;gap:6px}
  .pg-details{grid-template-columns:1fr}
  .pg-faq-item p{padding-right:0}
  .pg-cta-row .fx-btn{flex:1 1 100%}
  .pg-chip--a{left:0}.pg-chip--b{right:0}
  .pg-pass-brand{font-size:1.25rem}
  .pg-pass-row b{font-size:1.6rem}
}
@media (max-width:600px){
  .pg-final-card .fx-btn{width:100%}
  .pg-stamps{gap:4px}
}

/* espace au-dessus de l'appel final quand il suit une section pleine largeur */
.pg-final--after-mint,.pg-final--after-white{padding-top:clamp(56px,8vw,96px)}

/* icônes insérées sans classe (cartes, parcours, cadeau) */
.pg-icon svg,.pg-flow-dot svg,.pg-gift svg,.pg-chip svg,.pg-kicker svg,.pg-mail svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pg-panel--deep{position:relative;overflow:hidden}
.pg-panel--deep::after{content:"";position:absolute;right:-12%;bottom:-18%;width:70%;aspect-ratio:1;background:url("assets/optimized/LEF.webp") center/contain no-repeat;opacity:.14;pointer-events:none}
.pg-panel--deep>*{position:relative;z-index:1}
@media (max-width:720px){
  .pg-chip--b{top:auto;bottom:2%;right:0}
  .pg-chip--c{left:0;bottom:2%}
}

/* --- Tarifs --------------------------------------------------------------- */
.pg-pricing-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-bottom:clamp(8px,2vw,16px)}
.pg-pricing-bar .fx-billing-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;justify-items:start}
.pg-pricing-bar .fx-billing-note{text-align:left}
.pg-section--pricing{padding-top:clamp(32px,4.5vw,64px)}
.pg-faq-mini{margin-top:clamp(56px,8vw,96px)}
.pg-faq-mini .pg-head{margin-inline:auto;text-align:left}

/* --- Partenaires ----------------------------------------------------------- */
.pg-orbit{position:relative;width:min(420px,100%);aspect-ratio:1;margin-inline:auto}
.pg-orbit::before,.pg-orbit::after{content:"";position:absolute;border-radius:50%;border:2px dashed var(--fx-mint-2)}
.pg-orbit::before{inset:6%}
.pg-orbit::after{inset:27%}
.pg-orbit-core{position:absolute;inset:37%;display:grid;place-items:center;border-radius:50%;background:var(--fx-deep);box-shadow:0 30px 50px -24px rgba(5,47,43,.6)}
.pg-orbit-core img{width:54%;height:auto}
.pg-orbit .pg-chip--a{left:50%;top:0;right:auto;bottom:auto;translate:-50% 0}
.pg-orbit .pg-chip--b{left:auto;right:-2%;top:46%;bottom:auto}
.pg-orbit .pg-chip--c{left:50%;bottom:0;top:auto;right:auto;translate:-50% 0}
.pg-orbit .pg-chip--d{left:-2%;top:46%;right:auto;bottom:auto}
.pg-orbit .pg-chip--d{animation-delay:1.3s,1.9s}
@media (prefers-reduced-motion:no-preference){
  .pg-orbit::before{animation:pg-spin 60s linear infinite}
  .pg-orbit::after{animation:pg-spin 45s linear infinite reverse}
  @keyframes pg-spin{to{transform:rotate(360deg)}}
}
@media (max-width:720px){
  .pg-orbit .pg-chip--b{right:0;top:46%;bottom:auto}
  .pg-orbit .pg-chip--c{left:50%;bottom:0}
  .pg-orbit .pg-chip--d{left:0;top:46%}
}

/* --- Correctifs : étiquette « Le plus choisi », titres longs, pastilles ------ */
.fx-plan{overflow:visible}
.fx-plan--pro .fx-plan-tag{top:-14px;left:32px}
.pg-chip{white-space:nowrap}
.pg-h1--md{font-size:clamp(2.3rem,.8rem + 4.4vw,4.3rem);max-width:15em}
@media (max-width:720px){
  .pg-orbit .pg-chip--b{top:68%;bottom:auto;right:0}
  .pg-orbit .pg-chip--d{top:22%;left:0}
}


/* ==========================================================================
   BOOST — version cinématique
   Héros sombre avec aurore animée, en-tête transparent, sections en verre,
   bandeau défilant, badges animés. Surcharge les règles précédentes.
   ========================================================================== */

/* --- En-tête : transparent sur le héros, plein dès qu'on défile ------------ */
body.pg .fx-header{position:fixed;left:0;right:0;top:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent;transition:background-color .35s ease,border-color .3s ease}

body.pg .fx-header.is-solid,body.pg .fx-header.open{background:rgba(246,250,248,.92);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom-color:var(--fx-line)}
.fx-brand .pg-logo-light{display:none}
.fx-brand .pg-logo-dark{display:block}
.fx-header.is-solid .fx-brand .pg-logo-light,.fx-header.open .fx-brand .pg-logo-light{display:block}
.fx-header.is-solid .fx-brand .pg-logo-dark,.fx-header.open .fx-brand .pg-logo-dark{display:none}
body.pg .fx-header:not(.is-solid):not(.open) .fx-nav a{color:rgba(255,255,255,.82)}
body.pg .fx-header:not(.is-solid):not(.open) .fx-nav a:hover{color:#fff;background:rgba(255,255,255,.12)}
body.pg .fx-header:not(.is-solid):not(.open) .fx-nav a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.18)}
body.pg .fx-header:not(.is-solid):not(.open) .fx-btn-line{color:#fff;border-color:rgba(255,255,255,.42)}
body.pg .fx-header:not(.is-solid):not(.open) .fx-btn-line:hover{border-color:#fff;background:rgba(255,255,255,.1)}
body.pg .fx-header:not(.is-solid):not(.open) .fx-menu-btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff}

/* --- Héros sombre --------------------------------------------------------- */
.pg-hero{
  isolation:isolate;color:#fff;background:#031f1c;
  padding-top:calc(var(--fx-header-h) + clamp(44px,6vw,96px));padding-bottom:clamp(72px,9vw,128px);
  border-radius:0 0 clamp(36px,6vw,84px) clamp(36px,6vw,84px);
}
.pg-hero::before{z-index:-1;opacity:.34;right:-10%;top:-22%;width:min(860px,80vw)}
.pg-aurora{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none;
  background:radial-gradient(70% 90% at 92% 0%,rgba(15,143,131,.5),transparent 62%),radial-gradient(60% 80% at 0% 100%,rgba(8,92,82,.75),transparent 64%),#031f1c}
.pg-aurora i{position:absolute;border-radius:50%;will-change:transform}
.pg-aurora i:nth-child(1){width:74vw;height:74vw;left:-24%;top:-40%;background:radial-gradient(closest-side,rgba(15,143,131,.62),rgba(15,143,131,.3) 45%,rgba(15,143,131,0));translate:calc(var(--px,0) * -30px) calc(var(--py,0) * -20px)}
.pg-aurora i:nth-child(2){width:56vw;height:56vw;right:-9%;top:3%;background:radial-gradient(closest-side,rgba(127,227,211,.26),rgba(127,227,211,.12) 45%,rgba(127,227,211,0));translate:calc(var(--px,0) * 40px) calc(var(--py,0) * 26px)}
.pg-aurora i:nth-child(3){width:48vw;height:48vw;left:26%;bottom:-40%;background:radial-gradient(closest-side,rgba(244,183,63,.2),rgba(244,183,63,.08) 45%,rgba(244,183,63,0));translate:calc(var(--px,0) * -20px) calc(var(--py,0) * -30px)}
.pg-aurora::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:72px 72px;
  -webkit-mask-image:radial-gradient(70% 80% at 70% 30%,#000,transparent 78%);mask-image:radial-gradient(70% 80% at 70% 30%,#000,transparent 78%)}
.pg-spot{position:absolute;left:0;top:0;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(127,227,211,.2),transparent 62%);translate:calc(var(--gx,72vw) - 280px) calc(var(--gy,18vh) - 280px);transition:translate .5s ease-out}
.pg-hero .pg-h1{color:#fff}
.pg-hero .pg-h1 em{color:#7fe3d3}
.pg-hero .pg-lead{color:rgba(255,255,255,.8)}
.pg-hero .pg-kicker{background:rgba(255,255,255,.1);color:#9fe9dc;border:1px solid rgba(255,255,255,.16)}
.pg-hero .fx-btn-line{color:#fff;border-color:rgba(255,255,255,.42)}
.pg-hero .fx-btn-line:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.pg-hero .fx-btn-primary{background:linear-gradient(135deg,#13a899,#0d8378);box-shadow:0 14px 36px -12px rgba(19,168,153,.75)}
.pg-hero .fx-btn-primary:hover{background:linear-gradient(135deg,#19c0af,#0f9487)}
.pg-hero--compact{padding-bottom:clamp(56px,7vw,96px)}
.pg-pass{box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 40px 70px -30px rgba(0,0,0,.7),0 0 90px -10px rgba(127,227,211,.35);transform:perspective(1000px) rotate(-3deg) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s var(--fx-ease)}
.pg-pass.is-tilt{transition:transform .12s linear}
.pg-hero .pg-chip{background:rgba(22,84,76,.92);color:#fff;border:1px solid rgba(255,255,255,.22);box-shadow:0 18px 36px -18px rgba(0,0,0,.55)}
.pg-hero .pg-chip svg{color:#7fe3d3}
.pg-hero .pg-flow::before{background:repeating-linear-gradient(to bottom,rgba(255,255,255,.28) 0 6px,transparent 6px 12px)}
.pg-hero .pg-flow-dot{background:rgba(255,255,255,.1);color:#7fe3d3;border:1px solid rgba(255,255,255,.2);box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.pg-hero .pg-flow-item:nth-child(3) .pg-flow-dot{background:#13a899;color:#fff;border-color:transparent;box-shadow:0 0 50px rgba(19,168,153,.6)}
.pg-hero .pg-flow-item b{-webkit-text-stroke-color:#7fe3d3}
.pg-hero .pg-orbit::before,.pg-hero .pg-orbit::after{border-color:rgba(255,255,255,.22)}
.pg-hero .pg-orbit-core{background:linear-gradient(145deg,#0f8f83,#052f2b);box-shadow:0 0 0 12px rgba(127,227,211,.1),0 0 90px rgba(127,227,211,.45)}
.pg-legal-hero .pg-meta{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18);box-shadow:none}
.pg-legal-hero .pg-meta span{color:#7fe3d3}
.pg-legal-hero .pg-meta strong{color:#fff}
.pg-legal-hero .pg-meta small{color:rgba(255,255,255,.7)}

/* --- Badges animés des héros ----------------------------------------------- */
.pg-badge,.pg-seal,.pg-qmark{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:50%}
.pg-badge{width:min(310px,72vw);background:var(--fx-gold);color:var(--fx-gold-ink);box-shadow:0 0 0 14px rgba(244,183,63,.16),0 40px 90px -30px rgba(244,183,63,.7)}
.pg-badge b{font:800 clamp(5rem,12vw,8rem)/.85 var(--fx-display);letter-spacing:-.07em}
.pg-badge small{position:absolute;bottom:25%;font:700 1.1rem/1 var(--fx-text)}
.pg-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pg-ring text{font:700 13.5px var(--fx-text);letter-spacing:.14em;text-transform:uppercase;fill:currentColor}
.pg-seal{width:min(340px,76vw);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:#9fe9dc;box-shadow:0 0 90px -10px rgba(127,227,211,.3)}
.pg-seal img{width:38%;height:auto;filter:drop-shadow(0 0 30px rgba(127,227,211,.6))}
.pg-qmark{width:min(300px,70vw);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18)}
.pg-qmark span{font:800 clamp(7rem,16vw,11rem)/.8 var(--fx-display);color:transparent;-webkit-text-stroke:3px #7fe3d3;letter-spacing:-.05em}
.pg-qmark::before,.pg-qmark::after{content:"";position:absolute;inset:-12%;border-radius:50%;border:1.5px solid rgba(127,227,211,.35)}
.pg-qmark::after{inset:-26%;border-color:rgba(127,227,211,.18)}

/* --- Bandeau défilant -------------------------------------------------------- */
.pg-marquee{overflow:hidden;padding-block:clamp(28px,4.5vw,60px);user-select:none}
.pg-marquee-track{display:flex;width:max-content;will-change:transform}
.pg-marquee-set{display:flex;align-items:center;flex:none}
.pg-marquee-set span{padding-inline:clamp(16px,3vw,40px);font:800 clamp(2.6rem,7vw,6.4rem)/1 var(--fx-display);letter-spacing:-.05em;white-space:nowrap;color:var(--fx-ink)}
.pg-marquee-set span:nth-of-type(even){color:transparent;-webkit-text-stroke:2px var(--fx-green)}
.pg-marquee-set svg{flex:none;width:clamp(24px,3.4vw,44px);height:auto;fill:var(--fx-green)}
@media (prefers-reduced-motion:reduce){.pg-marquee{display:none}}

/* --- Sections sombres en verre ------------------------------------------------ */
.pg-section--deep{position:relative;overflow:hidden;background:var(--fx-deep);color:#fff;border-radius:clamp(32px,5vw,72px)}
.pg-section--deep::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 50% at 85% 0%,rgba(15,143,131,.42),transparent 70%),radial-gradient(50% 40% at 0% 100%,rgba(244,183,63,.1),transparent 70%)}
.pg-section--deep>*{position:relative}
.pg-section--deep .pg-h2{color:#fff}
.pg-section--deep .pg-head p{color:rgba(255,255,255,.76)}
.pg-section--deep .pg-card{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.12);color:#fff}
.pg-section--deep .pg-card p{color:rgba(255,255,255,.74)}
.pg-section--deep .pg-card::before{background:radial-gradient(440px circle at var(--mx,50%) var(--my,50%),rgba(127,227,211,.22),transparent 62%)}
.pg-section--deep .pg-card:hover{border-color:rgba(127,227,211,.55);box-shadow:0 30px 60px -30px rgba(0,0,0,.7),0 0 40px -10px rgba(127,227,211,.3)}
.pg-section--deep .pg-icon{background:rgba(127,227,211,.14);color:#7fe3d3}
.pg-section--deep .pg-card:hover .pg-icon{background:#7fe3d3;color:var(--fx-deep)}
.pg-section+.pg-section--deep,.pg-marquee+.pg-section--deep{margin-top:0}

/* --- Étapes : numéros plus marqués --------------------------------------------- */
.pg-step.is-on .pg-num{color:transparent;background:linear-gradient(160deg,#0f8f83,#7fe3d3);-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:0}

/* --- Appel final : plus lumineux --------------------------------------------- */
.pg-final-card{background:radial-gradient(70% 100% at 100% 0%,rgba(19,168,153,.55),transparent 60%),radial-gradient(50% 80% at 0% 100%,rgba(244,183,63,.12),transparent 70%),var(--fx-deep)}
.pg-final-card::after{opacity:.22}

/* --- Animations du boost --------------------------------------------------------- */
@keyframes pg-title{from{clip-path:inset(0 0 100% 0);transform:translateY(46px)}to{clip-path:inset(-12% -6% -12% -6%);transform:none}}
@keyframes pg-blob-a{to{transform:translate3d(8vw,6vh,0) scale(1.15)}}
@keyframes pg-blob-b{to{transform:translate3d(-9vw,8vh,0) scale(.9)}}
@keyframes pg-blob-c{to{transform:translate3d(10vw,-6vh,0) scale(1.2)}}
@keyframes pg-rotate{to{transform:rotate(360deg)}}
@keyframes pg-pulse{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.18);opacity:0}}
@media (prefers-reduced-motion:no-preference){
  .pg-hero .pg-h1{animation:pg-title 1.25s var(--fx-ease) .1s both}
  .pg-pass{animation:pg-pass-in 1.1s var(--fx-ease) .15s backwards}
  .pg-aurora i:nth-child(1){animation:pg-blob-a 16s ease-in-out infinite alternate}
  .pg-aurora i:nth-child(2){animation:pg-blob-b 21s ease-in-out infinite alternate}
  .pg-aurora i:nth-child(3){animation:pg-blob-c 18s ease-in-out infinite alternate}
  .pg-ring{animation:pg-rotate 28s linear infinite}
  .pg-seal .pg-ring{animation-duration:36s}
  .pg-qmark::before{animation:pg-pulse 3.2s ease-out infinite}
  .pg-qmark::after{animation:pg-pulse 3.2s ease-out 1.1s infinite}
  .pg-badge{animation:pg-float 7s ease-in-out infinite}
}
@media (max-width:900px){
  .pg-visual{padding:36px 0 8px}
  .pg-hero .pg-flow{justify-self:start}
}


/* ==========================================================================
   LANDING + FILM D'ANIMATION
   ========================================================================== */
.pg-hero--landing{padding-bottom:clamp(96px,11vw,160px)}
.pg-h1--xl{font-size:clamp(3rem,.6rem + 7.6vw,7rem);line-height:.92;letter-spacing:-.055em;max-width:none}
.pg-h1--xl span{display:block}
.pg-assure{display:flex;flex-wrap:wrap;gap:10px 26px;font-weight:600;font-size:.96875rem;color:rgba(255,255,255,.82)}
.pg-assure li{display:flex;align-items:center;gap:8px}
.pg-assure svg{width:1.15em;height:1.15em;color:#7fe3d3;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pl-scene{position:relative;display:grid;justify-items:center;gap:20px;padding-top:76px}
.pl-scene .pg-pass{width:min(450px,100%)}
.pl-hint{font-size:.9375rem;color:rgba(255,255,255,.7);text-align:center;max-width:26em}
.pl-notif{position:absolute;z-index:6;left:50%;top:0;width:min(400px,96%);display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:22px;color:var(--fx-ink);background:rgba(255,255,255,.97);box-shadow:0 22px 44px -18px rgba(0,0,0,.6);transform:translate(-50%,-170%);opacity:0;pointer-events:none;transition:transform .8s cubic-bezier(.2,1.25,.3,1),opacity .3s ease}
.pl-notif.is-show{transform:translate(-50%,0);opacity:1}
.pl-notif img{flex:none;width:40px;height:40px;padding:6px;border-radius:11px;background:var(--fx-mint);object-fit:contain}
.pl-notif div{display:grid;gap:1px;min-width:0}
.pl-notif small{font-size:.75rem;font-weight:600;color:var(--fx-soft)}
.pl-notif b{font:800 1rem/1.2 var(--fx-display);letter-spacing:-.02em}
.pl-notif-text{font-size:.875rem;line-height:1.3;color:var(--fx-soft)}
.pl-confetti{position:absolute;z-index:6;width:8px;height:12px;border-radius:2px;pointer-events:none}
.pg-gift{transition:transform .5s var(--fx-ease),background-color .3s ease,color .3s ease}
.pg-pass.is-complete .pg-gift{background:var(--fx-gold);border-color:#fff;color:var(--fx-gold-ink);transform:rotate(-8deg) scale(1.1)}
.pg-stamps li.fresh svg{animation:pg-stamp .6s cubic-bezier(.2,1.35,.4,1) 0ms both!important}
.pg-stamps li.fresh::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #0f8f83;animation:pg-ring .8s ease-out both}
@keyframes pg-ring{from{transform:scale(1);opacity:.9}to{transform:scale(2.6);opacity:0}}
.pl-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pl-step{padding-top:clamp(26px,3vw,38px);gap:16px}
.pl-num{font:800 clamp(3.4rem,2rem + 4vw,6rem)/.85 var(--fx-display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:2px var(--fx-green);transition:color .5s ease}
.pl-step:hover .pl-num{color:var(--fx-green)}
.pl-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.pl-col h3{font:800 clamp(1.5rem,1.1rem + 1.4vw,2.1rem)/1.05 var(--fx-display);letter-spacing:-.035em;color:#fff;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.2)}
.pl-col .pg-grid{grid-template-columns:1fr 1fr;gap:14px}
.pl-col .pg-card{padding:22px;gap:10px}
.pl-col .pg-card h4{font:700 1.0625rem/1.25 var(--fx-display);letter-spacing:-.02em;margin:0}
.pl-col .pg-icon{width:46px;height:46px;border-radius:15px}
.pl-col .pg-icon svg{width:22px;height:22px}
.pl-final-row{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:1000px){.pl-steps{grid-template-columns:1fr}.pl-two{grid-template-columns:1fr}}
@media (max-width:600px){.pl-col .pg-grid{grid-template-columns:1fr}.pl-final-row .fx-btn{flex:1 1 100%}}

/* --- Film d'animation ---------------------------------------------------------- */
.mf{display:grid;gap:18px}
.mf-stage{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:clamp(24px,3vw,44px);background:#031f1c;container-type:inline-size;--ph:46cqw;box-shadow:0 50px 90px -40px rgba(5,47,43,.7);isolation:isolate}
.mf-scene{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;padding:0 6cqw;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s linear .5s}
.mf-scene.is-on{opacity:1;visibility:visible;transition:opacity .5s ease}
.mf-cap{grid-column:1;max-width:11em;font:800 4.8cqw/1.04 var(--fx-display);letter-spacing:-.045em;color:#fff;text-wrap:balance}
.mf-cap small{display:block;margin-top:2cqw;font:500 1.7cqw/1.4 var(--fx-text);letter-spacing:0;color:rgba(255,255,255,.7)}
.mf-vis{grid-column:2;position:relative;display:grid;place-items:center;height:100%}
.mf-scene.is-on .mf-cap{animation:mf-cap .9s var(--fx-ease) .15s both}
@keyframes mf-cap{from{opacity:0;transform:translateY(5cqw)}}

/* scène 1 : cartes papier perdues */
.mf-paper{position:absolute;width:25cqw;height:15cqw;border-radius:1.6cqw;box-shadow:0 2cqw 5cqw rgba(0,0,0,.4);background-color:#fff6de;background-image:radial-gradient(circle,rgba(154,98,0,.4) .55cqw,transparent .6cqw);background-size:3.4cqw 3.4cqw;background-position:1.6cqw 5.6cqw}
.mf-paper.p1{transform:translate(-3cqw,-5cqw) rotate(-9deg)}
.mf-paper.p2{transform:translate(3cqw,0) rotate(6deg);background-color:#e2f3ef}
.mf-paper.p3{transform:translate(-1cqw,5cqw) rotate(-3deg);background-color:#fff}
.mf-scene.is-on .mf-paper{animation:mf-drop 1.1s var(--fx-ease) both,mf-lost 1.2s cubic-bezier(.5,0,.9,.4) 2.2s forwards}
.mf-scene.is-on .p2{animation-delay:.18s,2.35s}
.mf-scene.is-on .p3{animation-delay:.36s,2.5s}
@keyframes mf-drop{from{translate:0 -40cqw;rotate:-24deg;opacity:0}}
@keyframes mf-lost{to{translate:4cqw 40cqw;rotate:38deg;opacity:0}}

/* téléphone */
.mf-phone{position:relative;width:calc(var(--ph) * .48);height:var(--ph);padding:.9cqw;border-radius:5.6cqw;background:linear-gradient(145deg,#46544f,#0c1514 55%,#2a3a37);box-shadow:0 5cqw 9cqw -3cqw rgba(0,0,0,.7),inset 0 0 0 .15cqw rgba(255,255,255,.14)}
.mf-phone::before{content:"";position:absolute;z-index:3;top:1.6cqw;left:50%;width:6cqw;height:1.7cqw;transform:translateX(-50%);border-radius:99px;background:#000}
.mf-screen{position:relative;width:100%;height:100%;overflow:hidden;border-radius:4.8cqw;background:#0a1312}
.mf-scene.is-on .mf-phone{animation:mf-phone-in 1s var(--fx-ease) .1s both}
@keyframes mf-phone-in{from{translate:0 34cqw;rotate:8deg;opacity:0}}
.mf-screen--scan{background:radial-gradient(120% 70% at 50% 0%,#3a5a55,transparent 62%),linear-gradient(170deg,#1b2b29,#091211)}
.mf-qr{position:absolute;left:50%;top:50%;width:12.6cqw;height:12.6cqw;padding:.9cqw;box-sizing:border-box;transform:translate(-50%,-50%);border-radius:1.2cqw;background:#fff;fill:#052f2b}
.mf-vf{position:absolute;left:50%;top:50%;width:15cqw;height:15cqw;transform:translate(-50%,-50%)}
.mf-vf i{position:absolute;width:2.4cqw;height:2.4cqw;border:.28cqw solid #fff;border-radius:.6cqw}
.mf-vf i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0}.mf-vf i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0}
.mf-vf i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0}.mf-vf i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0}
.mf-line{position:absolute;left:1cqw;right:1cqw;top:10%;height:.25cqw;border-radius:9px;opacity:0;background:linear-gradient(90deg,transparent,#7fe3d3,transparent);box-shadow:0 0 2cqw .5cqw rgba(127,227,211,.6)}
.mf-scene.is-on .mf-line{animation:mf-scan 1.5s ease-in-out .9s 2 both}
@keyframes mf-scan{0%{top:8%;opacity:0}15%{opacity:1}50%{top:88%}85%{opacity:1}100%{top:8%;opacity:0}}
.mf-ok{position:absolute;left:50%;top:50%;z-index:2;display:grid;place-items:center;width:7cqw;height:7cqw;border-radius:50%;background:#13a899;color:#fff;box-shadow:0 0 0 1.2cqw rgba(19,168,153,.3);transform:translate(-50%,-50%) scale(0);opacity:0}
.mf-ok svg{width:3.6cqw;height:3.6cqw;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.mf-scene.is-on .mf-ok{animation:mf-ok .6s cubic-bezier(.2,1.35,.4,1) 2.7s forwards}
@keyframes mf-ok{to{transform:translate(-50%,-50%) scale(1);opacity:1}}

/* cartes dans le téléphone */
.mf-screen--wallet{background:#06100f}
.mf-wtitle{position:absolute;top:5.4cqw;left:2.2cqw;font:800 2.2cqw/1 var(--fx-display);letter-spacing:-.03em;color:#fff}
.mf-pass{position:absolute;left:1.6cqw;right:1.6cqw;top:10cqw;padding:1.6cqw 1.7cqw 1.8cqw;border-radius:2.1cqw;color:#06443e;background:radial-gradient(120% 90% at 100% 0%,rgba(255,255,255,.72),transparent 55%),linear-gradient(150deg,#eefbf8,#9fe3d5)}
.mf-pass .b{display:flex;align-items:center;gap:.7cqw;font:800 1.6cqw/1 var(--fx-display);letter-spacing:-.03em}
.mf-pass .b img{width:2.4cqw;height:2.4cqw;object-fit:contain}
.mf-pass .r{display:flex;align-items:flex-end;justify-content:space-between;margin-top:1.8cqw}
.mf-pass small{display:block;font:700 .75cqw/1.2 var(--fx-text);letter-spacing:.07em;text-transform:uppercase;color:rgba(6,68,62,.7)}
.mf-pass strong{display:block;font:800 2.1cqw/1 var(--fx-display);letter-spacing:-.03em;margin-top:.3cqw}
.mf-st{display:flex;gap:.3cqw;margin-top:1.7cqw}
.mf-st i{position:relative;flex:1 1 0;aspect-ratio:1;border-radius:50%;border:.15cqw solid rgba(15,143,131,.38)}
.mf-st i.on::before{content:"";position:absolute;inset:-.15cqw;border-radius:50%;background:#0f8f83 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 2l2.2 7.8L22 12l-7.8 2.2L12 22l-2.2-7.8L2 12l7.8-2.2z'/%3E%3C/svg%3E") center/56% no-repeat}
.mf-scene.is-on .mf-pass--fly{animation:mf-fly 1.3s var(--fx-ease) .5s both}
@keyframes mf-fly{from{translate:46cqw -6cqw;rotate:14deg;opacity:0}}
.mf-scene.is-on .mf-st i.on::before{animation:mf-pop .5s cubic-bezier(.2,1.35,.4,1) both;animation-delay:calc(var(--i,0) * 90ms + .5s)}
.mf-scene.is-on .mf-st i.late::before{content:"";position:absolute;inset:-.15cqw;border-radius:50%;background:#0f8f83 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 2l2.2 7.8L22 12l-7.8 2.2L12 22l-2.2-7.8L2 12l7.8-2.2z'/%3E%3C/svg%3E") center/56% no-repeat;animation:mf-pop .6s cubic-bezier(.2,1.35,.4,1) 1.8s both}
.mf-scene.is-on .mf-st i.late::after{content:"";position:absolute;inset:0;border-radius:50%;border:.2cqw solid #0f8f83;opacity:0;animation:mf-ring .8s ease-out 1.8s forwards}
@keyframes mf-pop{0%{transform:scale(1.9) rotate(-16deg);opacity:0}55%{transform:scale(.9) rotate(3deg);opacity:1}100%{transform:none;opacity:1}}
@keyframes mf-ring{from{transform:scale(1);opacity:.9}to{transform:scale(2.6);opacity:0}}
.mf-cnt{display:grid;justify-items:end}.mf-cnt span{grid-area:1/1}.mf-cnt .y{opacity:0}
.mf-scene.is-on .mf-cnt .x{animation:mf-out .3s ease 1.85s forwards}
.mf-scene.is-on .mf-cnt .y{animation:mf-in .3s ease 1.85s forwards}
@keyframes mf-out{to{opacity:0;transform:translateY(-35%)}}@keyframes mf-in{from{opacity:0;transform:translateY(35%)}to{opacity:1;transform:none}}
.mf-banner{position:absolute;z-index:3;left:1.4cqw;right:1.4cqw;top:3.4cqw;display:flex;align-items:center;gap:.9cqw;padding:.9cqw 1cqw;border-radius:1.6cqw;color:var(--fx-ink);background:rgba(255,255,255,.95);box-shadow:0 1cqw 3cqw rgba(0,0,0,.5);translate:0 -150%}
.mf-banner img{width:2.8cqw;height:2.8cqw;padding:.4cqw;border-radius:.8cqw;background:var(--fx-mint);object-fit:contain}
.mf-banner div{display:grid}.mf-banner small{font-size:.85cqw;color:var(--fx-soft)}.mf-banner b{font:800 1.2cqw/1.2 var(--fx-display)}
.mf-scene.is-on .mf-banner{animation:mf-banner 3.4s cubic-bezier(.2,1.2,.3,1) 1.9s both}
@keyframes mf-banner{0%{translate:0 -150%}12%{translate:0 0}85%{translate:0 0}100%{translate:0 -150%}}
.mf-tag{position:absolute;display:inline-flex;align-items:center;gap:.8cqw;padding:1cqw 1.6cqw;border-radius:99px;background:rgba(22,84,76,.94);border:1px solid rgba(255,255,255,.22);color:#fff;font:700 1.5cqw/1 var(--fx-text);opacity:0}
.mf-tag.t1{left:-6cqw;top:12cqw}.mf-tag.t2{right:-5cqw;bottom:10cqw}
.mf-scene.is-on .mf-tag{animation:mf-tag .7s var(--fx-ease) 1.6s both}
.mf-scene.is-on .mf-tag.t2{animation-delay:1.9s}
@keyframes mf-tag{from{opacity:0;translate:0 2cqw;scale:.9}to{opacity:1}}

/* scène 5 : tableau de bord */
.mf-dash{position:relative;width:48cqw;display:grid;grid-template-columns:5cqw 1fr;overflow:hidden;border-radius:2.4cqw;background:#f4f8f7;color:var(--fx-ink);box-shadow:0 5cqw 9cqw -3cqw rgba(0,0,0,.7)}
.mf-dash aside{display:flex;flex-direction:column;align-items:center;gap:1.6cqw;padding:2cqw 0;background:#031f1c}
.mf-dash aside img{width:2.4cqw;height:2.4cqw;object-fit:contain}
.mf-dash aside i{width:2cqw;height:2cqw;border-radius:.6cqw;background:rgba(255,255,255,.18)}
.mf-dash aside i:first-of-type{background:#7fe3d3}
.mf-dm{padding:2cqw 2cqw 0;display:grid;gap:1.4cqw}
.mf-dm h4{margin:0;font:800 1.7cqw/1.1 var(--fx-display);letter-spacing:-.03em}
.mf-k{display:grid;grid-template-columns:repeat(3,1fr);gap:1cqw}
.mf-k div{padding:1.1cqw 1.3cqw;border-radius:1.3cqw;background:#fff;border:1px solid rgba(15,32,29,.1)}
.mf-k small{display:block;font:500 1.05cqw/1.2 var(--fx-text);color:var(--fx-soft)}
.mf-k strong{display:block;font:800 2.5cqw/1.1 var(--fx-display);letter-spacing:-.03em;margin-top:.3cqw;font-variant-numeric:tabular-nums}
.mf-bars{display:flex;align-items:flex-end;gap:1cqw;height:11cqw;padding:1.4cqw 1.4cqw 0;border-radius:1.3cqw 1.3cqw 0 0;background:#fff;border:1px solid rgba(15,32,29,.1);border-bottom:0}
.mf-bars i{flex:1;height:var(--h);border-radius:.7cqw .7cqw .2cqw .2cqw;background:#0f8f83;transform-origin:bottom}
.mf-bars i:last-child{background:#031f1c}
.mf-scene.is-on .mf-dash{animation:mf-dash 1.1s var(--fx-ease) .1s both}
@keyframes mf-dash{from{translate:0 22cqw;rotate:x 22deg;opacity:0}}
.mf-scene.is-on .mf-bars i{animation:mf-bar .9s var(--fx-ease) both;animation-delay:calc(var(--k,0) * 90ms + .8s)}
@keyframes mf-bar{from{transform:scaleY(.04)}}

/* scène 6 : final */
.mf-scene--end{grid-template-columns:1fr;justify-items:center;text-align:center;align-content:center;gap:3cqw}
.mf-scene--end .mf-cap{grid-column:1;max-width:none;font-size:3.2cqw;text-align:center}
.mf-logo{width:38cqw;height:auto;filter:drop-shadow(0 0 5cqw rgba(127,227,211,.35))}
.mf-scene.is-on .mf-logo{animation:mf-logo 1.2s var(--fx-ease) .1s both}
@keyframes mf-logo{from{opacity:0;scale:.82;filter:blur(2cqw)}}

/* commandes */
.mf-controls{display:flex;align-items:center;gap:14px}
.mf-play{flex:none;display:grid;place-items:center;width:48px;height:48px;border:1.5px solid rgba(15,32,29,.28);border-radius:50%;background:transparent;color:var(--fx-ink);cursor:pointer;transition:background-color .2s,border-color .2s}
.mf-play:hover{border-color:var(--fx-ink);background:#fff}
.mf-play svg{width:18px;height:18px;fill:currentColor;stroke:none}
.mf-play .i-play{display:none}.mf-play[aria-pressed="true"] .i-play{display:block}.mf-play[aria-pressed="true"] .i-pause{display:none}
.mf-seg{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;flex:1;margin:0;padding:0;list-style:none}
.mf-seg button{position:relative;display:block;width:100%;height:22px;padding:0;border:0;background:transparent;cursor:pointer}
.mf-seg button::before{content:"";position:absolute;left:0;right:0;top:9px;height:4px;border-radius:4px;background:rgba(15,32,29,.14)}
.mf-seg i{position:absolute;left:0;top:9px;height:4px;width:calc(var(--p,0) * 100%);border-radius:4px;background:var(--fx-green-ui)}
.mf-seg button:hover::before{background:rgba(15,32,29,.28)}
@media (max-width:720px){
  .mf-stage{aspect-ratio:4/5;--ph:62cqw}
  .mf-scene{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:start;padding:7cqw 6cqw 4cqw;gap:2cqw}
  .mf-cap{grid-column:1;max-width:none;font-size:8.2cqw}
  .mf-vis{grid-column:1;min-height:0}
  .mf-paper{width:44cqw;height:26cqw}
  .mf-qr{width:21cqw;height:21cqw}.mf-vf{width:25cqw;height:25cqw}
  .mf-tag{font-size:2.8cqw;padding:1.8cqw 3cqw}.mf-tag.t1{left:-2cqw;top:6cqw}.mf-tag.t2{right:-2cqw;bottom:6cqw}
  .mf-dash{width:84cqw}.mf-dash aside{width:9cqw}.mf-dash{grid-template-columns:9cqw 1fr}
  .mf-dm h4{font-size:3.4cqw}.mf-k small{font-size:2cqw}.mf-k strong{font-size:4.6cqw}.mf-bars{height:20cqw}
  .mf-scene--end .mf-cap{font-size:6cqw}.mf-logo{width:66cqw}
  .mf-pass .b{font-size:2.8cqw}.mf-pass strong{font-size:3.8cqw}.mf-pass small{font-size:1.5cqw}.mf-pass .b img{width:4.2cqw;height:4.2cqw}
  .mf-wtitle{font-size:4cqw}.mf-banner small{font-size:1.6cqw}.mf-banner b{font-size:2.2cqw}.mf-banner img{width:5cqw;height:5cqw}
}
@media (prefers-reduced-motion:reduce){.mf-scene,.mf-scene *{animation-duration:.01ms!important;animation-delay:0ms!important}}

/* --- Correctifs du film et de la landing -------------------------------------- */
.mf-tag svg{width:2cqw;height:2cqw;flex:none;color:#7fe3d3;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mf-tag.t1{left:-12cqw;top:11cqw}
.mf-tag.t2{right:-12cqw;bottom:9cqw}
.mf-pass .b,.mf-pass strong{white-space:nowrap}
.mf-pass .b{font-size:1.45cqw}
.mf-pass strong{font-size:1.9cqw}
.pg-h1--xl{font-size:clamp(3rem,.6rem + 6.6vw,6.2rem)}
@media (max-width:720px){
  .mf-tag svg{width:3.4cqw;height:3.4cqw}
  .mf-tag.t1{left:-2cqw;top:4cqw}.mf-tag.t2{right:-2cqw;bottom:4cqw}
  .mf-pass .b{font-size:2.5cqw}.mf-pass strong{font-size:3.4cqw}
}
.mf-tag.t2{right:-4cqw}
@media (max-width:720px){
  .mf-stage{--ph:84cqw}
  .mf-qr{width:26cqw;height:26cqw}.mf-vf{width:31cqw;height:31cqw}
  .mf-tag.t2{right:-1cqw}
  .mf-pass{left:2.2cqw;right:2.2cqw;top:13cqw}
  .mf-pass .b{font-size:2.9cqw}.mf-pass strong{font-size:3.9cqw}
}


/* ==========================================================================
   Correctifs de mise en page (octobre 2026)
   ========================================================================== */
/* Une section « tight-top » placée juste sous le héros garde un vrai espace. */
.pg-hero+.pg-section--tight-top{padding-top:clamp(32px,4.5vw,64px)}
.pg-hero+.pg-legal{padding-top:clamp(36px,5vw,72px)}
@media (max-width:900px){.pg-hero+.pg-legal{padding-top:0}.pg-hero+.pg-legal .pg-doc{padding-top:20px}}
/* Contact : titre et texte en haut du panneau sombre, adresse et délai en bas. */
.pg-panel--deep{grid-template-rows:auto auto 1fr auto;align-content:stretch}
.pg-panel--deep>.pg-email{align-self:end}
.pg-panel--deep>p:last-of-type{font-size:.96875rem;max-width:26em}
/* Le filet dégradé du film reste net sur les petits écrans. */
.mf-stage{contain:layout paint}
