/* VINX | Media nel flusso editoriale, titolo di pagina unico | 2026-10-25
 * Sorgenti: template events/works/projects/releases/teaching + CSS originali.
 * Nessun crop delle foto, nessun cambiamento agli elenchi.
 * Quest'ultimo CSS prevale sul precedente ritmo/foto/embed.
 */
:root {
  --vinx-inline-video-width: 520px;
  --vinx-inline-audio-width: 460px;
  --vinx-inline-social-width: 360px;
  --vinx-record-heading-size: clamp(1.65rem, 2.05vw, 2rem);
  --vinx-record-subheading-size: clamp(1.07rem, 1.18vw, 1.22rem);
}

/* Un solo livello visivo secondario, non due titoli giganti. Il vero H1
   resta il titolo della scheda: H2/H3 conservano la semantica del documento. */
main article > section.pagehead h1,
main article .pagehead h1 {
  font-size: var(--vinx-record-heading-size) !important;
  line-height: 1.14 !important;
  letter-spacing: -.032em !important;
  margin-block: .22em .38em !important;
  text-wrap: balance;
}
main article :is(h2, h3),
main article section.prose :is(h2, h3),
main article .vinx-body-it :is(h2, h3),
main article .vinx-body-en :is(h2, h3) {
  font-size: var(--vinx-record-subheading-size) !important;
  font-weight: 700 !important;
  letter-spacing: -.008em !important;
  line-height: 1.31 !important;
  margin-block: 1em .42em !important;
  text-transform: none !important;
}
/* Il vecchio H2 non appare più come titolo aggiuntivo: il JS lo rende
   una semplice etichetta tipografica, con aria-level=2. */
main article .vinx-section-label,
main article section.prose .vinx-section-label {
  font-size: var(--vinx-record-subheading-size) !important;
  font-weight: 700 !important;
  letter-spacing: -.008em !important;
  line-height: 1.31 !important;
  margin-block: 1em .42em !important;
  text-transform: none !important;
}
main article section.prose :is(p, ul, ol, blockquote) {
  margin-top: 0 !important;
  margin-bottom: .66em !important;
}
main article > section.prose {
  padding-block: clamp(.8rem, 1.6vw, 1.3rem) !important;
}

/* La FOTO di Zenith era corretta: non tocchiamo media-hero, foto in
   Markdown, cover o le dimensioni delle immagini di galleria. */

/* Qualunque video del tema, ora DENTRO .prose, usa la stessa colonna
   della foto Markdown; massimo 520x293 invece di tutta la finestra. */
main article section.prose :is(.video-embed, .vinx-embedded-media--video,
    .vinx-unified-embed--video),
main article .video-embed {
  box-sizing: border-box !important;
  display: block !important;
  position: relative !important;
  width: min(100%, var(--vinx-inline-video-width)) !important;
  max-width: min(100%, var(--vinx-inline-video-width)) !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: .85rem 0 1.15rem !important;
  overflow: hidden !important;
  background: #111;
}
main article .video-embed iframe,
main article .vinx-unified-embed--video iframe,
main article .vinx-embedded-media--video iframe {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  border: 0 !important;
}

/* Altri embed incorporati dal Markdown: dimensioni editoriali e allineamento. */
main article .vinx-unified-embed,
main article section.prose :is(.vinx-embedded-media, [data-vinx-embed-shell]) {
  display: block;
  box-sizing: border-box !important;
  width: min(100%, var(--vinx-inline-video-width)) !important;
  max-width: min(100%, var(--vinx-inline-video-width)) !important;
  margin: .85rem 0 1.2rem !important;
  padding: 0 !important;
}
main article .vinx-unified-embed--audio,
main article section.prose :is(.vinx-embedded-media--spotify, .vinx-embedded-media--soundcloud,
    .vinx-embedded-media--bandcamp) {
  width: min(100%, var(--vinx-inline-audio-width)) !important;
  max-width: min(100%, var(--vinx-inline-audio-width)) !important;
}
main article .vinx-unified-embed--social,
main article section.prose .vinx-embedded-media--instagram {
  width: min(100%, var(--vinx-inline-social-width)) !important;
  max-width: min(100%, var(--vinx-inline-social-width)) !important;
}
main article .vinx-unified-embed--audio iframe,
main article .vinx-unified-embed--social iframe {
  display: block;
  position: static !important;
  width: 100% !important;
  border: 0 !important;
}
main article .vinx-unified-embed--spotify iframe { height: 152px !important; }
main article .vinx-unified-embed--spotify-album iframe { height: 232px !important; }
main article .vinx-unified-embed--soundcloud iframe { height: 166px !important; }
main article .vinx-unified-embed--instagram iframe { height: 420px !important; }

/* Il contenitore wide delle GALLERIE continua a esistere nei template;
   nel dettaglio non deve partire a sinistra lontano dal testo. Cover esclusa. */
main article > .wide-media:has(.gallery) {
  width: 100% !important;
  max-width: 900px !important;
  box-sizing: border-box !important;
  margin-inline: auto !important;
  padding-inline: var(--pad) !important;
}
main article > .wide-media:has(.gallery) .gallery {
  margin-top: .85rem !important;
  margin-bottom: 1.2rem !important;
}

@media (max-width: 768px) {
  :root { --vinx-record-heading-size: clamp(1.52rem, 6.45vw, 1.88rem); }
  main article > section.pagehead h1,
  main article .pagehead h1 { overflow-wrap: anywhere; }
  main article :is(h2, h3), main article section.prose :is(h2, h3) {
    font-size: clamp(1.03rem, 4.15vw, 1.14rem) !important;
  }
  main article .video-embed,
  main article .vinx-unified-embed--video {
    width: 100% !important;
    max-width: 100% !important;
  }
}
