:root{
  --red:#B54434;
  --red-deep:#8E2F22;
  --teal:#2A8E8E;
  --teal-light:#7BC5BC;
  --teal-deep:#1E5E5E;
  --cream:#F1E4C9;
  --cream-soft:#F8EFD9;
  --paper:#FBF6EA;
  --yellow:#F5C542;
  --yellow-soft:#FFE07A;
  --ink:#1A1A1A;
  --ink-soft:#2A2522;
  --line:rgba(26,26,26,.12);
  --display:"Fraunces","Times New Roman",serif;
  --sans:"Bricolage Grotesque",system-ui,sans-serif;
  --mono:"DM Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);scroll-behavior:smooth}
body{overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}

.wrap{max-width:1280px;margin:0 auto;padding:0 48px}

/* ——— NAV ——— */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(26,26,26,.72);
  color:var(--cream-soft);
  border-bottom:1px solid rgba(248,239,217,.08);
}
.nav-inner{max-width:1280px;margin:0 auto;padding:10px 32px;display:flex;align-items:center;gap:32px;min-height:88px}
.nav-logo{display:flex;align-items:center;gap:12px;margin:-16px 0}
.nav-logo img{height:96px;width:auto;display:block;filter: drop-shadow(0 8px 22px rgba(0,0,0,.55))}
@media (max-width:900px){ .nav-logo img{height:64px} .nav-inner{min-height:72px} }
.nav-links{display:flex;gap:22px;margin-left:auto;flex-wrap:wrap}
.nav-links a{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.72;transition:opacity .2s}
.nav-links a:hover{opacity:1;color:var(--yellow)}
.nav-links a.active{opacity:1;color:var(--yellow)}
.nav-cta{background:var(--red);color:var(--cream);padding:10px 18px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;transition:background .2s;display:inline-flex;align-items:center;gap:6px}
.nav-cta:hover{background:#D15A4A}
.nav-burger{display:none;width:40px;height:40px;border-radius:50%;background:rgba(248,239,217,.1)}

@media (max-width:900px){
  .nav-links{display:none}
  .nav-burger{display:grid;place-items:center;margin-left:auto}
  .nav-inner{padding:12px 18px;gap:12px}
  .nav-cta{padding:8px 12px;font-size:10px}
}

/* ——— HERO ——— */
.hero{
  position:relative;
  min-height:calc(100vh - 88px);
  padding:88px 0 32px;
  background:var(--teal);
  color:var(--cream);
  overflow:hidden;
  display:flex;align-items:center;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(1000px 600px at 85% 10%, rgba(245,197,66,.28), transparent 60%),
    radial-gradient(800px 700px at 8% 95%, rgba(181,68,52,.32), transparent 60%),
    radial-gradient(500px 400px at 60% 70%, rgba(123,197,188,.25), transparent 60%);
  pointer-events:none;
}
.hero::after{
  content:"";position:absolute;inset:-80px;pointer-events:none;
  background-image:
    radial-gradient(circle, rgba(245,197,66,.9) 1px, transparent 2px),
    radial-gradient(circle, rgba(255,224,122,.6) 1px, transparent 2px);
  background-size: 80px 80px, 140px 140px;
  background-position: 0 0, 40px 40px;
  opacity:.12;
  will-change: transform;
  animation: sparkle 18s linear infinite;
}
@keyframes sparkle { from{transform:translate(0,0)} to{transform:translate(80px,80px)} }

.hero-inner{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow);padding:6px 12px;border:1px solid rgba(245,197,66,.45);border-radius:999px;margin-bottom:12px}
.hero-eyebrow .live{width:8px;height:8px;background:var(--yellow);border-radius:50%;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

.hero-logo-img{display:block;width:100%;max-width:360px;height:auto;margin:2px 0 0;filter: drop-shadow(0 18px 44px rgba(0,0,0,.45))}
.hero-title{font-family:var(--display);font-weight:900;font-size:clamp(56px,9vw,148px);line-height:.85;letter-spacing:-.035em;margin:0;color:var(--cream-soft)}
.hero-title .it{display:block;font-style:italic;font-weight:600;color:var(--yellow);transform:translateX(.08em)}
.hero-title .excl{color:var(--red);display:inline-block;transform:rotate(8deg) translate(8px,-8px);font-style:normal;font-weight:900}

.hero-sub{max-width:460px;font-size:15px;line-height:1.5;margin:16px 0 20px;color:rgba(248,239,217,.9)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.btn{padding:14px 26px;border-radius:999px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;transition:transform .2s,background .2s;display:inline-flex;align-items:center;gap:8px;cursor:pointer;border:0}
.btn-primary{background:var(--yellow);color:var(--ink)}
.btn-primary:hover{background:var(--yellow-soft);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--cream);border:1.5px solid rgba(248,239,217,.4)}
.btn-ghost:hover{background:rgba(248,239,217,.1)}
.btn-red{background:var(--red);color:var(--cream)}
.btn-red:hover{background:#D15A4A;transform:translateY(-2px)}

/* Countdown card */
.hero-card{
  background:var(--cream);
  color:var(--ink);
  border-radius:24px;
  padding:24px 28px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.45);
  position:relative;
  transform: rotate(-1.5deg);
}
.hero-card::before{content:"#01";position:absolute;top:-12px;right:24px;background:var(--red);color:var(--cream);font-family:var(--mono);font-size:10px;letter-spacing:.15em;padding:5px 10px;border-radius:999px;font-weight:500}
.card-lab{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.card-title{font-family:var(--display);font-weight:800;font-style:italic;font-size:24px;letter-spacing:-.01em;margin:6px 0 14px;line-height:1}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.cd-cell{background:var(--teal);color:var(--cream);border-radius:10px;padding:10px 4px;text-align:center}
.cd-num{font-family:var(--display);font-weight:900;font-size:28px;line-height:1;letter-spacing:-.02em;font-variant-numeric: tabular-nums}
.cd-lab{font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;margin-top:4px;opacity:.8}
.card-meta{display:grid;gap:6px;font-size:12px;color:var(--ink-soft);border-top:1px dashed var(--line);padding-top:12px}
.card-meta div{display:flex;gap:8px;align-items:center}
.card-meta span.k{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);min-width:56px}

@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;gap:40px;padding:0 20px}
  .hero{padding:110px 0 60px}
  .hero-card{transform:none}
  .hero-title{font-size:clamp(48px,14vw,90px)}
}

/* Ticker */
.ticker{
  background:var(--red);color:var(--cream);overflow:hidden;
  padding:14px 0;position:relative;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);
}
.ticker-track{display:flex;gap:48px;white-space:nowrap;animation:ticker 28s linear infinite;font-family:var(--display);font-style:italic;font-weight:600;font-size:22px}
.ticker-track span{display:inline-flex;align-items:center;gap:48px}
.ticker-track .dot{width:10px;height:10px;border-radius:50%;background:var(--yellow);display:inline-block}
@keyframes ticker{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ——— Sections ——— */
section{padding:96px 0;position:relative}
.section-dark{background:var(--ink);color:var(--cream-soft)}
.section-cream{background:var(--cream-soft)}
.section-teal{background:var(--teal);color:var(--cream-soft)}
.section-red{background:var(--red);color:var(--cream)}

.sec-head{display:grid;grid-template-columns:160px 1fr;gap:48px;margin-bottom:56px}
.sec-num{font-family:var(--display);font-style:italic;font-weight:400;font-size:80px;color:var(--red);line-height:.8;letter-spacing:-.02em}
.section-dark .sec-num, .section-teal .sec-num{color:var(--yellow)}
.section-red .sec-num{color:var(--yellow)}
.sec-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.section-dark .sec-eyebrow,.section-teal .sec-eyebrow,.section-red .sec-eyebrow{color:var(--yellow)}
.sec-title{font-family:var(--display);font-weight:800;font-size:clamp(42px,5vw,72px);line-height:.95;letter-spacing:-.025em;margin:0;max-width:900px}
.sec-title em{font-style:italic;font-weight:600;color:var(--red)}
.section-dark .sec-title em,.section-teal .sec-title em,.section-red .sec-title em{color:var(--yellow)}
.sec-intro{max-width:680px;font-size:17px;line-height:1.55;margin-top:20px;opacity:.85}

@media (max-width:700px){
  .sec-head{grid-template-columns:1fr;gap:16px}
  .sec-num{font-size:56px}
  section{padding:72px 0}
}

/* ——— Intro / Punchlines ——— */
.intro-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.intro-card{padding:28px;border-radius:18px;background:#fff;border:1px solid var(--line);grid-column:span 2;transition:transform .3s}
.intro-card:hover{transform:translateY(-4px)}
.intro-card .ic-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.intro-card h4{font-family:var(--display);font-weight:700;font-size:22px;margin:10px 0 8px;letter-spacing:-.01em}
.intro-card p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}
.intro-card.big{grid-column:span 3;background:var(--red);color:var(--cream)}
.intro-card.big h4{font-size:28px;font-style:italic;font-weight:600;color:var(--cream)}
.intro-card.big p{color:rgba(248,239,217,.88)}
.intro-card.teal{grid-column:span 3;background:var(--teal);color:var(--cream)}
.intro-card.teal h4{color:var(--yellow);font-size:28px;font-style:italic;font-weight:600}
.intro-card.teal p{color:rgba(248,239,217,.88)}

/* ——— Intro grid — patch stylisé ——— */
.intro-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
}

.intro-card {
  padding: 32px 28px;
  border-radius: 22px;
  grid-column: span 2;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 220px;
  background: var(--cream);
  border: 1px solid var(--line);
  transition: transform .3s;
}
.intro-card:hover { transform: translateY(-4px); }

/* Watermark numéro */
.intro-card .ic-eyebrow::before {
  content: attr(data-num);
  position: absolute;
  bottom: -24px;
  right: -12px;
  font-family: var(--display);
  font-weight: 900;
  font-style: italic;
  font-size: 140px;
  line-height: 1;
  letter-spacing: -.04em;
  opacity: .07;
  color: currentColor;
  pointer-events: none;
  z-index: 0;
}

.intro-card .ic-eyebrow {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}

.intro-card h3 {
  font-family: var(--display);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: -.015em;
  margin: 0 0 10px;
  line-height: 1.05;
  position: relative;
  z-index: 1;
}

.intro-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  position: relative;
  z-index: 1;
}

/* Couleurs des piliers — rotation */
.intro-card.p-red   { background: var(--red);  color: var(--cream); border-color: transparent; }
.intro-card.p-teal  { background: var(--teal); color: var(--cream); border-color: transparent; }
.intro-card.p-yellow{ background: var(--yellow); color: var(--ink); border-color: transparent; }
.intro-card.p-ink   { background: var(--ink);  color: var(--cream); border-color: transparent; }
.intro-card.p-cream { background: var(--cream-soft); color: var(--ink); }

.intro-card.p-red    .ic-eyebrow { color: var(--yellow); }
.intro-card.p-teal   .ic-eyebrow { color: var(--yellow); }
.intro-card.p-yellow .ic-eyebrow { color: var(--red); }
.intro-card.p-ink    .ic-eyebrow { color: var(--yellow); }
.intro-card.p-red    p,
.intro-card.p-teal   p,
.intro-card.p-ink    p { color: rgba(248,239,217,.82); }

/* Tailles spéciales */
.intro-card.big   { grid-column: span 3; min-height: 260px; }
.intro-card.cteal { grid-column: span 3; min-height: 260px; }

@media (max-width: 900px) {
  .intro-card,
  .intro-card.big,
  .intro-card.cteal { grid-column: span 6; }
}

@media (max-width:900px){ .intro-card,.intro-card.big,.intro-card.teal{grid-column:span 6} }

/* ——— Programme ——— */
.prog-filters{display:flex;flex-direction:column;gap:14px;margin-bottom:36px;padding:20px 22px;background:rgba(248,239,217,.04);border:1px solid rgba(248,239,217,.08);border-radius:18px}
.prog-filters-row{display:flex;align-items:flex-start;gap:18px;flex-wrap:nowrap}
.prog-filters-label{flex-shrink:0;min-width:64px;padding-top:10px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--yellow);opacity:.9}
.prog-filters-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1}
@media (max-width:600px){
  .prog-filters-row{flex-direction:column;gap:8px}
  .prog-filters-label{padding-top:0}
}
.chip-filter{padding:10px 16px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;background:rgba(248,239,217,.1);color:var(--cream);border:1px solid rgba(248,239,217,.18);transition:transform .2s,opacity .2s}
.chip-filter.active{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.chip-filter:hover{border-color:var(--yellow)}

.timeline{display:grid;grid-template-columns:120px 1fr;gap:0}
.tl-row{display:contents}
.tl-time{font-family:var(--display);font-weight:800;font-size:28px;color:var(--yellow);padding:18px 0;border-top:1px solid rgba(248,239,217,.12);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.tl-body{padding:18px 0 18px 32px;border-top:1px solid rgba(248,239,217,.12);position:relative;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start}
.tl-body::before{content:"";position:absolute;left:0;top:28px;width:12px;height:12px;border-radius:50%;background:var(--red)}
.tl-row[data-type="musique"] .tl-body::before{background:var(--yellow)}
.tl-row[data-type="famille"] .tl-body::before,.tl-row[data-type="jeux"] .tl-body::before{background:var(--teal-light)}
.tl-row[data-type="spectacle"] .tl-body::before{background:var(--red)}
.tl-row[data-type="showcase"] .tl-body::before{background:#fff}
.tl-row[data-type="acces"] .tl-body::before{background:rgba(248,239,217,.5)}
.tl-row[data-type="patrimoine"] .tl-body::before{background:var(--teal-light)}
.tl-main h5{font-family:var(--display);font-weight:700;font-size:22px;margin:0 0 4px;letter-spacing:-.01em;color:var(--cream-soft)}
.tl-main p{margin:0;font-size:14px;color:rgba(248,239,217,.72);line-height:1.5;max-width:540px}
.tl-side{display:flex;gap:8px;align-items:center}
.tl-badge{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:rgba(248,239,217,.08);color:var(--cream)}
.tl-badge.scene{background:var(--yellow);color:var(--ink)}
.tl-row.hidden{display:none}

@media (max-width:700px){
  .timeline{grid-template-columns:80px 1fr}
  .tl-time{font-size:18px}
  .tl-body{padding-left:20px}
}

/* ——— Artistes ——— */
.artists-wrap{position:relative}
.artists-scroller{display:flex;gap:22px;overflow-x:auto;padding:8px 0 24px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.artists-scroller::-webkit-scrollbar{height:6px}
.artists-scroller::-webkit-scrollbar-thumb{background:var(--red);border-radius:3px}
.artist-card{flex:0 0 360px;scroll-snap-align:start;background:var(--cream);border-radius:24px;padding:28px;position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:440px;transition:transform .3s}
.artist-card:hover{transform:translateY(-6px)}
.artist-card.yellow{background:var(--yellow)}
.artist-card.red{background:var(--red);color:var(--cream)}
.artist-card.teal{background:var(--teal);color:var(--cream)}
.artist-card .role{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.artist-card.red .role,.artist-card.teal .role{color:var(--yellow)}
.artist-card .name{font-family:var(--display);font-weight:900;font-size:46px;line-height:.9;letter-spacing:-.025em;margin:10px 0 6px}
.artist-card .genre{font-family:var(--display);font-style:italic;font-weight:500;font-size:18px;opacity:.85}
.artist-card .desc{font-size:14px;line-height:1.55;margin:18px 0;opacity:.88}
.artist-card .hits{display:flex;flex-direction:column;gap:6px;margin-top:auto;font-family:var(--mono);font-size:11px;letter-spacing:.06em;opacity:.85}
.artist-card .hits div{padding-left:16px;position:relative}
.artist-card .hits div::before{content:"♪";position:absolute;left:0}
.artist-card .tag-time{position:absolute;top:22px;right:22px;font-family:var(--display);font-weight:900;font-size:26px;letter-spacing:-.01em;color:var(--red)}
.artist-card.red .tag-time,.artist-card.teal .tag-time{color:var(--yellow)}
.artist-card.yellow .tag-time{color:var(--red)}
/* ——— Carte artiste — photo fond ——— */
.artist-card.ac-has-photo {
  background-image: var(--ac-photo);
  background-size: cover;
  background-position: center top;
  position: relative;
}
.ac-photo-overlay {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    to bottom,
    rgba(20,20,20,.45) 0%,
    rgba(20,20,20,.72) 55%,
    rgba(20,20,20,.92) 100%
  );
  z-index: 0;
}
.artist-card.ac-has-photo .ac-time,
.artist-card.ac-has-photo .ac-role,
.artist-card.ac-has-photo .ac-name,
.artist-card.ac-has-photo .ac-genre,
.artist-card.ac-has-photo .ac-desc,
.artist-card.ac-has-photo .ac-hits {
  position: relative;
  z-index: 1;
}
/* Forcer texte clair quelle que soit la couleur de carte */
.artist-card.ac-has-photo .ac-name,
.artist-card.ac-has-photo .ac-desc,
.artist-card.ac-has-photo .ac-hits {
  color: var(--cream-soft);
}
.artist-card.ac-has-photo .ac-genre {
  color: rgba(248,239,217,.8);
}

/* ——— Carte artiste — photo ——— */
.ac-photo {
  margin: 12px 0;
  border-radius: 10px;
  overflow: hidden;
}
.ac-photo img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform .35s;
}
.artist-card:hover .ac-photo img {
  transform: scale(1.04);
}

.scroller-ctrls{display:flex;gap:10px;margin-top:18px}
.scroller-ctrls button{width:46px;height:46px;border-radius:50%;background:var(--cream);color:var(--red);font-size:20px;transition:background .2s;display:grid;place-items:center}
.scroller-ctrls button:hover{background:var(--yellow);color:var(--ink)}

/* ——— Spotify playlist ——— */
.playlist{margin-top:48px;background:#fff;border-radius:24px;padding:28px;display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:center;border:1px solid var(--line);color:var(--ink)}
.playlist h4{font-family:var(--display);font-weight:800;font-style:italic;font-size:38px;margin:8px 0 10px;letter-spacing:-.015em;color:var(--ink)}
.playlist p{margin:0 0 16px;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.pl-mock{background:var(--teal-deep);border-radius:18px;padding:20px;color:var(--cream);display:flex;flex-direction:column;gap:12px;min-height:280px}
.pl-head{display:flex;align-items:center;gap:12px}
.pl-head .disc{width:52px;height:52px;border-radius:50%;background:
  conic-gradient(from 0deg, var(--red), var(--yellow), var(--teal-light), var(--red));
  display:grid;place-items:center}
.pl-head .disc::after{content:"";width:14px;height:14px;background:var(--teal-deep);border-radius:50%}
.pl-head h5{margin:0;font-family:var(--display);font-weight:800;font-size:18px}
.pl-head small{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.pl-track{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:13px;border-top:1px dashed rgba(248,239,217,.18)}
.pl-track b{font-family:var(--display);font-weight:700}
.pl-track span{font-family:var(--mono);font-size:11px;opacity:.7}
.pl-play{display:flex;align-items:center;gap:10px;margin-top:auto;background:var(--yellow);color:var(--ink);padding:10px 16px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;align-self:flex-start;cursor:pointer;font-weight:500;border:0}

@media (max-width:900px){ .playlist{grid-template-columns:1fr} }

/* ——— Lieu Trévarez ——— */
.lieu-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:32px}
.lieu-hero{
  border-radius:24px;overflow:hidden;position:relative;min-height:520px;
  background:
    linear-gradient(180deg, rgba(26,26,26,0) 40%, rgba(26,26,26,.7) 100%),
    radial-gradient(circle at 50% 60%, rgba(245,197,66,.25), transparent 55%),
    linear-gradient(135deg, #D98B8B 0%, #C46A6A 35%, #8E4B3F 70%, #5E2E26 100%);
}
.lieu-hero::before{
  /* castle silhouette */
  content:"";position:absolute;left:12%;right:12%;bottom:18%;height:46%;
  background:
    linear-gradient(180deg, rgba(26,26,26,.3), rgba(26,26,26,.55)),
    linear-gradient(135deg, #C46A6A, #8E4B3F);
  clip-path: polygon(
    0% 100%, 0% 30%, 4% 30%, 4% 20%, 8% 20%, 8% 12%, 12% 12%, 12% 20%, 18% 20%, 18% 8%, 22% 8%, 22% 20%, 28% 20%, 28% 30%,
    38% 30%, 38% 18%, 44% 18%, 44% 8%, 50% 4%, 56% 8%, 56% 18%, 62% 18%, 62% 30%,
    72% 30%, 72% 20%, 78% 20%, 78% 8%, 82% 8%, 82% 20%, 88% 20%, 88% 12%, 92% 12%, 92% 20%, 96% 20%, 96% 30%, 100% 30%, 100% 100%
  );
  border-radius:4px;
}
.lieu-hero::after{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle 2px at 20% 15%, var(--yellow), transparent 3px),
    radial-gradient(circle 2px at 80% 20%, var(--yellow-soft), transparent 3px),
    radial-gradient(circle 1px at 40% 8%, var(--cream-soft), transparent 2px),
    radial-gradient(circle 1px at 60% 12%, var(--yellow), transparent 2px),
    radial-gradient(circle 3px at 70% 6%, var(--red), transparent 4px),
    radial-gradient(circle 2px at 30% 22%, var(--yellow-soft), transparent 3px);
  pointer-events:none;
}
.lieu-caption{position:absolute;left:24px;bottom:24px;color:var(--cream);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;z-index:2}
.lieu-caption b{display:block;font-family:var(--display);font-style:italic;font-weight:600;font-size:28px;letter-spacing:-.01em;margin-bottom:4px;text-transform:none}

.lieu-stats{display:grid;gap:14px}
.lieu-stat{background:var(--cream);border-radius:18px;padding:24px;border:1px solid var(--line)}
.lieu-stat .v{font-family:var(--display);font-weight:900;font-size:54px;line-height:.9;color:var(--red);letter-spacing:-.025em}
.lieu-stat .v em{font-style:italic;font-weight:600;color:var(--teal-deep)}
.lieu-stat h5{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 6px}
.lieu-stat p{margin:6px 0 0;font-size:13.5px;color:var(--ink-soft);line-height:1.5}

@media (max-width:900px){ .lieu-grid{grid-template-columns:1fr} }

/* ——— Food ——— */
.food-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 20px;
}

.food-card {
  grid-column: span 4;
  background: var(--cream);
  border-radius: 22px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  overflow: hidden;
}

.food-card .food-num {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  color: var(--red);
  opacity: .35;
  font-size: 72px;
  line-height: .8;
  margin-bottom: auto;
}

.food-card h3 {
  font-family: var(--display);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: -.01em;
  margin: 0;
}

.food-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-soft);
}

.food-card.fc-red {
  background: var(--red);
  color: var(--cream);
}
.food-card.fc-red .food-num { color: var(--yellow); opacity: .35; }
.food-card.fc-red p         { color: rgba(248,239,217,.85); }

/* Tablette étroite */
@media (max-width: 900px) {
  .food-card { grid-column: span 6; }
}

/* Mobile */
@media (max-width: 767px) {
  .food-grid { gap: 12px; }
  .food-card  { grid-column: 1 / -1 !important; }
}

/* ——— Chefs ——— */
.chefs-block{margin:0 0 56px}
.chefs-head{max-width:720px;margin:0 0 32px}
.chefs-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.chefs-title{font-family:var(--display);font-weight:900;font-size:clamp(40px,5vw,64px);line-height:.95;letter-spacing:-.02em;margin:0 0 14px;color:var(--ink)}
.chefs-title em{font-style:italic;font-weight:600;color:var(--red)}
.chefs-intro{font-size:16px;line-height:1.55;color:var(--ink-soft);max-width:620px;margin:0}
.chefs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.chef-card{background:var(--cream);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 0 rgba(23,34,36,.04), 0 10px 40px -20px rgba(23,34,36,.15);transition:transform .3s}
.chef-card:hover{transform:translateY(-4px)}
.chef-photo{position:relative;width:100%;aspect-ratio:4/5;background-size:cover;background-position:center;background-color:var(--ink)}
.chef-photo-placeholder{background:
  linear-gradient(135deg, var(--teal) 0%, #1d5f63 100%);
  display:flex;align-items:center;justify-content:center}
.chef-placeholder-mark{font-family:var(--display);font-style:italic;font-weight:900;font-size:120px;color:var(--yellow);opacity:.9;letter-spacing:-.03em;filter:drop-shadow(0 8px 24px rgba(0,0,0,.25))}
.chef-badge{position:absolute;top:16px;left:16px;background:var(--red);color:var(--cream);font-family:var(--mono);font-size:10px;letter-spacing:.15em;padding:6px 12px;border-radius:999px;font-weight:500}
.chef-meta{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px}
.chef-house{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--red)}
.chef-name{font-family:var(--display);font-weight:800;font-size:28px;letter-spacing:-.01em;line-height:1.05;color:var(--ink)}
.chef-desc{margin:4px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft)}

@media (max-width:900px){
  .chefs-grid{grid-template-columns:1fr}
}

/* ——— Billetterie ——— */
.bill-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch}
.bill-card{background:var(--cream);border-radius:24px;padding:40px;color:var(--ink);position:relative;overflow:hidden}
.bill-card.price{background:var(--red);color:var(--cream)}
.bill-price-big{font-family:var(--display);font-weight:900;font-size:160px;line-height:.8;letter-spacing:-.04em;color:var(--yellow)}
.bill-price-big sup{font-size:48px;vertical-align:super;opacity:.8}
.bill-price-lab{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-top:14px;color:rgba(248,239,217,.85)}
.bill-price-note{margin:12px 0 0;font-size:15px;line-height:1.5;color:rgba(248,239,217,.88)}
.bill-iframe-holder{background:#fff;color:var(--ink);border-radius:18px;overflow:hidden;border:1px solid var(--line);min-height:540px;display:flex;flex-direction:column}
.bill-iframe-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;background:var(--cream-soft)}
.bill-iframe-head .ha-logo{width:28px;height:28px;border-radius:50%;background:var(--red);color:var(--cream);display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:13px}
.bill-iframe-head h5{margin:0;font-family:var(--display);font-weight:700;font-size:16px}
.bill-iframe-head small{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.bill-iframe-body{flex:1;padding:24px;display:grid;gap:14px}

.bill-ticket-row{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:transform .2s}
.bill-ticket-row:hover{border-color:var(--red)}
.bill-ticket-row h6{margin:0;font-family:var(--display);font-weight:700;font-size:18px}
.bill-ticket-row .small{font-size:12.5px;color:var(--ink-soft);margin-top:2px}
.bill-ticket-row .price{font-family:var(--display);font-weight:900;font-size:32px;color:var(--red);letter-spacing:-.02em}
.bill-ticket-row .price small{font-size:14px;font-weight:500;color:var(--ink-soft)}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:32px;height:32px;border-radius:50%;background:var(--cream);color:var(--red);font-size:16px;font-weight:700}
.qty button:hover{background:var(--yellow);color:var(--ink)}
.qty span{font-family:var(--display);font-weight:800;font-size:18px;min-width:20px;text-align:center}
.bill-cta{background:var(--red);color:var(--cream);padding:16px;border-radius:14px;text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;margin-top:6px;transition:background .2s}
.bill-cta:hover{background:#D15A4A}
.bill-total{display:flex;justify-content:space-between;font-family:var(--display);font-weight:700;padding-top:16px;border-top:1px dashed var(--line);font-size:18px}
.bill-total span.amt{font-weight:900;color:var(--red);font-size:24px}

@media (max-width:900px){ .bill-grid{grid-template-columns:1fr} .bill-price-big{font-size:110px} }

/* ——— Bénévoles ——— */
.vol-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:stretch}
.vol-form{background:var(--cream);border-radius:24px;padding:36px;color:var(--ink)}
.vol-form h3{font-family:var(--display);font-weight:800;font-style:italic;font-size:36px;margin:0 0 8px;letter-spacing:-.015em}
.vol-form p{margin:0 0 24px;font-size:14.5px;color:var(--ink-soft);line-height:1.55}
.fld{display:grid;gap:6px;margin-bottom:16px}
.fld label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.fld input,.fld select,.fld textarea{font-family:var(--sans);font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--red);outline-offset:1px}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.chk-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.chk-group label{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;font-family:var(--sans);font-size:13px;cursor:pointer;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:400}
.chk-group input{display:none}
.chk-group label.on{background:var(--red);color:var(--cream);border-color:var(--red)}

.vol-partners{background:var(--ink);color:var(--cream);border-radius:24px;padding:36px;display:flex;flex-direction:column;gap:20px}
.vol-partners h3{font-family:var(--display);font-weight:800;font-style:italic;font-size:32px;margin:0;color:var(--yellow)}
.partner-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.partner{background:rgba(248,239,217,.06);border:1px solid rgba(248,239,217,.14);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:4px}
.partner .p-name{font-family:var(--display);font-weight:700;font-size:17px;color:var(--cream)}
.partner .p-role{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);opacity:.85}

@media (max-width:900px){ .vol-grid{grid-template-columns:1fr} }

/* Vol hero — 150 chiffre + pitch HelloAsso */
.vol-hero{display:grid;grid-template-columns:380px 1fr;gap:32px;align-items:stretch;margin-bottom:56px}
.vol-stat{background:var(--red);color:var(--cream);border-radius:24px;padding:44px 36px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative;overflow:hidden}
.vol-stat::after{content:"";position:absolute;right:-40px;bottom:-40px;width:240px;height:240px;border-radius:50%;background:rgba(248,239,217,.08)}
.vol-stat-num{font-family:var(--display);font-weight:900;font-style:italic;font-size:clamp(140px,14vw,200px);line-height:.8;letter-spacing:-.04em;color:var(--yellow);position:relative;z-index:1}
.vol-stat-lab{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(248,239,217,.9);margin-top:18px;line-height:1.5;position:relative;z-index:1}
.vol-pitch{background:var(--cream);border-radius:24px;padding:36px;display:flex;flex-direction:column;gap:16px;color:var(--ink)}
.vol-pitch h3{font-family:var(--display);font-weight:800;font-style:italic;font-size:34px;margin:0;letter-spacing:-.015em;line-height:1.05}
.vol-pitch p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-soft)}
.vol-perks{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px;margin:6px 0 8px}
.vol-perk{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink)}
.vol-perk span{color:var(--red);font-weight:700}
.vol-note{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-soft);margin:4px 0 0!important}

/* Vol missions */
.vol-missions-head{margin:0 0 24px}
.vol-missions-title{font-family:var(--display);font-weight:900;font-size:clamp(36px,4.5vw,56px);line-height:.95;letter-spacing:-.02em;margin:10px 0 0;color:var(--ink)}
.vol-missions-title em{font-style:italic;font-weight:600;color:var(--red)}
.vol-missions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:48px}
.mission-card{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:8px;transition:transform .25s}
.mission-card:hover{transform:translateY(-3px);border-color:var(--red)}
.mission-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.mission-num{font-family:var(--display);font-weight:900;font-style:italic;font-size:38px;color:var(--red);line-height:1}
.mission-tag{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);background:rgba(23,34,36,.06);padding:5px 10px;border-radius:999px}
.mission-card h4{font-family:var(--display);font-weight:800;font-size:20px;margin:4px 0 0;letter-spacing:-.01em;color:var(--ink);line-height:1.15}
.mission-card p{font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin:0}

@media (max-width:1100px){ .vol-missions-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:900px){
  .vol-hero{grid-template-columns:1fr}
  .vol-stat-num{font-size:120px}
  .vol-missions-grid{grid-template-columns:1fr}
}

/* Vol — Org card (remplace l'ancien aside) */
.vol-org{background:var(--ink);color:var(--cream);border-radius:20px;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.vol-org-name{font-family:var(--display);font-size:22px;font-style:italic;font-weight:600;margin:6px 0 4px;color:var(--cream)}
.vol-org-sub{font-size:13px;line-height:1.5;color:rgba(248,239,217,.72);margin:0;max-width:640px}

/* ——— Partners strip (home avant footer) ——— */
.partners-strip{background:var(--cream-soft);padding:56px 0;border-top:1px solid rgba(23,34,36,.06)}
.ps-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px;gap:20px;flex-wrap:wrap}
.ps-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}
.ps-link{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);text-decoration:none}
.ps-link:hover{color:var(--ink)}
.ps-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.ps-logo{display:flex;align-items:center;justify-content:center;padding:12px 18px;transition:transform .25s}
.ps-logo:hover{border-color:var(--ink);transform:translateY(-2px)}
.ps-logo-name{font-family:var(--display);font-weight:700;font-size:13px;color:var(--ink-soft);text-align:center;line-height:1.2;letter-spacing:-.005em}
@media (max-width:900px){ .ps-grid{grid-template-columns:repeat(2,1fr)} }

/* ——— Actualités ——— */
.news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.news-card{background:var(--cream);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:10px;transition:transform .3s;cursor:pointer;border:1px solid var(--line)}
.news-card:hover{transform:translateY(-4px)}
.news-card .meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.news-card h4{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.1;letter-spacing:-.01em;margin:0}
.news-card p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}
.news-card .more{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-top:auto}

@media (max-width:900px){ .news-grid{grid-template-columns:1fr 1fr} }
@media (max-width:600px){ .news-grid{grid-template-columns:1fr} }

/* ——— FAQ ——— */
.faq-wrap{display:grid;grid-template-columns:1fr;gap:10px;max-width:900px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:box-shadow .2s}
.faq-item.open{border-color:var(--red)}
.faq-q{padding:20px 24px;font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.005em;display:flex;justify-content:space-between;align-items:center;cursor:pointer;width:100%;text-align:left;color:var(--ink)}
.faq-q::after{content:"+";font-family:var(--mono);font-size:24px;color:var(--red);transition:transform .2s}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s;padding:0 24px}
.faq-item.open .faq-a{max-height:300px;padding-bottom:22px}
.faq-a p{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-soft)}

/* ——— Infos pratiques ——— */
.infos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.info-card{background:var(--teal);color:var(--cream);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:10px}
.info-card.alt{background:var(--red)}
.info-card.ink{background:var(--ink)}
.info-card.yellow{background:var(--yellow);color:var(--ink)}
.info-card h5{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin:0;opacity:.8}
.info-card .big{font-family:var(--display);font-weight:900;font-size:32px;line-height:1;letter-spacing:-.01em}
.info-card p{margin:0;font-size:13.5px;line-height:1.5;opacity:.88}

@media (max-width:900px){ .infos-grid{grid-template-columns:1fr 1fr} }

/* ——— Infos pratiques — rangées ——— */
.infos-row { display: grid; gap: 16px; margin-bottom: 16px; }
.infos-row:last-child { margin-bottom: 0; }
.infos-row-1 { grid-template-columns: 1.4fr 1fr 1fr; }
.infos-row-2 { grid-template-columns: repeat(4, 1fr); }
.infos-row-3 { grid-template-columns: 1fr 1.6fr; }

/* ——— Carte de base ——— */
.info-card {
  border-radius: 20px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--teal);
  color: var(--cream);
}
.info-card h2 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin: 0;
  opacity: .75;
  font-weight: 400;
  color: inherit;
}
.info-big {
  font-family: var(--display);
  font-weight: 900;
  font-size: 42px;
  line-height: 1;
  letter-spacing: -.02em;
  color: inherit;
  margin: 4px 0;
}
.info-big em { font-style: italic; font-weight: 600; }
.ic-big-sm  { font-size: 28px; }
.ic-large .info-big { font-size: 52px; }
.ic-social  { min-height: 160px; }
.ic-contact { min-height: 200px; display: flex; flex-direction: column; }
.info-card p { margin: 0; font-size: 13.5px; line-height: 1.55; opacity: .88; }
.info-card a { text-decoration: none; }

/* ——— Variantes couleur ——— */
.iink              { background: var(--ink) !important;        color: var(--cream-soft) !important; }
.iink h2           { color: rgba(248,239,217,.6); }
.iink .info-big em { color: var(--yellow); }

.iyellow              { background: var(--yellow) !important;     color: var(--ink) !important; }
.iyellow h2           { color: rgba(26,26,26,.6); }
.iyellow .info-big em { color: var(--red); }

.ialt    { background: var(--red) !important;       color: var(--cream) !important; }
.ialt h2 { color: rgba(248,239,217,.65); }

.iteal-deep    { background: var(--teal-deep) !important;  color: var(--cream) !important; }
.iteal-deep h2 { color: rgba(248,239,217,.6); }

.icream    { background: var(--cream-soft) !important; color: var(--ink) !important; }
.icream h2 { color: rgba(26,26,26,.55); }

.ired-deep    { background: var(--red-deep) !important;   color: var(--cream) !important; }
.ired-deep h2 { color: rgba(248,239,217,.6); }

.iyellow-soft    { background: var(--yellow-soft) !important; color: var(--ink) !important; }
.iyellow-soft h2 { color: rgba(26,26,26,.55); }

/* ——— Responsive ——— */
@media (max-width: 1024px) {
  .infos-row-1 { grid-template-columns: 1fr 1fr; }
  .infos-row-2 { grid-template-columns: 1fr 1fr; }
  .infos-row-3 { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .infos-row-1,
  .infos-row-2  { grid-template-columns: 1fr; }
  .ic-large .info-big { font-size: 40px; }
}

/* ——— Footer ——— */
.footer{background:var(--ink);color:var(--cream-soft);padding:72px 0 32px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:40px}
.foot-brand{display:flex;flex-direction:column;gap:14px;grid-column:span 1}
.foot-org{margin-top:16px;padding:14px 16px;background:rgba(248,239,217,.05);border:1px solid rgba(248,239,217,.1);border-radius:12px;display:flex;flex-direction:column;gap:2px}
.foot-org-label{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);opacity:.85}
.foot-org-name{font-family:var(--display);font-weight:800;font-size:18px;color:var(--cream);letter-spacing:-.005em;line-height:1.1}
.foot-org-sub{font-size:11.5px;color:rgba(248,239,217,.55);font-family:var(--mono);letter-spacing:.05em}
.foot-bottom a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.foot-bottom a:hover{color:var(--yellow)}
.foot-brand h3{font-family:var(--display);font-weight:900;font-style:italic;font-size:36px;margin:0;color:var(--cream);line-height:.95;letter-spacing:-.02em}
.foot-brand h3 em{color:var(--yellow);font-weight:600}
.foot-brand p{margin:0;font-size:13.5px;line-height:1.5;color:rgba(248,239,217,.65);max-width:360px}
.foot-col h5{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);margin:0 0 14px}
.foot-col a{display:block;font-size:13.5px;padding:4px 0;color:rgba(248,239,217,.72);transition:opacity .2s}
.foot-col a:hover{color:var(--yellow)}
.foot-bottom{margin-top:56px;padding-top:24px;border-top:1px solid rgba(248,239,217,.12);display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(248,239,217,.5);flex-wrap:wrap;gap:14px}

@media (max-width:1100px){ .foot-grid{grid-template-columns:1fr 1fr 1fr;gap:32px} .foot-brand{grid-column:span 3} }
@media (max-width:700px){ .foot-grid{grid-template-columns:1fr 1fr} .foot-brand{grid-column:span 2} }
@media (max-width:480px){ .foot-grid{grid-template-columns:1fr} .foot-brand{grid-column:span 1} }

/* ——— Toast ——— */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--ink);color:var(--yellow);padding:14px 22px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;z-index:100;transition:transform .3s;box-shadow:0 12px 40px -10px rgba(0,0,0,.5)}
.toast.show{transform:translateX(-50%) translateY(0)}

/* ——— Tweaks panel ——— */
.tweaks-panel{position:fixed;bottom:20px;right:20px;background:var(--ink);color:var(--cream);border-radius:18px;padding:20px;width:260px;z-index:80;display:none;box-shadow:0 24px 60px -16px rgba(0,0,0,.6);border:1px solid rgba(248,239,217,.1)}
.tweaks-panel.on{display:block}
.tweaks-panel h5{margin:0 0 14px;font-family:var(--display);font-weight:700;font-style:italic;font-size:20px;color:var(--yellow)}
.tweak-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(248,239,217,.75);gap:10px}
.tweak-opts{display:flex;gap:6px;flex-wrap:wrap}
.tweak-opts button{padding:6px 10px;border-radius:999px;background:rgba(248,239,217,.1);color:var(--cream);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.tweak-opts button.on{background:var(--yellow);color:var(--ink)}

/* ================================================================
   ISFCB — Styles complémentaires (pages internes, nouveaux composants)
   ================================================================ */

/* ——— Pages internes génériques ——— */
.page-hero { padding: 140px 0 80px; }
.page-head { max-width: 820px; margin-bottom: 56px; }

.inner-main { padding: 140px 0 120px; background: var(--paper); min-height: 60vh; }
.inner-back  { display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);text-decoration:none;margin-bottom:32px }
.inner-back:hover { color: var(--red-deep) }
.inner-head  { max-width:780px;margin-bottom:56px }
.inner-title { font-family:var(--display);font-weight:800;font-size:clamp(42px,6vw,88px);line-height:.92;letter-spacing:-.025em;margin:14px 0 24px;color:var(--ink) }
.inner-title em { font-style:italic;font-weight:600;color:var(--red) }
.inner-lead  { font-size:18px;line-height:1.55;color:var(--ink-soft);margin:0;max-width:680px }

/* ——— CTA secondaire ——— */
.sec-cta { margin-top:48px;display:flex;gap:16px;flex-wrap:wrap;align-items:center }
.btn-ghost-ink { background:transparent;color:var(--ink);border:1.5px solid var(--line) }
.btn-ghost-ink:hover { background:var(--cream) }

/* ——— Grille artistes (page dédiée) ——— */
.artists-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin-bottom:48px }

/* ——— Billetterie infos ——— */
.bill-infos { display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px }
.bill-info-card { background:var(--cream);border-radius:18px;padding:28px;border:1px solid var(--line) }
.bill-info-card h3 { font-family:var(--display);font-weight:700;font-size:20px;margin:0 0 10px;letter-spacing:-.01em }
.bill-info-card p  { margin:0;font-size:14px;line-height:1.6;color:var(--ink-soft) }
@media(max-width:900px){ .bill-infos { grid-template-columns:1fr } }

/* ——— Presse ——— */
.press-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:56px }
.press-card { background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:10px }
.press-card.red  { background:var(--red);color:var(--cream) }
.press-card.teal { background:var(--teal);color:var(--cream) }
.press-card.yellow { background:var(--yellow);color:var(--ink) }
.press-tag { font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red) }
.press-card.red .press-tag,.press-card.teal .press-tag { color:var(--yellow) }
.press-card h2 { font-family:var(--display);font-weight:800;font-size:22px;margin:4px 0;line-height:1.1 }
.press-card p  { margin:0;font-size:14px;line-height:1.5;opacity:.85;flex:1 }
.press-dl { font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:inherit;text-decoration:none;margin-top:12px;padding:10px 14px;border:1px solid currentColor;border-radius:999px;align-self:flex-start;transition:background .2s }
.press-contact { background:var(--ink);border-radius:24px;padding:48px;color:var(--cream-soft) }
.press-contact-inner { display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center }
.press-contact h2 { font-family:var(--display);font-weight:800;font-size:36px;line-height:1;margin:10px 0 12px;color:var(--cream) }
.press-contact p  { margin:0;font-size:15px;line-height:1.55;color:rgba(248,239,217,.8);max-width:460px }
.press-contacts { list-style:none;margin:0;padding:0;display:grid;gap:14px }
.press-contacts li { display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:rgba(248,239,217,.06);border:1px solid rgba(248,239,217,.12);border-radius:12px;gap:14px;flex-wrap:wrap }
.press-contacts span { font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow) }
.press-contacts b  { font-family:var(--display);font-weight:700;font-size:16px;color:var(--cream) }
@media(max-width:900px){ .press-grid{grid-template-columns:1fr 1fr}.press-contact-inner{grid-template-columns:1fr}.press-contact{padding:32px} }
@media(max-width:600px){ .press-grid{grid-template-columns:1fr} }

/* ——— Partenaires ——— */
.partenaires-section { margin-bottom:48px }
.partenaires-cat { font-family:var(--display);font-weight:700;font-size:24px;letter-spacing:-.01em;margin:0 0 20px;color:var(--ink) }
.partenaires-cta { background:var(--ink);border-radius:24px;padding:48px;color:var(--cream);text-align:center;margin-top:56px }
.partenaires-cta h2 { font-family:var(--display);font-weight:800;font-size:36px;margin:0 0 12px;color:var(--cream) }
.partenaires-cta p  { margin:0 auto 24px;font-size:16px;color:rgba(248,239,217,.8);max-width:560px }

/* ——— Contact block ——— */
.contact-block { margin-top:56px;text-align:center;padding:48px;background:var(--ink);border-radius:24px;color:var(--cream) }
.contact-block h2 { font-family:var(--display);font-weight:800;font-size:32px;margin:0 0 12px;color:var(--cream) }
.contact-block p  { font-size:16px;color:rgba(248,239,217,.8);margin:0 0 24px }

/* ——— Légal ——— */
.legal-wrap { max-width:820px;margin:0 auto;font-size:15.5px;line-height:1.7;color:var(--ink-soft) }
.legal-wrap h2 { font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:-.01em;color:var(--ink);margin:48px 0 12px }
.legal-wrap h2:first-of-type { margin-top:0 }
.legal-wrap p  { margin:0 0 14px }
.legal-wrap ul { padding-left:22px;margin:0 0 14px }
.legal-wrap li { margin-bottom:6px }
.legal-wrap a  { color:var(--red) }

/* ——— Alertes ——— */
.alert { padding:18px 22px;border-radius:14px;margin-bottom:32px;font-size:15px }
.alert-success { background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7 }
.alert-error   { background:#ffebee;color:#c62828;border:1px solid #ef9a9a }

/* ——— Formulaire bénévoles ——— */
.vol-form-wrap  { background:#fff;border-radius:24px;padding:40px;border:1px solid var(--line);max-width:860px;margin-top:56px }
.vol-form-title { font-family:var(--display);font-weight:800;font-size:32px;margin:0 0 32px;letter-spacing:-.015em }
.fld { display:grid;gap:6px;margin-bottom:20px }
.fld label { font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--red) }
.fld input,.fld textarea { font-family:var(--sans);font-size:15px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);resize:vertical }
.fld input:focus,.fld textarea:focus { outline:2px solid var(--red);outline-offset:1px }
.fld-row { display:grid;grid-template-columns:1fr 1fr;gap:20px }
@media(max-width:600px){ .fld-row { grid-template-columns:1fr } }
.chk-group { display:flex;flex-wrap:wrap;gap:8px;margin-top:4px }
.chk-label { display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-family:var(--sans);font-size:13px;cursor:pointer;color:var(--ink);transition:transform .2s }
.chk-label input { display:none }
.chk-label.on { background:var(--red);color:var(--cream);border-color:var(--red) }
.vol-rgpd { font-size:12px;color:var(--ink-soft);margin:16px 0;line-height:1.6 }
.vol-rgpd a { color:var(--red) }

/* ——— Nav burger mobile ——— */
.nav-burger { display:none;width:40px;height:40px;border-radius:50%;background:rgba(248,239,217,.1);flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;cursor:pointer;padding:0 }
.nav-burger span { display:block;width:18px;height:2px;background:var(--cream);border-radius:2px;transition:transform .3s,opacity .3s }
@media(max-width:900px){
  .nav-burger { display:flex }
  .nav-links  { display:none;position:absolute;top:72px;left:0;right:0;background:rgba(26,26,26,.97);flex-direction:column;padding:20px 32px;gap:16px;border-bottom:1px solid rgba(248,239,217,.1) }
  .nav-links.open { display:flex }
  .nav-links a { font-size:14px;padding:8px 0 }
}

/* ——— Intro CTA ——— */
.intro-cta { margin-top:40px;display:flex;gap:16px;flex-wrap:wrap }

/* ——— Actualités ——— */
.news-content { font-size:14px;line-height:1.7;color:var(--ink-soft);margin-top:12px;padding-top:12px;border-top:1px dashed var(--line) }


/* ——— Billetterie page ——— */
.bill-grid { display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch;margin-top:48px }
.bill-card { border-radius:24px;padding:40px }
.bill-price-card { background:var(--cream);color:var(--ink) }
.bill-price-lab { font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:8px }
.bill-price-big { font-family:var(--display);font-weight:900;font-size:140px;line-height:.8;letter-spacing:-.04em;color:var(--red) }
.bill-price-big sup { font-size:44px;vertical-align:super;opacity:.8 }
.bill-price-note { margin:12px 0 0;font-size:15px;line-height:1.5;color:var(--ink-soft) }
.bill-includes { list-style:none;padding:0;margin:14px 0 0;font-size:14px;line-height:2;color:var(--ink-soft) }
.bill-form-card { background:#fff;color:var(--ink);border-radius:18px;border:1px solid var(--line);display:flex;flex-direction:column }
.bill-form-head { padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;background:var(--cream-soft);border-radius:18px 18px 0 0 }
.ha-logo { width:28px;height:28px;border-radius:50%;background:var(--red);color:var(--cream);display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:13px;flex-shrink:0 }
.bill-form-head h2 { margin:0;font-family:var(--display);font-weight:700;font-size:16px }
.bill-form-head small { margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft) }
.bill-form-body { flex:1;padding:24px;display:flex;flex-direction:column;gap:14px }
.ticket-row { display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff;gap:12px }
.ticket-row h3 { margin:0;font-family:var(--display);font-weight:700;font-size:17px }
.ticket-row .small { font-size:12px;color:var(--ink-soft);margin-top:2px }
.ticket-price { font-family:var(--display);font-weight:900;font-size:30px;color:var(--red);letter-spacing:-.02em }
.qty { display:flex;align-items:center;gap:8px }
.qty button { width:32px;height:32px;border-radius:50%;background:var(--cream);color:var(--red);font-size:18px;font-weight:700;display:grid;place-items:center;border:0;cursor:pointer }
.qty button:hover { background:var(--yellow);color:var(--ink) }
.qty span { font-family:var(--display);font-weight:800;font-size:18px;min-width:20px;text-align:center }
.bill-total { display:flex;justify-content:space-between;font-family:var(--display);font-weight:700;padding-top:14px;border-top:1px dashed var(--line);font-size:18px }
.bill-total .amt { font-weight:900;color:var(--red);font-size:24px }
.bill-cta { background:var(--red);color:var(--cream);padding:16px;border-radius:14px;text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;transition:background .2s;cursor:pointer;border:0;width:100%;display:block;text-decoration:none }
.bill-cta:hover { background:#d15a4a }
.bill-note { font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);text-align:center }
@media(max-width:900px){ .bill-grid{grid-template-columns:1fr} .bill-price-big{font-size:100px} }

/* ——— Fix titres cartes billetterie ——— */
.bill-info-card h3 {
    color: var(--ink);
    font-family: var(--display);
    font-weight: 700;
    font-size: 20px;
    margin: 0 0 10px;
}
/* ——— Billetterie — ajustements layout ——— */

/* Colonne gauche plus étroite, droite plus large */
.bill-grid {
    grid-template-columns: 0.8fr 1.2fr;
    gap: 32px;
    align-items: start; /* aligner en haut, pas étirer */
}

/* Réduire le padding de la carte gauche */
.bill-price-card {
    padding: 32px 28px;
}

/* Prix 16€ moins imposant */
.bill-price-big {
    font-size: 110px;
    line-height: .85;
}

/* Carte droite — supprimer padding interne inutile */
.bill-form-card {
    padding: 0;
    overflow: hidden;
}

/* Header HelloAsso — plus compact */
.bill-form-head {
    padding: 14px 18px;
}
.bill-form-head h2 {
    font-size: 14px;
}

/* Zone iframe — coller au header sans marge */
.bill-form-body {
    padding: 0;
}

/* L'iframe elle-même */
.bill-form-body iframe {
    display: block;
    width: 100%;
    min-height: 600px;
    border: none;
}

/* Réduire padding section globale billetterie */
#billetterie.section-red > .wrap {
    padding-top: 60px;
    padding-bottom: 60px;
}

/* Titre et intro plus compacts */
#billetterie .page-head {
    margin-bottom: 36px;
}

@media(max-width:900px) {
    .bill-grid {
        grid-template-columns: 1fr;
    }
    .bill-price-big {
        font-size: 90px;
    }
}

/* ——— Infos pratiques — fix cartes ——— */
.infos-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
.info-card {
    background: var(--teal);
    color: var(--cream);
    border-radius: 18px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.info-card h2,
.info-card h3 {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin: 0;
    opacity: .8;
    color: inherit;
    font-weight: 400;
}
.info-big {
    font-family: var(--display);
    font-weight: 900;
    font-size: 30px;
    line-height: 1;
    letter-spacing: -.01em;
    color: inherit;
}
.info-card p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.5;
    opacity: .88;
}
.info-card a {
    color: var(--yellow);
    text-decoration: underline;
}

/* Variantes de couleur */
.iink  { background: var(--ink) }
.iyellow { background: var(--yellow); color: var(--ink) }
.ialt  { background: var(--red) }

/* Responsive */
@media(max-width: 900px) {
    .infos-grid { grid-template-columns: 1fr 1fr }
}
@media(max-width: 500px) {
    .infos-grid { grid-template-columns: 1fr }
}

/* ——— Grille food — fix complet ——— */
.food-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 20px;
    margin-top: 48px;
}
.food-card {
    border-radius: 22px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--cream);
}
.food-num {
    font-family: var(--display);
    font-style: italic;
    font-weight: 500;
    color: var(--red);
    opacity: .35;
    font-size: 64px;
    line-height: .8;
    margin-bottom: auto;
}
.food-card h2,
.food-card h3 {
    font-family: var(--display);
    font-weight: 800;
    font-size: 24px;
    letter-spacing: -.01em;
    margin: 0;
    color: inherit;
}
.food-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--ink-soft);
}

/* Largeurs */
.fc-wide { grid-column: span 6 }
.fc-mid  { grid-column: span 4 }
.fc-sm   { grid-column: span 4; background: var(--yellow) }

/* Variantes sombres */
.fc-dark {
    grid-column: span 4;
    background: var(--ink);
    color: var(--cream);
    min-height: 200px;
}
.fc-dark .food-num { color: var(--yellow) }
.fc-dark p { color: rgba(248,239,217,.75) }
.fc-dark h2, .fc-dark h3 { color: var(--cream) }

.fc-red {
    background: var(--red);
    color: var(--cream);
}
.fc-red .food-num { color: var(--yellow) }
.fc-red p { color: rgba(248,239,217,.85) }
.fc-red h2, .fc-red h3 { color: var(--cream) }

/* Responsive */
@media(max-width: 900px) {
    .fc-wide,
    .fc-mid,
    .fc-sm,
    .fc-dark,
    .fc-red { grid-column: span 12 }
}

/* ——— Chefs — fix grid ——— */
.chefs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 32px;
}
.chef-photo {
    width: 100%;
    aspect-ratio: 4/5;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background-size: cover;
    background-position: center;
}
.chef-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    background: var(--red);
    color: var(--cream);
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .15em;
    padding: 6px 12px;
    border-radius: 999px;
}
.chef-mark {
    font-family: var(--display);
    font-style: italic;
    font-weight: 900;
    font-size: 100px;
    color: var(--yellow);
    opacity: .9;
}
.chef-meta { padding: 22px 24px 26px }
.chef-house {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 6px;
}
.chef-name {
    font-family: var(--display);
    font-weight: 800;
    font-size: 26px;
    letter-spacing: -.01em;
    line-height: 1.05;
    color: var(--ink);
    margin-bottom: 8px;
}
.chef-desc {
    font-size: 14px;
    line-height: 1.55;
    color: var(--ink-soft);
    margin: 0;
}
@media(max-width: 900px) {
    .chefs-grid { grid-template-columns: 1fr }
}

/* ——— Filtres programme — fix style ——— */
.prog-filters {
    background: rgba(248,239,217,.04);
    border: 1px solid rgba(248,239,217,.08);
    border-radius: 18px;
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 36px;
}
.prog-filters-row {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.prog-filters-label {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--yellow);
    flex-shrink: 0;
    min-width: 48px;
}
.prog-filters-chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Chip par défaut — inactif */
.chip {
    padding: 8px 16px;
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    background: rgba(248,239,217,.08);
    color: var(--cream);
    border: 1px solid rgba(248,239,217,.18);
    cursor: pointer;
    transition: transform .2s,opacity .2s;
}
.chip:hover {
    border-color: var(--yellow);
    color: var(--yellow);
}

/* Chip actif */
.chip.on {
    background: var(--yellow);
    color: var(--ink);
    border-color: var(--yellow);
    font-weight: 600;
}

/* Timeline */
.tl-row.hidden { display: none }

/* ——— Carrousel artistes sur fond sombre ——— */
.section-dark .scroller-ctrls button {
    background: rgba(248,239,217,.1);
    color: var(--cream);
    border: 1px solid rgba(248,239,217,.2);
}
.section-dark .scroller-ctrls button:hover {
    background: var(--yellow);
    color: var(--ink);
    border-color: var(--yellow);
}

/* Scrollbar visible sur fond sombre */
.section-dark .artists-scroller::-webkit-scrollbar-track {
    background: rgba(248,239,217,.05);
}
.section-dark .artists-scroller::-webkit-scrollbar-thumb {
    background: var(--yellow);
}


/* ================================================================
   ISFCB — CSS Artistes complet
   Couverts : carrousel, cartes, grille, playlist, page dédiée
   ================================================================ */

/* ——— Carrousel wrapper ——— */
.artists-wrap {
    position: relative;
}

.artists-scroller {
    display: flex;
    gap: 22px;
    overflow-x: auto;
    padding: 8px 0 24px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--red) transparent;
    -webkit-overflow-scrolling: touch;
}

.artists-scroller::-webkit-scrollbar {
    height: 6px;
}
.artists-scroller::-webkit-scrollbar-track {
    background: rgba(26,26,26,.08);
    border-radius: 3px;
}
.artists-scroller::-webkit-scrollbar-thumb {
    background: var(--red);
    border-radius: 3px;
}

/* Scrollbar sur fond sombre (page artistes) */
.section-dark .artists-scroller::-webkit-scrollbar-track {
    background: rgba(248,239,217,.06);
}
.section-dark .artists-scroller::-webkit-scrollbar-thumb {
    background: var(--yellow);
}

/* ——— Carte artiste ——— */
.artist-card {
    flex: 0 0 340px;
    scroll-snap-align: start;
    border-radius: 24px;
    padding: 28px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 440px;
    transition: transform .3s ease;
    background: var(--cream);
    color: var(--ink);
    cursor: default;
}

.artist-card:hover {
    transform: translateY(-6px);
}

/* Variantes de couleur */
.artist-card.yellow {
    background: var(--yellow);
    color: var(--ink);
}
.artist-card.red {
    background: var(--red);
    color: var(--cream);
}
.artist-card.teal {
    background: var(--teal);
    color: var(--cream);
}

/* ——— Contenu de la carte ——— */
.ac-time {
    position: absolute;
    top: 22px;
    right: 22px;
    font-family: var(--display);
    font-weight: 900;
    font-size: 24px;
    letter-spacing: -.01em;
    color: var(--red);
    line-height: 1;
}

.artist-card.red .ac-time,
.artist-card.teal .ac-time {
    color: var(--yellow);
}
.artist-card.yellow .ac-time {
    color: var(--red);
}

.ac-role {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 8px;
    padding-right: 60px; /* évite chevauchement avec l'heure */
}

.artist-card.red .ac-role,
.artist-card.teal .ac-role {
    color: var(--yellow);
}

.ac-name {
    font-family: var(--display);
    font-weight: 900;
    font-size: 40px;
    line-height: .9;
    letter-spacing: -.025em;
    margin: 8px 0 6px;
    color: inherit;
}

.ac-genre {
    font-family: var(--display);
    font-style: italic;
    font-weight: 500;
    font-size: 17px;
    opacity: .85;
    margin-bottom: 16px;
    color: inherit;
}

.ac-desc {
    font-size: 14px;
    line-height: 1.55;
    opacity: .88;
    margin: 0 0 16px;
    color: inherit;
    flex: 1;
}

.ac-hits {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: auto;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .06em;
    opacity: .85;
}

.ac-hit {
    padding-left: 18px;
    position: relative;
    color: inherit;
}
.ac-hit::before {
    content: "♪";
    position: absolute;
    left: 0;
    opacity: .7;
}

/* ——— Boutons de navigation carrousel ——— */
.scroller-ctrls {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.scroller-ctrls button {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--cream);
    color: var(--red);
    font-size: 22px;
    font-weight: 300;
    display: grid;
    place-items: center;
    border: 0;
    cursor: pointer;
    transition: background .2s;
    line-height: 1;
}

.scroller-ctrls button:hover {
    background: var(--yellow);
    color: var(--ink);
}

/* Boutons sur fond sombre */
.section-dark .scroller-ctrls button {
    background: rgba(248,239,217,.1);
    color: var(--cream);
    border: 1px solid rgba(248,239,217,.2);
}
.section-dark .scroller-ctrls button:hover {
    background: var(--yellow);
    color: var(--ink);
    border-color: var(--yellow);
}

/* ——— Grille artistes (page /artistes) ——— */
.artists-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 22px;
    margin-bottom: 48px;
}

/* En grille, les cartes ne défilent pas */
.artists-grid .artist-card {
    flex: none;
    width: auto;
}

/* ——— Playlist ——— */
.playlist {
    margin-top: 56px;
    background: #fff;
    border-radius: 24px;
    padding: 32px;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    align-items: center;
    border: 1px solid var(--line);
    color: var(--ink);
}

.playlist .sec-eyebrow {
    color: var(--red);
    margin-bottom: 8px;
}

.playlist h2,
.playlist h4 {
    font-family: var(--display);
    font-weight: 800;
    font-style: italic;
    font-size: 36px;
    margin: 0 0 12px;
    letter-spacing: -.015em;
    color: var(--ink);
    line-height: 1.05;
}

.playlist > div > p {
    margin: 0 0 20px;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ink-soft);
}

/* Mock lecteur Spotify */
.pl-mock {
    background: var(--teal-deep);
    border-radius: 18px;
    padding: 22px;
    color: var(--cream);
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 300px;
}

.pl-head {
    display: flex;
    align-items: center;
    gap: 14px;
}

.disc {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: conic-gradient(
        from 0deg,
        var(--red),
        var(--yellow),
        var(--teal-light),
        var(--red)
    );
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.disc::after {
    content: "";
    width: 16px;
    height: 16px;
    background: var(--teal-deep);
    border-radius: 50%;
}

.pl-head h5,
.pl-head h3 {
    margin: 0 0 4px;
    font-family: var(--display);
    font-weight: 800;
    font-size: 17px;
    color: var(--cream);
}

.pl-head small {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .7;
    display: block;
}

.pl-track {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    font-size: 13px;
    border-top: 1px dashed rgba(248,239,217,.18);
    color: var(--cream);
}

.pl-track b {
    font-family: var(--display);
    font-weight: 700;
}

.pl-track span {
    font-family: var(--mono);
    font-size: 11px;
    opacity: .7;
    white-space: nowrap;
    margin-left: 12px;
}

.pl-play {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    align-self: flex-start;
    background: var(--yellow);
    color: var(--ink);
    padding: 10px 18px;
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
    font-weight: 500;
    border: 0;
    transition: background .2s;
}
.pl-play:hover {
    background: var(--yellow-soft);
}

/* ——— Responsive ——— */
@media(max-width: 900px) {
    .playlist {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .artist-card {
        flex: 0 0 280px;
        min-height: 380px;
    }
    .ac-name {
        font-size: 32px;
    }
}

@media(max-width: 600px) {
    .artist-card {
        flex: 0 0 260px;
    }
    .artists-grid {
        grid-template-columns: 1fr;
    }
    .playlist {
        padding: 24px;
    }
}

/* ——— Countdown card — patch jaune ——— */
.hero-card {
  padding: 32px 36px;
}
.countdown {
  gap: 12px;
  margin-bottom: 20px;
}
.cd-cell {
  background: var(--yellow);
  color: var(--ink);
  border-radius: 14px;
  padding: 18px 8px;
}
.cd-num {
  font-size: 42px;
}
.cd-lab {
  font-size: 9px;
  opacity: 1;
  color: var(--ink);
}

/* ——— Timeline — photo événement ——— */
.tl-body {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  flex-wrap: nowrap;
}
.tl-photo-main {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  flex: 1;
  min-width: 0;
}
.tl-photo {
  flex-shrink: 0;
}
.tl-photo img {
  width: 120px;
  height: 68px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
  opacity: .88;
  transition: opacity .2s, transform .25s;
  border: 1.5px solid rgba(248,239,217,.15);
}
.tl-row:hover .tl-photo img {
  opacity: 1;
  transform: scale(1.04);
}
@media (max-width: 700px) {
  .tl-body { flex-wrap: wrap; }
  .tl-photo-main { flex-direction: column; gap: 12px; }
  .tl-photo { width: 100%; }
  .tl-photo img { width: 100%; height: 140px; }
}

/* ——— Galerie Trévarez ——— */
.lieu-galerie {
  padding-top: 0;
  padding-bottom: 80px;
}
.lieu-grid {
  margin-bottom: 32px;
}
.galerie-grid {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 16px;
  height: auto;
  margin-top: 32px;
}
.galerie-col-left {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 16px;
}
.galerie-item {
  border-radius: 18px;
  overflow: hidden;
}
.galerie-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.galerie-item:hover img {
  transform: scale(1.04);
}
.galerie-item-big {
  border-radius: 18px;
  overflow: hidden;
}

@media (max-width: 900px) {
  .galerie-grid {
    grid-template-columns: 1fr;
    height: auto;
  }
  .galerie-col-left {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    height: 220px;
  }
  .galerie-item-big {
    height: 300px;
  }
}

.chefs-block {
  margin-top: 56px;
}

/* ——— Missions bénévoles ——— */
.missions-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.mission-card {
  border-radius: 18px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform .25s;
}
.mission-card:hover { transform: translateY(-4px); }

.mission-emoji { font-size: 32px; line-height: 1; }
.mission-nom {
  font-family: var(--display);
  font-weight: 800;
  font-size: 20px;
  letter-spacing: -.01em;
  margin: 0;
}
.mission-desc {
  font-size: 13.5px;
  line-height: 1.55;
  margin: 0;
  opacity: .88;
}
.missions-note {
  font-size: 14px;
  border-left: 3px solid var(--red);
  padding-left: 16px;
  margin: 0;
  line-height: 1.6;
  color: var(--ink-soft);
}

/* Variantes couleur */
.mc-red    { background: var(--red)    !important; color: var(--cream)      !important; }
.mc-teal   { background: var(--teal)   !important; color: var(--cream)      !important; }
.mc-yellow { background: var(--yellow) !important; color: var(--ink)        !important; }
.mc-ink    { background: var(--ink)    !important; color: var(--cream-soft) !important; }

.mc-red    .mission-desc,
.mc-teal   .mission-desc,
.mc-ink    .mission-desc { color: rgba(248,239,217,.82) !important; opacity: 1; }

.mc-yellow .mission-desc { color: var(--ink-soft) !important; opacity: 1; }

.mc-red    .mission-nom,
.mc-teal   .mission-nom,
.mc-ink    .mission-nom  { color: var(--cream) !important; }

.mc-yellow .mission-nom  { color: var(--ink) !important; }

@media (max-width: 1024px) { .missions-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .missions-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .missions-grid { grid-template-columns: 1fr; } }

/* ——— Bénévoles aperçu ——— */
.vol-hero {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 24px;
  align-items: stretch;
}

/* Colonne gauche */
.vol-stat {
  background: var(--red);
  border-radius: 24px;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 32px;
  position: relative;
  overflow: hidden;
  min-height: 340px;
}
.vol-stat::before {
  content: "";
  position: absolute;
  right: -40px;
  top: -40px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: rgba(248,239,217,.08);
  pointer-events: none;
}
.vol-stat-inner {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  position: relative;
  z-index: 1;
}
.vol-num-big {
  font-family: var(--display);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(100px, 14vw, 160px);
  line-height: .85;
  letter-spacing: -.04em;
  color: var(--yellow);
}
.vol-stat-text {
  padding-bottom: 8px;
}
.vol-stat-label {
  font-family: var(--display);
  font-weight: 700;
  font-size: 22px;
  color: var(--cream);
  line-height: 1;
}
.vol-stat-sub {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(248,239,217,.65);
  margin-top: 6px;
  line-height: 1.5;
}
.vol-stat-quote {
  font-family: var(--display);
  font-style: italic;
  font-weight: 600;
  font-size: 20px;
  color: var(--cream-soft);
  line-height: 1.3;
  position: relative;
  z-index: 1;
  border-top: 1px solid rgba(248,239,217,.2);
  padding-top: 20px;
}

/* Colonne droite */
.vol-pitch {
  background: var(--cream);
  border-radius: 24px;
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.vol-pitch-lead {
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
  max-width: 520px;
}

/* Grille des avantages */
.vol-perks-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.vol-perk-card {
  border-radius: 14px;
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.vpc-icon {
  font-size: 22px;
  line-height: 1;
}
.vpc-label {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}

/* Variantes couleur cartes avantages */
.vpc-red    { background: var(--red);    color: var(--cream); }
.vpc-teal   { background: var(--teal);   color: var(--cream); }
.vpc-yellow { background: var(--yellow); color: var(--ink); }
.vpc-ink    { background: var(--ink);    color: var(--cream-soft); }

.vol-cta { align-self: flex-start; }

/* Responsive */
@media (max-width: 1024px) {
  .vol-perks-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .vol-hero { grid-template-columns: 1fr; }
  .vol-stat { min-height: 280px; }
  .vol-num-big { font-size: 100px; }
}
@media (max-width: 600px) {
  .vol-perks-grid { grid-template-columns: 1fr 1fr; }
}

.ic-contact .btn-primary {
  color: var(--ink) !important;
}

main section:first-child .wrap, main #accueil {
  padding-top: 130px;
}

/* ——— Programme VIP partenaires ——— */
.vip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
}
.vip-card {
  border-radius: 18px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.vip-heure {
  font-family: var(--display);
  font-weight: 900;
  font-size: 36px;
  letter-spacing: -.02em;
  color: var(--yellow);
  line-height: 1;
}
.vip-role {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(248,239,217,.6);
}
.vip-nom {
  font-family: var(--display);
  font-weight: 800;
  font-size: 22px;
  color: var(--cream-soft);
  letter-spacing: -.01em;
}
.vip-genre {
  font-family: var(--display);
  font-style: italic;
  font-size: 15px;
  color: rgba(248,239,217,.75);
}
.vip-scene {
  font-size: 12px;
  color: rgba(248,239,217,.55);
  margin-top: 4px;
}
.vip-red    { background: var(--red-deep); }
.vip-teal   { background: var(--teal-deep); }
.vip-yellow { background: var(--teal-deep); }


/* ——— VIP — label de sous-section ——— */
.vip-section-label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--yellow);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(248,239,217,.12);
}

/* ——— VIP — photo dans carte ——— */
.vip-photo {
  margin-bottom: 14px;
  border-radius: 10px;
  overflow: hidden;
}
.vip-photo img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* ——— VIP — grille chefs (plus large) ——— */
.vip-grid-chefs {
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

.vip-card-chef {
  background: rgba(248,239,217,.1);
  border: 1px solid rgba(248,239,217,.15);
  border-radius: 18px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.vip-card .vip-desc {
  color: rgba(248,239,217,.82);
}

/* ——— Chef solo (homepage) ——— */
.chef-solo-block {
  margin-top: 56px;
}
.chef-solo-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 20px;
}
.chef-solo-inner {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 40px;
  align-items: center;
  background: var(--cream-soft);
  border-radius: 24px;
  overflow: hidden;
}
.chef-solo-photo {
  height: 100%;
  min-height: 380px;
}
.chef-solo-img {
  width: 100%;
  height: 100%;
  min-height: 380px;
  background-size: cover;
  background-position: center top;
  position: relative;
}
.chef-solo-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--red);
  color: var(--cream);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .15em;
  padding: 6px 12px;
  border-radius: 999px;
}
.chef-solo-content {
  padding: 40px 40px 40px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.chef-solo-house {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--red);
}
.chef-solo-name {
  font-family: var(--display);
  font-weight: 800;
  font-size: clamp(32px, 4vw, 52px);
  letter-spacing: -.02em;
  line-height: 1;
  margin: 0;
  color: var(--ink);
}
.chef-solo-mark {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--teal);
}
.chef-solo-desc {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0;
  max-width: 480px;
}

@media (max-width: 900px) {
  .chef-solo-inner { grid-template-columns: 1fr; }
  .chef-solo-photo { min-height: 260px; }
  .chef-solo-img   { min-height: 260px; }
  .chef-solo-content { padding: 28px; }
}

/* ── Sections presse ───────────────────────────────────────────────────── */
.press-section {
  margin-top: 64px;
  padding-top: 48px;
  border-top: 1px solid var(--line);
}
.press-section--dark {
  background: var(--ink);
  color: var(--cream-soft);
  border-radius: 12px;
  padding: 40px;
  margin-top: 64px;
  border-top: none;
}
.press-section-title {
  font-family: var(--display);
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 900;
  margin: 8px 0 28px;
}
.press-section-lead {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.7;
  max-width: 640px;
  margin-bottom: 32px;
  opacity: .85;
}

/* ── Communiqués ───────────────────────────────────────────────────────── */
.press-communiques { display: grid; gap: 16px; }
.press-communique {
  display: flex;
  align-items: center;
  gap: 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 20px 24px;
  flex-wrap: wrap;
}
.press-communique-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 48px;
  flex-shrink: 0;
}
.press-date-day {
  font-family: var(--mono);
  font-size: 24px;
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
}
.press-date-month {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  color: #888;
  letter-spacing: 1px;
}
.press-communique-body { flex: 1; }
.press-communique-body h3 {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 6px;
}
.press-communique-body p {
  font-family: var(--sans);
  font-size: 13px;
  color: #666;
  line-height: 1.6;
  margin: 0;
}

/* ── Revue de presse ───────────────────────────────────────────────────── */
.press-articles { display: grid; gap: 12px; }
.press-article {
  background: var(--cream-soft);
  border-radius: 8px;
  padding: 18px 22px;
}
.press-article-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.press-article-media {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--teal);
}
.press-article-type {
  font-family: var(--mono);
  font-size: 10px;
  background: var(--teal);
  color: #fff;
  padding: 2px 8px;
  border-radius: 20px;
}
.press-article-date {
  font-family: var(--mono);
  font-size: 11px;
  color: #888;
  margin-left: auto;
}
.press-article-title {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 6px;
}
.press-article-desc {
  font-family: var(--sans);
  font-size: 13px;
  color: #555;
  line-height: 1.6;
  margin: 0 0 12px;
}
.press-article-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ── Boutons variantes ─────────────────────────────────────────────────── */
.press-dl--sm {
  padding: 6px 14px;
  font-size: 12px;
  flex-shrink: 0;
}
.press-dl--ghost {
  background: transparent;
  border: 1px solid currentColor;
  color: var(--teal);
}
.press-dl--ghost:hover { background: var(--teal); color: #fff; }

/* ── Formulaire dossier de presse ──────────────────────────────────────── */
.press-form { display: grid; gap: 16px; max-width: 600px; }
.press-form-row--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 560px) { .press-form-row--2col { grid-template-columns: 1fr; } }
.press-form-field { display: flex; flex-direction: column; gap: 6px; }
.press-form-field label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--yellow);
}
.press-form-field input,
.press-form-field select {
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 6px;
  background: rgba(255,255,255,.1);
  color: var(--cream-soft);
  font-family: var(--sans);
  font-size: 14px;
}
.press-form-field input::placeholder { color: rgba(248,239,217,.4); }
.press-form-field select { background: rgba(26,26,26,.7); }
.press-form-field input:focus,
.press-form-field select:focus {
  outline: none;
  border-color: var(--yellow);
}
.press-submit {
  background: var(--red);
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 13px 28px;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s;
  justify-self: start;
}
.press-submit:hover { background: var(--red-deep); }
.press-form-hint {
  font-family: var(--sans);
  font-size: 12px;
  color: rgba(248,239,217,.5);
  margin: 0;
}

/* ── Messages flash ────────────────────────────────────────────────────── */
.press-msg {
  padding: 12px 18px;
  border-radius: 8px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 20px;
}
.press-msg--ok  { background: var(--yellow); color: var(--ink); }
.press-msg--err { background: var(--red-deep); color: #fff; }

/* ================================================================
   PERF — Optimisations Lighthouse (ajout mai 2026)
   ================================================================ */

/* Accessibilité mouvement — respecter la préférence système */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Hint GPU explicite sur les éléments à forte animation */
.hero::after,
.ticker-track,
.artist-card,
.intro-card,
.chef-card,
.galerie-item img,
.ac-photo img {
  will-change: transform;
}

/* Désactiver will-change au repos (économie mémoire GPU) */
.artist-card:not(:hover),
.intro-card:not(:hover),
.chef-card:not(:hover) {
  will-change: auto;
}
