:root{--pink:#ef2e79;--pink-dark:#d91d65;--pink-soft:#fff0f5;--navy:#0c1730;--muted:#5e6270;--paper:#fff;--surface:#f7f7f9;--line:#e6e6eb;--max:1180px;--shadow:0 20px 55px rgba(13,23,48,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--navy);font-family:Inter,Arial,sans-serif;background:var(--paper);line-height:1.5}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}.wrap{width:min(var(--max),calc(100% - 48px));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{height:104px;padding:0 max(28px,calc((100vw - var(--max))/2));display:flex;align-items:center;gap:34px;background:#fff;position:sticky;top:0;z-index:20;box-shadow:0 3px 14px rgba(12,23,48,.05)}.brand{display:flex;align-items:center;gap:17px;min-width:275px}.brand img:first-child{width:145px;height:78px;object-fit:contain}.brand img:last-child{width:94px;height:84px;object-fit:contain;border-radius:50%}.site-header nav{display:flex;align-items:center;justify-content:center;gap:27px;flex:1}.site-header nav a{font-size:.84rem;font-weight:700;white-space:nowrap;padding:40px 0 14px;position:relative}.site-header nav a.active,.site-header nav a:hover{color:var(--pink)}.site-header nav a.active:after{content:"";height:2px;background:var(--pink);position:absolute;left:0;right:0;bottom:8px}.button{border:0;border-radius:999px;background:linear-gradient(135deg,var(--pink),#ff4a91);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:17px 27px;font-weight:700;cursor:pointer;box-shadow:0 8px 25px rgba(239,46,121,.25);transition:.2s transform,.2s box-shadow}.button:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(239,46,121,.35)}.button-small{padding:13px 21px;font-size:.85rem;white-space:nowrap}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span:not(.sr-only){display:block;width:25px;height:2px;background:var(--navy);margin:5px}
.hero{min-height:605px;position:relative;color:#fff;background:#111 url('public/assets/hero-waterfall-official.png') center/cover no-repeat;overflow:hidden}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,10,22,.9) 0%,rgba(7,10,22,.55) 49%,rgba(7,10,22,.18) 100%)}.hero-content{position:relative;z-index:1;min-height:605px;display:grid;grid-template-columns:1.1fr .65fr;align-items:center;gap:90px;padding-block:55px}.hero-copy h1{font-size:clamp(3.7rem,7vw,6.1rem);line-height:.9;margin:0 0 20px;letter-spacing:-.06em}.hero-copy h1 em{font-style:normal;color:var(--pink)}.hero-copy .eyebrow{font-family:Caveat,cursive;color:#ff4a91;font-size:2.15rem;transform:rotate(-2deg);margin:0 0 18px;position:absolute;top:48px}.hero-copy h1{padding-top:54px}.date-line{border-top:1px solid rgba(255,255,255,.5);padding-top:17px;margin:0 0 12px;font-size:1.22rem;display:flex;align-items:center;gap:12px}.date-line span{color:var(--pink);font-size:1.5rem}.hero-copy>p:not(.eyebrow){max-width:540px;font-size:1.05rem}.hero-copy .button{margin-top:8px}.key-card{background:rgba(255,255,255,.95);color:var(--navy);border-radius:17px;padding:7px 22px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.key-card>div{display:flex;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.key-card>div:last-child{border:0}.round-icon,.step-icon{display:grid;place-items:center;border-radius:50%;background:var(--pink-soft);color:var(--pink);flex:0 0 auto}.round-icon{width:50px;height:50px;font-size:1.5rem}.key-card p{margin:0}.key-card strong{display:block;font-size:1.2rem}.key-card small{display:block;color:var(--muted);margin-top:2px}
.button-outline{background:transparent;color:var(--pink);border:1.5px solid var(--pink);box-shadow:none;padding:13px 22px;font-size:.85rem}.section{padding:28px 0}.section-title{text-align:center;text-transform:uppercase;font-size:1.2rem;margin:0 0 26px}.section-title:after{content:"";display:block;width:34px;height:3px;border-radius:2px;background:var(--pink);margin:8px auto 0}.timeline{display:grid;grid-template-columns:repeat(5,1fr);position:relative}.timeline:before{content:"";position:absolute;height:2px;border-top:2px dotted var(--pink);left:8%;right:8%;top:36px}.timeline article{text-align:center;padding:0 10px;position:relative}.step-icon{width:72px;height:72px;background:linear-gradient(135deg,#f84988,var(--pink));color:white;font-size:1.8rem;margin:0 auto 14px;box-shadow:0 6px 20px rgba(239,46,121,.18)}.timeline strong{font-size:.82rem;color:var(--pink)}.timeline h3{font-size:.9rem;margin:4px 0}.timeline p{font-size:.76rem;color:var(--muted);margin:0}
.details{display:grid;grid-template-columns:1fr .82fr 1.08fr;gap:20px}.panel,.photo-card{border-radius:14px;background:var(--surface);overflow:hidden;padding:18px;min-height:360px}.panel .section-title{margin-bottom:15px}.map-placeholder{height:170px;border-radius:12px;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 30% 30%,#ddf3e1,#bedfc8 40%,#b6dcea 41%,#d5e8ec 55%,#cfe5d2);position:relative;overflow:hidden}.map-placeholder:after{content:"";position:absolute;width:150%;height:3px;background:var(--pink);transform:rotate(-14deg);left:-24%;top:55%;box-shadow:25px -40px 0 var(--pink)}.map-placeholder span,.map-placeholder strong{position:relative;z-index:1;background:rgba(255,255,255,.85);padding:2px 8px}.placeholder-row{display:flex;justify-content:space-between;font-size:.8rem;font-weight:700;padding:14px 5px}.disabled{width:100%;padding:11px;opacity:.7;cursor:not-allowed}.practical ul{list-style:none;padding:0;margin:0}.practical li{display:flex;gap:12px;margin:14px 0}.practical li>span{color:var(--pink);width:25px;text-align:center}.practical strong,.practical small{display:block}.practical strong{font-size:.83rem}.practical small{font-size:.72rem;color:var(--muted)}.photo-card{padding:0;position:relative;background:#17233a}.photo-card img{width:100%;height:100%;object-fit:cover}.photo-card>div{position:absolute;left:20px;right:20px;bottom:18px;border-radius:999px;background:linear-gradient(135deg,var(--pink),#f94b92);color:#fff;padding:13px 20px;display:flex;justify-content:space-between;align-items:center;font-size:.83rem}.photo-card span{font-size:.72rem}
.partners{text-align:center;padding-bottom:42px}.partner-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:5px;overflow:hidden}.partner-grid div{min-height:85px;display:grid;place-items:center;border-right:1px solid var(--line);color:#9a9daa;font-weight:700;font-size:.8rem}.partner-grid div:last-child{border:0}.partners>p{color:var(--pink);font-size:.82rem;margin-top:18px}.final-cta{color:#fff;background:linear-gradient(135deg,#da1f66,#f34a8a);padding:25px 0}.final-cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px}.final-cta h2{margin:0 0 5px;font-size:1.35rem}.final-cta p{margin:0;font-size:.85rem}.final-cta .button{border:1px solid #fff;background:transparent;box-shadow:none}footer{background:#071a35;color:#fff;padding:20px 0;font-size:.7rem}footer .wrap{display:flex;justify-content:space-between;align-items:center}footer p{margin:0}footer a{margin-left:25px}.toast{position:fixed;z-index:50;left:50%;bottom:25px;transform:translate(-50%,30px);background:#101b31;color:#fff;border-radius:999px;padding:12px 20px;font-size:.84rem;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.site-header{gap:18px}.brand{min-width:auto}.brand img:first-child{width:105px}.brand img:last-child{width:75px}.site-header nav{gap:14px}.site-header nav a{font-size:.72rem}.hero-content{gap:40px}.timeline{grid-template-columns:repeat(3,1fr);row-gap:28px}.timeline:before{display:none}.details{grid-template-columns:1fr 1fr}.photo-card{grid-column:1/-1;height:360px}.partner-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.wrap{width:min(100% - 30px,var(--max))}.site-header{height:78px;padding:0 15px}.brand img:first-child{width:91px;height:60px}.brand img:last-child{width:62px;height:62px}.menu-toggle{display:block;margin-left:auto}.site-header>.registration-link{display:none}.site-header nav{position:absolute;display:none;left:0;right:0;top:78px;padding:10px 22px 24px;background:#fff;box-shadow:0 12px 20px rgba(0,0,0,.1);align-items:stretch}.site-header nav.open{display:flex;flex-direction:column;gap:0}.site-header nav a{padding:11px 0}.site-header nav a.active:after{display:none}.hero,.hero-content{min-height:auto}.hero-content{grid-template-columns:1fr;padding-block:70px 45px}.hero-copy .eyebrow{position:static}.hero-copy h1{padding-top:0;font-size:3.8rem}.key-card{max-width:530px}.timeline{grid-template-columns:repeat(2,1fr)}.details{grid-template-columns:1fr}.photo-card{grid-column:auto}.final-cta .wrap,footer .wrap{flex-direction:column;align-items:flex-start}.final-cta .button{width:100%}footer .wrap{gap:12px}footer a{margin:0 20px 0 0}}
@media(max-width:480px){.brand{gap:8px}.brand img:first-child{width:80px}.brand img:last-child{width:56px}.hero-copy h1{font-size:3.15rem}.hero-copy .eyebrow{font-size:1.7rem}.date-line{font-size:1rem}.hero-copy .button{width:100%;font-size:.86rem}.key-card{padding:4px 17px}.key-card strong{font-size:1rem}.timeline{grid-template-columns:1fr}.timeline article{display:grid;grid-template-columns:66px 1fr;text-align:left;column-gap:15px}.step-icon{grid-row:1/5;width:62px;height:62px}.partner-grid{grid-template-columns:1fr 1fr}.photo-card>div{border-radius:13px;flex-direction:column;align-items:flex-start;gap:2px}.final-cta h2{font-size:1.15rem}}
@media(min-width:781px){.site-header nav a{display:flex;align-items:center;padding:13px 0}.site-header nav a.active:after{bottom:4px}}
.gallery-teaser{background:linear-gradient(135deg,#0b1932,#17294a);color:#fff;padding:48px 0}.gallery-teaser-inner{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:54px}.gallery-kicker{display:block;color:#ff6aa0;font-family:Caveat,cursive;font-size:1.65rem}.gallery-teaser h2{font-size:2rem;line-height:1.15;margin:3px 0 12px}.gallery-teaser p{color:#d6dae5;max-width:500px;margin:0 0 22px}.gallery-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:220px}.gallery-preview div{display:grid;place-items:center;text-align:center;border:1px dashed rgba(255,255,255,.42);border-radius:14px;background:linear-gradient(145deg,rgba(239,46,121,.26),rgba(255,255,255,.06));color:#f5c0d4;font-size:.82rem;font-weight:700}.gallery-preview div:nth-child(2){transform:translateY(-10px)}.gallery-page{min-height:calc(100vh - 167px);background:#fafafd}.gallery-hero{color:#fff;padding:58px 0 64px;background:linear-gradient(90deg,rgba(7,10,22,.91),rgba(7,10,22,.52)),url('public/assets/hero-waterfall-official.png') center 48%/cover no-repeat}.gallery-hero .back-link{display:inline-block;margin-bottom:34px;font-size:.86rem;font-weight:700}.gallery-hero .eyebrow{font-family:Caveat,cursive;color:#ff5a99;font-size:1.9rem;margin:0}.gallery-hero h1{font-size:clamp(3rem,7vw,5.3rem);letter-spacing:-.05em;line-height:.95;margin:3px 0 14px}.gallery-hero p:last-child{max-width:600px;margin:0;font-size:1.05rem}.albums{padding-block:50px 70px}.gallery-empty{max-width:720px;margin:auto;padding:50px 30px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 45px rgba(13,23,48,.08)}.gallery-empty-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:var(--pink-soft);color:var(--pink);font-size:2rem}.gallery-empty h3{font-size:1.35rem;margin:0 0 8px}.gallery-empty p{color:var(--muted);margin:0 auto 24px;max-width:500px}.gallery-empty .button-outline{display:inline-flex}
@media(max-width:1050px) and (min-width:781px){.site-header nav{gap:10px}.site-header nav a{font-size:.68rem}}
@media(max-width:780px){.gallery-teaser-inner{grid-template-columns:1fr}.gallery-preview{min-height:180px}.gallery-hero{padding:42px 0 52px}.gallery-hero .back-link{margin-bottom:28px}}
@media(max-width:480px){.gallery-preview{grid-template-columns:1fr;min-height:auto}.gallery-preview div{min-height:105px}.gallery-preview div:nth-child(2){transform:none}.gallery-empty{padding:38px 20px}.gallery-empty .button{width:100%}}
.final-cta{min-height:clamp(420px,44vw,720px);display:flex;align-items:center;padding:70px 0;background-image:linear-gradient(90deg,rgba(7,19,40,.88) 0%,rgba(7,19,40,.62) 43%,rgba(197,21,91,.2) 100%),url('public/assets/community-aerial.png');background-position:center;background-size:cover}.final-cta .wrap{width:min(var(--max),calc(100% - 48px));padding:32px 36px;border-radius:18px;background:linear-gradient(100deg,rgba(8,25,53,.76),rgba(225,28,103,.68));box-shadow:0 18px 55px rgba(4,13,29,.25);backdrop-filter:blur(3px)}.final-cta h2{font-size:clamp(1.45rem,2.5vw,2.25rem);max-width:680px}.final-cta p{font-size:1rem}@media(max-width:780px){.final-cta{min-height:500px;background-position:58% center}.final-cta .wrap{width:min(100% - 30px,var(--max));padding:28px 24px}.final-cta .button{margin-top:18px}}
.final-cta .wrap{padding:0;background:transparent;box-shadow:none;backdrop-filter:none;border-radius:0}.final-cta h2,.final-cta p{text-shadow:0 2px 14px rgba(0,0,0,.65)}
.partners-hero{background-image:linear-gradient(90deg,rgba(7,10,22,.9),rgba(7,10,22,.5)),url('public/assets/community-aerial.png');background-position:center 47%}.partner-empty .gallery-empty-icon{font-size:1.65rem}
.gallery-teaser-inner{display:block;text-align:center}.gallery-teaser p{margin:0 auto 22px}
.gpx-map{display:block;position:relative;padding:0;background:radial-gradient(circle at 24% 30%,#e5f5e7,#c5e3ce 45%,#b9dce7 46%,#d7e9ed 62%,#d8ebdc);overflow:hidden}.gpx-map:after{display:none}.map-status{position:absolute;left:10px;bottom:9px;background:rgba(255,255,255,.9);border-radius:999px;padding:4px 9px;font-size:.68rem;font-weight:700;color:var(--navy)}.gpx-download{width:100%;padding:11px}@keyframes track-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.ticket-link:not([href]),.gpx-download:not([href]){cursor:default;box-shadow:none;opacity:.85}.ticket-link:not([href]):hover,.gpx-download:not([href]):hover{transform:none;box-shadow:none}footer span+span{margin-left:25px}@media(max-width:780px){.site-header>.ticket-link{display:none}footer span+span{margin-left:0;display:block;margin-top:6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gpx-map.loaded polyline{animation:none}}
@media(min-width:1051px){.timeline{grid-template-columns:repeat(5,minmax(0,1fr))}}
.concert-section{padding:12px 0 36px}.concert-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:clamp(24px,5vw,72px);align-items:center;padding:32px;border-radius:18px;background:linear-gradient(125deg,#101b35,#263353 55%,#e53279);color:#fff;box-shadow:var(--shadow)}.concert-kicker{margin:0 0 12px;color:#ff9fc5;font-weight:700;font-size:.9rem}.concert-copy h2{margin:0;font-size:clamp(2rem,4vw,3.8rem);line-height:1.06}.concert-copy h2 span{display:block;color:#ff75ab}.concert-style{font-size:clamp(1.1rem,2vw,1.55rem);font-weight:700;margin:14px 0 22px}.concert-time{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin:0 0 18px}.concert-time strong{font-size:2.25rem;color:#ff9fc5}.concert-copy>p:last-child{margin-bottom:0}.concert-poster{display:block;width:100%;max-width:340px;margin-inline:auto;border-radius:8px;overflow:hidden;box-shadow:0 16px 35px rgba(0,0,0,.28)}.concert-poster img{display:block;width:100%;height:auto}.concert-poster:focus-visible{outline:3px solid #fff;outline-offset:4px}@media(max-width:780px){.concert-card{grid-template-columns:1fr;padding:24px;gap:24px}.concert-copy h2{font-size:clamp(2rem,7vw,3rem)}}@media(max-width:480px){.concert-card{padding:18px}.concert-time{gap:8px}.concert-time strong{font-size:2rem}}

/* Release candidate: programme et parcours GPX */
.timeline{grid-template-columns:repeat(6,minmax(0,1fr));gap:0}.timeline:before{left:calc(100% / 12);right:calc(100% / 12)}.timeline article{min-width:0}
.details{grid-template-columns:repeat(2,minmax(0,1fr))}.course{grid-column:1/-1;min-height:0}.course-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.course-stats>div{border-radius:12px;background:var(--pink-soft);padding:14px 18px}.course-stats span,.course-stats strong{display:block}.course-stats span{text-transform:uppercase;font-size:.72rem;font-weight:700;color:var(--muted)}.course-stats strong{font-size:1.5rem;color:var(--navy)}.gpx-map{height:430px;background:#e4e9e7;border-radius:12px;z-index:0}.gpx-map:after{display:none}.map-status{position:static;display:block;margin:8px 0 16px;padding:0;background:transparent;font-size:.76rem}.elevation-panel{margin:18px 0}.elevation-panel[hidden]{display:none}.elevation-panel h3{font-size:1rem;margin:0 0 8px}.elevation-panel svg{display:block;width:100%;height:auto;max-height:220px;overflow:visible}.elevation-panel svg text{fill:var(--muted);font:12px Inter,Arial,sans-serif}.profile-grid{stroke:#d8dce5;stroke-width:1}.profile-line{fill:none;stroke:var(--pink);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.course-note{font-size:.77rem;color:var(--muted);margin:0 0 14px}.course .gpx-download{width:auto}
@media(max-width:1050px){.timeline{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:28px}.timeline:before{display:none}.timeline article{padding-inline:16px}.photo-card{grid-column:auto;height:auto}}
@media(max-width:780px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.details{grid-template-columns:1fr}.course{grid-column:auto}.gpx-map{height:350px}}
@media(max-width:480px){.timeline{grid-template-columns:1fr;gap:16px}.timeline article{padding-inline:0}.timeline article .step-icon{margin:0}.course-stats{gap:8px}.course-stats>div{padding:12px}.course-stats strong{font-size:1.15rem}.gpx-map{height:300px}.course .gpx-download{width:100%}}

/* Infos pratiques : pleine largeur après retrait du bloc photo */
.details{grid-template-columns:minmax(0,1fr)}
.practical{min-height:0;padding:clamp(22px,3vw,36px)}
.practical .section-title{font-size:1.3rem;margin-bottom:24px}
.practical ul{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:24px;row-gap:0}
.practical li{grid-column:span 2;align-items:flex-start;gap:15px;margin:0;padding:18px 10px;border-bottom:1px solid var(--line)}
.practical li:nth-child(n+4){grid-column:span 3;border-bottom:0}
.practical li>span{display:flex;justify-content:center;align-items:flex-start;font-size:1.7rem;line-height:1;width:40px;flex:0 0 40px}
.practical li:nth-child(3)>span{font-size:2.2rem}
.practical li>div{min-width:0}
.practical strong{font-size:1rem;line-height:1.35}
.practical small{font-size:.88rem;line-height:1.5;margin-top:5px}
@media(max-width:900px){.practical ul{grid-template-columns:repeat(2,minmax(0,1fr))}.practical li,.practical li:nth-child(n+4){grid-column:span 1}.practical li:last-child{grid-column:1/-1;border-bottom:0}.practical li:nth-child(4){border-bottom:1px solid var(--line)}}
@media(max-width:560px){.practical{padding:22px}.practical ul{grid-template-columns:1fr}.practical li,.practical li:nth-child(n+4),.practical li:last-child{grid-column:auto}.practical li:nth-child(4){border-bottom:1px solid var(--line)}.practical li{padding:16px 0}.practical li:last-child{border-bottom:0}.practical strong{font-size:.94rem}.practical small{font-size:.82rem}}
