@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Kalam:wght@400;700&family=Permanent+Marker&display=swap");
:root{
  --cream:#f5efdf;
  --paper:#fffaf0;
  --ink:#242424;
  --text:#5b5b5b;
  --red:#e74332;
  --red-soft:#f6c9c1;
  --yellow:#f5c400;
  --yellow-soft:#fff0a8;
  --green:#dfe9dd;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;line-height:1.6}
a{color:inherit} img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 40px));margin:auto}
.site-header{background:rgba(245,239,223,.97);border-bottom:1px solid #2d2d2d;position:sticky;top:0;z-index:10}
.header-inner{min-height:96px;display:flex;align-items:center;gap:28px}
.brand{text-decoration:none;min-width:245px}
.brand-name,.footer-brand{font-family:"Kalam",cursive;font-weight:700}
.brand-name{font-size:32px;line-height:1;letter-spacing:.01em}
.brand-sub{font-weight:700;font-size:13px;color:#555}
.nav{margin-left:auto;display:flex;gap:2px;align-items:center}
.nav a{display:block;padding:11px 12px;text-decoration:none;font-weight:700;border-radius:10px;color:#424242}
.nav a:hover{background:var(--yellow-soft)}
.nav-item{position:relative}
.dropdown{display:none;position:absolute;top:100%;left:0;min-width:225px;background:var(--paper);border:1px solid #333;padding:7px;box-shadow:0 12px 30px #0001;border-radius:0 0 12px 12px}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{display:block}
.dropdown a{display:block}
.menu-toggle{display:none;margin-left:auto;background:none;border:1px solid #333;border-radius:9px;padding:7px 11px;font-size:20px}

.hero{min-height:680px;position:relative;display:flex;align-items:flex-end;overflow:hidden}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(72%) contrast(1.02);transform:scale(1.01)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1717178c 0%,#17171742 46%,#17171710 100%)}
.hero-content{position:relative;z-index:1;color:#fff;padding:90px 0 58px;max-width:760px}
.splash{display:inline-block;padding:0 8px 7px 3px;transform:rotate(-1.5deg);position:relative}
.splash:before{content:"";position:absolute;z-index:-1;left:-5px;right:10px;bottom:2px;height:10px;background:var(--red);transform:rotate(-1deg);border-radius:50% 65% 40% 55%}
.splash:after{content:"";position:absolute;z-index:-2;left:18px;right:-12px;bottom:-3px;height:7px;background:var(--yellow);transform:rotate(1.5deg);border-radius:50%}
.splash h1{font-family:"Kalam",cursive;font-weight:400;font-size:clamp(50px,7.2vw,84px);line-height:.9;margin:0;letter-spacing:-.01em;text-shadow:1px 2px 0 #0004}
.hero-date{display:inline-block;color:#fff;font-family:"Kalam",cursive;font-weight:400;font-size:clamp(26px,3.2vw,43px);line-height:1;padding:7px 12px 11px;margin:18px 0 12px;position:relative}
.hero-date:before{content:"";position:absolute;z-index:-1;left:-2px;right:8px;bottom:5px;height:10px;background:var(--yellow);border-radius:55% 35% 45% 50%;transform:rotate(-1deg)}
.hero-public{display:inline-block;margin-top:2px;padding:5px 10px;background:rgba(245,67,50,.94);font-size:15px;font-weight:800;letter-spacing:.01em}
.hero-meta{font-size:18px;font-weight:600;margin-top:12px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.btn{display:inline-block;padding:13px 21px;border:1px solid #333;border-radius:8px;text-decoration:none;font-weight:800;transition:.15s}
.btn-red{background:var(--red);color:#fff;border-color:var(--red)}
.btn-yellow{background:var(--yellow)}
.btn-light{background:var(--paper)}
.btn:hover{transform:translateY(-2px);box-shadow:4px 5px 0 #17171718}
.wiggle{height:28px;background:var(--cream);clip-path:polygon(0 30%,8% 60%,16% 25%,24% 60%,32% 28%,40% 58%,48% 30%,56% 62%,64% 25%,72% 60%,80% 30%,88% 58%,100% 28%,100% 100%,0 100%)}

.section{padding:76px 0}.alt{background:var(--paper)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px}
.kicker{text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:13px;color:#6b6b6b}
.section h2,.page-hero h1{font-family:"Kalam",cursive;font-weight:400;line-height:1.02}
.section h2{font-size:clamp(39px,5vw,56px);margin:7px 0}
.lead{font-size:18px;max-width:780px;color:var(--text)}
p{color:var(--text)}
strong{color:#333}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card,.info-box{background:#fffdf8;border:1px solid #343434;border-radius:16px;box-shadow:6px 7px 0 #1717170d}
.card{overflow:hidden}
.card img{width:100%;height:220px;object-fit:cover}
.card-body{padding:24px}
.card-tag{display:inline-block;background:var(--yellow-soft);padding:4px 9px;border-radius:99px;font-size:12px;font-weight:800;text-transform:uppercase}
.card h3{font-size:23px;line-height:1.1;color:#333}
.info-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:25px}
.info-box{padding:28px}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:25px}
.stat{padding:20px;background:var(--yellow);border:1px solid #333;transform:rotate(-1deg);color:#3b3b3b}
.stat:nth-child(2){background:var(--red-soft);transform:rotate(1deg)}
.stat:nth-child(3){background:var(--green);transform:rotate(-1.5deg)}
.stat strong{display:block;font-size:27px;color:#2f2f2f}
.page-hero{background:var(--green);color:var(--ink);padding:76px 0 58px;position:relative;overflow:hidden;border-bottom:1px solid #333}
.page-hero:before{content:"";position:absolute;width:360px;height:24px;background:var(--yellow);right:-80px;top:26px;transform:rotate(-5deg);border-radius:60% 40% 55% 45%;opacity:.82}.page-hero:after{content:"";position:absolute;width:280px;height:18px;background:var(--red);right:-45px;top:68px;transform:rotate(4deg);border-radius:50%;opacity:.78}
.page-hero h1{font-size:clamp(48px,7vw,78px);margin:0;position:relative;z-index:1}
.page-hero p{font-size:19px;max-width:720px;position:relative;z-index:1;color:#555}
.photo-band{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:34px}
.photo-band img{width:100%;height:330px;object-fit:cover;border-radius:16px;border:1px solid #333}
.photo-band .photo-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}
.photo-band .photo-stack img{height:156px}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.photo-grid img{width:100%;height:245px;object-fit:cover;border-radius:14px;border:1px solid #333}
.schedule{display:grid;gap:15px}
.event{display:grid;grid-template-columns:145px 1fr auto;gap:20px;align-items:center;background:#fff;border:1px solid #333;padding:19px;border-radius:13px}
.event h3{margin:4px 0}.small{font-size:14px;color:#666}
.notice{background:#fff;border:1px solid #333;border-left:8px solid var(--red);padding:18px 20px;border-radius:10px}
.pill-row{display:flex;flex-wrap:wrap;gap:8px}
.pill{background:#fff;border:1px solid #333;border-radius:999px;padding:6px 11px;font-weight:700;color:#555}
.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.video-card{background:#fff;border:1px solid #333;border-radius:16px;overflow:hidden;box-shadow:6px 7px 0 #1717170d}
.video-frame{aspect-ratio:16/9;background:#111}
.video-frame iframe{width:100%;height:100%;border:0}
.video-body{padding:20px 22px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}
form{display:grid;gap:13px}label{font-weight:800;color:#444}
input,textarea{width:100%;padding:12px;border:1px solid #333;border-radius:8px;font:inherit;background:#fff}
textarea{min-height:150px}
.footer{background:var(--yellow);color:#252525;padding:52px 0 22px;border-top:1px solid #333;position:relative;overflow:hidden}.footer:after{content:"";position:absolute;right:-80px;bottom:28px;width:300px;height:18px;background:var(--red);transform:rotate(-4deg);border-radius:60%;opacity:.65}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:35px}
.footer-brand{font-size:40px}.footer p{color:#5b5b5b}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}.footer h3{color:#333}
.footer-bottom{border-top:1px solid #8b9389;margin-top:30px;padding-top:16px;font-size:13px;color:#666;display:flex;justify-content:space-between;position:relative;z-index:1}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.form-note{font-size:14px;color:#666;margin-top:4px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}.timeline .info-box{min-height:170px}.timeline h3{margin-top:6px}.soft-link{color:#6b5b00;font-weight:800}

@media(max-width:900px){
 .header-inner{min-height:82px}.brand-name{font-size:29px}.brand-sub{display:none}.menu-toggle{display:block}
 .nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--cream);border-bottom:1px solid #333;padding:10px;flex-direction:column;align-items:stretch}
 .nav.open{display:flex}.dropdown{position:static;display:block;border:0;box-shadow:none;background:transparent;padding-left:15px}
 .hero{min-height:620px}.cards{grid-template-columns:1fr 1fr}.info-grid,.contact-grid,.video-grid{grid-template-columns:1fr}
 .event{grid-template-columns:1fr}.event .btn{justify-self:start}.photo-band{grid-template-columns:1fr}.photo-band .photo-stack{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.photo-band .photo-stack img{height:210px}
}
@media(max-width:600px){
 .container{width:calc(100% - 26px)}.hero{min-height:650px}.hero-content{padding-top:80px}.cards{grid-template-columns:1fr}
 .section{padding:55px 0}.section-head{display:block}.stat-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{display:block}
 .photo-grid{grid-template-columns:1fr 1fr}.form-grid,.timeline{grid-template-columns:1fr}.photo-grid img{height:180px}
}

/* V5 — touches graphiques, footer jaune, galerie et accordéons */
.page-hero{background:linear-gradient(135deg,var(--green) 0%,#eef1d7 58%,var(--yellow-soft) 100%);}
.page-hero:after{box-shadow:-110px 38px 0 -4px var(--red-soft), -185px 68px 0 -8px var(--yellow);}
.footer p,.footer-bottom{color:#5c5100}.footer h3,.footer-brand{color:#272300}.footer a{color:#312c00}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery-grid a{display:block;overflow:hidden;border-radius:14px;border:1px solid #333;background:#fff;box-shadow:4px 5px 0 #17171710}.gallery-grid img{width:100%;height:230px;object-fit:cover;transition:transform .25s ease}.gallery-grid a:hover img{transform:scale(1.035)}
.accordion{display:grid;gap:10px}.accordion-item{border:1px solid #333;border-radius:12px;background:#fff;overflow:hidden}.accordion-trigger{width:100%;display:flex;justify-content:space-between;align-items:center;background:#fff;border:0;padding:18px 20px;font:800 18px/1.2 "DM Sans",sans-serif;text-align:left;cursor:pointer}.accordion-trigger:hover{background:var(--yellow-soft)}.accordion-panel{padding:0 20px 20px}.accordion-panel[hidden]{display:none}.accordion-panel ul{margin:0;padding-left:22px;columns:2;column-gap:45px}.accordion-panel li{break-inside:avoid;margin:5px 0;color:var(--text)}
.eco-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.eco-card{background:#fff;border:1px solid #333;border-radius:15px;padding:25px;box-shadow:5px 6px 0 #1717170d}.eco-card:nth-child(2n){background:#fffaf0}.eco-card h3{margin-top:0}.eco-partner{display:inline-block;margin-top:8px;font-size:12px;font-weight:800;letter-spacing:.07em;color:#6b5b00}
.lightbox{position:fixed;inset:0;background:#161616e8;display:flex;align-items:center;justify-content:center;padding:30px;opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:100}.lightbox.open{opacity:1;pointer-events:auto}.lightbox img{max-width:min(1200px,94vw);max-height:88vh;width:auto;height:auto;border-radius:10px;box-shadow:0 20px 70px #0008}.lightbox-close{position:absolute;top:18px;right:24px;background:#fff;border:0;border-radius:50%;width:44px;height:44px;font-size:30px;line-height:1;cursor:pointer}
@media(max-width:900px){.gallery-grid,.eco-grid{grid-template-columns:1fr 1fr}.accordion-panel ul{columns:1}}
@media(max-width:600px){.gallery-grid,.eco-grid{grid-template-columns:1fr}.gallery-grid img{height:210px}}


/* V6 — corrections ciblées à partir de la V5 fournie */
/* Accueil : deux taches distinctes sans changer la composition du hero */
.hero-public{display:flex;flex-wrap:wrap;gap:8px;background:transparent;padding:0;margin-top:3px}
.hero-public span{position:relative;display:inline-block;padding:7px 12px;font-size:14px;font-weight:800;line-height:1.2;isolation:isolate;color:#292929}
.hero-public span:before{content:"";position:absolute;inset:1px -5px 0 -5px;z-index:-1;clip-path:polygon(2% 18%,10% 6%,24% 12%,36% 3%,51% 10%,64% 2%,80% 9%,97% 4%,100% 72%,92% 91%,76% 84%,61% 96%,45% 86%,28% 96%,10% 86%,0 92%)}
.hero-school:before{background:rgba(245,196,0,.94)}
.hero-open{color:#fff!important}.hero-open:before{background:rgba(231,67,50,.95)}
/* Badges : mêmes textes/couleurs, silhouettes plus organiques */
.stat-grid{gap:20px;align-items:stretch}
.stat{position:relative;border:0!important;background:transparent!important;box-shadow:none;padding:25px 24px 24px;transform:none!important;isolation:isolate;text-align:center;min-height:125px;display:flex;flex-direction:column;justify-content:center}
.stat:before{content:"";position:absolute;inset:0;z-index:-1;border:1px solid #333;clip-path:polygon(7% 9%,31% 2%,55% 7%,80% 2%,96% 14%,99% 40%,94% 70%,100% 90%,73% 96%,47% 91%,22% 98%,3% 86%,7% 61%,1% 37%)}
.stat-school:before{background:var(--yellow-soft)}
.stat-public:before{background:var(--red-soft)}
.stat-arts:before{background:#dfe9dd}
.stat strong{font-family:"Kalam",cursive;font-weight:700;font-size:29px;margin-bottom:2px}
/* Bandeaux intérieurs : garder le vert/bleu, avec seulement un fragment photo à droite */
.page-hero{background:linear-gradient(120deg,#dfe9dd 0%,#e7eeee 64%,#dce9e5 100%);position:relative;isolation:isolate}
.page-hero:before{content:"";position:absolute;right:0;top:0;width:min(38%,560px);height:100%;background:url("../images/ambiance-noirblanc.jpg") center 46%/cover no-repeat;opacity:.20;transform:none;border-radius:0;z-index:-1;box-shadow:none;mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.15) 18%,#000 64%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.15) 18%,#000 64%)}
.page-hero:after{content:"";position:absolute;width:180px;height:10px;background:var(--yellow);right:22px;bottom:21px;top:auto;transform:rotate(-2deg);border-radius:60%;opacity:.72;box-shadow:-84px 17px 0 -2px rgba(231,67,50,.62);z-index:-1}
.anchor-target{scroll-margin-top:120px}
/* YouTube : poster local-safe, iframe uniquement après clic depuis une page servie en HTTP(S) */
.youtube-lite{position:relative;width:100%;padding:0;border:0;cursor:pointer;overflow:hidden;display:block;color:#fff;font:inherit;text-align:center}
.youtube-lite img{width:100%;height:100%;object-fit:cover;opacity:.84;transition:transform .2s ease,opacity .2s ease}
.youtube-lite:hover img{transform:scale(1.02);opacity:.72}
.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:70px;height:50px;border-radius:15px;background:#e74332;color:#fff;font-size:24px;box-shadow:0 8px 25px #0005;padding-left:4px}
.video-hint{position:absolute;left:0;right:0;bottom:12px;font-weight:800;text-shadow:0 2px 8px #000;background:linear-gradient(transparent,#0009);padding:28px 10px 8px}
.video-frame iframe{display:block;width:100%;height:100%;border:0}
/* Lightbox : navigation */
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:58px;border:0;border-radius:12px;background:#fffdf0e8;color:#222;font-size:34px;cursor:pointer;display:grid;place-items:center;z-index:2}
.lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox-prev:hover,.lightbox-next:hover{background:var(--yellow)}
.faq-list{max-width:920px;margin:auto}
@media(max-width:600px){.hero-public{gap:5px}.hero-public span{font-size:12px;padding:6px 8px}.page-hero:before{width:46%;opacity:.13}.lightbox-prev{left:7px}.lightbox-next{right:7px}.lightbox-prev,.lightbox-next{width:42px;height:50px}}


/* V8 — Bandeaux "proposition 2" validés */
.page-hero{
  --banner-image:url("../images/banner-festival.jpg");
  min-height:190px;
  padding:54px 0 46px;
  background:
    radial-gradient(120px 92px at -12px 92%, rgba(245,196,0,.88) 0 70%, transparent 72%),
    radial-gradient(210px 90px at 61% -30px, rgba(231,67,50,.82) 0 67%, transparent 69%),
    linear-gradient(105deg,#dcebea 0%,#e7f0ed 57%,#dceae5 100%);
  color:var(--ink);
  border-bottom:0;
  isolation:isolate;
}
.page-hero:before{
  content:"";
  position:absolute;
  z-index:-1;
  right:0;
  top:0;
  width:min(39%,600px);
  height:100%;
  background-image:var(--banner-image);
  background-size:cover;
  background-position:center;
  opacity:.72;
  transform:none;
  border-radius:0;
  box-shadow:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.25) 24%,#000 72%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.25) 24%,#000 72%);
}
.page-hero:after{
  content:"";
  position:absolute;
  z-index:-1;
  right:27%;
  bottom:17px;
  width:58px;
  height:58px;
  background:radial-gradient(circle,#171717 0 2px,transparent 2.8px) 0 0/15px 15px;
  opacity:.72;
  border-radius:0;
  transform:rotate(-4deg);
  box-shadow:none;
}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{max-width:62%}
.page-hero p{max-width:58%;color:#596260}

.mini-photo-section{padding:42px 0 64px}
.mini-photo-strip{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:14px}
.mini-photo-strip a{overflow:hidden;border-radius:15px;display:block;border:1px solid #343434;background:#fff}
.mini-photo-strip img{width:100%;height:220px;object-fit:cover;transition:transform .22s ease}
.mini-photo-strip a:hover img{transform:scale(1.025)}
.mini-photo-caption{margin:0 0 16px;color:#6b6b6b;font-size:14px}

@media(max-width:900px){
  .page-hero:before{width:46%;opacity:.62}
  .page-hero h1{max-width:68%}
  .page-hero p{max-width:62%}
}
@media(max-width:600px){
  .page-hero{min-height:170px;padding:42px 0 36px}
  .page-hero:before{width:48%;opacity:.34}
  .page-hero h1{max-width:78%;font-size:clamp(40px,13vw,60px)}
  .page-hero p{max-width:74%;font-size:16px}
  .page-hero:after{right:11%;opacity:.45}
  .mini-photo-strip{grid-template-columns:1fr 1fr}
  .mini-photo-strip a:first-child{grid-column:1/-1}
  .mini-photo-strip img{height:190px}
}


/* V9 — Bandeaux intérieurs calés sur la proposition 2
   Fond vert/bleu, formes organiques et photo intégrée avec transition arrondie. */
.page-hero{
  width:min(var(--max),calc(100% - 40px));
  min-height:188px;
  margin:26px auto 0;
  padding:48px 0 42px;
  border-radius:28px;
  overflow:hidden;
  background:
    radial-gradient(145px 115px at -12px 96%, rgba(245,196,0,.92) 0 69%, transparent 70%),
    radial-gradient(235px 105px at 64% -34px, rgba(231,67,50,.82) 0 67%, transparent 68%),
    linear-gradient(103deg,#d9e9e7 0%,#e6f0ed 58%,#d8e8e4 100%);
  color:var(--ink);
  box-shadow:0 8px 22px rgba(38,71,62,.08);
}

/* Photo pleine hauteur, fondue dans le bandeau par une grande courbe organique. */
.page-hero:before{
  content:"";
  position:absolute;
  z-index:0;
  top:0;
  right:0;
  width:38%;
  height:100%;
  background:
    linear-gradient(rgba(67,120,108,.17),rgba(67,120,108,.17)),
    var(--banner-image) center/cover no-repeat;
  opacity:1;
  border-radius:58% 0 0 46% / 72% 0 0 62%;
  -webkit-mask-image:none;
  mask-image:none;
  transform:none;
  box-shadow:-20px 0 32px rgba(76,128,116,.08);
}

/* Léger fondu au raccord pour que l'image reste intégrée et non "collée". */
.page-hero::after{
  content:"";
  position:absolute;
  z-index:1;
  top:0;
  right:30%;
  width:14%;
  height:100%;
  background:linear-gradient(90deg,rgba(226,239,235,0),rgba(226,239,235,.82) 58%,rgba(226,239,235,0));
  opacity:.58;
  transform:none;
  border-radius:50%;
  box-shadow:none;
}

.page-hero .container{
  width:100%;
  max-width:none;
  padding:0 42px;
  position:relative;
  z-index:3;
}

.page-hero h1{
  max-width:60%;
  margin:0 0 10px;
}

.page-hero p{
  max-width:56%;
  color:#596260;
  margin-bottom:0;
}

/* Petit motif pointillé, volontairement discret comme sur la proposition 2. */
.page-hero .container:after{
  content:"";
  position:absolute;
  left:68%;
  bottom:3px;
  width:58px;
  height:42px;
  background:radial-gradient(circle,#171717 0 2px,transparent 2.6px) 0 0/14px 14px;
  opacity:.62;
  transform:rotate(-4deg);
}

@media(max-width:900px){
  .page-hero{width:min(var(--max),calc(100% - 28px));border-radius:23px}
  .page-hero:before{width:43%;border-radius:64% 0 0 50% / 74% 0 0 66%}
  .page-hero::after{right:34%}
  .page-hero .container{padding:0 30px}
  .page-hero h1{max-width:67%}
  .page-hero p{max-width:62%}
  .page-hero .container:after{left:63%}
}

@media(max-width:600px){
  .page-hero{
    width:calc(100% - 20px);
    min-height:168px;
    margin-top:14px;
    padding:38px 0 32px;
    border-radius:20px;
  }
  .page-hero:before{
    width:47%;
    opacity:.72;
    border-radius:72% 0 0 58% / 76% 0 0 70%;
  }
  .page-hero::after{right:37%;width:16%;opacity:.7}
  .page-hero .container{padding:0 22px}
  .page-hero h1{max-width:75%;font-size:clamp(39px,12vw,58px)}
  .page-hero p{max-width:70%;font-size:15px}
  .page-hero .container:after{display:none}
}


/* V10 — BANDEAUX PAGES INTÉRIEURES : reproduction fidèle de la proposition 2
   Grand rectangle menthe, tache jaune à gauche, tache rouge en haut,
   photo à droite intégrée par une grande forme organique arrondie,
   motif de points noir près du raccord. */

.page-hero{
  width:min(var(--max),calc(100% - 40px));
  min-height:165px;
  margin:26px auto 0;
  padding:34px 0 30px;
  border-radius:0;
  overflow:hidden;
  background:#dfeceb;
  color:var(--ink);
  box-shadow:none;
  position:relative;
  isolation:isolate;
}

/* Photo à droite, sur toute la hauteur. */
.page-hero:before{
  content:"";
  position:absolute;
  z-index:0;
  top:0;
  right:0;
  width:34%;
  height:100%;
  background:
    linear-gradient(rgba(47,95,86,.10),rgba(47,95,86,.10)),
    var(--banner-image) center/cover no-repeat;
  opacity:1;
  border-radius:0;
  transform:none;
  box-shadow:none;
  -webkit-mask-image:none;
  mask-image:none;
  clip-path:polygon(24% 0,100% 0,100% 100%,6% 100%,0 78%,11% 58%,2% 35%,16% 18%);
}

/* La grande forme vert-bleu arrondie au raccord, comme sur la maquette. */
.page-hero .container:before{
  content:"";
  position:absolute;
  z-index:0;
  right:25.7%;
  top:-38px;
  width:130px;
  height:235px;
  background:#8fb9af;
  opacity:.52;
  border-radius:54% 46% 58% 42% / 42% 59% 41% 58%;
  transform:rotate(8deg);
}

/* Tache jaune à gauche */
.page-hero::after{
  content:"";
  position:absolute;
  z-index:0;
  left:-46px;
  bottom:-52px;
  width:145px;
  height:150px;
  background:#f4c126;
  border-radius:61% 39% 48% 52% / 43% 58% 42% 57%;
  opacity:.96;
  transform:rotate(-10deg);
  box-shadow:none;
}

/* Tache rouge supérieure */
.page-hero .container{
  width:100%;
  max-width:none;
  padding:0 90px;
  position:relative;
  z-index:2;
}
.page-hero .container > *{
  position:relative;
  z-index:3;
}
.page-hero .container:after{
  content:"";
  position:absolute;
  z-index:1;
  top:-70px;
  left:49%;
  width:230px;
  height:95px;
  background:#e75a49;
  border-radius:54% 46% 63% 37% / 62% 53% 47% 38%;
  transform:rotate(2deg);
}

/* Motif de points noir juste avant la photo */
.page-hero h1:after{
  content:"";
  position:absolute;
  left:calc(100% + 225px);
  bottom:-8px;
  width:56px;
  height:48px;
  background:radial-gradient(circle,#151515 0 2.2px,transparent 2.7px) 0 0/14px 14px;
  opacity:.78;
  transform:rotate(-4deg);
}

.page-hero h1{
  max-width:56%;
  margin:0 0 8px;
  position:relative;
}
.page-hero p{
  max-width:52%;
  color:#5c6663;
  margin-bottom:0;
}

/* On neutralise les anciens effets V8/V9 éventuels. */
.page-hero > .container{
  background:transparent !important;
}

/* Mobile / tablette */
@media(max-width:900px){
  .page-hero{
    width:min(var(--max),calc(100% - 28px));
    min-height:158px;
    padding:34px 0 28px;
  }
  .page-hero:before{width:39%;clip-path:polygon(28% 0,100% 0,100% 100%,10% 100%,0 76%,12% 56%,3% 33%,17% 15%)}
  .page-hero .container{padding:0 54px}
  .page-hero .container:before{right:30%;width:110px}
  .page-hero .container:after{left:44%;width:190px}
  .page-hero h1{max-width:58%}
  .page-hero p{max-width:56%}
  .page-hero h1:after{left:calc(100% + 105px)}
}
@media(max-width:600px){
  .page-hero{
    width:calc(100% - 20px);
    min-height:155px;
    margin-top:14px;
    padding:31px 0 27px;
  }
  .page-hero:before{width:45%;opacity:.78}
  .page-hero .container{padding:0 26px}
  .page-hero .container:before{right:33%;width:90px;opacity:.45}
  .page-hero .container:after{left:37%;top:-62px;width:150px;height:82px}
  .page-hero h1{max-width:62%;font-size:clamp(38px,12vw,56px)}
  .page-hero p{max-width:58%;font-size:14px}
  .page-hero h1:after{display:none}
  .page-hero::after{width:110px;height:120px;left:-42px;bottom:-50px}
}


/* ==========================================================
   V11 — BANDEAUX INTÉRIEURS = PROPOSITION 2, AU PLUS FIDÈLE
   ========================================================== */

/* Rectangle horizontal menthe, sans coins arrondis */
.page-hero{
  width:min(var(--max),calc(100% - 40px));
  height:132px;
  min-height:132px;
  margin:26px auto 0;
  padding:0;
  overflow:hidden;
  border-radius:0;
  box-shadow:none;
  background:#dfecea;
  color:#151515;
  position:relative;
  isolation:isolate;
}

/* Photo à droite, rectangulaire, pleine hauteur */
.page-hero::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0 0 0 auto;
  width:31%;
  height:100%;
  background:
    linear-gradient(rgba(70,122,110,.10),rgba(70,122,110,.10)),
    var(--banner-image) center/cover no-repeat;
  opacity:1;
  border-radius:0;
  clip-path:none;
  transform:none;
  box-shadow:none;
  -webkit-mask-image:none;
  mask-image:none;
}

/* Forme organique vert d'eau au raccord photo/fond */
.page-hero::after{
  content:"";
  position:absolute;
  z-index:1;
  top:-18px;
  right:26.2%;
  width:108px;
  height:165px;
  background:#9dc7bd;
  opacity:.58;
  border-radius:58% 42% 54% 46% / 42% 58% 42% 58%;
  transform:rotate(8deg);
  box-shadow:none;
}

/* Zone de texte */
.page-hero .container{
  width:100%;
  max-width:none;
  height:100%;
  margin:0;
  padding:20px 0 0 88px;
  position:relative;
  z-index:3;
  background:transparent !important;
}

/* Tache rouge en partie haute, exactement comme la maquette */
.page-hero .container::before{
  content:"";
  position:absolute;
  z-index:0;
  top:-48px;
  left:46%;
  width:235px;
  height:82px;
  background:#e75b4c;
  opacity:.95;
  border-radius:52% 48% 62% 38% / 57% 49% 51% 43%;
  transform:rotate(2deg);
}

/* Motif de points noirs près du raccord */
.page-hero .container::after{
  content:"";
  position:absolute;
  z-index:2;
  right:31.8%;
  bottom:14px;
  width:52px;
  height:42px;
  background:
    radial-gradient(circle,#111 0 2px,transparent 2.6px) 0 0/13px 13px;
  opacity:.82;
  transform:rotate(-3deg);
}

/* Tache jaune à gauche */
.page-hero h1::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-92px;
  bottom:-58px;
  width:112px;
  height:122px;
  background:#f3bf25;
  border-radius:64% 36% 49% 51% / 45% 59% 41% 55%;
  transform:rotate(-8deg);
}
.page-hero h1::after{display:none !important}

/* Titre comme sur la proposition : grand, léger, très lisible */
.page-hero h1{
  position:relative;
  z-index:3;
  max-width:58%;
  margin:0;
  font-size:clamp(46px,4.3vw,67px);
  line-height:.95;
  color:#151515;
}

/* Le descriptif qui existait dans les anciennes versions ne fait PAS partie de la proposition 2 */
.page-hero > .container > p{
  display:none !important;
}

/* Fil d'Ariane sous le titre */
.banner-crumb{
  position:relative;
  z-index:3;
  margin-top:12px;
  font-size:14px;
  color:#202020;
  font-weight:500;
}
.banner-crumb span{
  display:inline-block;
  padding:0 9px;
  color:#555;
}

/* Responsive : garder la même composition, seulement la compacter */
@media(max-width:900px){
  .page-hero{
    width:min(var(--max),calc(100% - 28px));
    height:126px;
    min-height:126px;
  }
  .page-hero::before{width:34%}
  .page-hero::after{right:28.4%;width:94px;height:154px}
  .page-hero .container{padding-left:58px;padding-top:20px}
  .page-hero .container::before{left:43%;width:195px}
  .page-hero .container::after{right:34.3%}
  .page-hero h1{max-width:60%;font-size:clamp(42px,6vw,58px)}
  .page-hero h1::before{left:-66px}
}
@media(max-width:600px){
  .page-hero{
    width:calc(100% - 20px);
    height:118px;
    min-height:118px;
    margin-top:14px;
  }
  .page-hero::before{width:39%;opacity:.88}
  .page-hero::after{right:31.8%;width:76px;height:140px;top:-14px}
  .page-hero .container{padding:20px 0 0 32px}
  .page-hero .container::before{left:36%;top:-48px;width:155px;height:73px}
  .page-hero .container::after{display:none}
  .page-hero h1{max-width:64%;font-size:clamp(35px,10.5vw,48px)}
  .page-hero h1::before{left:-48px;bottom:-55px;width:86px;height:104px}
  .banner-crumb{font-size:12px;margin-top:9px}
}


/* =============================================================
   V12 — BANDEAU VALIDÉ VISUELLEMENT
   Reproduction du bandeau accepté : SVG + texte HTML.
   ============================================================= */

.page-hero.banner-v12{
  width:min(1500px,calc(100% - 44px)) !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:1600 / 440;
  margin:28px auto 0 !important;
  padding:0 !important;
  background:none !important;
  border-radius:24px !important;
  overflow:hidden !important;
  box-shadow:none !important;
  position:relative !important;
  isolation:auto !important;
}
.page-hero.banner-v12::before,
.page-hero.banner-v12::after{
  display:none !important;
}
.banner-v12-art{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}
.banner-v12-content{
  position:absolute;
  z-index:5;
  left:9%;
  top:24%;
  width:53%;
}
.banner-v12-content::before,
.banner-v12-content::after{
  display:none !important;
}
.banner-v12-content h1{
  position:static !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  color:#111 !important;
  font-size:clamp(46px,5.4vw,88px) !important;
  line-height:.95 !important;
  font-weight:400 !important;
}
.banner-v12-content h1::before,
.banner-v12-content h1::after{
  display:none !important;
}
.banner-v12 .banner-crumb{
  margin-top:22px !important;
  color:#163e37 !important;
  font-size:clamp(13px,1.15vw,18px) !important;
  font-weight:600 !important;
}
.banner-v12 .banner-crumb span{
  color:#222 !important;
  padding:0 12px !important;
}

@media(max-width:900px){
  .page-hero.banner-v12{
    width:calc(100% - 28px) !important;
    aspect-ratio:1500 / 460;
  }
  .banner-v12-content{
    left:7%;
    top:24%;
    width:57%;
  }
  .banner-v12-content h1{
    font-size:clamp(40px,7vw,66px) !important;
  }
  .banner-v12 .banner-crumb{
    margin-top:14px !important;
  }
}
@media(max-width:600px){
  .page-hero.banner-v12{
    width:calc(100% - 18px) !important;
    aspect-ratio:1000 / 420;
    border-radius:18px !important;
  }
  .banner-v12-art{
    width:138%;
    left:-8%;
  }
  .banner-v12-content{
    left:7%;
    top:23%;
    width:60%;
  }
  .banner-v12-content h1{
    font-size:clamp(31px,10vw,45px) !important;
  }
  .banner-v12 .banner-crumb{
    margin-top:10px !important;
    font-size:11px !important;
  }
}


/* V15 — Header : logo sur 2 lignes */
.brand{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  text-decoration:none !important;
  min-width:245px;
  line-height:1;
}
.brand-name{
  display:block !important;
  font-size:32px;
  line-height:1;
  letter-spacing:.01em;
}
.brand-sub{
  display:block !important;
  margin-top:5px;
  margin-left:7px;
  font-size:12px;
  line-height:1;
  font-weight:700;
  color:#555;
  transform:rotate(-2.2deg);
  transform-origin:left center;
  white-space:nowrap;
}

@media(max-width:900px){
  .brand-name{font-size:29px}
  .brand-sub{
    display:block !important;
    font-size:10px;
    margin-top:4px;
    margin-left:5px;
  }
}

@media(max-width:600px){
  .brand-sub{
    font-size:9px;
    margin-left:3px;
  }
}

/* V16 — sous-signature du logo en jaune */
.brand-sub{
  color:#f5c126 !important;
}

/* V17 — sous-signature du logo en rouge */
.brand-sub{
  color:#ef4d3f !important;
}

/* V18 */
.cards .card > img{width:100%;height:190px;object-fit:cover;display:block}.single-feature-photo img,.volunteer-feature img{width:100%;max-height:620px;object-fit:cover;border-radius:26px;display:block}.volunteer-feature{margin-top:-25px;margin-bottom:45px}.partner-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;align-items:stretch}.partner-logo-card{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:18px;min-height:155px;padding:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.partner-mark{font-weight:800;line-height:1.05}.partner-mark span{font-size:.7em;font-weight:600}.partner-mark.chasseneuil{color:#1f665d}.partner-mark.chasseneuil span{color:#e6814d;font-family:serif;font-style:italic}.partner-mark.charente-limousine{color:#356b5b}.partner-mark.charente{color:#ef5638;font-size:1.3rem}.partner-mark.region{color:#171717;text-align:left}.partner-mark.region strong{font-size:1.35rem}.eu-emblem{background:#0645a5;color:#ffd22e;border-radius:8px;padding:10px 14px;margin-bottom:8px;display:flex;flex-direction:column;line-height:1}.partner-note{text-align:center;margin-top:14px}.contact-association{font-size:.55em;text-transform:uppercase;letter-spacing:.12em;color:#666}@media(max-width:900px){.partner-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.partner-grid{grid-template-columns:1fr}}

/* V19 content refinements */
.single-feature-photo{max-height:430px;overflow:hidden;border-radius:26px}.single-feature-photo img{height:430px;max-height:none;object-fit:cover;object-position:center 44%}.ticket-local{margin-top:24px;padding-top:20px;border-top:1px solid rgba(0,0,0,.12)}.ticket-local h3{margin-bottom:8px}.partner-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.mecenes-zone{margin-top:48px}.mecenes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}.mecene-placeholder{min-height:150px;background:#fff;border:1px dashed rgba(0,0,0,.25);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:18px}.mecene-placeholder span{display:flex;width:70px;height:54px;border-radius:10px;background:#f2efe4;align-items:center;justify-content:center;color:#777;font-size:.8rem}.contact-name span{font:inherit;color:inherit;letter-spacing:inherit;text-transform:none}@media(max-width:800px){.mecenes-grid{grid-template-columns:repeat(2,1fr)}.single-feature-photo,.single-feature-photo img{height:300px}}


/* V20 — partenaires, infos pratiques, hébergements, favicon/contact */
.bank-partners-section{background:#fffaf0}
.bank-partners-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:850px}
.bank-partner-card{
  display:flex;align-items:center;gap:22px;background:#fff;border:2px solid var(--ink);
  border-radius:16px;padding:18px 22px;text-decoration:none;min-height:130px;
}
.bank-partner-card img{width:180px;height:90px;object-fit:contain;background:#fff;border-radius:8px}
.bank-partner-card strong{font-size:19px}
.patron-contact-btn{margin-top:16px}
.collective-section{padding-top:26px}
.collective-box{background:#dfeeed;border:2px solid var(--ink);border-radius:20px;padding:34px;position:relative;overflow:hidden}
.collective-box:after{
  content:"";position:absolute;right:-32px;top:-32px;width:140px;height:100px;background:var(--yellow);
  border-radius:54% 46% 60% 40% / 58% 43% 57% 42%;opacity:.75;transform:rotate(8deg)
}

.cards .card > img{width:100%;height:205px;object-fit:cover}
.photo-credits{font-size:11px;color:#777;grid-column:1/-1;margin-top:8px}

.nearby-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.nearby-card{background:#fff;border:2px solid var(--ink);border-radius:15px;overflow:hidden;text-decoration:none;transition:.2s}
.nearby-card:hover{transform:translateY(-3px);box-shadow:5px 6px 0 rgba(0,0,0,.10)}
.nearby-card img{width:100%;height:155px;object-fit:cover}
.nearby-card div{padding:16px}
.nearby-card h3{font-size:18px;margin-bottom:8px}
.nearby-card p{font-size:14px;color:#666}
.nearby-card span{font-weight:800;color:var(--red);font-size:14px}
.contact-identity-box{position:relative}
.tpt-logo{display:block;width:145px;max-height:120px;object-fit:contain;margin:0 0 18px auto}

@media(max-width:950px){
  .nearby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bank-partners-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .nearby-grid{grid-template-columns:1fr}
  .bank-partner-card{flex-direction:column;align-items:flex-start}
  .bank-partner-card img{width:210px}
}


/* V21 — ajustements ciblés */
.contact-brand-row{
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:18px;
}
.contact-brand-row .tpt-logo{
  width:105px;
  max-height:95px;
  margin:0;
  flex:0 0 auto;
}
.contact-brand-row .kicker{
  margin-bottom:7px;
}
.contact-brand-row .contact-name{
  margin:0;
}
@media(max-width:600px){
  .contact-brand-row{
    align-items:flex-start;
    gap:14px;
  }
  .contact-brand-row .tpt-logo{
    width:82px;
    max-height:78px;
  }
}


/* V22 — correctifs ciblés */
.contact-brand-row{
  justify-content:space-between;
  width:100%;
}
.contact-brand-text{
  flex:1 1 auto;
  min-width:0;
}
.contact-brand-row .tpt-logo{
  margin-left:auto;
  margin-right:0;
}


/* V23 — programmation, réseaux sociaux et soirée VIP */
.footer-social{display:flex;align-items:center;gap:9px;margin-top:16px}
.footer-social span{font-size:13px;font-weight:800;margin-right:3px}
.footer-social a{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#fff;color:#171717;text-decoration:none;border:1px solid rgba(0,0,0,.15);
}
.footer-social a:hover{transform:translateY(-2px)}
.footer-social svg{width:18px;height:18px;fill:currentColor}

.program-featured{padding-bottom:18px}
.program-feature-card{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  background:#fff;border:2px solid var(--ink);border-radius:20px;overflow:hidden;
  box-shadow:8px 9px 0 rgba(0,0,0,.07);
}
.program-feature-image img{width:100%;height:100%;min-height:390px;object-fit:cover}
.program-feature-body{padding:32px}
.program-feature-body h3{font-size:34px;margin:8px 0}
.program-company{font-weight:800;color:#56615e}
.program-meta{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.program-meta span{background:#eef5f2;border-radius:999px;padding:8px 12px;font-weight:700;font-size:14px}

.spectacle-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:34px;align-items:start}
.spectacle-hero-img{width:100%;height:min(560px,50vw);object-fit:cover;border-radius:18px;margin-bottom:30px;border:2px solid var(--ink)}
.spectacle-aside{position:sticky;top:125px}
.spectacle-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.spectacle-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.spectacle-gallery a{display:block;overflow:hidden;border-radius:16px;border:2px solid var(--ink);background:#fff}
.spectacle-gallery img{width:100%;height:390px;object-fit:cover;transition:.22s}
.spectacle-gallery a:hover img{transform:scale(1.025)}

.vip-section{background:#fffaf0}
.vip-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;
  background:#fff;border:2px solid var(--ink);border-radius:20px;padding:28px;
}
.vip-photo{width:100%;height:330px;object-fit:cover;border-radius:16px}

@media(max-width:850px){
  .program-feature-card,.spectacle-layout,.vip-grid{grid-template-columns:1fr}
  .program-feature-image img{min-height:260px}
  .spectacle-aside{position:static}
  .spectacle-gallery{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .spectacle-gallery{grid-template-columns:1fr}
  .spectacle-gallery img{height:340px}
}


/* V24 — accueil + programmation dynamique */
.hero-ticket-btn{color:var(--ink) !important;background:#fff !important}

.festival-countdown{
  margin-top:24px;
  display:flex;
  align-items:center;
  gap:22px;
  max-width:760px;
  padding:14px 16px;
  background:rgba(255,255,255,.92);
  color:var(--ink);
  border-radius:14px;
  border:1px solid rgba(0,0,0,.18);
  backdrop-filter:blur(5px);
}
.countdown-label{min-width:230px}
.countdown-label strong{display:block;font-size:16px}
.countdown-label span{display:block;font-size:12px;color:#646464;margin-top:3px}
.countdown-numbers{display:flex;gap:8px;flex:1}
.countdown-numbers div{
  min-width:58px;padding:7px 9px;text-align:center;border-radius:10px;background:var(--cream);
}
.countdown-numbers strong{display:block;font-size:21px;line-height:1}
.countdown-numbers span{display:block;font-size:10px;text-transform:uppercase;margin-top:4px;color:#666}

.program-slider{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  border:2px solid var(--ink);
  min-height:510px;
  background:#171717;
}
.program-slides{position:relative;min-height:510px}
.program-slide{
  position:absolute;inset:0;
  opacity:0;visibility:hidden;transition:opacity .45s ease;
}
.program-slide.active{opacity:1;visibility:visible}
.program-slide>img{width:100%;height:510px;object-fit:cover;display:block}
.program-slide:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.48) 45%,rgba(0,0,0,.08) 78%);
}
.program-slide-overlay{
  position:absolute;z-index:3;left:5%;bottom:8%;width:min(620px,70%);color:#fff;
}
.program-slide-overlay h3{font-size:clamp(38px,5vw,66px);margin:10px 0 4px}
.program-slide-overlay p{font-size:20px;font-weight:800;margin:0 0 7px}
.program-slide-kind{display:block;font-size:14px;margin-bottom:20px;color:#f2f2f2}
.program-slider-prev,.program-slider-next{
  position:absolute;z-index:5;top:50%;transform:translateY(-50%);
  width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.92);
  font-size:34px;line-height:1;cursor:pointer;color:#111;
}
.program-slider-prev{left:18px}.program-slider-next{right:18px}
.program-slider-dots{
  position:absolute;z-index:5;right:24px;bottom:20px;display:flex;gap:8px
}
.program-slider-dots button{
  width:11px;height:11px;padding:0;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer
}
.program-slider-dots button.active{background:#fff}
.program-slider-note{margin-top:10px}

.program-filters{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 18px}
.program-filter{
  border:2px solid var(--ink);background:#fff;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer
}
.program-filter.active{background:var(--yellow)}
.program-schedule{gap:13px}
.program-row{
  grid-template-columns:120px 150px 1fr 34px !important;
  text-decoration:none;color:inherit;transition:.18s;
}
.program-row:hover{transform:translateY(-2px);box-shadow:6px 7px 0 rgba(0,0,0,.07)}
.program-row-thumb{
  width:120px;height:95px;object-fit:cover;border-radius:10px;border:1px solid #333
}
.program-row-arrow{font-size:28px;font-weight:900}
.program-empty{
  margin-top:16px;padding:24px;background:#fff;border:2px dashed #777;border-radius:14px;color:#666
}

@media(max-width:800px){
  .festival-countdown{align-items:flex-start;flex-direction:column;gap:12px}
  .countdown-numbers{width:100%}
  .program-slider,.program-slides{min-height:430px}
  .program-slide>img{height:430px}
  .program-slide-overlay{width:78%;left:7%}
  .program-row{grid-template-columns:85px 1fr !important}
  .program-row-thumb{width:85px;height:85px}
  .program-row .event-date{grid-column:2}
  .program-row>div:nth-of-type(2){grid-column:1/-1}
  .program-row-arrow{display:none}
}
@media(max-width:520px){
  .countdown-numbers{display:grid;grid-template-columns:repeat(4,1fr)}
  .countdown-numbers div{min-width:0;padding:7px 4px}
  .program-slider,.program-slides{min-height:470px}
  .program-slide>img{height:470px}
  .program-slide-overlay{width:82%;bottom:6%}
  .program-slide-overlay h3{font-size:36px}
}


/* ==========================================================
   V25 — correctifs compte à rebours / filtres / billetterie
   ========================================================== */

/* Indispensable : les lignes filtrées doivent réellement disparaître,
   même si .event impose display:grid. */
[hidden]{
  display:none !important;
}

/* Compte à rebours : rendu visible dans le hero */
.festival-countdown{
  position:relative;
  z-index:4;
  margin-top:22px;
  max-width:760px;
  display:flex;
  align-items:center;
  gap:20px;
  padding:13px 15px;
  background:rgba(255,255,255,.94);
  color:var(--ink);
  border:1px solid rgba(0,0,0,.20);
  border-radius:14px;
  box-shadow:0 5px 16px rgba(0,0,0,.08);
}
.countdown-label{
  flex:1 1 260px;
}
.countdown-label strong{
  display:block;
  font-size:16px;
  margin-bottom:3px;
}
.countdown-label span{
  display:block;
  color:#626262;
  font-size:12px;
}
.countdown-numbers{
  display:grid;
  grid-template-columns:repeat(4,minmax(55px,1fr));
  gap:8px;
  flex:1 1 310px;
}
.countdown-numbers div{
  text-align:center;
  background:var(--cream);
  border-radius:10px;
  padding:8px 6px 7px;
}
.countdown-numbers strong{
  display:block;
  font-size:22px;
  line-height:1;
}
.countdown-numbers span{
  display:block;
  margin-top:4px;
  font-size:10px;
  text-transform:uppercase;
  color:#686868;
}

/* Buvette : 4 cartes, présentation équilibrée */
.buvette-cards-four{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

/* Billetterie en deux colonnes */
.ticket-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  align-items:stretch;
}
.ticket-columns .info-box{
  display:flex;
  flex-direction:column;
}
.ticket-online{
  border-top:7px solid var(--red);
}
.ticket-physical{
  border-top:7px solid var(--yellow);
}
.ticket-helloasso-notice{
  margin-top:24px;
  background:#fff7db;
}
.ticket-address{
  margin:18px 0 22px;
  padding:18px;
  background:#f3f7f5;
  border-radius:12px;
  line-height:1.55;
}
.ticket-columns .btn{
  width:max-content;
  max-width:100%;
  margin-top:8px;
}

@media(max-width:850px){
  .festival-countdown{
    flex-direction:column;
    align-items:stretch;
    max-width:620px;
  }
  .ticket-columns{
    grid-template-columns:1fr;
  }
}
@media(max-width:560px){
  .countdown-numbers{
    grid-template-columns:repeat(4,1fr);
  }
  .countdown-numbers strong{
    font-size:18px;
  }
  .countdown-numbers div{
    padding-left:3px;
    padding-right:3px;
  }
}


/* =====================================================
   V26 — ajustements ciblés
   ===================================================== */

/* Buvette : 3 cartes alignées + bandeau gobelets pleine largeur */
.buvette-main-cards{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.cups-wide-banner{
  margin-top:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
  padding:20px 24px;
  background:#e5f0ec;
  border:2px solid var(--ink);
  border-left:12px solid var(--yellow);
  border-radius:16px;
  text-decoration:none;
  color:inherit;
}
.cups-wide-banner h3{margin:4px 0 6px}
.cups-wide-banner p{margin:0;color:#666;max-width:820px}
.cups-wide-link{
  flex:0 0 auto;
  font-weight:900;
  color:var(--red);
}

/* Compte à rebours réduit à une simple petite barre */
.festival-countdown.compact-countdown{
  display:inline-flex !important;
  align-items:center;
  gap:9px;
  width:auto;
  max-width:100%;
  margin-top:14px;
  padding:7px 11px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(255,255,255,.65);
  border-radius:999px;
  box-shadow:none;
  backdrop-filter:blur(3px);
  color:#1d1d1d;
  font-size:12px;
  line-height:1;
}
.compact-countdown .countdown-mini-label{
  font-weight:700;
}
.compact-countdown .countdown-mini-label strong{
  color:var(--red);
  font-size:14px;
}
.compact-countdown .countdown-mini-time{
  padding-left:9px;
  border-left:1px solid rgba(0,0,0,.18);
  color:#555;
}
.compact-countdown .countdown-mini-note{
  padding:5px 8px;
  border-radius:999px;
  background:var(--yellow);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}

/* Neutraliser les grosses règles du compteur V24/V25 */
.compact-countdown .countdown-label,
.compact-countdown .countdown-numbers{
  display:none !important;
}

/* Filtre : affichage piloté explicitement en JS */
.program-row{
  display:grid;
}

@media(max-width:720px){
  .buvette-main-cards{
    grid-template-columns:1fr !important;
  }
  .cups-wide-banner{
    align-items:flex-start;
    flex-direction:column;
  }
  .festival-countdown.compact-countdown{
    gap:7px;
    flex-wrap:wrap;
    border-radius:14px;
  }
}


/* V27 — programmation enrichie */
.program-slide-overlay h3{
  max-width:820px;
}
@media(max-width:700px){
  .program-slide-overlay h3{
    font-size:clamp(31px,9vw,46px);
  }
}

/* V28 — correction visuelle Armoire + liste programmation */
.program-slide img[alt="L'Armoire Polyphonique"]{object-position:center 35%;}

/* V30 — menu programmation séparé + page Les + */
.program-plus-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1050px){.nav{gap:14px}.nav a{font-size:14px}}
@media(max-width:850px){.program-plus-cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.program-plus-cards{grid-template-columns:1fr}}

/* V31 — téléchargement grille */
.program-download-box{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 32px;border-radius:24px;background:#f2c431}
.program-download-box h2{margin:.2rem 0 .35rem}
.program-download-box p{margin:0}
.disabled-link{opacity:.72;cursor:not-allowed}
@media(max-width:700px){.program-download-box{align-items:flex-start;flex-direction:column}}

/* V32 */
.program-download-box h2{font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.08}

/* V33 — Les + d'Hep Hep Hep */
.plus-intro{max-width:980px}
.plus-feature{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:36px;align-items:center}
.plus-feature-media img{width:100%;height:440px;object-fit:cover;border-radius:26px;display:block}
.plus-meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.plus-meta span{background:#fff;border-radius:999px;padding:8px 13px;font-weight:700;font-size:.9rem}
.plus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.plus-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 12px 34px rgba(20,40,40,.08)}
.plus-card-body{padding:26px}
.plus-card h3{margin:.45rem 0 .1rem;font-size:1.65rem}
.plus-company{font-weight:800;color:#52615f;margin-top:0}
.plus-card-wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.plus-card-wide>img{width:100%;height:100%;min-height:390px;object-fit:cover}
@media(max-width:800px){
 .plus-feature,.plus-card-wide{grid-template-columns:1fr}
 .plus-feature-media img{height:320px}
 .plus-grid{grid-template-columns:1fr}
 .plus-card-wide{grid-column:auto}
 .plus-card-wide>img{min-height:0;height:300px}
}

/* V35 — Les + : photos Payette / Tonton Fag et resserrage */
.plus-new-intro + .section { padding-top: 12px; }
.plus-new-intro { padding-bottom: 12px; }
.plus-new-intro + .section .lead { margin-top: 0; }
.plus-small-photo {
  width: 100%;
  height: 210px;
  object-fit: cover;
  display: block;
}
@media (max-width: 800px) {
  .plus-small-photo { height: 190px; }
}

/* V37 — retour à la typographie Hep Hep Hep de la V35 */
.hero-content{transform:translateX(-34px)}
@media(max-width:900px){.hero-content{transform:none}}

/* Éco : panoramique pleine largeur */
.eco-wide-photo{
  width:100%;
  height:430px;
  object-fit:cover;
  object-position:center 22%;
  border-radius:24px;
  display:block;
}

/* Bénévoles */
.volunteer-feature{margin-top:-52px}
.volunteer-feature img{
  height:390px;
  object-fit:cover;
  object-position:center 62%;
}

/* Contact */
.contact-brand-row .kicker{margin-bottom:12px}

/* Les + */
.program-plus-cards-v36{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}
.program-plus-cards-v36 .card{height:100%}
.program-plus-cards-v36 a{text-decoration:none}
.plus-definition{
  margin:0 0 24px;
  max-width:850px;
  color:var(--text);
}
.plus-detail-section{scroll-margin-top:120px}
.market-box,.surprise-box,.expo-box{
  background:#fff;
  border:1px solid #343434;
  border-radius:18px;
  padding:28px;
  box-shadow:6px 7px 0 #1717170d;
}
@media(max-width:1050px){
  .program-plus-cards-v36{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:700px){
  .program-plus-cards-v36{grid-template-columns:1fr}
  .eco-wide-photo{height:280px}
}

/* Mécènes */
.mecene-logo-card{
  min-height:150px;
  background:#fff;
  border:1px solid rgba(0,0,0,.14);
  border-radius:18px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:18px;
  gap:10px;
  text-align:center;
  text-decoration:none;
}
.mecene-logo-card img{
  width:100%;
  max-width:175px;
  height:78px;
  object-fit:contain;
}
.mecene-logo-fallback{
  font-size:1.25rem;
  font-weight:900;
  line-height:1.05;
}

.contact-find-kicker{margin-bottom:14px !important}

/* V38 — petit espacement page hébergements */
.stay-kicker{margin-bottom:8px;}

/* V39 */
.plan-placeholder{min-height:380px;border:2px dashed rgba(0,0,0,.22);border-radius:28px;background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;padding:36px;margin:24px 0 34px;text-align:center}
.plan-placeholder>div{max-width:720px}
.parking-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.info-panel{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:24px;padding:28px}
.info-panel li{margin:.55rem 0}
@media(max-width:800px){.parking-grid{grid-template-columns:1fr}}

/* V40 — intégration plan */
.site-plan-preview{max-width:980px;margin:28px auto 38px;text-align:center}
.site-plan-preview img{display:block;width:100%;height:auto;aspect-ratio:992 / 1403;object-fit:contain;background:#fff;border-radius:22px;box-shadow:0 14px 40px rgba(0,0,0,.10)}
.site-plan-caption{max-width:760px;margin:14px auto 0;color:#6b6b6b}
.access-arrival-box{max-width:920px;margin:0 auto}

/* V41 — page plan et accès */
.site-plan-page{
  padding-top:46px;
}
.site-plan-heading{
  max-width:900px;
  margin:0 auto 22px;
}
.site-plan-heading p{
  max-width:780px;
  color:#68706e;
}
.site-plan-card{
  max-width:760px;
  margin:0 auto;
  padding:18px;
  background:#f6f1df;
  border-radius:30px;
  border:1px solid rgba(0,0,0,.12);
  box-shadow:0 14px 36px rgba(25,40,36,.08);
}
.site-plan-card img{
  display:block;
  width:100%;
  height:auto;
  border-radius:20px;
}
.site-plan-caption{
  max-width:760px;
  margin:14px auto 0;
  color:#707775;
}
.site-plan-actions{
  max-width:760px;
  margin:20px auto 0;
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}
@media(max-width:800px){
  .site-plan-card{padding:10px;border-radius:20px}
  .site-plan-card img{border-radius:14px}
}

/* V42 — tarifs + plan + ajustements */
.tariff-card-visual{
  height:180px;
  background:#dfeeed;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.tariff-card-visual span:first-child{
  font-size:82px;
  font-weight:900;
  color:#f04f3e;
  transform:rotate(-8deg);
}
.tariff-card-dot{
  position:absolute;
  width:90px;height:90px;border-radius:50%;
  background:#f4bd20;
  right:-18px;bottom:-22px;
}

.tariff-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:28px 0 34px;
}
.tariff-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.14);
  border-radius:22px;
  padding:26px;
}
.tariff-card h3{
  font-size:clamp(2rem,4vw,3.2rem);
  margin:.35rem 0 .5rem;
}
.tariff-card-featured{
  background:#dfeeed;
  border-color:#3f8076;
}
.tariff-benefactor{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(0,0,0,.12);
  color:#555;
}
.tariff-info-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:24px;
  margin-top:16px;
}
.benefactor-box{border-left:8px solid #ee4f3e}
.leisure-pass-box{border-left:8px solid #f4bd20}
.tariff-note{margin-top:26px}

.ticket-price-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.ticket-price-grid>div{
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  border-radius:18px;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.ticket-price-grid span{
  font-size:1.8rem;
  font-weight:900;
}
.ticket-price-grid small{color:#666}
.ticket-pass-note{margin-top:14px}

.partners-intro{
  max-width:900px;
  margin-bottom:26px;
}

/* Plan V42 : plus compact et plus éditorial */
.site-plan-card{
  max-width:690px;
  background:#efe9d7;
  padding:14px;
  border-radius:24px;
  box-shadow:0 12px 28px rgba(25,40,36,.07);
}
.site-plan-card img{border-radius:16px}
.site-plan-actions{max-width:690px}

@media(max-width:900px){
  .tariff-grid{grid-template-columns:1fr 1fr}
  .tariff-info-grid{grid-template-columns:1fr}
  .ticket-price-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .tariff-grid,.ticket-price-grid{grid-template-columns:1fr}
}

/* V43 */
.benefactor-explain-link{margin-top:8px}
.tariff-booking-link{margin:24px 0 8px}
.surprise-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.surprise-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(20,35,35,.07);
}
.surprise-photo{
  width:100%;
  height:300px;
  object-fit:cover;
  display:block;
}
.surprise-logo-wrap{
  height:300px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  padding:34px;
}
.surprise-logo{
  max-width:82%;
  max-height:170px;
  object-fit:contain;
}
.surprise-copy{padding:24px}
.surprise-copy h3{margin:.45rem 0 .7rem}
@media(max-width:760px){
  .surprise-grid{grid-template-columns:1fr}
}

/* V44 — Tarifs */
.tariff-booking-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin:22px 0 30px;
  padding:24px 28px;
  border-radius:22px;
  background:#dfeeed;
  border:1px solid rgba(0,0,0,.10);
}
.tariff-booking-cta h3{margin:.25rem 0 .4rem}
.tariff-booking-cta p{margin:0;max-width:700px}
.tariff-bottom-booking{
  margin-top:28px;
  display:flex;
  justify-content:center;
}
@media(max-width:760px){
  .tariff-booking-cta{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* V46 — correction complète du menu mobile */
.submenu-toggle{
  display:none;
}

@media(max-width:900px){
  .site-header{
    z-index:1000;
  }

  .header-inner{
    min-height:82px;
  }

  .nav{
    display:none;
    position:fixed;
    top:82px;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    max-height:calc(100dvh - 82px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:var(--cream);
    border-bottom:0;
    padding:10px 14px 28px;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
  }

  .nav.open{
    display:flex;
  }

  .nav > a,
  .nav-item > a{
    padding:13px 12px;
  }

  .nav-item{
    display:grid;
    grid-template-columns:1fr 46px;
    align-items:center;
  }

  .nav-item > a{
    grid-column:1;
    min-width:0;
  }

  .submenu-toggle{
    display:flex;
    grid-column:2;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    margin-right:2px;
    border:0;
    background:transparent;
    border-radius:9px;
    color:#424242;
    font-size:21px;
    line-height:1;
    cursor:pointer;
  }

  .submenu-toggle:hover,
  .submenu-toggle:focus-visible{
    background:var(--yellow-soft);
  }

  .submenu-toggle::before{
    content:"⌄";
    display:block;
    transition:transform .18s ease;
  }

  .nav-item.submenu-open > .submenu-toggle::before{
    transform:rotate(180deg);
  }

  /* Contrairement à l'ancienne version, les sous-menus sont fermés au départ. */
  .nav .dropdown{
    display:none;
    position:static;
    grid-column:1 / -1;
    min-width:0;
    margin:0 0 5px;
    padding:3px 0 6px 15px;
    border:0;
    border-left:2px solid rgba(0,0,0,.13);
    box-shadow:none;
    border-radius:0;
    background:transparent;
  }

  .nav-item.submenu-open > .dropdown{
    display:block;
  }

  .nav .dropdown a{
    padding:10px 12px;
    font-size:15px;
    font-weight:650;
  }

  /* Désactive le comportement hover desktop qui ouvrait tout sur mobile. */
  .nav-item:hover > .dropdown,
  .nav-item:focus-within > .dropdown{
    display:none;
  }
  .nav-item.submenu-open:hover > .dropdown,
  .nav-item.submenu-open:focus-within > .dropdown{
    display:block;
  }

  body.mobile-menu-open{
    overflow:hidden;
  }
}

/* V47 — formulaire de contact Formspree */
.form-honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.form-status{
  display:none;
  margin-top:16px;
  padding:14px 16px;
  border-radius:12px;
  font-weight:700;
}
.form-status.is-success{
  display:block;
  background:#e3f1e8;
  border:1px solid #a9ceb6;
}
.form-status.is-error{
  display:block;
  background:#fbe5e1;
  border:1px solid #e7aaa0;
}

/* V50 — formulaire hébergement */
#host-form textarea{
  width:100%;
  min-height:110px;
  resize:vertical;
}
#host-form .optional{
  font-size:.86em;
  font-weight:500;
  color:#777;
}

.home-quick-v51{max-width:1180px;margin:-20px auto 40px;position:relative;z-index:8;padding:0 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.home-quick-v51 a{background:#fff;border-radius:18px;padding:18px 20px;text-decoration:none;color:inherit;box-shadow:0 8px 28px rgba(0,0,0,.09)}.home-quick-v51 strong,.home-quick-v51 span{display:block}.home-quick-v51 span{margin-top:5px;color:#707070;font-size:.9rem}.footer-legal{margin-top:18px;font-size:.84rem}.footer-legal a{color:inherit}@media(max-width:760px){.home-quick-v51{grid-template-columns:1fr 1fr;margin-top:18px}.home-quick-v51 a{padding:15px}}

/* V52 — footer légal aligné avec le copyright */
.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}
.footer-bottom-links{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.84rem;
}
.footer-bottom-links a{
  color:inherit;
  text-decoration:none;
}
.footer-bottom-links a:hover{
  text-decoration:underline;
}
@media(max-width:620px){
  .footer-bottom{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
}

/* V53 — proposition accueil : hiérarchie de fin de page, sans toucher au header */
.home-essentials-v53{
  max-width:1180px;
  margin:70px auto 80px;
  padding:0 22px;
}
.home-essentials-v53__intro{
  max-width:690px;
  margin-bottom:24px;
}
.home-essentials-v53__intro .eyebrow{
  margin:0 0 7px;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:.78rem;
  font-weight:800;
  opacity:.66;
}
.home-essentials-v53__intro h2{
  margin:0 0 9px;
}
.home-essentials-v53__intro p:last-child{
  margin:0;
  line-height:1.6;
}
.home-essentials-v53__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.home-essential-card{
  min-height:175px;
  padding:24px;
  border-radius:24px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  text-decoration:none;
  color:inherit;
  position:relative;
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
}
.home-essential-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 30px rgba(0,0,0,.10);
}
.home-essential-card::before{
  content:"";
  position:absolute;
  width:95px;
  height:95px;
  border-radius:50%;
  right:-25px;
  top:-28px;
  background:rgba(255,255,255,.28);
}
.home-essential-card--yellow{background:#f4d23c;}
.home-essential-card--red{background:#e95845;}
.home-essential-card--blue{background:#75b5b0;}
.home-essential-card__kicker{
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:8px;
}
.home-essential-card strong{
  font-size:1.2rem;
  line-height:1.18;
  max-width:270px;
}
.home-essential-card > span:last-child{
  margin-top:15px;
  font-size:.9rem;
  font-weight:700;
}
@media(max-width:760px){
  .home-essentials-v53{margin:48px auto 55px;}
  .home-essentials-v53__grid{grid-template-columns:1fr;}
  .home-essential-card{min-height:140px;}
}

/* V54 — footer légal inline */
.footer-inline-legal{font-size:.92em;white-space:normal}
.footer-inline-legal a{color:inherit;text-decoration:none}
.footer-inline-legal a:hover{text-decoration:underline}

/* V55 — grille complète HTML */
.program-grid-link-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:28px 32px;
  border-radius:24px;
  background:#f4d23c;
}
.program-grid-link-box h2{
  margin:.2rem 0 .35rem;
  font-size:clamp(1.35rem,2.3vw,2rem);
}
.program-grid-link-box p{margin:0}

.schedule-day-block{
  margin-top:36px;
}
.schedule-day-title{
  display:flex;
  align-items:baseline;
  gap:12px;
  margin-bottom:12px;
}
.schedule-day-title span{
  font-size:clamp(1.9rem,4vw,3.2rem);
  font-weight:900;
}
.schedule-day-title strong{
  font-size:1.05rem;
  color:#67706e;
}
.schedule-table{
  border-top:1px solid rgba(0,0,0,.12);
}
.schedule-table-row{
  display:grid;
  grid-template-columns:100px minmax(0,1fr) 220px 30px;
  gap:18px;
  align-items:center;
  padding:15px 8px;
  text-decoration:none;
  color:inherit;
  border-bottom:1px solid rgba(0,0,0,.10);
  transition:background .15s ease;
}
.schedule-table-row:hover{
  background:#f7f3e7;
}
.schedule-table-time{
  font-size:1.15rem;
  font-weight:900;
}
.schedule-table-main{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.schedule-table-main strong{
  font-size:1.05rem;
}
.schedule-table-main span{
  color:#69716f;
  font-size:.92rem;
}
.schedule-table-tag{
  font-size:.86rem;
  font-weight:700;
  color:#52615f;
}
.schedule-table-arrow{
  font-size:1.2rem;
  font-weight:900;
}
.schedule-back{
  margin-top:34px;
}
@media(max-width:760px){
  .program-grid-link-box{
    align-items:flex-start;
    flex-direction:column;
  }
  .schedule-table-row{
    grid-template-columns:72px minmax(0,1fr) 24px;
    gap:12px;
  }
  .schedule-table-tag{
    grid-column:2;
    margin-top:-4px;
  }
  .schedule-table-arrow{
    grid-column:3;
    grid-row:1 / span 2;
  }
}

/* V56 — grille programmation plus claire */
.full-schedule-page{
  background:#faf9f5;
}
.full-schedule-page .container{
  max-width:1120px;
}
.schedule-anchor-nav{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:24px 0 6px;
}
.schedule-anchor-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(0,0,0,.14);
  color:#222;
  text-decoration:none;
  font-weight:800;
  box-shadow:0 3px 10px rgba(0,0,0,.04);
}
.schedule-anchor-nav a:hover{
  background:#f4d23c;
}

.schedule-day-block{
  scroll-margin-top:115px;
  margin-top:42px;
  padding:26px 26px 18px;
  background:#fff;
  border:1px solid rgba(0,0,0,.10);
  border-radius:24px;
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}
.schedule-day-title{
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:2px solid rgba(0,0,0,.08);
}
.schedule-day-title span{
  color:#202020;
}
.schedule-day-title strong{
  color:#666;
}

.schedule-columns-head{
  display:grid;
  grid-template-columns:100px minmax(0,1fr) 220px;
  gap:18px;
  padding:0 8px 9px;
  color:#7a7a74;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.schedule-table{
  border-top:0;
}
.schedule-table-row{
  grid-template-columns:100px minmax(0,1fr) 220px 30px;
  padding:16px 8px;
  border-bottom:1px solid #ebe9e2;
}
.schedule-table-row:last-child{
  border-bottom:0;
}
.schedule-table-row:nth-child(even){
  background:#fcfbf7;
}
.schedule-table-row:hover{
  background:#f5f1e5;
}
.schedule-table-time{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-width:68px;
  padding:7px 10px;
  border-radius:10px;
  background:#f4d23c;
  color:#222;
  font-size:1rem;
  line-height:1;
}
.schedule-table-main strong{
  font-size:1.08rem;
}
.schedule-table-main span{
  margin-top:2px;
  color:#6d726f;
  line-height:1.35;
}
.schedule-table-tag{
  line-height:1.35;
}
.schedule-table-arrow{
  color:#d84d3d;
}

@media(max-width:760px){
  .full-schedule-page{
    background:#fff;
  }
  .schedule-day-block{
    margin-top:28px;
    padding:20px 16px 12px;
    border-radius:18px;
  }
  .schedule-columns-head{
    display:none;
  }
  .schedule-table-row{
    grid-template-columns:76px minmax(0,1fr) 22px;
    gap:10px;
    padding:15px 0;
    background:transparent !important;
  }
  .schedule-table-time{
    min-width:62px;
    padding:7px 8px;
    font-size:.95rem;
  }
  .schedule-table-main strong{
    font-size:1rem;
  }
  .schedule-table-tag{
    grid-column:2;
    font-size:.82rem;
    color:#7a7f7c;
  }
}

/* V57 — corrections grille complète */
.full-schedule-page{
  background:var(--cream, #f4eddb);
}
.schedule-day-block{
  background:#fff;
}
.schedule-table-time{
  white-space:nowrap;
}
.schedule-table-row:first-child .schedule-table-time{
  min-width:128px;
  font-size:.88rem;
  padding-left:10px;
  padding-right:10px;
}
@media(max-width:760px){
  .full-schedule-page{
    background:var(--cream, #f4eddb);
  }
  .schedule-table-row:first-child{
    grid-template-columns:112px minmax(0,1fr) 22px;
  }
  .schedule-table-row:first-child .schedule-table-time{
    min-width:104px;
    font-size:.76rem;
  }
}

/* V58 — correction finale badge "Toute la journée" */
.schedule-table-row:first-child{
  grid-template-columns:150px minmax(0,1fr) 220px 30px;
}
.schedule-table-row:first-child .schedule-table-time{
  width:132px;
  min-width:132px;
  justify-content:center;
  box-sizing:border-box;
}
@media(max-width:760px){
  .schedule-table-row:first-child{
    grid-template-columns:118px minmax(0,1fr) 22px;
  }
  .schedule-table-row:first-child .schedule-table-time{
    width:108px;
    min-width:108px;
    font-size:.74rem;
  }
}

/* V59 — garder Monsieur Loyal aligné avec tous les autres spectacles.
   Le badge long reste contenu dans la colonne horaire sans déplacer la colonne spectacle. */
.schedule-table-row:first-child{
  grid-template-columns:112px minmax(0,1fr) 220px 30px;
}
.schedule-table-row:first-child .schedule-table-time{
  width:auto;
  min-width:0;
  white-space:nowrap;
  font-size:.78rem;
  padding-left:10px;
  padding-right:10px;
  justify-self:start;
}
@media(max-width:760px){
  .schedule-table-row:first-child{
    grid-template-columns:100px minmax(0,1fr) 22px;
  }
  .schedule-table-row:first-child .schedule-table-time{
    width:auto;
    min-width:0;
    font-size:.68rem;
    padding-left:7px;
    padding-right:7px;
  }
}

/* V61 — cartes À découvrir : liens alignés en bas */
.nearby-grid{
  align-items:stretch;
}
.nearby-card{
  height:100%;
}
.nearby-card > div{
  display:flex;
  flex-direction:column;
  height:100%;
}
.nearby-card > div p{
  flex:1 1 auto;
}
.nearby-card > div span{
  margin-top:auto;
  padding-top:12px;
}


/* =========================================================
   V62 — proposition de header d'accueil
   Uniquement disposition des textes existants + compte à rebours.
   ========================================================= */
@media (min-width: 821px){
  .hero{
    min-height: 690px;
  }

  /* L'image respire davantage : voile plus léger et concentré à gauche/bas */
  .hero::after{
    background:
      linear-gradient(90deg, rgba(10,10,10,.64) 0%, rgba(10,10,10,.36) 34%, rgba(10,10,10,.08) 64%, rgba(10,10,10,.12) 100%),
      linear-gradient(0deg, rgba(10,10,10,.32) 0%, rgba(10,10,10,0) 46%);
  }

  .hero-content{
    position:relative;
    min-height:690px;
    padding-top:46px;
    padding-bottom:46px;
    display:block;
  }

  /* Hep Hep Hep reste très visible mais plus haut et plus à gauche */
  .hero-content .splash{
    position:absolute;
    top:42px;
    left:0;
    margin:0;
    z-index:2;
  }

  .hero-content .splash h1{
    font-size:clamp(4.4rem,7.2vw,7.1rem);
    line-height:.78;
    letter-spacing:-.045em;
  }

  /* Bloc d'informations resserré : il occupe moins la photographie */
  .hero-copy-v62{
    position:absolute;
    left:0;
    bottom:48px;
    width:min(540px,48vw);
    z-index:2;
  }

  .hero-copy-v62 .hero-date{
    margin:0 0 9px;
    font-size:clamp(2.1rem,3.3vw,3.65rem);
    line-height:.95;
    transform:rotate(-1deg);
    transform-origin:left center;
  }

  .hero-copy-v62 .hero-public{
    margin:0 0 12px;
  }

  .hero-copy-v62 .hero-meta{
    margin:0 0 19px;
    max-width:470px;
  }

  .hero-copy-v62 .hero-actions{
    margin:0;
  }

  /* Compte à rebours façon macaron / affiche, en bas à droite */
  .countdown-poster-v62{
    position:absolute;
    right:0;
    bottom:44px;
    width:235px;
    min-height:158px;
    margin:0;
    padding:27px 22px 23px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:6px;
    text-align:center;
    border:2px solid rgba(255,255,255,.82);
    border-radius:50% 46% 48% 43% / 48% 44% 52% 46%;
    background:rgba(8,8,8,.76);
    box-shadow:0 8px 28px rgba(0,0,0,.2);
    transform:rotate(-2deg);
    backdrop-filter:blur(1px);
  }

  .countdown-poster-v62::before,
  .countdown-poster-v62::after{
    content:"";
    position:absolute;
    left:-22px;
    right:-22px;
    top:50%;
    height:2px;
    background:
      linear-gradient(90deg,
        rgba(255,255,255,.9) 0 12%,
        transparent 12% 88%,
        rgba(255,255,255,.9) 88% 100%);
    transform:rotate(8deg);
    pointer-events:none;
  }
  .countdown-poster-v62::after{
    transform:rotate(-8deg);
  }

  .countdown-poster-v62 .countdown-mini-label{
    font-size:.94rem;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    font-size:2.05rem;
    color:var(--yellow);
  }
  .countdown-poster-v62 .countdown-mini-time{
    font-size:1.04rem;
    color:var(--yellow);
    white-space:nowrap;
  }
  .countdown-poster-v62 .countdown-mini-note{
    font-size:.74rem;
    opacity:.86;
  }
}

/* Mobile : conserver la lisibilité et ne pas superposer le macaron */
@media (max-width: 820px){
  .hero-copy-v62{
    display:contents;
  }
  .countdown-poster-v62{
    margin-top:14px;
  }
}

/* =========================================================
   V63 — header accueil plus aéré
   Objectif : dégager le centre de la photo.
   ========================================================= */
@media (min-width: 821px){
  .hero{
    min-height:650px;
  }

  /* Beaucoup moins de voile au centre */
  .hero::after{
    background:
      linear-gradient(90deg,
        rgba(8,8,8,.58) 0%,
        rgba(8,8,8,.34) 24%,
        rgba(8,8,8,.10) 45%,
        rgba(8,8,8,.03) 63%,
        rgba(8,8,8,.16) 100%),
      linear-gradient(0deg,
        rgba(8,8,8,.28) 0%,
        rgba(8,8,8,.06) 36%,
        rgba(8,8,8,0) 58%);
  }

  .hero-content{
    min-height:650px;
    padding-top:34px;
    padding-bottom:36px;
  }

  /* Marque plus petite, vraiment rejetée à gauche */
  .hero-content .splash{
    top:44px;
    left:-72px;
    width:300px;
  }
  .hero-content .splash h1{
    font-size:clamp(3.2rem,4.7vw,4.9rem);
    line-height:.82;
    letter-spacing:-.035em;
  }

  /* Bloc de texte étroit, calé bas/gauche */
  .hero-copy-v62{
    left:-72px;
    bottom:38px;
    width:455px;
  }

  .hero-copy-v62 .hero-date{
    margin-bottom:8px;
    font-size:clamp(1.7rem,2.35vw,2.55rem);
    line-height:1;
  }

  .hero-copy-v62 .hero-public{
    margin-bottom:9px;
  }

  .hero-copy-v62 .hero-school,
  .hero-copy-v62 .hero-open{
    font-size:.73rem;
    padding:6px 12px;
  }

  .hero-copy-v62 .hero-meta{
    max-width:410px;
    margin-bottom:14px;
    font-size:.88rem;
    line-height:1.38;
  }

  .hero-copy-v62 .hero-actions{
    gap:9px;
  }

  .hero-copy-v62 .hero-actions .btn{
    padding:12px 16px;
    font-size:.86rem;
  }

  /* Compteur : plus petit, noir, irrégulier, complètement à droite */
  .countdown-poster-v62{
    right:-78px;
    bottom:38px;
    width:185px;
    min-height:132px;
    padding:22px 18px 19px;
    gap:4px;
    color:#fff;
    border:0;
    border-radius:44% 56% 41% 59% / 58% 38% 62% 42%;
    background:#0b0b0b;
    box-shadow:0 10px 28px rgba(0,0,0,.24);
    transform:rotate(-4deg);
    backdrop-filter:none;
  }

  /* aspect "tache" plus irrégulier */
  .countdown-poster-v62::before{
    content:"";
    position:absolute;
    inset:-9px -7px -8px -10px;
    border:2px solid rgba(255,255,255,.9);
    border-radius:52% 48% 60% 40% / 44% 61% 39% 56%;
    background:transparent;
    transform:rotate(5deg);
  }
  .countdown-poster-v62::after{
    content:"";
    position:absolute;
    width:14px;
    height:14px;
    left:-16px;
    top:56%;
    border-radius:50%;
    background:#0b0b0b;
    box-shadow:
      -13px -11px 0 -3px #0b0b0b,
      7px 16px 0 -5px #0b0b0b,
      207px -17px 0 -5px #0b0b0b,
      215px 8px 0 -6px #0b0b0b;
    transform:none;
  }

  .countdown-poster-v62 .countdown-mini-label{
    font-size:.76rem;
    line-height:1.2;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    font-size:1.55rem;
    color:var(--yellow);
  }
  .countdown-poster-v62 .countdown-mini-time{
    font-size:.86rem;
    color:var(--yellow);
  }
  .countdown-poster-v62 .countdown-mini-note{
    margin-top:2px;
    padding:3px 8px;
    border-radius:999px;
    background:var(--yellow);
    color:#111;
    font-size:.62rem;
    font-weight:800;
    text-transform:uppercase;
  }
}

/* Sur très grands écrans : pousse encore davantage vers les bords */
@media (min-width: 1400px){
  .hero-content .splash,
  .hero-copy-v62{
    left:-105px;
  }
  .countdown-poster-v62{
    right:-110px;
  }
}

/* Tablet/mobile : on garde une mise en page lisible, sans chercher à déborder */
@media (max-width: 820px){
  .hero-content .splash{
    width:auto;
  }
  .countdown-poster-v62{
    background:#0b0b0b;
    color:#fff;
    border-radius:28px;
  }
}

/* =========================================================
   V64 — composition header :
   titre à gauche / informations à droite / compteur dessous
   ========================================================= */
@media (min-width: 821px){
  .hero{
    min-height:650px;
  }
  .hero-content{
    min-height:650px;
    padding-top:34px;
    padding-bottom:34px;
  }

  /* Centre volontairement très peu couvert */
  .hero::after{
    background:
      linear-gradient(90deg,
        rgba(7,7,7,.56) 0%,
        rgba(7,7,7,.25) 25%,
        rgba(7,7,7,.04) 43%,
        rgba(7,7,7,.02) 61%,
        rgba(7,7,7,.22) 82%,
        rgba(7,7,7,.46) 100%),
      linear-gradient(0deg,rgba(7,7,7,.25),rgba(7,7,7,0) 46%);
  }

  /* HEP HEP HEP légèrement agrandi */
  .hero-content .splash{
    top:78px;
    left:-72px;
    width:350px;
  }
  .hero-content .splash h1{
    font-size:clamp(3.9rem,5.45vw,5.65rem);
    line-height:.81;
    letter-spacing:-.04em;
  }

  /* Toutes les informations passent à droite */
  .hero-copy-v62{
    left:auto;
    right:-70px;
    bottom:auto;
    top:82px;
    width:430px;
    text-align:left;
  }

  .hero-copy-v62 .hero-date{
    font-size:1.82rem;
    line-height:1;
    margin:0 0 11px;
  }

  .hero-copy-v62 .hero-public{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:12px;
  }
  .hero-copy-v62 .hero-school,
  .hero-copy-v62 .hero-open{
    font-size:.72rem;
    padding:6px 10px;
  }

  .hero-copy-v62 .hero-meta{
    max-width:420px;
    margin:0 0 14px;
    font-size:.88rem;
    line-height:1.4;
  }

  .hero-copy-v62 .hero-actions{
    justify-content:flex-start;
    gap:9px;
  }
  .hero-copy-v62 .hero-actions .btn{
    padding:11px 15px;
    font-size:.84rem;
  }

  /* Compte à rebours SOUS le bloc de droite */
  .countdown-poster-v62{
    right:-42px;
    bottom:58px;
    width:220px;
    min-height:142px;
    padding:23px 23px 20px;
    color:#fff;
    background:#080808;
    border:0;
    border-radius:54% 46% 57% 43% / 43% 58% 42% 57%;
    box-shadow:0 12px 30px rgba(0,0,0,.26);
    transform:rotate(-3deg);
    backdrop-filter:none;
    overflow:visible;
  }

  /* double contour imparfait façon trait peint */
  .countdown-poster-v62::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:-8px -10px -9px -8px;
    background:#080808;
    border-radius:44% 56% 47% 53% / 60% 39% 61% 40%;
    transform:rotate(5deg);
    box-shadow:
      8px -5px 0 -4px #080808,
      -9px 10px 0 -5px #080808,
      13px 13px 0 -7px #080808;
  }
  .countdown-poster-v62::after{
    content:"";
    position:absolute;
    z-index:-1;
    left:-16px;
    top:38px;
    width:22px;
    height:55px;
    background:#080808;
    border-radius:68% 32% 60% 40% / 44% 61% 39% 56%;
    transform:rotate(14deg);
    box-shadow:
      220px 25px 0 -6px #080808,
      206px -35px 0 -8px #080808,
      34px 112px 0 -8px #080808;
  }

  .countdown-poster-v62 .countdown-mini-label{
    font-size:.76rem;
    line-height:1.2;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    color:var(--yellow);
    font-size:1.65rem;
  }
  .countdown-poster-v62 .countdown-mini-time{
    color:var(--yellow);
    font-size:.9rem;
  }
  .countdown-poster-v62 .countdown-mini-note{
    margin-top:3px;
    padding:4px 9px;
    border-radius:999px;
    background:var(--yellow);
    color:#111;
    font-size:.62rem;
    font-weight:800;
    text-transform:uppercase;
  }
}

@media (min-width: 1400px){
  .hero-content .splash{ left:-105px; }
  .hero-copy-v62{ right:-105px; }
  .countdown-poster-v62{ right:-78px; }
}

/* =========================================================
   V65 — header calé sur la maquette de référence validée
   ========================================================= */
@media (min-width: 821px){
  .hero{min-height:720px;}
  .hero-photo{object-position:center center;}
  .hero::after{
    background:
      linear-gradient(90deg,rgba(5,5,5,.58) 0%,rgba(5,5,5,.22) 25%,rgba(5,5,5,.03) 43%,rgba(5,5,5,.02) 60%,rgba(5,5,5,.18) 80%,rgba(5,5,5,.48) 100%),
      linear-gradient(0deg,rgba(5,5,5,.32) 0%,rgba(5,5,5,.03) 52%);
  }
  .hero .hero-content{
    position:relative;
    width:100%;
    max-width:none;
    min-height:720px;
    padding:0;
    margin:0;
    transform:none;
  }

  /* Grande signature complètement à gauche */
  .hero-content .splash{
    position:absolute;
    left:5.1vw;
    top:50%;
    width:330px;
    padding:0 8px 12px 0;
    margin:0;
    transform:translateY(-52%) rotate(-1.2deg);
  }
  .hero-content .splash h1{
    margin:0;
    font-size:clamp(5rem,7.4vw,7.35rem);
    line-height:.77;
    letter-spacing:-.045em;
    text-shadow:1px 3px 0 rgba(0,0,0,.28);
  }
  .hero-content .splash::before{
    left:-5px;right:-4px;bottom:2px;height:10px;
    transform:rotate(-2deg);
  }
  .hero-content .splash::after{
    left:18px;right:-25px;bottom:-6px;height:7px;
    transform:rotate(1.5deg);
  }

  /* Bloc d'informations complètement à droite */
  .hero-copy-v62{
    position:absolute;
    left:auto;
    right:4.6vw;
    top:67px;
    bottom:auto;
    width:390px;
    margin:0;
    text-align:left;
  }
  .hero-copy-v62 .hero-date{
    display:inline-block;
    margin:0 0 17px;
    padding:0 3px 9px;
    font-size:clamp(2.3rem,3.25vw,3.35rem);
    line-height:.94;
    letter-spacing:-.02em;
    transform:rotate(-1deg);
  }
  .hero-copy-v62 .hero-date::before{
    left:0;right:-10px;bottom:0;height:6px;
  }
  .hero-copy-v62 .hero-meta{
    max-width:370px;
    margin:0 0 17px;
    font-size:1.03rem;
    line-height:1.55;
    font-weight:700;
  }
  .hero-copy-v62 .hero-public{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    margin:0 0 20px;
  }
  .hero-copy-v62 .hero-school,
  .hero-copy-v62 .hero-open{
    font-size:.79rem;
    padding:7px 12px;
    white-space:nowrap;
  }
  .hero-copy-v62 .hero-actions{
    display:flex;
    flex-wrap:nowrap;
    gap:10px;
    margin:0;
  }
  .hero-copy-v62 .hero-actions .btn{
    padding:13px 16px;
    font-size:.89rem;
    white-space:nowrap;
  }

  /* Tache noire de compte à rebours, sous le bloc de droite */
  .countdown-poster-v62{
    position:absolute;
    z-index:3;
    right:4.0vw;
    bottom:10px;
    width:330px;
    min-height:174px;
    margin:0;
    padding:42px 38px 32px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    color:#fff;
    text-align:center;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:rotate(-1.5deg);
    overflow:visible;
  }
  .countdown-poster-v62::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:-18px -30px -20px -28px;
    background:url('../images/countdown-splat.svg') center/100% 100% no-repeat !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:rotate(1deg);
  }
  .countdown-poster-v62::after{
    content:none !important;
  }
  .countdown-poster-v62 .countdown-mini-label{
    position:relative;
    z-index:1;
    font-size:.88rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.025em;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    color:var(--yellow);
    font-size:2rem;
  }
  .countdown-poster-v62 .countdown-mini-time{
    position:relative;
    z-index:1;
    color:#fff;
    font-size:1.02rem;
    font-weight:800;
    word-spacing:5px;
  }
  .countdown-poster-v62 .countdown-mini-time strong{color:#fff;}
  .countdown-poster-v62 .countdown-mini-note{
    position:relative;
    z-index:1;
    margin-top:3px;
    padding:5px 12px;
    color:#111;
    background:var(--yellow);
    border-radius:0;
    clip-path:polygon(3% 13%,13% 4%,25% 10%,39% 2%,52% 9%,68% 3%,83% 10%,98% 4%,100% 76%,89% 91%,73% 84%,57% 96%,42% 86%,24% 96%,9% 88%,0 94%);
    font-size:.67rem;
    font-weight:900;
    text-transform:uppercase;
  }
}

@media (max-width:1100px) and (min-width:821px){
  .hero-content .splash{left:2.5vw;width:285px;}
  .hero-content .splash h1{font-size:4.8rem;}
  .hero-copy-v62{right:2.5vw;width:350px;}
  .countdown-poster-v62{right:1.8vw;width:300px;}
  .hero-copy-v62 .hero-school,.hero-copy-v62 .hero-open{font-size:.69rem;}
}

@media (max-width:820px){
  .hero-date br{display:none;}
}

/* =========================================================
   V66 — corrections header selon capture utilisateur
   ========================================================= */
@media (min-width:821px){

  /* Retour à la hauteur précédente : on ne grossit plus la photo */
  .hero{
    min-height:650px !important;
  }
  .hero .hero-content{
    min-height:650px !important;
  }

  /* HEP HEP HEP : un peu plus incliné */
  .hero-content .splash{
    transform:translateY(-52%) rotate(-3.2deg) !important;
  }

  /* Compteur : vraie tache noire visible */
  .countdown-poster-v62{
    position:absolute;
    z-index:4;
    right:3.2vw;
    bottom:12px;
    width:330px;
    min-height:174px;
    padding:42px 38px 32px;
    color:#fff !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
    isolation:isolate;
  }

  .countdown-poster-v62::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:-22px -34px -24px -32px;
    background:url('../images/countdown-splat.svg') center/100% 100% no-repeat !important;
    opacity:1 !important;
    pointer-events:none;
  }

  /* Petites éclaboussures supplémentaires autour de la tache */
  .countdown-poster-v62::after{
    content:"";
    position:absolute;
    z-index:0;
    width:13px;
    height:13px;
    left:-25px;
    top:48%;
    border-radius:50%;
    background:#070707;
    box-shadow:
      -15px -20px 0 -3px #070707,
      10px 54px 0 -4px #070707,
      330px -48px 0 -4px #070707,
      344px 8px 0 -5px #070707,
      302px 92px 0 -5px #070707;
    pointer-events:none;
  }

  .countdown-poster-v62 > *{
    position:relative;
    z-index:2;
  }

  /* Texte clair sur noir */
  .countdown-poster-v62 .countdown-mini-label{
    color:#fff !important;
    font-size:.86rem;
    font-weight:700;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    color:var(--yellow) !important;
    font-size:1.9rem;
  }
  .countdown-poster-v62 .countdown-mini-time{
    color:#fff !important;
    font-size:1rem;
  }
  .countdown-poster-v62 .countdown-mini-time strong{
    color:#fff !important;
  }
  .countdown-poster-v62 .countdown-mini-note{
    color:#111 !important;
    background:var(--yellow) !important;
    font-weight:800;
  }
}

@media (max-width:1100px) and (min-width:821px){
  .countdown-poster-v62{
    right:1vw;
    width:300px;
  }
}

/* =========================================================
   V67 — tache noire 100% CSS, sans dépendance SVG
   ========================================================= */
@media (min-width:821px){
  .countdown-poster-v62{
    right:2.3vw !important;
    bottom:18px !important;
    width:330px !important;
    min-height:176px !important;
    padding:40px 42px 34px !important;
    color:#fff !important;

    /* La tache est désormais le fond DIRECT de l'élément */
    background:#050505 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;

    /* Forme volontairement asymétrique, type coup de pinceau / tache */
    clip-path:polygon(
      4% 20%, 10% 10%, 21% 13%, 31% 5%, 42% 11%, 53% 4%,
      64% 10%, 75% 5%, 87% 14%, 97% 11%, 94% 27%, 100% 38%,
      94% 50%, 99% 63%, 91% 73%, 96% 88%, 83% 86%, 73% 96%,
      61% 90%, 50% 98%, 39% 91%, 28% 97%, 19% 88%, 8% 92%,
      11% 78%, 2% 69%, 7% 56%, 1% 45%, 8% 34%
    ) !important;
    transform:rotate(-1.8deg) !important;
    overflow:visible !important;
    isolation:auto !important;
  }

  /* On abandonne le SVG qui n'était pas visible selon le navigateur */
  .countdown-poster-v62::before{
    content:"" !important;
    position:absolute !important;
    z-index:-1 !important;
    inset:-11px -12px -10px -14px !important;
    background:#050505 !important;
    border-radius:0 !important;
    clip-path:polygon(
      3% 29%, 11% 14%, 23% 17%, 34% 6%, 45% 13%, 57% 4%,
      68% 12%, 79% 7%, 91% 18%, 98% 14%, 94% 31%, 100% 44%,
      93% 57%, 97% 72%, 87% 80%, 91% 94%, 77% 90%, 64% 99%,
      52% 92%, 39% 98%, 29% 90%, 17% 96%, 11% 82%, 2% 74%,
      8% 60%, 1% 48%, 8% 38%
    ) !important;
    transform:rotate(3deg) !important;
    opacity:1 !important;
  }

  /* Eclaboussures irrégulières */
  .countdown-poster-v62::after{
    content:"" !important;
    position:absolute !important;
    z-index:0 !important;
    left:-19px !important;
    top:26px !important;
    width:17px !important;
    height:17px !important;
    border-radius:43% 57% 62% 38% !important;
    background:#050505 !important;
    box-shadow:
      -11px 31px 0 -4px #050505,
      8px 112px 0 -5px #050505,
      36px 153px 0 -6px #050505,
      301px -18px 0 -5px #050505,
      331px 28px 0 -6px #050505,
      342px 92px 0 -5px #050505,
      294px 154px 0 -6px #050505 !important;
  }

  .countdown-poster-v62 > *{
    position:relative !important;
    z-index:3 !important;
  }

  .countdown-poster-v62 .countdown-mini-label,
  .countdown-poster-v62 .countdown-mini-time{
    color:#fff !important;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    color:var(--yellow) !important;
  }
}

/* =========================================================
   V68 — ajustement final du compte à rebours
   ========================================================= */
@media (min-width:821px){
  .countdown-poster-v62{
    /* un peu plus petit et légèrement recentré sous le bloc de droite */
    right:7.2vw !important;
    bottom:20px !important;
    width:286px !important;
    min-height:154px !important;
    padding:34px 34px 29px !important;
  }

  .countdown-poster-v62 .countdown-mini-label{
    font-size:.78rem !important;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    font-size:1.7rem !important;
  }
  .countdown-poster-v62 .countdown-mini-time{
    font-size:.9rem !important;
  }
  .countdown-poster-v62 .countdown-mini-note{
    font-size:.58rem !important;
    padding:3px 8px !important;
  }

  /* Six traits blancs répartis autour de la tache */
  .countdown-poster-v62{
    --ray:#fff;
  }

  .countdown-poster-v62 .countdown-rays-v68{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
  }

  .countdown-poster-v62 .countdown-rays-v68 i{
    position:absolute;
    display:block;
    width:28px;
    height:4px;
    background:var(--ray);
    border-radius:999px;
    transform-origin:center;
  }

  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(1){
    left:-17px; top:29%; transform:rotate(28deg);
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(2){
    left:-24px; top:50%; transform:rotate(-4deg);
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(3){
    left:-15px; top:70%; transform:rotate(-25deg);
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(4){
    right:-17px; top:29%; transform:rotate(-28deg);
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(5){
    right:-24px; top:50%; transform:rotate(4deg);
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(6){
    right:-15px; top:70%; transform:rotate(25deg);
  }
}

@media (min-width:1400px){
  .countdown-poster-v62{
    right:8.8vw !important;
  }
}

@media (max-width:820px){
  .countdown-rays-v68{
    display:none;
  }
}

/* =========================================================
   V69 — compte à rebours plus compact + 3 traits de chaque côté
   ========================================================= */
@media (min-width:821px){
  .countdown-poster-v62{
    /* réduction supplémentaire, position générale conservée */
    width:258px !important;
    min-height:138px !important;
    padding:29px 31px 25px !important;
  }

  .countdown-poster-v62 .countdown-mini-label{
    font-size:.72rem !important;
  }
  .countdown-poster-v62 .countdown-mini-label strong{
    font-size:1.52rem !important;
  }
  .countdown-poster-v62 .countdown-mini-time{
    font-size:.82rem !important;
  }
  .countdown-poster-v62 .countdown-mini-note{
    font-size:.54rem !important;
    padding:3px 7px !important;
  }

  /* Les 6 traits sont bien à l'extérieur :
     3 à gauche et 3 à droite, avec seulement leur extrémité
     qui mord légèrement sur la tache noire. */
  .countdown-poster-v62 .countdown-rays-v68{
    position:absolute !important;
    inset:0 !important;
    overflow:visible !important;
    pointer-events:none !important;
    z-index:4 !important;
  }

  .countdown-poster-v62 .countdown-rays-v68 i{
    position:absolute !important;
    display:block !important;
    width:31px !important;
    height:4px !important;
    background:#fff !important;
    border-radius:999px !important;
  }

  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(1){
    left:-25px !important; top:29% !important; transform:rotate(29deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(2){
    left:-29px !important; top:49% !important; transform:rotate(-3deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(3){
    left:-24px !important; top:69% !important; transform:rotate(-27deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(4){
    right:-25px !important; top:29% !important; transform:rotate(-29deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(5){
    right:-29px !important; top:49% !important; transform:rotate(3deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(6){
    right:-24px !important; top:69% !important; transform:rotate(27deg) !important;
  }
}

/* =========================================================
   V70 — compteur remonté + traits réellement hors de la tache
   Le clip-path est déplacé du conteneur vers ::before afin
   que les traits puissent déborder visiblement.
   ========================================================= */
@media (min-width:821px){
  .countdown-poster-v62{
    /* plus proche du bloc de textes */
    right:7.2vw !important;
    bottom:54px !important;

    /* taille compacte conservée */
    width:258px !important;
    min-height:138px !important;
    padding:29px 31px 25px !important;

    /* IMPORTANT : aucun clip sur le conteneur */
    background:transparent !important;
    clip-path:none !important;
    overflow:visible !important;
    isolation:isolate !important;
    transform:rotate(-1.8deg) !important;
  }

  /* La tache noire elle-même */
  .countdown-poster-v62::before{
    content:"" !important;
    position:absolute !important;
    z-index:0 !important;
    inset:-8px -12px -10px -11px !important;
    background:#050505 !important;
    clip-path:polygon(
      4% 20%, 10% 10%, 21% 13%, 31% 5%, 42% 11%, 53% 4%,
      64% 10%, 75% 5%, 87% 14%, 97% 11%, 94% 27%, 100% 38%,
      94% 50%, 99% 63%, 91% 73%, 96% 88%, 83% 86%, 73% 96%,
      61% 90%, 50% 98%, 39% 91%, 28% 97%, 19% 88%, 8% 92%,
      11% 78%, 2% 69%, 7% 56%, 1% 45%, 8% 34%
    ) !important;
    transform:none !important;
    opacity:1 !important;
    pointer-events:none !important;
  }

  /* petites irrégularités autour de la tache */
  .countdown-poster-v62::after{
    content:"" !important;
    position:absolute !important;
    z-index:1 !important;
    left:-15px !important;
    top:28px !important;
    width:13px !important;
    height:13px !important;
    border-radius:50% !important;
    background:#050505 !important;
    box-shadow:
      -10px 28px 0 -4px #050505,
      12px 103px 0 -5px #050505,
      267px -15px 0 -5px #050505,
      282px 35px 0 -5px #050505,
      269px 109px 0 -5px #050505 !important;
    pointer-events:none !important;
  }

  .countdown-poster-v62 > :not(.countdown-rays-v68){
    position:relative !important;
    z-index:3 !important;
  }

  /* 3 traits à gauche / 3 à droite, clairement en dehors */
  .countdown-poster-v62 .countdown-rays-v68{
    position:absolute !important;
    inset:0 !important;
    z-index:5 !important;
    overflow:visible !important;
    pointer-events:none !important;
  }

  .countdown-poster-v62 .countdown-rays-v68 i{
    position:absolute !important;
    display:block !important;
    width:34px !important;
    height:4px !important;
    background:#fff !important;
    border-radius:999px !important;
    box-shadow:0 0 1px rgba(0,0,0,.15);
  }

  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(1){
    left:-31px !important; top:27% !important; transform:rotate(31deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(2){
    left:-36px !important; top:49% !important; transform:rotate(-2deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(3){
    left:-30px !important; top:71% !important; transform:rotate(-29deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(4){
    right:-31px !important; top:27% !important; transform:rotate(-31deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(5){
    right:-36px !important; top:49% !important; transform:rotate(2deg) !important;
  }
  .countdown-poster-v62 .countdown-rays-v68 i:nth-child(6){
    right:-30px !important; top:71% !important; transform:rotate(29deg) !important;
  }
}

@media (min-width:1400px){
  .countdown-poster-v62{
    right:8.8vw !important;
    bottom:54px !important;
  }
}

/* =========================================================
   V71 — correction ciblée du fond du compte à rebours
   Conserve taille, position et 6 traits de V70.
   Supprime tout rendu translucide/flou : tache noire pleine.
   ========================================================= */
@media (min-width:821px){
  .countdown-poster-v62{
    background:transparent !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    filter:none !important;
    box-shadow:none !important;
  }

  .countdown-poster-v62::before{
    background:#000 !important;
    background-image:none !important;
    opacity:1 !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:none !important;
    mix-blend-mode:normal !important;
  }

  .countdown-poster-v62::after{
    background:#000 !important;
    opacity:1 !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:
      -9px 28px 0 -3px #000,
      12px 112px 0 -4px #000,
      245px -9px 0 -4px #000,
      265px 35px 0 -4px #000,
      253px 111px 0 -4px #000 !important;
    mix-blend-mode:normal !important;
  }

  /* On garde les six traits blancs nets de V70. */
  .countdown-poster-v62 .countdown-rays-v68,
  .countdown-poster-v62 .countdown-rays-v68 i{
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    opacity:1 !important;
  }
}

/* =========================================================
   V72 — fond noir du compte à rebours rendu explicitement
   au-dessus de la photo et sous le contenu.
   Géométrie et 6 traits de V70/V71 conservés.
   ========================================================= */
@media (min-width:821px){
  .countdown-poster-v62{
    position:absolute !important;
    z-index:20 !important;
    background:transparent !important;
    overflow:visible !important;
    isolation:isolate !important;
  }

  .countdown-poster-v62::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    z-index:1 !important;
    inset:-15px -22px -17px -20px !important;
    background:#000 !important;
    background-color:#000 !important;
    background-image:none !important;
    opacity:1 !important;
    visibility:visible !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    mix-blend-mode:normal !important;
    clip-path:polygon(
      3% 25%, 9% 14%, 18% 16%, 28% 7%, 39% 12%, 50% 5%,
      61% 11%, 72% 6%, 83% 14%, 95% 11%, 92% 24%, 100% 34%,
      94% 46%, 99% 57%, 92% 68%, 97% 82%, 86% 84%, 78% 94%,
      67% 90%, 57% 98%, 47% 92%, 36% 97%, 26% 89%, 15% 94%,
      10% 81%, 2% 73%, 7% 61%, 1% 50%, 7% 39%
    ) !important;
    transform:rotate(2.2deg) !important;
    pointer-events:none !important;
  }

  .countdown-poster-v62::after{
    z-index:2 !important;
  }

  .countdown-poster-v62 > *{
    position:relative !important;
    z-index:3 !important;
  }

  .countdown-poster-v62 .countdown-rays-v68{
    position:absolute !important;
    z-index:4 !important;
  }
}

/* V74 — exclamation jaune + lisibilité du compte à rebours mobile/tablette */
.splash .hero-exclamation{
  color:#f4c400 !important;
}
@media (max-width:820px){
  .festival-countdown .countdown-mini-time,
  .festival-countdown .countdown-mini-time strong,
  .festival-countdown [data-hours],
  .festival-countdown [data-minutes],
  .festival-countdown [data-seconds]{
    color:#fff !important;
    opacity:1 !important;
    -webkit-text-fill-color:#fff !important;
  }
}

/* =========================================================
   V75 — correction définitive du fond du compte à rebours
   Le fond noir est porté directement par le bloc lui-même,
   donc il reste visible sur ordinateur, tablette et mobile.
   ========================================================= */
.countdown-poster-v62{
  background:#000 !important;
  background-color:#000 !important;
  background-image:none !important;
  opacity:1 !important;
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

@media (min-width:821px){
  .countdown-poster-v62{
    background:#000 !important;
    border-radius:46% 54% 43% 57% / 56% 42% 58% 44% !important;
  }
  /* La forme irrégulière noire reste derrière le bloc */
  .countdown-poster-v62::before,
  .countdown-poster-v62::after{
    background-color:#000 !important;
    opacity:1 !important;
  }
}

@media (max-width:820px){
  .countdown-poster-v62{
    background:#000 !important;
    color:#fff !important;
  }
  .countdown-poster-v62 .countdown-mini-label,
  .countdown-poster-v62 .countdown-mini-time,
  .countdown-poster-v62 .countdown-mini-time strong,
  .countdown-poster-v62 [data-hours],
  .countdown-poster-v62 [data-minutes],
  .countdown-poster-v62 [data-seconds]{
    color:#fff !important;
    opacity:1 !important;
    -webkit-text-fill-color:#fff !important;
  }
}


/* V81 — Covoiturage CoviEvent */
.carpool-section{padding-top:6px}
.carpool-highlight{position:relative;display:grid;grid-template-columns:190px minmax(0,1fr);gap:30px;align-items:center;overflow:hidden;background:#fff8d9;border:1px solid #2d2d2d;border-radius:22px;padding:32px 36px;box-shadow:7px 8px 0 rgba(23,23,23,.08)}
.carpool-highlight:before{content:"";position:absolute;width:220px;height:220px;border-radius:47% 53% 58% 42% / 45% 47% 53% 55%;background:#dceee9;left:-42px;top:-38px;transform:rotate(-8deg)}
.carpool-visual{position:relative;z-index:1;min-height:150px;display:grid;place-items:center}
.carpool-car{font-size:84px;line-height:1;filter:drop-shadow(3px 4px 0 rgba(0,0,0,.08));transform:rotate(-4deg)}
.carpool-rays{position:absolute;right:8px;top:12px;font-size:38px;color:#ef4d3f;transform:rotate(14deg)}
.carpool-copy{position:relative;z-index:1}
.carpool-copy h2{margin:4px 0 10px;font-size:clamp(28px,3vw,42px)}
.carpool-copy>p{max-width:820px}
.carpool-benefits{display:flex;flex-wrap:wrap;gap:9px 18px;margin:18px 0!important;font-weight:800}
.carpool-benefits span{display:inline-flex;align-items:center;gap:5px}
.carpool-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px}
.carpool-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center}
.carpool-eco-link{font-weight:800;color:#2f6d60;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.carpool-note{font-size:13px!important;color:#666;margin:12px 0 0!important}
.eco-card-carpool{background:#fff8d9!important}
.eco-carpool-box{display:grid;grid-template-columns:74px minmax(0,1fr);gap:18px;align-items:start;background:#fff8d9}
.eco-carpool-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#dceee9;font-size:34px;transform:rotate(-4deg)}
.eco-carpool-points{margin:14px 0 20px}
@media(max-width:760px){
  .carpool-highlight{grid-template-columns:1fr;padding:26px 22px;gap:12px}
  .carpool-highlight:before{width:170px;height:170px;left:-42px;top:-55px}
  .carpool-visual{min-height:84px;justify-content:start;padding-left:14px}
  .carpool-car{font-size:62px}
  .carpool-rays{left:92px;right:auto;top:0;font-size:30px}
  .carpool-actions{align-items:stretch;flex-direction:column}
  .carpool-btn{width:100%}
  .carpool-eco-link{text-align:center}
  .eco-carpool-box{grid-template-columns:1fr}
}

/* V82 — Éco-festival : couleurs cohérentes par colonne */
/* Colonne de gauche : vert doux ; colonne de droite : crème chaud. */
.eco-grid .eco-card:nth-child(odd){background:#eef5ef!important}
.eco-grid .eco-card:nth-child(even){background:#fffaf0!important}
/* Le covoiturage suit désormais exactement la couleur de sa colonne. */
.eco-grid .eco-card.eco-card-carpool{background:#eef5ef!important}
/* Même logique sur les deux grands encarts sous la grille. */
.info-grid .eco-carpool-box{background:#eef5ef!important}
.info-grid .eco-carpool-box + .info-box{background:#fffaf0!important}

/* V84 — repères d'emplacement programmation */
.hhh-location-badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-width:30px;color:#fff;font-size:15px;font-weight:900;line-height:1;box-shadow:0 1px 0 rgba(0,0,0,.12);vertical-align:middle}
.hhh-location-circle{background:#e6392f;border-radius:50%}
.hhh-location-square{background:#2877c7;border-radius:5px}
.program-title-with-location,.schedule-title-with-location{display:flex;align-items:center;gap:9px;min-width:0}
.program-title-with-location h3{margin-top:7px;margin-bottom:4px}
.schedule-title-with-location strong{min-width:0}
@media(max-width:520px){.hhh-location-badge{width:28px;height:28px;min-width:28px;font-size:14px}.program-title-with-location,.schedule-title-with-location{gap:7px}}


/* V85 — affichage des espaces dans la programmation et la grille */
.hhh-location-badge{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-weight:900;
}
.hhh-location-block{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:58px;
  align-self:center;
}
.hhh-location-label{
  font-size:.69rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:900;
  color:#6c706d;
}
.program-row{
  grid-template-columns:76px 112px minmax(0,1fr) 64px 28px !important;
}
.program-row .hhh-location-block-program{
  grid-column:4;
}
.program-row-arrow{
  grid-column:5;
}
.schedule-columns-head{
  grid-template-columns:100px minmax(0,1fr) 84px 220px !important;
}
.schedule-table-row{
  grid-template-columns:100px minmax(0,1fr) 84px 220px 30px !important;
}
.schedule-table-location{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:30px;
}
.schedule-table-location .hhh-location-badge{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
@media(max-width:900px) and (min-width:761px){
  .program-row{
    grid-template-columns:68px 100px minmax(0,1fr) 58px 24px !important;
  }
  .schedule-columns-head{
    grid-template-columns:90px minmax(0,1fr) 74px 180px !important;
  }
  .schedule-table-row{
    grid-template-columns:90px minmax(0,1fr) 74px 180px 26px !important;
  }
}
@media(max-width:760px){
  .program-row{
    grid-template-columns:72px minmax(0,1fr) 54px 22px !important;
  }
  .program-row-thumb{display:none}
  .program-row .event-date{grid-column:1}
  .program-row > div:nth-of-type(2){grid-column:2}
  .program-row .hhh-location-block-program{grid-column:3}
  .program-row-arrow{grid-column:4}
  .schedule-table-row{
    grid-template-columns:72px minmax(0,1fr) 48px 22px !important;
  }
  .schedule-table-time{grid-column:1;grid-row:1 / span 2}
  .schedule-table-main{grid-column:2;grid-row:1}
  .schedule-table-location{grid-column:3;grid-row:1 / span 2;justify-content:center}
  .schedule-table-tag{grid-column:2;grid-row:2}
  .schedule-table-arrow{grid-column:4;grid-row:1 / span 2}
}


/* V86 — alignement de la colonne « Espace » dans la grille complète */
.schedule-columns-head > span:nth-child(3){
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.schedule-table-location{
  justify-content:center !important;
}


/* V87 — alignement exact des en-têtes avec les colonnes de la grille */
.schedule-columns-head{
  grid-template-columns:100px minmax(0,1fr) 84px 220px 30px !important;
}
@media(max-width:900px) and (min-width:761px){
  .schedule-columns-head{
    grid-template-columns:90px minmax(0,1fr) 74px 180px 26px !important;
  }
}
.schedule-columns-head > span:nth-child(3){
  justify-self:center;
  text-align:center;
}

/* V90 — éco-festival : nombre de cartes impair, la dernière occupe toute la largeur */
.eco-grid .eco-card:last-child:nth-child(odd){grid-column:1 / -1}

/* V91 — mécènes : 3 logos */
.mecenes-grid.mecenes-grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:800px){
  .mecenes-grid.mecenes-grid-3{grid-template-columns:repeat(2,1fr)}
  .mecenes-grid-3 .mecene-logo-card:last-child{grid-column:1 / -1}
}
