/* BassinVR, accueil 2026, mobile d'abord */
/* Polices hébergées sur le site depuis le 26/09 (fichiers de Google Fonts, sous-ensembles latin et latin étendu) :
   plus aucun appel à Google au chargement, et un aller-retour de moins avant le premier affichage. */
/* Bebas Neue 400 latin-ext */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/bebas-neue-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Bebas Neue 400 latin */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/bebas-neue-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter 400 latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter 400 latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter 500 latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter 500 latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter 600 latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter 600 latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Inter 700 latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter 700 latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Space Grotesk 500 latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/space-grotesk-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Space Grotesk 500 latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/space-grotesk-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Space Grotesk 700 latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/space-grotesk-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Space Grotesk 700 latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/space-grotesk-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --bg:#080c14; --bg2:#0b1119; --surface:#0d1320; --line:rgba(255,255,255,.08);
  --txt:#f0f2ff; --txt2:#c3cede; --txt3:#9fb0cf; --mute:#727f9c;
  --c:#00c6ff; --c2:#1e90ff; --gold:#ffd24a;
  --amb:#00c6ff; /* couleur d'ambiance courante */
  --font-t:'Space Grotesk',system-ui,sans-serif; --font-b:'Inter',system-ui,sans-serif; --font-n:'Bebas Neue',var(--font-t);
  --pad:20px; --r:22px; --nav-h:74px; --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;overflow-x:clip}
body{background:var(--bg);color:var(--txt);font:16px/1.55 var(--font-b);overflow-x:hidden;overflow-x:clip;transition:background 1.1s var(--ease)}
body[data-theme="violet"]{--bg:#0d0817}
body[data-theme="ambre"]{--bg:#120c06}
body[data-theme="rose"]{--bg:#150713}
body[data-theme="nuit"]{--bg:#080c14}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.wrap{width:min(100% - 2*var(--pad),1180px);margin-inline:auto}
h1,h2,h3{font-family:var(--font-t);letter-spacing:-.02em;line-height:1.02}
h2{font-size:clamp(34px,8.5vw,64px);font-weight:700}
h2 em{font-style:normal;color:var(--c)}
.lbl{font:600 11px/1 var(--font-b);letter-spacing:.24em;text-transform:uppercase;color:var(--c);display:flex;gap:10px;align-items:center;margin-bottom:14px}
.lbl::before{content:"";width:22px;height:2px;background:var(--c);border-radius:2px}
.sub{color:var(--txt3);font-size:clamp(16px,4.2vw,19px);max-width:56ch;margin-top:14px}
section{position:relative;padding:clamp(64px,14vw,120px) 0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- preloader ---------- */
#boot{position:fixed;inset:0;z-index:200;background:#04060c;display:grid;place-items:center;transition:opacity .4s var(--ease),visibility .4s}
#boot.done{opacity:0;visibility:hidden}
#boot .b-in{display:flex;flex-direction:column;align-items:center;gap:18px}
#boot .b-logo{width:64px;opacity:.9;animation:bootPulse 1.2s ease-in-out infinite}
#boot .b-txt{font:600 11px/1 var(--font-b);letter-spacing:.3em;text-transform:uppercase;color:var(--txt3)}
#boot .b-bar{width:180px;height:2px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
#boot .b-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c),var(--c2));box-shadow:0 0 14px var(--c);animation:bootLoad .6s var(--ease) forwards}
@keyframes bootLoad{to{width:100%}}
@keyframes bootPulse{50%{transform:scale(1.06);filter:drop-shadow(0 0 16px rgba(0,198,255,.8))}}

/* ---------- header ---------- */
.hd{position:absolute;inset:0 0 auto 0;z-index:20;padding:calc(14px + env(safe-area-inset-top)) 0 0}
.hd .wrap{display:flex;align-items:center;justify-content:space-between}
.hd .logo{width:58px;filter:drop-shadow(0 0 10px rgba(0,198,255,.35))}
.lang{display:flex;gap:2px;padding:4px;border-radius:999px;background:rgba(8,12,20,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line)}
.lang a{padding:9px 13px;border-radius:999px;font:700 12px/1 var(--font-b);color:var(--txt3)}
.lang a.on{background:var(--c);color:#04111c;box-shadow:0 0 18px rgba(0,198,255,.6)}
.hd-nav{display:none;gap:26px;font:600 14px var(--font-b);color:var(--txt2)}
.hd-nav a:hover{color:#fff}

/* ---------- héro ---------- */
.hero{min-height:100svh;min-height:100vh;display:flex;align-items:flex-end;padding:calc(96px + env(safe-area-inset-top)) 0 calc(var(--nav-h) + 24px);overflow:hidden;isolation:isolate}
.hero .layer{position:absolute;inset:-8%;z-index:-3;will-change:transform}
.hero .layer.media{z-index:-4}
.hero .media img,.hero .media video{width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.hero .media img{animation:kb 22s ease-in-out infinite alternate;filter:saturate(1.25) contrast(1.08)}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.18) translate(-2%,-1%)}}
.hero .media video{filter:brightness(.62) saturate(1.3) contrast(1.08)}
.hero .media video{position:absolute;inset:0;opacity:0;transition:opacity 1.2s}
.hero .media video.on{opacity:1}
.hero .neon{z-index:-2;pointer-events:none;mix-blend-mode:screen;opacity:.7}
.hero .neon svg{width:100%;height:100%}
.hero .neon path{fill:none;stroke:var(--c);stroke-width:2.5;stroke-linecap:round;filter:drop-shadow(0 0 8px var(--c));stroke-dasharray:1400;stroke-dashoffset:1400;animation:neonDraw 2.4s 1.1s var(--ease) forwards}
.hero .neon path:nth-child(2){stroke:#c04cff;filter:drop-shadow(0 0 8px #c04cff);animation-delay:1.5s}
.hero .neon path:nth-child(3){animation-delay:1.9s;stroke-width:1.5}
@keyframes neonDraw{to{stroke-dashoffset:0}}
.hero .veil{position:absolute;inset:0;z-index:-1;background:
  radial-gradient(120% 60% at 70% 20%,transparent 0%,rgba(4,6,12,.35) 70%),
  linear-gradient(180deg,rgba(4,6,12,.6) 0%,rgba(4,6,12,.1) 26%,rgba(4,6,12,.55) 48%,rgba(6,9,16,.9) 66%,rgba(8,12,20,1) 100%)}
.hero .grain{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.14;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .5s steps(2) infinite}
@keyframes grain{50%{transform:translate(-3%,2%)}}
#stars{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.8}
.hero .wrap{position:relative;z-index:2}
.hero .loc{font:700 11px/1 var(--font-b);letter-spacing:.3em;text-transform:uppercase;color:#c9d4ea;margin-bottom:12px;text-shadow:0 1px 12px rgba(0,0,0,.8)}
.badge{display:inline-flex;align-items:center;gap:8px;font:600 12px/1 var(--font-b);color:#dff6ff;padding:9px 13px;border-radius:999px;border:1px solid rgba(0,198,255,.35);background:rgba(0,198,255,.08);backdrop-filter:blur(8px);margin-bottom:20px}
.badge i{width:7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c);animation:blink 1.6s ease-in-out infinite}
@keyframes blink{50%{opacity:.35}}
.hero h1{font-size:clamp(50px,14vw,120px);font-weight:700;letter-spacing:-.035em;line-height:.95;color:#fff;text-shadow:0 6px 40px rgba(0,0,0,.6)}
.hero h1 .w{display:inline-block;opacity:0;transform:translateY(.55em) rotate(2deg);animation:wordIn .7s var(--ease) forwards;animation-delay:calc(1.05s + var(--i,0) * 90ms)}
@keyframes wordIn{to{opacity:1;transform:none}}
@keyframes glow{50%{text-shadow:0 0 34px rgba(0,198,255,.95),0 0 110px rgba(0,198,255,.55)}}
@keyframes sweep{0%{transform:translateX(-120%) skewX(-12deg)}30%,100%{transform:translateX(140%) skewX(-12deg)}}
.hero p.sub{opacity:0;animation:fadeUp .8s 1.8s var(--ease) forwards;color:#d7deee}
.hero .cta{display:flex;flex-direction:column;gap:12px;margin-top:26px;opacity:0;animation:fadeUp .8s 2s var(--ease) forwards}
.hero .proof{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;opacity:0;animation:fadeUp .8s 2.15s var(--ease) forwards}
.hero .proof span{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;font:600 12px/1 var(--font-b);color:#dff6ff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px)}
.hero .proof span::before{content:"✓";color:var(--c);font-weight:800}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.scrollhint{display:none;position:absolute;left:50%;bottom:calc(var(--nav-h) + 8px);transform:translateX(-50%);z-index:2;width:22px;height:36px;border:2px solid rgba(255,255,255,.35);border-radius:14px;opacity:0;animation:fadeUp 1s 3s forwards}
.scrollhint::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--c);animation:hint 1.6s ease-in-out infinite}
@keyframes hint{50%{transform:translateY(12px);opacity:.2}}

/* ---------- boutons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:0 26px;border-radius:16px;font:700 17px/1 var(--font-b);color:#04111c;background:linear-gradient(135deg,var(--c),var(--c2));box-shadow:0 10px 34px rgba(0,198,255,.35),inset 0 1px 0 rgba(255,255,255,.35);overflow:hidden;transform:translate(var(--mx,0),var(--my,0));transition:transform .25s var(--ease),box-shadow .25s;-webkit-tap-highlight-color:transparent}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-130%);animation:shimmer 3s 1s var(--ease) infinite}
@keyframes shimmer{0%{transform:translateX(-130%)}40%,100%{transform:translateX(130%)}}
.btn:active{transform:scale(.96)}
.btn.ghost{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:none;backdrop-filter:blur(10px)}
.btn.ghost::after{display:none}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-glow{position:relative}
.btn-glow::before{content:"";position:absolute;inset:-10px;border-radius:26px;background:radial-gradient(60% 80% at 50% 100%,rgba(0,198,255,.45),transparent 70%);filter:blur(12px);z-index:-1;animation:breathe 2.6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.5;transform:scale(.94)}}
.lnk{display:inline-flex;align-items:center;gap:8px;font:600 15px var(--font-b);color:#fff;padding:12px 4px}
.lnk .arr{color:var(--c)}

/* ---------- barre aujourd'hui ---------- */
.today{margin-top:-8px;padding:0 0 10px}
.today .card{display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:18px;background:rgba(13,19,32,.85);border:1px solid var(--line);backdrop-filter:blur(16px)}
.today .dot{width:10px;height:10px;border-radius:50%;background:#2ee59d;box-shadow:0 0 12px #2ee59d;flex:none}
.today .dot.off{background:#ff7a59;box-shadow:0 0 12px #ff7a59}
.today .t1{font:700 15px var(--font-b);color:#fff}
.today .t2{font-size:13px;color:var(--txt3);margin-top:2px}
.today .slots{display:flex;gap:6px;overflow:auto;margin-top:8px;scrollbar-width:none}
.today .slots span{flex:none;padding:6px 10px;border-radius:9px;font:600 12px var(--font-b);color:var(--c);background:rgba(0,198,255,.1);border:1px solid rgba(0,198,255,.25)}
.today .slots span.full{color:var(--mute);background:rgba(255,255,255,.04);border-color:var(--line);text-decoration:line-through}
.today .skel{height:14px;border-radius:6px;background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06));background-size:200% 100%;animation:skel 1.2s linear infinite}
@keyframes skel{to{background-position:-200% 0}}

/* ---------- marquee ---------- */
.marq{overflow:hidden;padding:18px 0;border-block:1px solid var(--line);background:rgba(0,0,0,.25);-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq .track{display:flex;gap:44px;width:max-content;animation:marq 26s linear infinite;font:700 15px/1 var(--font-t);letter-spacing:.2em;text-transform:uppercase;color:var(--txt2);white-space:nowrap}
.marq .track span{display:inline-flex;align-items:center;gap:44px}
.marq .track b{color:var(--gold)}
.marq .track i{font-style:normal;color:var(--c)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- chiffres ---------- */
.stats{padding:56px 0 8px}
.stats .g{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stats .s{padding:22px 18px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);position:relative;overflow:hidden}
.stats .s::after{content:"";position:absolute;inset:auto -30% -50% auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(0,198,255,.22),transparent 70%);filter:blur(8px)}
.stats .n{font:400 clamp(44px,12vw,72px)/1 var(--font-n);color:#fff;letter-spacing:.01em}
.stats .n small{font-size:.5em;color:var(--c)}
.stats .l{font:600 12px/1.3 var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:var(--txt3);margin-top:8px}

/* ---------- révélations ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease),clip-path .9s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv-clip{clip-path:inset(0 0 100% 0 round 22px)}
.rv-clip.in{clip-path:inset(0 0 0 0 round 22px)}
.rv[data-d="1"]{transition-delay:.08s}.rv[data-d="2"]{transition-delay:.16s}.rv[data-d="3"]{transition-delay:.24s}.rv[data-d="4"]{transition-delay:.32s}.rv[data-d="5"]{transition-delay:.4s}

/* ---------- activités (carrousel) ---------- */
.acts .rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:26px var(--pad) 30px;margin:0 calc(-1*var(--pad));scrollbar-width:none;-webkit-overflow-scrolling:touch}
.acts .rail::-webkit-scrollbar{display:none}
.act{--amb:#00c6ff;flex:0 0 min(82vw,360px);scroll-snap-align:center;position:relative;border-radius:26px;overflow:hidden;background:var(--surface);aspect-ratio:3/4.15;isolation:isolate;transform:translateZ(0)}
.act::before{content:"";position:absolute;inset:0;border-radius:26px;padding:1.5px;background:radial-gradient(180px 180px at var(--gx,50%) var(--gy,0%),var(--amb),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;z-index:3;pointer-events:none;opacity:.9}
.act img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 9s linear;z-index:0}
.act.zoom img{transform:scale(1.14)}
.act .fx{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,12,20,.05) 20%,rgba(8,12,20,.55) 55%,rgba(8,12,20,.96) 100%)}
.act .amb{position:absolute;inset:auto 0 0 0;height:60%;z-index:1;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--amb) 32%,transparent));mix-blend-mode:screen;opacity:.8}
.act .tag{position:absolute;top:16px;left:16px;z-index:2;padding:8px 12px;border-radius:999px;font:700 11px/1 var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:#04111c;background:var(--amb);box-shadow:0 6px 20px color-mix(in srgb,var(--amb) 55%,transparent);animation:float 3.2s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-5px)}}
.act .price{position:absolute;top:16px;right:16px;z-index:2;padding:8px 12px;border-radius:12px;font:400 22px/1 var(--font-n);color:#fff;background:rgba(8,12,20,.6);border:1px solid var(--line);backdrop-filter:blur(8px)}
.act .price small{font:600 10px var(--font-b);color:var(--txt3);letter-spacing:.08em;text-transform:uppercase;display:block;text-align:right}
.act .body{position:absolute;inset:auto 0 0 0;z-index:2;padding:18px 18px 20px}
.act h3{font-size:26px;font-weight:700;letter-spacing:-.02em;color:#fff}
.act .meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin:8px 0 10px;font:600 12px var(--font-b);color:var(--txt2)}
.act .meta span::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--amb);margin:0 7px 2px 0}
.act p{font-size:14px;color:var(--txt3);line-height:1.45}
.act .go{display:inline-flex;align-items:center;gap:8px;margin-top:14px;min-height:46px;padding:0 18px;border-radius:13px;font:700 14px var(--font-b);color:#04111c;background:#fff}
.act .go .arr{color:var(--amb)}
.acts .dots{display:flex;justify-content:center;gap:6px}
.acts .dots i{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.2);transition:.3s}
.acts .dots i.on{width:22px;background:var(--c)}

/* ---------- jeux ---------- */
.games .rail{display:flex;gap:10px;overflow-x:auto;padding:24px var(--pad) 8px;margin:0 calc(-1*var(--pad));scrollbar-width:none;scroll-snap-type:x proximity}
.games .rail::-webkit-scrollbar{display:none}
.game{flex:0 0 150px;scroll-snap-align:start;border-radius:16px;overflow:hidden;position:relative;aspect-ratio:2/3;background:var(--surface);border:1px solid var(--line)}
.game img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.game:active img{transform:scale(1.06)}
.game b{position:absolute;inset:auto 0 0 0;padding:26px 10px 10px;font:700 13px/1.15 var(--font-t);color:#fff;background:linear-gradient(transparent,rgba(4,6,12,.95))}
.game small{display:block;font:600 10px var(--font-b);letter-spacing:.1em;text-transform:uppercase;color:var(--c);margin-top:3px}
.games .more{margin-top:18px}

/* ---------- tarifs ---------- */
.tarifs .g{display:grid;gap:10px;margin-top:26px}
.tf{position:relative;display:flex;align-items:center;gap:14px;padding:18px;border-radius:20px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.tf.best{border-color:rgba(46,229,157,.45);background:linear-gradient(135deg,rgba(46,229,157,.1),var(--surface) 60%)}
.tf.top{border-color:rgba(0,198,255,.35)}
.tf .d{flex:1}
.tf .d b{display:block;font:700 17px var(--font-t);color:#fff}
.tf .d small{display:block;font-size:13px;color:var(--txt3);margin-top:3px}
.tf .p{font:400 40px/1 var(--font-n);color:#fff;text-align:right;white-space:nowrap}
.tf .p small{display:block;font:600 11px var(--font-b);color:var(--c);letter-spacing:.06em}
.tf .p.gold{color:#2ee59d}
.tf .tag{position:absolute;top:-1px;right:16px;padding:4px 9px;border-radius:0 0 9px 9px;font:700 10px/1 var(--font-b);letter-spacing:.14em;color:#04111c;background:#2ee59d}
.tf.sur .p{font:700 15px var(--font-b);color:var(--gold)}
.tarifs .note{margin-top:14px;font-size:13px;color:var(--txt3);line-height:1.5}
.tarifs .others{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}
.tarifs .o{padding:14px 10px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--line);text-align:center}
.tarifs .o b{display:block;font:400 30px/1 var(--font-n);color:#fff}
.tarifs .o span{display:block;font:600 11px/1.3 var(--font-b);color:var(--txt3);margin-top:6px;letter-spacing:.04em}
.tarifs .cta{display:flex;gap:10px;margin-top:22px}
.tarifs .cta .btn{flex:1}
#stars2{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.5}
.tarifs{overflow:hidden}
.tarifs .wrap{position:relative;z-index:1}

/* ---------- occasions ---------- */
.occ .g{display:grid;gap:12px;margin-top:26px}
.oc{position:relative;display:grid;grid-template-columns:118px 1fr;border-radius:22px;overflow:hidden;background:var(--surface);border:1px solid var(--line);min-height:132px}
.oc img{width:100%;height:100%;object-fit:cover}
.oc .b{padding:16px 16px 16px 14px;display:flex;flex-direction:column;justify-content:center}
.oc h3{font-size:19px;color:#fff}
.oc p{font-size:13px;color:var(--txt3);margin-top:5px;line-height:1.4}
.oc .go{margin-top:10px;font:700 13px var(--font-b);color:var(--c);display:inline-flex;gap:6px;align-items:center}
.oc .pr{position:absolute;top:10px;left:10px;padding:5px 8px;border-radius:9px;font:700 11px var(--font-b);color:#04111c;background:var(--c)}

/* ---------- avis ---------- */
.avis .stack{position:relative;height:300px;margin-top:30px;perspective:1000px}
.rvw{position:absolute;inset:0;padding:24px;border-radius:24px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;transition:transform .55s var(--ease),opacity .55s;transform-origin:50% 100%;will-change:transform;touch-action:pan-y}
.rvw[data-i="0"]{z-index:5}
.rvw[data-i="1"]{transform:translateY(14px) scale(.96);z-index:4;opacity:.8}
.rvw[data-i="2"]{transform:translateY(28px) scale(.92);z-index:3;opacity:.55}
.rvw[data-i="3"],.rvw[data-i="4"],.rvw[data-i="5"]{transform:translateY(40px) scale(.88);z-index:2;opacity:0}
.rvw.out{transform:translate(-120%,-10%) rotate(-10deg);opacity:0}
.rvw .st{display:flex;gap:3px;color:var(--gold);font-size:18px}
.rvw .st i{font-style:normal;opacity:.2;transition:opacity .25s}
.rvw[data-i="0"] .st i{animation:starOn .4s var(--ease) forwards}
.rvw[data-i="0"] .st i:nth-child(2){animation-delay:.1s}.rvw[data-i="0"] .st i:nth-child(3){animation-delay:.2s}.rvw[data-i="0"] .st i:nth-child(4){animation-delay:.3s}.rvw[data-i="0"] .st i:nth-child(5){animation-delay:.4s}
@keyframes starOn{to{opacity:1;filter:drop-shadow(0 0 6px var(--gold))}}
.rvw q{display:block;font-size:16px;line-height:1.5;color:#e9edf8;margin:14px 0;quotes:"« " " »"}
.rvw .who{display:flex;justify-content:space-between;align-items:center;font:600 13px var(--font-b);color:var(--txt3)}
.rvw .who b{color:#fff}
.avis .hint{margin-top:14px;text-align:center;font:600 12px var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.avis .all{display:flex;justify-content:center;margin-top:12px}

/* ---------- étapes ---------- */
.steps .g{display:grid;gap:10px;margin-top:26px;counter-reset:s}
.stp{display:grid;grid-template-columns:54px 1fr;gap:12px;align-items:center;padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.stp .n{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font:400 30px/1 var(--font-n);color:var(--c);background:rgba(0,198,255,.1);border:1px solid rgba(0,198,255,.25)}
.stp b{display:block;font:700 16px var(--font-t);color:#fff}
.stp span{display:block;font-size:13px;color:var(--txt3);margin-top:3px}

/* ---------- faq ---------- */
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;font:600 16px var(--font-b);color:#fff;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-style:normal;color:var(--c);transition:transform .4s var(--ease)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--c);color:#04111c}
.faq details p{padding:0 40px 18px 0;color:var(--txt3);font-size:15px;line-height:1.55}

/* ---------- devis ---------- */
.devis .card{padding:22px;border-radius:24px;background:var(--surface);border:1px solid var(--line);margin-top:24px}
.f{display:grid;gap:10px}
.f .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.f input,.f select,.f textarea{width:100%;min-height:52px;padding:14px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:#fff;font:inherit;font-size:16px}
.f textarea{min-height:100px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--c);box-shadow:0 0 0 3px rgba(0,198,255,.2)}
.f label.chk{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--txt3)}
.f label.chk input{width:auto;min-height:0;margin-top:3px}
.f .msg{font-size:14px;color:#2ee59d;display:none}
.f .msg.err{color:#ff7a59}

/* ---------- infos ---------- */
.infos .card{padding:22px;border-radius:24px;background:var(--surface);border:1px solid var(--line);margin-top:24px}
.infos .adr{font:700 17px var(--font-t);color:#fff}
.infos .adr small{display:block;font:500 13px var(--font-b);color:var(--txt3);margin-top:4px}
.hours{margin-top:18px;display:grid;gap:0}
.hours div{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid var(--line);font-size:14px;color:var(--txt2)}
.hours div.now{color:#fff;font-weight:700}
.hours div.now span:last-child{color:var(--c)}
.hours div .sr{color:var(--gold);font-weight:600}
.hours div em{font-style:normal;color:var(--mute);font-size:12px}
.infos .note{font-size:13px;color:var(--txt3);margin-top:12px;line-height:1.5}
.feat{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.feat span{padding:8px 12px;border-radius:999px;font:600 12px var(--font-b);color:var(--txt2);background:rgba(255,255,255,.05);border:1px solid var(--line)}
.infos .acts3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:20px}
.infos .acts3 a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border-radius:16px;font:700 13px var(--font-b);color:#fff;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.infos .acts3 a svg{width:22px;height:22px;stroke:var(--c);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.infos .acts3 a.wa svg{stroke:#2ee59d}

/* ---------- footer ---------- */
footer{padding:40px 0 calc(var(--nav-h) + 30px);border-top:1px solid var(--line);color:var(--txt3);font-size:13px}
footer .logo{width:56px;margin-bottom:14px}
footer .soc{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0;font-weight:600;color:#fff}
footer .leg{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;color:var(--mute)}

/* ---------- barre basse ---------- */
.nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:100;-webkit-transform:translate3d(0,0,0);will-change:transform;display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;align-items:center;gap:2px;padding:6px 6px 6px 8px;border-radius:22px;background:rgba(10,14,24,.72);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 40px rgba(0,0,0,.5)}
.nav a,.nav .mnu-open{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 2px 6px;font:600 11px/1 var(--font-b);color:var(--txt3);border-radius:14px;position:relative}
.nav .mnu-open{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav a svg,.nav .mnu-open svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nav a.on{color:#fff}
.nav a.on::before{content:"";position:absolute;top:0;width:22px;height:3px;border-radius:2px;background:var(--c);box-shadow:0 0 12px var(--c)}
.nav .res{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:52px;padding:0 16px;border-radius:16px;font:700 14px/1.1 var(--font-b);color:#04111c;background:linear-gradient(135deg,var(--c),var(--c2));box-shadow:0 8px 24px rgba(0,198,255,.4)}
.nav .res small{display:block;font:600 10px var(--font-b);opacity:.75;margin-top:2px}
.nav .res svg{stroke:#04111c}

/* ---------- allégé ---------- */
body.lite .hero .grain,body.lite #stars,body.lite #stars2,body.lite .btn::after,body.lite .hero .neon{display:none}
body.lite .act img{transition:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero h1 .w,.hero p.sub,.hero .cta,.hero .proof{opacity:1;transform:none}
  .rv{opacity:1;transform:none}.rv-clip{clip-path:none}
}

/* ---------- ordinateur ---------- */
@media (min-width:900px){
  :root{--pad:32px;--nav-h:0px}
  .nav{display:none}
  .hd-nav{display:flex}
  .hd .wrap{gap:30px}
  .hero{align-items:center;padding-bottom:0}
  .hero .wrap{max-width:1180px}
  .hero h1{font-size:clamp(80px,8.5vw,132px);max-width:11ch}
  .hero .cta{flex-direction:row;align-items:center;gap:22px}
  .hero .media img,.hero .media video{object-position:center 40%}
  .scrollhint{display:block;bottom:28px}
  .stats .g{grid-template-columns:repeat(4,1fr)}
  .acts .rail{gap:18px}
  .act{flex-basis:300px}
  .games .rail{flex-wrap:wrap;overflow:visible;margin:0;padding:24px 0 0}
  .game{flex:0 0 calc(12.5% - 9px)}
  .tarifs .g{grid-template-columns:repeat(3,1fr)}
  .occ .g{grid-template-columns:repeat(3,1fr)}
  .oc{grid-template-columns:1fr;min-height:0}
  .oc img{height:160px}
  .steps .g{grid-template-columns:repeat(4,1fr)}
  .stp{grid-template-columns:1fr;text-align:left}
  .two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
  .avis .stack{max-width:560px}
  footer{padding-bottom:40px}
}

/* ---------- titre, variante 1 : « assis » barré au néon ---------- */
.h1v1{font-size:clamp(48px,13.6vw,128px)!important;line-height:.93!important;letter-spacing:-.045em!important}
.h1v1 .strike{position:relative;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.9)}
.h1v1 .strike i{position:absolute;left:-6%;right:-8%;top:50%;height:.1em;border-radius:.06em;background:var(--c);box-shadow:0 0 14px var(--c),0 0 42px var(--c);transform:rotate(-7deg) scaleX(0);transform-origin:left center;animation:strike .55s 2.05s cubic-bezier(.7,0,.2,1) forwards}
@keyframes strike{to{transform:rotate(-7deg) scaleX(1)}}
.h1v1 .ok{display:inline-block;margin-left:.12em;padding:.14em .32em;border-radius:.22em;font:700 .26em/1 var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:#04111c;background:var(--c);box-shadow:0 0 24px rgba(0,198,255,.7);vertical-align:middle;opacity:0;transform:translateY(.4em) rotate(-4deg) scale(.8);animation:pop .45s 2.55s cubic-bezier(.2,1.6,.4,1) forwards}
@keyframes pop{to{opacity:1;transform:translateY(-.15em) rotate(-4deg) scale(1)}}

/* ---------- titre, variante 2 : la photo à travers les lettres ---------- */
body.hv2 .hero .media img{filter:brightness(.8) saturate(1.2)}
body.hv2 .hero .media video{filter:brightness(.9) saturate(1.3) contrast(1.06)}
body.hv2 .hero .veil{background:linear-gradient(180deg,rgba(4,6,12,.5) 0%,rgba(4,6,12,.12) 28%,rgba(4,6,12,.3) 52%,rgba(6,9,16,.82) 74%,var(--bg) 100%)}
body.hv2 .hero .veil::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 42%,rgba(0,198,255,.12) 50%,transparent 58%);background-size:250% 100%;animation:heroSweep 7s linear infinite}
@keyframes heroSweep{from{background-position:130% 0}to{background-position:-130% 0}}
body.hv2 .hero .loc{display:none}
.h1v2{font-family:var(--font-n)!important;font-weight:400!important;text-transform:uppercase;font-size:clamp(78px,24vw,240px)!important;line-height:.83!important;letter-spacing:.01em!important;display:flex;flex-direction:column;margin-bottom:.06em}
.h1v2 .w{display:block;width:max-content;background:url(../img/hero-neon-vivid-1600.webp) 50% 40%/260% auto;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.6);filter:drop-shadow(0 0 22px rgba(0,198,255,.35));animation:wordIn .7s var(--ease) forwards,pan 12s ease-in-out infinite alternate!important;animation-delay:calc(1.05s + var(--i,0) * 120ms),0s!important}
.h1v2 .w:nth-child(2){background-position:20% 60%}
.h1v2 .w:nth-child(3){background-position:80% 30%}
@keyframes pan{from{background-position:10% 30%}to{background-position:90% 70%}}
.h1v2 .dot{color:var(--c);-webkit-text-stroke:0;background:none;-webkit-background-clip:border-box}

/* ---------- titre, variante 3 : ARÈNE en glitch ---------- */
.h1v3{letter-spacing:0!important}
.h1v3 .pre{display:block;font:700 clamp(21px,6.2vw,44px)/1.05 var(--font-t);letter-spacing:.04em;text-transform:uppercase;color:#fff}
.h1v3 .big{display:block;position:relative;width:max-content;margin-top:.2em;font-family:var(--font-n);font-weight:400;text-transform:uppercase;font-size:clamp(116px,37vw,320px);line-height:.8;letter-spacing:.01em;color:#fff;text-shadow:0 0 34px rgba(0,198,255,.45),0 0 90px rgba(0,198,255,.25)}
.h1v3 .big::before,.h1v3 .big::after{content:attr(data-t);position:absolute;inset:0;pointer-events:none;text-shadow:none}
.h1v3 .big::before{color:#00e5ff;mix-blend-mode:screen;clip-path:inset(0 0 100% 0);animation:gA 3.4s 2.3s steps(1) infinite}
.h1v3 .big::after{color:#ff2bd6;mix-blend-mode:screen;clip-path:inset(0 0 100% 0);animation:gB 3.4s 2.3s steps(1) infinite}
@keyframes gA{0%{clip-path:inset(12% 0 60% 0);transform:translate(-7px,0)}3%{clip-path:inset(55% 0 20% 0);transform:translate(6px,0)}6%{clip-path:inset(30% 0 45% 0);transform:translate(-4px,0)}9%,100%{clip-path:inset(0 0 100% 0);transform:none}}
@keyframes gB{0%{clip-path:inset(62% 0 8% 0);transform:translate(7px,0)}3%{clip-path:inset(8% 0 70% 0);transform:translate(-6px,0)}6%{clip-path:inset(40% 0 35% 0);transform:translate(4px,0)}9%,100%{clip-path:inset(0 0 100% 0);transform:none}}
.h1v3 .big i{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(0,0,0,.14) 0 1px,transparent 1px 5px);mix-blend-mode:multiply;animation:scan 6s linear infinite}
@keyframes scan{to{background-position:0 60px}}
.hud{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 2px;font:700 11px/1 var(--font-b);letter-spacing:.14em;text-transform:uppercase;opacity:0;animation:fadeUp .8s 1.7s var(--ease) forwards}
.hud span{padding:7px 10px;border-radius:8px;color:var(--c);background:rgba(0,198,255,.08);border:1px solid rgba(0,198,255,.3)}


/* =====================  PAGES INTÉRIEURES  ===================== */
.hero-sub{min-height:74svh;min-height:74vh;padding-bottom:40px}
.hero-sub .media img{animation:kb 26s ease-in-out infinite alternate}
.h1s{font-family:var(--font-n)!important;font-weight:400!important;text-transform:uppercase;font-size:clamp(56px,15.5vw,150px)!important;line-height:.86!important;letter-spacing:.01em!important;color:#fff;text-shadow:0 6px 40px rgba(0,0,0,.55)}
.h1s em{font-style:normal;color:var(--c);text-shadow:0 0 26px rgba(0,198,255,.55),0 0 70px rgba(0,198,255,.25)}
.hero-sub .sub{margin-top:16px}
.crumb{display:flex;gap:8px;align-items:center;font:600 12px/1 var(--font-b);color:var(--txt3);margin-bottom:14px}
.crumb a{color:var(--txt2)}
.crumb span{opacity:.5}

/* blocs activité alternés */
.fb{display:grid;gap:18px;padding:34px 0;border-top:1px solid var(--line)}
.fb:first-of-type{border-top:0}
.fb .ph{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/3;background:var(--surface)}
.fb .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.4s var(--ease)}
.fb .ph.in img{transform:scale(1)}
.fb .ph .tag{position:absolute;top:14px;left:14px;padding:8px 12px;border-radius:999px;font:700 11px/1 var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:#04111c;background:var(--amb,var(--c))}
.fb h3{font:700 clamp(28px,7.5vw,44px)/1.02 var(--font-t);letter-spacing:-.03em;color:#fff}
.fb .k{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.fb .k span{padding:8px 12px;border-radius:12px;font:600 13px/1 var(--font-b);color:#fff;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.fb .k span b{color:var(--amb,var(--c));font-weight:800}
.fb p{color:var(--txt2);font-size:16px;line-height:1.6;margin-top:10px}
.fb .ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.fb .ctas .btn{min-height:52px;font-size:15px}

/* formules */
.fm-g{display:grid;gap:14px;margin-top:24px}
.fm{position:relative;padding:22px 20px;border-radius:24px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column}
.fm.star{border-color:rgba(0,198,255,.45);background:linear-gradient(160deg,rgba(0,198,255,.1),var(--surface) 55%);box-shadow:0 20px 60px rgba(0,198,255,.12)}
.fm .rib{position:absolute;top:-1px;right:18px;padding:6px 10px;border-radius:0 0 10px 10px;font:800 10px/1 var(--font-b);letter-spacing:.14em;color:#04111c;background:var(--c)}
.fm .who{font:700 11px/1 var(--font-b);letter-spacing:.2em;text-transform:uppercase;color:var(--c)}
.fm h3{font:700 26px/1.05 var(--font-t);color:#fff;margin-top:8px}
.fm .pr{display:flex;align-items:baseline;gap:8px;margin-top:12px}
.fm .pr b{font:400 58px/1 var(--font-n);color:#fff}
.fm .pr span{color:var(--txt3);font-size:14px}
.fm .mer{margin-top:4px;font-size:14px;color:#2ee59d;font-weight:600}
.fm ul{list-style:none;margin:16px 0 18px;display:grid;gap:9px}
.fm li{display:flex;gap:10px;font-size:15px;color:var(--txt2);line-height:1.45}
.fm li::before{content:"";flex:none;width:18px;height:18px;margin-top:2px;border-radius:50%;background:rgba(0,198,255,.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300c6ff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/11px no-repeat}
.fm .meta{font-size:13px;color:var(--mute);margin-bottom:16px}
.fm .btn{margin-top:auto}

/* déroulé */
.tl{position:relative;margin-top:26px;display:grid;gap:14px;padding-left:34px}
.tl::before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--c),rgba(0,198,255,.1));border-radius:2px}
.tl .st{position:relative;padding:16px 18px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.tl .st::before{content:attr(data-n);position:absolute;left:-34px;top:14px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 13px/1 var(--font-b);color:#04111c;background:var(--c);box-shadow:0 0 16px rgba(0,198,255,.6)}
.tl b{display:block;font:700 17px var(--font-t);color:#fff}
.tl span{display:block;font-size:14px;color:var(--txt3);margin-top:4px}
.tl em{font-style:normal;color:var(--c);font-weight:700}

/* semaine en direct */
.wk{display:grid;gap:10px;margin-top:24px}
.wk .d{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:16px 18px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.wk .d.today{border-color:rgba(0,198,255,.5);box-shadow:0 0 0 1px rgba(0,198,255,.25),0 14px 40px rgba(0,198,255,.12)}
.wk .d .n{font:700 16px var(--font-t);color:#fff}
.wk .d .n i{font-style:normal;margin-left:8px;padding:3px 7px;border-radius:7px;font:700 10px/1 var(--font-b);letter-spacing:.1em;color:#04111c;background:var(--c);vertical-align:2px}
.wk .d .h{grid-column:1;font-size:13px;color:var(--txt3)}
.wk .d .p{grid-row:1/3;grid-column:2;text-align:right}
.wk .d .p b{display:block;font:400 34px/1 var(--font-n);color:#fff}
.wk .d .p small{display:block;font-size:12px;color:var(--c);font-weight:600;margin-top:3px}
.wk .d .p .sr{font:700 14px var(--font-b);color:var(--gold)}
.wk .d.best .p b{color:#2ee59d}
.live{display:inline-flex;align-items:center;gap:7px;font:700 11px/1 var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:#2ee59d}
.live::before{content:"";width:8px;height:8px;border-radius:50%;background:#2ee59d;box-shadow:0 0 10px #2ee59d;animation:blink 1.6s ease-in-out infinite}

/* abonnements */
.ab-g{display:flex;gap:12px;overflow-x:auto;padding:24px var(--pad) 10px;margin:0 calc(-1*var(--pad));scroll-snap-type:x mandatory;scrollbar-width:none}
.ab-g::-webkit-scrollbar{display:none}
.ab{flex:0 0 min(78vw,300px);scroll-snap-align:start;padding:22px 20px;border-radius:24px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column}
.ab h3{font:400 30px/1 var(--font-n);letter-spacing:.04em;color:#fff}
.ab .pr b{font:400 48px/1 var(--font-n);color:var(--c)}
.ab .pr span{color:var(--txt3);font-size:14px;margin-left:4px}
.ab .ry{font:600 14px var(--font-b);color:#fff;margin:6px 0 10px}
.ab p{font-size:14px;color:var(--txt3);line-height:1.5}

/* carte du bar */
.bar-g{display:grid;gap:12px;margin-top:22px}
.bar-c{padding:18px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.bar-c h4{font:700 14px/1 var(--font-b);letter-spacing:.12em;text-transform:uppercase;color:var(--c);margin-bottom:10px}
.bar-c div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px dashed rgba(255,255,255,.08);font-size:14px;color:var(--txt2)}
.bar-c div:first-of-type{border-top:0}
.bar-c div b{color:#fff;font-weight:600;white-space:nowrap}

/* jeux : filtres, grille, fiche */
.gf{position:sticky;top:0;z-index:30;margin:0 calc(-1*var(--pad));padding:12px var(--pad);background:rgba(8,12,20,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.gf .row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.gf .row::-webkit-scrollbar{display:none}
.gf .row+.row{margin-top:8px}
.chip{flex:none;padding:10px 14px;border-radius:999px;font:600 13px/1 var(--font-b);color:var(--txt2);background:rgba(255,255,255,.05);border:1px solid var(--line);transition:.2s}
.chip.on{color:#04111c;background:var(--c);border-color:var(--c);box-shadow:0 0 16px rgba(0,198,255,.45)}
.gcount{margin:16px 0 4px;font:600 13px var(--font-b);color:var(--txt3)}
.ggrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.gcard{position:relative;display:block;width:100%;text-align:left;border-radius:18px;overflow:hidden;aspect-ratio:3/4;background:var(--surface);border:1px solid var(--line);isolation:isolate}
.gcard[hidden]{display:none}
.gcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transition:transform .7s var(--ease)}
.gcard:active img{transform:scale(1.06)}
.gcard .gt{position:absolute;inset:auto 0 0 0;padding:34px 10px 10px;background:linear-gradient(transparent,rgba(4,6,12,.96) 55%)}
.gcard b{display:block;font:700 14px/1.15 var(--font-t);color:#fff}
.gcard small{display:block;margin-top:4px;font:600 11px/1.3 var(--font-b);color:var(--c)}
.gcard .ar{position:absolute;top:8px;left:8px;padding:5px 8px;border-radius:8px;font:700 10px/1 var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(8,12,20,.7);backdrop-filter:blur(6px)}
.gcard .ar.g{color:#04111c;background:var(--c)}
.sheet-bg{position:fixed;inset:0;z-index:180;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:.3s}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:190;max-height:88vh;overflow:auto;border-radius:26px 26px 0 0;background:#0d1320;border-top:1px solid rgba(255,255,255,.12);transform:translateY(105%);transition:transform .45s var(--ease);padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.sheet.on{transform:none}
.sheet-bg.on{opacity:1;visibility:visible}
.sheet .grab{width:44px;height:5px;border-radius:3px;background:rgba(255,255,255,.25);margin:10px auto}
.sheet .sh-img{aspect-ratio:16/9;background:#000}
.sheet .sh-img img{width:100%;height:100%;object-fit:cover}
.sheet .sh-b{padding:18px var(--pad) 0}
.sheet h3{font:700 28px/1.05 var(--font-t);color:#fff}
.sheet .sh-k{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.sheet .sh-k span{padding:7px 10px;border-radius:10px;font:600 12px/1 var(--font-b);color:#fff;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.sheet p{color:var(--txt2);font-size:15px;line-height:1.6}
.sheet .pp{margin-top:10px;font-size:14px;color:var(--txt3)}
.sheet .sh-c{display:flex;gap:10px;margin-top:18px}
.sheet .sh-c .btn{flex:1}
.sheet .x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;background:rgba(8,12,20,.7);color:#fff;font-size:20px;z-index:2}

/* faq */
.fq-s{position:relative;margin-top:22px}
.fq-s input{width:100%;min-height:56px;padding:0 18px 0 48px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;font:16px var(--font-b)}
.fq-s input:focus{outline:none;border-color:var(--c);box-shadow:0 0 0 3px rgba(0,198,255,.2)}
.fq-s svg{position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);stroke:var(--txt3);fill:none;stroke-width:2}
.fq-cats{display:flex;gap:8px;overflow-x:auto;margin:14px 0 6px;scrollbar-width:none}
.fq-cats::-webkit-scrollbar{display:none}
.fq-g h3{font:700 13px/1 var(--font-b);letter-spacing:.2em;text-transform:uppercase;color:var(--c);margin:28px 0 6px}
.fq-g[hidden],.faq details[hidden]{display:none}
.fq-none{display:none;margin-top:20px;color:var(--txt3)}

/* plan d'accès */
.plan{border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#0b1426;margin-top:22px}
.plan img{width:100%;height:auto}
.dir{display:grid;gap:10px;margin-top:16px}
.dir div{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-size:15px;color:var(--txt2)}
.dir div b{color:#fff}
.dir svg{flex:none;width:22px;height:22px;stroke:var(--c);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}

/* bandeau d'appel final */
.cta-band{position:relative;overflow:hidden;margin:10px 0 0;padding:34px 22px;border-radius:28px;background:linear-gradient(135deg,rgba(0,198,255,.18),rgba(192,76,255,.14));border:1px solid rgba(0,198,255,.3)}
.cta-band h2{font-size:clamp(30px,8vw,52px)}
.cta-band p{color:var(--txt2);margin:10px 0 18px}
.cta-band .row{display:flex;flex-wrap:wrap;gap:10px}

@media (min-width:900px){
  .hero-sub{min-height:62vh}
  .fb{grid-template-columns:1.1fr 1fr;gap:44px;align-items:center;padding:56px 0}
  .fb:nth-of-type(even) .ph{order:2}
  .fm-g{grid-template-columns:repeat(2,1fr)}
  .fm-g.three{grid-template-columns:repeat(3,1fr)}
  .ggrid{grid-template-columns:repeat(4,1fr);gap:14px}
  .wk{grid-template-columns:repeat(2,1fr)}
  .bar-g{grid-template-columns:repeat(3,1fr)}
  .ab-g{flex-wrap:wrap;overflow:visible;margin:0;padding:24px 0 0}
  .ab{flex:1 1 calc(25% - 12px)}
  .sheet{left:50%;right:auto;width:560px;bottom:50%;border-radius:26px;transform:translate(-50%,60%);opacity:0;visibility:hidden;transition:.35s}
  .sheet.on{transform:translate(-50%,50%);opacity:1;visibility:visible}
}

/* ===== héro : écran vidéo net sur téléphone, fond flou ===== */
.hero .band,.hero .badge.in-band{display:none}
.wk .d .r{grid-column:1/-1;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.1);font-size:13px;font-weight:600;color:var(--c)}
.today .tb{display:flex;gap:10px;margin-top:10px}
.today .tb .btn{flex:1;min-height:50px;font-size:15px;padding:0 14px}
.today .card{align-items:center}
.today .t1{font:700 16px/1.3 var(--font-t);color:#fff}
@media (max-width:899px){
  body.hv2 .hero .media img{filter:blur(16px) brightness(.5) saturate(1.3);transform:scale(1.15)}
  body.hv2 .hero .media video.bgv{filter:blur(16px) brightness(.5) saturate(1.4);transform:scale(1.15)}
  body.hv2 .hero .band{display:block;position:relative;margin:0 calc(-1*var(--pad)) 20px;aspect-ratio:16/9;overflow:hidden;background:#000;box-shadow:0 22px 60px rgba(0,0,0,.65),0 1px 0 rgba(0,198,255,.5),0 -1px 0 rgba(0,198,255,.35);opacity:0;animation:fadeUp .8s .9s var(--ease) forwards}
  body.hv2 .hero .band video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1}
  body.hv2 .hero .band .bug{position:absolute;right:2%;bottom:4%;display:flex;align-items:center;gap:6px;padding:6px 10px 6px 7px;border-radius:10px;background:rgba(6,9,16,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font:700 11px/1 var(--font-b);letter-spacing:.12em;color:#fff}
  body.hv2 .hero .band .bug img{width:20px;height:20px}
  body.hv2 .hero .badge.in-band{display:inline-flex;position:absolute;left:12px;top:12px;margin:0;font-size:11px;padding:7px 10px;background:rgba(6,9,16,.6)}
  body.hv2 .hero .badge.out-band{display:none}
  body.hv2 .hero .loc{margin-bottom:8px}
  body.hv2 .h1v2{font-size:clamp(66px,19.5vw,240px)!important}
  body.hv2 .hero .sub{font-size:16px;margin-top:10px}
  body.hv2 .hero .cta{margin-top:18px}
  body.hv2 .hero .cta .lnk{display:none}
}
.periode{margin-top:18px}

/* Le body des sous-pages porte la classe « sub », qui est aussi celle des sous-titres (max-width:56ch).
   Sans cette ligne, toute la page est comprimée à 671 px sur ordinateur. Le reste de la règle est gardé : rendu mobile inchangé. */
body.sub{max-width:none;margin-top:0}   /* la règle .sub des sous-titres donnait aussi 14 px de marge au haut des pages intérieures (vu le 26/09 avec le bandeau) */

/* Double tap : il n'agrandit plus la page sur iPhone (demande d'Aymeric du 24/09). Le zoom à deux doigts reste possible,
   comme l'exige l'accessibilité. Sélecteur universel sans poids : une règle plus précise (ex. .rvw) garde la sienne. */
*{touch-action:manipulation}

/* ---------- Associations : demande de places (module « Dons » de Pulzar) ---------- */
.dons-f{position:relative}
.dons-f h4{font:600 12px/1.2 var(--font-t);letter-spacing:.16em;text-transform:uppercase;color:var(--c);margin:14px 0 0}
.dons-f h4:first-of-type{margin-top:0}
.f label.l{font-size:13px;color:var(--txt3);margin:6px 0 -4px;line-height:1.4}
.f fieldset.rad{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:4px 0 0;min-width:0}
.f fieldset.rad legend{font-size:14px;color:var(--txt2);padding:0 6px;line-height:1.45}
.f fieldset.rad .opts{display:flex;gap:22px;margin-top:6px}
.f fieldset.rad label{display:flex;align-items:center;gap:8px;font-size:16px;color:#fff;min-height:44px;cursor:pointer}
.f fieldset.rad input{width:22px;height:22px;min-height:0;margin:0;accent-color:var(--c)}
.f fieldset.rad .note{font-size:13px;color:var(--gold);margin-top:4px}
.f input[type=file]{min-height:0;padding:12px;font-size:16px;color:var(--txt3)}
.f .fe{font-size:13px;color:#ff7a59;margin:-4px 0 2px}
.f [aria-invalid=true]{border-color:#ff7a59}
.regles{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.regles li{display:flex;gap:12px;align-items:flex-start;color:var(--txt2);font-size:15px;line-height:1.5}
.regles li::before{content:"";flex:0 0 8px;height:8px;margin-top:8px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}
.dons-r h3{font:700 22px/1.25 var(--font-t);margin:8px 0 6px;color:#fff}
.dons-r p{color:var(--txt2);line-height:1.6}

/* ---------- accroche de l'accueil : « la manette tombe » (25/09/2026, choix d'Aymeric) ----------
   Remplace le titre à photo dans les lettres (.h1v2) : avec la vidéo derrière, c'était illisible sur PC.
   Texte en blanc plein ; une manette en néon apparaît près du titre puis tombe ; le vrai fusil Zero Latency glisse à sa
   place, s'allume et flotte. Mobile : trois lignes, la scène à droite du mot court. PC : deux lignes, la scène à droite. */
.accroche{position:relative}
.h1m{position:relative;z-index:2;font-family:var(--font-n)!important;font-weight:400!important;text-transform:uppercase;font-size:clamp(56px,17vw,96px)!important;line-height:.86!important;letter-spacing:.01em!important;color:#fff;margin-bottom:.12em;text-shadow:0 4px 30px rgba(0,0,0,.65),0 0 2px rgba(0,0,0,.5)}
/* .hero h1 .w (plus haut) pose inline-block : .hero .h1m .w doit être plus précis pour garder trois lignes sur mobile */
.hero .h1m .w{display:block;width:max-content}
.h1m .dot{color:var(--c)}
.lache{position:absolute;z-index:1;right:-2%;top:10%;width:46%;aspect-ratio:1100/809;pointer-events:none}
.lache .manette{position:absolute;left:0;top:6%;width:58%;height:auto;stroke:#8fe8ff;stroke-width:5;opacity:0;filter:drop-shadow(0 0 8px rgba(0,198,255,.9)) drop-shadow(0 0 22px rgba(0,198,255,.45));
  animation:padIn .45s 1.55s var(--ease) forwards,padShake .5s 2s ease-in-out,padDrop .75s 2.5s cubic-bezier(.55,0,1,.45) forwards}
.lache .fusil{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;filter:drop-shadow(0 0 18px rgba(0,198,255,.45));
  animation:fusilIn .9s 2.9s cubic-bezier(.2,.8,.2,1) forwards,fusilFlotte 7s 3.9s ease-in-out infinite}
@keyframes padIn{from{opacity:0;scale:.55;rotate:-10deg}to{opacity:1;scale:1;rotate:0deg}}
@keyframes padShake{0%,100%{rotate:0deg}25%{rotate:-8deg}75%{rotate:8deg}}
@keyframes padDrop{from{opacity:1;translate:0 0;rotate:0deg}to{opacity:0;translate:-12% 170%;rotate:40deg}}
@keyframes fusilIn{
  0%{opacity:0;translate:26% -4%;filter:blur(8px) brightness(2.4) drop-shadow(0 0 18px rgba(0,198,255,.45))}
  55%{opacity:1;filter:blur(0) brightness(1.7) drop-shadow(0 0 30px rgba(0,198,255,.95))}
  100%{opacity:1;translate:0 0;filter:blur(0) brightness(1) drop-shadow(0 0 18px rgba(0,198,255,.45))}
}
@keyframes fusilFlotte{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1.5deg)}}
@media (min-width:900px){
  .hero .h1m{font-size:clamp(96px,9.5vw,150px)!important;max-width:none}
  .hero .h1m .w{display:inline-block}
  .hero .h1m .w:nth-child(3){display:block}
  .lache{right:0;top:50%;width:min(40vw,520px);translate:0 -50%}
  .lache .manette{top:14%;width:42%}
  /* la vidéo reste derrière, assombrie du côté du texte */
  body.hv2 .hero .media video{filter:brightness(.66) saturate(1.2) contrast(1.05)}
  body.hv2 .hero .veil{background:linear-gradient(90deg,rgba(4,6,12,.84) 0%,rgba(4,6,12,.58) 40%,rgba(4,6,12,.2) 72%,rgba(4,6,12,.32) 100%),linear-gradient(180deg,rgba(4,6,12,.5) 0%,rgba(4,6,12,.1) 28%,rgba(4,6,12,.25) 60%,var(--bg) 100%)}
}
@media (prefers-reduced-motion:reduce){
  .lache .manette{display:none}
  .lache .fusil{opacity:1;animation:none}
}

/* ---------- chat Pulzar : la bulle au-dessus des barres du bas (26/09, bascule) ----------
   public-chat-widget.js pose sa bulle #pzc-fab à 24 px du bas et sa fenêtre #pzc-panel à 92 px. Sur téléphone, la bulle
   tombait sur la barre basse, et sur la réservation sur le bouton Continuer. Sélecteurs plus forts que les siens.
   Barre basse : 10 px du bord + 66 px de haut + 12 px d'écart. Barre Retour / Continuer : 84 à 87 px + 12 px. */
html body #pzc-fab{bottom:calc(88px + env(safe-area-inset-bottom))}
html body #pzc-panel{bottom:calc(156px + env(safe-area-inset-bottom))}
html body.resa-page #pzc-fab{bottom:calc(100px + env(safe-area-inset-bottom))}
html body.resa-page #pzc-panel{bottom:calc(168px + env(safe-area-inset-bottom))}
@media (min-width:900px){
  html body:not(.resa-page) #pzc-fab{bottom:24px}
  html body:not(.resa-page) #pzc-panel{bottom:92px}
}
@media (max-width:420px){   /* le chat ouvre sa fenêtre en plein écran : on lui rend son bas */
  html body #pzc-panel,html body.resa-page #pzc-panel{bottom:0}
}
/* Tant que le bandeau cookies attend un choix, la bulle ne le recouvre pas : elle apparaît dès le choix fait
   (cookie-consent.js retire alors le bandeau de la page). À son ancienne place, elle mordait sur « Tout refuser ». */
html body:has(#bvr-cookie-banner) #pzc-fab{display:none}

/* ---------- menu complet (26/09, choix d'Aymeric) ----------
   Bouton Menu dans la barre du bas (téléphone) et dans l'en-tête (PC) : toutes les offres, sans chercher. */
.hd-nav{align-items:center}   /* le bouton Menu centre son texte : les liens aussi, sinon il paraît plus bas */
.hd-nav .hd-mnu{background:none;border:0;padding:0;font:inherit;line-height:inherit;color:inherit;cursor:pointer}
.hd-nav .hd-mnu:hover{color:#fff}
.mnu{position:fixed;inset:0;z-index:2147483647;display:flex;justify-content:flex-end;background:rgba(4,6,12,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .2s}
.mnu[hidden]{display:none}
.mnu.in{opacity:1}
.mnu-in{width:min(100%,460px);height:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);border-left:1px solid var(--line);padding:calc(16px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));transform:translateX(24px);transition:transform .2s}
.mnu.in .mnu-in{transform:none}
.mnu-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.mnu-t{font:400 34px/1 'Bebas Neue',sans-serif;letter-spacing:.02em;color:#fff}
.mnu-x{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;font-size:26px;line-height:1;cursor:pointer}
.mnu-resa{width:100%;justify-content:center;margin:4px 0 16px}
.mnu-g{padding:14px 0;border-top:1px solid var(--line)}
.mnu-g h3{font:700 11px/1 var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:var(--txt3);margin:0 0 10px}
.mnu-l{display:flex;flex-wrap:wrap;gap:8px}
.mnu-l a{display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--line);color:#fff;font:600 15px var(--font-b)}
.mnu-l a:hover{border-color:rgba(0,198,255,.55)}
html.mnu-on,html.mnu-on body{overflow:hidden}
/* liens vers les pages locales et de jeux, en bas de page (référencement) */
footer .loc{margin-top:14px;font-size:12.5px;line-height:1.8;color:var(--txt3)}
footer .loc span{color:var(--txt2);font-weight:600}
footer .loc a{color:var(--txt3);margin-right:8px;text-decoration:underline;text-decoration-color:rgba(255,255,255,.18)}
/* chat Pulzar : son champ en 16 px, sinon l'iPhone zoome toute la page dès que le chat s'ouvre (il y met le curseur) */
html body #pzc-input{font-size:16px}
/* chat Pulzar sur téléphone (26/09, demande d'Aymeric) : sa fenêtre était en 100vh, donc plus haute que la partie visible
   de l'écran sur iPhone (barres de Safari), et elle ne suivait pas le clavier. site.js la cale sur la partie VISIBLE
   (--pzc-h et --pzc-y, lus dans visualViewport), fige la page derrière et masque le rond tant qu'elle est ouverte. */
@media (max-width:899px){
  html.pzc-on body #pzc-panel,html.pzc-on body.resa-page #pzc-panel{top:0;left:0;right:auto;bottom:auto;width:100%;height:var(--pzc-h,100dvh);border-radius:0;border:0;transform:translateY(var(--pzc-y,0px))}
  html.pzc-on body #pzc-fab{display:none}
  html.pzc-on,html.pzc-on body{overflow:hidden;overscroll-behavior:none}
}

/* ---------- bandeau de la soirée 100 % filles (26/09, demande d'Aymeric) ----------
   En haut de page, dans le flux : la page descend d'autant, et l'en-tête (posé en absolu) se place juste dessous.
   Hauteur par défaut réservée dès le premier affichage, ajustée ensuite par le script : pas de saut de page. */
.soiree{position:relative;z-index:25;display:flex;align-items:center;justify-content:center;gap:10px 16px;min-height:52px;padding:8px 46px 8px 16px;background:linear-gradient(135deg,#ff2d78,#b14aff);color:#fff;box-shadow:0 6px 26px rgba(255,45,120,.35)}
.soiree p{margin:0;font:500 14px/1.35 var(--font-b);text-align:center}
.soiree b{font-weight:700}
.soiree-b{display:inline-flex;align-items:center;min-height:36px;padding:0 16px;border-radius:10px;background:#0b0714;color:#fff;font:700 13.5px var(--font-b);white-space:nowrap}
.soiree-b:hover{background:#26102f}
.soiree-x{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:transparent;color:rgba(255,255,255,.85);font-size:22px;line-height:1;cursor:pointer}
html:has(#soiree) .hd{top:var(--soiree-h,52px)}
@media (max-width:640px){
  .soiree{justify-content:flex-start;gap:10px;padding:7px 42px 7px 12px}
  .soiree p{font-size:12.5px;text-align:left;flex:1}
  .soiree-plus{display:none}
  .soiree-b{min-height:34px;padding:0 12px;font-size:12.5px}
}
