@import url('https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,700,800,900&display=swap');

/* ── Variables ── */
:root {
  --wm-ink:       #222223;
  --wm-cream:     #F6EDDA;
  --wm-white:     #FFFFFF;
  --rule:         rgba(246,237,218,0.2);
  --rule-strong:  rgba(246,237,218,0.45);
  --bg-elevated:  #2B2B2C;

  --show-magenta: #D83196;
  --show-orange:  #FD5511;
  --show-lilac:   #BF87C2;
  --show-yellow:  #F6FA79;
  --show-gold:    #FFCF3F;
  --show-mint:    #4FB395;
  --show-red:     #F72244;
  --show-lime:    #91CE66;

  --font: 'Cabinet Grotesk', 'Inter', system-ui, sans-serif;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; background: var(--wm-ink); color: var(--wm-cream); font-family: var(--font); -webkit-font-smoothing: antialiased; }
a { color: var(--wm-cream); }
img { display: block; max-width: 100%; }
h1,h2,h3,h4 { margin: 0; }

/* ── Header ── */
.wm-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 32px; border-bottom: 1px solid var(--rule);
  position: sticky; top: 0; background: var(--wm-ink); z-index: 100;
}
.wm-header img { height: 44px; }
.wm-header nav { display: flex; gap: 28px; }
.wm-header nav a {
  font-weight: 700; font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; text-decoration: none;
  opacity: 0.7; transition: opacity 120ms;
}
.wm-header nav a:hover { opacity: 1; }
.wm-nav-toggle { display: none; background: none; border: none; color: var(--wm-cream); font-size: 22px; cursor: pointer; }

/* ── Hero ── */
.wm-hero-wrap {
  position: relative;
  overflow: hidden;
}
.wm-hero {
  padding: 80px 32px 60px;
  font-weight: 800;
  font-size: clamp(52px, 9vw, 110px);
  line-height: 0.95; letter-spacing: -0.01em;
  text-transform: uppercase; color: var(--wm-cream);
  margin: 0; position: relative; z-index: 1;
}

/* ── Floating shapes ── */
.wm-shapes { position: absolute; inset: 0; pointer-events: none; }
.wm-shape {
  position: absolute;
  opacity: 0.12;
  animation: wmDrift linear infinite;
}
/* cercles */
.wm-shape--1 {
  width: 160px; height: 160px; border-radius: 50%;
  background: var(--show-magenta);
  top: 8%; animation-duration: 18s; animation-delay: 0s;
}
.wm-shape--2 {
  width: 80px; height: 80px; border-radius: 50%;
  border: 2px solid var(--show-lilac); background: transparent;
  top: 60%; animation-duration: 13s; animation-delay: -4s;
}
/* carrés */
.wm-shape--3 {
  width: 90px; height: 90px;
  background: var(--show-orange);
  top: 50%; animation-duration: 15s; animation-delay: -7s;
}
.wm-shape--4 {
  width: 50px; height: 50px;
  border: 2px solid var(--show-mint); background: transparent;
  top: 25%; animation-duration: 11s; animation-delay: -2s;
}
/* triangles */
.wm-shape--5 {
  width: 0; height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 86px solid var(--show-gold);
  background: transparent;
  top: 70%; animation-duration: 20s; animation-delay: -9s;
}
.wm-shape--6 {
  width: 0; height: 0;
  border-left: 35px solid transparent;
  border-right: 35px solid transparent;
  border-bottom: 60px solid var(--show-magenta);
  background: transparent;
  top: 20%; animation-duration: 14s; animation-delay: -5s;
}
/* croix */
.wm-shape--7 {
  width: 70px; height: 70px;
  background: var(--show-mint);
  clip-path: polygon(33% 0%,67% 0%,67% 33%,100% 33%,100% 67%,67% 67%,67% 100%,33% 100%,33% 67%,0% 67%,0% 33%,33% 33%);
  top: 40%; animation-duration: 17s; animation-delay: -3s;
}
.wm-shape--8 {
  width: 50px; height: 50px;
  background: var(--show-lilac);
  clip-path: polygon(33% 0%,67% 0%,67% 33%,100% 33%,100% 67%,67% 67%,67% 100%,33% 100%,33% 67%,0% 67%,0% 33%,33% 33%);
  top: 75%; animation-duration: 12s; animation-delay: -11s;
}
@keyframes wmDrift {
  from { transform: translateX(110vw) rotate(0deg); }
  to   { transform: translateX(-30%) rotate(360deg); }
}

/* ── Live player ── */
@keyframes wmplayercolor {
  0%   { background: #D83196; }
  14%  { background: #FD5511; }
  28%  { background: #BF87C2; }
  42%  { background: #FFCF3F; }
  56%  { background: #4FB395; }
  70%  { background: #91CE66; }
  85%  { background: #F72244; }
  100% { background: #D83196; }
}
.wm-player {
  display: grid; grid-template-columns: 1fr 2fr 180px;
  align-items: center; gap: 32px; padding: 32px 36px;
  color: var(--wm-ink);
  animation: wmplayercolor 32s linear infinite;
}
.wm-player-live {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 11px; letter-spacing: 0.18em;
}
.wm-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--wm-ink);
  animation: wmpulse 1.4s ease-in-out infinite;
}
@keyframes wmpulse { 0%,100% { opacity:1; } 50% { opacity:0.25; } }

.wm-player-title {
  font-weight: 800; font-size: 28px; letter-spacing: 0.01em;
  text-transform: uppercase; line-height: 1.05; margin: 6px 0 4px;
}
.wm-player-meta { font-size: 12px; opacity: 0.85; }

/* now playing strip */
.wm-now-playing {
  display: flex; flex-wrap: wrap; align-items: center; gap: 3px 6px;
  margin-top: 10px; font-size: 12px; min-height: 32px;
}
.wm-np-label {
  font-weight: 700; font-size: 9px; letter-spacing: 0.18em;
  opacity: 0.7; text-transform: uppercase; width: 100%;
}
.wm-np-artist { font-weight: 700; text-transform: uppercase; }
.wm-np-sep    { opacity: 0.5; }
.wm-np-bar-track {
  width: 100%; height: 2px; background: rgba(0,0,0,0.2);
  border-radius: 1px; margin-top: 5px;
}
.wm-np-bar { height: 2px; width: 0%; background: var(--wm-ink); border-radius: 1px; transition: width 1s linear; }

.wm-player-center { display: flex; flex-direction: column; gap: 8px; }
.wm-play-btn {
  width: 56px; height: 56px; border-radius: 50%;
  border: 2px solid var(--wm-ink); background: transparent;
  color: var(--wm-ink); font-size: 18px; font-weight: 700;
  cursor: pointer;
}
.wm-play-btn:hover { background: var(--wm-ink); color: var(--wm-cream); }

.wm-waveform { display: flex; align-items: center; gap: 2px; height: 48px; margin-top: 6px; }
.wm-waveform span { width: 3px; background: var(--wm-ink); display: inline-block; border-radius: 1px; }

.wm-player-cover { position: relative; }
.wm-player-cover img { width: 160px; height: 160px; object-fit: cover; }
.wm-np-cover {
  position: absolute; inset: 0; width: 160px; height: 160px;
  object-fit: cover; transition: opacity 300ms;
}

/* ── Accordion sections ── */
.wm-section { border-top: 1px solid var(--rule); }
.wm-section > summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  padding: 28px 32px;
  font-weight: 800; font-size: clamp(32px, 5vw, 55px);
  line-height: 1; text-transform: uppercase; color: var(--wm-white);
  transition: color 120ms;
}
.wm-section > summary::-webkit-details-marker { display: none; }
.wm-section[open] > summary,
.wm-section > summary:hover { color: var(--wm-cream); }
.wm-affordance {
  font-weight: 400; font-size: 14px; letter-spacing: 0.02em;
  text-transform: none;
}
.wm-section-body { padding: 0 32px 80px; }
.wm-section--opening .wm-section-body { animation: wmSlideDown 350ms cubic-bezier(0.16,1,0.3,1) both; }
@keyframes wmSlideDown { from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:translateY(0); } }
.wm-section--closing .wm-section-body { animation: wmSlideUp 220ms cubic-bezier(0.4,0,1,1) both; }
@keyframes wmSlideUp { from { opacity:1; transform:translateY(0); } to { opacity:0; transform:translateY(-12px); } }
.wm-section-h2 {
  font-weight: 800; font-size: clamp(28px, 4vw, 48px); line-height: 1.05;
  text-transform: uppercase; letter-spacing: 0.01em;
  color: var(--wm-cream); margin-bottom: 32px;
}
.wm-eyebrow {
  font-weight: 700; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; opacity: 0.6; margin-bottom: 12px;
}

/* ── Buttons ── */
.wm-button {
  display: inline-flex; align-items: center; justify-content: center;
  height: 40px; padding: 0 28px;
  font-weight: 700; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
  background: var(--wm-cream); color: var(--wm-ink);
  border: 1px solid var(--wm-cream); border-radius: 0;
  cursor: pointer; text-decoration: none; transition: background 120ms, color 120ms;
}
.wm-button:hover { background: var(--wm-ink); color: var(--wm-cream); }
.wm-button--outline { background: transparent; color: var(--wm-cream); border-color: var(--wm-cream); }
.wm-button--outline:hover { background: var(--wm-cream); color: var(--wm-ink); }

/* ── Stats ── */
.wm-stats {
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
.wm-stat { padding: 28px 24px; border-left: 1px solid var(--rule); }
.wm-stat:first-child { border-left: 0; }
.wm-stat-n {
  font-weight: 800; font-size: 52px; line-height: 1;
  color: var(--wm-cream); letter-spacing: -0.01em;
}
.wm-stat-lbl {
  margin-top: 6px; font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; opacity: 0.6;
}

/* ── Shows grid ── */
.wm-shows-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.wm-show-card {
  display: flex; flex-direction: column; gap: 8px;
  text-decoration: none; color: var(--wm-cream);
  background: transparent; border: 0; padding: 0; cursor: pointer; text-align: left;
}
.wm-show-img-wrap { overflow: hidden; aspect-ratio: 1; position: relative; }
.wm-show-img-wrap img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.05); display: block; transition: transform 300ms ease; }
.wm-show-card:hover .wm-show-img-wrap img { transform: scale(1.1); }
.wm-show-hover-hint {
  position: absolute; inset: 0; background: rgba(0,0,0,0);
  display: flex; align-items: center; justify-content: center;
  transition: background 220ms;
}
.wm-show-hover-hint span {
  font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: #fff; opacity: 0; transition: opacity 220ms;
}
.wm-show-card:hover .wm-show-hover-hint { background: rgba(0,0,0,0.45); }
.wm-show-card:hover .wm-show-hover-hint span { opacity: 1; }
.wm-show-name { font-weight: 700; font-size: 12px; letter-spacing: 0.02em; text-transform: uppercase; line-height: 1.2; }
.wm-show-time { font-size: 10px; opacity: 0.5; }

/* Carte "voir tout" */
.wm-show-card--more { text-decoration: none; }
.wm-show-card--more .wm-show-img-wrap {
  background: rgba(246,237,218,0.03);
  border: 1px solid rgba(246,237,218,0.15);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  transition: background 160ms, border-color 160ms;
}
.wm-show-card--more:hover .wm-show-img-wrap { background: rgba(246,237,218,0.07); border-color: rgba(246,237,218,0.35); }
.wm-show-more-arrow { font-size: 28px; opacity: 0.6; }
.wm-show-more-label { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; text-align: center; line-height: 1.5; opacity: 0.7; padding: 0 12px; }

.wm-podcast-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.wm-podcast-link {
  font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 3px 7px; border: 1px solid var(--rule-strong);
  color: var(--wm-cream); text-decoration: none; opacity: 0.7;
  transition: opacity 120ms, border-color 120ms;
}
.wm-podcast-link:hover { opacity: 1; border-color: var(--wm-cream); }

/* ── Show overlay (accueil + /emissions/) ── */
.wm-show-overlay {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 24px 24px calc(76px + 24px);
  background: rgba(0,0,0,0); visibility: hidden;
  transition: background 250ms, visibility 0s 250ms;
}
.wm-show-overlay--open { background: rgba(0,0,0,0.75); visibility: visible; transition: background 250ms; }
.wm-show-overlay-panel {
  position: relative; background: var(--wm-ink); border: 1px solid var(--rule);
  width: 100%; max-width: 820px; max-height: calc(100vh - 76px - 48px); overflow-y: auto;
  opacity: 0; transform: translateY(16px); transition: opacity 250ms, transform 250ms;
}
.wm-show-overlay--open .wm-show-overlay-panel { opacity: 1; transform: translateY(0); }
.wm-show-overlay-bar {
  position: sticky; top: 0; z-index: 10;
  display: flex; justify-content: flex-end; padding: 12px 16px;
  background: var(--wm-ink); border-bottom: 1px solid var(--rule);
}
.wm-show-overlay-bar button {
  background: none; border: 1px solid var(--rule); color: var(--wm-cream);
  font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  padding: 6px 14px; cursor: pointer; font-family: var(--font); transition: border-color 150ms, background 150ms;
}
.wm-show-overlay-bar button:hover { border-color: var(--wm-cream); background: rgba(246,237,218,0.06); }
.wm-show-overlay-header {
  display: grid; grid-template-columns: 180px 1fr; gap: 28px;
  padding: 24px 28px; border-bottom: 1px solid var(--rule);
}
.wm-show-overlay-img img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.wm-show-overlay-info { display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.wm-show-overlay-name { font-weight: 800; font-size: clamp(18px,3vw,26px); text-transform: uppercase; line-height: 1.1; letter-spacing: -0.01em; }
.wm-show-overlay-meta { font-size: 12px; opacity: 0.5; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.wm-show-overlay-desc { font-size: 14px; line-height: 1.7; opacity: 0.75; margin: 0; }
.wm-show-overlay-links { display: flex; flex-wrap: wrap; gap: 6px; }
.wm-episodes-section { padding: 24px 28px 20px; }
.wm-episodes-section .wm-eyebrow { margin-bottom: 16px; }
.wm-episodes-loading { font-size: 13px; opacity: 0.4; margin: 0; }
.wm-episode-list { display: flex; flex-direction: column; gap: 2px; }
.wm-episode-item {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px;
  padding: 12px 14px; background: rgba(246,237,218,0.03); border: 1px solid rgba(246,237,218,0.06);
  cursor: pointer; transition: background 150ms, border-color 150ms; color: var(--wm-cream);
}
.wm-episode-item:hover { background: rgba(246,237,218,0.07); border-color: rgba(246,237,218,0.15); }
.wm-episode-item.active { border-color: rgba(246,237,218,0.3); background: rgba(246,237,218,0.06); }
.wm-episode-title { font-size: 13px; font-weight: 600; line-height: 1.4; }
.wm-episode-date { font-size: 11px; opacity: 0.4; margin-top: 3px; }
.wm-episode-duration { font-size: 11px; opacity: 0.4; white-space: nowrap; }
.wm-episode-play {
  width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
  background: rgba(246,237,218,0.1); border: 1px solid rgba(246,237,218,0.2);
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; color: var(--wm-cream); transition: background 150ms;
}
.wm-episode-item:hover .wm-episode-play, .wm-episode-item.active .wm-episode-play { background: var(--wm-cream); color: var(--wm-ink); }
.wm-episode-embed { padding: 0 28px 28px; }
.wm-episode-embed iframe { display: block; }

/* ── News / Actualités ── */
.wm-news-intro { display: grid; grid-template-columns: 1fr 2fr; gap: 48px; align-items: start; margin-bottom: 32px; }
.wm-lead { font-size: 15px; line-height: 1.6; margin: 0; max-width: 680px; }

.wm-news-cats { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 36px; }
.wm-cat-btn {
  padding: 8px 16px; border: 1px solid var(--wm-cream);
  font-weight: 700; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  background: transparent; color: var(--wm-cream); cursor: pointer; transition: background 120ms, color 120ms;
}
.wm-cat-btn.active,
.wm-cat-btn:hover { background: var(--wm-cream); color: var(--wm-ink); }

.wm-news-featured {
  display: grid; grid-template-columns: 0.6fr 1fr; gap: 28px;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  padding: 24px 0; margin-bottom: 32px;
}
.wm-news-featured img { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #111; }
.wm-news-featured-body { display: flex; flex-direction: column; gap: 12px; }
.wm-news-featured-title {
  font-weight: 800; font-size: clamp(22px, 3vw, 36px); line-height: 1.05;
  letter-spacing: 0.01em; text-transform: uppercase;
}
.wm-news-excerpt { font-size: 14px; line-height: 1.55; opacity: 0.9; margin: 0; }
.wm-news-author { font-size: 11px; opacity: 0.7; }

.wm-news-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.wm-news-card {
  display: flex; flex-direction: column; gap: 10px;
  border-top: 1px solid var(--rule); padding-top: 20px;
  text-decoration: none; color: var(--wm-cream);
}
.wm-news-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #111; }
.wm-news-card h3 {
  font-weight: 700; font-size: 16px; line-height: 1.15;
  letter-spacing: 0.01em; text-transform: uppercase; color: var(--wm-cream);
}
.wm-news-card p { font-size: 13px; line-height: 1.5; opacity: 0.85; margin: 0; }

.wm-news-meta { display: flex; gap: 12px; align-items: center; }
.wm-news-tag {
  padding: 3px 8px; border: 1px solid var(--rule-strong);
  font-weight: 700; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
}
.wm-news-date { font-size: 11px; opacity: 0.6; }
.wm-read-more { font-weight: 700; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; margin-top: auto; text-decoration: none; color: var(--wm-cream); }
.wm-more { display: flex; justify-content: center; margin-top: 40px; }

/* ── Association ── */
.wm-assoc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.wm-assoc-info { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--rule); }
.wm-info-block { padding: 24px; border-bottom: 1px solid var(--rule); border-left: 1px solid var(--rule); }
.wm-info-block:nth-child(odd) { border-left: 0; }
.wm-info-label { font-weight: 700; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.6; margin-bottom: 8px; }
.wm-info-body { font-size: 13px; line-height: 1.6; }
.wm-info-body a { text-decoration: underline; }

/* ── Services ── */
.wm-services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.wm-service-card { display: flex; flex-direction: column; }
.wm-service-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.wm-service-title {
  font-weight: 800; font-size: 20px; text-transform: uppercase;
  letter-spacing: 0.01em; margin: 8px 0 10px;
}
.wm-service-card p { font-size: 13px; line-height: 1.55; opacity: 0.85; margin: 0 0 16px; }

/* ── Contact ── */
.wm-contact-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 80px; align-items: start; }
.wm-contact-email { margin-top: 24px; font-size: 18px; font-weight: 700; }
.wm-contact-email a { text-decoration: underline; }
.wm-form { display: flex; flex-direction: column; gap: 20px; }
.wm-field { display: flex; flex-direction: column; gap: 6px; }
.wm-field label { font-weight: 700; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.7; }
.wm-field input,
.wm-field select,
.wm-field textarea {
  background: var(--bg-elevated); border: 1px solid var(--rule-strong);
  color: var(--wm-cream); font-family: var(--font); font-size: 14px;
  padding: 10px 14px; border-radius: 0; outline: none;
  transition: border-color 120ms;
}
.wm-field input:focus,
.wm-field select:focus,
.wm-field textarea:focus { border-color: var(--wm-cream); }
.wm-field textarea { resize: vertical; }
.wm-form-status { font-size: 13px; opacity: 0.8; min-height: 20px; }

/* ── Soutenir ── */
.wm-soutenir-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border-top: 1px solid var(--rule); }
.wm-soutenir-card {
  display: flex; flex-direction: column; gap: 14px;
  padding: 36px 32px; border-left: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
}
.wm-soutenir-card:first-child { border-left: 0; }
.wm-soutenir-price {
  font-weight: 800; font-size: 48px; line-height: 1; letter-spacing: -0.01em;
}
.wm-soutenir-price span { font-size: 18px; font-weight: 400; opacity: 0.6; }
.wm-soutenir-card p { font-size: 13px; line-height: 1.55; opacity: 0.85; margin: 0; flex: 1; }

/* ── Footer ── */
.wm-footer {
  border-top: 1px solid var(--rule); padding: 60px 32px;
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px;
}
.wm-footer h4 {
  font-weight: 700; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; opacity: 0.6; margin-bottom: 14px;
}
.wm-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.wm-footer a { text-decoration: none; font-size: 13px; opacity: 0.8; transition: opacity 120ms; }
.wm-footer a:hover { opacity: 1; }

/* ── Mini player ── */
.wm-mini-player {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
  display: flex; align-items: center; gap: 16px;
  padding: 14px 28px;
  background: var(--show-magenta); color: var(--wm-ink);
  transform: translate3d(0, 100%, 0);
  -webkit-transform: translate3d(0, 100%, 0);
  transition: transform 280ms cubic-bezier(0.16,1,0.3,1), background 300ms ease;
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.wm-mini-player--visible {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
}
body:has(.wm-mini-player--visible) { padding-bottom: 76px; }
.wm-mini-left { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.wm-mini-live { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 9px; letter-spacing: 0.18em; opacity: 0.7; }
.wm-mini-live .wm-dot { background: var(--wm-ink); }
.wm-mini-now-playing { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 6px; }
.wm-mini-now-playing .wm-np-label { color: var(--wm-ink); opacity: 0.7; }
.wm-mini-now-playing .wm-np-artist { color: var(--wm-ink); }
.wm-mini-now-playing .wm-np-sep { color: var(--wm-ink); }
.wm-mini-now-playing .wm-np-title { color: var(--wm-ink); }
.wm-mini-now-playing .wm-np-bar-track { width: 100%; }
.wm-mini-now-playing .wm-np-bar { background: var(--wm-ink); }
.wm-mini-play {
  width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0;
  border: 2px solid var(--wm-ink); background: transparent;
  color: var(--wm-ink); font-size: 16px; cursor: pointer;
  transition: background 120ms;
}
.wm-mini-play:hover { background: var(--wm-ink); color: var(--wm-cream); }
.wm-mini-cover { width: 44px; height: 44px; object-fit: cover; flex-shrink: 0; }

/* ── Article overlay ── */
.wm-overlay {
  position: fixed; inset: 0; z-index: 300;
  background: var(--wm-ink);
  transform: translateX(100%);
  transition: transform 380ms cubic-bezier(0.16,1,0.3,1);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.wm-overlay--open { transform: translateX(0); }
.wm-overlay-bar {
  display: flex; align-items: center; padding: 16px 32px;
  border-bottom: 1px solid var(--rule); flex-shrink: 0;
  position: sticky; top: 0; background: var(--wm-ink); z-index: 1;
}
.wm-overlay-close {
  background: none; border: 1px solid var(--rule-strong); color: var(--wm-cream);
  font-family: var(--font); font-weight: 700; font-size: 11px; letter-spacing: 0.14em;
  padding: 8px 16px; cursor: pointer; transition: border-color 120ms, background 120ms;
}
.wm-overlay-close:hover { background: var(--wm-cream); color: var(--wm-ink); border-color: var(--wm-cream); }
.wm-overlay-body {
  flex: 1; overflow-y: auto;
  padding: 48px 60px 80px;
}
@media (max-width: 600px) { .wm-overlay-body { padding: 32px 20px 60px; } }
.wm-overlay-loader { display: flex; flex-direction: column; gap: 16px; padding-top: 20px; }

/* ── Skeleton loader ── */
.wm-skeleton {
  background: linear-gradient(90deg, var(--bg-elevated) 25%, #333 50%, var(--bg-elevated) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite;
  border-radius: 2px;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ── Responsive ── */
@media (max-width: 900px) {
  .wm-player { grid-template-columns: 1fr; gap: 16px; padding: 24px; }
  .wm-player-cover { display: none; }
  .wm-shows-grid { grid-template-columns: repeat(2,1fr); }
  .wm-news-grid { grid-template-columns: repeat(2,1fr); }
  .wm-news-featured { grid-template-columns: 1fr; }
  .wm-assoc-grid { grid-template-columns: 1fr; gap: 40px; }
  .wm-services-grid { grid-template-columns: 1fr; }
  .wm-contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .wm-soutenir-grid { grid-template-columns: 1fr; }
  .wm-soutenir-card { border-left: 0; border-top: 1px solid var(--rule); }
  .wm-stats { grid-template-columns: repeat(2,1fr); }
  .wm-footer { grid-template-columns: 1fr 1fr; }
  .wm-news-intro { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 600px) {
  .wm-header nav { display: none; }
  .wm-header nav.open { display: flex; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: var(--wm-ink); padding: 20px 32px; border-bottom: 1px solid var(--rule); gap: 16px; z-index: 99; }
  .wm-nav-toggle { display: block; }
  .wm-news-grid { grid-template-columns: 1fr; }
  .wm-shows-grid { grid-template-columns: repeat(2,1fr); }
  .wm-footer { grid-template-columns: 1fr; }
  .wm-hero { padding: 48px 20px 36px; }
  .wm-section > summary { padding: 20px; }
  .wm-section-body { padding: 0 20px 48px; }
}
