: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,color .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:0;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;
  animation: sparkle 18s linear infinite;
}
@keyframes sparkle { from{background-position:0 0,40px 40px} to{background-position:80px 80px,220px 220px}}

.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,color .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;align-items:baseline;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)}

@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:all .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)}

.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,color .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{background:var(--cream);border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.food-card .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 h4{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.wide{grid-column:span 6}
.food-card.mid{grid-column:span 4}
.food-card.sm{grid-column:span 4;background:var(--yellow)}
.food-card.dark{grid-column:span 4;background:var(--ink);color:var(--cream);min-height:220px}
.food-card.dark .num{color:var(--yellow)}
.food-card.dark p{color:rgba(248,239,217,.75)}
.food-card.red{background:var(--red);color:var(--cream)}
.food-card.red .num{color:var(--yellow)}
.food-card.red p{color:rgba(248,239,217,.85)}

@media (max-width:900px){
  .food-card.wide,.food-card.mid,.food-card.sm,.food-card.dark,.food-card.red{grid-column:span 12}
}

/* ——— 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:border-color .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, border-color .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{background:#fff;border:1px solid var(--line);border-radius:12px;height:84px;display:flex;align-items:center;justify-content:center;padding:12px 18px;transition:border-color .25s, 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:border-color .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} }

/* ——— 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:color .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,color .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:all .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:all .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: all .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, color .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;
    }
}