/* QTouch — parcours Établissement, Licence, Ambassadeur + accueil de la démo + sélecteur de langue.
   Même direction artistique risographie que le parcours Annonceur ; chaque parcours a sa couleur dominante. */
:root{--acc:#2BA58C;--acc2:#BDE3D4;--accInk:#0E1A5C}
body.p-venue{--acc:#2BA58C;--acc2:#BDE3D4}
body.p-licence{--acc:#D9467A;--acc2:#F4B6B0}
body.p-amb{--acc:#F08A1C;--acc2:#F7EE8C}

/* barre du haut : partie droite (langue + tableau de bord) */
.hud-r{display:flex;align-items:center;gap:10px;margin-left:auto}
.steps+.hud-r{margin-left:0}
.lang{display:flex;gap:2px;padding:3px;border:3px solid var(--navy);border-radius:999px;background:#fff;box-shadow:3px 3px 0 var(--navy)}
.lang button{min-width:36px;padding:5px 8px;border:0;border-radius:999px;background:none;font:800 12px var(--sans);color:var(--navy);cursor:pointer}
.lang button.on{background:var(--yellow)}
.lang button:focus-visible{outline:3px solid var(--blue);outline-offset:1px}
.hud-path{padding:6px 12px;border:3px solid var(--navy);border-radius:999px;background:var(--acc2);font:800 12px var(--sans);color:var(--navy);white-space:nowrap}
@media (max-width:760px){.hud-path{display:none}.lang button{min-width:30px;padding:4px 6px}}

/* fonds communs des scènes « dessinées en code » */
.bg-grid{background:var(--acc2);background-image:linear-gradient(rgba(14,26,92,.12) 2px,transparent 2px),linear-gradient(90deg,rgba(14,26,92,.12) 2px,transparent 2px);background-size:44px 44px}
.bg-cream{background:#FCF3E4;background-image:linear-gradient(rgba(232,71,46,.35) 2px,transparent 2px),linear-gradient(90deg,rgba(232,71,46,.35) 2px,transparent 2px);background-size:44px 44px}
.cam{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.cam>img{position:absolute;max-width:none;max-height:none}
.ov{position:absolute;pointer-events:none}
.scr0{position:absolute;overflow:hidden;background:#0E1A5C;border-radius:4px}
.scr0 .ad3{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;box-shadow:none;opacity:0;transition:opacity .4s}
.scr0 .ad3.on{opacity:1}
.title-card{position:absolute;left:clamp(16px,3vw,40px);bottom:clamp(16px,4vh,40px);z-index:6;max-width:min(440px,calc(100vw - 32px));padding:16px 20px;border:4px solid var(--navy);border-radius:20px;background:#fff;box-shadow:8px 8px 0 var(--navy);color:var(--navy);opacity:0}
.title-card .eyebrow{margin-bottom:8px}
.title-card h2{margin:0;font:400 clamp(24px,2.5vw,38px)/1 var(--disp);text-transform:uppercase;text-wrap:balance}
.title-card h2 em{display:block;font:700 .9em/1.1 var(--hand);text-transform:none;color:var(--acc)}
.title-card p{margin:8px 0 0;font:600 14px/1.45 var(--sans)}
.pill-top{position:absolute;left:50%;top:calc(76px + env(safe-area-inset-top,0px));z-index:7;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:8px 14px;border:4px solid var(--navy);border-radius:16px;background:#fff;box-shadow:6px 6px 0 var(--navy);color:var(--navy);white-space:nowrap;opacity:0}
.pill-top b{font:400 clamp(18px,1.8vw,26px)/1 var(--disp);text-transform:uppercase}
.pill-top span{font:700 13px var(--sans)}
.pill-top em{padding:4px 9px;border:3px solid var(--navy);border-radius:10px;background:var(--acc2);font:800 14px var(--sans);font-style:normal;font-variant-numeric:tabular-nums}
@media (max-width:760px){.pill-top{top:calc(64px + env(safe-area-inset-top,0px));max-width:calc(100vw - 24px);white-space:normal;flex-wrap:wrap;justify-content:center}.pill-top span{display:none}}
.s2-end .eyebrow b,.title-card .eyebrow b{color:var(--acc)}
.s2-end h1 em{color:var(--acc)}

/* étiquettes posées sur une illustration */
.tag{position:absolute;z-index:3;transform:translate(-50%,-100%);display:flex;flex-direction:column;gap:2px;padding:7px 10px;border:3px solid var(--navy);border-radius:12px;background:#fff;box-shadow:4px 4px 0 var(--navy);font:700 12px/1.25 var(--sans);color:var(--navy);white-space:nowrap;opacity:0}
.tag::after{content:"";position:absolute;left:50%;bottom:-11px;width:14px;height:14px;margin-left:-7px;background:#fff;border-right:3px solid var(--navy);border-bottom:3px solid var(--navy);transform:rotate(45deg)}
.tag b{font-weight:800}
.tag em{align-self:flex-start;margin-top:3px;padding:2px 7px;border:2px solid var(--navy);border-radius:7px;background:#e7e2d6;font:800 11px var(--sans);font-style:normal;color:#5a5f7a;font-variant-numeric:tabular-nums;transition:background .3s,color .3s}
.tag em.lost{background:#F4B6B0;color:#7a1d10;text-decoration:line-through}
.tag em.won{background:var(--acc);color:#fff;text-decoration:none}
@media (max-width:760px){.tag{font-size:10px;padding:4px 6px}.tag span{display:none}}

/* cartes génériques */
.card3{border:4px solid var(--navy);border-radius:20px;background:#fff;box-shadow:8px 8px 0 var(--navy);color:var(--navy)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:3px solid var(--navy);border-radius:999px;background:#fff;font:800 13px var(--sans);color:var(--navy);white-space:nowrap;transition:background .2s,transform .2s}
.chip.on{background:var(--acc2);box-shadow:3px 3px 0 var(--navy)}
.chip.no{background:#eee6d6;color:#7a7f99;text-decoration:line-through}
.ico{display:grid;place-items:center;width:52px;height:52px;flex:none;border:3px solid var(--navy);border-radius:14px;background:var(--acc2)}
.ico svg{width:34px;height:34px;fill:none;stroke:var(--navy);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ico svg .f{fill:var(--acc)}
.stamp{display:inline-block;padding:5px 12px;border:4px solid var(--acc);border-radius:10px;color:var(--acc);font:400 24px var(--disp);text-transform:uppercase;transform:rotate(-5deg);background:rgba(255,255,255,.85)}

/* notifications : tableau de bord, e-mail, WhatsApp */
.notifs{display:flex;flex-direction:column;gap:10px}
.nt{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:3px solid var(--navy);border-radius:16px;background:#fff;box-shadow:5px 5px 0 var(--navy);color:var(--navy);opacity:0}
.nt i{display:grid;place-items:center;width:44px;height:44px;border:3px solid var(--navy);border-radius:12px;font:400 15px var(--disp);font-style:normal;color:#fff}
.nt i.d{background:var(--blue)}.nt i.m{background:var(--red)}.nt i.w{background:#25A75B}
.nt small{display:block;font:800 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#5a5f7a}
.nt b{font:800 14px/1.3 var(--sans)}
.nt span{display:block;font:600 12.5px/1.35 var(--sans)}

/* ===== accueil de la démo : 4 parcours ===== */
.hub{position:fixed;inset:0;overflow:auto;background:#FCF3E4;background-image:linear-gradient(rgba(232,71,46,.3) 2px,transparent 2px),linear-gradient(90deg,rgba(232,71,46,.3) 2px,transparent 2px);background-size:44px 44px;touch-action:auto}
.hub-in{width:min(1200px,100%);margin:0 auto;padding:calc(96px + env(safe-area-inset-top,0px)) 16px 48px;display:flex;flex-direction:column;gap:22px;color:var(--navy)}
.hub-h{display:flex;flex-direction:column;gap:8px;max-width:760px}
.hub-h small{font:800 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.hub-h h1{font:400 clamp(40px,6vw,86px)/.95 var(--disp);text-transform:uppercase;color:var(--navy);text-wrap:balance}
.hub-h h1 em{display:block;font:700 .8em/1.1 var(--hand);text-transform:none;color:var(--red)}
.hub-h p{margin:0;font:600 clamp(15px,1.4vw,18px)/1.5 var(--sans);max-width:60ch}
.hub-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.door{display:flex;flex-direction:column;border:4px solid var(--navy);border-radius:24px;background:#fff;box-shadow:9px 9px 0 var(--navy);color:var(--navy);text-decoration:none;overflow:hidden;transition:transform .18s,box-shadow .18s}
.door:hover{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--navy)}
.door:focus-visible{outline:4px solid var(--blue);outline-offset:4px}
.door .pic{position:relative;aspect-ratio:4/3;border-bottom:4px solid var(--navy);overflow:hidden;background:var(--dc)}
.door .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.door .pic img.fig{object-fit:contain;padding:8%}
.door .n{position:absolute;left:12px;top:12px;width:40px;height:40px;border:3px solid var(--navy);border-radius:50%;background:#fff;display:grid;place-items:center;font:400 20px var(--disp)}
.door .bd{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;flex:1}
.door .bd small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#5a5f7a}
.door .bd b{font:400 30px/1 var(--disp);text-transform:uppercase}
.door .bd span{font:600 14px/1.45 var(--sans);flex:1}
.door .bd em{align-self:flex-start;margin-top:6px;padding:8px 14px;border:3px solid var(--navy);border-radius:12px;background:var(--dc);box-shadow:4px 4px 0 var(--navy);font:400 18px var(--disp);font-style:normal;text-transform:uppercase}
@media (max-width:1000px){.hub-g{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.hub-g{grid-template-columns:1fr}.door .pic{aspect-ratio:16/8}}

/* ===== parcours Établissement ===== */
.v2-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.v2-lines path{fill:none;stroke:var(--navy);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.v2-hub{position:absolute;left:50%;top:calc(96px + env(safe-area-inset-top,0px));z-index:3;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:10px 16px;border:4px solid var(--navy);border-radius:18px;background:var(--yellow);box-shadow:6px 6px 0 var(--navy);opacity:0}
.v2-hub .qlogo{width:90px;height:30px}
.v2-hub span{font:800 14px var(--sans);color:var(--navy)}
.v2-g{position:absolute;left:50%;top:56%;width:min(1180px,94vw);transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px)}
.v2c{display:flex;flex-direction:column;gap:10px;padding:16px;opacity:0}
.v2-top{display:flex;align-items:center;gap:12px}
.v2-top small,.v2-q small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.v2-top b{display:block;font:400 24px/1 var(--disp);text-transform:uppercase}
.v2-now{margin:0;font:600 14px/1.45 var(--sans);transition:opacity .3s}
.v2-q{display:flex;flex-direction:column;gap:6px;padding:12px;border:3px solid var(--navy);border-radius:14px;background:var(--acc2);opacity:0;transform:translateY(12px)}
.v2-q p{margin:0;font:700 14px/1.45 var(--sans)}
.v2-q em{align-self:flex-start;padding:4px 10px;border:3px solid var(--navy);border-radius:10px;background:var(--yellow);font:400 18px var(--disp);font-style:normal;text-transform:uppercase;opacity:0}
@media (max-width:760px){.v2-g{grid-template-columns:1fr;top:58%;gap:8px}.v2c{padding:10px;gap:6px}.v2-top b{font-size:18px}.v2-now{display:none}.v2-q{padding:8px}.v2-q p{font-size:12px}.v2-hub{padding:6px 10px}.v2-hub .qlogo{width:64px;height:22px}.v2-hub span{font-size:12px}.ico{width:40px;height:40px}.ico svg{width:26px;height:26px}}

.ph{position:absolute;overflow:hidden;border-radius:18px;background:#0E1A5C}
.ph-s{position:absolute;inset:0;display:flex;flex-direction:column;gap:7px;padding:12% 9% 9%;background:#FCF3E4;color:var(--navy);opacity:0;font-size:clamp(9px,1vw,15px)}
.ph-s small{font:800 .75em var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#5a5f7a}
.ph-s>b{font:400 2em/1 var(--disp);text-transform:uppercase}
.ph-s b.brand{color:var(--red)}
.ph-s label{font:800 .8em var(--sans)}
.ph-s p{margin:0;font:600 .85em/1.35 var(--sans)}
.ph-s p.q{font:800 1em/1.3 var(--sans)}
.ph-in{display:flex;align-items:center;padding:.6em;border:2.5px solid var(--navy);border-radius:10px;background:#fff;font:800 1em var(--sans);letter-spacing:.15em}
.ph-btn{padding:.6em;border:2.5px solid var(--navy);border-radius:10px;background:var(--acc);color:#fff;font:400 1.15em var(--disp);text-align:center;text-transform:uppercase}
.ph-btn.gray{background:#c9c5bb;color:var(--navy)}
.ph-btn.press{transform:scale(.95)}
.ph-opt{padding:.55em .7em;border:2.5px solid var(--navy);border-radius:10px;background:#fff;font:700 .9em var(--sans);transition:background .2s}
.ph-opt.on{background:var(--yellow)}
.ph-s p.ok{padding:.5em;border-radius:10px;background:var(--acc);color:#fff;font-weight:800;opacity:0}
.ph-ban{padding:.7em;border:2.5px solid var(--navy);border-radius:12px;background:var(--yellow);font:700 .9em/1.3 var(--sans)}
.ph-it{display:flex;justify-content:space-between;padding:.5em 0;border-bottom:2px dashed rgba(14,26,92,.3);font:700 .95em var(--sans)}
.ph-it em{font-style:normal;font-weight:800}
.v3-side{position:absolute;left:clamp(16px,3vw,40px);top:50%;z-index:5;width:280px;display:flex;flex-direction:column;gap:12px;transform:translateY(-40%)}
.v3-box{display:flex;align-items:center;gap:12px;padding:12px 14px;opacity:0}
.v3-box small{display:block;font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.v3-box b{display:block;font:400 32px/1 var(--disp);font-variant-numeric:tabular-nums}
.v3-box span{display:block;font:600 13px/1.35 var(--sans)}
.v3-box span b{display:inline;font:800 13px var(--sans)}
@media (max-width:760px){.v3-side{top:auto;bottom:12px;left:12px;right:12px;width:auto;transform:none;flex-direction:row;gap:8px}.v3-box{padding:8px;flex:1}.v3-box .ico{display:none}.v3-box b{font-size:20px}.v3-box span{font-size:10px}}

.v4-bag{position:absolute;right:clamp(16px,3vw,40px);bottom:clamp(16px,4vh,40px);z-index:6;width:min(520px,calc(100vw - 32px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;opacity:0}
.v4-bag>small{grid-column:1/-1;font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.v4-col b{display:block;margin-bottom:6px;font:400 16px/1.05 var(--disp);text-transform:uppercase}
.v4-col div{display:flex;flex-direction:column;gap:5px}
.v4-col .chip{font-size:12px;padding:4px 9px;opacity:0}
@media (max-width:760px){.v4-bag{padding:10px;gap:6px}.v4-col b{font-size:12px}.v4-col .chip{font-size:10px;padding:3px 6px}}

.v5{position:absolute;left:50%;top:55%;width:min(1100px,94vw);transform:translate(-50%,-50%);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(16px,3vw,40px);align-items:start}
.v5-f{display:flex;flex-direction:column;gap:12px;padding:16px}
.v5-h{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:3px solid var(--navy)}
.v5-h .qlogo{width:70px;height:24px}
.v5-h span{font:800 12px var(--sans);letter-spacing:.08em;text-transform:uppercase}
.v5-st{display:flex;flex-direction:column;gap:8px;opacity:.25;transition:opacity .3s}
.v5-st.on{opacity:1}
.v5-st small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.v5-st label{display:flex;flex-direction:column;gap:4px;font:800 12px var(--sans);flex:1}
.fld5{min-height:36px;padding:7px 10px;border:3px solid var(--navy);border-radius:10px;background:#fff;font:600 14px var(--sans)}
.v5-r{display:flex;flex-wrap:wrap;gap:8px}
.v5-f .ed-pub{align-self:flex-start;font-size:18px;padding:10px 14px;opacity:.3}
.v5-n{display:flex;flex-direction:column;gap:14px}
.v5-ok{display:flex;flex-direction:column;gap:12px;padding:12px;opacity:0}
.v5-ad{width:100%;aspect-ratio:16/9;box-shadow:5px 5px 0 var(--navy)}
.v5-bt{display:flex;align-items:center;justify-content:space-between;gap:10px}
.v5-bt .ed-pub{font-size:18px;padding:10px 14px}
.v5-earn{font:400 34px var(--disp);color:var(--acc);opacity:0}
@media (max-width:760px){.v5{grid-template-columns:1fr;gap:10px;top:57%}.v5-f{padding:10px;gap:8px}.fld5{min-height:28px;font-size:12px;padding:4px 8px}.v5-st .chip{font-size:11px;padding:3px 8px}.v5-n .nt{padding:6px 8px;grid-template-columns:32px minmax(0,1fr)}.nt i{width:32px;height:32px}.nt span{display:none}.v5-ad{display:none}}

.v6{position:absolute;left:50%;top:55%;width:min(1100px,94vw);transform:translate(-50%,-50%);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto;gap:16px 28px}
.v6-menu{position:relative;grid-row:1/3;display:flex;flex-direction:column;gap:8px;padding:18px 18px 22px;background:#FCF3E4;overflow:visible}
.v6-menu small,.v6-ev small,.v6-k small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.mi{display:flex;justify-content:space-between;padding:8px 0;border-bottom:2px dashed rgba(14,26,92,.35);font:400 26px var(--disp);text-transform:uppercase}
.mi em{font-style:normal}
.v6-hero{position:absolute;right:-30px;bottom:-30px;width:clamp(120px,15vw,200px);max-width:none;filter:drop-shadow(6px 6px 0 #0E1A5C);opacity:0}
.v6-st{position:absolute;left:18px;bottom:-18px;opacity:0}
.v6-ev{display:grid;grid-template-columns:minmax(0,1fr) 90px;align-items:center;gap:4px 12px;padding:14px;background:var(--acc2);opacity:0}
.v6-ev b{font:400 26px/1 var(--disp);text-transform:uppercase}
.v6-ev span{font:700 13px var(--sans)}
.v6-ev img{grid-column:2;grid-row:1/4;width:90px;max-width:none}
.v6-k{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;opacity:0}
.v6-k .card3{padding:10px 12px;box-shadow:5px 5px 0 var(--navy)}
.v6-k b{display:block;font:400 30px/1 var(--disp);font-variant-numeric:tabular-nums}
.v6-loop{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;opacity:0}
.v6-loop span{padding:7px 12px;border:3px solid var(--navy);border-radius:999px;background:var(--yellow);font:800 14px var(--sans)}
.v6-loop i{font:800 20px var(--sans);font-style:normal}
@media (max-width:760px){.v6{grid-template-columns:1fr;gap:10px;top:56%}.v6-menu{grid-row:auto;padding:12px}.mi{font-size:18px;padding:4px 0}.v6-hero{width:90px;right:-8px;bottom:-14px}.v6-ev{grid-template-columns:minmax(0,1fr) 60px;padding:10px}.v6-ev img{width:60px}.v6-ev b{font-size:20px}.v6-k b{font-size:20px}.v6-loop span{font-size:11px;padding:4px 8px}}
@media (max-width:760px){.hud-r .hud-cta{display:none}}

/* ===== parcours Licence ===== */
.mk{position:absolute;z-index:3;display:flex;align-items:center;gap:6px;transform:translate(-50%,-50%);opacity:0}
.mk i{width:18px;height:18px;flex:none;border:3px solid var(--navy);border-radius:50%;background:#bdb8c9;transition:background .3s,transform .3s}
.mk span{padding:3px 8px;border:2.5px solid var(--navy);border-radius:8px;background:#fff;font:800 11px var(--sans);color:var(--navy);white-space:nowrap}
.mk.av i,.d-av{background:#2BA58C}.mk.ep i,.d-ep{background:#F7EE8C}.mk.ex i,.d-ex{background:#D9467A}.d-off{background:#bdb8c9}
.mk.av i,.mk.ep i,.mk.ex i{transform:scale(1.25)}
.l1-leg{position:absolute;right:clamp(16px,3vw,40px);bottom:clamp(16px,4vh,40px);z-index:6;display:flex;flex-direction:column;gap:6px;padding:12px 14px;opacity:0}
.l1-leg span{display:flex;align-items:center;gap:8px;font:700 13px var(--sans)}
.l1-leg i{width:16px;height:16px;border:3px solid var(--navy);border-radius:50%}
@media (max-width:760px){.mk span{display:none}.l1-leg{left:12px;right:12px;bottom:12px;flex-direction:row;flex-wrap:wrap;padding:8px}.l1-leg span{font-size:11px}}

.l2{position:absolute;left:50%;top:55%;width:min(1100px,94vw);transform:translate(-50%,-50%);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) minmax(0,.9fr);gap:clamp(14px,2vw,26px);align-items:start}
.l2-id{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:var(--acc2);text-align:center}
.l2-id img{width:min(200px,100%);max-width:none;filter:drop-shadow(5px 5px 0 #0E1A5C)}
.l2-id small,.l2-f small,.l2-c small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.l2-id b{display:block;font:400 30px/1 var(--disp);text-transform:uppercase}
.l2-id span{font:700 13px var(--sans)}
.l2-f{display:flex;flex-direction:column;gap:9px;padding:16px}
.l2-f>label{font:800 12px var(--sans)}
.l2-f label{display:flex;flex-direction:column;gap:4px;font:800 12px var(--sans);flex:1}
.l2-f .ed-pub{align-self:flex-start;font-size:18px;padding:10px 14px}
.l2-c{position:relative;display:flex;flex-direction:column;gap:9px;padding:16px;background:#FCF3E4;opacity:0}
.l2-c b{font:400 22px/1.05 var(--disp);text-transform:uppercase}
.l2-c i{display:block;height:8px;border-radius:4px;background:rgba(14,26,92,.18)}
.l2-c i.s{width:60%}
.l2-c .stamp{align-self:center;margin-top:8px;font-size:20px;opacity:0}
@media (max-width:760px){.l2{grid-template-columns:1fr;gap:10px}.l2-id{flex-direction:row;text-align:left;padding:10px}.l2-id img{width:70px}.l2-f{padding:10px;gap:6px}.l2-f .chip{font-size:11px;padding:3px 8px}.l2-c{padding:10px}.l2-c i{display:none}}

.l3-k{position:absolute;left:clamp(16px,3vw,40px);top:50%;z-index:5;width:300px;display:flex;flex-direction:column;gap:10px;transform:translateY(-44%)}
.kit{position:relative;display:flex;flex-direction:column;padding:10px 12px 10px 52px;box-shadow:5px 5px 0 var(--navy);opacity:0}
.kit .kn{position:absolute;left:10px;top:50%;width:30px;height:30px;margin-top:-15px;border:3px solid var(--navy);border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;font:400 16px var(--disp)}
.kit b{font:400 18px/1.05 var(--disp);text-transform:uppercase}
.kit span{font:600 12px var(--sans)}
.l3-demo{position:absolute;right:clamp(16px,3vw,40px);top:50%;z-index:5;width:min(480px,40vw);display:flex;flex-direction:column;gap:14px;padding:14px;transform:translateY(-44%);opacity:0}
.l3-ad{position:relative;aspect-ratio:16/9}
.l3-ad .ad3{position:absolute;inset:0;width:100%;height:100%;box-shadow:5px 5px 0 var(--navy)}
.l3-hero{position:absolute;right:-6%;bottom:-12%;width:38%;max-width:none;filter:drop-shadow(5px 5px 0 #0E1A5C);opacity:0}
.l3-g{display:grid;grid-template-columns:110px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:14px;opacity:0}
.l3-g .wheel{grid-row:1/3;width:110px;height:110px;overflow:visible}
.wheel path{stroke:#0E1A5C;stroke-width:2.5}
.wheel .hub{fill:#F7EE8C;stroke:#0E1A5C;stroke-width:3}
.l3-g b{font:400 24px/1 var(--disp);text-transform:uppercase}
.l3-g span{font:700 13px var(--sans)}
@media (max-width:760px){.l3-k{top:auto;bottom:12px;left:12px;right:12px;width:auto;transform:none;display:grid;grid-template-columns:1fr 1fr;gap:6px}.kit{padding:6px 6px 6px 38px}.kit .kn{width:24px;height:24px;margin-top:-12px;left:7px;font-size:13px}.kit b{font-size:13px}.kit span{display:none}.l3-demo{left:12px;right:12px;width:auto;top:calc(120px + env(safe-area-inset-top,0px));transform:none;padding:10px}.l3-g{grid-template-columns:70px minmax(0,1fr)}.l3-g .wheel{width:70px;height:70px}}

.l4{position:absolute;left:50%;top:55%;width:min(1100px,94vw);transform:translate(-50%,-50%);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(16px,3vw,40px);align-items:start}
.l4-l{display:flex;flex-direction:column;gap:14px}
.l4-act{display:flex;gap:10px;opacity:0}
.l4-act .ed-pub{font-size:18px;padding:10px 16px}
.l4-act .l4-no{background:#fff}
.l4-auto{display:flex;flex-direction:column;gap:4px;padding:12px 14px;opacity:0}
.l4-auto b{font:400 22px/1 var(--disp);text-transform:uppercase}
.l4-auto span{font:700 13px var(--sans)}
.l4-auto em{align-self:flex-start;padding:4px 10px;border:3px solid var(--navy);border-radius:10px;background:#F4B6B0;font:800 12px var(--sans);font-style:normal}
.l4-r{display:flex;flex-direction:column;gap:12px}
.l4-k{padding:12px 16px;opacity:0}
.l4-k small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.l4-k b{display:block;font:400 40px/1.05 var(--disp);font-variant-numeric:tabular-nums}
.l4-k span{font:600 13px var(--sans)}
@media (max-width:760px){.l4{grid-template-columns:1fr;gap:10px}.l4 .nt span{display:none}.l4-r{flex-direction:row;gap:6px}.l4-k{padding:8px;flex:1}.l4-k b{font-size:20px}.l4-k span{display:none}.l4-auto{padding:8px}}

/* ===== parcours Ambassadeur ===== */
.a1-c{position:absolute;right:clamp(16px,3vw,40px);top:50%;z-index:5;width:min(420px,40vw);display:flex;flex-direction:column;gap:12px;padding:16px;transform:translateY(-45%);opacity:0}
.a1-h{display:flex;align-items:center;gap:12px}
.a1-h .qlogo{width:64px;height:22px;flex:none}
.a1-h small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.a1-h b{display:block;font:400 24px/1 var(--disp);text-transform:uppercase}
.a1-h em{margin-left:auto;padding:6px 10px;border:3px solid var(--navy);border-radius:12px;background:var(--yellow);font:400 26px var(--disp);font-style:normal}
.a1-m{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.a1-m li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:3px solid var(--navy);border-radius:12px;background:#fff;font:700 14px var(--sans);transition:background .25s}
.a1-m li i{width:22px;height:22px;flex:none;border:3px solid var(--navy);border-radius:50%;background:#fff;display:grid;place-items:center;font:800 12px var(--sans);font-style:normal}
.a1-m li.on{background:var(--acc2)}.a1-m li.on i{background:var(--acc);color:#fff}.a1-m li.on i::after{content:"✓"}
.a1-bar{height:14px;border:3px solid var(--navy);border-radius:99px;overflow:hidden;background:#fff}
.a1-bar i{display:block;height:100%;width:0;background:var(--acc)}
.a1-st{align-self:center;font-size:24px;opacity:0}
@media (max-width:760px){.a1-c{left:12px;right:12px;width:auto;top:auto;bottom:12px;transform:none;padding:10px;gap:8px}.a1-m li{font-size:12px;padding:5px 8px}.a1-h b{font-size:18px}.a1-h em{font-size:20px}}
.a2-zone{position:absolute;border:5px dashed var(--navy);border-radius:50%;background:rgba(240,138,28,.28);opacity:0}
.pin2{position:absolute;z-index:3;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;opacity:0}
.pin2 b{width:30px;height:30px;border:3px solid var(--navy);border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--acc);box-shadow:3px 3px 0 var(--navy)}
.pin2 span{margin-top:6px;padding:2px 7px;border:2.5px solid var(--navy);border-radius:8px;background:#fff;font:800 11px var(--sans);white-space:nowrap}
.a2-p{position:absolute;right:clamp(16px,3vw,40px);top:50%;z-index:5;width:300px;display:flex;flex-direction:column;gap:6px;padding:14px;transform:translateY(-45%);opacity:0}
.a2-p small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.a2-r{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-bottom:2px dashed rgba(14,26,92,.3);font:700 13px var(--sans)}
.a2-r b{font:400 26px var(--disp);font-variant-numeric:tabular-nums}
.a2-r.hot{border:0;padding:8px 10px;border-radius:12px;background:var(--yellow);border:3px solid var(--navy)}
@media (max-width:760px){.pin2 span{display:none}.a2-p{left:12px;right:12px;width:auto;top:auto;bottom:12px;transform:none;padding:10px}.a2-r{padding:3px 0;font-size:12px}.a2-r b{font-size:18px}}
.a3-l{position:absolute;left:clamp(16px,3vw,40px);top:50%;z-index:5;width:260px;display:flex;flex-direction:column;gap:12px;transform:translateY(-50%)}
.a3-k{padding:12px 14px;opacity:0}
.a3-k small,.a3-brief small,.a3-win small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.a3-k b{display:block;font:400 40px/1.05 var(--disp);font-variant-numeric:tabular-nums}
.a3-k span{font:600 13px/1.35 var(--sans)}
.a3-brief{position:absolute;right:clamp(16px,3vw,40px);top:calc(130px + env(safe-area-inset-top,0px));z-index:5;width:300px;display:flex;flex-direction:column;gap:4px;padding:14px;background:var(--acc2);opacity:0}
.a3-brief b{font:400 26px/1 var(--disp);text-transform:uppercase}
.a3-brief span{font:700 13px/1.4 var(--sans)}
.a3-win{position:absolute;left:50%;bottom:clamp(16px,4vh,40px);z-index:6;width:min(900px,94vw);transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.a3-win .card3{display:flex;flex-direction:column;gap:2px;padding:12px 14px;opacity:0}
.a3-win b{font:400 24px/1.05 var(--disp);text-transform:uppercase}
.a3-win span{font:600 13px var(--sans)}
@media (max-width:760px){.a3-l{top:calc(110px + env(safe-area-inset-top,0px));transform:none;width:auto;right:12px;left:12px;flex-direction:row;gap:8px}.a3-k{flex:1;padding:8px}.a3-k b{font-size:22px}.a3-k span{display:none}.a3-brief{top:auto;bottom:150px;left:12px;right:12px;width:auto;padding:10px}.a3-win{gap:6px}.a3-win .card3{padding:8px}.a3-win b{font-size:14px}.a3-win span{display:none}}
.a1-h em{white-space:nowrap}
body.p-ann{--acc:#1D3FD6;--acc2:#BCD0FF}@media (max-width:1460px){.p-ann .hud-path{display:none}}
body.hub-page{touch-action:auto;overflow:auto}

/* bouton retour */
.hud-back{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:3px solid var(--navy);border-radius:999px;background:#fff;box-shadow:3px 3px 0 var(--navy);font:800 13px var(--sans);color:var(--navy);text-decoration:none;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.hud-back span{font-size:16px;line-height:1}
.hud-back:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--navy)}
.hud-back:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
@media (max-width:1460px){.p-ann .hud-back b{display:none}}
@media (max-width:760px){.hud-back{padding:6px 10px}.hud-back b{display:none}}

/* ===== accueil : décor « affiche risographie » ===== */
body.hub-page{background:#FCF3E4;background-image:linear-gradient(rgba(232,71,46,.28) 2px,transparent 2px),linear-gradient(90deg,rgba(232,71,46,.28) 2px,transparent 2px);background-size:44px 44px}
.hub-page .hub{background:none}
.hub-deco{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.hd-sun svg{position:absolute;left:50%;top:50%;width:62%;height:auto;transform:translate(-50%,-50%);color:var(--navy);overflow:visible}
.hd-sun{position:absolute;right:6vw;top:9vh;width:clamp(120px,16vw,240px);aspect-ratio:1;border:5px solid var(--navy);border-radius:50%;background:var(--yellow);box-shadow:10px 10px 0 var(--navy);background-image:radial-gradient(rgba(14,26,92,.18) 1.4px,transparent 1.6px);background-size:9px 9px}
.hd-q{position:absolute;left:-4vw;top:12vh;width:clamp(260px,34vw,520px);height:auto;color:#F4B6B0;opacity:.75;transform:rotate(-12deg);filter:drop-shadow(8px 8px 0 rgba(14,26,92,.25))}
.hd-floor{position:absolute;left:0;right:0;bottom:0;height:34vh;background:var(--blue);border-top:5px solid var(--navy);background-image:radial-gradient(rgba(246,237,221,.22) 2px,transparent 2.3px);background-size:14px 14px}
.hd-band{position:absolute;left:-10vw;right:-10vw;bottom:calc(34vh - 30px);transform:rotate(-3deg);border-block:5px solid var(--navy);background:var(--red);overflow:hidden}
.hd-track{display:flex;align-items:center;gap:28px;width:max-content;padding:10px 0;animation:hdmq 38s linear infinite}
.hd-track span{font:400 clamp(26px,3vw,44px)/1 var(--disp);text-transform:uppercase;color:var(--cream);letter-spacing:.5px}
.hd-track i{font-style:normal;font-size:24px;color:var(--yellow)}
@keyframes hdmq{to{transform:translateX(-50%)}}
.hd-stk{position:absolute;padding:8px 14px;border:4px solid var(--navy);border-radius:999px;background:#fff;box-shadow:5px 5px 0 var(--navy);font:400 clamp(16px,1.5vw,22px) var(--disp);text-transform:uppercase;color:var(--navy);animation:hdfl 6s ease-in-out infinite}
.hd-stk.s1{right:22vw;top:12vh;background:var(--mint);transform:rotate(8deg)}
.hd-stk.s2{right:4vw;top:38vh;background:var(--pink);transform:rotate(-6deg);animation-delay:-2s}
.hd-stk.s3{left:63vw;top:33vh;background:var(--yellow);transform:rotate(-4deg);animation-delay:-4s}
.hd-qoyu{position:absolute;left:2vw;bottom:2vh;width:clamp(110px,12vw,190px);max-width:none;filter:drop-shadow(6px 6px 0 rgba(14,26,92,.5));animation:hdbob 3.6s ease-in-out infinite}
.hd-blaze{position:absolute;right:3vw;bottom:5vh;width:clamp(110px,11vw,180px);max-width:none;filter:drop-shadow(6px 6px 0 rgba(14,26,92,.5));animation:hdbob 3s ease-in-out infinite;animation-delay:-1.2s}
.hd-c{position:absolute;width:16px;height:16px;border:3px solid var(--navy);animation:hdfl 7s ease-in-out infinite}
.hd-c.c1{left:40vw;top:26vh;background:var(--yellow);border-radius:50%}
.hd-c.c2{left:30vw;top:8vh;background:var(--mint);transform:rotate(20deg)}
.hd-c.c3{right:34vw;top:30vh;background:var(--pink);border-radius:50%;animation-delay:-3s}
.hd-c.c4{left:12vw;top:40vh;background:var(--red);transform:rotate(45deg);animation-delay:-1s}
.hd-c.c5{right:14vw;top:58vh;background:var(--yellow);transform:rotate(12deg);animation-delay:-5s}
.hd-c.c6{left:58vw;top:44vh;background:var(--mint);border-radius:50%;animation-delay:-2.5s}
@keyframes hdfl{50%{translate:0 -10px}}
@keyframes hdbob{50%{translate:0 -12px;rotate:-3deg}}
.hub-page .hub-in{position:relative;z-index:1}
.hub-page .hub-h{padding:20px 24px;border:4px solid var(--navy);border-radius:24px;background:#fff;box-shadow:10px 10px 0 var(--navy);align-self:flex-start}
@media (max-width:760px){.hd-stk,.hd-c,.hd-blaze{display:none}.hd-qoyu{width:90px}.hd-sun{width:90px;top:12vh;right:4vw}.hub-page .hub-h{padding:14px}}
@media (prefers-reduced-motion:reduce){.hd-track,.hd-stk,.hd-qoyu,.hd-blaze,.hd-c{animation:none}}

/* ===== 03 · Wi-Fi : écran de téléphone ajusté, avant / après ===== */
.ph{container-type:size;border-radius:7%/4%}
.ph-bar{position:absolute;left:0;right:0;top:0;z-index:2;display:flex;justify-content:space-between;padding:3.5cqh 9cqw 0;font:800 3.6cqw var(--sans);color:var(--navy)}
.ph .ph-s{padding:12cqh 8cqw 6cqh;gap:2.2cqh;font-size:5cqw;justify-content:flex-start}
.ph .ph-s small{font-size:3.6cqw}
.ph .ph-s>b{font-size:10cqw}
.ph .ph-s label{font-size:4.2cqw}
.ph .ph-in{font-size:5cqw;padding:2.2cqh 4cqw;border-width:2px}
.ph .ph-btn{font-size:6cqw;padding:2cqh;border-width:2px}
.wifi-ic{display:grid;place-items:center;width:24cqw;height:24cqw;margin:1cqh auto 1cqh 0;border:3px solid var(--navy);border-radius:50%;background:#e7e2d6}
.wifi-ic svg{width:64%;height:64%;fill:none;stroke:var(--navy);stroke-width:4.5;stroke-linecap:round}
.wifi-ic svg .f{fill:var(--navy);stroke:none}
.wifi-ic.w{width:18cqw;height:18cqw;margin:0;background:#fff}
.ph-zero{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding:2cqh 5cqw;border:3px solid var(--navy);border-radius:14px;background:#F4B6B0}
.ph-zero b{font:400 11cqw/1 var(--disp);color:#9a1f10}
.ph-b{background:linear-gradient(180deg,#E8472E 0 27%,#FCF3E4 27%)!important}
.brand-hd{display:flex;align-items:center;gap:4cqw;color:#fff;padding-top:1cqh}
.brand-hd small{color:#ffe1d6!important}
.brand-hd b{display:block;font:400 13cqw/1 var(--disp);letter-spacing:1px;color:#fff;text-shadow:3px 3px 0 #0E1A5C}
.ph .ph-s p.q{margin-top:3cqh;font:800 5.6cqw/1.25 var(--sans)}
.drinks{display:grid;grid-template-columns:repeat(3,1fr);gap:3cqw}
.dk{display:flex;flex-direction:column;align-items:center;gap:1.2cqh;padding:2cqh 1cqw;border:2.5px solid var(--navy);border-radius:12px;background:#fff;font:800 3.6cqw/1.1 var(--sans);text-align:center;transition:transform .2s,background .2s}
.dk i{width:9cqw;height:15cqw;border:2.5px solid var(--navy);border-radius:3cqw 3cqw 2cqw 2cqw;background:linear-gradient(var(--d) 0 0) bottom/100% 72% no-repeat,#fff;position:relative}
.dk i::before{content:"";position:absolute;left:28%;right:28%;top:-4cqw;height:4cqw;border:2.5px solid var(--navy);border-bottom:0;border-radius:2px 2px 0 0;background:#fff}
.dk.on{background:var(--yellow);transform:scale(1.08) rotate(-3deg);box-shadow:3px 3px 0 var(--navy)}
.ph .ph-s p.ok{font-size:4.3cqw;padding:1.6cqh 3cqw}
.ph-earn{margin-top:auto;display:flex;align-items:center;gap:3cqw;padding:2cqh 5cqw;border:3px solid var(--navy);border-radius:14px;background:var(--acc);color:#fff}
.ph-earn small{color:#dff5ee!important}
.ph-earn b{font:400 11cqw/1 var(--disp)}
.ph-earn span{font:700 3.6cqw/1.2 var(--sans)}
.ph .ph-ban{font-size:4.4cqw}.ph .ph-it{font-size:4.8cqw}
.mock{position:absolute;z-index:4;opacity:0;pointer-events:none}
.mock-in{position:absolute;inset:0;container-type:size;display:flex;flex-direction:column;gap:2.4cqh;padding:12cqh 8cqw;border:10px solid var(--navy);border-radius:9%/5%;background:#e9e5dc;color:var(--navy);filter:grayscale(.6)}
.mock-in small{font:800 3.6cqw var(--sans);text-transform:uppercase;letter-spacing:.1em;color:#5a5f7a}
.mock-in b{font:400 10cqw/1 var(--disp);text-transform:uppercase}
.mock-in .ph-in{font-size:5cqw;padding:2cqh 4cqw}
.mock-in .ph-btn{font-size:6cqw;padding:2cqh}
.ba{position:absolute;z-index:5;padding:7px 14px;border:4px solid var(--navy);border-radius:12px;box-shadow:5px 5px 0 var(--navy);font:400 clamp(16px,1.6vw,24px)/1 var(--disp);text-transform:uppercase;white-space:nowrap;color:var(--navy)}
.ba-a{left:50%;bottom:-22px;transform:translateX(-50%) rotate(-3deg);background:#F4B6B0}
.ba-b{left:0;top:0;opacity:0;background:var(--yellow);transform:rotate(3deg)}
@media (max-width:760px){.mock{display:none}.ba-b{font-size:14px}}

/* ===== 05 · inscription : fiche, aperçu, demandes vérifiées ===== */
.v5s{position:absolute;left:50%;top:55%;transform-origin:50% 50%;opacity:0}
.v5-f{width:min(620px,92vw);display:flex;flex-direction:column;gap:12px;padding:18px}
.v5-card{width:min(860px,94vw);display:flex;flex-direction:column;align-items:center;gap:18px}
.vc5{width:min(520px,92vw);overflow:hidden;padding:0}
.vc5-img{position:relative;aspect-ratio:16/8;border-bottom:4px solid var(--navy);overflow:hidden}
.vc5-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.vc5-live{position:absolute;left:12px;top:12px;padding:5px 10px;border:3px solid var(--navy);border-radius:10px;background:var(--acc);color:#fff;font:800 13px var(--sans)}
.vc5-b{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px}
.vc5-b small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.vc5-b>b{font:400 34px/1 var(--disp);text-transform:uppercase}
.vc5-b>span{font:700 14px var(--sans)}
.vc5-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:8px;border-top:2px dashed rgba(14,26,92,.3);font:700 14px var(--sans)}
.vc5-row em{padding:5px 10px;border:3px solid var(--navy);border-radius:10px;background:var(--yellow);font:400 20px var(--disp);font-style:normal}
.eyes{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.eye{display:flex;align-items:center;gap:8px;padding:7px 12px 7px 7px;border:3px solid var(--navy);border-radius:999px;background:#fff;box-shadow:4px 4px 0 var(--navy);font:800 13px var(--sans);opacity:0}
.eye i{width:28px;height:28px;border:2.5px solid var(--navy);border-radius:50%;display:grid;place-items:center;color:#fff;font:400 15px var(--disp);font-style:normal}
.v5-dash{width:min(1080px,94vw);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(16px,3vw,36px);align-items:start}
.v5-lab{display:block;margin-bottom:10px;font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.v5d-r{display:flex;flex-direction:column;gap:12px;padding:16px;opacity:0}
.v5r-h small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.v5r-h b{display:block;font:400 26px/1.05 var(--disp);text-transform:uppercase}
.v5d-r .v5-ad{width:100%;aspect-ratio:16/7}
.match{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.match li{display:flex;align-items:center;gap:10px;font:700 14px var(--sans);opacity:.25;transition:opacity .25s}
.match li::before{content:"";width:22px;height:22px;flex:none;border:3px solid var(--navy);border-radius:50%;background:#fff}
.match li.on{opacity:1}
.match li.on::before{content:"✓";display:grid;place-items:center;background:var(--acc);color:#fff;font:800 13px var(--sans)}
.m100{align-self:flex-start;padding:5px 12px;border:3px solid var(--navy);border-radius:10px;background:var(--acc2);font:800 13px var(--sans);opacity:0}
@media (max-width:760px){.v5-dash{grid-template-columns:1fr;gap:10px}.v5-dash .nt span{display:none}.v5d-r{padding:10px;gap:8px}.v5d-r .v5-ad{display:none}.match li{font-size:12px}.vc5-b>b{font-size:26px}}
/* accueil : seulement les 4 parcours, centrés */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hub-page .hub-in{min-height:100%;justify-content:center;padding-block:calc(80px + env(safe-area-inset-top,0px)) 32px}
.hub-page .hub{display:flex}
.hub-page .hub-in{flex:1}
/* accueil : cartes plus compactes */
.hub-page .hub-in{width:min(1040px,100%)}
.hub-page .hub-g{gap:16px}
.hub-page .door{border-radius:20px;box-shadow:7px 7px 0 var(--navy)}
.hub-page .door .pic{aspect-ratio:16/11}
.hub-page .door .n{width:32px;height:32px;font-size:16px;left:10px;top:10px}
.hub-page .door .bd{padding:10px 14px 14px;gap:4px}
.hub-page .door .bd small{font-size:10px}
.hub-page .door .bd b{font-size:24px}
.hub-page .door .bd span{font-size:12.5px;line-height:1.4}
.hub-page .door .bd em{font-size:15px;padding:6px 11px;margin-top:4px;box-shadow:3px 3px 0 var(--navy)}
.hub-page .hub-in{flex:0 1 1040px;max-width:1040px;margin:0 auto}
.hud-logo img{height:30px;width:auto;max-width:none;display:block}@media (max-width:760px){.hud-logo img{height:24px}}

/* ===== Établissement v3 ===== */
.p-venue .steps li{padding:5px 7px;font-size:10.5px}
@media (max-width:1500px){.p-venue .steps li:not(.on){display:none}}
/* téléphone dessiné en code (remplace celui de l'illustration) */
.phx{position:absolute;z-index:4;border:.55em solid var(--navy);border-radius:1.6em;background:#0E1A5C;box-shadow:.5em .5em 0 rgba(14,26,92,.35);overflow:hidden}
.phx-in{position:absolute;inset:0;background:#FCF3E4;border-radius:1em;overflow:hidden;color:var(--navy)}
.phx .ph-bar{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;justify-content:space-between;padding:.7em 1.1em 0;font:800 .62em var(--sans)}
.phx.dim .phx-in::after{content:"";position:absolute;inset:0;background:#0E1A5C}
.pg{position:absolute;inset:0;display:flex;flex-direction:column;gap:.7em;padding:2.6em 1.1em 1.2em;opacity:0}
.pg small{font:800 .58em var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#5a5f7a}
.pg>b{font:400 1.7em/1 var(--disp);text-transform:uppercase}
.pg label{font:800 .7em var(--sans)}
.pg .ph-in{padding:.6em;border:2px solid var(--navy);border-radius:.6em;background:#fff;font:800 .9em var(--sans);letter-spacing:.15em}
.pg .ph-btn{padding:.6em;border:2px solid var(--navy);border-radius:.7em;background:var(--acc);color:#fff;font:400 1em var(--disp);text-align:center;text-transform:uppercase;box-shadow:.2em .2em 0 var(--navy)}
.pg .ph-btn.gray{background:#c9c5bb;color:var(--navy);box-shadow:none}
.pg .ph-btn.done{background:var(--teal)}
.pg p{margin:0;font:600 .72em/1.35 var(--sans)}
.pg .wifi-ic{width:3.2em;height:3.2em;margin:0}
.pg-b{background:#e9e5dc}
.pg-ad{padding:0}
.pg-ad>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.pg-ad-b{position:absolute;left:.8em;right:.8em;bottom:1.2em;padding:.7em;border:2px solid var(--navy);border-radius:.8em;background:#fff;text-align:center}
.pg-ad-b b{display:block;font:400 1.15em var(--disp);text-transform:uppercase}
.tapme{position:absolute;left:50%;bottom:4.4em;width:2.4em;height:2.4em;margin-left:-1.2em;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 .5em rgba(255,255,255,.35);animation:pulse6 1.2s infinite}
.pg-q{padding-top:0;background:linear-gradient(180deg,#E8472E 0 30%,#FCF3E4 30%)}
.pg-q .brand-hd{padding-top:2.6em;gap:.6em}
.pg-q .brand-hd .wifi-ic{width:2.6em;height:2.6em}
.pg-q .brand-hd small{color:#ffe1d6}
.pg-q .brand-hd b{font:400 2em/1 var(--disp);color:#fff;text-shadow:2px 2px 0 #0E1A5C}
.pg-q p.q{margin-top:.6em;font:800 .95em/1.25 var(--sans)}
.pg-q .drinks{gap:.4em}
.pg-q .dk{font-size:.62em;padding:.7em .2em}
.pg-q .dk i{width:2.2em;height:3.4em;border-radius:.7em .7em .5em .5em}
.pg-q .dk i::before{top:-.9em;height:.9em}
.pg-ok{align-items:center;text-align:center;justify-content:center}
.ok-big{width:3em;height:3em;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font:800 1.6em var(--sans);border:3px solid var(--navy)}
.pg-ok>span{font:700 .75em var(--sans)}
.coupon{width:100%;margin-top:.6em;padding:.8em;border:3px dashed var(--navy);border-radius:.9em;background:var(--yellow)}
.coupon b{display:block;font:400 2.6em/1 var(--disp);color:var(--red)}
.coupon span{font:800 .72em var(--sans)}
.phx-before{transform-origin:50% 50%}
.phx-before .pg-b{opacity:1}
.phx-before .ba-a{position:absolute;left:50%;bottom:.6em;transform:translateX(-50%) rotate(-3deg);font-size:.9em}
.earn3{position:absolute;left:clamp(16px,6vw,90px);top:50%;z-index:6;width:300px;margin-top:-90px;display:flex;flex-direction:column;gap:4px;padding:16px 18px;opacity:0}
.earn3 small{font:800 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.earn3>b{font:400 64px/1 var(--disp);color:var(--teal)}
.earn3>span{font:700 14px var(--sans)}
.earn3 em{margin-top:6px;padding:8px 10px;border:3px solid var(--navy);border-radius:12px;background:var(--yellow);font:700 13px var(--sans);font-style:normal}
.v3-box3{position:absolute;left:clamp(16px,6vw,90px);top:50%;margin-top:120px;z-index:6;width:300px;display:flex;align-items:center;gap:12px;padding:12px 14px;opacity:0}
.v3-box3 small{display:block;font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.v3-box3 b{display:block;font:400 30px/1 var(--disp)}
.v3-box3 span{font:600 12px var(--sans)}
@media (max-width:760px){.earn3{left:12px;right:12px;width:auto;top:auto;bottom:12px;margin:0;padding:10px}.earn3>b{font-size:36px}.v3-box3{display:none}}
/* app */
.apw{position:absolute;left:50%;top:50%;width:1000px;height:560px;display:grid;grid-template-columns:270px 220px 1fr;gap:24px;align-items:center}
.apph{position:relative;height:540px;border:12px solid var(--navy);border-radius:36px;overflow:hidden;font-size:16px;box-shadow:10px 10px 0 rgba(14,26,92,.3)}
.ap-h{padding:44px 16px 10px;background:var(--acc);color:#fff}.ap-h b{display:block;font:400 28px var(--disp);text-transform:uppercase}.ap-h span{font:700 13px var(--sans)}
.ap-qoyu{display:flex;align-items:center;gap:10px;margin:12px;padding:10px;border:3px solid var(--navy);border-radius:14px;background:var(--yellow);opacity:0;transform-origin:20% 50%}
.ap-qoyu img{width:50px;max-width:none}.ap-qoyu b{display:block;font:400 18px var(--disp)}.ap-qoyu span{font:700 11.5px var(--sans)}
.ap-qoyu em{margin-left:auto;padding:4px 8px;border:2.5px solid var(--navy);border-radius:9px;background:#fff;font:800 11px var(--sans);font-style:normal}
.ap-ad{position:relative;margin:0 12px 8px;height:90px;border:3px solid var(--navy);border-radius:12px;overflow:hidden;opacity:0}
.ap-ad img{width:100%;height:100%;object-fit:cover;max-width:none}
.ap-ad span{position:absolute;left:6px;top:6px;padding:2px 6px;border-radius:6px;background:#fff;font:800 10px var(--sans);border:2px solid var(--navy)}
.apph .ph-it{margin:0 14px;padding:8px 0;border-bottom:2px dashed rgba(14,26,92,.3);display:flex;justify-content:space-between;font:700 14px var(--sans)}
.apph .ph-btn{position:absolute;left:14px;right:14px;bottom:16px;padding:10px;border:3px solid var(--navy);border-radius:12px;background:var(--acc);color:#fff;font:400 18px var(--disp);text-align:center;text-transform:uppercase}
.ap-api{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0}
.api-n{display:flex;align-items:center;gap:6px;padding:8px 14px;border:3px solid var(--navy);border-radius:999px;background:#fff;font:800 14px var(--sans);box-shadow:4px 4px 0 var(--navy)}
.api-n img{width:30px;max-width:none}.api-n.q{background:var(--yellow)}
.api-c{padding:6px 12px;border:3px solid var(--navy);border-radius:10px;background:var(--navy);color:var(--yellow);font:400 22px var(--disp)}
.api-l{width:6px;height:40px;background:repeating-linear-gradient(var(--navy) 0 6px,transparent 6px 12px)}
.ap-api.on .api-l{background:repeating-linear-gradient(var(--teal) 0 6px,transparent 6px 12px);animation:apif .6s linear infinite}
@keyframes apif{to{background-position:0 12px}}
.ap-side{display:flex;flex-direction:column;gap:12px}
.ap-k{padding:12px 16px;opacity:0}
.ap-k small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.ap-k b{display:block;font:400 26px/1.05 var(--disp);text-transform:uppercase}
.ap-k span{font:600 13px var(--sans)}
/* TV */
.tvs{position:absolute;overflow:hidden;background:#0E1A5C;color:#fff;border-radius:2px}
.tvg{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:.6em;padding:1.2em 1.6em;opacity:0}
.tvg-store{background:#18213F}
.tvg small{font:800 .7em var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#AEB4C8}
.tvg-app{display:flex;align-items:center;gap:.8em;padding:.8em;border-radius:.8em;background:#232D50}
.tvg-app .qlogo{width:4em;height:4em;border-radius:.8em;background:#F7EE8C;-webkit-mask-size:70%;mask-size:70%}
.tvg-app b{display:block;font:800 1.2em var(--sans)}.tvg-app span{font:600 .8em var(--sans);color:#AEB4C8}
.tvg-btn{margin-left:auto;padding:.5em 1em;border-radius:.6em;background:var(--accent,#F26B1D);background:#E8472E;font:800 .85em var(--sans);color:#fff!important}
.tvg-bar{height:.5em;border-radius:1em;background:#232D50;overflow:hidden}.tvg-bar i{display:block;height:100%;width:0;background:#2BA58C}
.tvg-pair{align-items:center;text-align:center;background:#0E1A5C}
.tvg-pair .qlogo{width:6em;height:2em;background:#fff}
.tvg-pair b{font:800 1em var(--sans)}
.tvg-code{padding:.3em .8em;border:.15em solid #F7EE8C;border-radius:.4em;font:400 2.6em var(--disp);letter-spacing:.1em;color:#F7EE8C}
.tvg-pair span{font:600 .8em var(--sans);color:#AEB4C8}
.tvg-live{padding:0}.tvg-live img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.tvg-on{position:absolute;left:.8em;top:.8em;padding:.2em .6em;border-radius:.4em;background:#2BA58C;font:800 .7em var(--sans)}
.tv-steps{position:absolute;right:clamp(16px,3vw,40px);top:50%;z-index:6;width:300px;margin-top:-110px;padding:16px;display:flex;flex-direction:column;gap:8px;opacity:0}
.tv-steps small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.tv-steps ol{margin:0;padding-left:20px;font:700 14px/1.8 var(--sans)}
.tv-steps li{opacity:.35}.tv-steps li.on{opacity:1}
.tv-steps em{font:400 34px var(--disp);font-style:normal;color:var(--teal)}
@media (max-width:760px){.tv-steps{left:12px;right:12px;width:auto;top:auto;bottom:12px;margin:0;padding:10px}}
/* QBox */
.bxw{position:absolute;left:50%;top:50%;width:1060px;height:520px}
.bx-pk{position:absolute;left:40px;bottom:30px;width:260px;height:200px}
.bx-body{position:absolute;inset:40px 0 0;border:5px solid var(--navy);border-radius:10px;background:#D9A066;background-image:repeating-linear-gradient(90deg,transparent 0 40px,rgba(14,26,92,.12) 40px 44px);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:8px 8px 0 var(--navy)}
.bx-body b{font:400 34px var(--disp);text-transform:uppercase;color:var(--navy)}.bx-body span{font:800 13px var(--sans)}
.bx-lid{position:absolute;left:-10px;right:-10px;top:20px;height:40px;border:5px solid var(--navy);border-radius:8px;background:#C98B50;z-index:3;display:grid;place-items:center;transform-origin:0 100%}
.bx-lid .qlogo{width:70px;height:22px}
.bx-dev{position:absolute;left:50%;top:70px;z-index:2;width:150px;height:60px;margin-left:-75px;border:5px solid var(--navy);border-radius:14px;background:#0E1A5C;display:flex;align-items:center;justify-content:center;gap:10px}
.bx-dev .qlogo{width:70px;height:24px;background:#F7EE8C}
.bx-led{width:10px;height:10px;border-radius:50%;background:#2BA58C;box-shadow:0 0 8px #2BA58C}
.bx-tv{position:absolute;left:360px;top:20px;width:520px;height:340px;border:10px solid var(--navy);border-radius:14px;background:#0E1A5C;box-shadow:10px 10px 0 rgba(14,26,92,.35)}
.bx-scr{position:absolute;inset:0;overflow:hidden;opacity:.15;transition:opacity .4s}
.bx-scr.on{opacity:1}
.bx-scr>img{width:100%;height:100%;object-fit:cover;max-width:none}
.bx-qr{position:absolute;right:12px;bottom:12px;padding:6px;border:3px solid var(--navy);border-radius:10px;background:#fff;text-align:center;font:800 11px var(--sans)}
.bx-qr img{width:80px;max-width:none;display:block}
.bx-cable{position:absolute;left:-150px;bottom:-26px;width:160px;height:40px;border-bottom:6px solid var(--navy);border-left:6px solid var(--navy);border-radius:0 0 0 30px;opacity:0}
.bx-mini{position:absolute;left:50%;bottom:-48px;width:120px;height:30px;margin-left:-60px;background:var(--navy);border-radius:0 0 10px 10px;display:grid;place-items:center}
.bx-mini .qlogo{width:50px;height:16px;background:#F7EE8C}
.bx-ph{position:absolute;right:20px;top:120px;width:200px;height:380px;border:10px solid var(--navy);border-radius:30px;overflow:hidden;opacity:0}
.bx-game{position:absolute;inset:0;padding:40px 14px 14px;background:linear-gradient(180deg,#F7EE8C,#F4B6B0);display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.bx-game small{font:800 11px var(--sans);letter-spacing:.1em;text-transform:uppercase}
.bx-game>b{font:400 22px/1 var(--disp);text-transform:uppercase}
.bx-catch{position:relative;flex:1;width:100%;display:grid;place-items:center}
.bx-catch img{width:90px;max-width:none}
.bx-won{position:absolute;left:10px;right:10px;bottom:16px;padding:8px;border:3px solid var(--navy);border-radius:12px;background:var(--mint);opacity:0}
.bx-won b{display:block;font:400 20px var(--disp);text-transform:uppercase}.bx-won span{font:700 11px var(--sans)}
/* QTotem */
.ttw{position:absolute;left:50%;top:50%;width:900px;height:600px}
.tt{position:absolute;left:180px;top:0;width:280px;height:580px}
.tt-scr{position:absolute;left:0;top:0;width:280px;height:470px;border:12px solid var(--navy);border-radius:24px 24px 6px 6px;background:#0E1A5C;overflow:hidden;box-shadow:10px 10px 0 rgba(14,26,92,.3)}
.tt-foot{position:absolute;left:30px;right:30px;top:470px;height:70px;background:var(--navy);display:grid;place-items:center}
.tt-foot .qlogo{width:90px;height:28px;background:#F7EE8C}
.tt-base{position:absolute;left:0;right:0;top:540px;height:24px;border-radius:12px;background:var(--navy)}
.tp{position:absolute;inset:0;display:flex;flex-direction:column;gap:10px;padding:20px 16px;background:#FCF3E4;color:var(--navy);opacity:0}
.tp:first-child{opacity:1;padding:0}
.tp>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.tt-cta{position:absolute;left:16px;right:16px;bottom:18px;padding:12px;border:3px solid var(--navy);border-radius:14px;background:var(--yellow);font:400 22px var(--disp);text-align:center;text-transform:uppercase;box-shadow:4px 4px 0 var(--navy);animation:pulse6 1.6s infinite}
.tp small{font:800 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.tp>b{font:400 30px var(--disp);text-transform:uppercase}
.tt-in{min-height:42px;padding:10px;border:3px solid var(--navy);border-radius:10px;background:#fff;font:700 15px var(--sans)}
.tt-btn{margin-top:auto;padding:12px;border:3px solid var(--navy);border-radius:12px;background:var(--acc);color:#fff;font:400 20px var(--disp);text-align:center;text-transform:uppercase}
.tt-a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px;border:3px solid var(--navy);border-radius:12px;background:#fff;transition:background .25s}
.tt-a b{font:800 14px var(--sans)}.tt-a em{font:400 22px var(--disp);font-style:normal;color:var(--red)}
.tt-a.on{background:var(--mint)}.tt-a.on em::before{content:"✓ "}
.tt-pts{position:absolute;left:520px;top:180px;width:280px;padding:16px;display:flex;flex-direction:column;gap:8px;opacity:0}
.tt-pts small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.tt-pts>b{font:400 64px/1 var(--disp);font-variant-numeric:tabular-nums}
.tt-g{border-color:var(--navy)!important;background:#fff}.tt-g i{background:var(--acc)!important}
.tt-pts span{font:700 13px var(--sans)}
/* inscription : écran de la fiche */
.vc5-scr{position:absolute;left:44.2%;top:9.25%;width:23.5%;height:21.68%;overflow:hidden}
.vc5-scr img{width:100%;height:100%;object-fit:cover;max-width:none}
/* demandes */
.rq{position:absolute;left:50%;top:50%;width:1100px;display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:start}
.rq-l{display:flex;flex-direction:column;gap:12px;padding:16px}
.rq-l>small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.rq-ven{display:flex;align-items:center;gap:12px;padding:8px;border:3px solid var(--navy);border-radius:14px;background:var(--acc2)}
.rq-ven img{width:110px;height:64px;object-fit:cover;border:3px solid var(--navy);border-radius:10px;max-width:none}
.rq-ven b{display:block;font:400 26px var(--disp);text-transform:uppercase}.rq-ven span{font:700 13px var(--sans)}
.rq-ads{display:flex;flex-direction:column;gap:10px}
.rq-a{display:grid;grid-template-columns:36px 1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:8px 12px;border:3px solid var(--navy);border-radius:14px;background:#fff;opacity:0}
.rq-a i{grid-row:1/3;width:36px;height:36px;border-radius:50%;border:2.5px solid var(--navy);display:grid;place-items:center;color:#fff;font:400 18px var(--disp);font-style:normal}
.rq-a b{font:800 15px var(--sans)}.rq-a span{grid-column:2;font:600 12px var(--sans)}
.rq-a em{grid-row:1/3;grid-column:3;padding:4px 9px;border:2.5px solid var(--navy);border-radius:9px;background:#eee6d6;font:800 11px var(--sans);font-style:normal;opacity:.4}
.rq-a.sent em{opacity:1;background:var(--yellow)}
.rq-lines{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:5;overflow:visible}
.rq-lines path{fill:none;stroke:var(--red);stroke-width:4;stroke-dasharray:1;stroke-linecap:round}
.rq-r{display:flex;flex-direction:column;gap:14px}
.rq-c{display:flex;flex-direction:column;gap:12px;padding:14px;opacity:0}
.rq-ch{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center}
.rq-ch img{width:110px;height:110px;object-fit:cover;border:3px solid var(--navy);border-radius:12px;max-width:none}
.rq-ch small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.rq-ch b{display:block;font:400 24px var(--disp);text-transform:uppercase}
.rq-ch .m100{display:inline-block;margin-top:6px;opacity:1}
.rq-ch em{font:400 36px var(--disp);font-style:normal}
@media (max-width:760px){.rq{grid-template-columns:1fr;gap:12px;width:94vw}.rq-lines{display:none}.rq-ads{flex-direction:row}.rq-a{grid-template-columns:1fr;text-align:center}.rq-a i{grid-row:auto;margin:0 auto}.rq-a span,.rq-a em{display:none}}
/* en diffusion */
.scr0 .lv-ad{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;opacity:0;transition:opacity .5s}
.scr0 .lv-ad.on{opacity:1}
.lv-on{position:absolute;left:6px;top:6px;padding:2px 7px;border-radius:6px;background:var(--teal);color:#fff;font:800 11px var(--sans)}
.lv-pl{position:absolute;right:clamp(16px,3vw,40px);bottom:clamp(70px,9vh,90px);z-index:6;width:280px;padding:14px;display:flex;flex-direction:column;gap:8px;opacity:0}
.lv-pl small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.lv-i{display:flex;justify-content:space-between;padding:8px 10px;border:3px solid var(--navy);border-radius:12px;font:700 13px var(--sans);transition:background .3s}
.lv-i.on{background:var(--yellow)}
.lv-pl em{font:400 30px var(--disp);font-style:normal;color:var(--teal)}
/* tableau de bord établissement */
.vd{position:absolute;left:50%;top:50%;width:1100px;display:grid;grid-template-columns:170px 1fr;border:4px solid var(--navy);border-radius:24px;background:var(--cream);box-shadow:12px 12px 0 var(--navy);overflow:hidden}
.vd-nav{display:flex;flex-direction:column;gap:6px;padding:16px 12px;background:#0E1530;color:#D5D9E6}
.vd-nav .qlogo{width:90px;height:30px;background:#fff;margin-bottom:10px}
.vd-nav b{padding:8px 10px;border-radius:10px;font:700 13px var(--sans)}.vd-nav b.on{background:#232D50;color:#fff}
.vd-m{display:flex;flex-direction:column;gap:14px;padding:18px}
.vd-k{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vd-k>div{padding:14px;border:3px solid var(--navy);border-radius:14px;background:#fff}
.vd-k small{font:800 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#6B7385}
.vd-k b{display:block;margin-top:8px;font:400 34px/1 var(--disp);font-variant-numeric:tabular-nums}
.vd-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.vd-val,.vd-own{padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.vd-val small,.vd-own small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.vd-val>b{font:400 46px/1 var(--disp);color:var(--teal)}
.vd-val>span{font:700 13px var(--sans)}
.vd-g{height:16px;border:3px solid var(--navy);border-radius:99px;background:#fff;overflow:hidden}.vd-g i{display:block;height:100%;background:linear-gradient(90deg,var(--yellow),var(--teal))}
.vd-val em{font:700 12.5px/1.4 var(--sans);font-style:normal}
.vd-own{opacity:0}
.vd-own>b{font:400 22px var(--disp);text-transform:uppercase}
.vd-mine{display:flex;align-items:center;gap:10px;padding:8px;border:3px solid var(--navy);border-radius:12px;background:var(--yellow)}
.vd-mine img{width:80px;height:46px;object-fit:cover;border-radius:8px;border:2px solid var(--navy);max-width:none}
.vd-mine span{font:700 13px var(--sans)}
.vd-own .tog{display:flex;align-items:center;gap:8px;font:800 13px var(--sans)}
.vd-own .tog i{width:44px;height:24px;border-radius:99px;border:2.5px solid var(--navy);background:var(--teal);position:relative}
.vd-own .tog i::after{content:"";position:absolute;top:2px;left:22px;width:15px;height:15px;border-radius:50%;background:#fff}
.vd-crm{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px 12px;align-items:baseline;padding:12px 16px;background:var(--acc2);opacity:0}
.vd-crm b{font:400 20px var(--disp);text-transform:uppercase}.vd-crm span{font:600 13px var(--sans)}
@media (max-width:760px){.vd{grid-template-columns:1fr;width:94vw}.vd-nav{display:none}.vd-k{grid-template-columns:1fr 1fr}.vd-row{grid-template-columns:1fr}.vd-crm{grid-template-columns:auto 1fr}}

.apph .ph-bar{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;justify-content:space-between;padding:10px 18px 0;font:800 11px var(--sans);color:#fff}
.apph .ap-h{padding-top:34px}
#v3ph{z-index:2}
.rq-lines{z-index:7}

/* ===== ambassadeur : France, Lyon, situations ===== */
.fr-sea{position:absolute;inset:0;background:#1D3FD6;background-image:radial-gradient(rgba(246,237,221,.25) 1.6px,transparent 2px);background-size:16px 16px}
.fr{position:absolute;left:0;top:0;overflow:visible}
.fr-land{fill:#F4B6B0;stroke:#0E1A5C;stroke-width:4;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(8px 8px 0 #0E1A5C)}
.ct circle{fill:#fff;stroke:#0E1A5C;stroke-width:2.5;vector-effect:non-scaling-stroke}
.ct.ly circle{fill:#F08A1C}
.ct text{font:800 18px var(--sans);fill:#0E1A5C;paint-order:stroke;stroke:#FCF3E4;stroke-width:4px}
.fr-zone{fill:rgba(240,138,28,.3);stroke:#0E1A5C;stroke-width:3;stroke-dasharray:8 6;vector-effect:non-scaling-stroke;opacity:0}
.pn2 path{fill:#F08A1C;stroke:#0E1A5C;stroke-width:1}
.pn2 text{font:800 4.4px var(--sans);fill:#0E1A5C;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:1.2px}
.sx{position:absolute;left:50%;top:50%;width:1100px;display:grid;grid-template-columns:380px 1fr;gap:28px;align-items:start}
.sx-l{padding:12px;display:flex;flex-direction:column;gap:4px}
.sx-img{position:relative;border:3px solid var(--navy);border-radius:14px;overflow:hidden}
.sx-img>img{display:block;width:100%;max-width:none}
.sx-scr{position:absolute;left:45.7%;top:51%;width:23%;height:13%;overflow:hidden;opacity:0;transition:opacity .4s;outline:3px solid #F7EE8C}
.sx-scr img{width:100%;height:100%;object-fit:cover;max-width:none}
.sx-tag{position:absolute;left:10px;top:10px;padding:5px 10px;border:3px solid var(--navy);border-radius:10px;background:var(--yellow);font:800 13px var(--sans)}
.sx-l>b{margin-top:6px;font:400 26px var(--disp);text-transform:uppercase}.sx-l>span{font:700 13px var(--sans)}
.sx-r{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sx-c{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px;opacity:.25;transition:background .3s,transform .3s}
.sx-c.on{background:var(--yellow);transform:translate(-3px,-3px);box-shadow:11px 11px 0 var(--navy)}
.sx-c small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.sx-c b{font:400 22px/1.05 var(--disp);text-transform:uppercase}
.sx-c>span{font:600 13px var(--sans)}
.sx-bar{display:flex;gap:4px;margin-top:6px;height:34px}
.sx-bar i{flex:0 0 var(--w);min-width:84px;display:flex;align-items:center;justify-content:center;border:3px solid var(--navy);border-radius:10px;background:var(--c);color:#fff;font:400 15px var(--disp);font-style:normal;white-space:nowrap;transform-origin:0 50%}
.sx-c em{position:absolute;right:12px;top:12px;padding:3px 8px;border:2.5px solid var(--navy);border-radius:8px;background:#fff;font:800 11px var(--sans);font-style:normal}
.sx-life{position:absolute;left:50%;bottom:clamp(70px,10vh,100px);z-index:6;max-width:min(900px,92vw);padding:12px 20px;border:4px solid var(--navy);border-radius:16px;background:var(--acc);color:#fff;box-shadow:7px 7px 0 var(--navy);font:400 clamp(16px,1.7vw,24px)/1.15 var(--disp);text-transform:uppercase;text-align:center;opacity:0}
@media (max-width:760px){.sx{grid-template-columns:1fr;gap:10px;width:94vw}.sx-l{flex-direction:row;align-items:center}.sx-img{width:120px;flex:none}.sx-r{gap:8px}.sx-c{padding:8px}.sx-c>span{display:none}.sx-c b{font-size:15px}.sx-bar i{min-width:0;font-size:11px}}
.fr-riv path{fill:none;stroke:#1D3FD6;stroke-width:7;stroke-linecap:round;vector-effect:non-scaling-stroke}
.fr-riv{opacity:0}
/* ---- licence 05 · marketplace → transformation ---- */
.mk5{position:absolute;left:50%;top:50%;width:1120px;display:grid;grid-template-columns:400px minmax(0,1fr);gap:28px;align-items:start;transform-origin:50% 50%}
.mk5-l{padding:16px;display:flex;flex-direction:column;gap:12px}
.mk5-l>small,.mk5-place>small,.mk5-k small,.inf-c>small,.inf-ad small,.l7-k small{font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.mk5-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.hc{display:flex;flex-direction:column;gap:2px;padding:8px;border:3px solid var(--navy);border-radius:14px;background:#fff;transition:transform .2s,background .2s,box-shadow .2s;opacity:0}
.hc.on{background:var(--yellow);transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--navy)}
.hc-i{position:relative;aspect-ratio:4/3;max-width:100%;border:2.5px solid var(--navy);border-radius:10px;background:var(--b);display:grid;place-items:center;overflow:hidden}
.hc-i img{position:absolute;inset:6%;width:88%;height:88%;max-width:none;object-fit:contain}
.hc-ic{font:400 54px var(--disp);font-style:normal;color:var(--navy)}
.hc b{font:400 18px/1.05 var(--disp);text-transform:uppercase}.hc span{font:700 11px var(--sans);opacity:.75}
.mk5-place{display:flex;flex-direction:column;gap:8px;opacity:0}
.mk5-place .ed-pub{font-size:18px;padding:10px 14px}
.mk5-r{display:flex;flex-direction:column;gap:14px}
.mk5-shop{position:relative;border:4px solid var(--navy);border-radius:20px;overflow:hidden;box-shadow:8px 8px 0 var(--navy);background:#fff}
.mk5-shop>img:first-child{display:block;width:100%;max-width:none}
.mk5-tint{position:absolute;inset:0;background:linear-gradient(180deg,#E8472E 0%,#D9467A 55%,#1D3FD6 100%);mix-blend-mode:multiply;opacity:0;pointer-events:none}
.mk5-scr{position:absolute;left:44.2%;top:9.25%;width:23.5%;height:21.68%;overflow:hidden;opacity:0;outline:4px solid #F7EE8C;border-radius:3px}
.mk5-scr img{width:100%;height:100%;object-fit:cover;max-width:none}
.mk5-ban{position:absolute;left:38%;bottom:6%;z-index:2;padding:8px 18px;border:4px solid var(--navy);border-radius:14px;background:var(--yellow);box-shadow:6px 6px 0 var(--navy);font:400 30px var(--disp);text-transform:uppercase;white-space:nowrap;opacity:0}
.mk5-hero{position:absolute;right:2%;bottom:3%;height:44%;width:auto;max-width:none;opacity:0;filter:drop-shadow(5px 5px 0 #0E1A5C);transform-origin:50% 100%}
.mk5-av{position:absolute;left:12px;top:12px;padding:5px 12px;border:3px solid var(--navy);border-radius:10px;background:#fff;font:800 13px var(--sans);transition:background .3s}
.mk5-av.on{background:var(--acc);color:#fff}
.mk5-k{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;opacity:0}
.mk5-k .card3{padding:10px 14px;display:flex;flex-direction:column;gap:2px;box-shadow:5px 5px 0 var(--navy)}
.mk5-k b{font:400 32px var(--disp);font-variant-numeric:tabular-nums}.mk5-k span{font:700 12px var(--sans)}
@media (max-width:760px){.mk5{width:560px;grid-template-columns:1fr;gap:14px}.mk5-g{grid-template-columns:repeat(4,1fr)}.hc b{font-size:13px}.hc span{display:none}.hc-ic{font-size:34px}}

/* ---- licence 06 · l'influenceur relié à des lieux ---- */
.inf{position:absolute;left:50%;top:50%;width:1120px;display:grid;grid-template-columns:1fr 440px;gap:36px;align-items:start}
.inf-l{display:flex;flex-direction:column;align-items:center}
.inf-ad{display:flex;align-items:center;gap:12px;padding:12px 16px;width:100%;opacity:0}
.inf-ad>i,.inf-av,.shp i{flex:none;display:grid;place-items:center;border:3px solid var(--navy);border-radius:50%;font:400 22px var(--disp);font-style:normal}
.inf-ad>i{width:48px;height:48px;background:#8B5A2B;color:#fff}
.inf-ad>div{display:flex;flex-direction:column;flex:1}.inf-ad b{font:400 24px var(--disp);text-transform:uppercase}.inf-ad span{font:700 13px var(--sans)}
.inf-ad em{font:400 34px var(--disp);font-style:normal;padding:4px 12px;border:3px solid var(--navy);border-radius:12px;background:var(--yellow)}
.inf-p{margin-top:18px;display:flex;align-items:center;gap:12px;padding:12px 16px;opacity:0;background:linear-gradient(135deg,#fff 60%,#F4B6B0)}
.inf-av{width:56px;height:56px;background:var(--acc);color:#fff;box-shadow:0 0 0 3px #fff,0 0 0 6px #D9467A}
.inf-p>div:nth-child(2){display:flex;flex-direction:column}.inf-p b{font:400 22px var(--disp);text-transform:uppercase}.inf-p span{font:700 13px var(--sans)}
.inf-ig{display:flex;gap:4px}.inf-ig i{width:34px;height:34px;border:2.5px solid var(--navy);border-radius:8px;background:#BDE3D4}.inf-ig i:nth-child(2){background:#F7EE8C}.inf-ig i:nth-child(3){background:#F4B6B0}
.inf-lines{width:100%;height:90px;overflow:visible}
.inf-lines path{fill:none;stroke:#D9467A;stroke-width:4;opacity:0;vector-effect:non-scaling-stroke;stroke-linecap:round}
.inf-shops{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%}
.shp{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:3px solid var(--navy);border-radius:14px;background:#fff;box-shadow:5px 5px 0 var(--navy);opacity:0;text-align:center}
.shp i{width:44px;height:44px;background:#BDE3D4}.shp:nth-child(2) i{background:#F7EE8C}.shp:nth-child(3) i{background:#F4B6B0}.shp:nth-child(4) i{background:#BCD0FF}
.shp b{font:400 16px/1 var(--disp);text-transform:uppercase}
.inf-shops::before{content:'Lieux sans gluten';grid-column:1/-1;justify-self:center;font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.inf-r{display:flex;flex-direction:column;gap:16px}
.inf-c{padding:14px 16px;display:flex;flex-direction:column;gap:6px;opacity:0}
.inf-b{background:#F2EFE6}
.inf-a{background:var(--acc2)}
.inf-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:6px;border-top:2px dashed rgba(14,26,92,.3)}
.inf-row span{font:700 13px var(--sans);flex:none}.inf-row b{font:400 22px/1.05 var(--disp);text-align:right;font-variant-numeric:tabular-nums}
.inf-win{display:flex;flex-wrap:wrap;gap:8px}
.inf-win span{padding:7px 12px;border:3px solid var(--navy);border-radius:12px;background:var(--yellow);box-shadow:4px 4px 0 var(--navy);font:400 17px var(--disp);text-transform:uppercase;opacity:0}
@media (max-width:760px){.inf{width:560px;grid-template-columns:1fr;gap:14px}.inf-lines{height:50px}}

/* ---- licence 07 · dans le magasin ---- */
#l7scr{z-index:2;overflow:visible;background:#0E1A5C}
#l7scr .l7-old{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;transition:opacity .25s}
#l7scr .l7-new{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity .25s}
#l7scr .l7-new>img{width:100%;height:100%;object-fit:cover;max-width:none}
#l7scr .l7-new>span{position:absolute;left:0;right:0;bottom:0;padding:2px 4px;background:#0E1A5C;color:#fff;font:700 6px var(--sans);text-align:center;white-space:nowrap}
.l7-qr{position:absolute;right:4%;top:6%;width:24%;aspect-ratio:1;max-width:100%;background:#fff;border:1.5px solid #0E1A5C;border-radius:3px;padding:1.5px}
.l7-qr img{width:100%;height:100%;display:block;max-width:none}
#l7scr.new .l7-old{opacity:0}#l7scr.new .l7-new{opacity:1}
.l7-boom{position:absolute;left:50%;top:50%;width:115%;height:auto;transform:translate(-50%,-50%) scale(0);pointer-events:none;transition:transform .2s cubic-bezier(.3,1.6,.5,1)}
.l7-boom path{fill:#F7EE8C;stroke:#E8472E;stroke-width:6;stroke-linejoin:round}
.l7-boom text{font:400 34px var(--disp);fill:#E8472E}
#l7scr.boom .l7-boom{transform:translate(-50%,-50%) scale(1)}
#l7scr.boom{animation:l7sh .12s linear infinite}
@keyframes l7sh{0%{translate:0 0}25%{translate:1px -1px}50%{translate:-1px 1px}75%{translate:1px 1px}}
#l7pops{inset:0;z-index:4}
.pop7{position:absolute;padding:6px 12px;border:3px solid var(--navy);border-radius:12px;background:#fff;box-shadow:4px 4px 0 var(--navy);font:800 17px var(--sans);white-space:nowrap;opacity:0;display:flex;align-items:center;gap:5px}
.pop7 i{font-style:normal;color:#2BA58C;font-size:11px}
.pop7.sc{background:var(--acc);color:#fff;font:400 24px var(--disp);text-transform:uppercase}
.l7-k{position:absolute;right:clamp(16px,3vw,40px);bottom:clamp(80px,12vh,120px);z-index:5;padding:12px 18px;display:grid;grid-template-columns:auto auto;gap:4px 22px;opacity:0}
.l7-k small{grid-column:1/-1}
.l7-k div{display:flex;flex-direction:column}.l7-k b{font:400 40px/1 var(--disp);font-variant-numeric:tabular-nums}.l7-k span{font:700 12px var(--sans)}
@media (max-width:760px){.pop7{font-size:11px;padding:3px 7px}.pop7.sc{font-size:13px}.l7-k{left:16px;right:16px;bottom:70px;padding:8px 12px}.l7-k b{font-size:28px}}
@media (min-width:761px){#l7pill{top:auto;bottom:clamp(80px,12vh,120px);left:clamp(16px,3vw,40px);transform:none}}
html:lang(en) .inf-shops::before{content:'Gluten-free venues'}html:lang(es) .inf-shops::before{content:'Locales sin gluten'}
