  /* ── PAGE HEADER ── */
  .page-header { background: var(--violet); padding: 3rem 2rem 3.25rem; position: relative; overflow: hidden; }
  .page-header::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; }
  .page-header-inner { max-width: 1060px; margin: 0 auto; position: relative; z-index: 1; }
  .breadcrumb { font-size: 0.55rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 0.75rem; }
  .breadcrumb a { color: var(--jaune); text-decoration: none; }
  .page-header h1 { font-size: clamp(2rem, 6vw, 3.5rem); font-weight: 900; line-height: 1; letter-spacing: -0.03em; color: var(--blanc); }
  .page-header h1 span { color: var(--jaune); }
  .page-header-meta { margin-top: 0.9rem; font-size: 0.7rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.7); }
 
  /* ── FILTRES ── */
  .filtres-bar { background: var(--gris); border-bottom: 1px solid var(--bord); padding: 0; }
  .filtres-inner { max-width: 1060px; margin: 0 auto; padding: 0 2rem; display: flex; gap: 0; overflow-x: auto; }
  .filtre-btn { font-size: 0.58rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.85rem 1.25rem; background: none; border: none; cursor: pointer; color: #595959; border-bottom: 2px solid transparent; white-space: nowrap; transition: color 0.15s, border-color 0.15s; }
  .filtre-btn:hover { color: var(--noir); }
  .filtre-btn.active { color: var(--violet); border-bottom-color: var(--violet); }
 
  /* ── SECTION ── */
  .section { padding: 3rem 2rem 5rem; }
  .section-inner { max-width: 1060px; margin: 0 auto; }
 
  /* ── JOUR HEADER ── */
  .jour-header {
    display: flex; align-items: center; gap: 1.25rem;
    margin: 2.5rem 0 0; padding: 1.25rem 0;
    border-top: 3px solid var(--noir);
  }
  .jour-header:first-child { margin-top: 0; }
  .jour-num { font-size: 3.5rem; font-weight: 900; line-height: 1; color: var(--violet); letter-spacing: -0.04em; }
  .jour-info { }
  .jour-nom { font-size: 0.825rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--noir); }
  .jour-mois { font-size: 0.75rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: #595959; }
  .jour-count { margin-left: auto; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #595959; }
 
  /* ── ÉVÉNEMENT CARD ── */
  .event-list { display: flex; flex-direction: column; margin-top: 0.5rem; }
  .event-list li { list-style-type:none  !important; }
  .event-card {
    display: grid; grid-template-columns: 160px 1fr auto;
    gap: 2rem; padding: 1.75rem 0; border-bottom: 1px solid var(--bord);
    text-decoration: none; color: inherit;
    transition: background 0.12s, padding 0.12s;
  }
  .event-card:hover { background: var(--gris); padding-left: 1rem; padding-right: 1rem; margin-left: -1rem; margin-right: -1rem; }
  .event-card.highlight { background: var(--jaune); padding: 2rem; margin: 0.75rem -2rem; border-bottom: none; }
  .event-card.highlight:hover { background: #ffe800; }
 
  .ec-time { display: flex; flex-direction: column; justify-content: flex-start; }
  .ec-heure { font-size: 1.5rem; font-weight: 900; line-height: 1; letter-spacing: -0.03em; color: var(--violet); }
  .event-card.highlight .ec-heure { color: var(--noir); }
  .ec-lieu { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #595959; margin-top: 0.3rem; }
  .ec-salle { font-size: 0.62rem; color: #595959; margin-top: 0.1rem; }
 
  .ec-body h3 { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; color: var(--noir); margin-bottom: 0.3rem; }
  .ec-artists { font-size: 0.75rem; color: var(--violet); font-weight: 700; margin-bottom: 0.3rem; }
  .ec-desc { font-size: 0.78rem; color: #595959; line-height: 1.5; }
  .ec-infos { display: flex; gap: 0.75rem; margin-top: 0.75rem; flex-wrap: wrap; }
  .ec-info-badge {
    font-size: 0.55rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
    padding: 0.22rem 0.6rem; background: var(--gris); border: 1px solid var(--bord); color: #3d3d3d;
  }
  .event-card.highlight .ec-info-badge { background: rgba(0,0,0,0.08); border-color: rgba(0,0,0,0.15); }
 
  .ec-aside { display: flex; flex-direction: column; align-items: flex-end; gap: 0.5rem; }
  .ec-tag { display: inline-block; padding: 0.28rem 0.7rem; font-size: 0.55rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
  .tag-concert { background: var(--jaune); color: var(--noir); }
  .tag-bal     { background: var(--violet); color: var(--blanc); }
  .tag-fete    { background: var(--noir); color: var(--jaune); }
  .tag-atelier { background: var(--gris); color: var(--noir); border: 1px solid var(--bord); }
  .ec-tarif { font-size: 0.65rem; font-weight: 700; color: var(--violet); white-space: nowrap; }
  .ec-tarif.gratuit { color: #2a7d3e; }
  .ec-arrow { font-size: 1rem; color: var(--bord); margin-top: auto; transition: color 0.15s; }
  .event-card:hover .ec-arrow { color: var(--violet); }