@font-face{
  font-family:'Nunito';
  src:url('/fonts/nunito.woff2') format('woff2');
  font-weight:200 1000;font-style:normal;font-display:swap;
}

:root{
  --ink:#050810;
  --ink2:#0a0e1c;
  --ink3:#0f1428;
  --line:rgba(255,255,255,.08);
  --line2:rgba(255,255,255,.14);
  --txt:#fdfbff;
  --txt2:rgba(253,251,255,.68);
  --txt3:rgba(253,251,255,.42);
  --aqua:#00e5ff;
  --turquoise:#1de9b6;
  --blue:#00b8ff;
  --pink:#ff2d92;
  --orange:#ff8a00;
  --deep:#1a0b3d;
  --e:cubic-bezier(.22,1,.36,1);
  --glow:0 0 0 1px rgba(0,229,255,.18), 0 22px 60px -26px rgba(255,45,146,.5);
  --glow-pink:0 0 0 1px rgba(255,45,146,.2), 0 22px 60px -26px rgba(255,45,146,.6);
  --glow-orange:0 0 0 1px rgba(255,138,0,.2), 0 22px 60px -26px rgba(255,138,0,.6);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Nunito',ui-rounded,'SF Pro Rounded','Segoe UI Rounded',system-ui,sans-serif;
  background:
    radial-gradient(1.5px 1.5px at 10% 8%,rgba(255,138,0,.5) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 26% 22%,rgba(0,229,255,.4) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 44% 6%,rgba(255,45,146,.45) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 62% 18%,rgba(29,233,182,.4) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 80% 4%,rgba(255,138,0,.4) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 94% 26%,rgba(0,229,255,.4) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 16% 46%,rgba(255,45,146,.35) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 52% 52%,rgba(29,233,182,.3) 40%,transparent 41%),
    radial-gradient(1.5px 1.5px at 88% 60%,rgba(0,229,255,.3) 40%,transparent 41%),
    var(--ink);
  background-size:600px 600px;
  color:var(--txt);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%}
.in{width:min(1240px,100% - clamp(22px,5vw,72px));margin-inline:auto}
.sec{position:relative;padding:clamp(74px,9vw,140px) 0}

/* ---------- apparition au scroll ---------- */
.rv{opacity:0;transform:translateY(26px);
 transition:opacity 1.1s var(--e),transform 1.1s var(--e)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.09s}.d2{transition-delay:.18s}.d3{transition-delay:.27s}
@media(prefers-reduced-motion:reduce){.rv{opacity:0;transform:none}.rv.in{opacity:1}.rv,.rv.in{transition:opacity .6s ease}}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:90;transition:background .6s var(--e),backdrop-filter .6s var(--e),border-color .6s var(--e);
 border-bottom:1px solid rgba(255,255,255,.06);
 background:linear-gradient(180deg,rgba(5,8,16,.85),rgba(5,8,16,.35));
 backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hdr.sc{background:rgba(5,8,16,.88);backdrop-filter:blur(26px) saturate(180%);
 -webkit-backdrop-filter:blur(26px) saturate(180%);border-bottom-color:rgba(0,229,255,.18)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:22px;
 padding:16px clamp(22px,5vw,72px)}
.brand{display:flex;align-items:center;gap:13px}
.brand img{height:52px;width:auto;object-fit:contain}
.brand-txt{font-weight:900;font-size:clamp(21px,2.2vw,27px);letter-spacing:-.03em;
 background:linear-gradient(100deg,var(--aqua),var(--pink) 55%,var(--orange) 100%);
 background-size:200% auto;-webkit-background-clip:text;
 background-clip:text;color:transparent;animation:heroGlow 6s linear infinite}
.nav{display:flex;align-items:center;gap:6px}
.nav a{position:relative;font-size:14px;font-weight:800;color:var(--txt2);
 padding:9px 18px;border-radius:100px;transition:color .35s var(--e),background .35s var(--e),transform .35s var(--e)}
.nav a:hover{color:var(--ink);background:linear-gradient(100deg,var(--aqua),var(--turquoise));
 transform:translateY(-2px)}
.nav a.on{color:var(--ink);background:linear-gradient(100deg,var(--pink),var(--orange))}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;background:var(--ink)}
.hero-slides,.hero-video,.hero-yt{position:absolute;inset:0;z-index:1}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;
 opacity:0;transition:opacity 2.2s var(--e),transform 9s linear}
.hero-slide.on{opacity:1}
.hero-slide.zoom{transform:scale(1.09)}
.hero-video{width:100%;height:100%;object-fit:cover;pointer-events:none}
.hero-yt{overflow:hidden;pointer-events:none}
.hero-yt iframe{position:absolute;top:50%;left:50%;width:100vw;height:56.25vw;
 min-height:100%;min-width:177.77vh;transform:translate(-50%,-50%);border:0}
.hero-overlay{position:absolute;inset:0;z-index:2;
 background:radial-gradient(120% 88% at 50% 44%,rgba(5,8,16,.3),rgba(5,8,16,.9) 78%),
 linear-gradient(180deg,rgba(5,8,16,.6),transparent 34%,rgba(5,8,16,.94))}
.hero-overlay::after{content:'';position:absolute;inset:0;mix-blend-mode:screen;opacity:.5;
 background:radial-gradient(38% 46% at 14% 18%,var(--pink),transparent 62%),
 radial-gradient(42% 50% at 86% 82%,var(--aqua),transparent 62%),
 radial-gradient(30% 38% at 82% 14%,var(--orange),transparent 60%)}
.hero-in{position:relative;z-index:3;width:min(1240px,100% - clamp(22px,5vw,72px));
 margin-inline:auto;text-align:center;display:flex;flex-direction:column;align-items:center;
 padding-block:120px 90px}
.kick{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:800;
 letter-spacing:.3em;color:var(--orange);padding:9px 20px;border-radius:100px;
 border:1px solid rgba(255,138,0,.32);background:rgba(255,138,0,.09);
 backdrop-filter:blur(10px);margin-bottom:26px;
 box-shadow:0 0 24px -6px rgba(255,138,0,.5)}
.hero h1{font-weight:900;font-size:clamp(40px,8.4vw,104px);line-height:.94;letter-spacing:-.045em;
 max-width:17ch;background:linear-gradient(100deg,var(--aqua) 0%,var(--turquoise) 22%,#fff 46%,var(--pink) 72%,var(--orange) 100%);
 background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
 animation:heroGlow 7s linear infinite,hin 1.5s var(--e) both;animation-delay:0s,.16s}
@keyframes heroGlow{0%{background-position:0% center}100%{background-position:220% center}}
.lead{margin-top:26px;font-size:clamp(15px,1.55vw,19px);line-height:1.75;font-weight:400;
 color:var(--txt2);max-width:64ch}
.az{animation:hin 1.5s var(--e) both}
.az.d1{animation-delay:.16s}.az.d2{animation-delay:.3s}.az.d3{animation-delay:.44s}
@keyframes hin{from{opacity:0;transform:translateY(34px) scale(.985);filter:blur(9px)}
 to{opacity:1;transform:none;filter:none}}

/* ---------- titres de section ---------- */
.sec-kick{display:inline-flex;align-items:center;justify-content:center;gap:9px;
 font-size:11.5px;font-weight:800;letter-spacing:.3em;color:var(--orange);
 padding:9px 14px 9px 20px;border-radius:100px;width:fit-content;margin-inline:auto;
 border:1px solid rgba(255,138,0,.32);background:rgba(255,138,0,.09);
 backdrop-filter:blur(10px);margin-bottom:16px;text-indent:.3em;
 box-shadow:0 0 24px -6px rgba(255,138,0,.5)}
.sec-h{font-weight:900;font-size:clamp(30px,4.8vw,60px);line-height:1;letter-spacing:-.03em;
 text-align:center;color:#fff;transform:rotate(-1.2deg);display:inline-block;
 text-shadow:0 0 18px rgba(0,229,255,.5),0 0 40px rgba(255,45,146,.35),0 4px 0 rgba(0,0,0,.25)}
.sec-h-wrap{text-align:center}
.sec-sub{margin:20px auto 0;font-size:15.5px;line-height:1.8;font-weight:400;
 color:var(--txt2);max-width:72ch;text-align:center}

/* ---------- bloc à propos ---------- */
.ab2{background:linear-gradient(180deg,var(--ink),var(--ink2))}
.ab2-mark{display:none}
.ab2-title{font-weight:900;font-size:clamp(29px,4.6vw,58px);line-height:1.04;letter-spacing:-.04em;
 text-align:center;margin-bottom:clamp(30px,3.6vw,50px);
 background:linear-gradient(168deg,#fff 34%,rgba(255,255,255,.58));
 -webkit-background-clip:text;background-clip:text;color:transparent}
.ab2-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.4vw,52px);align-items:start}
@media(max-width:920px){.ab2-cols{grid-template-columns:1fr;gap:20px}}
.ab2-col{padding:clamp(26px,3vw,38px);border-radius:26px;
 background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
 border:1px solid var(--line);backdrop-filter:blur(14px);
 transition:transform .7s var(--e),border-color .7s var(--e),box-shadow .7s var(--e)}
.ab2-col:hover{transform:translateY(-5px);border-color:rgba(34,211,238,.24);
 box-shadow:0 30px 66px -34px rgba(10,132,255,.5)}
.ab2-col p{font-size:14.5px;line-height:1.9;font-weight:400;color:var(--txt2);margin-bottom:16px}
.ab2-col p:last-child{margin-bottom:0}
.ab2-col b{font-weight:800;color:var(--txt)}
.ab2-col2{padding-top:clamp(26px,3vw,38px)}

/* ---------- blocs technologie ---------- */
.rtm,.glow{background:var(--ink2);padding-top:0}
.rtm-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
 gap:clamp(30px,5vw,80px);align-items:center}
@media(max-width:920px){.rtm-in{grid-template-columns:1fr;gap:34px}}
.glow-in{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
@media(max-width:920px){.glow-in .rtm-art{order:-1}}
.rtm-art{position:relative;display:flex;justify-content:center}
.rtm-art::after{content:'';position:absolute;inset:6%;border-radius:50%;z-index:-1;
 background:radial-gradient(circle,rgba(34,211,238,.32),transparent 66%);filter:blur(46px)}
.rtm-art svg{width:100%;max-width:430px;height:auto;
 filter:drop-shadow(0 32px 64px rgba(0,0,0,.6));
 animation:float 8s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.rtm-txt h2{font-weight:900;font-size:clamp(27px,4.2vw,50px);line-height:1.06;letter-spacing:-.04em;
 margin-bottom:clamp(16px,2vw,24px);
 background:linear-gradient(168deg,#fff 34%,rgba(255,255,255,.58));
 -webkit-background-clip:text;background-clip:text;color:transparent}
.rtm-txt p{font-size:14.5px;line-height:1.9;font-weight:400;color:var(--txt2);margin-bottom:16px}
.rtm-txt p:last-child{margin-bottom:0}
.rtm-txt b{font-weight:800;color:var(--txt)}

/* ---------- nos toboggans ---------- */
.tob{background:linear-gradient(180deg,var(--ink2),var(--ink));overflow:hidden}
.tob-mark{display:none}
.tob-in{display:flex;flex-direction:column;align-items:center;text-align:center}
.tob-body{max-width:74ch}
.tob-body h2{font-weight:900;font-size:clamp(29px,4.6vw,58px);line-height:1.04;letter-spacing:-.04em;
 margin-bottom:20px;background:linear-gradient(168deg,#fff 34%,rgba(255,255,255,.58));
 -webkit-background-clip:text;background-clip:text;color:transparent}
.tob-body p{font-size:15.5px;line-height:1.85;font-weight:400;color:var(--txt2);margin-bottom:16px}
.tob-body p:last-child{margin-bottom:0}
.tob-body b{font-weight:800;color:var(--txt)}
.tob-cta{margin-top:30px}
.tob-btn{display:inline-flex;align-items:center;gap:10px;position:relative;overflow:hidden;
 background:linear-gradient(120deg,var(--blue),var(--aqua));color:#04121c!important;
 font-weight:800;font-size:14.5px;letter-spacing:.04em;padding:17px 42px;border-radius:100px;
 box-shadow:0 20px 44px -20px rgba(10,132,255,.8);
 transition:transform .5s var(--e),box-shadow .5s var(--e)}
.tob-btn::after{content:'';position:absolute;inset:0;transform:translateX(-120%);
 background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
 transition:transform .9s var(--e)}
.tob-btn:hover{transform:translateY(-3px);box-shadow:0 28px 56px -22px rgba(34,211,238,.9)}
.tob-btn:hover::after{transform:translateX(120%)}

.tob-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
 gap:clamp(14px,1.8vw,22px);margin-top:clamp(44px,5vw,70px)}
@media(max-width:900px){.tob-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.tob-gallery{grid-template-columns:1fr}}
.tob-card{margin:0;width:100%;min-width:0;border-radius:24px;overflow:hidden;position:relative;
 background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
 border:1px solid var(--line);
 transition:transform .7s var(--e),border-color .7s var(--e),box-shadow .7s var(--e)}
.tob-card:hover{transform:translateY(-8px);border-color:rgba(34,211,238,.3);
 box-shadow:0 40px 80px -38px rgba(10,132,255,.65)}
.tob-card svg{display:block;width:100%;height:auto;transition:transform 1s var(--e)}
.tob-card:hover svg{transform:scale(1.05)}
.tob-card figcaption{padding:18px 16px;font-size:14px;font-weight:700;letter-spacing:-.01em;
 color:var(--txt);text-align:center;border-top:1px solid var(--line)}

.tob-notice{margin-top:clamp(26px,3vw,40px);text-align:center}
.tob-notice p{font-size:12.5px;line-height:1.8;font-weight:400;color:var(--txt3);
 max-width:86ch;margin-inline:auto}

/* ---------- nos accessoires ---------- */
.acc{background:var(--ink)}
.acc-in{display:flex;justify-content:center}
.acc-body{max-width:74ch;text-align:center}
.acc-body h2{font-weight:900;font-size:clamp(29px,4.6vw,58px);line-height:1.04;letter-spacing:-.04em;
 margin-bottom:20px;background:linear-gradient(168deg,#fff 34%,rgba(255,255,255,.58));
 -webkit-background-clip:text;background-clip:text;color:transparent}
.acc-body p{font-size:15.5px;line-height:1.85;font-weight:400;color:var(--txt2)}
.acc-body b{font-weight:800;color:var(--txt)}
.acc-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:clamp(12px,1.5vw,20px);margin-top:clamp(40px,4.6vw,64px)}
@media(max-width:900px){.acc-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
.acc-card{margin:0;width:100%;min-width:0;border-radius:22px;overflow:hidden;
 background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
 border:1px solid var(--line);
 transition:transform .7s var(--e),border-color .7s var(--e),box-shadow .7s var(--e)}
.acc-card:hover{transform:translateY(-7px);border-color:rgba(34,211,238,.3);
 box-shadow:0 34px 68px -34px rgba(10,132,255,.6)}
.acc-card svg{display:block;width:100%;height:auto;transition:transform 1s var(--e)}
.acc-card:hover svg{transform:scale(1.06)}
.acc-card figcaption{padding:16px 14px;font-size:13px;font-weight:800;
 color:var(--txt);text-align:center;border-top:1px solid var(--line);
 display:flex;flex-direction:column;gap:6px}
.acc-sub{font-size:11.5px;font-weight:400;color:var(--txt3);line-height:1.5}
.acc-card:hover .acc-ico svg{filter:drop-shadow(0 0 14px rgba(0,229,255,.5))}

/* ---------- contact ---------- */
.ctz{background:linear-gradient(180deg,var(--ink),var(--ink2))}
.ctz-head{text-align:center;margin-bottom:clamp(36px,4.4vw,58px)}
.ctz-kick{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.3em;
 color:var(--aqua);padding:8px 20px;border-radius:100px;margin-bottom:18px;
 border:1px solid rgba(34,211,238,.28);background:rgba(34,211,238,.07)}
.ctz-head h2{font-weight:900;font-size:clamp(32px,5.4vw,68px);line-height:1;letter-spacing:-.045em;
 background:linear-gradient(168deg,#fff 30%,rgba(255,255,255,.55));
 -webkit-background-clip:text;background-clip:text;color:transparent}
.ctz-sub{font-size:16px;font-weight:400;color:var(--txt2);margin-top:14px}

.ctz-map{width:100%;aspect-ratio:16/6;border-radius:26px;overflow:hidden;
 margin-bottom:clamp(30px,3.6vw,48px);border:1px solid var(--line);
 filter:invert(1) hue-rotate(180deg) saturate(.6) brightness(.9);
 box-shadow:0 30px 60px -30px rgba(0,0,0,.65)}
.ctz-map iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:640px){.ctz-map{aspect-ratio:4/3}}
.ctz-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
 gap:clamp(14px,1.8vw,22px);margin-bottom:clamp(34px,4.2vw,56px)}
@media(max-width:840px){.ctz-cards{grid-template-columns:1fr}}
.ctb{display:block;padding:clamp(30px,3.4vw,44px) 24px;text-align:center;border-radius:24px;
 background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
 border:1px solid var(--line);position:relative;overflow:hidden;
 transition:transform .7s var(--e),border-color .7s var(--e),box-shadow .7s var(--e)}
a.ctb:hover{transform:translateY(-7px) rotate(-1deg);border-color:rgba(255,138,0,.4);
 box-shadow:0 36px 70px -34px rgba(255,45,146,.6)}
.ctb-hl{background:linear-gradient(150deg,rgba(255,45,146,.2),rgba(255,138,0,.1));
 border-color:rgba(255,138,0,.35)}
.ctb-ic{display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
 width:58px;height:58px;border-radius:19px;color:var(--ink);
 background:linear-gradient(140deg,var(--aqua),var(--pink));
 box-shadow:0 16px 34px -14px rgba(255,45,146,.6);
 transition:transform .6s var(--e)}
.ctb-hl .ctb-ic{background:linear-gradient(140deg,var(--pink),var(--orange));
 box-shadow:0 16px 34px -14px rgba(255,138,0,.7)}
.ctb:hover .ctb-ic{transform:scale(1.08) rotate(-5deg)}
.ctb-ic svg{width:26px;height:26px;display:block}
.ctb h3{font-weight:800;font-size:15px;letter-spacing:.08em;color:var(--txt);margin-bottom:10px}
.ctb p{font-size:15px;font-weight:400;color:var(--txt2)}

.ctz-form{max-width:none;margin-inline:0}
.ctz-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:640px){.ctz-row{grid-template-columns:1fr}}
.ctz-form input,.ctz-form textarea{width:100%;border-radius:18px;padding:19px 24px;
 background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--txt);
 font-size:15px;font-family:inherit;outline:none;
 transition:border-color .4s var(--e),background .4s var(--e),box-shadow .4s var(--e)}
.ctz-form input:focus,.ctz-form textarea:focus{border-color:rgba(34,211,238,.5);
 background:rgba(255,255,255,.07);box-shadow:0 0 0 4px rgba(34,211,238,.12)}
.ctz-form input::placeholder,.ctz-form textarea::placeholder{color:var(--txt3)}
.ctz-form textarea{min-height:150px;resize:vertical;line-height:1.7;margin-bottom:14px;display:block}
.ctz-form button{width:100%;border:0;border-radius:100px;padding:20px;cursor:pointer;
 font-family:inherit;font-weight:800;font-size:15px;letter-spacing:.08em;color:#04121c;
 background:linear-gradient(120deg,var(--blue),var(--aqua));
 box-shadow:0 22px 48px -20px rgba(10,132,255,.8);
 transition:transform .5s var(--e),box-shadow .5s var(--e)}
.ctz-form button:hover{transform:translateY(-3px);box-shadow:0 30px 60px -22px rgba(34,211,238,.9)}
.ctz-ok,.ctz-err{border-radius:16px;padding:15px 20px;font-size:14.5px;margin-bottom:14px}
.ctz-ok{background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.3);color:#7ef0ff}
.ctz-err{background:rgba(255,88,88,.12);border:1px solid rgba(255,88,88,.3);color:#ffa3a3}

/* ---------- footer ---------- */
.ftr{background:var(--ink2);border-top:1px solid var(--line);padding-top:clamp(56px,6vw,86px)}
.ftr-in{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:clamp(26px,3.4vw,52px);
 width:min(1240px,100% - clamp(22px,5vw,72px));margin-inline:auto}
@media(max-width:900px){.ftr-in{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ftr-in{grid-template-columns:1fr;text-align:center}}
.fcol-brand p{font-size:14.5px;line-height:1.85;color:var(--txt2);max-width:46ch}
.flogo{height:64px;width:auto;margin-bottom:20px;object-fit:contain}
.flogo-txt{font-weight:900;font-size:26px;letter-spacing:-.03em;margin-bottom:18px;
 background:linear-gradient(100deg,#fff,var(--aqua) 130%);-webkit-background-clip:text;
 background-clip:text;color:transparent}
.fbtns{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
@media(max-width:600px){.fbtns{justify-content:center}}
.fcol h4{font-size:15px;font-weight:900;letter-spacing:.12em;color:var(--txt);margin-bottom:20px}
.fcol ul{list-style:none;display:flex;flex-direction:column;gap:12px}
@media(max-width:600px){.fcol ul{align-items:center}}
.fcol li{font-size:14.5px;color:var(--txt2)}
.fcol a{position:relative;transition:color .4s var(--e)}
.fcol a:hover{color:var(--aqua)}
.ftr-bot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
 width:min(1240px,100% - clamp(22px,5vw,72px));margin:clamp(40px,5vw,64px) auto 0;
 padding:24px 0 34px;border-top:1px solid var(--line);
 font-size:12.5px;color:var(--txt3)}
@media(max-width:600px){.ftr-bot{flex-direction:column;align-items:center;text-align:center}}
.fcredit{font-weight:800;color:var(--txt2)!important;transition:color .4s var(--e)}
.fcredit:hover{color:var(--aqua)!important}

/* ---------- boutons génériques ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14px;
 padding:14px 28px;border-radius:100px;transition:transform .5s var(--e),background .5s var(--e)}
.btn-white{background:linear-gradient(120deg,var(--blue),var(--aqua));color:#04121c!important}
.btn-ghost{border:1px solid var(--line2);color:var(--txt)!important}
.btn:hover{transform:translateY(-2px)}

/* ---------- menu mobile ---------- */
.burger{display:none;background:none;border:0;padding:9px;cursor:pointer;
 flex-direction:column;gap:5px;z-index:120}
.burger span{display:block;width:25px;height:2px;border-radius:2px;background:var(--txt)}
.mnav{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
 background:rgba(7,9,13,.96);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);
 opacity:0;visibility:hidden;transition:opacity .5s var(--e),visibility .5s}
.mnav.on{opacity:1;visibility:visible}
.mnav-close{position:absolute;top:22px;right:22px;width:46px;height:46px;border:1px solid var(--line2);
 border-radius:50%;background:rgba(255,255,255,.05);color:var(--txt);cursor:pointer;
 display:flex;align-items:center;justify-content:center}
.mnav-close svg{width:20px;height:20px}
.mnav-links{display:flex;flex-direction:column;align-items:center;gap:10px}
.mnav-links a{font-weight:900;font-size:clamp(28px,8vw,44px);letter-spacing:-.04em;
 color:var(--txt);padding:10px 24px;border-radius:18px;transition:background .4s var(--e)}
.mnav-links a:hover{background:rgba(255,255,255,.06)}
@media(max-width:820px){
  .nav{display:none}
  .burger{display:flex}
  .hero-video,.hero-yt{display:none}
}

/* ---------- page mentions ---------- */
.ml-sec{background:var(--ink2)}
.ml-wrap{max-width:none}
.ml-wrap h2{font-weight:900;font-size:clamp(21px,2.4vw,28px);letter-spacing:-.03em;color:var(--txt);
 margin:40px 0 16px;padding-top:28px;border-top:1px solid var(--line)}
.ml-wrap h2:first-child{margin-top:0;padding-top:0;border-top:0}
.ml-wrap p{font-size:15px;line-height:1.9;color:var(--txt2);margin-bottom:14px}
.ml-wrap a{color:var(--aqua);text-decoration:underline;text-underline-offset:3px}
.ml-list{list-style:none;margin:0 0 20px;border-radius:20px;overflow:hidden;
 background:rgba(255,255,255,.03);border:1px solid var(--line)}
.ml-list li{font-size:14.5px;line-height:1.8;color:var(--txt2);padding:13px 20px;
 border-top:1px solid var(--line)}
.ml-list li:first-child{border-top:0}
.ml-list li b{font-weight:800;color:var(--txt)}
.ml-updated{margin-top:38px;padding-top:24px;border-top:1px solid var(--line);
 font-size:13px;color:var(--txt3)}

/* ---------- bannière page interne ---------- */
.page-hero{position:relative;min-height:360px;display:flex;align-items:flex-end;overflow:hidden}
.page-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero-bg-ph{background:linear-gradient(150deg,var(--ink3),var(--deep))}
.page-hero-overlay{position:absolute;inset:0;
 background:linear-gradient(180deg,rgba(7,9,13,.7),rgba(7,9,13,.94))}
.page-hero-in{position:relative;z-index:1;width:min(1240px,100% - clamp(22px,5vw,72px));
 margin-inline:auto;text-align:center;padding:130px 0 46px}
.page-hero h1{font-weight:900;font-size:clamp(30px,5vw,56px);letter-spacing:-.04em;color:var(--txt)}
.page-breadcrumb{margin-top:14px;font-size:13.5px;color:var(--txt3);display:flex;
 gap:10px;justify-content:center}
.page-breadcrumb a{color:var(--aqua)}

/* overlay opaque devant la video du hero */
.hero-overlay{
  background:
    radial-gradient(118% 86% at 50% 42%,rgba(7,9,13,.42),rgba(7,9,13,.94) 76%),
    linear-gradient(180deg,rgba(7,9,13,.78),rgba(7,9,13,.5) 38%,rgba(7,9,13,.97)) !important;
}
.hero-overlay::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(118deg,rgba(10,132,255,.14),transparent 46%,rgba(34,211,238,.1));
  mix-blend-mode:screen;pointer-events:none;
}

/* colonnes a propos de hauteur egale */
.ab2-cols{align-items:stretch}
.ab2-col{display:flex;flex-direction:column;justify-content:center}
.ab2-col2{padding-top:clamp(26px,3vw,38px)}

/* ===== À propos — chapô + cartes ===== */
.ab2-lead{max-width:76ch;margin:0 auto clamp(40px,4.6vw,64px);text-align:center}
.ab2-lead p{font-size:clamp(16px,1.8vw,21px);line-height:1.75;font-weight:400;color:var(--txt2)}
.ab2-lead b{font-weight:800;color:var(--txt)}

.ab2-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media(max-width:1000px){.ab2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ab2-grid{grid-template-columns:1fr}}
.ab2-card{position:relative;padding:24px 20px;border-radius:18px;
 background:linear-gradient(150deg,var(--ink3),var(--ink2));
 border:2px dashed rgba(255,255,255,.16);overflow:visible;
 transition:transform .5s var(--e),border-color .5s var(--e),box-shadow .5s var(--e)}
.ab2-card:nth-child(4n+1){transform:rotate(-1.6deg)}
.ab2-card:nth-child(4n+2){transform:rotate(1.4deg)}
.ab2-card:nth-child(4n+3){transform:rotate(-1deg)}
.ab2-card:nth-child(4n+4){transform:rotate(1.8deg)}
.ab2-card::before{content:'';position:absolute;left:-9px;top:50%;width:16px;height:16px;
 border-radius:50%;background:var(--ink);transform:translateY(-50%);
 box-shadow:inset 0 0 0 2px rgba(255,255,255,.14)}
.ab2-card::after{content:'';position:absolute;right:-9px;top:50%;width:16px;height:16px;
 border-radius:50%;background:var(--ink);transform:translateY(-50%);
 box-shadow:inset 0 0 0 2px rgba(255,255,255,.14)}
.ab2-card:hover{transform:rotate(0deg) translateY(-6px) scale(1.03);
 border-color:var(--aqua);box-shadow:0 30px 60px -28px rgba(0,229,255,.5)}
.ab2-card:hover::before{opacity:1}
.ab2-ic{position:relative;display:flex;align-items:center;justify-content:center;
 width:54px;height:54px;border-radius:18px;margin-bottom:20px;color:#04121c;
 background:linear-gradient(140deg,var(--aqua),var(--blue));
 box-shadow:0 16px 32px -14px rgba(34,211,238,.7);
 transition:transform .6s var(--e)}
.ab2-card:hover .ab2-ic{transform:scale(1.09) rotate(-6deg)}
.ab2-ic svg{width:25px;height:25px;display:block}
.ab2-card h3{position:relative;font-weight:800;font-size:16.5px;letter-spacing:-.015em;
 color:var(--txt);margin-bottom:11px}
.ab2-card p{position:relative;font-size:14px;line-height:1.75;font-weight:400;color:var(--txt2)}

/* fonds differencies a partir de "Nos toboggans" */
.rtm{background:radial-gradient(120% 100% at 50% 0%,#1a0b3d,#0f0824 55%,#050810 100%) !important}
.tob{background:linear-gradient(180deg,var(--ink2) 0%,#0f1330 40%,#0d1128 100%) !important;
 border-top:1px solid var(--line)}
.acc{background:linear-gradient(180deg,#0d1128,#140a2e 55%,#0d1128) !important;
 border-top:1px solid var(--line)}
.ctz{background:linear-gradient(180deg,#0d1128,#050810) !important;
 border-top:1px solid var(--line)}
.ftr{background:#050810 !important}

/* ===== Pictogrammes minimalistes ===== */
.tob-ico,.acc-ico{position:relative;display:flex;align-items:center;justify-content:center;
 padding:clamp(26px,3vw,40px) 20px}
.tob-ico::after,.acc-ico::after{content:'';position:absolute;inset:22%;border-radius:50%;
 background:radial-gradient(circle,rgba(34,211,238,.2),transparent 68%);
 opacity:0;transition:opacity .7s var(--e);pointer-events:none}
.tob-card:hover .tob-ico::after,.acc-card:hover .acc-ico::after{opacity:1}
.tob-ico svg{width:100%;max-width:132px;height:auto;position:relative}
.acc-ico svg{width:100%;max-width:96px;height:auto;position:relative}
.tob-card svg,.acc-card svg{transition:transform .8s var(--e)}
.tob-card:hover svg,.acc-card:hover svg{transform:scale(1.07) translateY(-3px)}
.tob-card figcaption,.acc-card figcaption{background:rgba(255,255,255,.02)}



/* formulaire contact aligne sur les cartes */
.ctz-form,
.ctz-form form{width:100%;max-width:none;margin:0}
.ctz-form input,
.ctz-form textarea,
.ctz-form button{width:100%;max-width:none;box-sizing:border-box}
.ctz-row{width:100%}

/* decalage du scroll pour compenser le header fixe */
#toboggans,#accessoires,#contact,#apropos{scroll-margin-top:96px}

/* nuances d'apparition par type de bloc */
.ab2-card.rv,.tob-card.rv,.acc-card.rv,.ctb.rv{transform:translateY(34px) scale(.97)}
.ab2-card.rv.in,.tob-card.rv.in,.acc-card.rv.in,.ctb.rv.in{transform:none}
.rtm-art.rv{transform:translateY(30px) scale(.94)}
.rtm-art.rv.in{transform:none}
.rtm-txt.rv{transform:translateY(24px)}
.rtm-txt.rv.in{transform:none}
.glow-in .rtm-txt.rv{transform:translateX(-26px)}
.glow-in .rtm-txt.rv.in{transform:none}
.sec-kick.rv,.ctz-kick.rv{transform:translateY(16px) scale(.94)}
.sec-kick.rv.in,.ctz-kick.rv.in{transform:none}
.fcol.rv{transform:translateY(20px)}
.fcol.rv.in{transform:none}
.ctz-form.rv{transform:translateY(30px)}
.ctz-form.rv.in{transform:none}

/* cartes a propos — compactes, forcees */
.ab2-grid{gap:10px !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important}
.ab2-card{padding:20px 18px !important;border-radius:18px !important}
.ab2-card h3{font-size:15.5px !important;margin-bottom:8px !important}
.ab2-card p{font-size:13.5px !important;line-height:1.65 !important}
.ab2-ic{width:44px !important;height:44px !important;border-radius:14px !important;margin-bottom:14px !important}
.ab2-ic svg{width:21px !important;height:21px !important}
@media(max-width:1000px){.ab2-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:560px){.ab2-grid{grid-template-columns:1fr !important}}

/* video hero active sur mobile, cadree pour couvrir toute la section */
@media(max-width:820px){
  .hero-yt,.hero-video{display:block !important}
  .hero-yt{overflow:hidden}
  .hero-yt iframe{
    position:absolute;top:50%;left:50%;
    width:auto;height:auto;
    min-width:100%;min-height:100%;
    aspect-ratio:16/9;
    transform:translate(-50%,-50%) scale(1.9);
    transform-origin:center center;
    border:0;pointer-events:none;
  }
  .hero-video{width:100%;height:100%;object-fit:cover}
}
@media(max-width:520px){
  .hero-yt iframe{transform:translate(-50%,-50%) scale(2.8)}
}
@media(max-width:380px){
  .hero-yt iframe{transform:translate(-50%,-50%) scale(3.4)}
}

/* logos technologie plus petits */
.rtm-art svg{max-width:250px !important}

/* desktop : alternance gauche / droite */
@media(min-width:921px){
  .glow-in{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) !important}
  .glow-in .rtm-art{order:2 !important}
  .glow-in .rtm-txt{order:1 !important}
}

/* mobile : logo au-dessus, texte pleine largeur en dessous */
@media(max-width:920px){
  .rtm-in{grid-template-columns:1fr !important;gap:26px !important}
  .rtm-art{order:1 !important;width:100% !important}
  .rtm-txt{order:2 !important;width:100% !important;max-width:none !important}
  .rtm-art svg{max-width:180px !important;margin-inline:auto}
  .rtm-txt h2{text-align:center}
}

/* mobile — textes centres */
@media(max-width:820px){
  .rtm-txt p,.ab2-lead p,.ab2-card p,.tob-body p,.acc-body p,.tob-notice p{
    text-align:center !important}
  .ab2-card{text-align:center}
  .ab2-ic{margin-inline:auto}
  .ctb p,.ctb h3{text-align:center}
}

/* footer mobile — centre, style Apple */
@media(max-width:820px){
  .ftr{padding-top:52px}
  .ftr-in{grid-template-columns:1fr !important;gap:0 !important;text-align:center}

  .fcol{padding:24px 0;border-top:1px solid var(--line)}
  .fcol:first-child{border-top:0;padding-top:0}

  .fcol-brand{display:flex;flex-direction:column;align-items:center}
  .flogo{height:58px;margin:0 auto 16px}
  .flogo-txt{margin:0 auto 16px;text-align:center}
  .fcol-brand p{max-width:40ch;margin-inline:auto;font-size:14px;line-height:1.75;
   text-align:center}

  .fcol h4{font-size:12px;letter-spacing:.18em;color:var(--txt3);margin-bottom:14px;
   text-transform:uppercase}
  .fcol ul{align-items:center;gap:13px}
  .fcol li{font-size:15px}
  .fcol a{display:inline-block;padding:3px 0}

  .ftr-bot{flex-direction:column;align-items:center;text-align:center;gap:8px;
   margin-top:6px;padding:22px 0 30px;font-size:12.5px;line-height:1.6}
}

/* barre du bas toujours visible */
.ftr-bot{opacity:1 !important;transform:none !important}


/* desktop — footer aligne sur la barre du bas */
@media(min-width:821px){
  .ftr-in > .fcol{padding-left:0 !important;margin-left:0 !important}
  .fcol-brand{align-items:flex-start}
  .flogo-txt{display:block;margin-left:0 !important;padding-left:0 !important;
   text-indent:0;width:fit-content}
  .fcol-brand p{margin-left:0 !important;padding-left:0 !important}
  .flogo{margin-left:0 !important}
}

/* ===== Galerie photos (fete foraine) ===== */
.tob-photo{width:100%;aspect-ratio:4/3;border-radius:20px;position:relative;overflow:hidden;
 box-shadow:0 24px 50px -22px rgba(0,0,0,.6)}
.tob-photo::after{content:'';position:absolute;inset:0;
 background:linear-gradient(180deg,transparent 55%,rgba(5,8,16,.75))}
.tob-photo1{background:radial-gradient(120% 90% at 20% 10%,var(--pink),transparent 60%),
 radial-gradient(120% 90% at 90% 90%,var(--aqua),transparent 60%),var(--ink2)}
.tob-photo2{background:radial-gradient(120% 90% at 80% 10%,var(--orange),transparent 60%),
 radial-gradient(120% 90% at 10% 90%,var(--turquoise),transparent 60%),var(--ink2)}
.tob-photo3{background:radial-gradient(120% 90% at 50% 0%,var(--aqua),transparent 60%),
 radial-gradient(120% 90% at 50% 100%,var(--pink),transparent 60%),var(--ink2)}
.tob-photo4{background:radial-gradient(120% 90% at 0% 50%,var(--turquoise),transparent 60%),
 radial-gradient(120% 90% at 100% 50%,var(--orange),transparent 60%),var(--ink2)}

/* ===== Section Infos pratiques — panneau 4 colonnes ===== */
.ffboard{padding-block:clamp(70px,9vw,130px);background:linear-gradient(180deg,var(--ink),var(--ink2))}

.ffboard-head{max-width:70ch;margin-inline:auto;text-align:center;margin-bottom:clamp(40px,4.6vw,64px)}
.ffboard-h{display:block;margin-top:14px;margin-bottom:16px;font-weight:900;
 font-size:clamp(28px,4vw,48px);line-height:1.06;letter-spacing:-.03em;color:#fff;
 text-shadow:0 0 18px rgba(0,229,255,.4)}
.ffboard-lead p{font-size:15px;line-height:1.85;color:var(--txt2)}
.ffboard-lead b{font-weight:800;color:var(--txt)}

.ffboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;justify-items:stretch;width:100%}
.ffboard-grid>.ffboard-col{width:100% !important;max-width:none !important;margin:0 !important;justify-self:stretch !important}
@media(max-width:920px){.ffboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.ffboard-grid{grid-template-columns:1fr}}

.ffboard-col{position:relative;display:flex;flex-direction:column;gap:8px;
 padding:26px 22px 24px;border-radius:20px;overflow:hidden;
 background:var(--ink3);border:1px solid var(--line);
 transition:transform .5s var(--e),box-shadow .5s var(--e)}
.ffboard-col::before{content:'';position:absolute;top:0;left:0;right:0;height:5px}
.ffboard-col:hover{transform:translateY(-8px)}

.ffc1::before{background:linear-gradient(90deg,var(--aqua),var(--turquoise))}
.ffc2::before{background:linear-gradient(90deg,var(--pink),var(--orange))}
.ffc3::before{background:linear-gradient(90deg,var(--turquoise),var(--pink))}
.ffc4::before{background:linear-gradient(90deg,var(--orange),var(--aqua))}
.ffc1:hover{box-shadow:0 26px 54px -26px rgba(0,229,255,.5)}
.ffc2:hover{box-shadow:0 26px 54px -26px rgba(255,45,146,.5)}
.ffc3:hover{box-shadow:0 26px 54px -26px rgba(29,233,182,.5)}
.ffc4:hover{box-shadow:0 26px 54px -26px rgba(255,138,0,.5)}

.ffboard-num{font-size:34px;font-weight:900;letter-spacing:-.02em;opacity:.16;line-height:1}
.ffboard-col b{font-size:20px;font-weight:900;color:var(--txt);letter-spacing:-.02em}
.ffboard-col span:last-child{font-size:13.5px;line-height:1.6;color:var(--txt2)}

/* ===== Section Animations — 4 cartes ===== */
.ffevents{padding-block:clamp(60px,7vw,100px);
 background:radial-gradient(120% 100% at 50% 0%,#1a0b3d,#0f0824 55%,#050810 100%)}

.ffevents-head{max-width:70ch;margin-inline:auto;text-align:center;margin-bottom:14px}
.ffevents-lead{margin-top:14px;font-size:14.5px;line-height:1.75;color:var(--txt2)}

.ffevents-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;justify-items:stretch;width:100%}
.ffevents-grid>.ffevents-card{width:100% !important;max-width:none !important;margin:0 !important;justify-self:stretch !important}
@media(max-width:920px){.ffevents-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.ffevents-grid{grid-template-columns:1fr}}

.ffevents-card{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;
 background:var(--ink3);border:1px solid var(--line);
 transition:transform .5s var(--e),border-color .5s var(--e),box-shadow .5s var(--e)}
.ffevents-card:hover{transform:translateY(-6px)}
.ffevents-thumb{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden}
.ffevents-card:nth-child(4n+1) .ffevents-thumb{background:linear-gradient(150deg,var(--aqua),var(--turquoise))}
.ffevents-card:nth-child(4n+2) .ffevents-thumb{background:linear-gradient(150deg,var(--pink),var(--orange))}
.ffevents-card:nth-child(4n+3) .ffevents-thumb{background:linear-gradient(150deg,var(--turquoise),var(--pink))}
.ffevents-card:nth-child(4n+4) .ffevents-thumb{background:linear-gradient(150deg,var(--orange),var(--aqua))}
.ffevents-body{padding:10px 12px 12px}
.ffevents-card:nth-child(4n+1):hover{border-color:rgba(0,229,255,.4);
 box-shadow:0 30px 60px -28px rgba(0,229,255,.5)}
.ffevents-card:nth-child(4n+2):hover{border-color:rgba(255,45,146,.4);
 box-shadow:0 30px 60px -28px rgba(255,45,146,.5)}
.ffevents-card:nth-child(4n+3):hover{border-color:rgba(29,233,182,.4);
 box-shadow:0 30px 60px -28px rgba(29,233,182,.5)}
.ffevents-card:nth-child(4n+4):hover{border-color:rgba(255,138,0,.4);
 box-shadow:0 30px 60px -28px rgba(255,138,0,.5)}

.ffevents-badge{position:absolute;top:10px;left:10px;z-index:2;
 font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;
 padding:5px 11px;border-radius:100px;box-shadow:0 4px 12px -4px rgba(0,0,0,.5)}
.ffevents-card:nth-child(4n+1) .ffevents-badge{background:#ff2d92;color:#050810}
.ffevents-card:nth-child(4n+2) .ffevents-badge{background:#00e5ff;color:#050810}
.ffevents-card:nth-child(4n+3) .ffevents-badge{background:#ff8a00;color:#050810}
.ffevents-card:nth-child(4n+4) .ffevents-badge{background:#7c3aed;color:#ffffff}

.ffevents-card h3{font-size:16.5px;font-weight:900;color:var(--txt);letter-spacing:-.01em;
 margin-bottom:5px;line-height:1.3}
.ffevents-card p{font-size:12px;line-height:1.55;color:var(--txt3);
 display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ===== Galerie — mosaique bento ===== */
.ffgal{padding-block:clamp(60px,7vw,100px);
 background:linear-gradient(180deg,#050810,#0b0d24 50%,#050810)}
.ffgal-head{max-width:70ch;margin-inline:auto;text-align:center;margin-bottom:28px}
.ffgal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 grid-auto-rows:190px;gap:14px;width:100%}
.ffgal-tile{position:relative;margin:0;border-radius:22px;overflow:hidden;cursor:pointer;
 border:1px solid rgba(255,255,255,.08);width:100%;
 transition:transform .6s var(--e),box-shadow .6s var(--e)}
.ffgal-tile.g1{grid-column:span 2;grid-row:span 2}
.ffgal-tile.g4,.ffgal-tile.g5,.ffgal-tile.g6{grid-column:span 2}
.ffgal-bg{position:absolute;inset:0;transition:transform 1.2s var(--e)}
.g1 .ffgal-bg{background:radial-gradient(80% 70% at 25% 20%,#ff2d92,transparent 60%),
 radial-gradient(80% 70% at 80% 85%,#00e5ff,transparent 60%),#12082b}
.g2 .ffgal-bg{background:linear-gradient(150deg,#ff8a00,#ff2d92)}
.g3 .ffgal-bg{background:linear-gradient(150deg,#1de9b6,#00b8ff)}
.g4 .ffgal-bg{background:radial-gradient(70% 90% at 15% 50%,#7c3aed,transparent 65%),
 radial-gradient(70% 90% at 85% 50%,#ff8a00,transparent 65%),#0f0824}
.g5 .ffgal-bg{background:linear-gradient(120deg,#00e5ff,#7c3aed)}
.g6 .ffgal-bg{background:radial-gradient(60% 80% at 50% 0%,#ffd166,transparent 60%),
 linear-gradient(180deg,#ff2d92,#12082b)}
.ffgal-tile::after{content:'';position:absolute;inset:0;
 background:linear-gradient(180deg,transparent 45%,rgba(5,8,16,.85))}
.ffgal-tile figcaption{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;
 display:flex;flex-direction:column;gap:3px}
.ffgal-tile figcaption b{font-size:18px;font-weight:900;color:#fff;letter-spacing:-.01em}
.g1 figcaption b{font-size:28px}
.ffgal-tile figcaption span{font-size:12.5px;color:rgba(255,255,255,.75)}
.ffgal-tile:hover{transform:translateY(-5px);box-shadow:0 30px 60px -26px rgba(255,45,146,.55)}
.ffgal-tile:hover .ffgal-bg{transform:scale(1.08)}
@media(max-width:920px){
 .ffgal-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px}
 .ffgal-tile.g1{grid-column:span 2;grid-row:span 2}
 .ffgal-tile.g4,.ffgal-tile.g5,.ffgal-tile.g6{grid-column:span 1}
}
@media(max-width:520px){
 .ffgal-grid{grid-template-columns:1fr}
 .ffgal-tile.g1,.ffgal-tile.g4,.ffgal-tile.g5,.ffgal-tile.g6{grid-column:span 1;grid-row:span 1}
}

/* ===== Acces & Tarifs ===== */
.ffacc{padding-block:clamp(60px,7vw,100px);
 background:linear-gradient(180deg,#050810,#140a2e 55%,#050810)}
.ffacc-head{max-width:70ch;margin-inline:auto;text-align:center;margin-bottom:28px}
.ffacc-grid{display:block;width:100%}
@media(max-width:920px){.ffacc-grid{grid-template-columns:1fr}}

.ffacc-board{border-radius:24px;overflow:hidden;background:#0d0a22;
 border:2px solid rgba(255,138,0,.35);box-shadow:0 0 40px -12px rgba(255,138,0,.35)}
.ffacc-board-top{display:flex;align-items:baseline;justify-content:space-between;
 padding:18px 24px;background:linear-gradient(100deg,#ff8a00,#ff2d92);color:#050810}
.ffacc-board-top span{font-size:22px;font-weight:900;letter-spacing:.14em}
.ffacc-board-top small{font-size:12px;font-weight:800;opacity:.8}
.ffacc-board ul{list-style:none;margin:0;padding:10px 24px 20px}
.ffacc-board li{display:flex;align-items:baseline;gap:10px;padding:13px 0;
 border-bottom:1px dashed rgba(255,255,255,.12)}
.ffacc-board li:last-child{border-bottom:0}
.ffacc-board li span{font-size:15px;font-weight:700;color:var(--txt)}
.ffacc-board li i{flex:1;border-bottom:2px dotted rgba(255,255,255,.18);transform:translateY(-4px)}
.ffacc-board li b{font-size:22px;font-weight:900;color:#ffd166;letter-spacing:-.02em}
.ffacc-board li.hl{margin-top:8px;padding:14px 16px;border:0;border-radius:14px;
 background:linear-gradient(100deg,rgba(0,229,255,.16),rgba(255,45,146,.16))}
.ffacc-board li.hl span{color:#fff;font-weight:900}
.ffacc-board li.hl b{color:#00e5ff}

.ffacc-svcs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;width:100%}
@media(max-width:920px){.ffacc-svcs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.ffacc-svcs{grid-template-columns:1fr}}
.ffacc-svc{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;
 background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);width:100%;
 transition:transform .5s var(--e),border-color .5s var(--e),background .5s var(--e)}
.ffacc-svc:hover{transform:translateY(-4px);border-color:rgba(0,229,255,.4);background:rgba(0,229,255,.06)}
.ffacc-svc svg{width:44px;height:44px;flex:none}
.ffacc-svc b{display:block;font-size:15px;font-weight:900;color:var(--txt)}
.ffacc-svc span{display:block;font-size:12.5px;color:var(--txt3);margin-top:2px}

.ffacc-note{margin:22px auto 0;max-width:70ch;text-align:center;font-size:12.5px;color:var(--txt3);
 padding:12px 18px;border-radius:100px;border:1px solid rgba(255,255,255,.08);width:fit-content}

/* ===== Nous trouver — carte Leaflet pleine largeur ===== */
.ffmap{position:relative;width:100vw;margin-left:calc(50% - 50vw);height:clamp(380px,48vw,540px);
 margin-bottom:clamp(30px,3.6vw,48px);border-block:1px solid rgba(255,255,255,.08)}
#ffmap{position:absolute;inset:0;background:#0b0d24;z-index:1}
.ffmap .leaflet-tile-pane{filter:saturate(1.2) brightness(1.05)}
.ffmap::after{content:'';position:absolute;inset:0;z-index:400;pointer-events:none;
 background:radial-gradient(60% 80% at 50% 50%,transparent 55%,rgba(5,8,16,.75)),
 linear-gradient(120deg,rgba(255,45,146,.10),transparent 40%,rgba(0,229,255,.10))}
.ffmap .leaflet-control-attribution{background:rgba(5,8,16,.7);color:rgba(255,255,255,.5)}
.ffmap .leaflet-control-attribution a{color:#00e5ff}
.ffmap .leaflet-bar a{background:#12082b;color:#fff;border-color:rgba(255,255,255,.12)}
.ffmap .leaflet-bar a:hover{background:#ff2d92;color:#050810}
.ffpin span{position:absolute;inset:6px;border-radius:50%;background:#ff2d92;
 box-shadow:0 0 0 3px #050810,0 0 22px 6px rgba(255,45,146,.8)}
.ffpin::before{content:'';position:absolute;inset:0;border-radius:50%;background:rgba(255,45,146,.45);
 animation:ffpinPulse 1.8s ease-out infinite}
@keyframes ffpinPulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.6);opacity:0}}
.ffmap-card{position:absolute;z-index:500;left:clamp(16px,5vw,72px);bottom:clamp(16px,3vw,36px);
 display:flex;flex-direction:column;gap:8px;max-width:300px;padding:20px 22px;border-radius:20px;
 background:rgba(12,8,34,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
 border:1px solid rgba(255,45,146,.35);box-shadow:0 24px 50px -20px rgba(0,0,0,.7)}
.ffmap-kick{font-size:10.5px;font-weight:900;letter-spacing:.2em;color:#ff8a00}
.ffmap-card b{font-size:17px;font-weight:900;color:#fff;line-height:1.3}
.ffmap-btn{align-self:flex-start;margin-top:4px;padding:10px 20px;border-radius:100px;
 font-size:13px;font-weight:900;color:#050810;background:linear-gradient(100deg,#00e5ff,#ff2d92);
 transition:transform .3s var(--e)}
.ffmap-btn:hover{transform:translateY(-2px)}
.ffmap.osm .leaflet-tile-pane{filter:grayscale(1) invert(1) brightness(.88) contrast(.92) !important}
.ffmap{margin-bottom:0}
section[id]{scroll-margin-top:84px}

/* ===== Hero : degrade arc-en-ciel en fondu continu ===== */
.hero h1{
 background-image:linear-gradient(90deg,
   #00b8ff 0%,#1de9b6 8.33%,#ffd166 16.66%,#ff8a00 25%,#ff3b3b 33.33%,#ff2d92 41.66%,#7c3aed 50%,
   #00b8ff 50%,#1de9b6 58.33%,#ffd166 66.66%,#ff8a00 75%,#ff3b3b 83.33%,#ff2d92 91.66%,#7c3aed 100%) !important;
 background-size:200% auto !important;
 -webkit-background-clip:text !important;background-clip:text !important;
 color:transparent !important;-webkit-text-fill-color:transparent;
 animation:heroRainbow 12s linear infinite,hin 1.5s var(--e) both !important;
 animation-delay:0s,.16s !important;
 will-change:background-position;transform:translateZ(0)}
@keyframes heroRainbow{from{background-position:0% 50%}to{background-position:-200% 50%}}
.hero h1{animation-name:heroRainbow,hin !important;animation-duration:12s,1.5s !important;
 animation-timing-function:linear,var(--e) !important;animation-iteration-count:infinite,1 !important;
 animation-fill-mode:none,both !important}
.hero h1{
 background-image:linear-gradient(90deg,
   #00b8ff 0%,#1de9b6 14%,#ffd166 28%,#ff8a00 42%,#ff3b3b 57%,#ff2d92 71%,#7c3aed 85%,#00b8ff 100%) !important;
 background-size:200% 100% !important;background-repeat:repeat-x !important;
 animation-duration:18s,1.5s !important}
@keyframes heroRainbow{from{background-position:0% 50%}to{background-position:-200% 50%}}
.hero h1{animation-duration:8s,1.5s !important}
.hero h1{padding-top:.18em !important;margin-top:-.18em !important;
 padding-bottom:.08em !important;margin-bottom:-.08em !important;line-height:1 !important}
/* pastille active du menu */
nav a.on:not(.act){color:var(--txt2) !important;background:none !important}
nav a.act{color:var(--ink) !important;background:linear-gradient(100deg,var(--pink),var(--orange)) !important;
 box-shadow:0 6px 18px -6px rgba(255,45,146,.6)}

/* ===== Titres de section unifies ===== */
section h2.ffboard-h,
.ffboard h2,.ffevents h2,.ffgal h2,.ffacc h2,.ctz h2,section h2.sec-h{
 display:block !important;text-transform:uppercase !important;
 font-size:clamp(28px,4vw,46px) !important;font-weight:900 !important;
 line-height:1.08 !important;letter-spacing:-.005em !important;
 color:#fff !important;-webkit-text-fill-color:#fff;background:none !important;
 transform:none !important;text-align:center !important;
 margin:14px auto 16px !important;
 text-shadow:0 0 18px rgba(0,229,255,.4),0 0 36px rgba(255,45,146,.25) !important}

/* ================================================================
   CHARTE AFFICHE : jaune / orange / rose / bleu ciel
   ================================================================ */
:root{
 --aqua:#29a8e0;--blue:#29a8e0;--turquoise:#5cc6f2;
 --pink:#e6007e;--orange:#ff8a00;--yellow:#ffd23f;
 --txt:#3a0a4a;--txt2:rgba(58,10,74,.8);--txt3:rgba(58,10,74,.6);
 --line:rgba(58,10,74,.1)}
body{background:#fff6cf !important;color:var(--txt)}

/* header clair */
.hdr,.hdr.sc{background:rgba(255,255,255,.9) !important;backdrop-filter:blur(18px) saturate(180%);
 -webkit-backdrop-filter:blur(18px) saturate(180%);border-bottom:1px solid rgba(230,0,126,.15) !important}
.brand-txt{background-image:linear-gradient(100deg,#ffd23f,#ff8a00,#e6007e,#29a8e0,#ffd23f) !important}
nav a{color:#3a0a4a !important}
nav a:hover{background:#ffd23f !important;color:#3a0a4a !important}
nav a.on:not(.act){color:#3a0a4a !important;background:none !important}
nav a.act{background:linear-gradient(100deg,#e6007e,#ff8a00) !important;color:#fff !important}

/* hero facon affiche */
.hero-overlay{background:linear-gradient(180deg,rgba(20,70,120,.35),rgba(20,70,120,.08) 40%,rgba(176,0,95,.6)) !important}
.hero-overlay::after{display:none !important}
.hero h1{background-image:linear-gradient(90deg,#ffd23f 0%,#ff8a00 25%,#e6007e 50%,#29a8e0 75%,#ffd23f 100%) !important;
 -webkit-text-stroke:2px #fff}
.kick{background:#ffd23f !important;color:#3a0a4a !important;border:0 !important;
 box-shadow:0 8px 22px -8px rgba(0,0,0,.35) !important}
.hero .lead{color:#fff !important;text-shadow:0 2px 12px rgba(0,0,0,.45);font-weight:600}

/* pastilles de section */
.sec-kick{background:#e6007e !important;color:#fff !important;border:0 !important;backdrop-filter:none !important;
 box-shadow:0 8px 20px -8px rgba(230,0,126,.55) !important}
.ffevents .sec-kick,.ffacc .sec-kick,.ctz .sec-kick{background:#ffd23f !important;color:#3a0a4a !important}

/* titres : violet fonce sur fond clair, blanc sur fond colore */
section h2.ffboard-h,.ffboard h2,.ffevents h2,.ffgal h2,.ffacc h2,.ctz h2,section h2.sec-h{
 color:#3a0a4a !important;-webkit-text-fill-color:#3a0a4a;text-shadow:none !important}
.ffevents h2,.ffacc h2,.ctz h2{color:#fff !important;-webkit-text-fill-color:#fff;
 text-shadow:0 3px 14px rgba(0,0,0,.2) !important}
.ffevents-lead,.ffboard-lead p{color:var(--txt2) !important}
.ffevents .ffevents-lead,.ffacc .ffevents-lead{color:rgba(255,255,255,.92) !important}

/* fonds de sections alternes */
.ffboard{background:linear-gradient(180deg,#fff6cf,#ffe1ec) !important}
.ffevents{background:linear-gradient(160deg,#ff4fa3,#e6007e 60%,#c2006b) !important}
.ffgal{background:linear-gradient(180deg,#fff1b8,#ffd6e8) !important}
.ffacc{background:linear-gradient(160deg,#5cc6f2,#29a8e0 55%,#1e88c9) !important}
.ctz{background:linear-gradient(100deg,#e6007e,#ff4fa3 55%,#ffb13b) !important;border:0 !important}
.ctz,.ctz p,.ctz span:not(.sec-kick){color:#fff !important}

/* cartes blanches */
.ffboard-col,.ffevents-card,.ffacc-svc{background:#fff !important;border:0 !important;
 box-shadow:0 18px 40px -22px rgba(58,10,74,.35) !important}
.ffboard-num{color:#e6007e;opacity:.3}
.ffboard-col b,.ffevents-card h3,.ffacc-svc b{color:#3a0a4a !important}
.ffboard-col span:last-child,.ffevents-card p,.ffacc-svc span{color:rgba(58,10,74,.65) !important}
.ffacc-svc:hover{background:#fff !important;box-shadow:0 22px 44px -20px rgba(58,10,74,.45) !important}

/* galerie aux couleurs de l'affiche */
.g1 .ffgal-bg{background:linear-gradient(150deg,#29a8e0,#e6007e) !important}
.g2 .ffgal-bg{background:linear-gradient(150deg,#ffd23f,#ff8a00) !important}
.g3 .ffgal-bg{background:linear-gradient(150deg,#ff4fa3,#e6007e) !important}
.g4 .ffgal-bg{background:linear-gradient(120deg,#ff8a00,#e6007e 55%,#29a8e0) !important}
.g5 .ffgal-bg{background:linear-gradient(120deg,#5cc6f2,#ffd23f) !important}
.g6 .ffgal-bg{background:linear-gradient(180deg,#ffd23f,#ff8a00 45%,#e6007e) !important}
.ffgal-tile{border:0 !important}
.ffgal-tile::after{background:linear-gradient(180deg,transparent 45%,rgba(58,10,74,.6)) !important}

/* carte flottante et pied de page */
.ffmap-card{background:rgba(143,0,77,.88) !important;border-color:rgba(255,210,63,.5) !important}
.ffmap-kick{color:#ffd23f !important}
.ftr{background:#3a0a4a !important}
.ftr,.ftr p,.ftr li,.ftr a,.ftr span,.ftr h4{color:rgba(255,255,255,.85) !important}

/* ================================================================
   CHARTE AFFICHE v2 : harmonisee
   creme / rose pale en fond, rose = principal, jaune-orange = accents
   ================================================================ */
body{background:#fff8e7 !important}

/* fonds : alternance douce + une seule bande forte */
.ffboard{background:#fff8e7 !important}
.ffevents{background:linear-gradient(160deg,#ff4fa3 0%,#e6007e 55%,#c8006d 100%) !important}
.ffgal{background:#fff0f6 !important}
.ffacc{background:#fff8e7 !important}
.ctz{background:#fff0f6 !important}
.ftr{background:#3a0a4a !important}

/* titres : violet + trait degrade jaune-rose */
section h2.ffboard-h,.ffboard h2,.ffgal h2,.ffacc h2,.ctz h2,section h2.sec-h{
 color:#3a0a4a !important;-webkit-text-fill-color:#3a0a4a;text-shadow:none !important}
.ffboard h2::after,.ffevents h2::after,.ffgal h2::after,.ffacc h2::after,.ctz h2::after{
 content:'';display:block;width:64px;height:5px;border-radius:5px;margin:16px auto 0;
 background:linear-gradient(90deg,#ffcf33,#ff8a00,#e6007e)}
.ffevents h2{color:#fff !important;-webkit-text-fill-color:#fff;text-shadow:none !important}
.ffevents h2::after{background:#ffcf33}

/* textes d'intro */
.ffevents-lead,.ffboard-lead p,.ffacc .ffevents-lead,.ffgal .ffevents-lead{color:rgba(58,10,74,.75) !important}
.ffevents .ffevents-lead{color:rgba(255,255,255,.92) !important}
.ctz,.ctz p,.ctz span:not(.sec-kick){color:#3a0a4a !important}

/* pastilles : rose partout, jaune sur la bande magenta */
.sec-kick,.ffacc .sec-kick,.ctz .sec-kick{background:#e6007e !important;color:#fff !important}
.ffevents .sec-kick{background:#ffcf33 !important;color:#3a0a4a !important}

/* cartes : blanches, ombre rosee homogene */
.ffboard-col,.ffevents-card,.ffacc-svc{background:#fff !important;border:1px solid rgba(230,0,126,.08) !important;
 border-radius:20px !important;box-shadow:0 14px 34px -20px rgba(230,0,126,.35) !important}
.ffevents-card{border:0 !important;box-shadow:0 20px 40px -22px rgba(58,10,74,.55) !important}
.ffboard-col:hover,.ffacc-svc:hover{box-shadow:0 22px 44px -20px rgba(230,0,126,.45) !important}
.ffboard-num{color:#ff8a00 !important;opacity:.35 !important}
.ffc1::before{background:linear-gradient(90deg,#ffcf33,#ff8a00) !important}
.ffc2::before{background:linear-gradient(90deg,#ff8a00,#e6007e) !important}
.ffc3::before{background:linear-gradient(90deg,#e6007e,#2aa7df) !important}
.ffc4::before{background:linear-gradient(90deg,#2aa7df,#ffcf33) !important}

/* vignettes animations : meme famille de couleurs, pastille blanche */
.ffevents-card:nth-child(4n+1) .ffevents-thumb{background:linear-gradient(150deg,#ffcf33,#ff8a00) !important}
.ffevents-card:nth-child(4n+2) .ffevents-thumb{background:linear-gradient(150deg,#ff8a00,#e6007e) !important}
.ffevents-card:nth-child(4n+3) .ffevents-thumb{background:linear-gradient(150deg,#e6007e,#2aa7df) !important}
.ffevents-card:nth-child(4n+4) .ffevents-thumb{background:linear-gradient(150deg,#2aa7df,#ffcf33) !important}
.ffevents-card .ffevents-badge{background:#fff !important;color:#e6007e !important}

/* galerie : meme famille */
.g1 .ffgal-bg{background:linear-gradient(150deg,#ffcf33,#ff8a00 50%,#e6007e) !important}
.g2 .ffgal-bg{background:linear-gradient(150deg,#ff8a00,#e6007e) !important}
.g3 .ffgal-bg{background:linear-gradient(150deg,#e6007e,#2aa7df) !important}
.g4 .ffgal-bg{background:linear-gradient(120deg,#2aa7df,#e6007e) !important}
.g5 .ffgal-bg{background:linear-gradient(120deg,#ffcf33,#ff8a00) !important}
.g6 .ffgal-bg{background:linear-gradient(120deg,#e6007e,#ffcf33) !important}
.ffgal-tile{box-shadow:0 16px 36px -22px rgba(58,10,74,.5)}

/* carte claire */
.ffmap .leaflet-tile-pane{filter:none !important}
.ffmap.osm .leaflet-tile-pane{filter:grayscale(.7) brightness(1.03) !important}
.ffmap::after{background:linear-gradient(180deg,rgba(255,240,246,.35),transparent 30%,transparent 70%,rgba(255,240,246,.45)) !important}
.ffmap-card{background:#fff !important;border:0 !important;box-shadow:0 24px 50px -20px rgba(58,10,74,.45) !important}
.ffmap-kick{color:#e6007e !important}
.ffmap-card b{color:#3a0a4a !important}
.ffmap-btn{background:linear-gradient(100deg,#ff8a00,#e6007e) !important;color:#fff !important}
.ffmap .leaflet-bar a{background:#fff !important;color:#3a0a4a !important}
.ffmap .leaflet-bar a:hover{background:#e6007e !important;color:#fff !important}
.ffpin span{box-shadow:0 0 0 3px #fff,0 0 22px 6px rgba(230,0,126,.6) !important}

/* pied de page */
.ftr a:hover{color:#ffcf33 !important}

/* hero : sans contour, voile de lisibilite */
.hero h1{-webkit-text-stroke:0 !important}
.hero-overlay{background:
 radial-gradient(ellipse 70% 55% at 50% 50%,rgba(58,10,74,.62),rgba(58,10,74,.38) 65%,rgba(58,10,74,.55) 100%),
 linear-gradient(180deg,rgba(20,20,40,.25),transparent 30%,transparent 80%,rgba(58,10,74,.45)) !important}
.hero-overlay::after{display:none !important}

/* header colore */
.hdr,.hdr.sc{background:linear-gradient(100deg,#e6007e 0%,#ff2f93 55%,#ff5a7a 100%) !important;
 backdrop-filter:none !important;-webkit-backdrop-filter:none !important;border-bottom:0 !important;
 box-shadow:0 10px 30px -14px rgba(143,0,77,.6)}
.hdr::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;
 background:linear-gradient(90deg,#ffcf33,#ff8a00,#2aa7df,#ffcf33)}
.brand-txt{background:none !important;-webkit-text-fill-color:#fff !important;color:#fff !important;animation:none !important}
.hdr nav a{color:#fff !important}
.hdr nav a:hover{background:rgba(255,255,255,.2) !important;color:#fff !important}
.hdr nav a.on:not(.act){color:#fff !important;background:none !important}
.hdr nav a.act{background:#ffcf33 !important;color:#3a0a4a !important;box-shadow:0 6px 16px -6px rgba(0,0,0,.35) !important}
.hdr svg,.hdr button{color:#fff}
/* header : gauche plus fonce sous le logo */
.hdr,.hdr.sc{background:linear-gradient(100deg,#3a0a4a 0%,#7a0050 22%,#b8006a 45%,#e6007e 70%,#ff4f93 100%) !important}
.ffboard-num{color:#7c3aed !important;opacity:.45 !important}
section.ffevents h2.ffboard-h,section.ffevents h2{color:#fff !important;-webkit-text-fill-color:#fff !important}

/* ===== Pastilles de section : centrage exact et identique partout ===== */
.sec-kick,.ctz-kick{
 display:block !important;width:fit-content !important;margin:0 auto 16px !important;
 padding:9px calc(20px - .3em) 9px 20px !important;text-indent:0 !important;
 font-size:11.5px !important;font-weight:800 !important;letter-spacing:.3em !important;
 line-height:1.2 !important;text-align:center !important;white-space:nowrap;
 border-radius:100px !important;transform:none !important}
.ctz-kick{background:#e6007e !important;color:#fff !important;border:0 !important}
.sec-kick.rv,.ctz-kick.rv{transform:translateY(16px) !important}
.sec-kick.rv.in,.ctz-kick.rv.in{transform:none !important}

/* carte collee au footer */
section.ctz{padding-bottom:0 !important;margin-bottom:0 !important}
section.ctz > .in{padding-bottom:0 !important;margin-bottom:0 !important}
.ffmap{margin-bottom:0 !important;border-bottom:0 !important}

/* footer degrade fonce */
.ftr{position:relative;margin-top:0 !important;
 background:linear-gradient(160deg,#14041c 0%,#2a0838 40%,#4a0a48 75%,#6a0a50 100%) !important}
.ftr::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;
 background:linear-gradient(90deg,#ffcf33,#ff8a00,#e6007e,#2aa7df)}

/* ===== Footer 4 colonnes ===== */
.ffoot{padding:56px 0 0}
.ffoot-grid{display:grid;grid-template-columns:1.3fr 1.2fr .8fr 1.3fr;gap:36px;padding-bottom:40px}
@media(max-width:980px){.ffoot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ffoot-grid{grid-template-columns:1fr}}
.ffoot h4{font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#ffcf33 !important;margin:0 0 16px}
.ffoot-brand .flogo{height:84px;width:auto;margin-bottom:14px;display:block}
.ffoot-brand p{font-size:14px;line-height:1.75;color:rgba(255,255,255,.75) !important;max-width:34ch}
.ffoot-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.ffoot-badges span{font-size:11px;font-weight:800;padding:6px 12px;border-radius:100px;
 background:rgba(255,207,51,.12);color:#ffcf33 !important;border:1px solid rgba(255,207,51,.3)}
.ffoot-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ffoot-list li{display:flex;flex-direction:column;gap:1px}
.ffoot-list b{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ff7ab8 !important}
.ffoot-list span{font-size:14px;color:#fff !important}
.ffoot nav{display:flex;flex-direction:column;gap:10px}
.ffoot nav a{color:rgba(255,255,255,.8) !important;background:none !important;padding:0 !important;
 font-size:14px;font-weight:700;box-shadow:none !important;transform:none !important;border-radius:0}
.ffoot nav a:hover{color:#ffcf33 !important;background:none !important}
.ffm-now{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;
 background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1)}
.ffm-ic svg{width:48px;height:48px;color:#ffcf33;display:block}
.ffm-now b{display:block;font-size:34px;font-weight:900;color:#fff !important;line-height:1}
.ffm-now span{font-size:12.5px;color:rgba(255,255,255,.7) !important}
.ffm-days{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.ffm-day{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;
 border-radius:14px;background:rgba(255,255,255,.05)}
.ffm-day span{font-size:11px;font-weight:800;text-transform:uppercase;color:rgba(255,255,255,.65) !important}
.ffm-day svg{width:26px;height:26px;color:#5cc6f2}
.ffm-day b{font-size:14px;color:#fff !important}
.ffm-day i{font-style:normal;font-size:11.5px;color:rgba(255,255,255,.5)}
.ffm-off{font-size:13px;color:rgba(255,255,255,.6) !important}
.ffoot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
 padding:18px 0 22px;border-top:1px solid rgba(255,255,255,.1);font-size:12.5px}
.ffoot-bottom a:hover{color:#ffcf33 !important}

/* ===== Icones meteo animees ===== */
.ffw{display:inline-flex}
.ffw svg *{transform-box:fill-box;transform-origin:center}
@keyframes ffwSpin{to{transform:rotate(360deg)}}
@keyframes ffwPulse{50%{transform:scale(1.18)}}
@keyframes ffwDrift{0%,100%{transform:translateX(-1.2px)}50%{transform:translateX(1.2px)}}
@keyframes ffwBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-.8px)}}
@keyframes ffwFall{0%{transform:translateY(-2px);opacity:0}25%{opacity:1}100%{transform:translateY(3px);opacity:0}}
@keyframes ffwFlash{0%,100%{opacity:1}8%{opacity:.15}14%{opacity:1}20%{opacity:.15}26%{opacity:1}}
@keyframes ffwFog{0%,100%{transform:translateX(-1.5px);opacity:1}50%{transform:translateX(1.5px);opacity:.55}}

.ffw-sun svg{animation:ffwSpin 16s linear infinite;filter:drop-shadow(0 0 6px rgba(255,207,51,.65))}
.ffw-sun svg circle{animation:ffwPulse 2.6s ease-in-out infinite}
.ffw-part svg circle,.ffw-part svg path:nth-of-type(1){animation:ffwPulse 2.6s ease-in-out infinite}
.ffw-part svg path:nth-of-type(2){animation:ffwDrift 4.5s ease-in-out infinite}
.ffw-cloud svg path{animation:ffwDrift 4.5s ease-in-out infinite}
.ffw-rain svg path:nth-of-type(1),.ffw-storm svg path:nth-of-type(1),.ffw-snow svg path:nth-of-type(1){animation:ffwBob 3s ease-in-out infinite}
.ffw-rain svg path:nth-of-type(2){animation:ffwFall .9s linear infinite}
.ffw-snow svg path:nth-of-type(2){animation:ffwFall 2.2s linear infinite}
.ffw-storm svg path:nth-of-type(2){animation:ffwFlash 2.4s steps(1) infinite;color:#ffcf33}
.ffw-fog svg path{animation:ffwFog 3.6s ease-in-out infinite}
.ffoot .ffoot-credit,.ffoot .ffoot-credit:hover{color:inherit !important;text-decoration:none !important;cursor:pointer}
.ffoot .ffoot-credit b{font-weight:900}

/* ================= EFFETS WAHOU ================= */
/* barre de progression */
.ffprog{position:fixed;left:0;top:0;height:3px;width:100%;z-index:120;transform-origin:0 50%;transform:scaleX(0);
 background:linear-gradient(90deg,#ffcf33,#ff8a00,#e6007e,#2aa7df);box-shadow:0 0 12px rgba(230,0,126,.6)}
/* confettis */
.ffconf{position:absolute;inset:0;z-index:2;pointer-events:none}
.hero-in{will-change:transform,opacity}
/* header compact */
.hdr .hdr-in,.hdr .brand img{transition:padding .4s var(--e),height .4s var(--e)}
.hdr.ffmini .hdr-in{padding-block:8px !important}
.hdr.ffmini .brand img{height:40px !important}
/* compte a rebours */
.ffcd{display:flex;justify-content:center;gap:12px;margin-top:30px;flex-wrap:wrap}
.ffcd-box{min-width:78px;padding:12px 10px;border-radius:18px;text-align:center;
 background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
 backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 14px 30px -14px rgba(0,0,0,.5)}
.ffcd-box b{display:block;font-size:clamp(26px,3.4vw,38px);font-weight:900;color:#fff;line-height:1;font-variant-numeric:tabular-nums}
.ffcd-box span{display:block;margin-top:6px;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ffcf33}
.ffcd-open{padding:14px 26px;border-radius:100px;font-weight:900;font-size:18px;letter-spacing:.06em;color:#3a0a4a;
 background:linear-gradient(100deg,#ffcf33,#ff8a00);box-shadow:0 0 0 0 rgba(255,207,51,.6);animation:ffPing 2s infinite}
.ffcd-open span{display:block;font-size:12px;font-weight:800;letter-spacing:.02em;opacity:.75}
@keyframes ffPing{0%{box-shadow:0 0 0 0 rgba(255,207,51,.6)}70%{box-shadow:0 0 0 18px rgba(255,207,51,0)}100%{box-shadow:0 0 0 0 rgba(255,207,51,0)}}
/* bandeau defilant */
.ffmarq{position:relative;z-index:6;overflow:hidden;margin:-22px -2vw -18px;padding:14px 0;
 transform:rotate(-1.6deg);background:linear-gradient(90deg,#ffcf33,#ff8a00 50%,#ffcf33);
 box-shadow:0 18px 40px -18px rgba(58,10,74,.55)}
.ffmarq-track{display:flex;width:max-content;align-items:center;gap:26px;animation:ffMarq 38s linear infinite}
.ffmarq span{font-size:clamp(15px,1.8vw,22px);font-weight:900;letter-spacing:.06em;color:#3a0a4a;white-space:nowrap}
.ffmarq i{font-style:normal;color:#e6007e;font-size:18px}
@keyframes ffMarq{to{transform:translateX(-50%)}}
.ffmarq:hover .ffmarq-track{animation-play-state:paused}
/* reflet des cartes */
.ffacc-svc{position:relative;overflow:hidden}
.ffboard-col,.ffevents-card,.ffacc-svc,.ffgal-tile{transform-style:preserve-3d}
.ffglare{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .35s;
 background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.45),transparent 55%);mix-blend-mode:soft-light}
.ffboard-col:hover .ffglare,.ffevents-card:hover .ffglare,.ffacc-svc:hover .ffglare,.ffgal-tile:hover .ffglare{opacity:1}
/* balayage lumineux galerie */
.ffgal-tile::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
 background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
 transform:translateX(-130%);transition:transform 1s var(--e)}
.ffgal-tile:hover::before{transform:translateX(130%)}
/* trait des titres qui se dessine */
.rv h2::after{width:0 !important;transition:width 1s var(--e) .35s}
.rv.in h2::after{width:64px !important}
.ffmarq{transform:rotate(-1deg) !important;padding:18px 0 !important;
 margin:-31px -6vw -31px !important;width:calc(100% + 12vw)}
.hero h1{max-width:none !important}

/* ===== Galerie mobile : "Frissons garantis" en pleine largeur ===== */
@media(max-width:920px){.ffgal-tile.g6{grid-column:span 2 !important}}
@media(max-width:520px){.ffgal-tile.g6{grid-column:span 1 !important}}

/* ===== Footer mobile centre facon Apple ===== */
@media(max-width:700px){
 .ffoot{padding-top:44px}
 .ffoot-grid{grid-template-columns:1fr !important;gap:0 !important;padding-bottom:10px;text-align:center}
 .ffoot-col{padding:26px 0;border-top:1px solid rgba(255,255,255,.08)}
 .ffoot-col:first-child{border-top:0;padding-top:0}
 .ffoot h4{margin-bottom:14px}
 .ffoot-brand .flogo{margin:0 auto 14px}
 .ffoot-brand p{margin:0 auto;max-width:36ch}
 .ffoot-badges{justify-content:center}
 .ffoot-list{align-items:center;gap:12px}
 .ffoot nav{flex-direction:row !important;flex-wrap:wrap;justify-content:center;gap:10px 0 !important}
 .ffoot nav a{padding:0 12px !important;border-left:1px solid rgba(255,255,255,.18) !important;line-height:1.1}
 .ffoot nav a:first-child{border-left:0 !important}
 .ffm-now{justify-content:center;max-width:320px;margin:0 auto;text-align:left}
 .ffm-days{max-width:320px;margin:10px auto 0}
 .ffoot-bottom{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 0 26px}
}

/* ===== Menu mobile ===== */
#burger span{background:#fff !important;height:3px !important;border-radius:3px !important;box-shadow:0 1px 3px rgba(0,0,0,.25)}
#burger{color:#fff !important}

#mnav{background:
  radial-gradient(90% 60% at 100% 0%,rgba(255,138,0,.35),transparent 60%),
  radial-gradient(80% 60% at 0% 100%,rgba(42,167,223,.30),transparent 60%),
  linear-gradient(160deg,#2a0838 0%,#7a0050 50%,#e6007e 100%) !important;
 color:#fff !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important}

#mnavClose{color:#fff !important;background:rgba(255,255,255,.16) !important;border:1px solid rgba(255,255,255,.3) !important;
 border-radius:50% !important;width:48px !important;height:48px !important;display:flex !important;
 align-items:center;justify-content:center;box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
#mnavClose svg{width:22px !important;height:22px !important;color:#fff !important}
#mnavClose svg,#mnavClose svg *{stroke:#fff !important;stroke-width:2.6 !important}
#mnavClose:active{transform:scale(.94)}

#mnav .mnav-links a,#mnav .mnav-links a.on:not(.act){color:#fff !important;background:none !important;
 font-size:26px !important;font-weight:900 !important;letter-spacing:-.01em;padding:12px 26px !important;border-radius:100px !important;
 box-shadow:none !important;text-shadow:0 2px 12px rgba(0,0,0,.2)}
#mnav .mnav-links a:hover{background:rgba(255,255,255,.14) !important;color:#fff !important}
#mnav .mnav-links a.act{background:#ffcf33 !important;color:#3a0a4a !important;text-shadow:none}

/* reseaux sociaux du footer */
.ffoot-soc{display:flex;gap:10px;margin-top:18px}
.ffoot-soc a{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
 background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);color:#fff !important;
 transition:transform .3s var(--e),background .3s}
.ffoot-soc a:hover{transform:translateY(-3px);background:linear-gradient(135deg,#ff8a00,#e6007e);border-color:transparent}
.ffoot-soc svg{width:19px;height:19px}
@media(max-width:700px){.ffoot-soc{justify-content:center}}

/* ===== Page mentions legales ===== */
.fflegal-hero{position:relative;overflow:hidden;padding:clamp(130px,16vw,170px) 0 90px;text-align:center;color:#fff;
 background:radial-gradient(60% 80% at 90% 0%,rgba(255,210,63,.35),transparent 60%),linear-gradient(160deg,#3a0a4a 0%,#b8006a 55%,#ff8a00 100%)}
.fflegal-hero h1{font-size:clamp(34px,5vw,58px);font-weight:900;letter-spacing:-.02em;margin:16px 0 10px;color:#fff}
.fflegal-hero p{margin:0;font-size:14px;color:rgba(255,255,255,.8)}
.fflegal-hero .sec-kick{background:#ffd23f !important;color:#3a0a4a !important}
.fflegal{background:#fff8e7;padding:0 0 90px}
.fflegal-card{position:relative;max-width:820px;margin:-50px auto 0;background:#fff;border-radius:26px;
 padding:clamp(28px,5vw,56px);box-shadow:0 30px 70px -30px rgba(58,10,74,.35);color:#3a0a4a}
.fflegal-card h2{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:900;color:#3a0a4a;
 margin:34px 0 14px;padding-top:28px;border-top:1px solid rgba(230,0,126,.12);text-transform:none;text-shadow:none}
.fflegal-card h2:first-child{margin-top:0;padding-top:0;border-top:0}
.fflegal-card h2::before{content:'';flex:none;width:8px;height:24px;border-radius:4px;background:linear-gradient(180deg,#ffcf33,#e6007e)}
.fflegal-card p{font-size:15px;line-height:1.8;color:rgba(58,10,74,.82);margin:0 0 12px}
.fflegal-card ul{list-style:none;padding:0;margin:12px 0 16px;display:grid;gap:8px}
.fflegal-card li{font-size:14.5px;line-height:1.6;color:rgba(58,10,74,.85);padding:11px 16px;background:#fff8e7;border-radius:12px;border-left:3px solid #ff8a00}
.fflegal-card a{color:#e6007e;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(230,0,126,.3)}
.fflegal-card a:hover{border-bottom-color:#e6007e}
.fflegal-card strong{color:#3a0a4a;font-weight:800}
/* enseigne stroboscope */
.hero h1 .ffl{display:inline}
.hero h1 .ffl.on{color:#fff !important;-webkit-text-fill-color:#fff !important;
 text-shadow:0 0 8px #fff,0 0 22px rgba(255,210,63,.95),0 0 44px rgba(230,0,126,.7)}
.hero h1{animation-duration:4s,1.5s !important}
/* enseigne LED : couleurs unies, disco, extinction */
.hero h1 .ffl{transition:opacity .15s,color .12s,-webkit-text-fill-color .12s}
.hero h1 .ffl.on{transition:none}
.hero h1.ffs-solid .ffl:not(.on){color:var(--sc) !important;-webkit-text-fill-color:var(--sc) !important;
 text-shadow:0 0 14px var(--sc),0 0 36px var(--sc)}
.hero h1.ffs-disco .ffl:not(.on){color:var(--lc,#fff) !important;-webkit-text-fill-color:var(--lc,#fff) !important;
 text-shadow:0 0 12px var(--lc,#fff)}
.hero h1 .ffl.off{opacity:.12}
.hero h1.ffs-solid .ffl:not(.on){text-shadow:none !important}
/* titre en caisson blanc */
.hero h1.ffsign{display:grid !important;background:none !important;color:#fff !important;-webkit-text-fill-color:#fff !important;
 animation:hin 1.5s var(--e) both !important;animation-delay:.16s !important}
.hero h1.ffsign .ffback,.hero h1.ffsign .fffront{grid-area:1/1;display:block}
.hero h1.ffsign .ffback{color:#fff;-webkit-text-fill-color:#fff;
 text-shadow:.06em 0 #fff,-.06em 0 #fff,0 .06em #fff,0 -.06em #fff,
  .042em .042em #fff,-.042em .042em #fff,.042em -.042em #fff,-.042em -.042em #fff,
  0 .09em 0 #eee6f3,0 .11em 0 #ddd1e8,0 .13em 0 #cbbdda,0 .22em .3em rgba(0,0,0,.45)}
.hero h1.ffsign .fffront{background-image:linear-gradient(90deg,#ffd23f 0%,#ff8a00 25%,#e6007e 50%,#29a8e0 75%,#ffd23f 100%);
 background-size:200% 100%;background-repeat:repeat-x;-webkit-background-clip:text;background-clip:text;
 color:transparent;-webkit-text-fill-color:transparent;animation:heroRainbow 4s linear infinite}
.hero h1.ffsign .ffback,.hero h1.ffsign .fffront{padding-top:.22em;margin-top:-.22em;padding-bottom:.06em;margin-bottom:-.06em}

/* hero : photos par defaut, video visible seulement en lecture */
.hero-slides,.hero-slides.has-video{z-index:1 !important;opacity:1 !important;transition:opacity .8s}
.hero-video,.hero-yt{z-index:2 !important;opacity:0 !important;transition:opacity .8s}
.hero.media-on .hero-video,.hero.media-on .hero-yt{opacity:1 !important}
.hero.media-on .hero-slides{opacity:0 !important}
.hero-overlay{z-index:3 !important}
.ffconf{z-index:4 !important}
.hero-in{z-index:5 !important}
