:root{
  --violet:#50236D;
  --violet-dark:#13051d;
  --orange:#E96A2B;
  --yellow:#FACF3B;
  --black:#0d0b12;
  --white:#fff;
  --grey:#C3C6C8;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Bahnschrift,"Segoe UI",Arial,sans-serif;background:var(--black);color:var(--white);overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}.cursor-glow{position:fixed;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(233,106,43,.16),transparent 62%);pointer-events:none;z-index:1;transform:translate(-50%,-50%)}.site-header{position:fixed;top:0;left:0;width:100%;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 6vw;background:linear-gradient(180deg,rgba(13,11,18,.9),rgba(13,11,18,0));backdrop-filter:blur(8px)}.brand,.footer-brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none;font-size:clamp(1rem,1.7vw,1.6rem);letter-spacing:.02em}.brand img{width:86px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45))}.brand strong,.footer-brand strong{color:var(--orange)}.main-nav{display:flex;align-items:center;gap:28px;text-transform:uppercase;font-weight:800;font-size:.88rem}.main-nav a{color:#fff;text-decoration:none}.nav-cta,.btn.primary{background:var(--orange);color:#fff!important;border-radius:999px;padding:15px 24px;box-shadow:0 12px 30px rgba(233,106,43,.35)}.menu-toggle{display:none;background:transparent;color:#fff;border:0;font-size:2rem}.panel{position:relative;min-height:100vh;overflow:hidden}.hero{display:flex;align-items:center;padding:140px 6vw 80px;background:radial-gradient(circle at 72% 45%,rgba(233,106,43,.35),transparent 25%),linear-gradient(135deg,#190820 0%,#2d1040 45%,#060407 100%)}.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,4,12,.95) 0%,rgba(17,5,24,.45) 44%,rgba(0,0,0,.15)),url('assets/runner.jpg') center right/cover no-repeat;filter:saturate(1.2) contrast(1.1)}.hero-runner{position:absolute;right:0;bottom:-2%;width:66vw;height:88vh;background:url('assets/runner.jpg') center/cover no-repeat;mix-blend-mode:screen;opacity:.25;filter:contrast(1.25) saturate(1.3)}.energy{position:absolute;border-radius:50%;border:3px solid rgba(250,207,59,.75);filter:blur(.4px) drop-shadow(0 0 18px var(--orange));transform:rotate(-10deg)}.energy-1{right:-8vw;bottom:18vh;width:58vw;height:15vh}.energy-2{right:5vw;bottom:11vh;width:42vw;height:10vh;border-color:rgba(233,106,43,.8)}.hero-content{position:relative;z-index:5;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#fff}.eyebrow.orange{color:var(--orange)}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(3.1rem,8vw,7.5rem);line-height:.94;text-transform:uppercase;margin:20px 0}.hero h1 span{display:block}.hero h1 span:nth-child(1){color:#fff}.hero h1 span:nth-child(2){color:var(--orange)}.hero h1 span:nth-child(3){color:var(--yellow)}.lead{font-size:clamp(1.05rem,2vw,1.5rem);max-width:610px;line-height:1.55;color:#eee}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-transform:uppercase;font-weight:900;letter-spacing:.03em;border-radius:999px;padding:16px 26px;margin:8px 10px 0 0}.btn.ghost,.btn.outline{color:#fff;border:1px solid rgba(250,207,59,.75);background:rgba(255,255,255,.03)}.scroll-hint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:5;text-transform:uppercase;font-size:.76rem;letter-spacing:.12em;color:#ddd}.scroll-hint span{display:block;margin:0 auto 8px;width:20px;height:34px;border:2px solid #fff;border-radius:20px;position:relative}.scroll-hint span:before{content:"";position:absolute;left:50%;top:7px;width:4px;height:7px;background:var(--orange);border-radius:8px;transform:translateX(-50%);animation:wheel 1.3s infinite}@keyframes wheel{to{top:17px;opacity:0}}.split-section{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;background:linear-gradient(135deg,#120719,#251032);border-top:1px solid rgba(233,106,43,.35)}.split-section.reverse{grid-template-columns:.95fr 1.05fr}.photo-card{min-height:100vh;overflow:hidden;position:relative}.photo-card:after,.lion-overlay{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(80,35,109,.35),rgba(0,0,0,.05),rgba(233,106,43,.14))}.photo-card img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.08) contrast(1.08)}.diagonal-left{clip-path:polygon(0 9%,100% 0,88% 100%,0 100%)}.diagonal-right{clip-path:polygon(12% 0,100% 0,100% 100%,0 91%)}.content-card{position:relative;display:flex;flex-direction:column;justify-content:center;padding:10vw 7vw;min-height:100vh;background:radial-gradient(circle at 90% 75%,rgba(233,106,43,.18),transparent 28%)}.section-number{position:absolute;right:5vw;top:13vh;font-size:clamp(5rem,12vw,11rem);font-weight:900;color:rgba(255,255,255,.05)}.content-card h2,.lion-content h2,.section-title h2{font-size:clamp(2.4rem,5vw,5rem);line-height:1.02;text-transform:uppercase;margin-bottom:26px}.content-card h2 strong,.lion-content h2 strong{color:var(--orange)}.content-card p,.lion-content p,.cta-section p{font-size:1.15rem;line-height:1.65;color:#eee;max-width:520px}.lion-section{display:flex;align-items:center;min-height:100vh;background:#0c0610}.lion-bg{position:absolute;inset:0;background:url('assets/lion-belfort.jpg') center right/cover no-repeat;filter:contrast(1.15) saturate(1.05)}.lion-overlay{background:linear-gradient(90deg,rgba(13,5,21,.98) 0%,rgba(34,9,46,.78) 38%,rgba(0,0,0,.12) 100%)}.lion-content{position:relative;z-index:2;width:min(620px,80vw);margin-left:7vw}.agenda-section{min-height:auto;padding:110px 6vw;background:radial-gradient(circle at 50% 0,rgba(233,106,43,.2),transparent 25%),linear-gradient(180deg,#0d0712,#1b0826)}.section-title{text-align:center;margin-bottom:46px}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.event-card{padding:32px;border:1px solid rgba(250,207,59,.25);border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.02));box-shadow:0 22px 70px rgba(0,0,0,.24)}.event-card span{color:var(--yellow);font-weight:900;text-transform:uppercase}.event-card h3{font-size:1.7rem;text-transform:uppercase;margin:14px 0}.event-card p{line-height:1.55;color:#ddd}.cta-section{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 6vw;background:radial-gradient(circle at 30% 50%,rgba(80,35,109,.75),transparent 25%),radial-gradient(circle at 72% 48%,rgba(233,106,43,.75),transparent 26%),#100613}.cta-logo{width:120px;filter:drop-shadow(0 14px 30px rgba(0,0,0,.45));margin-bottom:28px}.cta-section h2{text-transform:uppercase;font-size:clamp(3.2rem,10vw,9rem);line-height:.9;margin:0 0 22px}.cta-section h2 strong{font-size:1.14em;color:var(--yellow);font-style:italic;text-shadow:0 0 32px rgba(250,207,59,.3)}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:min(760px,100%);margin-top:30px}.contact-form textarea{grid-column:1/-1;min-height:120px}.contact-form input,.contact-form textarea{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:16px;padding:17px 18px;font:inherit;outline:none}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#bbb}.contact-form button{grid-column:1/-1;border:0;border-radius:999px;background:var(--orange);color:#fff;padding:18px;font-weight:900;text-transform:uppercase;cursor:pointer}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 6vw;background:#0a0a0d;color:#ccc;border-top:1px solid rgba(255,255,255,.09)}.footer-brand img{width:58px}.site-footer p{margin:0;font-size:.9rem}.reveal-card,.reveal-text{will-change:transform,opacity}@media(max-width:900px){.site-header{padding:14px 5vw}.brand img{width:62px}.menu-toggle{display:block}.main-nav{position:absolute;right:5vw;top:82px;display:none;flex-direction:column;align-items:flex-start;background:rgba(13,11,18,.96);border:1px solid rgba(255,255,255,.12);padding:22px;border-radius:18px}.main-nav.open{display:flex}.hero{padding-top:120px}.hero-bg{background-position:center}.hero-runner,.energy{display:none}.split-section,.split-section.reverse{grid-template-columns:1fr}.photo-card,.content-card{min-height:62vh}.content-card{padding:70px 7vw}.diagonal-left,.diagonal-right{clip-path:none}.event-grid{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.site-footer{flex-direction:column;text-align:center}.hero h1{font-size:clamp(2.6rem,13vw,5rem)}}

.section-lead{max-width:760px;margin:14px auto 0;color:#e7e0ec;font-size:1.12rem;line-height:1.65}.agenda-grid{grid-template-columns:repeat(2,1fr);max-width:1160px;margin:0 auto}.featured-event{position:relative;overflow:hidden}.featured-event:before{content:"";position:absolute;inset:auto -20% -45% 18%;height:190px;background:radial-gradient(circle,rgba(233,106,43,.28),transparent 62%);pointer-events:none}.featured-event ul{position:relative;z-index:1;margin:20px 0 0;padding:0;list-style:none}.featured-event li{margin:10px 0;color:#f5f0f8}.featured-event li:before{content:"▸";color:var(--yellow);font-weight:900;margin-right:10px}.meeting-point{max-width:1160px;margin:28px auto 0;display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:stretch;padding:24px;border:1px solid rgba(250,207,59,.25);border-radius:32px;background:linear-gradient(145deg,rgba(80,35,109,.38),rgba(255,255,255,.035));box-shadow:0 22px 70px rgba(0,0,0,.24)}.meeting-copy{padding:18px 12px}.meeting-copy h3{font-size:clamp(1.8rem,3vw,3rem);line-height:1.05;text-transform:uppercase;margin:0 0 18px}.meeting-copy p{color:#ddd;line-height:1.6}.map-card{min-height:360px;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 46px rgba(0,0,0,.35)}.map-card iframe{display:block;width:100%;height:100%;border:0;filter:saturate(1.04) contrast(1.03)}@media(max-width:900px){.agenda-grid,.meeting-point{grid-template-columns:1fr}.meeting-point{padding:18px}.map-card{min-height:300px}}

/* Notre troupe */
.committee-section{
  min-height:auto;
  padding:120px 6vw 130px;
  background:
    radial-gradient(circle at 15% 18%,rgba(233,106,43,.20),transparent 26%),
    radial-gradient(circle at 84% 42%,rgba(80,35,109,.42),transparent 34%),
    linear-gradient(180deg,#100617,#1b0826 55%,#0d0712);
  border-top:1px solid rgba(233,106,43,.28);
}
.team-grid{
  max-width:1320px;
  margin:0 auto;
  display:grid;
  gap:22px;
}
.troupe-grid{
  grid-template-columns:repeat(4,1fr);
}
.team-card{
  position:relative;
  min-height:470px;
  border-radius:30px;
  overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
  border:1px solid rgba(250,207,59,.20);
  box-shadow:0 24px 70px rgba(0,0,0,.30);
  transform-style:preserve-3d;
}
.team-card:before{
  content:"BLABLA\A RUN";
  white-space:pre;
  position:absolute;
  right:-12px;
  top:24px;
  z-index:1;
  font-weight:900;
  font-size:4.5rem;
  line-height:.78;
  color:rgba(233,106,43,.16);
  writing-mode:vertical-rl;
  text-orientation:mixed;
  letter-spacing:.02em;
}
.team-card:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(180deg,rgba(9,4,15,0) 38%,rgba(9,4,15,.62) 72%,rgba(9,4,15,.96) 100%);
  pointer-events:none;
}
.team-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  z-index:0;
  transform:scale(1.02);
  transition:transform .55s ease, filter .55s ease;
}
.team-card:hover img{transform:scale(1.075);filter:saturate(1.08) contrast(1.06)}
.team-info{
  position:absolute;
  left:22px;
  right:22px;
  bottom:22px;
  z-index:3;
}
.team-info span{
  display:inline-flex;
  color:#fff4df;
  font-weight:800;
  font-size:.92rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:8px 13px;
  border-radius:999px;
  background:rgba(80,35,109,.62);
  border:1px solid rgba(250,207,59,.22);
}
.team-info h4{
  margin:10px 0 0;
  text-transform:uppercase;
  font-size:clamp(1.6rem,2.8vw,3rem);
  line-height:0.95;
  letter-spacing:-0.03em;
  transform:scaleX(.96);
  transform-origin:left center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#ffd0b1;
  text-shadow:0 6px 20px rgba(0,0,0,.42);
}
.president .team-info h4{color:var(--yellow)}
.blabladog .team-info h4{color:#fff}

@media(max-width:1100px){
  .troupe-grid{grid-template-columns:repeat(2,1fr)}
  .team-card{min-height:560px}
}
@media(max-width:640px){
  .committee-section{padding:90px 5vw}
  .troupe-grid{grid-template-columns:1fr}
  .team-card{min-height:520px}
  .team-card:before{font-size:3.9rem;right:-8px}
}


/* Section dons HelloAsso */
.don-section{
  min-height:auto;
  padding:118px 6vw 128px;
  background:
    radial-gradient(circle at 12% 18%,rgba(250,207,59,.18),transparent 27%),
    radial-gradient(circle at 88% 30%,rgba(233,106,43,.24),transparent 30%),
    linear-gradient(180deg,#0d0712 0%,#261034 55%,#100617 100%);
  border-top:1px solid rgba(250,207,59,.18);
}
.don-shell{max-width:1280px;margin:0 auto}
.don-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:28px;
  align-items:start;
}
.don-content{
  padding:34px;
  border-radius:30px;
  border:1px solid rgba(250,207,59,.24);
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.don-badge{
  display:inline-flex;
  padding:10px 15px;
  border-radius:999px;
  background:rgba(233,106,43,.92);
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  font-size:.82rem;
  letter-spacing:.04em;
}
.don-content h3{
  margin:24px 0 18px;
  color:var(--yellow);
  font-size:clamp(2rem,3vw,3.2rem);
  line-height:1;
  text-transform:uppercase;
}
.don-content ul{list-style:none;margin:0;padding:0}
.don-content li{
  position:relative;
  padding-left:28px;
  margin:15px 0;
  color:#f1edf5;
  line-height:1.55;
}
.don-content li:before{
  content:"▸";
  position:absolute;
  left:0;
  top:0;
  color:var(--orange);
  font-weight:900;
}
.don-quote{
  margin:28px 0 0;
  padding:22px;
  border-left:4px solid var(--orange);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  color:var(--yellow);
  font-size:1.15rem;
  line-height:1.45;
  font-style:italic;
}
.don-widget{
  overflow:hidden;
  min-height:760px;
  border-radius:30px;
  background:#fff;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 28px 80px rgba(0,0,0,.38);
}
.don-widget iframe{
  display:block;
  width:100%;
  height:850px;
  border:0;
  border-radius:30px;
  background:#fff;
}
@media(max-width:980px){
  .don-section{padding:92px 5vw}
  .don-grid{grid-template-columns:1fr}
  .don-widget{min-height:720px}
}
@media(max-width:640px){
  .don-content{padding:26px}
  .don-widget{border-radius:22px;min-height:700px}
  .don-widget iframe{border-radius:22px}
}

/* Dynamisation running */
.gps-route{
  position:fixed;
  left:18px;
  top:50%;
  width:170px;
  height:min(88vh,920px);
  z-index:18;
  pointer-events:none;
  opacity:.92;
  transform:translateY(-50%);
  --gps-dot:0;
  --route-progress:0;
}
.city-route-title{
  position:absolute;
  left:18px;
  top:10px;
  padding:8px 10px;
  border:1px solid rgba(250,207,59,.28);
  border-radius:999px;
  background:rgba(15,8,32,.74);
  color:#FACF3B;
  font-size:.64rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  backdrop-filter:blur(10px);
  box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.gps-route svg{
  width:100%;
  height:100%;
  overflow:visible;
}
.gps-track{
  fill:none;
  stroke:url(#routeGradient);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:1280;
  stroke-dashoffset:1280;
  filter:url(#routeGlow);
}
.gps-shadow{
  stroke:rgba(255,255,255,.12);
  stroke-width:12;
  filter:none;
  stroke-dashoffset:0;
}
.route-runner{
  position:absolute;
  left:calc(72px + (var(--route-x,0) * 1px));
  top:calc(var(--gps-dot,0) * 1%);
  transform:translate(-50%,-50%) scale(.98);
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#E96A2B;
  color:#fff;
  font-size:15px;
  box-shadow:0 0 0 5px rgba(233,106,43,.18),0 0 24px rgba(233,106,43,.85);
}
.city-marker{
  position:absolute;
  left:calc(var(--x) + 8px);
  top:var(--y);
  display:flex;
  align-items:center;
  gap:6px;
  transform:translate(-50%,-50%);
  opacity:calc(.25 + (var(--active,0) * .75));
  filter:grayscale(calc(1 - var(--active,0))) drop-shadow(0 0 calc(var(--active,0) * 10px) rgba(250,207,59,.7));
  transition:opacity .25s ease, filter .25s ease, transform .25s ease;
}
.city-marker span{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(15,8,32,.82);
  border:1px solid rgba(250,207,59,.36);
  box-shadow:0 0 0 4px rgba(80,35,109,.18);
  font-size:15px;
}
.city-marker small{
  padding:5px 8px;
  border-radius:999px;
  background:rgba(15,8,32,.74);
  color:#fff;
  font-size:.58rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  white-space:nowrap;
  transform:translateX(-2px);
}
.city-marker.is-active{
  transform:translate(-50%,-50%) scale(1.08);
}
.city-marker.is-active span{
  background:#FACF3B;
  border-color:#E96A2B;
}

.next-run-section{
  min-height:auto;
  padding:115px 6vw;
  background:radial-gradient(circle at 25% 10%,rgba(250,207,59,.16),transparent 28%),linear-gradient(180deg,#120719,#210a31);
}
.next-run-grid{
  max-width:1160px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.next-run-card{
  position:relative;
  overflow:hidden;
  border-radius:34px;
  padding:40px;
  border:1px solid rgba(250,207,59,.25);
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
  box-shadow:0 24px 70px rgba(0,0,0,.30);
}
.next-run-card:before{
  content:"";
  position:absolute;
  right:-60px;
  bottom:-70px;
  width:240px;
  height:240px;
  border:2px solid rgba(233,106,43,.35);
  border-radius:50%;
}
.next-run-card.specific:before{border-color:rgba(250,207,59,.34)}
.run-day{color:#FACF3B;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.next-run-card h3{font-size:clamp(2rem,4vw,3.6rem);line-height:1;text-transform:uppercase;margin:16px 0}
.next-run-card p{color:#ddd;line-height:1.62;font-size:1.08rem;max-width:560px;margin-bottom:26px}

.stats-section{
  min-height:auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  padding:44px 6vw;
  background:#0a0710;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.stat{
  text-align:center;
  border-radius:26px;
  padding:30px 18px;
  background:linear-gradient(145deg,rgba(80,35,109,.55),rgba(255,255,255,.025));
  border:1px solid rgba(250,207,59,.18);
}
.stat strong{display:block;font-size:clamp(3rem,7vw,6rem);line-height:.9;color:#FACF3B}
.stat span{text-transform:uppercase;font-weight:900;color:#fff;letter-spacing:.06em}

.gallery-section{
  min-height:auto;
  padding:120px 6vw;
  background:radial-gradient(circle at 90% 10%,rgba(233,106,43,.18),transparent 25%),linear-gradient(180deg,#0d0712,#1b0826);
}
.gallery-filters{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin:-20px auto 34px;
}
.gallery-filters span{
  padding:9px 15px;
  border-radius:999px;
  color:#fff;
  border:1px solid rgba(250,207,59,.25);
  background:rgba(255,255,255,.06);
  font-weight:800;
  text-transform:uppercase;
  font-size:.82rem;
}
.masonry-gallery{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.15fr .85fr .85fr;
  grid-auto-rows:260px;
  gap:18px;
}
.gallery-item{
  border:0;
  padding:0;
  overflow:hidden;
  border-radius:28px;
  background:#13091e;
  cursor:pointer;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
  border:1px solid rgba(250,207,59,.16);
}
.gallery-item.large{grid-row:span 2}
.gallery-item.tall{grid-row:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease,filter .6s ease}
.gallery-item:hover img{transform:scale(1.08);filter:saturate(1.12) contrast(1.05)}

.why-section{
  min-height:auto;
  padding:115px 6vw;
  background:linear-gradient(180deg,#120719,#0d0712);
}
.why-grid{
  max-width:1160px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.why-card{
  padding:34px;
  min-height:260px;
  border-radius:30px;
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
  border:1px solid rgba(250,207,59,.18);
}
.why-card span{font-size:4rem;font-weight:900;color:rgba(233,106,43,.24)}
.why-card h3{text-transform:uppercase;font-size:1.7rem;margin:12px 0;color:#FACF3B}
.why-card p{color:#ddd;line-height:1.58}

.partners-section{
  min-height:auto;
  padding:115px 6vw;
  background:radial-gradient(circle at 20% 15%,rgba(233,106,43,.20),transparent 28%),linear-gradient(180deg,#100617,#1b0826);
}
.partners-grid{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
  align-items:stretch;
}
.partner-card{
  min-height:150px;
  border-radius:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:#fff;
  border:1px solid rgba(250,207,59,.20);
  box-shadow:0 20px 50px rgba(0,0,0,.28);
}
.partner-card img{max-width:100%;max-height:105px;object-fit:contain;display:block}
.partner-cta{
  max-width:760px;
  margin:32px auto 0;
  padding:30px;
  text-align:center;
  border-radius:28px;
  background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
  border:1px solid rgba(250,207,59,.2);
}
.partner-cta h3{text-transform:uppercase;font-size:2rem;color:#FACF3B;margin:0 0 8px}
.partner-cta p{color:#ddd;margin:0 auto 20px;line-height:1.55}


.mobile-quickbar{display:none}

@media(max-width:1080px){
  .partners-grid{grid-template-columns:repeat(3,1fr)}
  .masonry-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:220px}
  .gallery-item.large{grid-column:span 2;grid-row:span 1}
}
@media(max-width:900px){
  .gps-route{display:none}
  .next-run-grid,.stats-section,.why-grid{grid-template-columns:1fr}
  .partners-grid{grid-template-columns:repeat(2,1fr)}
  .mobile-quickbar{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:90;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    padding:10px;
    border-radius:20px;
    background:rgba(15,8,32,.92);
    border:1px solid rgba(250,207,59,.22);
    backdrop-filter:blur(12px);
  }
  .mobile-quickbar a{
    text-align:center;
    text-decoration:none;
    color:#fff;
    padding:12px 6px;
    border-radius:14px;
    background:rgba(233,106,43,.86);
    font-weight:900;
    text-transform:uppercase;
    font-size:.78rem;
  }
  .site-footer{padding-bottom:96px}
}
@media(max-width:620px){
  .next-run-section,.gallery-section,.why-section,.partners-section{padding:90px 5vw}
  .masonry-gallery{grid-template-columns:1fr;grid-auto-rows:240px}
  .gallery-item.large,.gallery-item.tall{grid-column:auto;grid-row:auto}
  .partners-grid{grid-template-columns:1fr}
  .partner-card{min-height:135px}
}
.mouse-spark{
  position:fixed;
  z-index:999;
  width:8px;
  height:8px;
  border-radius:50%;
  pointer-events:none;
  background:#E96A2B;
  box-shadow:0 0 16px rgba(233,106,43,.9);
}

/* Calendrier événements du mois */
.month-calendar{
  max-width:1160px;
  margin:0 auto 32px;
  border-radius:34px;
  overflow:hidden;
  border:1px solid rgba(250,207,59,.25);
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
  box-shadow:0 24px 80px rgba(0,0,0,.32);
}
.calendar-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:26px 32px;
  background:linear-gradient(90deg,rgba(233,106,43,.92),rgba(80,35,109,.65));
  text-transform:uppercase;
}
.calendar-header span{
  font-size:clamp(2rem,5vw,4rem);
  font-weight:900;
  color:#FACF3B;
  line-height:.9;
}
.calendar-header strong{
  color:#fff;
  font-size:clamp(1rem,2vw,1.35rem);
  letter-spacing:.08em;
}
.calendar-grid{
  display:grid;
  grid-template-columns:1fr;
}
.calendar-event{
  position:relative;
  display:grid;
  grid-template-columns:150px 1fr;
  gap:28px;
  align-items:center;
  padding:34px 36px;
  border-top:1px solid rgba(255,255,255,.10);
  overflow:hidden;
}
.calendar-event:before{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-120px;
  width:260px;
  height:260px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(233,106,43,.24),transparent 66%);
}
.calendar-event.supporter:before{background:radial-gradient(circle,rgba(250,207,59,.24),transparent 66%)}
.calendar-event.family:before{background:radial-gradient(circle,rgba(80,35,109,.42),transparent 66%)}
.calendar-date{
  position:relative;
  z-index:1;
  width:132px;
  height:132px;
  border-radius:30px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#FACF3B;
  color:#17091f;
  box-shadow:0 16px 36px rgba(250,207,59,.18);
  transform:rotate(-3deg);
}
.calendar-date span{
  font-size:4.2rem;
  font-weight:900;
  line-height:.82;
}
.calendar-date small{
  font-weight:900;
  letter-spacing:.16em;
}
.calendar-copy{position:relative;z-index:1}
.event-tag{
  margin:0 0 8px;
  color:#E96A2B;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:.08em;
}
.calendar-copy h3{
  margin:0 0 12px;
  font-size:clamp(1.8rem,3.2vw,3.4rem);
  line-height:1;
  text-transform:uppercase;
}
.calendar-copy p:not(.event-tag){
  max-width:760px;
  color:#ddd;
  line-height:1.62;
  margin:0;
  font-size:1.05rem;
}
@media(max-width:700px){
  .calendar-header{align-items:flex-start;flex-direction:column;padding:24px}
  .calendar-event{grid-template-columns:1fr;padding:28px 24px}
  .calendar-date{width:112px;height:112px;border-radius:24px}
  .calendar-date span{font-size:3.4rem}
}

/* Rendez-vous hebdomadaires */
.weekly-runs{
  max-width:1160px;
  margin:0 auto 34px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
.weekly-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:150px 1fr;
  gap:24px;
  align-items:center;
  min-height:245px;
  padding:30px;
  border-radius:32px;
  border:1px solid rgba(250,207,59,.26);
  background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.025));
  box-shadow:0 24px 70px rgba(0,0,0,.26);
}
.weekly-card:before{
  content:"";
  position:absolute;
  right:-70px;
  bottom:-100px;
  width:250px;
  height:250px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(233,106,43,.28),transparent 66%);
}
.weekly-card.workout-run:before{
  background:radial-gradient(circle,rgba(250,207,59,.28),transparent 66%);
}
.weekly-day{
  position:relative;
  z-index:1;
  width:130px;
  min-height:130px;
  border-radius:30px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:linear-gradient(145deg,#FACF3B,#E96A2B);
  color:#17091f;
  box-shadow:0 18px 38px rgba(233,106,43,.24);
  transform:rotate(-3deg);
}
.weekly-card.workout-run .weekly-day{
  transform:rotate(3deg);
  background:linear-gradient(145deg,#E96A2B,#50236D);
  color:#fff;
}
.weekly-day span{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:900;
  font-size:.92rem;
}
.weekly-day strong{
  display:block;
  margin-top:8px;
  font-size:2.2rem;
  line-height:1;
}
.weekly-copy{
  position:relative;
  z-index:1;
}
.weekly-copy h3{
  margin:0 0 12px;
  font-size:clamp(1.7rem,3vw,3rem);
  line-height:1;
  text-transform:uppercase;
}
.weekly-copy p:not(.event-tag){
  margin:0;
  color:#ddd;
  line-height:1.62;
  font-size:1.05rem;
}
@media(max-width:900px){
  .weekly-runs{grid-template-columns:1fr}
}
@media(max-width:700px){
  .weekly-card{grid-template-columns:1fr;padding:26px 22px}
  .weekly-day{width:118px;min-height:118px;border-radius:24px}
  .weekly-day strong{font-size:2rem}
}

/* V11 - Lion bondissant + traces running vers pattes de lion */
.lion-section{
  display:flex;
  align-items:center;
  min-height:100vh;
  background:
    radial-gradient(circle at 75% 42%,rgba(233,106,43,.22),transparent 28%),
    radial-gradient(circle at 42% 75%,rgba(250,207,59,.14),transparent 24%),
    linear-gradient(135deg,#0b0410 0%,#1b0826 42%,#09030d 100%);
  overflow:hidden;
}
.lion-sky{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(13,5,21,.98) 0%,rgba(34,9,46,.74) 42%,rgba(0,0,0,.18) 100%),
    repeating-linear-gradient(-18deg,rgba(250,207,59,.05) 0 2px,transparent 2px 70px);
}
.lion-sky:before{
  content:"";
  position:absolute;
  inset:auto -10% 0 -10%;
  height:38%;
  background:radial-gradient(ellipse at center,rgba(233,106,43,.26),transparent 60%);
  filter:blur(12px);
}
.lion-stage{
  position:absolute;
  right:3vw;
  bottom:9vh;
  width:min(58vw,760px);
  height:min(52vh,430px);
  z-index:1;
  pointer-events:none;
}
.lion-content{z-index:3}
.lion-content h2{max-width:760px}
.lion-content p{max-width:590px}
@media(max-width:900px){
  .lion-stage{position:relative;right:auto;bottom:auto;width:92vw;height:300px;margin:35vh auto 0;opacity:.72}
  .lion-section{display:block;padding-top:80px}
  .lion-content{width:auto;margin:0 6vw;padding:0 0 80px}
}

.mouse-spark{display:none!important}
.foot-trail{
  position:fixed;
  z-index:999;
  width:32px;
  height:32px;
  pointer-events:none;
  transform:translate(-50%,-50%);
  opacity:.38;
  color:rgba(250,207,59,.72);
  filter:drop-shadow(0 0 8px rgba(233,106,43,.28));
  mix-blend-mode:screen;
}
.foot-trail svg{display:block;width:100%;height:100%;overflow:visible}
.foot-trail.paw{color:rgba(250,207,59,.72)}

/* V12 - famille de lions animée */
.lion-family-img{
  object-fit:contain;
  object-position:center bottom;
  padding:0 0 12px;
  filter:
    drop-shadow(0 28px 48px rgba(0,0,0,.62))
    drop-shadow(0 0 26px rgba(250,207,59,.20));
}
.lion-stage:after{
  content:"";
  position:absolute;
  right:10%;
  bottom:18px;
  width:70%;
  height:28px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.46),transparent 70%);
  filter:blur(10px);
  transform:scaleX(.9);
}
.lion-section .eyebrow.orange::after{
  content:"  •  Lions & Lionceaux";
  color:#FACF3B;
}
@media(max-width:900px){
  .lion-family-img{padding:10px 4vw 0;}
  .lion-stage:after{right:18%;width:64%;bottom:28px;}
}

.form-note{grid-column:1/-1;margin:4px 0 0;color:#d8d0dc;font-size:.9rem;text-align:center}

/* V16 - retour à un tracé GPS simple et discret */
.simple-route{
  width:96px;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  opacity:.72;
}
.simple-route .city-route-title{display:none}
.simple-route svg{width:86px;height:76vh;max-height:720px;min-height:420px}
.simple-route .gps-track{stroke-width:4;stroke-linecap:round;stroke-dasharray:10 12}
.simple-route .gps-shadow{stroke:rgba(250,207,59,.12);stroke-width:10;opacity:.6}
.simple-route .route-runner{
  width:34px;height:34px;font-size:18px;
  background:rgba(13,7,18,.78);
  border:1px solid rgba(250,207,59,.45);
}
.simple-route .city-marker{
  width:15px;height:15px;
  background:#0d0712;
  border:2px solid #FACF3B;
  box-shadow:0 0 0 5px rgba(233,106,43,.08),0 0 18px rgba(233,106,43,.35);
  border-radius:999px;
}
.simple-route .city-marker span{display:none}
.simple-route .city-marker small{display:none!important}
.simple-route .city-marker.is-active{
  transform:translate(-50%,-50%) scale(1.28);
  background:#E96A2B;
  border-color:#FACF3B;
}
@media(max-width:1100px){.simple-route{display:none}}


/* Météo simple Belfort */
.weather-section{
  min-height:auto;
  padding:100px 6vw;
  background:linear-gradient(135deg,#15081f 0%,#261038 52%,#0d0712 100%);
  border-top:1px solid rgba(250,207,59,.16);
  border-bottom:1px solid rgba(250,207,59,.12);
}
.weather-card{
  max-width:1120px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:center;
  padding:34px;
  border-radius:32px;
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
  border:1px solid rgba(250,207,59,.22);
  box-shadow:0 26px 80px rgba(0,0,0,.28);
}
.weather-copy h2{
  margin:8px 0 18px;
  font-size:clamp(2.2rem,5vw,4.6rem);
  line-height:1;
  text-transform:uppercase;
}
.weather-copy p{
  color:#e7e0ec;
  line-height:1.65;
  font-size:1.08rem;
  max-width:520px;
}
.weather-widget{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:20px;
  align-items:center;
  padding:28px;
  border-radius:28px;
  background:radial-gradient(circle at 85% 20%,rgba(233,106,43,.22),transparent 35%),rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
}
.weather-icon{
  width:86px;
  height:86px;
  display:grid;
  place-items:center;
  border-radius:26px;
  background:linear-gradient(135deg,var(--orange),var(--yellow));
  font-size:2.6rem;
  box-shadow:0 18px 44px rgba(233,106,43,.28);
}
.weather-main strong{
  display:block;
  font-size:clamp(2.8rem,6vw,5.2rem);
  line-height:.9;
  color:var(--yellow);
}
.weather-main span{
  display:block;
  margin-top:10px;
  color:#f5f0f8;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.weather-details{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.weather-details span{
  padding:14px 16px;
  border-radius:18px;
  background:rgba(0,0,0,.22);
  color:#ddd;
}
.weather-details strong{color:#fff}
@media(max-width:900px){
  .weather-section{padding:80px 5vw}
  .weather-card{grid-template-columns:1fr;padding:22px;border-radius:24px}
  .weather-widget{grid-template-columns:1fr;text-align:center}
  .weather-icon{margin:0 auto}
  .weather-details{grid-template-columns:1fr}
}

/* V18 - Lion de Belfort stylisé + wording inclusif */
.belfort-lion-stage{
  display:flex;
  align-items:center;
  justify-content:center;
  perspective:1200px;
}
.belfort-lion-svg{
  width:min(680px,55vw);
  height:auto;
  padding:18px;
  opacity:.96;
  transform-origin:50% 72%;
  filter:drop-shadow(0 0 28px rgba(233,106,43,.22));
}
.belfort-lion-svg .lion-line{
  fill:none;
  stroke:url(#belfortLionGradient);
  stroke-width:20;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:url(#belfortLionGlow);
}
.belfort-lion-svg .mane{
  fill:rgba(233,106,43,.10);
  stroke-width:14;
}
.belfort-lion-svg .head{stroke-width:15;}
.belfort-lion-svg .tail{stroke-width:13;}
.belfort-lion-svg .leg{stroke-width:16;opacity:.9;}
.belfort-lion-svg .lion-ground{
  fill:none;
  stroke:#E96A2B;
  stroke-width:8;
  stroke-linecap:round;
  opacity:.72;
  stroke-dasharray:18 18;
  animation:groundMove 3.2s linear infinite;
}
.belfort-lion-svg .lion-eye{fill:#FACF3B;filter:drop-shadow(0 0 8px rgba(250,207,59,.8));}
.lion-section .eyebrow.orange::after{content:"  •  Lions, Lionnes & Lionceaux";}
.lion-content h2 strong,.lion-content h2 em{color:#FACF3B;font-style:normal;}
@keyframes groundMove{to{stroke-dashoffset:-72;}}
@media(max-width:900px){
  .belfort-lion-svg{width:92vw;}
}

/* v19 - section troupe avec vraie photo, sans lion */
.troupe-feature{
  min-height:100vh;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  align-items:stretch;
  background:
    radial-gradient(circle at 75% 35%, rgba(233,106,43,.22), transparent 26%),
    linear-gradient(135deg,#120719 0%,#241132 52%,#09050d 100%);
  border-top:1px solid rgba(233,106,43,.28);
  border-bottom:1px solid rgba(250,207,59,.18);
}
.troupe-photo-wrap{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  clip-path:polygon(0 0,100% 0,88% 100%,0 100%);
}
.troupe-photo-wrap:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(12,5,18,.22),rgba(12,5,18,.04)),
    linear-gradient(0deg,rgba(80,35,109,.38),transparent 45%);
  pointer-events:none;
}
.troupe-photo-wrap:after{
  content:"";
  position:absolute;
  right:-2px;
  top:0;
  width:5px;
  height:100%;
  background:linear-gradient(180deg,#FACF3B,#E96A2B,#50236D);
  box-shadow:0 0 26px rgba(233,106,43,.65);
  z-index:2;
}
.troupe-photo-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(1.12) contrast(1.05) brightness(.95);
  transform:scale(1.03);
}
.troupe-feature-content{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:110px 7vw 90px 4vw;
  z-index:3;
}
.troupe-feature-content:before{
  content:"01";
  position:absolute;
  right:5vw;
  top:14vh;
  font-size:clamp(5rem,12vw,11rem);
  font-weight:900;
  color:rgba(255,255,255,.045);
  line-height:1;
}
.troupe-feature-content h2{
  max-width:760px;
  font-size:clamp(2.4rem,5vw,5rem);
  line-height:1.02;
  text-transform:uppercase;
  margin:0 0 26px;
}
.troupe-feature-content p{
  max-width:620px;
  color:#eee;
  font-size:1.15rem;
  line-height:1.68;
}
.troupe-points{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  max-width:620px;
  margin:28px 0 18px;
}
.troupe-points span{
  border:1px solid rgba(250,207,59,.22);
  background:rgba(255,255,255,.055);
  border-radius:18px;
  padding:15px 16px;
  color:#fff;
  font-weight:800;
  box-shadow:0 14px 34px rgba(0,0,0,.14);
}
.troupe-points span:before{
  content:"•";
  color:#FACF3B;
  margin-right:10px;
}
@media(max-width:900px){
  .troupe-feature{grid-template-columns:1fr;min-height:auto;}
  .troupe-photo-wrap{min-height:58vh;clip-path:none;}
  .troupe-photo-wrap:after{display:none;}
  .troupe-feature-content{padding:70px 7vw;}
  .troupe-feature-content:before{top:40px;right:7vw;}
  .troupe-points{grid-template-columns:1fr;}
}


/* Sécurité anti-spam : champ honeypot invisible */
.form-honeypot{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  .cursor-glow,.foot-trail,.gps-route,.noise{display:none!important}
}


/* v22 - correctif rendu : logo net, non déformé, photos plus propres */
.site-header{
  min-height:88px;
  padding:12px 5.5vw;
  background:linear-gradient(180deg,rgba(13,11,18,.94),rgba(13,11,18,.52));
}
.brand{
  height:74px;
  min-width:0;
  flex:0 0 auto;
  overflow:visible;
}
.brand img{
  width:70px!important;
  height:auto!important;
  max-width:70px!important;
  max-height:78px!important;
  min-width:70px!important;
  object-fit:contain!important;
  object-position:center!important;
  aspect-ratio:auto!important;
  display:block!important;
  flex:0 0 70px!important;
  transform:none!important;
}
.footer-brand img,
.cta-logo{
  height:auto!important;
  object-fit:contain!important;
}
.photo-card img,
.troupe-photo-wrap img{
  filter:saturate(1.06) contrast(1.03)!important;
  transform:none!important;
  backface-visibility:hidden;
}
.troupe-photo-wrap img{
  object-position:center top;
}
/* Le tracé GPS reste discret et ne vient plus concurrencer le logo/menu sur écrans moyens. */
@media(max-width:1200px){
  .gps-route{display:none!important;}
}
@media(max-width:900px){
  .site-header{min-height:72px;padding:10px 5vw;}
  .brand{height:58px;font-size:.95rem;}
  .brand img{width:52px!important;min-width:52px!important;max-width:52px!important;max-height:60px!important;flex-basis:52px!important;}
  .main-nav{top:74px;}
}


/* Logo cleanup */
.brand{
  gap:12px;
}
.brand img{
  background:transparent !important;
  box-shadow:none !important;
  border:none !important;
  object-fit:contain;
  width:auto;
  height:70px;
  display:block;
}

/* Better donation button */
.nav-cta{
  background:linear-gradient(135deg,#ff7b2c,#ff5e00) !important;
  color:#fff !important;
  padding:14px 28px !important;
  border-radius:999px !important;
  font-weight:800 !important;
  letter-spacing:1px;
  text-transform:uppercase;
  box-shadow:0 8px 20px rgba(255,123,44,.35);
  transition:all .3s ease;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:auto !important;
}
.nav-cta:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 30px rgba(255,123,44,.45);
}

/* V26 - Couleur uniforme pour tous les noms de la troupe, style original conserve */
.team-info h4,
.president .team-info h4,
.blabladog .team-info h4{
  color:#ffd0b1 !important;
  background:linear-gradient(90deg,#f07a2b 0%,#ff9c5b 42%,#ffd4a8 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:none;
}

/* V30 - Ajustement navigation pour les ecrans intermediaires : evite le chevauchement du titre et du menu */
.site-header{
  gap:24px;
}
.brand span{
  white-space:nowrap;
  line-height:1.05;
}
.main-nav{
  flex:1 1 auto;
  justify-content:flex-end;
  min-width:0;
}

@media(max-width:1180px){
  .site-header{
    padding:10px 3vw;
    gap:16px;
  }
  .brand{
    gap:10px;
    font-size:.98rem;
  }
  .brand img{
    width:56px!important;
    min-width:56px!important;
    max-width:56px!important;
    max-height:62px!important;
    flex-basis:56px!important;
  }
  .main-nav{
    gap:16px;
    font-size:.76rem;
  }
  .nav-cta{
    padding:12px 18px!important;
    letter-spacing:.04em;
  }
}

@media(max-width:1040px){
  .menu-toggle{
    display:block;
  }
  .main-nav{
    position:absolute;
    right:5vw;
    top:78px;
    display:none;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:18px;
    width:min(320px,90vw);
    background:rgba(13,11,18,.97);
    border:1px solid rgba(255,255,255,.12);
    padding:22px;
    border-radius:18px;
    box-shadow:0 24px 70px rgba(0,0,0,.45);
  }
  .main-nav.open{
    display:flex;
  }
  .nav-cta{
    width:100%;
  }
}

/* v31: mobile quickbar removed */
.mobile-quickbar{display:none!important}
@media(max-width:900px){.mobile-quickbar{display:none!important}.site-footer{padding-bottom:26px!important}}

/* Agenda vacances d'août */
.vacation-layout{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  min-height:590px;
}
.vacation-copy{
  padding:48px 44px 42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    radial-gradient(circle at 15% 15%,rgba(233,106,43,.16),transparent 32%),
    linear-gradient(145deg,rgba(18,8,31,.97),rgba(37,16,55,.93));
}
.vacation-copy>h3{
  margin:10px 0 18px;
  max-width:680px;
  color:#fff;
  font-size:clamp(2rem,4vw,3.8rem);
  line-height:1;
  text-transform:uppercase;
}
.vacation-copy>p:not(.event-tag){
  max-width:680px;
  color:#ddd;
  font-size:1.08rem;
  line-height:1.7;
}
.vacation-notice{
  display:flex;
  gap:18px;
  align-items:center;
  margin:28px 0 34px;
  padding:20px 22px;
  border:1px dashed rgba(250,207,59,.8);
  border-radius:22px;
  background:rgba(250,207,59,.055);
}
.vacation-icon{font-size:2.5rem}
.vacation-notice strong{
  display:block;
  color:#FACF3B;
  font-size:1.08rem;
  text-transform:uppercase;
}
.vacation-notice p{margin:6px 0 0;color:#e8e0ea;line-height:1.5}
.return-event{
  margin-top:0;
  padding:26px 0 0;
  border-top:1px solid rgba(255,255,255,.12);
  grid-template-columns:116px 1fr;
}
.return-event:before{display:none}
.return-event .calendar-date{
  width:104px;
  height:104px;
  border-radius:24px;
}
.return-event .calendar-date span{font-size:3.25rem}
.return-event .calendar-copy h3{font-size:clamp(1.7rem,3vw,2.8rem)}
.vacation-visual{
  margin:0;
  position:relative;
  overflow:hidden;
  background:#1a0b27;
}
.vacation-visual:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(20,8,31,.45),transparent 32%);
}
.vacation-visual img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
@media(max-width:900px){
  .vacation-layout{grid-template-columns:1fr}
  .vacation-copy{padding:36px 26px}
  .vacation-visual{min-height:430px}
  .vacation-visual:after{background:linear-gradient(180deg,rgba(20,8,31,.35),transparent 30%)}
}
@media(max-width:560px){
  .vacation-copy{padding:30px 20px}
  .vacation-notice{align-items:flex-start}
  .return-event{grid-template-columns:1fr}
  .vacation-visual{min-height:330px}
}

/* Bandeau d'information dynamique */
:root{--announcement-height:42px}
.announcement-bar{
  position:fixed;inset:0 0 auto 0;height:var(--announcement-height);z-index:70;
  display:flex;align-items:center;overflow:hidden;color:#fff;text-decoration:none;
  background:linear-gradient(90deg,#e96a2b 0%,#50236d 55%,#e96a2b 100%);
  border-bottom:1px solid rgba(255,255,255,.16);
  box-shadow:0 8px 25px rgba(0,0,0,.22)
}
.announcement-label{
  position:relative;z-index:2;flex:0 0 auto;height:100%;display:flex;align-items:center;
  padding:0 20px;font-size:.75rem;font-weight:950;letter-spacing:.09em;white-space:nowrap;
  background:#facf3b;color:#211325;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)
}
.announcement-window{min-width:0;flex:1;overflow:hidden}
.announcement-track{
  display:flex;align-items:center;width:max-content;white-space:nowrap;
  font-size:.86rem;font-weight:850;letter-spacing:.025em;
  animation:announcement-scroll 22s linear infinite;will-change:transform
}
.announcement-message{padding:0 32px}
.announcement-separator{color:#facf3b;font-size:1rem}
.announcement-bar:hover .announcement-track,.announcement-bar:focus-visible .announcement-track{animation-play-state:paused}
.announcement-bar:focus-visible{outline:3px solid #facf3b;outline-offset:-3px}
@keyframes announcement-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.site-header{top:var(--announcement-height)}
main#top{padding-top:var(--announcement-height)}
@media(max-width:900px){
  :root{--announcement-height:38px}
  .announcement-label{padding:0 13px;font-size:.66rem}
  .announcement-track{font-size:.76rem;animation-duration:18s}
  .announcement-message{padding:0 22px}
  .main-nav{top:calc(82px + var(--announcement-height))}
}
@media(prefers-reduced-motion:reduce){.announcement-track{animation:none;transform:none}.announcement-window{overflow-x:auto}}

/* v41 - agenda vacances et bandeau corrigés */
.vacation-icon{
  flex:0 0 62px;
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  color:#ff6b21;
}
.vacation-icon svg{
  width:58px;
  height:58px;
  fill:none;
  stroke:currentColor;
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 10px rgba(233,106,43,.22));
}
.vacation-visual img{
  object-position:center 54%;
}
.calendar-header{
  position:relative;
  z-index:3;
  overflow:visible;
}
.calendar-header strong{
  white-space:nowrap;
  padding-left:24px;
  text-align:right;
}
@media(max-width:720px){
  .calendar-header{
    align-items:flex-start;
    gap:10px;
    flex-direction:column;
  }
  .calendar-header strong{
    padding-left:0;
    text-align:left;
    white-space:normal;
  }
}
