
  /* ── EVENT HERO ── */
  .event-hero { background: var(--violet); position: relative; overflow: hidden; }
  .event-hero::before { content:''; position:absolute; inset:0; background-image: repeating-linear-gradient(0deg, transparent, transparent 47px, rgba(251,238,9,0.05) 48px), repeating-linear-gradient(90deg, transparent, transparent 47px, rgba(251,238,9,0.05) 48px); pointer-events:none; }
  .eh-inner { max-width: 1060px; margin: 0 auto; padding: 3.5rem 2rem; position: relative; z-index: 1; display: grid; grid-template-columns: auto 1fr; gap: 3rem; align-items: start; }
  .eh-date-block { text-align: center; border: 2px solid var(--jaune); padding: 1.25rem 2rem; flex-shrink: 0; }
  .eh-jour { font-size: 0.52rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--jaune); }
  .eh-num  { font-size: 4rem; font-weight: 900; line-height: 1; letter-spacing: -0.04em; color: var(--blanc); }
  .eh-mois { font-size: 0.55rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blanc); margin-top: 0.2rem; }
  .eh-heure { font-size: 0.85rem; font-weight: 700; color: var(--jaune); margin-top: 0.6rem; }
  .breadcrumb { font-size: 0.52rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 0.75rem; }
  .breadcrumb a { color: rgba(251,238,9,0.8); text-decoration: none; }
  .eh-tag { display: inline-block; padding: 0.28rem 0.8rem; font-size: 0.55rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.75rem; }
  .tag-concert { background: var(--jaune); color: var(--noir); }
  .tag-bal     { background: var(--blanc); color: var(--violet); }
  .tag-fete    { background: var(--noir); color: var(--jaune); }
  .eh-title { font-size: clamp(1.75rem, 5vw, 3rem); font-weight: 900; line-height: 1; letter-spacing: -0.03em; color: var(--blanc); margin-bottom: 0.9rem; }
  .eh-lieu { font-size: 0.78rem; color: rgba(255,255,255,0.75); display: flex; align-items: center; gap: 0.5rem; }
  .eh-lieu strong { color: var(--blanc); font-weight: 700; }
  .eh-artists { margin-top: 1.25rem; display: flex; gap: 0.6rem; flex-wrap: wrap; }
  .eh-artist-pill {
    font-size: 0.65rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
    padding: 0.35rem 0.9rem; border: 1px solid rgba(255,255,255,0.3); color: var(--blanc);
    text-decoration: none; transition: border-color 0.15s, background 0.15s;
  }
  .eh-artist-pill:hover { border-color: var(--jaune); color: var(--jaune); }
 
  /* ── BODY ── */
  .event-body { max-width: 1060px; margin: 0 auto; padding: 4rem 2rem; display: grid; grid-template-columns: 1fr 340px; gap: 4rem; align-items: start; }
 
  .section-label { font-size: 0.55rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--violet); margin-bottom: 0.85rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--bord); }
  .event-desc { font-size: 0.95rem; line-height: 1.85; color: #3d3d3d; }
  .event-desc p + p { margin-top: 1rem; }
 
  /* ARTISTES SECTION */
  .artistes-section { margin-top: 3rem; }
  .artiste-row {
    display: flex; align-items: center; gap: 1.25rem;
    padding: 1rem 0; border-bottom: 1px solid var(--bord);
    text-decoration: none; color: inherit; transition: background 0.12s, padding 0.12s;
  }
  .artiste-row:hover { background: var(--gris); padding-left: 0.75rem; padding-right: 0.75rem; margin-left: -0.75rem; margin-right: -0.75rem; }
  .ar-avatar { width: 92px; height: 92px; background: var(--violet); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
  .ar-avatar span { font-size: 1rem; font-weight: 900; color: var(--jaune); }
  .ar-info h4 { font-size: 0.9rem; font-weight: 700; color: var(--noir); }
  .ar-info p { font-size: 0.68rem; color: #595959; margin-top: 0.1rem; }
  .ar-arrow { margin-left: auto; color: var(--bord); transition: color 0.15s; }
  .artiste-row:hover .ar-arrow { color: var(--violet); }
 
  /* SIDEBAR */
  .sidebar {}
  .info-card { background: var(--gris); padding: 1.5rem; margin-bottom: 1.25rem; }
  .info-card h3 { font-size: 0.58rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--violet); margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--bord); }
 
  /* TARIFS */
  .tarifs-list { display: flex; flex-direction: column; gap: 0.5rem; }
  .tarif-row { display: flex; justify-content: space-between; align-items: baseline; }
  .tarif-label { font-size: 0.78rem; color: #3d3d3d; }
  .tarif-prix { font-size: 1.1rem; font-weight: 900; color: var(--violet); }
  .tarif-prix.gratuit { color: #2a7d3e; }
  .tarif-sep { border: none; border-top: 1px solid var(--bord); margin: 0.5rem 0; }
 
  /* INFOS PRATIQUES */
  .infos-list { list-style: none; display: flex; flex-direction: column; gap: 0.65rem; }
  .infos-list li { font-size: 0.78rem; color: #3d3d3d; display: flex; gap: 0.7rem; line-height: 1.4; }
  .infos-list li .ic { font-size: 0.85rem; flex-shrink: 0; width: 18px; text-align: center; }
  .infos-list li strong { color: var(--noir); display: block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
 
  /* CARTE */
  .map-placeholder { background: var(--violet); aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; margin-top: 0; }
  .map-placeholder p { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.5); }
 
  /* CTA RÉSERVATION */
  .cta-block { background: var(--noir); padding: 1.5rem; text-align: center; }
  .cta-block p { font-size: 0.7rem; color: #888; margin-bottom: 1rem; line-height: 1.5; }
  .btn-reserve { display: block; padding: 0.9rem; background: var(--jaune); color: var(--noir); font-size: 0.7rem; font-weight: 900; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; text-align: center; transition: background 0.15s; }
  .btn-reserve:hover { background: #ffe800; }
  .btn-reserve-outline { display: block; padding: 0.75rem; background: transparent; color: #aaa; border: 1px solid #444; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; text-align: center; margin-top: 0.5rem; transition: border-color 0.15s, color 0.15s; }
  .btn-reserve-outline:hover { border-color: var(--blanc); color: var(--blanc); }
 
  /* NAV ÉVÉNEMENTS */
  .events-nav { background: var(--gris); border-top: 1px solid var(--bord); border-bottom: 1px solid var(--bord); }
  .events-nav-inner { max-width: 1060px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: space-between; }
  .ev-nav-link { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #595959; text-decoration: none; padding: 1rem 0; display: flex; align-items: center; gap: 0.5rem; transition: color 0.15s; }
  .ev-nav-link:hover { color: var(--violet); }
 