@font-face{font-family:'Bebas Neue';font-weight:400;font-display:swap;src:url('../fonts/bebas-neue.woff2') format('woff2')}
@font-face{font-family:'Amaranth';font-weight:400;font-display:swap;src:url('../fonts/amaranth-400.woff2') format('woff2')}
@font-face{font-family:'Amaranth';font-weight:700;font-display:swap;src:url('../fonts/amaranth-700.woff2') format('woff2')}
/* fonte variable, axes wght 100-900 et wdth 50-150 */
@font-face{font-family:'Anybody';src:url('../fonts/anybody.woff2') format('woff2');font-weight:100 900;font-stretch:50% 150%;font-display:swap}

:root{
  --red:#D42525;--red-2:#B31C1F;--bordeaux:#7C1518;--ink:#2B1414;--ink-soft:#6a4038;
  --cream:#FCF4E6;--cream-2:#F7E9CF;--white:#fff;--gold:#E7A32E;--gold-2:#F4C766;
  --disp:'Bebas Neue',system-ui,sans-serif;--body:'Amaranth',system-ui,sans-serif;
  --wrap:1180px;--gutter:clamp(1.1rem,4vw,2.5rem);--radius:16px;--header-h:74px;
  --shadow:0 20px 44px -18px rgba(80,10,12,.4);
}
*,*::before,*::after{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--body);color:var(--ink);background:var(--cream);line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{list-style:none;padding:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
h1,h2,h3,h4{font-family:var(--disp);font-weight:400;line-height:.92;letter-spacing:.02em}
.eyebrow{display:inline-block;font-family:var(--disp);font-size:1.15rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.title{font-size:clamp(3rem,8vw,6rem);text-transform:uppercase;color:var(--red);letter-spacing:.02em;line-height:.86}
.title .w{color:var(--ink)}
.tickets .title,.footer .title{color:#fff}
.lead{font-family:var(--body);font-size:clamp(1.05rem,1.7vw,1.25rem);color:var(--ink-soft);max-width:60ch}
.center{text-align:center;margin-inline:auto}.center .lead{margin-inline:auto}

/* rayures toldo */
.stripes{height:16px;background:repeating-linear-gradient(-45deg,var(--red) 0 18px,var(--cream) 18px 36px)}
.stripes--gold{background:repeating-linear-gradient(-45deg,var(--red) 0 18px,var(--gold) 18px 36px)}

.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--disp);font-size:1.4rem;letter-spacing:.06em;text-transform:uppercase;
  background:var(--red);color:#fff;padding:.5em 1.4em;border-radius:8px;box-shadow:0 8px 20px -8px rgba(180,20,20,.6);transition:.16s}
.btn:hover{transform:translateY(-3px);background:var(--red-2);box-shadow:0 14px 26px -10px rgba(180,20,20,.75)}
.btn--gold{background:var(--gold);color:#3c2408}.btn--gold:hover{background:var(--gold-2)}
.btn--ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2.5px rgba(255,255,255,.75)}
.btn--ghost:hover{background:#fff;color:var(--red)}
.btn--ink{background:transparent;color:var(--red);box-shadow:inset 0 0 0 2.5px var(--red)}
.btn--ink:hover{background:var(--red);color:#fff}
.arrow{transition:transform .16s}.btn:hover .arrow{transform:translateX(4px)}

/* ===== HEADER ===== */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);display:flex;align-items:center;transition:.28s}
.site-header.scrolled{background:var(--cream);box-shadow:0 2px 18px -10px rgba(80,10,12,.6)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--disp);font-size:1.7rem;letter-spacing:.04em;color:#fff}
.site-header.scrolled .brand{color:var(--red)}
.brand img{width:44px;height:44px}
.main-nav ul{display:flex;align-items:center;gap:1.4rem}
.main-nav a{font-family:var(--disp);font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;position:relative;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.site-header.scrolled .main-nav a{color:var(--ink);text-shadow:none}
.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--gold);transform:scaleX(0);transition:transform .2s}
.main-nav a:hover::after{transform:scaleX(1)}
.main-nav__foot{display:none}
.header-cta .btn{font-size:1.2rem;padding:.4em 1em}
.burger{display:none;width:46px;height:40px;border-radius:8px;position:relative;background:rgba(255,255,255,.16)}
.site-header.scrolled .burger{background:rgba(212,37,37,.12)}
.burger span{position:absolute;left:11px;right:11px;height:3px;background:#fff;border-radius:2px;transition:.25s}
.site-header.scrolled .burger span{background:var(--red)}
.burger span:nth-child(1){top:13px}.burger span:nth-child(2){top:19px}.burger span:nth-child(3){top:25px}
body.nav-open .burger span:nth-child(1){top:19px;transform:rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){top:19px;transform:rotate(-45deg)}

/* ===== HERO ===== */
/* 250vh de course, visuel collé en haut pendant le défilement */
.hero{position:relative;height:250vh;color:#fff;text-align:center;background:#1a0808}
.hero__stick{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.hero__media{position:absolute;inset:0;z-index:0;background:#1a0808}
.hero__media video,.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;filter:brightness(1.22) saturate(1.12) contrast(1.04)}
.hero__media::after{content:"";position:absolute;inset:0;background:
  radial-gradient(120% 90% at 50% 30%,rgba(212,37,37,.10),transparent 65%),
  linear-gradient(180deg,rgba(30,8,8,.10),rgba(124,21,24,.18))}
.hero__inner{position:relative;z-index:3;width:100%;max-width:var(--wrap);padding-inline:var(--gutter);padding-bottom:clamp(1.4rem,3.5vh,2.4rem)}
.hero__badge{width:clamp(96px,15vw,150px);margin:0 auto .6rem;filter:drop-shadow(0 8px 22px rgba(0,0,0,.55))}
.ribbon{display:inline-block;font-family:var(--disp);letter-spacing:.4em;text-transform:uppercase;font-size:1rem;color:#fff;
  background:var(--red);padding:.35em 1.1em .3em;border-radius:4px;box-shadow:0 6px 16px -6px rgba(0,0,0,.5);margin-bottom:.8rem}
.hero__title{font-size:clamp(4rem,17vw,12rem);text-transform:uppercase;color:#fff;letter-spacing:.03em;line-height:.8;text-shadow:0 6px 30px rgba(0,0,0,.5)}
.hero__title .of{color:var(--gold-2)}
.hero__tagline{font-family:var(--body);font-weight:700;font-size:clamp(1.05rem,2.2vw,1.45rem);margin-top:.7rem;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.hero__meta{display:flex;flex-direction:column;align-items:center;gap:.55rem;margin-top:1.3rem}
.hero__dates{display:flex;gap:.55rem;justify-content:center}
.chip{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--disp);letter-spacing:.1em;font-size:1.05rem;text-transform:uppercase;
  background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.55);padding:.35em .9em .3em;border-radius:6px}
.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--gold)}
.countdown{display:flex;gap:clamp(.5rem,2vw,1rem);justify-content:center;flex-wrap:wrap;margin-top:1.6rem}
.cd{min-width:84px;padding:.55rem .6rem .4rem;border-radius:10px;background:rgba(0,0,0,.28);border:2px solid rgba(255,255,255,.3)}
.cd b{display:block;font-family:var(--disp);font-size:clamp(2rem,4.5vw,3rem);line-height:1;color:#fff}
.cd span{display:block;font-family:var(--body);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2);margin-top:.3rem}
.hero__cta{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:1.8rem}
.hero__stripes{position:absolute;left:0;right:0;bottom:0;z-index:2}

/* ===== SECTIONS (coupes en biais) ===== */
.section{position:relative;padding-block:clamp(3.5rem,8vw,7rem)}
.cut-top{clip-path:polygon(0 clamp(24px,4vw,60px),100% 0,100% 100%,0 100%);margin-top:calc(-1*clamp(24px,4vw,60px));padding-top:clamp(5rem,10vw,8rem)}
.cut-top-r{clip-path:polygon(0 0,100% clamp(24px,4vw,60px),100% 100%,0 100%);margin-top:calc(-1*clamp(24px,4vw,60px));padding-top:clamp(5rem,10vw,8rem)}

.intro{background:var(--white)}
.intro .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.stat-row{display:flex;gap:2rem;flex-wrap:wrap;margin-top:1.6rem}
.stat b{font-family:var(--disp);font-size:3.4rem;color:var(--red);display:block;line-height:.9}
.stat span{font-size:.9rem;color:var(--ink-soft)}
.poster{aspect-ratio:3/4;border-radius:12px;box-shadow:var(--shadow);position:relative;overflow:hidden;
  background:var(--red);display:grid;place-items:center;padding:1.5rem}
.poster::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.09) 0 22px,transparent 22px 44px)}
.poster::after{content:"";position:absolute;inset:14px;border:2px solid rgba(255,255,255,.6);border-radius:8px}
.poster img{position:relative;width:66%}

.prog{background:var(--cream)}
.prog__tabs{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.2rem}
.prog__tab{font-family:var(--disp);font-size:1.5rem;letter-spacing:.05em;text-transform:uppercase;padding:.35em 1.3em;border-radius:8px;background:#fff;color:var(--red);box-shadow:inset 0 0 0 2.5px var(--red);transition:.16s}
.prog__tab[aria-selected="true"]{background:var(--red);color:#fff;box-shadow:0 10px 22px -8px rgba(180,20,20,.55)}
.prog__panel{display:none}.prog__panel.is-active{display:block;animation:fade .4s both}
.stage-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.stage{background:#fff;border-radius:var(--radius);padding:1.3rem;box-shadow:var(--shadow);border-top:6px solid var(--red)}
.stage__name{font-family:var(--disp);font-size:2rem;letter-spacing:.04em;color:var(--red);text-transform:uppercase;margin-bottom:.8rem;line-height:.9}
.stage__name span{display:block;font-family:var(--body);font-weight:700;font-size:.72rem;letter-spacing:.2em;color:var(--ink-soft)}
.setlist{display:flex;flex-direction:column}
.set a{display:flex;align-items:center;gap:.9rem;padding:.6rem .5rem;border-bottom:1px dashed rgba(43,20,20,.14);transition:.14s}
.stage .set:last-child a{border-bottom:0}
.set a:hover{background:var(--cream);padding-left:.9rem}
.set__time{font-family:var(--disp);font-size:1.35rem;color:var(--gold);min-width:58px;letter-spacing:.02em}
.set__name{font-family:var(--disp);font-size:1.55rem;letter-spacing:.03em;color:var(--ink);text-transform:uppercase;flex:1;line-height:1}
.set.is-head .set__name{color:var(--red)}
.set__badge{font-family:var(--body);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--gold);padding:.28em .55em;border-radius:5px}

.tickets{background:var(--red);color:#fff}
.tickets .eyebrow{color:var(--gold-2)}
.tickets .lead{color:rgba(255,255,255,.92)}
.mystery{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#3c2408;border-radius:18px;padding:clamp(1.5rem,3.5vw,2.3rem);margin-bottom:1.5rem;box-shadow:var(--shadow);position:relative;overflow:hidden}
.mystery::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.16) 0 20px,transparent 20px 40px);opacity:.5}
.mystery__main{position:relative;display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;justify-content:space-between}
.mystery__tag{position:relative;display:inline-block;font-family:var(--disp);letter-spacing:.14em;font-size:1rem;text-transform:uppercase;background:rgba(60,36,8,.18);padding:.35em 1em;border-radius:6px;margin-bottom:.7rem}
.mystery h3{font-size:clamp(2.2rem,4.5vw,3.2rem);text-transform:uppercase;line-height:.9}
.mystery__price{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.mystery__price .old{font-family:var(--disp);font-size:1.8rem;opacity:.6;text-decoration:line-through}
.mystery__price .new{font-family:var(--disp);font-size:clamp(3rem,6.5vw,4.4rem);line-height:.85}
.mystery__price .btn{background:#3c2408;color:var(--gold-2)}.mystery__price .btn:hover{background:#241004}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.3rem}
.ticket{background:#fff;color:var(--ink);border-radius:var(--radius);padding:1.8rem 1.5rem;box-shadow:var(--shadow);display:flex;flex-direction:column;position:relative;overflow:hidden}
.ticket--feature{background:var(--bordeaux);color:#fff;box-shadow:0 0 0 3px var(--gold),var(--shadow)}
.ticket .kind{font-family:var(--disp);font-size:1.15rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.ticket--feature .kind{color:var(--gold-2)}
.ticket .price{font-family:var(--disp);font-size:3.2rem;line-height:.9;margin:.2rem 0 1rem;color:var(--red)}
.ticket--feature .price{color:var(--gold-2)}
.ticket ul{display:flex;flex-direction:column;gap:.45rem;margin:0 0 1.2rem;font-size:.96rem}
.ticket li{display:flex;gap:.5rem}.ticket li::before{content:"✚";color:var(--gold);font-weight:700}
.ticket .btn{width:100%;justify-content:center;margin-top:auto}
.tickets-note{text-align:center;color:rgba(255,255,255,.85);font-size:.85rem;margin-top:.4rem}
.tickets-sub{font-family:var(--disp);font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:.04em;text-transform:uppercase;color:var(--gold-2);text-align:center;margin:2.6rem 0 1.4rem}
.kids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem;max-width:760px;margin-inline:auto}
/* pass enfant centré sur la 2e ligne */
.kids .kidcard--free{grid-column:1/-1;width:calc(50% - .65rem);margin-inline:auto}
@media (max-width:620px){.kids{grid-template-columns:1fr}.kids .kidcard--free{width:100%}}
.kidcard{background:#fff;color:var(--ink);border-radius:var(--radius);padding:1.7rem 1.4rem;text-align:center;box-shadow:var(--shadow)}
.kidcard--free{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#3c2408}
.kidcard .emoji{font-size:2.4rem}
.kidcard h4{font-family:var(--disp);font-size:2rem;letter-spacing:.04em;text-transform:uppercase;color:var(--red);margin:.3rem 0 .1rem;line-height:.9}
.kidcard--free h4{color:#3c2408}
.kidcard .age{font-weight:700;font-size:.9rem;color:var(--ink-soft)}
.kidcard--free .age{color:#5a3a08}
.kidcard .kprice{font-family:var(--disp);font-size:2.6rem;color:var(--red);line-height:.9;margin-top:.5rem}
.kidcard--free .kprice{color:#3c2408}
.kidcard .kprice small{display:block;font-family:var(--body);font-size:.78rem;font-weight:700;color:var(--ink-soft);margin-top:.3rem;line-height:1.35}
.kidcard--free .kprice small{color:#5a3a08}

.footer{background:var(--bordeaux);color:#f3ded0;padding-top:0}
.footer .stripes{margin-bottom:3rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.4rem;padding-bottom:2.4rem;border-bottom:1px solid rgba(255,255,255,.14)}
.footer-brand img{width:84px;margin-bottom:1rem}
.footer-brand p{color:#e0c2b4;max-width:34ch;font-size:.95rem}
.footer h4{font-family:var(--disp);font-size:1.6rem;letter-spacing:.06em;color:var(--gold-2);text-transform:uppercase;margin-bottom:.8rem}
.footer-col a{display:block;color:#efdccf;padding:.24em 0;transition:.14s}
.footer-col a:hover{color:var(--gold-2);transform:translateX(4px)}
.socials{display:flex;gap:.7rem;margin-top:1rem}
.socials a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#f3ded0;transition:.2s}
.socials a:hover{background:var(--gold);color:#3c2408;transform:translateY(-3px)}
.footer-bottom{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1.4rem 0;font-size:.85rem;color:#cba99b}
.footer-bottom a{color:#e5c9bb}

@keyframes fade{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}.reveal.in{opacity:1;transform:none}

/* ===== PAGES INTERNES ===== */
.page-hero{background:var(--red);color:#fff;text-align:center;position:relative;
  background-image:radial-gradient(circle at 20px 20px,rgba(252,244,230,.07) 5px,transparent 6px);
  background-size:40px 40px;
  padding:calc(var(--header-h) + clamp(2.5rem,6vw,4.5rem)) 0 clamp(2.5rem,5vw,4rem)}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:16px;background:repeating-linear-gradient(-45deg,var(--gold) 0 18px,var(--red) 18px 36px)}
.page-hero .eyebrow{color:var(--gold-2)}
.page-hero h1{font-size:clamp(2.6rem,7vw,5rem);text-transform:uppercase;color:#fff;letter-spacing:.02em}
.page-hero .meta{font-family:var(--disp);font-size:1.3rem;letter-spacing:.08em;color:var(--gold-2);margin-top:.4rem}
.page-shell{padding-bottom:clamp(3rem,7vw,6rem);min-height:60vh}
.entry{max-width:760px;margin:2.5rem auto 0;font-size:1.06rem;color:var(--ink)}
.entry>*{margin-bottom:1.2rem}
.entry h2{font-family:var(--disp);font-size:2rem;letter-spacing:.03em;text-transform:uppercase;color:var(--red);margin-top:2rem}
.entry a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.entry a.btn,.entry a.btn:hover{color:#fff;text-decoration:none}
.entry a.btn--ink,.entry a.btn--ink:hover{color:var(--red)}
.entry a.btn--ink:hover{color:#fff}
.entry ul{padding-left:1.2rem;display:flex;flex-direction:column;gap:.5rem}
.entry ul li{list-style:none;position:relative;padding-left:1.2rem}
.entry ul li::before{content:"✚";color:var(--gold);position:absolute;left:0}
.entry iframe{width:100%;border:0;border-radius:var(--radius);box-shadow:var(--shadow)}
.back-link{display:inline-flex;gap:.4rem;margin-top:2rem;font-family:var(--disp);font-size:1.3rem;letter-spacing:.05em;color:var(--red)}

.pagination{display:flex;gap:.5rem;justify-content:center;margin-top:3rem}
.pagination a,.pagination span{min-width:44px;height:44px;display:grid;place-items:center;border-radius:8px;background:#fff;color:var(--red);box-shadow:inset 0 0 0 2px var(--red);font-family:var(--disp);font-size:1.2rem}
.pagination .current{background:var(--red);color:#fff}

.error-num{font-family:var(--disp);font-size:clamp(6rem,22vw,13rem);color:var(--red);line-height:.85}

/* itinéraire */
.gomap{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2.5rem}
.gomap__info{background:#fff;border-radius:var(--radius);padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center}
.gomap__addr{font-family:var(--disp);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--red);text-transform:uppercase;line-height:.95}
.gomap__addr span{display:block;font-family:var(--body);font-weight:700;font-size:.95rem;color:var(--ink-soft);margin-top:.5rem}
.gomap__btns{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.3rem}
.gomap__map{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-height:300px}
.gomap__map iframe{width:100%;height:100%;min-height:300px;border:0;display:block}

/* infos cards */
.infocards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;margin-top:2.5rem}
.infocard{background:#fff;border-radius:var(--radius);padding:1.6rem 1.4rem;text-align:center;box-shadow:var(--shadow);border-top:5px solid var(--gold)}
.infocard .ico{width:52px;height:52px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:50%;background:rgba(212,37,37,.1);color:var(--red)}
.infocard h3{font-family:var(--disp);font-size:1.6rem;text-transform:uppercase;color:var(--red);margin-bottom:.3rem;letter-spacing:.03em}
.infocard p{color:var(--ink-soft);font-size:.96rem}

/* FAQ */
.faq{max-width:760px;margin:2.5rem auto 0;display:flex;flex-direction:column;gap:.7rem}
.faq details{background:#fff;border-radius:12px;box-shadow:var(--shadow);overflow:hidden;border-left:5px solid var(--red)}
.faq summary{cursor:pointer;list-style:none;padding:1rem 1.3rem;font-family:var(--disp);font-size:1.45rem;letter-spacing:.02em;color:var(--red);display:flex;justify-content:space-between;align-items:center;gap:1rem;text-transform:uppercase}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:1.8rem;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq__a{padding:0 1.3rem 1.2rem;color:var(--ink-soft)}
.faq .faq__a p+p{margin-top:.6rem}

/* timetable imprimable */
.timetable{display:grid;gap:2.2rem;max-width:960px;margin:2.5rem auto 0}
.tt-day h2{font-family:var(--disp);font-size:clamp(2rem,4vw,2.8rem);color:var(--red);text-transform:uppercase;letter-spacing:.03em}
.tt-day .tt-sub{font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1rem}
.tt-stages{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.tt-stage{background:#fff;border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow);border-top:5px solid var(--red)}
.tt-stage h3{font-family:var(--disp);font-size:1.5rem;color:var(--red);text-transform:uppercase;margin-bottom:.6rem;border-bottom:2px dashed var(--gold);padding-bottom:.4rem;letter-spacing:.03em}
.tt-row{display:flex;gap:.9rem;padding:.4rem 0;border-bottom:1px dashed rgba(43,20,20,.12)}
.tt-row:last-child{border-bottom:0}
.tt-row b{font-family:var(--disp);font-size:1.15rem;color:var(--gold);min-width:56px}
.tt-row span{font-weight:700}

/* fiche artiste */
.artist-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:start;max-width:1000px;margin:2.5rem auto 0}
.artist-media{position:sticky;top:calc(var(--header-h) + 1.5rem);display:flex;flex-direction:column;gap:1.2rem}
.artist-media img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);cursor:zoom-in}
.spotify-embed iframe{width:100%;border:0;border-radius:14px}
.ph-box{border:2px dashed rgba(212,37,37,.4);border-radius:var(--radius);padding:2rem 1.4rem;text-align:center;color:var(--red);background:#fff;font-family:var(--disp);font-size:1.4rem;display:grid;place-items:center;gap:.3rem}
.ph-box small{font-family:var(--body);font-weight:400;font-size:.85rem;color:var(--ink-soft)}
.ph-box.is-photo{aspect-ratio:4/3}
/* artiste sans photo : vignette aux couleurs de l'affiche */
.artist-affiche{aspect-ratio:4/5;border-radius:var(--radius);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1.3rem;padding:2rem 1.4rem;text-align:center;
  background:radial-gradient(circle at 50% 38%,rgba(244,199,102,.24),transparent 62%),
    repeating-conic-gradient(from 0deg at 50% 38%,rgba(255,255,255,.055) 0 8deg,transparent 8deg 16deg),var(--red);
  box-shadow:var(--shadow);overflow:hidden}
.artist-media .artist-affiche img{width:min(58%,220px);height:auto;border-radius:0;box-shadow:none;cursor:default;
  filter:drop-shadow(0 14px 24px rgba(0,0,0,.35))}
.artist-affiche span{font-family:var(--disp);font-size:clamp(1.9rem,4.5vw,2.8rem);line-height:.95;
  text-transform:uppercase;letter-spacing:.03em;color:var(--cream)}
.artist-bientot{font-style:italic;color:var(--ink-soft)}
.artist-media .artist-plaquette-img{height:auto}
.artist-plaquette{margin:1.6rem 0 0}
.artist-plaquette img{display:block;width:100%;height:auto;border-radius:12px;box-shadow:var(--shadow)}
/* note sous une soirée du cartel (Programmation → Jours → Description) */
.cartel__note{margin-top:clamp(1.3rem,3.5vw,2rem);font-family:var(--disp);font-size:clamp(1.05rem,2.6vw,1.3rem);
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold-2)}
.artist-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.5rem;border-top:2px dashed rgba(212,37,37,.2)}

/* partenaires */
.partner-hint{text-align:center;color:var(--ink-soft);font-size:.95rem;margin:2.2rem 0 0}
.partner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.4rem;margin-top:1.2rem}
.partner-slot{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:zoom-in;transition:.2s}
.partner-slot:hover{transform:translateY(-4px)}
.partner-slot img{width:100%;height:auto;display:block}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);background:rgba(30,8,8,.92);opacity:0;visibility:hidden;transition:.28s}
.lightbox.is-open{opacity:1;visibility:visible}
.lightbox img{max-width:min(1100px,100%);max-height:86vh;border-radius:12px;box-shadow:0 30px 80px -20px #000;transform:scale(.94);transition:transform .3s}
.lightbox.is-open img{transform:scale(1)}
.lightbox__close,.lightbox__nav{position:absolute;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;transition:.2s;border:2px solid rgba(255,255,255,.4)}
.lightbox__close{top:1rem;right:1rem;width:46px;height:46px;font-size:1.4rem}
.lightbox__close:hover{background:var(--gold);color:#3c2408}
.lightbox__nav{top:50%;transform:translateY(-50%);width:50px;height:50px;font-size:1.5rem}
.lightbox__prev{left:1rem}.lightbox__next{right:1rem}
.lightbox__count{position:absolute;bottom:1rem;left:0;right:0;text-align:center;color:#e6c9bb;font-family:var(--disp);letter-spacing:.1em}
body.lb-open{overflow:hidden}

/* barre d'actions sous le page-hero */
.page-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:clamp(2rem,4vw,3rem)}

/* ===== NEWSLETTER ===== */
.newsletter{background:var(--cream);padding:clamp(3rem,7vw,5rem) 0 clamp(3.5rem,7vw,5.5rem)}
.nl-box{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3rem);align-items:center;
  background:linear-gradient(150deg,var(--red),var(--bordeaux));color:#fff;border-radius:var(--radius);
  padding:clamp(1.8rem,4vw,3rem);box-shadow:var(--shadow);position:relative;overflow:hidden}
.nl-box::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;
  background:repeating-linear-gradient(-45deg,var(--gold) 0 14px,var(--bordeaux) 14px 28px)}
.nl-text .eyebrow{color:var(--gold-2)}
.nl-text h2{font-family:var(--disp);font-size:clamp(2.2rem,5vw,3.4rem);text-transform:uppercase;
  letter-spacing:.03em;color:#fff;line-height:.9}
.nl-text p{font-family:var(--body);color:#fbe3d8;margin-top:.6rem;max-width:46ch}
.nl-row{display:flex;gap:.6rem;flex-wrap:wrap}
.nl-form input[type=email]{flex:1;min-width:200px;font-family:var(--body);font-size:1rem;padding:.85em 1em;
  border:0;border-radius:10px;background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px transparent}
.nl-form input[type=email]:focus{outline:0;box-shadow:inset 0 0 0 3px var(--gold)}
.nl-form .btn{white-space:nowrap}
.nl-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nl-consent{display:flex;gap:.6rem;align-items:flex-start;margin-top:.9rem;
  font-family:var(--body);font-size:.85rem;color:#f4d6c9;line-height:1.45}
.nl-consent input{margin-top:.2rem;width:17px;height:17px;accent-color:var(--gold);flex:none}
.nl-consent a{color:var(--gold-2);text-decoration:underline;text-underline-offset:2px}
.nl-msg{margin-top:.8rem;font-family:var(--body);font-weight:700;font-size:.92rem;min-height:1.2em}
.nl-msg.is-ok{color:#bdf5cf}
.nl-msg.is-err{color:var(--gold-2)}
.nl-form.is-busy{opacity:.65;pointer-events:none}
@media (max-width:820px){.nl-box{grid-template-columns:1fr}}

/* ===== BILLETTERIE ===== */
/* Le widget Weezevent est une iframe servie par un autre domaine : son
   intérieur ne peut pas être stylé d'ici. On l'habille donc de l'extérieur,
   en guichet de féria, sans rien changer à son fonctionnement. */
/* sélecteurs renforcés : la mise en forme générique des listes de .entry
   (colonne, croix en puce) ne doit pas s'appliquer à ces pastilles */
.weez-atouts,.entry ul.weez-atouts{list-style:none;padding:0;margin:1.6rem auto 0;display:flex;
  flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.5rem .7rem}
.weez-atouts li,.entry ul.weez-atouts li{display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--disp);font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--red);background:#fff;border:2px solid rgba(212,37,37,.18);border-radius:999px;
  padding:.3em .95em}
.weez-atouts li::before,.entry ul.weez-atouts li::before{content:"";position:static;width:8px;
  height:8px;border-radius:50%;background:var(--gold)}

.weez-embed{position:relative;max-width:880px;margin:2.6rem auto 0;background:#fff;
  border-radius:22px;overflow:hidden;
  padding:clamp(3rem,7vw,3.6rem) clamp(.6rem,2.5vw,1.6rem) clamp(1rem,2.5vw,1.6rem);
  box-shadow:0 0 0 3px var(--gold),0 0 0 9px var(--red),0 0 0 12px var(--gold),
    0 34px 60px -28px rgba(80,10,12,.6)}
/* toldo en tête du guichet */
.weez-embed::before{content:"";position:absolute;left:0;right:0;top:0;height:18px;
  background:repeating-linear-gradient(-45deg,var(--red) 0 16px,var(--gold) 16px 32px)}
.weez-embed::after{content:"Guichet de la féria";position:absolute;top:18px;left:50%;
  transform:translateX(-50%);white-space:nowrap;font-family:var(--disp);font-size:1rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--cream);background:var(--red);
  padding:.32em 1.2em .26em;border-radius:0 0 12px 12px}
.weez-embed iframe{display:block;width:100%!important;border:0;border-radius:12px}
/* avant le chargement du widget, le lien de repli prend l'allure d'un bouton */
.weez-embed > a.weezevent-widget-integration{display:flex;justify-content:center;align-items:center;
  max-width:340px;margin:.4rem auto;padding:.7em 1.4em;border-radius:12px;font-family:var(--disp);
  font-size:1.4rem;letter-spacing:.06em;text-transform:uppercase;background:var(--gold);
  color:#3c2408;text-decoration:none}
@media (max-width:560px){
  .weez-embed{border-radius:16px;
    box-shadow:0 0 0 2px var(--gold),0 0 0 6px var(--red),0 0 0 8px var(--gold),
      0 24px 44px -24px rgba(80,10,12,.6)}
  .weez-embed::after{font-size:.85rem;letter-spacing:.14em}
  .weez-atouts li{font-size:.92rem}
}

/* ===== CASHLESS ===== */
.cash-lead{max-width:760px;margin:clamp(2rem,4vw,3rem) auto 0;text-align:center}
.cash-lead .lead{margin-inline:auto}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.3rem;max-width:1000px;margin:2.6rem auto 0;counter-reset:step}
.step{position:relative;background:#fff;border-radius:var(--radius);padding:2.4rem 1.4rem 1.5rem;box-shadow:var(--shadow);border-top:5px solid var(--red);text-align:center}
.step::before{counter-increment:step;content:counter(step);position:absolute;top:-22px;left:50%;transform:translateX(-50%);
  width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;font-family:var(--disp);font-size:1.6rem;
  display:grid;place-items:center;box-shadow:0 6px 16px -6px rgba(124,21,24,.7)}
.step h3{font-family:var(--disp);font-size:1.5rem;text-transform:uppercase;letter-spacing:.03em;color:var(--red);margin-bottom:.4rem;line-height:1}
.step p{font-family:var(--body);font-size:.96rem;color:var(--ink-soft)}
.keybox{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;max-width:1000px;margin:2.6rem auto 0}
.keycard{background:linear-gradient(150deg,var(--red),var(--bordeaux));color:#fff;border-radius:var(--radius);padding:1.5rem 1.4rem;box-shadow:var(--shadow)}
.keycard .kc-ico{font-size:1.8rem;line-height:1}
.keycard h4{font-family:var(--disp);font-size:1.45rem;text-transform:uppercase;letter-spacing:.04em;color:var(--gold-2);margin:.5rem 0 .3rem;line-height:1}
.keycard p{font-family:var(--body);font-size:.94rem;color:#fbe3d8}
.cash-alert{max-width:1000px;margin:2.4rem auto 0;background:var(--gold);color:#3c2408;border-radius:var(--radius);
  padding:1.3rem 1.5rem;display:flex;gap:1rem;align-items:flex-start;box-shadow:var(--shadow)}
.cash-alert .ca-ico{font-size:1.6rem;line-height:1}
.cash-alert strong{font-family:var(--disp);font-size:1.3rem;letter-spacing:.04em;text-transform:uppercase;display:block;margin-bottom:.2rem}
.cash-alert p{font-family:var(--body);font-size:.96rem}

/* éléments réservés à l'impression */
.print-only{display:none}

/* ===== PDF / IMPRESSION ===== */
@media print{
  /* marge nulle : pas d'en-tête navigateur, marges refaites en interne */
  @page{size:A4 portrait;margin:0}

  html,body{background:#fff!important;width:100%;margin:0;padding:0}
  body{font-size:10.5pt;line-height:1.35}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}

  .site-header,.footer,.announce,.stripes,.back-link,.no-print,
  .fc-embers,.lightbox,.page-hero{display:none!important}

  .print-only{display:block}
  .page-shell{padding:0!important;min-height:0}
  .page-shell>.wrap{width:100%;max-width:none;padding:0 12mm}

  /* — Bandeau d'en-tête, façon affiche — */
  .print-head{position:relative;margin:0 -12mm 8mm;padding:11mm 12mm 7mm;text-align:center;
    background:linear-gradient(160deg,#7C1518,#D42525);color:#FCF4E6;break-inside:avoid}
  .print-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5mm;
    background:repeating-linear-gradient(-45deg,#E7A32E 0 6mm,#D42525 6mm 12mm)}
  .print-head img{width:20mm;height:auto;margin:0 auto 3mm;display:block}
  .print-head h1{font-family:var(--disp);font-size:30pt;line-height:.86;letter-spacing:.02em;
    text-transform:uppercase;color:#FCF4E6;margin:0}
  .print-head .ph-sub{font-family:var(--disp);font-size:13pt;letter-spacing:.3em;
    text-transform:uppercase;color:#F5CD78;margin-top:1.5mm}
  .print-head .ph-meta{font-family:var(--body);font-weight:700;font-size:9.5pt;margin-top:2mm;color:#FCF4E6}

  /* — Grille horaire — */
  .timetable{max-width:none;margin:0;gap:7mm}
  .tt-day{break-inside:avoid}
  .tt-day+.tt-day{margin-top:2mm}
  .tt-day h2{font-size:18pt;color:#D42525!important;margin-bottom:.5mm;
    border-bottom:1.2mm solid #E7A32E;padding-bottom:1mm;display:inline-block}
  .tt-day .tt-sub{font-size:8pt;letter-spacing:.14em;color:#7a5c4e!important;margin:1.5mm 0 3mm}
  .tt-stages{display:grid;grid-template-columns:1fr 1fr;gap:5mm}
  .tt-stage{background:#fff!important;box-shadow:none!important;border:.4mm solid #E7CDBE;
    border-top:1.6mm solid #D42525;border-radius:2mm;padding:3mm 3.5mm 2mm;break-inside:avoid}
  .tt-stage h3{font-size:12.5pt;color:#D42525!important;border-bottom:.3mm dashed #E7A32E;
    padding-bottom:1mm;margin-bottom:1.5mm}
  .tt-row{padding:1.1mm 0;border-bottom:.2mm dotted #DDCABF;gap:3mm;align-items:baseline}
  .tt-row:nth-child(even){background:#FDF7EC}
  .tt-row b{font-size:11pt;color:#B8811C!important;min-width:14mm}
  .tt-row span{font-size:10pt;color:#2B140C!important}

  /* — Pied de page, en fin de document — */
  .print-foot{margin:9mm -12mm 0;padding-top:4mm;text-align:center;break-inside:avoid}
  .print-foot .pf-stripe{height:4mm;background:repeating-linear-gradient(-45deg,#E7A32E 0 6mm,#D42525 6mm 12mm)}
  .print-foot p{font-family:var(--disp);font-size:12pt;letter-spacing:.22em;
    text-transform:uppercase;color:#7C1518!important;margin:4mm 0 6mm}

  .entry{max-width:none;margin-top:5mm;color:#2B140C!important}
  .entry a{color:#2B140C!important;text-decoration:none}
}

@media (max-width:820px){.intro .grid{grid-template-columns:1fr}.poster{max-width:320px;margin-inline:auto;order:-1}.footer-grid{grid-template-columns:1fr 1fr}.gomap{grid-template-columns:1fr}.artist-grid{grid-template-columns:1fr}.artist-media{position:static}.tt-stages{grid-template-columns:1fr}.partner-grid{grid-template-columns:1fr}}
@keyframes fcMenu{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

@media (max-width:760px){
  .stage-grid{grid-template-columns:1fr}
  .header-cta .btn{display:none}
  .burger{display:block}

  /* ----- Panneau de navigation plein écran ----- */
  .main-nav{position:fixed;inset:0;z-index:2147483000;background:var(--bordeaux);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:clamp(1.3rem,5vh,2.4rem);
    padding:calc(var(--header-h) + 1.4rem) var(--gutter) 2.2rem;
    overflow-y:auto;overscroll-behavior:contain;
    opacity:0;visibility:hidden;transform:translateY(-10px);
    transition:opacity .3s ease,transform .3s ease,visibility .3s}
  body.nav-open .main-nav{opacity:1;visibility:visible;transform:none}

  /* rayures de toldo : le panneau reste dans l'univers de l'affiche */
  body.nav-open::before,body.nav-open::after{content:"";position:fixed;left:0;right:0;
    height:9px;z-index:2147483001;pointer-events:none;
    background:repeating-linear-gradient(-45deg,var(--gold) 0 13px,var(--red) 13px 26px)}
  body.nav-open::before{top:0}
  body.nav-open::after{bottom:0}

  .main-nav ul{flex-direction:column;gap:0;width:100%;max-width:26rem}
  .main-nav li+li{border-top:1px solid rgba(244,199,102,.2)}
  .main-nav a{display:block;text-align:center;padding:.48em 0;line-height:1;
    font-size:clamp(1.9rem,8.5vw,2.6rem);color:var(--cream);text-shadow:none}
  .main-nav a::after{display:none}
  .main-nav a:active{color:var(--gold-2)}

  /* les entrées arrivent en cascade une fois le panneau ouvert */
  body.nav-open .main-nav li{animation:fcMenu .42s cubic-bezier(.2,.75,.3,1) both}
  body.nav-open .main-nav li:nth-child(1){animation-delay:.05s}
  body.nav-open .main-nav li:nth-child(2){animation-delay:.1s}
  body.nav-open .main-nav li:nth-child(3){animation-delay:.15s}
  body.nav-open .main-nav li:nth-child(4){animation-delay:.2s}
  body.nav-open .main-nav li:nth-child(5){animation-delay:.25s}
  body.nav-open .main-nav li:nth-child(6){animation-delay:.3s}
  body.nav-open .main-nav li:nth-child(7){animation-delay:.35s}
  body.nav-open .main-nav li:nth-child(n+8){animation-delay:.4s}
  body.nav-open .main-nav__foot{animation:fcMenu .42s cubic-bezier(.2,.75,.3,1) .42s both}

  /* ----- Pied du panneau : billetterie, réseaux, dates ----- */
  .main-nav__foot{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}
  .main-nav__foot .btn{font-size:1.35rem;padding:.55em 1.4em}
  .main-nav__foot .socials{display:flex;gap:.8rem;justify-content:center;align-items:center}
  .main-nav__foot .socials a{width:46px;height:46px;display:grid;place-items:center;
    border-radius:50%;border:2px solid rgba(244,199,102,.5);background:rgba(244,199,102,.08);
    color:var(--gold-2);line-height:0;padding:0}
  .main-nav__foot .socials svg{display:block;width:20px;height:20px}
  /* Le « f » de Facebook est un glyphe plein dont le dessin occupe le bas de
     sa zone : centré bêtement, il tombe plus bas que l'icône Instagram, qui
     est un carré arrondi symétrique. On le remonte pour aligner les deux
     optiquement, et on affine le trait d'Instagram pour égaliser les graisses. */
  .main-nav__foot .socials a[aria-label="Facebook"] svg{transform:translateY(-1px)}
  .main-nav__foot .socials a[aria-label="Instagram"] svg{stroke-width:1.8}
  .main-nav__foot .socials a:active{background:rgba(244,199,102,.2)}
  .main-nav__date{font-family:var(--body);font-size:.8rem;font-weight:700;letter-spacing:.1em;
    text-transform:uppercase;color:rgba(252,244,230,.62)}

  /* ----- En-tête pendant l'ouverture -----
     Les sélecteurs passent par .site-header pour l'emporter sur les règles
     de l'état « scrolled », qui sinon laissaient le titre et la croix en
     rouge sur rouge, et les liens en noir. */
  body.nav-open{overflow:hidden}
  body.nav-open .site-header{background:transparent;box-shadow:none}
  /* le logo reste au-dessus du panneau, en vis-à-vis de la croix */
  body.nav-open .site-header .brand{color:var(--cream);position:relative;z-index:2147483002}
  body.nav-open .site-header .main-nav a{color:var(--cream);text-shadow:none}
  body.nav-open .site-header .burger{background:var(--gold);
    box-shadow:0 10px 26px -12px rgba(0,0,0,.75)}
  body.nav-open .site-header .burger span{background:#3c2408}

  .footer-grid{grid-template-columns:1fr;text-align:center}
  .socials{justify-content:center}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* menu mobile : bouton au-dessus du plein écran */
@media (max-width:760px){
  body.nav-open .header-cta{position:relative;z-index:2147483002}
}

/* ===== ENTRÉE ANIMÉE DU HERO ===== */
html.fc-anim .hero__title{visibility:hidden}
html.fc-anim .hero__title .ch{display:inline-block;visibility:visible;opacity:0;transform:translateY(.85em) rotate(7deg) scale(.7);animation:fcCh .62s cubic-bezier(.2,.75,.28,1.3) both;animation-delay:calc(.3s + var(--i) * .045s)}
html.fc-anim .hero__badge{opacity:0;animation:fcPop .8s cubic-bezier(.2,.8,.3,1.4) .05s both}
html.fc-anim .hero__tagline{opacity:0;animation:fcUp .8s ease 1s both}
html.fc-anim .hero__meta{opacity:0;animation:fcUp .8s ease 1.2s both}
html.fc-anim .countdown{opacity:0;animation:fcUp .8s ease 1.4s both}
html.fc-anim .hero__cta{opacity:0;animation:fcUp .8s ease 1.6s both}
@keyframes fcCh{to{opacity:1;transform:none}}
@keyframes fcUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fcPop{0%{opacity:0;transform:scale(.55) translateY(-14px) rotate(-7deg)}60%{opacity:1}100%{opacity:1;transform:none}}

/* zoom lent sur l'aftermovie */
.hero__media video{animation:fcKen 26s ease-in-out infinite alternate}
@keyframes fcKen{from{transform:scale(1.03)}to{transform:scale(1.12)}}

/* ===== BRAISES AU CURSEUR ===== */
.fc-embers{position:fixed;inset:0;pointer-events:none;z-index:9998}
@media (prefers-reduced-motion:reduce){.hero__media video{animation:none}.fc-embers{display:none}}

/* ===== LOGO MASQUÉ SUR L'AFTERMOVIE ===== */
.hero__logo{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;
  transform-origin:50% 45%;will-change:transform}
.lg-bg{fill:var(--bordeaux)}
.lg-rays{fill:var(--gold);opacity:.09}
.lg-badge{fill:#66C29A}
.lg-red{fill:#EA5443}
.lg-edge{fill:none;stroke:var(--gold-2);stroke-width:1.5}

/* titre texte masqué visuellement une fois le logo prêt */
html.fc-logo .hero__title,
html.fc-logo .hero__badge{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.hero__stripes{z-index:4}

@media (max-width:760px){
  .hero{height:200vh}
}
@media (prefers-reduced-motion:reduce){
  .hero{height:100svh}
  /* conteneur positionné : le logo SVG se cale dessus */
  .hero__stick{position:relative;height:100svh}
}

/* ===== CARTEL ===== */
.cartel{position:relative;overflow-x:clip;background:var(--red);color:var(--cream);
  padding:clamp(4rem,9vw,7rem) 0 clamp(3.5rem,8vw,6rem);
  background-image:radial-gradient(circle at 20px 20px,rgba(252,244,230,.07) 5px,transparent 6px);
  background-size:40px 40px}
.cartel__frame{position:relative;padding:clamp(2.2rem,6vw,5rem) clamp(1rem,4vw,4rem);
  border:2px solid var(--gold-2);outline:2px solid var(--gold-2);outline-offset:-12px;
  text-align:center;background:linear-gradient(180deg,rgba(124,21,24,.35),rgba(124,21,24,.1))}
.cartel__corner{position:absolute;width:44px;height:44px;border:2px solid var(--gold-2);
  border-radius:50%;background:var(--red)}
.cartel__corner:nth-child(1){top:-23px;left:-23px}.cartel__corner:nth-child(2){top:-23px;right:-23px}
.cartel__corner:nth-child(3){bottom:-23px;left:-23px}.cartel__corner:nth-child(4){bottom:-23px;right:-23px}
.cartel__corner::after{content:"\2726";position:absolute;inset:0;display:grid;place-items:center;
  color:var(--gold-2);font-size:1rem}
.cartel__k{font-family:var(--disp);text-transform:uppercase;font-size:clamp(1.1rem,2.2vw,1.6rem);
  letter-spacing:.3em;color:var(--gold-2);display:block;margin-bottom:clamp(1.4rem,3vw,2.2rem)}
.cartel__t{font-family:var(--disp);text-transform:uppercase;line-height:.84;
  font-size:clamp(3.4rem,11vw,9rem);color:var(--cream);margin:.3rem 0 1.6rem;
  letter-spacing:.02em;text-shadow:.045em .045em 0 var(--bordeaux)}

.tabs{display:inline-flex;gap:.3rem;padding:.3rem;border-radius:999px;
  background:rgba(60,8,12,.45);margin-bottom:clamp(2rem,5vw,3.2rem)}
.tab{min-height:44px;padding:.5em 1.4em;border-radius:999px;font-family:var(--body);font-weight:700;
  font-size:.95rem;color:var(--cream);transition:background-color .25s,color .25s}
.tab[aria-selected="true"]{background:var(--gold);color:#3c2408}
.tab:not([aria-selected="true"]):hover{background:rgba(252,244,230,.12)}

.cartel__day[hidden]{display:none}
.cartel__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;align-items:center;gap:clamp(.3rem,1.2vw,.8rem)}
/* double invisible : réserve la largeur du nom élargi */
.cr a{display:inline-flex;flex-direction:column;align-items:center;text-decoration:none;padding:.15em .3em}
.cr a::after{content:attr(data-nom);display:block;height:0;overflow:hidden;visibility:hidden;
  pointer-events:none;font-family:'Anybody',var(--disp);font-variation-settings:'wght' 900,'wdth' 96;
  text-transform:uppercase;letter-spacing:-.005em;font-size:clamp(2rem,6vw,4rem)}
.cr--head a::after{font-size:clamp(2.8rem,9vw,7.5rem)}
/* axe wdth piloté par font-variation-settings */
.cr__name{font-family:'Anybody',var(--disp);font-variation-settings:'wght' 900,'wdth' 66;
  text-transform:uppercase;line-height:.88;letter-spacing:-.005em;
  font-size:clamp(2rem,6vw,4rem);
  transition:font-variation-settings .5s cubic-bezier(.16,1,.3,1),color .3s}
.cr--head .cr__name{font-size:clamp(2.8rem,9vw,7.5rem);color:var(--cream);
  text-shadow:.04em .04em 0 var(--bordeaux)}
.cr:not(.cr--head) .cr__name{color:var(--gold-2)}
.cr__meta{font-family:var(--body);font-size:.85rem;font-weight:700;letter-spacing:.08em;
  color:rgba(252,244,230,.8);margin-top:.35rem;transition:color .25s}
/* survol : élargissement de l'axe wdth */
.cr a:hover .cr__name,.cr a:focus-visible .cr__name{font-variation-settings:'wght' 900,'wdth' 96;color:var(--gold)}
.cr a:hover .cr__meta{color:var(--cream)}
.cartel__list--rest{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.4rem 2.2rem}

.cartel__orn{display:flex;align-items:center;gap:1rem;max-width:420px;
  margin:clamp(1.6rem,4vw,2.6rem) auto;color:var(--gold-2)}
.cartel__orn i{flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--gold-2))}
.cartel__orn i:last-child{transform:scaleX(-1)}
.cartel__foot{margin-top:clamp(2rem,5vw,3rem);font-family:var(--body);color:rgba(252,244,230,.9)}
.cartel__foot a{color:var(--gold-2);font-weight:700;text-decoration:underline;
  text-decoration-thickness:2px;text-underline-offset:4px}

@media (max-width:560px){
  .cartel__frame{outline-offset:-8px;padding-inline:.8rem}
  .cartel__corner{width:34px;height:34px;top:-18px}
  .cartel__corner:nth-child(1),.cartel__corner:nth-child(2){top:-18px}
  .cartel__corner:nth-child(3),.cartel__corner:nth-child(4){bottom:-18px}
  .cartel__corner:nth-child(1),.cartel__corner:nth-child(3){left:-18px}
  .cartel__corner:nth-child(2),.cartel__corner:nth-child(4){right:-18px}
  .cartel__list--rest{gap:.3rem 1.2rem}
}

/* dérive des têtes d'affiche, pilotée en JS */
.cr--head{will-change:transform}
@media (prefers-reduced-motion:reduce){
  .cr--head{transform:none!important}
  .cr__name{transition:none}
}

/* programme imprimable : une seule scène, une seule colonne */
.tt-stages--solo{grid-template-columns:1fr}

/* contenu réservé aux lecteurs d'écran */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.screen-reader-text:focus{position:static!important;width:auto;height:auto;margin:0;
  clip-path:none;padding:.6em 1em;background:var(--gold);color:#3c2408;border-radius:8px}

/* plaque bitmap posée sur la vidéo : aucun masque, donc la vidéo reste sur
   le chemin matériel et le compositeur n'a qu'un fondu alpha à faire */
.hero__plaque{position:absolute;inset:0;z-index:2;pointer-events:none;
  transform-origin:0 0;will-change:transform,opacity;
  -webkit-backface-visibility:hidden;backface-visibility:hidden}

/* ===== ALLÉGEMENT MOBILE / TACTILE =====
   Course raccourcie, filtres vidéo et dérive du cartel coupés. Le zoom de
   la plongée est plafonné côté JS et relayé par un fondu. */
@media (max-width:900px), (pointer:coarse){
  .hero{height:200vh}
  /* Sur iOS la barre d'outils de Safari se retire au défilement et la zone
     visible grandit : un conteneur en 100svh laisse alors une bande vide en
     bas de l'écran. On prend donc la hauteur « barre masquée » (100lvh) et on
     repousse le contenu de l'écart, pour qu'il reste visible barre affichée. */
  .hero__stick{position:sticky;top:0;height:100svh;height:100lvh;
    padding-bottom:calc(100lvh - 100svh)}
  .hero__media video{animation:none;filter:none}
  /* le conteneur ouvre un contexte 3D, le logo y est composé matériellement */
  .hero__stick{-webkit-perspective:1000px;perspective:1000px}
  /* le calque du logo n'est plus promu par will-change : sur Safari, cette
     promotion casse le rendu d'un masque. Il ne sert plus que de repli. */
  .hero__logo{-webkit-backface-visibility:hidden;backface-visibility:hidden;
    -webkit-transform:translateZ(0);transform:translateZ(0)}
  .hero__media video{-webkit-backface-visibility:hidden;backface-visibility:hidden;
    -webkit-transform:translateZ(0);transform:translateZ(0)}
}

/* Sur un écran étroit les quatre blocs du compte à rebours débordaient et
   passaient en 3 + 1, ce qui mangeait une ligne entière de hauteur — autant
   de place en moins pour le logo. On les fait partager la largeur. */
@media (max-width:430px){
  .countdown{gap:.45rem;margin-top:1.1rem}
  .cd{min-width:0;flex:1 1 0;padding:.45rem .3rem .35rem}
  .cd b{font-size:1.75rem}
  .cd span{font-size:.52rem;letter-spacing:.1em}
}

/* le mouvement réduit l'emporte sur la règle mobile ci-dessus : sans plongée,
   la course de défilement du hero n'a plus lieu d'être */
@media (prefers-reduced-motion:reduce){
  .hero{height:100svh}
  .hero__stick{position:relative;height:100svh}
}
