/* For Music APS: stili che Elementor non copre.
   Qui stanno solo: i componenti resi da shortcode (video, Magazine, tooltip, CTA degli eventi, donazione),
   quelli creati da formusic.js (tratto delle tappe, "+N" della galleria, indicatore di scorrimento, pallini),
   e la larghezza variabile del carattere dei titoli. Tutto il resto è nelle classi globali di Elementor.
   Se un colore globale cambia in Elementor, va aggiornato anche qui sotto. */

/* ---------- Caratteri in locale, variabili: un file copre tutti i pesi (e per Bricolage anche la larghezza 75-100%) ---------- */
@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 200 800; font-stretch: 75% 100%; font-display: swap; src: url("font/BricolageGrotesque-variabile-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 200 800; font-stretch: 75% 100%; font-display: swap; src: url("font/BricolageGrotesque-variabile-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Hanken Grotesk"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("font/HankenGrotesk-variabile-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Hanken Grotesk"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("font/HankenGrotesk-variabile-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --brand: #A0128F; --brand-strong: #7E0C70; --brand-on-dark: #C41DB0; --brand-light: #F2A3E4; --brand-tint: #F9E7F5;
  --ink: #16121A; --ink-3: #2E2636; --paper: #F6F4F1; --paper-2: #ECE8E3; --surface: #FDFCFB;
  --muted: #5E5666; --muted-on-dark: #B9B0C0; --line: rgba(22, 18, 26, .14); --line-on-dark: rgba(255, 255, 255, .16);
  --f-display: "Bricolage Grotesque", "Arial Narrow", sans-serif; --f-body: "Hanken Grotesk", system-ui, sans-serif;
  --r: 6px; --ease: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- Larghezza del carattere dei titoli (asse "wdth" di Bricolage Grotesque): Elementor non ha il controllo.
   Doppia dichiarazione: font-stretch per i caratteri dichiarati qui sopra, font-variation-settings come riserva
   se la famiglia venisse caricata dai "Font personalizzati" di Elementor, che non dichiarano l'intervallo di larghezza. ---------- */
.titolo-hero, .titolo-pagina { font-stretch: 80%; font-variation-settings: "wdth" 80; }
.titolo-sezione, .titolo-card, .dichiarazione, .numero-grande { font-stretch: 85%; font-variation-settings: "wdth" 85; }
.titolo-voce { font-stretch: 88%; font-variation-settings: "wdth" 88; }
.logo-parola { font-stretch: 75%; font-variation-settings: "wdth" 75; }

/* ---------- Focus visibile ovunque ---------- */
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--brand); outline-offset: 2px; }
.sez-notte :where(a, button):focus-visible { outline-color: var(--brand-light); }

/* ---------- Tappe: tratto che si colora con lo scroll (formusic.js aggiunge .tappe__barra e .is-in) ---------- */
.tappe { position: relative; }
.tappe__barra { position: absolute; left: 21px; top: 22px; width: 2px; height: 0; background: var(--brand); transition: height .15s linear; pointer-events: none; }
.tappe-scura .tappe__barra { background: var(--brand-light); }
.tappa-numero { transition: box-shadow .3s; position: relative; z-index: 1; }
.tappa.is-in .tappa-numero { box-shadow: 0 0 0 4px var(--brand-tint); }
.tappe-scura .tappa.is-in .tappa-numero { box-shadow: 0 0 0 4px rgba(244, 163, 228, .25); }

/* ---------- Tooltip "?" : shortcode [aiuto] ---------- */
/* Il "?" resta sulla riga dell'ultima parola (formusic.js la lega al pallino con .tip-riga) ed è centrato sull'altezza delle minuscole. */
.tip-riga { white-space: nowrap; }
.tipw { position: relative; display: inline-block; vertical-align: middle; margin-left: 4px; line-height: 1; top: -1px; white-space: normal; }
.tip { appearance: none; background: none; margin: 0; padding: 0; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--brand); color: var(--brand); font-size: 11px; line-height: 1; cursor: help; transition: background .2s, color .2s; }
.tip:hover, .tip[aria-expanded="true"], .tip:focus-visible { background: var(--brand); color: #fff; }
.tip:focus-visible { outline: 3px solid var(--brand-light); outline-offset: 2px; }
/* Chiuso, il riquadro non esiste (display: none): così non allarga mai la pagina, nemmeno su iPhone quando i caratteri arrivano dopo.
   --sposta è lo spostamento orizzontale calcolato da formusic.js per tenerlo nello schermo; la freccia lo compensa e resta sul pallino. */
.tip__box { --sposta: 0px; display: none; position: absolute; z-index: 20; top: calc(100% + 10px); left: 50%; translate: calc(-50% + var(--sposta)) 0; width: min(300px, calc(100vw - 32px)); padding: 12px 14px; border-radius: 8px; background: var(--ink); color: #fff; font-size: 13.5px; line-height: 1.5; font-weight: 400; text-align: left; white-space: normal; box-shadow: 0 12px 32px rgba(22, 18, 26, .25); opacity: 0; transform: translateY(4px); transition: opacity .2s, transform .2s var(--ease), display .2s allow-discrete; }
.tip__box::before { content: ""; position: absolute; top: -6px; left: calc(50% - var(--sposta)); margin-left: -6px; border: 6px solid transparent; border-top: 0; border-bottom-color: var(--ink); }
.tipw:hover .tip__box, .tip:focus-visible + .tip__box, .tip[aria-expanded="true"] + .tip__box { display: block; opacity: 1; transform: none; }
@starting-style { .tipw:hover .tip__box, .tip:focus-visible + .tip__box, .tip[aria-expanded="true"] + .tip__box { opacity: 0; transform: translateY(4px); } }
/* Un contenitore "sticky" (es. colonna-fissa in Partecipa) chiude il riquadro in un suo livello e la sezione successiva lo coprirebbe:
   finché il riquadro è aperto, i contenitori che lo racchiudono passano sopra il resto della pagina. */
.e-con:has(.tipw:hover), .e-con:has(.tip[aria-expanded="true"]), .e-con:has(.tip:focus-visible) { z-index: 30; }
@media (max-width: 560px) {
  .tip { width: 16px; height: 16px; font-size: 10px; }
  .tipw { top: -2px; }
}

/* ---------- Home, "Chi siamo": i titoli delle voci non aperte restano attenuati ma leggibili (contrasto ≥ 3:1 per i testi grandi) ---------- */
.elementor .ambiti-elenco > .ambito:not(.e--selected):not(:hover) .ambito-testo > span:first-child { opacity: .75; }

/* ---------- Popup di Elementor (newsletter): la X di chiusura ha un'area di tocco di 44 px, l'icona resta dov'è ---------- */
.elementor-popup-modal .dialog-close-button { padding: 14px; margin: -14px; }

/* ---------- Video di Talenti in Ascolto: shortcode [formusic_video] ---------- */
.fm-video { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 28px); }
.fm-video--home { gap: 14px; }
.yt { position: relative; border-radius: var(--r); overflow: hidden; background: var(--ink); aspect-ratio: 16 / 9; }
.yt img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: transform .8s var(--ease), opacity .3s; }
.yt:hover img { transform: scale(1.04); opacity: 1; }
.yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt__play { position: absolute; inset: 0; width: 100%; height: 100%; display: grid; place-items: center; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; } /* il reset di Hello dà a ogni <button> un bordo #c36 */
.yt__btn { width: 64px; height: 64px; border-radius: 50%; background: var(--brand); color: #fff; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(22, 18, 26, .4); transition: transform .3s var(--ease), background .2s; }
.yt:hover .yt__btn { transform: scale(1.08); background: var(--brand-strong); }
.yt__play:focus-visible { outline: 0; } .yt__play:focus-visible .yt__btn { outline: 3px solid #fff; outline-offset: 3px; }
.yt__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px; background: linear-gradient(0deg, rgba(22, 18, 26, .85), rgba(22, 18, 26, 0)); color: #fff; font-size: 14px; display: grid; gap: 2px; pointer-events: none; }
.yt__cap strong { font-size: 19px; }
.yt__cap span { color: var(--muted-on-dark); font-size: 13px; }
.yt.is-playing .yt__play, .yt.is-playing .yt__cap, .yt.is-playing img { display: none; }
.yt__btn svg { display: block; margin-left: 3px; }
.yt__btn { transition: transform .3s var(--ease), background .2s; }
.yt__cap { margin: 0; display: grid; gap: 2px; font-size: 14px; color: #fff; pointer-events: none; }
.fm-video--home .yt { aspect-ratio: 9 / 16; }
.fm-video--home .yt__btn { width: 48px; height: 48px; } .fm-video--home .yt__btn svg { width: 22px; height: 22px; }
.fm-video--home .yt__cap { padding: 10px 12px; } .fm-video--home .yt__cap strong { font-size: 15px; } .fm-video--home .yt__cap span { display: none; }

/* ---------- Magazine: shortcode [formusic_magazine] ---------- */
.mag { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(24px, 4vw, 64px); align-items: center; }
.mag__lead { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 2.4vw, 32px); align-items: center; }
.mag__img { border-radius: var(--r); overflow: hidden; }
.mag__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1s var(--ease); }
.mag__lead:hover img { transform: scale(1.04); }
.mag__cat { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--brand); }
.mag h3 { font-family: var(--f-body); font-weight: 600; letter-spacing: -.01em; transition: color .2s; }
.mag__lead h3 { font-size: clamp(21px, 1.9vw, 27px); line-height: 1.18; margin: 12px 0; max-width: 28ch; }
.mag__img { background: var(--paper-2); }
.mag__list { border-top: 2px solid var(--ink); }
.mag__list li { border-bottom: 1px solid var(--line); }
.mag__list a { display: block; padding: 24px 0; }
.mag__list h3 { font-size: clamp(19px, 1.6vw, 23px); line-height: 1.25; margin: 10px 0; }
.mag time { font-size: 14px; color: var(--muted); }
.mag a:hover h3 { color: var(--brand); }
.mgrid { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(20px, 2.4vw, 32px) clamp(16px, 2vw, 28px); }
.mcard { display: flex; flex-direction: column; }
.mcard > a { display: flex; flex-direction: column; flex: 1; border-radius: var(--r); }
.mcard > a:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }
.mcard__img { border-radius: var(--r); overflow: hidden; background: var(--paper-2); }
.mcard__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1s var(--ease); }
.mcard:hover img { transform: scale(1.03); }
.mcard__body { display: grid; gap: 8px; padding-top: 14px; }
.mcard h3 { font-family: var(--f-body); font-weight: 600; font-size: 17px; line-height: 1.3; letter-spacing: -.01em; transition: color .2s; }
.mcard:hover h3 { color: var(--brand); }
.mcard time { font-size: 13px; color: var(--muted); }
.mcard--big { grid-column: 1 / 8; grid-row: 1 / 3; }
.mcard--side { grid-column: 8 / 13; }
.mcard--row3 { grid-column: span 4; }
.mcard--big .mcard__img { position: relative; flex: 1; min-height: 340px; }
.mcard--big .mcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.mcard--big .mcard__img img { aspect-ratio: 4 / 3; }
.mcard--big h3 { font-size: clamp(22px, 2vw, 28px); line-height: 1.18; }
.mcard__ex { color: var(--muted); font-size: 16px; max-width: 52ch; }
.mag h3, .mcard h3 { margin-block: 0; } .mag__list { list-style: none; margin: 0; padding: 0; } .mag__cat { margin: 0; }
.mag__img img, .mcard__img img { display: block; }

/* ---------- Eventi: stato, avviso e pulsanti resi dagli shortcode ---------- */
.fm-stato { display: inline-block; padding: 4px 7px; border-radius: 3px; font: 600 10px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--brand); }
.fm-stato--full, .fm-stato--warn { background: #8A5A00; } .fm-stato--off { background: #B3261E; } .fm-stato--done { background: var(--ink); }
.sez-notte .fm-stato--done { background: #fff; color: var(--ink); }
.fm-avviso { display: grid; gap: 4px; padding: 16px 18px; margin-bottom: 24px; border-radius: var(--r); background: #FFF4DA; border: 1px solid #E2C680; color: #4A3200; font-size: 15px; }
.fm-avviso--off { background: #FBE9E7; border-color: #E6B8B3; color: #5C1410; }
.fm-avviso strong { font-size: 16px; }
.fm-cta-evento { display: grid; gap: 8px; }
.fm-cta-evento .btn { justify-content: center; text-align: center; }
.btn.is-off { background: var(--paper-2); color: var(--muted); cursor: default; pointer-events: none; }

/* ---------- Galleria degli eventi: cinque foto, la quinta con "+N" (widget Gallery con classe CSS "galleria-evento") ---------- */
.galleria-evento .e-gallery-item.fm-nascosta, .galleria-evento .gallery-item.fm-nascosta { display: none !important; }
.galleria-evento .fm-ultima { position: relative; }
.galleria-evento .fm-ultima::after { content: "+" attr(data-altre); position: absolute; inset: 0; display: grid; place-items: center; background: rgba(22, 18, 26, .62); color: #fff; font-family: var(--f-display); font-stretch: 85%; font-weight: 700; font-size: clamp(28px, 3vw, 44px); border-radius: inherit; transition: background .25s; z-index: 2; }
.galleria-evento .fm-ultima:hover::after { background: rgba(160, 18, 143, .7); }

/* ---------- Copia (IBAN, codice fiscale): shortcode [fm_copia] ---------- */
.fm-copia { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.fm-copia__v { font-variant-numeric: tabular-nums; }
.fm-copia__btn { padding: 8px 12px; border-radius: 4px; border: 0; background: rgba(255, 255, 255, .12); color: inherit; font: 600 13px/1 var(--f-body); cursor: pointer; transition: background .2s; }
.fm-copia__btn:hover, .fm-copia__btn.is-done { background: var(--brand); color: #fff; }

/* ---------- Il reset del tema Hello colora ogni <button> in hover e focus (#c36): i pulsanti dei componenti tengono i loro colori ---------- */
.yt__play:hover, .yt__play:focus { background: transparent; color: inherit; }
.tip:focus:not(:focus-visible):not(:hover):not([aria-expanded="true"]) { background: none; color: var(--brand); }
.fm-copia__btn:focus:not(:hover):not(.is-done) { background: rgba(255, 255, 255, .12); color: inherit; }

/* ---------- Indice della pagina Trasparenza: voce attiva ---------- */
.indice-pagina a.is-active { color: var(--brand); font-weight: 600; border-bottom-color: var(--brand); padding-left: 6px; }

/* ---------- Percorsi di Partecipa su mobile: pallini ---------- */
.percorsi__pallini { display: none; }

/* ---------- Donazione: shortcode [fm_dona] e blocchi della pagina di esito ---------- */
.fm-hp { position: absolute; left: -9999px; }
.fm-dona { display: grid; gap: 14px; justify-items: start; margin-top: 8px; }
.fm-dona__titolo { margin: 0; font-size: 14px; font-weight: 600; color: var(--ink); }
.fm-dona__importi { display: flex; flex-wrap: wrap; gap: 8px; }
.fm-dona__importi a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid rgba(22, 18, 26, .3); background: #fff; color: var(--ink); font-weight: 600; font-size: 15px; line-height: 1.2; text-decoration: none; transition: background .2s, border-color .2s, color .2s; }
.fm-dona__importi a:hover, .fm-dona__importi a:focus-visible { background: var(--brand); border-color: var(--brand); color: #fff; }
.fm-dona__nota { margin: 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
.esito-ok, .esito-annullato, .esito-errore { display: none; }
.fm-esito-ok .esito-ok, .fm-esito-annullato .esito-annullato, .fm-esito-errore .esito-errore { display: block; }

/* ---------- Indicatore di scorrimento con le quattro barre del logo (creato da formusic.js, solo desktop largo) ---------- */
.scia-nav { display: none; }
@media (min-width: 1280px) {
  .scia-nav { --p: 0; position: fixed; right: 16px; top: 50%; z-index: 30; transform: translateY(-50%); display: grid; gap: 6px; justify-items: end; pointer-events: none; }
  .scia-nav span { position: relative; display: block; height: 5px; border-radius: 3px; background: rgba(140, 128, 150, .22); overflow: hidden; }
  .scia-nav span:nth-child(1) { --i: 0; width: 20px; } .scia-nav span:nth-child(2) { --i: 1; width: 26px; } .scia-nav span:nth-child(3) { --i: 2; width: 16px; } .scia-nav span:nth-child(4) { --i: 3; width: 28px; }
  .scia-nav span::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: rgba(196, 29, 176, .5); transform-origin: right; transform: scaleX(clamp(0, calc((var(--p) - var(--i) * .25) * 4), 1)); }
}

/* ---------- Eventi: shortcode [fm_eventi_calendario], [fm_eventi_altri] e campi a ripetizione (inc/eventi-sezioni.php) ---------- */
.fm-ico { display: inline-block; width: 1em; height: 1em; flex: none; vertical-align: -.125em; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.fm-ico--cal { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z'/%3E%3C/svg%3E"); }
.fm-ico--pin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,64a40,40,0,1,0,40,40A40,40,0,0,0,128,64Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,128Zm0-112a88.1,88.1,0,0,0-88,88c0,31.4,14.51,64.68,42,96.25a254.19,254.19,0,0,0,41.45,38.3,8,8,0,0,0,9.18,0A254.19,254.19,0,0,0,174,200.25c27.45-31.57,42-64.85,42-96.25A88.1,88.1,0,0,0,128,16Zm0,206c-16.53-13-72-60.75-72-118a72,72,0,0,1,144,0C200,161.23,144.53,209,128,222Z'/%3E%3C/svg%3E"); }
.fm-ico--giornale { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M88,112a8,8,0,0,1,8-8h80a8,8,0,0,1,0,16H96A8,8,0,0,1,88,112Zm8,40h80a8,8,0,0,0,0-16H96a8,8,0,0,0,0,16ZM232,64V184a24,24,0,0,1-24,24H32A24,24,0,0,1,8,184.11V88a8,8,0,0,1,16,0v96a8,8,0,0,0,16,0V64A16,16,0,0,1,56,48H216A16,16,0,0,1,232,64Zm-16,0H56V184a23.84,23.84,0,0,1-1.37,8H208a8,8,0,0,0,8-8Z'/%3E%3C/svg%3E"); }
.fm-ico--link { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M240,88.23a54.43,54.43,0,0,1-16,37L189.25,160a54.27,54.27,0,0,1-38.63,16h-.05A54.63,54.63,0,0,1,96,119.84a8,8,0,0,1,16,.45A38.62,38.62,0,0,0,150.58,160h0a38.39,38.39,0,0,0,27.31-11.31l34.75-34.75a38.63,38.63,0,0,0-54.63-54.63l-11,11A8,8,0,0,1,135.7,59l11-11A54.65,54.65,0,0,1,224,48,54.86,54.86,0,0,1,240,88.23ZM109,185.66l-11,11A38.41,38.41,0,0,1,70.6,208h0a38.63,38.63,0,0,1-27.29-65.94L78,107.31A38.63,38.63,0,0,1,144,135.71a8,8,0,0,0,16,.45A54.86,54.86,0,0,0,144,96a54.65,54.65,0,0,0-77.27,0L32,130.75A54.62,54.62,0,0,0,70.56,224h0a54.28,54.28,0,0,0,38.64-16l11-11A8,8,0,0,0,109,185.66Z'/%3E%3C/svg%3E"); }
.fm-ico--play { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm48.24-94.78-64-40A8,8,0,0,0,100,88v80a8,8,0,0,0,12.24,6.78l64-40a8,8,0,0,0,0-13.56ZM116,153.57V102.43L156.91,128Z'/%3E%3C/svg%3E"); }
.fm-ico--sedia { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M255.59,189.47a8,8,0,0,0-10.12-5.06l-17.42,5.81-28.9-57.8A8,8,0,0,0,192,128H112V104h56a8,8,0,0,0,0-16H112V79a32,32,0,1,0-16,0V89.81A72,72,0,0,0,112,232c33.52,0,63.69-22.71,71.75-54a8,8,0,1,0-15.5-4C162.09,198,137.91,216,112,216A56,56,0,0,1,96,106.34V136a8,8,0,0,0,8,8h83.05l29.79,59.58a8,8,0,0,0,9.69,4l24-8A8,8,0,0,0,255.59,189.47ZM88,48a16,16,0,1,1,16,16A16,16,0,0,1,88,48Z'/%3E%3C/svg%3E"); }
.fm-ico--bagno { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M120,64a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h16A8,8,0,0,1,120,64Zm52.32,133.14,3.52,24.6A16,16,0,0,1,160,240H96a16,16,0,0,1-15.84-18.26l3.52-24.6A96.09,96.09,0,0,1,32,112a8,8,0,0,1,8-8H56V40A16,16,0,0,1,72,24H184a16,16,0,0,1,16,16v64h16a8,8,0,0,1,8,8A96.09,96.09,0,0,1,172.32,197.14ZM72,104H184V40H72Zm85.07,99.5a96.15,96.15,0,0,1-58.14,0L96,224h64ZM207.6,120H48.4a80,80,0,0,0,159.2,0Z'/%3E%3C/svg%3E"); }
.fm-ico--poltrona { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M216,88.8V72a40,40,0,0,0-40-40H80A40,40,0,0,0,40,72V88.8a40,40,0,0,0,0,78.4V200a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V167.2a40,40,0,0,0,0-78.4ZM80,48h96a24,24,0,0,1,24,24V88.8A40.07,40.07,0,0,0,168,128H88A40.07,40.07,0,0,0,56,88.8V72A24,24,0,0,1,80,48ZM208.39,152H208a8,8,0,0,0-8,8v40H56V160a8,8,0,0,0-8-8h-.39A24,24,0,1,1,72,128v40a8,8,0,0,0,16,0V144h80v24a8,8,0,0,0,16,0V128a24,24,0,1,1,24.39,24Z'/%3E%3C/svg%3E"); }
.fm-ico--bus { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M184,32H72A32,32,0,0,0,40,64V208a16,16,0,0,0,16,16H80a16,16,0,0,0,16-16V192h64v16a16,16,0,0,0,16,16h24a16,16,0,0,0,16-16V64A32,32,0,0,0,184,32ZM56,176V120H200v56Zm0-96H200v24H56ZM72,48H184a16,16,0,0,1,16,16H56A16,16,0,0,1,72,48Zm8,160H56V192H80Zm96,0V192h24v16Zm-72-60a12,12,0,1,1-12-12A12,12,0,0,1,104,148Zm72,0a12,12,0,1,1-12-12A12,12,0,0,1,176,148Zm72-68v24a8,8,0,0,1-16,0V80a8,8,0,0,1,16,0ZM24,80v24a8,8,0,0,1-16,0V80a8,8,0,0,1,16,0Z'/%3E%3C/svg%3E"); }
.fm-ico--ascensore { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E"); }
.fm-ico--auto { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E"); }
.fm-ico--freccia { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E"); }
.fm-ico--esterno { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M200,64V168a8,8,0,0,1-16,0V83.31L69.66,197.66a8,8,0,0,1-11.32-11.32L172.69,72H88a8,8,0,0,1,0-16H192A8,8,0,0,1,200,64Z'/%3E%3C/svg%3E"); }
.fm-scia { display: block; width: 64px; height: 75px; background: var(--brand); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 47'%3E%3Crect x='10' y='0' width='30' height='7' rx='3.5'/%3E%3Crect x='2' y='11' width='38' height='7' rx='3.5'/%3E%3Crect x='14' y='22' width='26' height='7' rx='3.5'/%3E%3Crect x='0' y='33' width='40' height='7' rx='3.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 47'%3E%3Crect x='10' y='0' width='30' height='7' rx='3.5'/%3E%3Crect x='2' y='11' width='38' height='7' rx='3.5'/%3E%3Crect x='14' y='22' width='26' height='7' rx='3.5'/%3E%3Crect x='0' y='33' width='40' height='7' rx='3.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.fm-sep { display: inline-block; width: 1px; height: 12px; background: currentColor; opacity: .35; margin: 0 10px; vertical-align: middle; }
.fm-tag { margin: 0; font-size: 12px; font-weight: 600; line-height: 1.6; letter-spacing: .1em; text-transform: uppercase; color: var(--brand); }
.fm-tag--scuro { color: var(--brand-light); }
.fm-st { display: inline-block; vertical-align: middle; margin-left: 6px; padding: 4px 7px; border-radius: 3px; font: 600 10px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--ink); }
.fm-st--open { background: var(--brand); } .fm-st--full, .fm-st--warn { background: #8A5A00; } .fm-st--off { background: #B3261E; }
.fm-cal__barra { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 40px; margin-bottom: clamp(32px, 4vw, 56px); }
.fm-cal__titolo { margin: 0; font-family: var(--f-display); font-stretch: 85%; font-variation-settings: "wdth" 85; font-weight: 700; font-size: clamp(34px, 4.4vw, 64px); line-height: 1; letter-spacing: -.02em; color: var(--ink); }
.fm-cal__conta { margin: 12px 0 0; font-size: 15px; color: var(--muted); }
.fm-filtri { display: flex; flex-wrap: wrap; gap: 8px; }
.fm-filtri button { min-height: 44px; padding: 0 18px; display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; border: 1.5px solid var(--line); background: transparent; color: var(--ink); font: 600 14px/1 var(--f-body); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.fm-filtri button:hover, .fm-filtri button:focus { background: transparent; color: var(--ink); border-color: var(--ink); }
.fm-filtri button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.fm-cal__griglia { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(24px, 4vw, 72px); align-items: start; }
.fm-cal__sinistra { position: sticky; top: 100px; }
.fm-card { position: relative; display: flex; align-items: flex-end; height: min(calc(100dvh - 140px), 720px); border-radius: var(--r); overflow: hidden; color: #fff; background: var(--ink); isolation: isolate; text-decoration: none; }
.fm-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1s var(--ease); }
.fm-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(22, 18, 26, .92) 0%, rgba(22, 18, 26, .25) 55%, rgba(22, 18, 26, .1) 100%); }
.fm-card:hover .fm-card__img { transform: scale(1.02); }
.fm-card__data { position: absolute; top: 24px; left: 24px; background: var(--surface); color: var(--ink); border-radius: var(--r); padding: 12px 16px 10px; text-align: center; line-height: 1; }
.fm-card__data b, .fm-riga__data b { display: block; font-family: var(--f-display); font-stretch: 80%; font-variation-settings: "wdth" 80; font-weight: 700; font-size: 44px; letter-spacing: -.02em; }
.fm-card__data span, .fm-riga__data span { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.fm-card__corpo { padding: clamp(24px, 3vw, 40px); }
.fm-card h3 { font-family: var(--f-display); font-stretch: 85%; font-variation-settings: "wdth" 85; font-weight: 700; font-size: clamp(30px, 3.2vw, 46px); line-height: 1.02; letter-spacing: -.015em; margin: 10px 0 14px; color: #fff; }
.fm-card__meta { margin: 0; font-size: 15px; color: rgba(255, 255, 255, .85); }
.fm-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.fm-chips li { font-size: 12px; font-weight: 600; line-height: 1; padding: 6px 9px; border-radius: 4px; border: 1px solid rgba(255, 255, 255, .3); color: #fff; background: rgba(22, 18, 26, .35); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.fm-card__btn { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; padding: 12px 20px; border: 1.5px solid transparent; border-radius: var(--r); background: var(--surface); color: var(--ink); font-weight: 600; font-size: 15px; line-height: 1.2; transition: background .25s var(--ease), color .25s var(--ease); }
.fm-card__btn .fm-ico { transition: transform .3s var(--ease); }
.fm-card:hover .fm-card__btn { background: var(--brand); color: #fff; }
.fm-card:hover .fm-card__btn .fm-ico { transform: translateX(4px); }
.fm-mese + .fm-mese { margin-top: 48px; }
.fm-mese__t { position: sticky; top: 76px; z-index: 2; margin: 0; padding: 14px 0; background: var(--paper); font: 600 13px/1.6 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.fm-elenco { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--ink); }
.fm-elenco > li { display: flex; border-bottom: 1px solid var(--line); }
.fm-riga { flex: 1; display: grid; grid-template-columns: 72px 1fr auto; gap: 24px; align-items: center; padding: 30px 0; color: var(--ink); text-decoration: none; transition: padding .35s var(--ease); }
.fm-riga__data { text-align: center; line-height: 1; color: var(--ink); }
.fm-riga__data span { color: var(--muted); }
.fm-riga h3 { font-family: var(--f-display); font-stretch: 88%; font-variation-settings: "wdth" 88; font-weight: 600; font-size: clamp(20px, 1.7vw, 25px); line-height: 1.15; margin: 6px 0 8px; color: var(--ink); transition: color .2s; }
.fm-riga__meta { margin: 0; font-size: 14px; color: var(--muted); }
.fm-riga__meta--chi { margin-top: 4px; color: var(--ink-3); font-weight: 500; }
.fm-riga__vai { width: 22px; height: 22px; color: var(--muted); background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .35s var(--ease), color .2s; }
.fm-riga:hover { padding-left: 10px; }
.fm-riga:hover h3, .fm-riga:hover .fm-riga__vai { color: var(--brand); }
.fm-riga:hover .fm-riga__vai { transform: translateX(4px); }
.fm-ev.is-off h3 { text-decoration: line-through; color: var(--muted); }
.fm-ev.is-off .fm-riga__data { opacity: .45; }
.fm-cal [hidden] { display: none !important; }
.fm-cal__vuoto { display: grid; grid-template-columns: auto 1fr auto; gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(32px, 5vw, 64px); border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.fm-cal__vuoto h3 { margin: 0; font-family: var(--f-display); font-stretch: 85%; font-variation-settings: "wdth" 85; font-weight: 700; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.05; letter-spacing: -.015em; }
.fm-cal__vuoto p { margin: 10px 0 0; color: var(--muted); max-width: 52ch; }
.fm-cal__vuoto a { color: var(--brand); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.fm-cal__vuoto-az { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
.fm-btn-scuro { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 20px; border: 1.5px solid transparent; border-radius: var(--r); background: var(--ink); color: #fff; font: 600 15px/1.2 var(--f-body); cursor: pointer; transition: background .25s var(--ease); }
.fm-btn-scuro:hover, .fm-btn-scuro:focus { background: var(--brand); color: #fff; }
.fm-altri { background: var(--surface); border-top: 1px solid var(--line); padding-block: clamp(72px, 9vw, 136px); }
.fm-altri__in { width: 100%; max-width: calc(1320px + clamp(20px, 4vw, 56px) * 2); margin-inline: auto; padding-inline: clamp(20px, 4vw, 56px); }
/* Pulsanti di [fm_evento_cta]: stessi valori delle classi globali btn, nel caso la pagina non le carichi */
.fm-cta-evento .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 20px; border-radius: var(--r); border: 1.5px solid transparent; font: 600 15px/1.2 var(--f-body); text-decoration: none; transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.fm-cta-evento .btn-grande { padding: 16px 26px; font-size: 16px; }
.fm-cta-evento .btn-primario { background: var(--brand); color: #fff; } .fm-cta-evento .btn-primario:hover { background: var(--brand-strong); color: #fff; }
.fm-cta-evento .btn-contorno { background: transparent; border-color: var(--ink); color: var(--ink); } .fm-cta-evento .btn-contorno:hover { background: var(--ink); color: #fff; }
.fm-altri__testa { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(32px, 4vw, 56px); }
.fm-link-freccia { display: inline-flex; align-items: center; gap: 8px; padding-bottom: 4px; border-bottom: 1.5px solid currentColor; color: var(--ink); font-weight: 600; font-size: 15px; text-decoration: none; transition: color .2s, gap .3s var(--ease); }
.fm-link-freccia:hover { color: var(--brand); gap: 12px; }
.fm-altri__testo { margin: 12px 0 0; max-width: 60ch; font-size: 15px; line-height: 1.6; color: var(--muted); }
.fm-altri--tipologia { border-top: 0; }
.fm-ev--foto .fm-riga { padding-top: 0; }
.fm-ev--foto .fm-riga__foto { grid-column: 1 / -1; margin-bottom: 0; border-radius: var(--r); overflow: hidden; aspect-ratio: 1 / 1; background: var(--paper-2); }
.fm-ev--foto .fm-riga__foto img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.fm-ev--foto .fm-riga:hover .fm-riga__foto img { transform: scale(1.03); }
.fm-elenco--colonne > li.fm-ev--foto { border-top: 0; }
.fm-elenco--colonne { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 clamp(24px, 3vw, 48px); border-top: 0; }
.fm-elenco--colonne > li { border-top: 2px solid var(--ink); border-bottom: 0; }
.fm-elenco--colonne .fm-riga { grid-template-columns: 64px 1fr; align-items: start; }
.fm-elenco--colonne .fm-riga:hover { padding-left: 0; }
.fm-sez__titolo { margin: 48px 0 16px; font-family: var(--f-display); font-stretch: 85%; font-variation-settings: "wdth" 85; font-weight: 700; font-size: clamp(26px, 2.4vw, 34px); line-height: 1.1; letter-spacing: -.015em; color: var(--ink); }
.fm-sez__titolo--ampio { margin: 56px 0 20px; }
.fm-sez > p { margin: 0; }
.fm-sez > p + p, .fm-sez ul + p { margin-top: 16px; }
.fm-sez p a { color: var(--brand); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.fm-programma, .fm-persone, .fm-accessibilita, .fm-materiali { margin: 0; padding: 0; list-style: none; }
.fm-programma { border-top: 1px solid var(--line); }
.fm-programma li { display: grid; grid-template-columns: 84px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.fm-programma time { font-family: var(--f-display); font-stretch: 85%; font-variation-settings: "wdth" 85; font-weight: 700; font-size: 20px; }
.fm-persone { border-top: 1px solid var(--line); margin-bottom: 8px; }
.fm-persone li { display: grid; grid-template-columns: minmax(180px, 2fr) 3fr; gap: 4px 20px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 16px; color: var(--muted); }
.fm-persone strong { display: flex; align-items: center; gap: 10px; color: var(--ink); font-weight: 600; }
.fm-persone strong a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.fm-persone__logo { width: 40px; height: 40px; object-fit: contain; }
.fm-sintesi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 68ch; margin: 0; }
.fm-sintesi > div { padding: 20px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.fm-sintesi dt { font-size: 13px; font-weight: 600; color: var(--muted); }
.fm-sintesi dd { margin: 0; font-family: var(--f-display); font-stretch: 80%; font-variation-settings: "wdth" 80; font-weight: 700; font-size: 40px; line-height: 1.1; }
.fm-accessibilita { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; margin-bottom: 20px; border-top: 1px solid var(--line); }
.fm-accessibilita li { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); font-weight: 500; }
.fm-accessibilita .fm-ico { font-size: 22px; color: var(--brand); }
.fm-materiali { max-width: 68ch; border-top: 2px solid var(--ink); }
.fm-materiali li { border-bottom: 1px solid var(--line); }
.fm-materiali a { display: grid; grid-template-columns: 32px 1fr 24px; gap: 16px; align-items: center; padding: 16px 0; color: var(--ink); text-decoration: none; transition: padding .35s var(--ease); }
.fm-materiali a > .fm-ico { font-size: 24px; }
.fm-materiali a > .fm-ico:first-child { color: var(--brand); }
.fm-materiali span span, .fm-materiali a > span:not(.fm-ico) { font-size: 13px; color: var(--muted); }
.fm-materiali strong { display: block; font-size: 18px; font-weight: 600; color: var(--ink); transition: color .2s; }
.fm-materiali a:hover { padding-left: 10px; }
.fm-materiali a:hover strong { color: var(--brand); }
@media (min-width: 1800px) {
  .fm-cal__titolo { font-size: 76px; }
  .fm-mese__t { top: 88px; }
  .fm-card { height: min(calc(100dvh - 160px), 860px); }
  .fm-cal__sinistra { top: 112px; }
  .fm-riga { grid-template-columns: 88px 1fr auto; padding: 36px 0; }
  .fm-riga h3 { font-size: 29px; }
  .fm-card__data b, .fm-riga__data b { font-size: 52px; }
  .fm-card__btn { font-size: 18px; }
  .fm-altri { padding-block: 152px; }
  .fm-altri__in { max-width: calc(1600px + clamp(20px, 4vw, 56px) * 2); }
  .fm-cta-evento .btn-grande { font-size: 18px; padding: 18px 30px; }
}
@media (max-width: 860px) {
  .fm-cal__sinistra { position: static; }
  .fm-cal__griglia, .fm-elenco--colonne { grid-template-columns: 1fr; }
  .fm-card { height: auto; min-height: 440px; }
  .fm-mese__t { top: 64px; }
  .fm-cal__vuoto { grid-template-columns: 1fr; }
  .fm-cal__vuoto .fm-scia { width: 44px; height: 52px; }
  .fm-altri__testa { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 8px 16px; }
  .fm-altri__testa .fm-link-freccia { font-size: 14px; }
  .fm-accessibilita, .fm-sintesi { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .fm-riga { grid-template-columns: 60px 1fr; gap: 16px; }
  .fm-riga__meta { font-size: 15px; line-height: 1.5; }
  .fm-riga__vai { display: none; }
  .fm-riga__data b { font-size: 36px; }
  .fm-cal__barra > * { min-width: 0; width: 100%; }
  .fm-filtri { width: calc(100% + var(--margine-laterale, 20px) * 2); max-width: 100vw; flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--margine-laterale, 20px) * -1); padding-inline: var(--margine-laterale, 20px); scrollbar-width: none; }
  .fm-filtri::-webkit-scrollbar { display: none; }
  .fm-filtri button { flex: none; }
  .fm-persone li { grid-template-columns: 1fr; }
}

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
  .mag { grid-template-columns: 1fr; }
  .mgrid { grid-template-columns: 1fr 1fr; }
  .mcard--big { grid-column: span 2; grid-row: auto; }
  .mcard--side, .mcard--row3 { grid-column: auto; }
  .mcard--big .mcard__img { flex: none; min-height: 0; }
  .mcard--big .mcard__img img { position: static; height: auto; aspect-ratio: 4 / 3; }
  .percorsi__pallini { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
  .percorsi__pallini span { width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, .3); transition: background .2s, transform .2s; }
  .percorsi__pallini span.is-on { background: var(--brand-light); transform: scale(1.25); }
}
@media (max-width: 560px) {
  .fm-video:not(.fm-video--home) { grid-template-columns: 1fr; }
  .fm-video--home { gap: 8px; } .fm-video--home .yt { aspect-ratio: 3 / 4; }
  .mgrid { grid-template-columns: 1fr; }
  .mcard--big { grid-column: auto; }
  .mcard:not(.mcard--big) .mcard__img img { aspect-ratio: 16 / 9; }
  .mag__lead { grid-template-columns: 1fr; }
}

/* ---------- Riduzione del movimento ---------- */
@media (prefers-reduced-motion: reduce) {
  .tappe__barra, .tip__box, .yt img, .yt__btn, .mcard img, .mag__img img { transition: none !important; }
  .scia-nav { display: none !important; }
}
