/* ============================================================================
   MOSTRA DEL CINEMA DI CONEGLIANO — Design System & Prototipo
   File: /assets/css/style.css
   ----------------------------------------------------------------------------
   Convenzioni:
   - Tutte le classi hanno prefisso  .mcc-  per evitare conflitti con
     WordPress, Elementor e temi di terze parti.
   - Nessuna dipendenza esterna (no Bootstrap, no framework).
   - Ogni blocco e' separato da un header di sezione: per portare un blocco
     dentro un widget "HTML" di Elementor basta copiare il markup + il
     blocco CSS corrispondente.
   - Tutte le animazioni rispettano prefers-reduced-motion.
   ========================================================================= */

/* ==========================================================================
   01. DESIGN TOKENS
   ========================================================================== */
:root{
  /* --- Colori: base scura (identita' primaria) --- */
  --mcc-ink:        #0B0B0C;   /* nero pellicola  - fondo hero / header solido */
  --mcc-graphite:   #141517;   /* antracite       - sezioni scure              */
  --mcc-graphite-2: #1C1E21;   /* antracite chiaro- card su fondo scuro        */
  --mcc-hairline-d: rgba(243,239,231,.14); /* linee su fondo scuro             */

  /* --- Colori: base chiara --- */
  --mcc-bone:       #F3EFE7;   /* bianco caldo    - sezioni chiare             */
  --mcc-bone-2:     #E8E2D6;   /* bianco caldo 2  - card su fondo chiaro       */
  --mcc-hairline-l: rgba(11,11,12,.14);    /* linee su fondo chiaro            */

  /* --- Accent --- */
  --mcc-gold:       #C6A15B;   /* Oro Colline  - accent primario               */
  --mcc-gold-soft:  #E0C68F;   /* hover su fondo scuro                         */
  --mcc-gold-deep:  #8A6A2E;   /* accent su fondo chiaro (contrasto AA)        */

  /* --- Colori funzionali per i badge di categoria (tonalita' desaturate) --- */
  --mcc-c-proiezione: #C6A15B;
  --mcc-c-incontro:   #8AA3B8;
  --mcc-c-masterclass:#8FA98C;
  --mcc-c-evento:     #C1795E;
  --mcc-c-cerimonia:  #A088B4;
  --mcc-c-ospite:     #6FA4A0;

  /* --- Testo --- */
  --mcc-txt-on-dark:      #F3EFE7;
  --mcc-txt-on-dark-mute: rgba(243,239,231,.62);
  --mcc-txt-on-light:     #14151A;
  --mcc-txt-on-light-mute:rgba(20,21,26,.64);

  /* --- Tipografia --- */
  --mcc-font-display: "Bodoni Moda", "Didot", "Playfair Display", Georgia, "Times New Roman", serif;
  --mcc-font-text:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Scala tipografica fluida (clamp: mobile -> desktop) */
  --mcc-fs-display: clamp(3rem, 11vw, 9.5rem);   /* titolo hero            */
  --mcc-fs-h1:      clamp(2.4rem, 6.5vw, 5rem);  /* h1 pagine interne      */
  --mcc-fs-h2:      clamp(1.9rem, 4.2vw, 3.4rem);/* titoli di sezione      */
  --mcc-fs-h3:      clamp(1.3rem, 2.2vw, 1.9rem);
  --mcc-fs-h4:      clamp(1.05rem, 1.5vw, 1.25rem);
  --mcc-fs-lead:    clamp(1.05rem, 1.6vw, 1.3rem);
  --mcc-fs-body:    1rem;
  --mcc-fs-small:   .875rem;
  --mcc-fs-micro:   .75rem;

  /* --- Spaziature (scala 4px) --- */
  --mcc-s-1: 4px;   --mcc-s-2: 8px;   --mcc-s-3: 12px;  --mcc-s-4: 16px;
  --mcc-s-5: 24px;  --mcc-s-6: 32px;  --mcc-s-7: 48px;  --mcc-s-8: 64px;
  --mcc-s-9: 96px;  --mcc-s-10:128px; --mcc-s-11:160px;

  /* Padding verticale delle sezioni, fluido */
  --mcc-sec-y: clamp(64px, 9vw, 140px);

  /* --- Layout --- */
  --mcc-maxw:       1320px;  /* contenitore standard   */
  --mcc-maxw-nar:   880px;   /* contenitore editoriale */
  --mcc-gutter:     clamp(20px, 4vw, 48px);
  --mcc-header-h:   84px;
  --mcc-header-h-sm:68px;

  /* --- Motion --- */
  --mcc-ease:     cubic-bezier(.22,.61,.36,1);
  --mcc-ease-out: cubic-bezier(.16,1,.3,1);
  --mcc-dur:      .5s;
  --mcc-dur-fast: .25s;

  --mcc-radius: 2px;  /* quasi squadrato: linguaggio editoriale, non "app" */
}

/* ==========================================================================
   02. RESET ESSENZIALE
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body.mcc-body{
  margin:0;
  font-family:var(--mcc-font-text);
  font-size:var(--mcc-fs-body);
  line-height:1.65;
  color:var(--mcc-txt-on-dark);
  background:var(--mcc-ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4,h5,h6,p,figure,blockquote{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }

/* L'attributo hidden deve vincere sempre. Senza questa riga una regola
   d'autore come .mcc-stack-4{display:grid} sovrascrive il display:none del
   browser, e i blocchi privi di dato resterebbero visibili e vuoti. */
[hidden]{ display:none !important; }

/* Focus visibile e coerente su tutto il sito (accessibilita') */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--mcc-gold);
  outline-offset:3px;
  border-radius:var(--mcc-radius);
}

/* Skip link */
.mcc-skip{
  position:absolute; left:-9999px; top:0; z-index:2000;
  background:var(--mcc-gold); color:#0B0B0C;
  padding:12px 20px; font-weight:600; letter-spacing:.04em;
}
.mcc-skip:focus{ left:12px; top:12px; }

/* Utility screen-reader */
.mcc-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ==========================================================================
   03. TIPOGRAFIA
   ========================================================================== */
.mcc-display{
  font-family:var(--mcc-font-display);
  font-weight:500;
  font-size:var(--mcc-fs-display);
  line-height:.92;
  letter-spacing:-.02em;
  text-wrap:balance;
}
.mcc-h1{ font-family:var(--mcc-font-display); font-weight:500; font-size:var(--mcc-fs-h1); line-height:1.02; letter-spacing:-.015em; text-wrap:balance; }
.mcc-h2{ font-family:var(--mcc-font-display); font-weight:500; font-size:var(--mcc-fs-h2); line-height:1.08; letter-spacing:-.01em; text-wrap:balance; }
.mcc-h3{ font-family:var(--mcc-font-display); font-weight:500; font-size:var(--mcc-fs-h3); line-height:1.2; }
.mcc-h4{ font-family:var(--mcc-font-text);    font-weight:600; font-size:var(--mcc-fs-h4); line-height:1.35; letter-spacing:-.005em; }

/* Occhiello / kicker: piccolo, maiuscolo, spaziato */
.mcc-kicker{
  font-size:var(--mcc-fs-micro);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-weight:600;
  color:var(--mcc-gold);
  display:inline-flex; align-items:center; gap:10px;
}
.mcc-kicker::before{
  content:""; width:28px; height:1px; background:currentColor; flex:none;
}
.mcc-kicker--plain::before{ display:none; }

.mcc-lead{ font-size:var(--mcc-fs-lead); line-height:1.6; color:var(--mcc-txt-on-dark-mute); }
.mcc-mute{ color:var(--mcc-txt-on-dark-mute); }
.mcc-prose p + p{ margin-top:1.1em; }
.mcc-prose{ max-width:68ch; }

/* Numeri e date usati come elemento grafico */
.mcc-num{
  font-family:var(--mcc-font-display);
  font-weight:500;
  font-variant-numeric:lining-nums tabular-nums;
  letter-spacing:-.02em;
}

/* Link con underline animato */
.mcc-link{
  position:relative; text-decoration:none; font-weight:500;
  padding-bottom:2px;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px; background-repeat:no-repeat; background-position:0 100%;
  transition:background-size var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-link:hover,.mcc-link:focus-visible{ background-size:100% 1px; }

/* ==========================================================================
   04. LAYOUT / SEZIONI
   ========================================================================== */
.mcc-wrap{ width:100%; max-width:var(--mcc-maxw); margin-inline:auto; padding-inline:var(--mcc-gutter); }
.mcc-wrap--narrow{ max-width:var(--mcc-maxw-nar); }
.mcc-wrap--wide{ max-width:1600px; }

.mcc-sec{ padding-block:var(--mcc-sec-y); position:relative; }
.mcc-sec--tight{ padding-block:clamp(48px,6vw,88px); }

/* Alternanza scuro / chiaro: la regola estetica portante del sito */
.mcc-sec--dark{  background:var(--mcc-ink);      color:var(--mcc-txt-on-dark); }
.mcc-sec--dark2{ background:var(--mcc-graphite); color:var(--mcc-txt-on-dark); }
.mcc-sec--light{ background:var(--mcc-bone);     color:var(--mcc-txt-on-light); }
.mcc-sec--light .mcc-lead,
.mcc-sec--light .mcc-mute{ color:var(--mcc-txt-on-light-mute); }
.mcc-sec--light .mcc-kicker{ color:var(--mcc-gold-deep); }

/* Testata di sezione */
.mcc-sechead{
  display:grid; gap:var(--mcc-s-4);
  padding-bottom:var(--mcc-s-7);
  border-bottom:1px solid var(--mcc-hairline-d);
  margin-bottom:var(--mcc-s-7);
}
.mcc-sec--light .mcc-sechead{ border-color:var(--mcc-hairline-l); }
.mcc-sechead__row{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:var(--mcc-s-5); }
.mcc-sechead__txt{ max-width:64ch; }

.mcc-rule{ height:1px; background:var(--mcc-hairline-d); border:0; margin:0; }
.mcc-sec--light .mcc-rule{ background:var(--mcc-hairline-l); }

/* ==========================================================================
   05. BOTTONI
   ========================================================================== */
.mcc-btn{
  --btn-bg:transparent; --btn-fg:currentColor; --btn-bd:currentColor;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 26px; min-height:50px;
  font-family:var(--mcc-font-text);
  font-size:var(--mcc-fs-small); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; text-decoration:none;
  color:var(--btn-fg); background:var(--btn-bg);
  border:1px solid var(--btn-bd); border-radius:var(--mcc-radius);
  cursor:pointer; position:relative; overflow:hidden;
  transition:background-color var(--mcc-dur-fast) var(--mcc-ease),
             color var(--mcc-dur-fast) var(--mcc-ease),
             border-color var(--mcc-dur-fast) var(--mcc-ease),
             transform var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-btn:hover{ transform:translateY(-2px); }
.mcc-btn:active{ transform:translateY(0); }

.mcc-btn--gold{ --btn-bg:var(--mcc-gold); --btn-fg:#0B0B0C; --btn-bd:var(--mcc-gold); }
.mcc-btn--gold:hover{ --btn-bg:var(--mcc-gold-soft); --btn-bd:var(--mcc-gold-soft); }

.mcc-btn--light{ --btn-bg:var(--mcc-bone); --btn-fg:#0B0B0C; --btn-bd:var(--mcc-bone); }
.mcc-btn--light:hover{ --btn-bg:#fff; --btn-bd:#fff; }

.mcc-btn--ghost{ --btn-bg:transparent; --btn-fg:var(--mcc-txt-on-dark); --btn-bd:rgba(243,239,231,.4); }
.mcc-btn--ghost:hover{ --btn-bd:var(--mcc-bone); --btn-bg:rgba(243,239,231,.08); }

.mcc-btn--dark{ --btn-bg:var(--mcc-ink); --btn-fg:var(--mcc-bone); --btn-bd:var(--mcc-ink); }
.mcc-btn--dark:hover{ --btn-bg:#000; }

.mcc-btn--outline-dark{ --btn-fg:var(--mcc-txt-on-light); --btn-bd:rgba(11,11,12,.34); }
.mcc-btn--outline-dark:hover{ --btn-bg:var(--mcc-ink); --btn-fg:var(--mcc-bone); --btn-bd:var(--mcc-ink); }

.mcc-btn--sm{ padding:10px 18px; min-height:40px; font-size:var(--mcc-fs-micro); }
.mcc-btn--block{ width:100%; }

.mcc-btns{ display:flex; flex-wrap:wrap; gap:var(--mcc-s-3); }

/* Freccia "vai a" testuale */
.mcc-arrow{
  display:inline-flex; align-items:center; gap:10px; text-decoration:none;
  font-size:var(--mcc-fs-small); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
}
.mcc-arrow svg{ transition:transform var(--mcc-dur-fast) var(--mcc-ease); flex:none; }
.mcc-arrow:hover svg{ transform:translateX(6px); }

/* ==========================================================================
   06. PLACEHOLDER IMMAGINI
   Sostituire ogni .mcc-ph con <img> o con lo sfondo dinamico di Elementor.
   ========================================================================== */
.mcc-ph{
  position:relative; overflow:hidden;
  background:
    linear-gradient(135deg, rgba(198,161,91,.10), rgba(198,161,91,0) 55%),
    linear-gradient(210deg, #24262A 0%, #141517 60%, #0E0F11 100%);
  border:1px solid var(--mcc-hairline-d);
  display:grid; place-items:center;
  color:rgba(243,239,231,.55);
  font-size:var(--mcc-fs-micro); letter-spacing:.2em; text-transform:uppercase;
  text-align:center; padding:var(--mcc-s-4);
}
/* grana leggerissima, solo CSS: rende il placeholder "fotografico" */
.mcc-ph::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.35;
  background-image:radial-gradient(rgba(255,255,255,.055) 1px, transparent 1px);
  background-size:3px 3px;
}
.mcc-ph__label{ position:relative; z-index:1; }
.mcc-ph--light{
  background:linear-gradient(210deg,#DED7C8 0%, #E8E2D6 60%, #D6CEBD 100%);
  color:rgba(20,21,26,.5); border-color:var(--mcc-hairline-l);
}
/* rapporti di forma ricorrenti */
.mcc-ph--poster{ aspect-ratio:2/3; }
.mcc-ph--still{  aspect-ratio:16/9; }
.mcc-ph--sq{     aspect-ratio:1/1; }
.mcc-ph--por{    aspect-ratio:4/5; }
.mcc-ph--wide{   aspect-ratio:21/9; }

/* ==========================================================================
   07. HEADER / NAVIGAZIONE
   [ELEMENTOR PRO] Realizzabile con Theme Builder > Header.
   Le classi qui sotto servono come riferimento visivo e per la variante
   "trasparente su hero -> solido allo scroll" (vedi main.js).
   ========================================================================== */
.mcc-header{
  position:fixed; inset:0 0 auto 0; z-index:900;
  height:var(--mcc-header-h);
  display:flex; align-items:center;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background-color var(--mcc-dur) var(--mcc-ease),
             border-color var(--mcc-dur) var(--mcc-ease),
             height var(--mcc-dur) var(--mcc-ease),
             backdrop-filter var(--mcc-dur) var(--mcc-ease);
}
/* stato "scrolled": fondo scuro semitrasparente + hairline */
.mcc-header.is-solid{
  height:var(--mcc-header-h-sm);
  background:rgba(11,11,12,.92);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom-color:var(--mcc-hairline-d);
}
/* pagine senza hero a tutto schermo: header sempre solido */
.mcc-header--static{ position:sticky; }

.mcc-header__inner{
  width:100%; max-width:1600px; margin-inline:auto;
  padding-inline:var(--mcc-gutter);
  display:flex; align-items:center; gap:var(--mcc-s-5);
}

/* --- Logo --- */
.mcc-logo{ display:flex; align-items:center; gap:12px; text-decoration:none; flex:none; }
/* Marchio ufficiale: PNG bianco su fondo trasparente, funziona su qualunque
   sezione scura. Altezza fissa, larghezza automatica: non si deforma mai. */
.mcc-logo__mark{
  height:36px; width:auto; flex:none; display:block;
}
@media (max-width:767px){ .mcc-logo__mark{ height:32px; } }
.mcc-logo__txt{ display:grid; line-height:1.05; }
.mcc-logo__t1{ font-family:var(--mcc-font-display); font-size:1.02rem; letter-spacing:.01em; }
.mcc-logo__t2{ font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; color:var(--mcc-txt-on-dark-mute); }

/* --- Nav desktop --- */
.mcc-nav{ margin-left:auto; display:none; }
.mcc-nav__list{ display:flex; align-items:center; gap:clamp(14px,1.8vw,30px); }
.mcc-nav__link{
  display:inline-block; text-decoration:none;
  font-size:.78rem; font-weight:500; letter-spacing:.13em; text-transform:uppercase;
  padding:8px 0; position:relative; color:var(--mcc-txt-on-dark);
}
.mcc-nav__link::after{
  content:""; position:absolute; left:0; bottom:2px; height:1px; width:0;
  background:var(--mcc-gold); transition:width var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-nav__link:hover::after,
.mcc-nav__link:focus-visible::after,
.mcc-nav__link[aria-current="page"]::after{ width:100%; }
.mcc-nav__link[aria-current="page"]{ color:var(--mcc-gold); }

.mcc-header__cta{ display:none; flex:none; }

/* --- Toggle mobile (hamburger a due linee, sobrio) --- */
.mcc-burger{
  margin-left:auto; width:46px; height:46px; flex:none;
  display:inline-grid; place-items:center; gap:6px;
  background:none; border:1px solid var(--mcc-hairline-d); border-radius:var(--mcc-radius);
  cursor:pointer;
}
.mcc-burger__bars{ display:grid; gap:6px; width:20px; }
.mcc-burger__bars i{
  display:block; height:1px; background:var(--mcc-bone);
  transition:transform var(--mcc-dur-fast) var(--mcc-ease), opacity var(--mcc-dur-fast) linear;
}
.mcc-burger[aria-expanded="true"] .mcc-burger__bars i:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
.mcc-burger[aria-expanded="true"] .mcc-burger__bars i:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }

/* --- Pannello mobile fullscreen --- */
.mcc-mobnav{
  position:fixed; inset:0; z-index:950;
  background:var(--mcc-ink);
  display:grid; grid-template-rows:auto 1fr auto;
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity var(--mcc-dur) var(--mcc-ease),
             transform var(--mcc-dur) var(--mcc-ease),
             visibility 0s linear var(--mcc-dur);
  overflow-y:auto;
}
.mcc-mobnav.is-open{ opacity:1; visibility:visible; transform:none; transition-delay:0s; }
.mcc-mobnav__top{
  height:var(--mcc-header-h-sm); display:flex; align-items:center;
  padding-inline:var(--mcc-gutter); border-bottom:1px solid var(--mcc-hairline-d);
}
.mcc-mobnav__body{ padding:var(--mcc-s-6) var(--mcc-gutter); align-self:center; }
.mcc-mobnav__list{ display:grid; }
.mcc-mobnav__list li{ border-bottom:1px solid var(--mcc-hairline-d); }
.mcc-mobnav__link{
  display:flex; align-items:baseline; gap:14px;
  padding:16px 0; text-decoration:none;
  font-family:var(--mcc-font-display); font-size:clamp(1.5rem,7vw,2.1rem); line-height:1.15;
}
.mcc-mobnav__link span{
  font-family:var(--mcc-font-text); font-size:.7rem; letter-spacing:.18em;
  color:var(--mcc-gold); flex:none;
}
.mcc-mobnav__foot{
  padding:var(--mcc-s-5) var(--mcc-gutter) calc(var(--mcc-s-5) + env(safe-area-inset-bottom));
  border-top:1px solid var(--mcc-hairline-d); display:grid; gap:var(--mcc-s-4);
}
.mcc-mobnav__social{ display:flex; gap:var(--mcc-s-5); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; }
body.mcc-noscroll{ overflow:hidden; }

/* Barra CTA persistente mobile: l'accredito e' sempre a un tap di distanza */
.mcc-stickycta{
  position:fixed; z-index:880; left:0; right:0; bottom:0;
  padding:10px var(--mcc-gutter) calc(10px + env(safe-area-inset-bottom));
  background:rgba(11,11,12,.94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-top:1px solid var(--mcc-hairline-d);
  transform:translateY(110%);
  transition:transform var(--mcc-dur) var(--mcc-ease);
}
.mcc-stickycta.is-visible{ transform:none; }

@media (min-width:1200px){
  .mcc-nav{ display:block; }
  .mcc-header__cta{ display:inline-flex; }
  .mcc-burger{ display:none; }
  .mcc-mobnav{ display:none; }
  .mcc-stickycta{ display:none; }
}

/* ==========================================================================
   08. HERO HOMEPAGE
   [ELEMENTOR] Section full-height con background image/video + overlay.
   Il markup qui sotto e' comunque completamente autonomo.
   ========================================================================== */
.mcc-hero{
  position:relative; min-height:100svh; min-height:100vh;
  display:grid; grid-template-rows:1fr auto;
  isolation:isolate; overflow:hidden;
  background:var(--mcc-ink); color:var(--mcc-txt-on-dark);
}
.mcc-hero__media{ position:absolute; inset:0; z-index:-2; }
.mcc-hero__media .mcc-ph{ width:100%; height:100%; border:0; }
.mcc-hero__media img,
.mcc-hero__media video{ width:100%; height:100%; object-fit:cover; }
/* Overlay a doppio gradiente: garantisce contrasto AA sul testo
   qualunque sia la fotografia caricata in seguito. */
.mcc-hero__overlay{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(11,11,12,.86) 0%, rgba(11,11,12,.34) 34%, rgba(11,11,12,.92) 100%),
    linear-gradient(90deg,  rgba(11,11,12,.72) 0%, rgba(11,11,12,.15) 62%);
}
.mcc-hero__inner{
  width:100%; max-width:1600px; margin-inline:auto;
  padding:calc(var(--mcc-header-h) + var(--mcc-s-8)) var(--mcc-gutter) var(--mcc-s-7);
  align-self:end; display:grid; gap:var(--mcc-s-5);
}
.mcc-hero__eyebrow{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--mcc-s-3) var(--mcc-s-5); }
.mcc-hero__title{ max-width:16ch; }
.mcc-hero__title em{ font-style:italic; color:var(--mcc-gold); }
.mcc-hero__claim{ max-width:46ch; font-size:var(--mcc-fs-lead); color:rgba(243,239,231,.86); }

/* Blocco date: i numeri sono elemento grafico, non solo informazione */
.mcc-dateblock{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--mcc-s-3) var(--mcc-s-5);
  padding-top:var(--mcc-s-4);
  border-top:1px solid var(--mcc-hairline-d);
}
.mcc-dateblock__num{ font-size:clamp(2.4rem,6vw,4.4rem); line-height:.9; color:var(--mcc-bone); }
.mcc-dateblock__sep{ font-size:clamp(1.6rem,3vw,2.4rem); color:var(--mcc-gold); line-height:1; }
.mcc-dateblock__meta{ display:grid; gap:2px; }
.mcc-dateblock__m1{ font-size:var(--mcc-fs-small); letter-spacing:.2em; text-transform:uppercase; }
.mcc-dateblock__m2{ font-size:var(--mcc-fs-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--mcc-txt-on-dark-mute); }

/* Variante "date non ancora annunciate": stessa gerarchia, nessun buco visivo.
   Si attiva aggiungendo .is-tba al blocco, senza toccare il layout. */
.mcc-dateblock.is-tba .mcc-dateblock__num{
  font-size:clamp(1.5rem,3.4vw,2.4rem); color:var(--mcc-gold);
  letter-spacing:.08em; text-transform:uppercase; font-family:var(--mcc-font-text);
  font-weight:600;
}

/* Barra informativa in fondo alla hero */
.mcc-hero__bar{
  border-top:1px solid var(--mcc-hairline-d);
  background:rgba(11,11,12,.42);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.mcc-hero__barin{
  max-width:1600px; margin-inline:auto; padding:var(--mcc-s-4) var(--mcc-gutter);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--mcc-s-4);
  font-size:var(--mcc-fs-micro); letter-spacing:.16em; text-transform:uppercase;
  color:var(--mcc-txt-on-dark-mute);
}
.mcc-hero__barin strong{ color:var(--mcc-bone); font-weight:600; }

/* Indicatore di scroll */
.mcc-scrollcue{ display:flex; align-items:center; gap:10px; }
.mcc-scrollcue i{
  display:block; width:1px; height:26px; background:var(--mcc-gold);
  transform-origin:top; animation:mcc-cue 2.4s var(--mcc-ease) infinite;
}
@keyframes mcc-cue{ 0%,100%{ transform:scaleY(.35); opacity:.4 } 50%{ transform:scaleY(1); opacity:1 } }

/* Hero pagine interne (piu' bassa della home) */
.mcc-phero{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--mcc-ink); color:var(--mcc-txt-on-dark);
  min-height:clamp(420px,62svh,640px);
  display:grid; align-items:end;
}
.mcc-phero__media{ position:absolute; inset:0; z-index:-2; }
.mcc-phero__media .mcc-ph{ width:100%; height:100%; border:0; }
.mcc-phero__overlay{
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(11,11,12,.9) 0%, rgba(11,11,12,.42) 45%, rgba(11,11,12,.94) 100%);
}
.mcc-phero__inner{
  width:100%; max-width:var(--mcc-maxw); margin-inline:auto;
  padding:calc(var(--mcc-header-h) + var(--mcc-s-7)) var(--mcc-gutter) var(--mcc-s-7);
  display:grid; gap:var(--mcc-s-4);
}
.mcc-phero__title{ max-width:18ch; }
.mcc-phero__sub{ max-width:52ch; }

/* Breadcrumb — [SEO] qui va il markup BreadcrumbList */
.mcc-crumb{ display:flex; flex-wrap:wrap; gap:8px; font-size:var(--mcc-fs-micro); letter-spacing:.14em; text-transform:uppercase; color:var(--mcc-txt-on-dark-mute); }
.mcc-crumb a{ text-decoration:none; }
.mcc-crumb a:hover{ color:var(--mcc-gold); }
.mcc-crumb li + li::before{ content:"/"; margin-right:8px; color:var(--mcc-gold); }

/* ==========================================================================
   09. BADGE DI CATEGORIA
   ========================================================================== */
.mcc-badge{
  display:inline-flex; align-items:center; gap:7px;
  padding:5px 11px; border:1px solid currentColor; border-radius:var(--mcc-radius);
  font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  line-height:1.4; white-space:nowrap;
}
.mcc-badge::before{ content:""; width:5px; height:5px; border-radius:50%; background:currentColor; flex:none; }
.mcc-badge--proiezione { color:var(--mcc-c-proiezione); }
.mcc-badge--incontro   { color:var(--mcc-c-incontro); }
.mcc-badge--masterclass{ color:var(--mcc-c-masterclass); }
.mcc-badge--evento     { color:var(--mcc-c-evento); }
.mcc-badge--cerimonia  { color:var(--mcc-c-cerimonia); }
.mcc-badge--ospite     { color:var(--mcc-c-ospite); }
/* badge pieno per stati speciali (Apertura/Chiusura/Premiere) */
.mcc-badge--solid{ background:var(--mcc-gold); border-color:var(--mcc-gold); color:#0B0B0C; }
.mcc-badge--solid::before{ display:none; }
.mcc-badge--outline-light{ color:var(--mcc-bone); }

/* ==========================================================================
   10. MICROANIMAZIONI — reveal allo scroll
   Attivate da main.js via IntersectionObserver. Nessuna libreria.
   ========================================================================== */
[data-mcc-reveal]{
  opacity:0; transform:translateY(22px);
  transition:opacity .8s var(--mcc-ease-out), transform .8s var(--mcc-ease-out);
  transition-delay:var(--mcc-reveal-delay,0ms);
}
[data-mcc-reveal].is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  [data-mcc-reveal]{ opacity:1 !important; transform:none !important; }
  .mcc-scrollcue i{ animation:none; }
}

/* ==========================================================================
   11. BLOCCO EDITORIALE (testo + immagine)
   [ELEMENTOR] 2 colonne. Qui in CSS Grid.
   ========================================================================== */
.mcc-split{ display:grid; gap:var(--mcc-s-7); align-items:center; }
/* min-width:0 impedisce che un figlio con contenuto largo (riga di link,
   tabella, blocco di codice) allarghi la colonna oltre il viewport */
.mcc-split > *{ min-width:0; }
@media (min-width:900px){
  .mcc-split{ grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,96px); }
  .mcc-split--7-5{ grid-template-columns:7fr 5fr; }
  .mcc-split--5-7{ grid-template-columns:5fr 7fr; }
  .mcc-split--rev > :first-child{ order:2; }
}
.mcc-split__txt{ display:grid; gap:var(--mcc-s-5); align-content:start; }

/* Elenco di dati chiave (anno, luogo, durata...) */
.mcc-facts{ display:grid; gap:0; }
.mcc-facts li{
  display:flex; justify-content:space-between; gap:var(--mcc-s-4);
  padding:12px 0; border-bottom:1px solid var(--mcc-hairline-d);
  font-size:var(--mcc-fs-small);
}
.mcc-sec--light .mcc-facts li{ border-color:var(--mcc-hairline-l); }
.mcc-facts dt,.mcc-facts__k{ color:var(--mcc-txt-on-dark-mute); letter-spacing:.12em; text-transform:uppercase; font-size:var(--mcc-fs-micro); }
.mcc-sec--light .mcc-facts__k{ color:var(--mcc-txt-on-light-mute); }
.mcc-facts__v{ text-align:right; font-weight:500; }

/* Numeri-manifesto */
.mcc-stats{ display:grid; gap:var(--mcc-s-5); grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
.mcc-stats__i{ padding-top:var(--mcc-s-4); border-top:1px solid var(--mcc-hairline-d); }
.mcc-sec--light .mcc-stats__i{ border-color:var(--mcc-hairline-l); }
.mcc-stats__n{ font-size:clamp(2.2rem,4.5vw,3.4rem); line-height:1; display:block; }
.mcc-stats__l{ font-size:var(--mcc-fs-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--mcc-txt-on-dark-mute); margin-top:8px; display:block; }
.mcc-sec--light .mcc-stats__l{ color:var(--mcc-txt-on-light-mute); }

/* ==========================================================================
   12. PROGRAMMA — navigazione giorni + timeline
   [HTML/CSS/JS CUSTOM]  (widget HTML Elementor, alimentato in futuro dal CPT
   "Evento" tramite Loop Grid o render PHP)
   ========================================================================== */

/* --- Navigazione per giorni: sticky su desktop, scroll-x su mobile --- */
.mcc-daynav{
  position:sticky; top:var(--mcc-header-h-sm); z-index:700;
  background:rgba(11,11,12,.95);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-block:1px solid var(--mcc-hairline-d);
}
.mcc-daynav__scroller{
  max-width:var(--mcc-maxw); margin-inline:auto;
  padding-inline:var(--mcc-gutter);
  display:flex; gap:var(--mcc-s-2);
  overflow-x:auto; scroll-snap-type:x proximity;
  -ms-overflow-style:none; scrollbar-width:none;
}
.mcc-daynav__scroller::-webkit-scrollbar{ display:none; }
.mcc-day{
  flex:none; scroll-snap-align:start;
  display:grid; gap:2px; justify-items:center;
  padding:14px 18px; min-width:82px;
  background:none; border:0; border-bottom:2px solid transparent;
  cursor:pointer; text-decoration:none; color:var(--mcc-txt-on-dark-mute);
  transition:color var(--mcc-dur-fast) var(--mcc-ease), border-color var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-day__dow{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; }
.mcc-day__num{ font-family:var(--mcc-font-display); font-size:1.65rem; line-height:1; }
.mcc-day__mon{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; }
.mcc-day:hover{ color:var(--mcc-bone); }
.mcc-day.is-active{ color:var(--mcc-gold); border-bottom-color:var(--mcc-gold); }
.mcc-day[aria-selected="true"]{ color:var(--mcc-gold); border-bottom-color:var(--mcc-gold); }

/* --- Filtri (categoria / location) --- */
.mcc-filters{ display:grid; gap:var(--mcc-s-4); }
.mcc-filters__row{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--mcc-s-3); }
.mcc-filters__lab{
  font-size:var(--mcc-fs-micro); letter-spacing:.18em; text-transform:uppercase;
  color:var(--mcc-txt-on-dark-mute); margin-right:var(--mcc-s-2);
}
.mcc-chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 16px; border:1px solid var(--mcc-hairline-d); border-radius:999px;
  background:none; cursor:pointer;
  font-size:var(--mcc-fs-micro); font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--mcc-txt-on-dark-mute);
  transition:all var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-chip:hover{ color:var(--mcc-bone); border-color:rgba(243,239,231,.4); }
.mcc-chip[aria-pressed="true"],.mcc-chip.is-active{
  background:var(--mcc-gold); border-color:var(--mcc-gold); color:#0B0B0C;
}
.mcc-sec--light .mcc-chip{ border-color:var(--mcc-hairline-l); color:var(--mcc-txt-on-light-mute); }
.mcc-sec--light .mcc-chip:hover{ color:var(--mcc-txt-on-light); border-color:rgba(11,11,12,.4); }
.mcc-sec--light .mcc-chip[aria-pressed="true"]{ background:var(--mcc-ink); border-color:var(--mcc-ink); color:var(--mcc-bone); }

/* Select nativa stilizzata (usata per il filtro Location su mobile) */
.mcc-select{
  appearance:none; -webkit-appearance:none;
  padding:9px 38px 9px 16px; border-radius:999px;
  border:1px solid var(--mcc-hairline-d); background:transparent; color:var(--mcc-bone);
  font-size:var(--mcc-fs-micro); font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  background-image:linear-gradient(45deg,transparent 50%,var(--mcc-gold) 50%),linear-gradient(135deg,var(--mcc-gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%, calc(100% - 15px) 50%;
  background-size:5px 5px,5px 5px; background-repeat:no-repeat;
  cursor:pointer;
}
.mcc-select option{ background:var(--mcc-graphite); color:var(--mcc-bone); }

/* --- Timeline della giornata --- */
.mcc-dayblock{ padding-block:var(--mcc-s-7); border-bottom:1px solid var(--mcc-hairline-d); }
.mcc-dayblock:last-child{ border-bottom:0; }
.mcc-dayblock__head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--mcc-s-4); margin-bottom:var(--mcc-s-6); }
.mcc-dayblock__date{ font-size:clamp(2rem,5vw,3.2rem); line-height:1; }
.mcc-dayblock__dow{ font-size:var(--mcc-fs-small); letter-spacing:.22em; text-transform:uppercase; color:var(--mcc-gold); }

.mcc-tl{ display:grid; }
.mcc-tl__item{
  display:grid; gap:var(--mcc-s-3);
  padding:var(--mcc-s-5) 0;
  border-top:1px solid var(--mcc-hairline-d);
  position:relative;
  transition:background-color var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-tl__item:hover{ background:rgba(243,239,231,.03); }
.mcc-tl__item.is-hidden{ display:none; }

/* Ora: trattata come numero-grafico, allineata a sinistra */
.mcc-tl__time{
  display:flex; align-items:center; gap:10px;
  font-family:var(--mcc-font-display); font-size:1.5rem; line-height:1;
  color:var(--mcc-gold); font-variant-numeric:tabular-nums;
}
.mcc-tl__time::after{ content:""; height:1px; flex:1; background:var(--mcc-hairline-d); }
.mcc-tl__body{ display:grid; gap:10px; }
.mcc-tl__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--mcc-s-3); }
.mcc-tl__title{ font-family:var(--mcc-font-display); font-size:clamp(1.25rem,2.4vw,1.75rem); line-height:1.2; }
.mcc-tl__title a{ text-decoration:none; }
.mcc-tl__title a:hover{ color:var(--mcc-gold); }
.mcc-tl__sub{ font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-tl__sub em{ font-style:normal; color:var(--mcc-bone); }
.mcc-tl__where{
  display:inline-flex; align-items:center; gap:8px;
  font-size:var(--mcc-fs-micro); letter-spacing:.12em; text-transform:uppercase;
  color:var(--mcc-txt-on-dark-mute); text-decoration:none;
}
.mcc-tl__where:hover{ color:var(--mcc-gold); }
.mcc-tl__where svg{ flex:none; }
.mcc-tl__aside{ display:flex; align-items:flex-start; gap:var(--mcc-s-4); }
.mcc-tl__thumb{ width:84px; flex:none; }

@media (min-width:860px){
  /* Su desktop: colonna oraria fissa + contenuto + colonna azione */
  .mcc-tl__item{
    grid-template-columns:150px minmax(0,1fr) auto;
    gap:var(--mcc-s-6); align-items:start;
    padding:var(--mcc-s-6) 0;
  }
  .mcc-tl__time{ font-size:1.9rem; }
  .mcc-tl__time::after{ display:none; }
  .mcc-tl__aside{ justify-content:flex-end; }
}

/* Stato "nessun risultato" dei filtri */
.mcc-empty{
  display:none; padding:var(--mcc-s-8) 0; text-align:center;
  color:var(--mcc-txt-on-dark-mute); font-size:var(--mcc-fs-small);
  letter-spacing:.1em; text-transform:uppercase;
}
.mcc-empty.is-on{ display:block; }

/* ==========================================================================
   13. CARD FILM (line-up)
   [WORDPRESS DYNAMIC] CPT "film" + Elementor Loop Grid; markup replicabile 1:1
   ========================================================================== */
.mcc-grid{ display:grid; gap:var(--mcc-s-6) var(--mcc-s-5); }
.mcc-grid--films{ grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }
.mcc-grid--2{ grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
.mcc-grid--3{ grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.mcc-grid--4{ grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }

.mcc-film{ display:grid; gap:var(--mcc-s-4); position:relative; }
.mcc-film.is-hidden{ display:none; }
.mcc-film__media{ position:relative; overflow:hidden; background:var(--mcc-graphite); }
.mcc-film__media .mcc-ph{ transition:transform .9s var(--mcc-ease-out); }
.mcc-film:hover .mcc-film__media .mcc-ph,
.mcc-film:hover .mcc-film__media img{ transform:scale(1.04); }
.mcc-film__media img{ width:100%; aspect-ratio:2/3; object-fit:cover; transition:transform .9s var(--mcc-ease-out); }
.mcc-film__flags{ position:absolute; top:10px; left:10px; right:10px; display:flex; flex-wrap:wrap; gap:6px; z-index:2; }
.mcc-film__body{ display:grid; gap:7px; }
.mcc-film__cat{ font-size:var(--mcc-fs-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--mcc-gold); }
.mcc-film__title{ font-family:var(--mcc-font-display); font-size:1.18rem; line-height:1.2; }
.mcc-film__title a{ text-decoration:none; }
/* l'intera card e' cliccabile, ma il link resta uno solo (accessibilita') */
.mcc-film__title a::after{ content:""; position:absolute; inset:0; z-index:3; }
.mcc-film__orig{ font-size:var(--mcc-fs-small); font-style:italic; color:var(--mcc-txt-on-dark-mute); }
.mcc-film__dir{ font-size:var(--mcc-fs-small); }
.mcc-film__meta{
  font-size:var(--mcc-fs-micro); letter-spacing:.1em; text-transform:uppercase;
  color:var(--mcc-txt-on-dark-mute);
  display:flex; flex-wrap:wrap; gap:6px;
}
.mcc-film__meta span + span::before{ content:"·"; margin-right:6px; }
.mcc-sec--light .mcc-film__orig,
.mcc-sec--light .mcc-film__meta{ color:var(--mcc-txt-on-light-mute); }
.mcc-sec--light .mcc-film__cat{ color:var(--mcc-gold-deep); }

/* ==========================================================================
   14. CARD LUOGHI / VENUE
   ========================================================================== */
.mcc-venue{ display:grid; gap:var(--mcc-s-4); position:relative; }
.mcc-venue__media{ overflow:hidden; }
.mcc-venue__media .mcc-ph{ transition:transform .9s var(--mcc-ease-out); }
.mcc-venue:hover .mcc-venue__media .mcc-ph{ transform:scale(1.04); }
.mcc-venue__kind{ font-size:var(--mcc-fs-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--mcc-gold); }
.mcc-venue__name{ font-family:var(--mcc-font-display); font-size:clamp(1.3rem,2vw,1.7rem); line-height:1.15; }
.mcc-venue__addr{ font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-sec--light .mcc-venue__addr{ color:var(--mcc-txt-on-light-mute); }
.mcc-sec--light .mcc-venue__kind{ color:var(--mcc-gold-deep); }
.mcc-venue__tags{ display:flex; flex-wrap:wrap; gap:8px; }
.mcc-tag{
  font-size:.66rem; letter-spacing:.12em; text-transform:uppercase;
  padding:4px 10px; border:1px solid var(--mcc-hairline-d); border-radius:999px;
  color:var(--mcc-txt-on-dark-mute);
}
.mcc-sec--light .mcc-tag{ border-color:var(--mcc-hairline-l); color:var(--mcc-txt-on-light-mute); }

/* ==========================================================================
   15. CARD NEWS / ARTICOLI
   [WORDPRESS DYNAMIC] Post standard + Elementor Loop Grid
   ========================================================================== */
.mcc-post{ display:grid; gap:var(--mcc-s-4); position:relative; }
.mcc-post__media{ overflow:hidden; }
.mcc-post__media .mcc-ph{ transition:transform .9s var(--mcc-ease-out); }
.mcc-post:hover .mcc-post__media .mcc-ph{ transform:scale(1.04); }
.mcc-post__meta{ display:flex; flex-wrap:wrap; gap:var(--mcc-s-3); font-size:var(--mcc-fs-micro); letter-spacing:.14em; text-transform:uppercase; }
.mcc-post__cat{ color:var(--mcc-gold); }
.mcc-sec--light .mcc-post__cat{ color:var(--mcc-gold-deep); }
.mcc-post__date{ color:var(--mcc-txt-on-dark-mute); }
.mcc-sec--light .mcc-post__date{ color:var(--mcc-txt-on-light-mute); }
.mcc-post__title{ font-family:var(--mcc-font-display); font-size:clamp(1.2rem,1.8vw,1.5rem); line-height:1.22; }
.mcc-post__title a{ text-decoration:none; }
.mcc-post__title a::after{ content:""; position:absolute; inset:0; }
.mcc-post__ex{ font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-sec--light .mcc-post__ex{ color:var(--mcc-txt-on-light-mute); }

/* ==========================================================================
   16. ACCREDITI — riquadro messaggio, step numerati, FAQ
   ========================================================================== */
/* Riquadro "INGRESSO GRATUITO / ACCREDITO OBBLIGATORIO" */
.mcc-claimbox{
  border:1px solid var(--mcc-gold);
  padding:clamp(28px,5vw,56px);
  display:grid; gap:var(--mcc-s-5);
  background:linear-gradient(140deg, rgba(198,161,91,.10), rgba(198,161,91,0) 60%);
}
.mcc-claimbox__big{
  font-family:var(--mcc-font-display); line-height:1.02;
  font-size:clamp(1.8rem,4.4vw,3.2rem);
}
.mcc-claimbox__big em{ font-style:italic; color:var(--mcc-gold); }

/* Step 01 / 02 / 03 */
.mcc-steps{ display:grid; gap:var(--mcc-s-6); counter-reset:mccstep; }
@media (min-width:860px){ .mcc-steps{ grid-template-columns:repeat(3,1fr); gap:var(--mcc-s-7); } }
.mcc-step{ display:grid; gap:var(--mcc-s-3); padding-top:var(--mcc-s-4); border-top:1px solid var(--mcc-hairline-d); }
.mcc-sec--light .mcc-step{ border-color:var(--mcc-hairline-l); }
.mcc-step__n{ font-family:var(--mcc-font-display); font-size:clamp(2.6rem,5vw,3.8rem); line-height:1; color:var(--mcc-gold); }
.mcc-sec--light .mcc-step__n{ color:var(--mcc-gold-deep); }
.mcc-step__t{ font-size:var(--mcc-fs-h4); font-weight:600; letter-spacing:.02em; text-transform:uppercase; }
.mcc-step__d{ font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-sec--light .mcc-step__d{ color:var(--mcc-txt-on-light-mute); }

/* Liste "incluso / non incluso" */
.mcc-check{ display:grid; gap:12px; }
.mcc-check li{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; font-size:var(--mcc-fs-small); }
.mcc-check li::before{ content:"+"; color:var(--mcc-gold); font-weight:600; line-height:1.6; }
.mcc-check--no li::before{ content:"–"; color:rgba(243,239,231,.4); }
.mcc-sec--light .mcc-check--no li::before{ color:rgba(20,21,26,.4); }
.mcc-sec--light .mcc-check li::before{ color:var(--mcc-gold-deep); }

/* FAQ — <details>/<summary> nativi: zero JS, accessibili di default */
.mcc-faq{ display:grid; }
.mcc-faq__i{ border-bottom:1px solid var(--mcc-hairline-d); }
.mcc-sec--light .mcc-faq__i{ border-color:var(--mcc-hairline-l); }
.mcc-faq__q{
  list-style:none; cursor:pointer; padding:var(--mcc-s-5) 0;
  display:flex; align-items:center; justify-content:space-between; gap:var(--mcc-s-4);
  font-family:var(--mcc-font-display); font-size:clamp(1.05rem,1.8vw,1.35rem); line-height:1.3;
}
.mcc-faq__q::-webkit-details-marker{ display:none; }
.mcc-faq__q::after{
  content:""; flex:none; width:12px; height:12px; position:relative;
  background:
    linear-gradient(var(--mcc-gold),var(--mcc-gold)) center/12px 1px no-repeat,
    linear-gradient(var(--mcc-gold),var(--mcc-gold)) center/1px 12px no-repeat;
  transition:transform var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-faq__i[open] .mcc-faq__q::after{ transform:rotate(45deg); }
.mcc-faq__a{ padding-bottom:var(--mcc-s-5); max-width:72ch; font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-sec--light .mcc-faq__a{ color:var(--mcc-txt-on-light-mute); }

/* Contenitore del form (da sostituire con Elementor Form / WPForms / esterno) */
.mcc-formslot{
  border:1px dashed var(--mcc-hairline-d);
  padding:clamp(32px,6vw,72px) clamp(20px,4vw,48px);
  display:grid; gap:var(--mcc-s-4); place-items:center; text-align:center;
  background:rgba(243,239,231,.02);
}
.mcc-sec--light .mcc-formslot{ border-color:var(--mcc-hairline-l); background:rgba(11,11,12,.02); }
.mcc-formslot__tag{
  font-family:var(--mcc-font-text); font-size:var(--mcc-fs-small); font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--mcc-gold);
}
.mcc-formslot__note{ font-size:var(--mcc-fs-micro); color:var(--mcc-txt-on-dark-mute); max-width:56ch; letter-spacing:.04em; }
.mcc-sec--light .mcc-formslot__note{ color:var(--mcc-txt-on-light-mute); }

/* ==========================================================================
   17. SPONSOR & PARTNER
   Loghi in griglia arieggiata, pari dignita' dentro la stessa fascia.
   ========================================================================== */
.mcc-tier{ display:grid; gap:var(--mcc-s-5); padding-block:var(--mcc-s-7); border-top:1px solid var(--mcc-hairline-l); }
.mcc-tier:first-of-type{ border-top:0; }
.mcc-tier__head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--mcc-s-4); }
.mcc-tier__label{ font-size:var(--mcc-fs-micro); letter-spacing:.24em; text-transform:uppercase; font-weight:600; }
.mcc-tier__hint{ font-size:var(--mcc-fs-micro); color:var(--mcc-txt-on-light-mute); letter-spacing:.06em; }
.mcc-logos{ display:grid; gap:var(--mcc-s-5); align-items:center; }
/* tre densita': piu' il livello e' alto, piu' spazio ha il logo */
.mcc-logos--xl{ grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.mcc-logos--l { grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); }
.mcc-logos--m { grid-template-columns:repeat(auto-fit,minmax(min(50%,150px),1fr)); }
.mcc-logo-slot{
  aspect-ratio:16/7; display:grid; place-items:center;
  border:1px solid var(--mcc-hairline-l);
  color:rgba(20,21,26,.45); font-size:var(--mcc-fs-micro);
  letter-spacing:.16em; text-transform:uppercase; text-align:center; padding:var(--mcc-s-4);
  background:#fff;
  transition:border-color var(--mcc-dur-fast) var(--mcc-ease), transform var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-logo-slot:hover{ border-color:var(--mcc-gold-deep); transform:translateY(-2px); }
.mcc-sec--dark .mcc-logo-slot,
.mcc-sec--dark2 .mcc-logo-slot{ background:rgba(243,239,231,.04); border-color:var(--mcc-hairline-d); color:rgba(243,239,231,.5); }
.mcc-sec--dark .mcc-tier,
.mcc-sec--dark2 .mcc-tier{ border-color:var(--mcc-hairline-d); }
.mcc-sec--dark .mcc-tier__hint,
.mcc-sec--dark2 .mcc-tier__hint{ color:var(--mcc-txt-on-dark-mute); }

/* ==========================================================================
   18. TEAM
   ========================================================================== */
.mcc-person{ display:grid; gap:var(--mcc-s-4); }
.mcc-person__media{ overflow:hidden; }
.mcc-person__media .mcc-ph{ transition:transform .9s var(--mcc-ease-out); filter:grayscale(1); }
.mcc-person:hover .mcc-person__media .mcc-ph{ transform:scale(1.03); filter:grayscale(0); }
.mcc-person__role{ font-size:var(--mcc-fs-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--mcc-gold); }
.mcc-sec--light .mcc-person__role{ color:var(--mcc-gold-deep); }
.mcc-person__name{ font-family:var(--mcc-font-display); font-size:1.3rem; line-height:1.15; }
.mcc-person__bio{ font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-sec--light .mcc-person__bio{ color:var(--mcc-txt-on-light-mute); }

/* Elenco nominativo compatto (staff, comitati) */
.mcc-roles{ display:grid; gap:0; }
.mcc-roles li{
  display:grid; gap:4px; padding:var(--mcc-s-4) 0;
  border-bottom:1px solid var(--mcc-hairline-l);
}
@media (min-width:720px){ .mcc-roles li{ grid-template-columns:minmax(220px,1fr) 2fr; gap:var(--mcc-s-5); align-items:baseline; } }
.mcc-roles__r{ font-size:var(--mcc-fs-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--mcc-txt-on-light-mute); }
.mcc-roles__n{ font-family:var(--mcc-font-display); font-size:1.15rem; }
.mcc-sec--dark .mcc-roles li,.mcc-sec--dark2 .mcc-roles li{ border-color:var(--mcc-hairline-d); }
.mcc-sec--dark .mcc-roles__r,.mcc-sec--dark2 .mcc-roles__r{ color:var(--mcc-txt-on-dark-mute); }

/* ==========================================================================
   19. CONTATTI
   ========================================================================== */
.mcc-contact{ display:grid; gap:10px; padding:var(--mcc-s-5) 0; border-top:1px solid var(--mcc-hairline-l); }
.mcc-sec--dark .mcc-contact,.mcc-sec--dark2 .mcc-contact{ border-color:var(--mcc-hairline-d); }
.mcc-contact__k{ font-size:var(--mcc-fs-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--mcc-gold-deep); }
.mcc-sec--dark .mcc-contact__k,.mcc-sec--dark2 .mcc-contact__k{ color:var(--mcc-gold); }
.mcc-contact__v{ font-family:var(--mcc-font-display); font-size:clamp(1.1rem,2vw,1.45rem); word-break:break-word; }
.mcc-contact__d{ font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-light-mute); }
.mcc-sec--dark .mcc-contact__d,.mcc-sec--dark2 .mcc-contact__d{ color:var(--mcc-txt-on-dark-mute); }

/* ==========================================================================
   20. NEWSLETTER
   ========================================================================== */
.mcc-nl{ display:grid; gap:var(--mcc-s-6); align-items:center; }
@media (min-width:980px){ .mcc-nl{ grid-template-columns:1fr 1fr; gap:var(--mcc-s-8); } }
.mcc-nl__form{ display:grid; gap:var(--mcc-s-4); }
.mcc-field{ display:grid; gap:8px; }
.mcc-field label{ font-size:var(--mcc-fs-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--mcc-txt-on-dark-mute); }
.mcc-input{
  width:100%; padding:15px 16px;
  background:transparent; color:var(--mcc-bone);
  border:1px solid var(--mcc-hairline-d); border-radius:var(--mcc-radius);
  font:inherit; font-size:var(--mcc-fs-small);
  transition:border-color var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-input::placeholder{ color:rgba(243,239,231,.38); }
.mcc-input:hover{ border-color:rgba(243,239,231,.34); }
.mcc-sec--light .mcc-input{ color:var(--mcc-txt-on-light); border-color:var(--mcc-hairline-l); }
.mcc-sec--light .mcc-input::placeholder{ color:rgba(20,21,26,.4); }
.mcc-sec--light .mcc-field label{ color:var(--mcc-txt-on-light-mute); }
textarea.mcc-input{ min-height:150px; resize:vertical; }

.mcc-consent{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; font-size:var(--mcc-fs-micro); color:var(--mcc-txt-on-dark-mute); line-height:1.6; }
.mcc-sec--light .mcc-consent{ color:var(--mcc-txt-on-light-mute); }
.mcc-consent input{ width:16px; height:16px; margin-top:3px; accent-color:var(--mcc-gold); }

/* ==========================================================================
   21. FOOTER
   [ELEMENTOR PRO] Theme Builder > Footer
   ========================================================================== */
.mcc-footer{ background:var(--mcc-ink); color:var(--mcc-txt-on-dark); border-top:1px solid var(--mcc-hairline-d); }
.mcc-footer__main{
  display:grid; gap:var(--mcc-s-7);
  padding-block:var(--mcc-s-8);
}
@media (min-width:900px){ .mcc-footer__main{ grid-template-columns:1.6fr 1fr 1fr 1fr; gap:var(--mcc-s-6); } }
.mcc-footer__brand{ display:grid; gap:var(--mcc-s-4); align-content:start; max-width:36ch; }
.mcc-footer__pay{ font-family:var(--mcc-font-display); font-size:1.3rem; line-height:1.25; }
.mcc-fcol__t{ font-size:var(--mcc-fs-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--mcc-gold); margin-bottom:var(--mcc-s-4); }
.mcc-fcol__list{ display:grid; gap:10px; }
.mcc-fcol__list a{ text-decoration:none; font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-fcol__list a:hover{ color:var(--mcc-bone); }
.mcc-footer__bottom{
  border-top:1px solid var(--mcc-hairline-d);
  padding-block:var(--mcc-s-5);
  display:flex; flex-wrap:wrap; gap:var(--mcc-s-3) var(--mcc-s-5);
  align-items:center; justify-content:space-between;
  font-size:var(--mcc-fs-micro); color:var(--mcc-txt-on-dark-mute);
}
.mcc-footer__legal{ display:flex; flex-wrap:wrap; gap:var(--mcc-s-4); }
.mcc-footer__legal a{ text-decoration:none; }
.mcc-footer__legal a:hover{ color:var(--mcc-gold); }
.mcc-social{ display:flex; flex-wrap:wrap; gap:var(--mcc-s-4); }
.mcc-social a{ font-size:var(--mcc-fs-micro); letter-spacing:.14em; text-transform:uppercase; text-decoration:none; color:var(--mcc-txt-on-dark-mute); }
.mcc-social a:hover{ color:var(--mcc-gold); }

/* ==========================================================================
   22. MODAL FILM (alternativa alla pagina singola)
   ========================================================================== */
.mcc-modal{
  position:fixed; inset:0; z-index:1000; display:grid; place-items:center;
  padding:var(--mcc-gutter);
  background:rgba(5,5,6,.82);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  opacity:0; visibility:hidden;
  transition:opacity var(--mcc-dur) var(--mcc-ease), visibility 0s linear var(--mcc-dur);
}
.mcc-modal.is-open{ opacity:1; visibility:visible; transition-delay:0s; }
.mcc-modal__panel{
  width:min(100%,880px); max-height:88svh; overflow-y:auto;
  background:var(--mcc-graphite); border:1px solid var(--mcc-hairline-d);
  padding:clamp(24px,4vw,48px);
  transform:translateY(14px); transition:transform var(--mcc-dur) var(--mcc-ease-out);
}
.mcc-modal.is-open .mcc-modal__panel{ transform:none; }
.mcc-modal__close{
  position:sticky; top:0; margin-left:auto; display:block;
  width:40px; height:40px; background:none; border:1px solid var(--mcc-hairline-d);
  color:var(--mcc-bone); cursor:pointer; font-size:1.1rem; line-height:1;
}

/* ==========================================================================
   23. UTILITY
   ========================================================================== */
.mcc-hr-thin{ border:0; border-top:1px solid var(--mcc-hairline-d); margin:0; }
.mcc-center{ text-align:center; }
.mcc-stack-2{ display:grid; gap:var(--mcc-s-2); }
.mcc-stack-3{ display:grid; gap:var(--mcc-s-3); }
.mcc-stack-4{ display:grid; gap:var(--mcc-s-4); }
.mcc-stack-5{ display:grid; gap:var(--mcc-s-5); }
.mcc-stack-6{ display:grid; gap:var(--mcc-s-6); }
.mcc-stack-7{ display:grid; gap:var(--mcc-s-7); }
.mcc-mt-6{ margin-top:var(--mcc-s-6); }
.mcc-mt-7{ margin-top:var(--mcc-s-7); }
.mcc-justify-center{ justify-items:center; justify-content:center; }
.mcc-maxw-prose{ max-width:68ch; }

/* Nota sorgente / fonte verificata */
.mcc-source{
  font-size:.7rem; line-height:1.6; color:var(--mcc-txt-on-dark-mute);
  border-left:1px solid var(--mcc-gold); padding-left:14px;
}
.mcc-sec--light .mcc-source{ color:var(--mcc-txt-on-light-mute); border-color:var(--mcc-gold-deep); }
.mcc-source a{ color:inherit; }

/* Etichetta contenuto provvisorio: visibile solo in bozza, si toglie in produzione */
.mcc-draft{
  display:inline-block; font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
  padding:3px 8px; border:1px dashed var(--mcc-gold); color:var(--mcc-gold); border-radius:var(--mcc-radius);
}

/* Banda "a scorrimento" testuale, sobria e senza JS (usata come divisore) */
.mcc-ticker{ overflow:hidden; border-block:1px solid var(--mcc-hairline-d); padding-block:var(--mcc-s-4); }
.mcc-ticker__track{
  display:flex; gap:var(--mcc-s-7); width:max-content;
  animation:mcc-ticker 38s linear infinite;
  font-family:var(--mcc-font-display); font-size:clamp(1.1rem,2vw,1.6rem);
  color:var(--mcc-txt-on-dark-mute); white-space:nowrap;
}
.mcc-ticker__track span{ display:inline-flex; align-items:center; gap:var(--mcc-s-7); }
.mcc-ticker__track span::after{ content:"◦"; color:var(--mcc-gold); }
@keyframes mcc-ticker{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }
@media (prefers-reduced-motion: reduce){ .mcc-ticker__track{ animation:none; } }

/* ==========================================================================
   24. RESPONSIVE — correttivi mirati
   Desktop > 1200 · Tablet 768-1199 · Mobile < 768
   ========================================================================== */
@media (max-width:1199px){
  :root{ --mcc-header-h:74px; }
  .mcc-grid--films{ grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); }
}
@media (max-width:767px){
  :root{ --mcc-header-h:66px; --mcc-header-h-sm:60px; }
  .mcc-hero{ min-height:92svh; }
  .mcc-hero__inner{ padding-bottom:var(--mcc-s-6); }
  /* mai poster troppo stretti: 2 colonne piene, mai 3 */
  .mcc-grid--films{ grid-template-columns:repeat(2,1fr); gap:var(--mcc-s-5) var(--mcc-s-4); }
  .mcc-grid--3,.mcc-grid--4,.mcc-grid--2{ grid-template-columns:1fr; }
  .mcc-daynav{ top:var(--mcc-header-h-sm); }
  .mcc-daynav__scroller{ padding-inline:var(--mcc-gutter); }
  .mcc-footer__bottom{ flex-direction:column; align-items:flex-start; }
  /* spazio per la barra CTA fissa */
  .mcc-body{ padding-bottom:0; }
  .mcc-footer__bottom{ padding-bottom:calc(var(--mcc-s-5) + 68px); }
}
@media (max-width:380px){
  .mcc-grid--films{ grid-template-columns:1fr; }
}

/* ==========================================================================
   25. STAMPA (programma stampabile: richiesta ricorrente nei festival)
   ========================================================================== */
@media print{
  .mcc-header,.mcc-mobnav,.mcc-stickycta,.mcc-daynav,.mcc-filters,.mcc-hero__media,
  .mcc-hero__overlay,.mcc-footer__main,.mcc-scrollcue{ display:none !important; }
  .mcc-body{ background:#fff; color:#000; }
  .mcc-sec{ padding-block:16px; }
  .mcc-tl__item{ break-inside:avoid; border-color:#ccc; }
  a[href]::after{ content:" (" attr(href) ")"; font-size:.7em; color:#555; }
}

/* ==========================================================================
   26. SOTTO-NAVIGAZIONE AD ANCORE (pagine lunghe: Luoghi, Chi siamo)
   [HTML CUSTOM] — sticky sotto l'header, scorrevole su mobile
   ========================================================================== */
.mcc-anchornav{
  position:sticky; top:var(--mcc-header-h-sm); z-index:700;
  background:rgba(11,11,12,.95);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-block:1px solid var(--mcc-hairline-d);
}
.mcc-anchornav__scroller{
  max-width:var(--mcc-maxw); margin-inline:auto; padding-inline:var(--mcc-gutter);
  display:flex; gap:var(--mcc-s-5); overflow-x:auto;
  -ms-overflow-style:none; scrollbar-width:none;
}
.mcc-anchornav__scroller::-webkit-scrollbar{ display:none; }
.mcc-anchornav a{
  flex:none; padding:15px 0; text-decoration:none; white-space:nowrap;
  font-size:var(--mcc-fs-micro); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--mcc-txt-on-dark-mute); border-bottom:2px solid transparent;
  transition:color var(--mcc-dur-fast) var(--mcc-ease), border-color var(--mcc-dur-fast) var(--mcc-ease);
}
.mcc-anchornav a:hover{ color:var(--mcc-bone); }
.mcc-anchornav a.is-active{ color:var(--mcc-gold); border-bottom-color:var(--mcc-gold); }

/* Blocco "in evidenza" su fondo chiaro (info utili, box orari) */
.mcc-infobox{
  border:1px solid var(--mcc-hairline-l); padding:clamp(20px,3vw,32px);
  display:grid; gap:var(--mcc-s-3); background:rgba(255,255,255,.4);
}
.mcc-sec--dark .mcc-infobox,.mcc-sec--dark2 .mcc-infobox{
  border-color:var(--mcc-hairline-d); background:rgba(243,239,231,.03);
}
.mcc-infobox__t{ font-size:var(--mcc-fs-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--mcc-gold-deep); font-weight:600; }
.mcc-sec--dark .mcc-infobox__t,.mcc-sec--dark2 .mcc-infobox__t{ color:var(--mcc-gold); }

/* Contenitore mappa: rapporto fisso + iframe lazy */
.mcc-mapslot{
  aspect-ratio:16/9; border:1px solid var(--mcc-hairline-d);
  display:grid; place-items:center; background:var(--mcc-graphite);
  color:var(--mcc-txt-on-dark-mute); text-align:center; padding:var(--mcc-s-5);
  font-size:var(--mcc-fs-micro); letter-spacing:.14em; text-transform:uppercase;
}
.mcc-mapslot iframe{ width:100%; height:100%; border:0; }
@media (max-width:767px){ .mcc-mapslot{ aspect-ratio:4/3; } }

/* Nelle hero il segnaposto non deve competere con il titolo: l'etichetta
   diventa una piccola annotazione in alto a destra. Si elimina insieme al
   placeholder quando si inserisce la fotografia definitiva. */
.mcc-hero__media .mcc-ph,
.mcc-phero__media .mcc-ph{
  place-items:start end;
  padding:calc(var(--mcc-header-h) + 14px) var(--mcc-gutter);
}
.mcc-hero__media .mcc-ph::after,
.mcc-phero__media .mcc-ph::after{ opacity:.25; }
.mcc-hero__media .mcc-ph .mcc-ph__label,
.mcc-phero__media .mcc-ph .mcc-ph__label{
  font-size:.6rem; letter-spacing:.14em; max-width:22ch; text-align:right;
  color:rgba(243,239,231,.4);
  border:1px dashed rgba(243,239,231,.22); padding:5px 9px;
}


/* ==========================================================================
   27. AGGIORNAMENTO CONTENUTI UFFICIALI (revisione editoriale)
   ========================================================================== */

/* --- Poster reali: mai deformati, mai tagliati -----------------------------
   Le locandine hanno proporzioni diverse fra loro (da 0.60 a 0.85).
   Il riquadro resta 2:3 per tenere la griglia ordinata, ma il poster è
   contenuto (contain): titoli, allori dei festival e crediti restano interi. */
.mcc-film__media{
  aspect-ratio:2/3;
  display:grid; place-items:center;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(198,161,91,.07), transparent 60%),
    linear-gradient(200deg,#1A1C1F,#0E0F11);
  border:1px solid var(--mcc-hairline-d);
}
.mcc-film__media img{
  width:100%; height:100%;
  object-fit:contain; aspect-ratio:auto;
  padding:6px;
}
.mcc-sec--light .mcc-film__media{
  background:linear-gradient(200deg,#E4DDCE,#D8D0BF); border-color:var(--mcc-hairline-l);
}

/* poster grande nella scheda film e nella modal */
.mcc-poster-lg{
  width:100%; aspect-ratio:2/3; object-fit:contain;
  background:linear-gradient(200deg,#1A1C1F,#0E0F11);
  border:1px solid var(--mcc-hairline-d); padding:8px;
}

/* --- Badge aggiunti dal programma ufficiale --- */
.mcc-badge--talk { color:#8AA3B8; }
.mcc-badge--press{ color:#9B93B8; }

/* --- Aree grafiche senza fotografia ---------------------------------------
   In attesa delle immagini ufficiali i riquadri restano superfici materiche
   neutre: nessuna etichetta, nessun testo segnaposto visibile. */
.mcc-ph__label{ display:none; }
.mcc-ph{
  background:
    radial-gradient(90% 70% at 30% 10%, rgba(198,161,91,.10), transparent 60%),
    linear-gradient(200deg, #24262A 0%, #141517 55%, #0D0E10 100%);
}
.mcc-ph--light{
  background:
    radial-gradient(90% 70% at 30% 10%, rgba(138,106,46,.12), transparent 60%),
    linear-gradient(200deg,#E2DBCC 0%, #E8E2D6 55%, #D4CCBA 100%);
}

/* --- Nota di anteprima nel footer --- */
.mcc-protonote{
  display:inline-block; margin-top:6px;
  font-size:.7rem; letter-spacing:.08em; line-height:1.5;
  color:rgba(243,239,231,.42);
}

/* --- Elenco strutture/locali informativi (Dove dormire, Dove mangiare) --- */
.mcc-listing{ display:grid; gap:0; }
.mcc-listing li{
  display:grid; gap:4px; padding:var(--mcc-s-4) 0;
  border-bottom:1px solid var(--mcc-hairline-d);
}
.mcc-sec--light .mcc-listing li{ border-color:var(--mcc-hairline-l); }
@media (min-width:640px){
  .mcc-listing li{ grid-template-columns:1fr auto; align-items:baseline; gap:var(--mcc-s-4); }
}
.mcc-listing__n{ font-family:var(--mcc-font-display); font-size:1.12rem; line-height:1.25; }
.mcc-listing__m{
  font-size:var(--mcc-fs-micro); letter-spacing:.12em; text-transform:uppercase;
  color:var(--mcc-txt-on-dark-mute);
}
.mcc-sec--light .mcc-listing__m{ color:var(--mcc-txt-on-light-mute); }
.mcc-listing__a{ font-size:var(--mcc-fs-small); color:var(--mcc-txt-on-dark-mute); }
.mcc-sec--light .mcc-listing__a{ color:var(--mcc-txt-on-light-mute); }

/* --- Mappa: caricata solo al click (nessun cookie di terze parti) --- */
.mcc-mapslot{ position:relative; cursor:pointer; }
.mcc-mapslot__btn{ display:grid; gap:var(--mcc-s-4); place-items:center; }

/* Il <select> dei luoghi si dimensiona sull'opzione più lunga: con i nomi
   reali delle sedi sforava il viewport sotto i 420px. Viene clampato al
   contenitore; l'elenco a tendina resta ovviamente per esteso. */
.mcc-select{ max-width:100%; }
.mcc-filters__row{ max-width:100%; }
@media (max-width:560px){
  .mcc-filters__row > .mcc-select{ flex:1 1 100%; width:100%; }
}

/* ==========================================================================
   28. FOTOGRAFIE (sostituiscono i riquadri .mcc-ph)
   Le proporzioni erano sui contenitori segnaposto: qui tornano sulle immagini,
   così la griglia resta identica al progetto originale.
   ========================================================================== */
.mcc-photo{
  display:block; width:100%; height:100%;
  object-fit:cover; object-position:center;
  background:linear-gradient(200deg,#1A1C1F,#0E0F11);
}
.mcc-sec--light .mcc-photo{ background:linear-gradient(200deg,#E2DBCC,#D4CCBA); }
.mcc-photo--por  { aspect-ratio:4/5; }
.mcc-photo--sq   { aspect-ratio:1/1; }
.mcc-photo--still{ aspect-ratio:16/9; }
.mcc-photo--wide { aspect-ratio:21/9; }
/* sfalsature della griglia editoriale, come nel layout originale */
.mcc-photo--off  { margin-top:var(--mcc-s-7); }
.mcc-photo--off6 { margin-top:var(--mcc-s-6); }

/* Le hero: l'immagine riempie il riquadro e resta sotto l'overlay del design */
.mcc-hero__media img,
.mcc-phero__media img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Zoom lentissimo all'hover, come già previsto per i segnaposto */
.mcc-venue__media img,
.mcc-post__media img{ transition:transform .9s var(--mcc-ease-out); }
.mcc-venue:hover .mcc-venue__media img,
.mcc-post:hover  .mcc-post__media img{ transform:scale(1.04); }
.mcc-venue__media,.mcc-post__media{ overflow:hidden; }

/* Su schermi stretti le foto verticali diventano troppo alte: le accorcio e
   tolgo le sfalsature, che a una colonna sola creerebbero solo buchi. */
@media (max-width:767px){
  .mcc-photo--por{ aspect-ratio:3/4; }
  .mcc-photo--wide{ aspect-ratio:16/9; }
  .mcc-photo--off,.mcc-photo--off6{ margin-top:0; }
}

/* Hero della scheda film: la locandina del film stesso, sfocata, fa da fondo
   cromatico. Cambia con il film e non introduce immagini estranee. */
.mcc-phero__media img[data-film="herobg"]{
  filter:blur(22px) saturate(1.15);
  transform:scale(1.18);
  opacity:.55;
}


/* ==========================================================================
   29. OSPITI · LUOGHI PRINCIPALI · PARTNER CAROUSEL
   ========================================================================== */
.mcc-guest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--mcc-s-5)}
.mcc-guest{background:var(--mcc-paper);color:var(--mcc-ink);border:1px solid var(--mcc-hairline-l);overflow:hidden}
.mcc-guest__media{aspect-ratio:4/5;overflow:hidden;background:#ddd}
.mcc-guest__media img{width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block;transition:transform .8s var(--mcc-ease-out)}
.mcc-guest:hover .mcc-guest__media img{transform:scale(1.035)}
.mcc-guest__body{padding:18px 18px 22px}
.mcc-guest__role{font-size:var(--mcc-fs-micro);letter-spacing:.15em;text-transform:uppercase;color:var(--mcc-gold-deep);margin-bottom:8px}
.mcc-guest__name{font-family:var(--mcc-font-display);font-weight:500;font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.05}
.mcc-guest-grid--large{gap:var(--mcc-s-6)}
.mcc-venue-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--mcc-s-6)}
.mcc-venue-feature{border:1px solid var(--mcc-hairline-d);background:rgba(243,239,231,.025);overflow:hidden}
.mcc-venue-feature__media{aspect-ratio:16/9;overflow:hidden;background:#17181b;position:relative}
.mcc-venue-feature__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--mcc-ease-out)}
.mcc-venue-feature:hover .mcc-venue-feature__media img{transform:scale(1.035)}
.mcc-venue-feature__body{padding:clamp(22px,4vw,38px)}
.mcc-venue-feature__media--campus{display:grid;place-items:center;align-content:center;gap:10px;background:radial-gradient(circle at 30% 20%,rgba(198,161,91,.28),transparent 34%),linear-gradient(135deg,#292a2d,#111214);color:var(--mcc-bone);font-size:.72rem;letter-spacing:.25em;text-transform:uppercase}
.mcc-venue-feature__media--campus:before,.mcc-venue-feature__media--campus:after{content:"";position:absolute;border:1px solid rgba(198,161,91,.18);inset:12%;transform:rotate(4deg)}
.mcc-venue-feature__media--campus:after{inset:19%;transform:rotate(-5deg)}
.mcc-venue-monogram{font-family:var(--mcc-font-display);font-size:clamp(4rem,9vw,8rem);line-height:.8;color:var(--mcc-gold)}
.mcc-partner-marquee{overflow:hidden;border-block:1px solid var(--mcc-hairline-l);padding:18px 0;background:rgba(255,255,255,.25)}
.mcc-sec--dark .mcc-partner-marquee,.mcc-sec--dark2 .mcc-partner-marquee{border-color:var(--mcc-hairline-d);background:rgba(255,255,255,.015)}
.mcc-partner-track{display:flex;width:max-content;gap:18px;animation:mcc-partners 34s linear infinite;padding-inline:18px}
.mcc-partner-marquee:hover .mcc-partner-track{animation-play-state:paused}
.mcc-partner-mark{min-width:240px;height:92px;padding:14px 22px;display:flex;align-items:center;gap:16px;border:1px solid var(--mcc-hairline-l);background:var(--mcc-paper);color:var(--mcc-ink);font-size:.82rem;font-weight:600;letter-spacing:.04em}
.mcc-sec--dark .mcc-partner-mark,.mcc-sec--dark2 .mcc-partner-mark{border-color:var(--mcc-hairline-d);background:#151619;color:var(--mcc-bone)}
.mcc-partner-icon{width:52px;height:52px;flex:none;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-family:var(--mcc-font-display);font-size:.82rem;color:var(--mcc-gold-deep)}
.mcc-sec--dark .mcc-partner-icon,.mcc-sec--dark2 .mcc-partner-icon{color:var(--mcc-gold)}
.mcc-partner-icon--lg{width:72px;height:72px;font-size:1rem}
.mcc-partner-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--mcc-s-4)}
.mcc-partner-card{padding:28px 22px;min-height:210px;border:1px solid var(--mcc-hairline-l);display:grid;align-content:start;gap:14px;background:rgba(255,255,255,.28)}
.mcc-partner-card__kind{font-size:var(--mcc-fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--mcc-gold-deep)}
.mcc-partner-mark--placeholder{opacity:.72}.mcc-partner-statement{border:1px solid var(--mcc-hairline-l);padding:clamp(28px,5vw,54px);display:grid;gap:8px;text-align:center}.mcc-partner-statement .mcc-num{font-size:clamp(3rem,7vw,6rem);color:var(--mcc-gold-deep)}
@keyframes mcc-partners{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.mcc-partner-track{animation:none}}
@media(max-width:1100px){.mcc-partner-grid{grid-template-columns:repeat(3,1fr)}.mcc-guest-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767px){.mcc-venue-feature-grid{grid-template-columns:1fr}.mcc-partner-grid{grid-template-columns:1fr 1fr}.mcc-partner-mark{min-width:210px;height:82px}.mcc-guest-grid{grid-template-columns:repeat(2,1fr);gap:var(--mcc-s-4)}}
@media(max-width:430px){.mcc-partner-grid,.mcc-guest-grid{grid-template-columns:1fr}}


/* ========================================================================== 
   V5 — ARTWORK UFFICIALE + PAGINA SEDI
   ========================================================================== */
.mcc-campaign-showcase{padding:clamp(18px,3vw,38px) 0;background:var(--mcc-bg-dark2,#0b0c11);overflow:hidden}
.mcc-campaign-showcase__inner{width:min(1600px,calc(100% - 28px));margin-inline:auto}
.mcc-campaign-picture{display:block;overflow:hidden;border:1px solid var(--mcc-hairline-d);background:#080910;box-shadow:0 24px 80px rgba(0,0,0,.32)}
.mcc-campaign-picture img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#080910}
.mcc-campaign-caption{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:12px;color:var(--mcc-txt-on-dark-mute);font-size:var(--mcc-fs-micro);letter-spacing:.06em}
.mcc-campaign-caption strong{color:var(--mcc-gold)}

.mcc-venue-story{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,6vw,90px);align-items:center}
.mcc-venue-story--rev{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.mcc-venue-story--rev .mcc-venue-story__media{order:2}.mcc-venue-story--rev .mcc-venue-story__body{order:1}
.mcc-venue-story__media{position:relative;min-height:clamp(360px,52vw,650px);overflow:hidden;border:1px solid var(--mcc-hairline-d);background:linear-gradient(145deg,#161826,#090b12 62%,#20150b)}
.mcc-venue-story__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mcc-venue-story__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(6,7,11,.72));pointer-events:none}
.mcc-venue-story__number{position:absolute;right:18px;bottom:10px;z-index:2;font-family:var(--mcc-font-display);font-size:clamp(4rem,10vw,9rem);line-height:.8;color:rgba(255,255,255,.18)}
.mcc-venue-story__body{display:grid;gap:var(--mcc-s-5)}
.mcc-venue-story__lead{font-family:var(--mcc-font-display);font-size:clamp(1.65rem,2.5vw,2.65rem);line-height:1.08;margin:0}
.mcc-venue-story__role{padding:var(--mcc-s-5);border-left:2px solid var(--mcc-gold);background:rgba(194,154,76,.08)}
.mcc-venue-story__role strong{display:block;color:var(--mcc-gold);text-transform:uppercase;letter-spacing:.14em;font-size:var(--mcc-fs-micro);margin-bottom:8px}
.mcc-campus-visual{position:absolute;inset:0;display:grid;place-items:center;padding:36px;background:radial-gradient(circle at 62% 35%,rgba(202,158,72,.24),transparent 26%),linear-gradient(135deg,#13162a,#090a10 56%,#27160e)}
.mcc-campus-visual::before,.mcc-campus-visual::after{content:"";position:absolute;bottom:13%;width:28%;height:45%;border:2px solid rgba(215,179,101,.58);border-bottom:0;border-radius:50% 50% 0 0}
.mcc-campus-visual::before{left:19%}.mcc-campus-visual::after{right:19%}
.mcc-campus-visual__mark{position:relative;z-index:2;display:grid;place-items:center;width:min(42vw,220px);aspect-ratio:1;border:1px solid rgba(215,179,101,.58);border-radius:50%;font-family:var(--mcc-font-display);font-size:clamp(3rem,8vw,6.5rem);color:var(--mcc-gold)}
.mcc-campus-visual__label{position:absolute;left:28px;bottom:24px;z-index:2;color:#fff;text-transform:uppercase;letter-spacing:.16em;font-size:var(--mcc-fs-micro)}
.mcc-venue-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--mcc-hairline-d);border:1px solid var(--mcc-hairline-d)}
.mcc-venue-facts>div{background:var(--mcc-bg-dark);padding:var(--mcc-s-5)}
.mcc-venue-facts span{display:block;color:var(--mcc-txt-on-dark-mute);font-size:var(--mcc-fs-micro);text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}
.mcc-venue-facts strong{font-family:var(--mcc-font-display);font-weight:500;font-size:clamp(1.1rem,1.7vw,1.45rem)}
.mcc-event-callout{display:grid;grid-template-columns:auto 1fr auto;gap:var(--mcc-s-5);align-items:center;padding:var(--mcc-s-5);border:1px solid rgba(204,165,83,.38);background:linear-gradient(120deg,rgba(204,165,83,.12),rgba(255,255,255,.02))}
.mcc-event-callout__time{font-family:var(--mcc-font-display);font-size:clamp(2rem,4vw,3.5rem);color:var(--mcc-gold);line-height:1}
.mcc-event-callout__title{font-family:var(--mcc-font-display);font-size:clamp(1.25rem,2vw,1.8rem);margin:0}
.mcc-event-callout__meta{margin:5px 0 0;color:var(--mcc-txt-on-dark-mute);font-size:var(--mcc-fs-small)}

@media(max-width:800px){
  .mcc-campaign-showcase__inner{width:min(100% - 22px,720px)}
  .mcc-campaign-caption{display:block;line-height:1.55}
  .mcc-venue-story,.mcc-venue-story--rev{grid-template-columns:1fr}
  .mcc-venue-story--rev .mcc-venue-story__media,.mcc-venue-story--rev .mcc-venue-story__body{order:initial}
  .mcc-venue-story__media{min-height:430px}
  .mcc-venue-facts{grid-template-columns:1fr}
  .mcc-event-callout{grid-template-columns:1fr;gap:10px}
}

/* ========================================================================== */
/* V6 — SEDI DEL FESTIVAL: pagina editoriale dedicata                        */
/* ========================================================================== */
.mcc-venue-intro{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,6vw,88px);align-items:start}
.mcc-venue-jump{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:var(--mcc-s-7);background:var(--mcc-hairline-d);border:1px solid var(--mcc-hairline-d)}
.mcc-venue-jump>a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:3px 18px;align-items:start;padding:clamp(20px,3vw,34px);background:var(--mcc-bg-dark2);text-decoration:none;color:var(--mcc-bone);transition:background .25s ease,transform .25s ease}
.mcc-venue-jump>a:hover{background:rgba(198,161,91,.08)}
.mcc-venue-jump span{grid-row:1/3;font-family:var(--mcc-font-display);font-size:2.2rem;color:var(--mcc-gold);line-height:1}
.mcc-venue-jump strong{font-family:var(--mcc-font-display);font-size:clamp(1.25rem,2vw,1.8rem);font-weight:500}
.mcc-venue-jump small{color:var(--mcc-txt-on-dark-mute);font-size:var(--mcc-fs-micro);letter-spacing:.08em;text-transform:uppercase}
.mcc-venue-editorial{border-top:1px solid var(--mcc-hairline-l);border-bottom:1px solid var(--mcc-hairline-l)}
.mcc-venue-bridge{max-width:1050px;margin-inline:auto;text-align:center}
.mcc-venue-bridge__lead{font-family:var(--mcc-font-display);font-size:clamp(1.55rem,3vw,2.7rem);line-height:1.12;max-width:32ch;margin:var(--mcc-s-5) auto 0;color:var(--mcc-bone)}
.mcc-venue-duality{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:var(--mcc-s-7);text-align:left;background:var(--mcc-hairline-d);border:1px solid var(--mcc-hairline-d)}
.mcc-venue-duality>div{padding:clamp(22px,4vw,38px);background:var(--mcc-bg-dark)}
.mcc-venue-duality span{display:block;color:var(--mcc-gold);font-size:var(--mcc-fs-micro);letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.mcc-venue-duality strong{display:block;font-family:var(--mcc-font-display);font-size:clamp(1.25rem,2vw,1.8rem);font-weight:500;margin-bottom:8px;color:var(--mcc-bone)}
.mcc-venue-duality p{margin:0;color:var(--mcc-txt-on-dark-mute);font-size:var(--mcc-fs-small);line-height:1.7}
.mcc-phero--venues .mcc-phero__overlay{background:linear-gradient(90deg,rgba(6,7,10,.82) 0%,rgba(6,7,10,.48) 52%,rgba(6,7,10,.12) 100%),linear-gradient(180deg,rgba(6,7,10,.2),rgba(6,7,10,.5))}
@media(max-width:900px){.mcc-venue-intro{grid-template-columns:1fr}.mcc-venue-jump,.mcc-venue-duality{grid-template-columns:1fr}}
@media(max-width:767px){.mcc-phero--venues .mcc-phero__media img{object-position:60% center!important}.mcc-venue-story__media{min-height:360px}.mcc-venue-jump>a{padding:20px}}


/* ========================================================================== */
/* V7 — MOBILE HARDENING / SMARTPHONE                                         */
/* Test target: 320, 360, 375, 390, 412 e 430 CSS px.                        */
/* ========================================================================== */
html{max-width:100%;}
body.mcc-body{max-width:100%;overflow-x:hidden;}
@supports (overflow:clip){html,body.mcc-body{overflow-x:clip;}}

/* Evita che contenuti lunghi forzino grid/flex oltre il viewport. */
.mcc-grid>*,.mcc-sechead__row>*,.mcc-header__inner>*,.mcc-footer__main>*,
.mcc-footer__bottom>*,.mcc-tl__body,.mcc-event-callout>*,.mcc-venue-intro>*,
.mcc-venue-story>*,.mcc-venue-duality>*,.mcc-nl>*{min-width:0;}
.mcc-prose,.mcc-contact,.mcc-listing,.mcc-event-callout,.mcc-venue-story__body{overflow-wrap:anywhere;}

/* Le barre orizzontali sono intenzionalmente scrollabili, senza trascinare la pagina. */
.mcc-daynav__scroller,.mcc-anchornav__scroller{
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  scroll-padding-inline:var(--mcc-gutter);
}
.mcc-partner-marquee{max-width:100%;overflow:hidden;contain:paint;}
.mcc-partner-track{will-change:transform;}

/* Target touch: minimo pratico ~44px per i controlli principali. */
.mcc-btn--sm{min-height:44px;}
.mcc-chip{min-height:44px;}
.mcc-select{min-height:44px;}
.mcc-arrow{min-height:44px;}
.mcc-tl__where{min-height:44px;padding-block:8px;line-height:1.45;max-width:100%;}

@media (max-width:767px){
  :root{
    --mcc-gutter:clamp(18px,5vw,24px);
    --mcc-sec-y:clamp(52px,14vw,72px);
    --mcc-fs-display:clamp(2.75rem,13.5vw,4.6rem);
    --mcc-fs-h1:clamp(2.1rem,10.5vw,3.65rem);
    --mcc-fs-h2:clamp(1.75rem,8.2vw,2.75rem);
  }

  .mcc-sec--tight{padding-block:clamp(40px,10vw,56px);}
  .mcc-sechead{padding-bottom:var(--mcc-s-6);margin-bottom:var(--mcc-s-6);}
  .mcc-sechead__row{align-items:flex-start;}

  .mcc-header__inner{gap:12px;}
  .mcc-logo{gap:8px;min-width:0;}
  .mcc-logo__txt{min-width:0;}
  .mcc-logo__t1{font-size:.94rem;white-space:nowrap;}
  .mcc-logo__t2{font-size:.5rem;letter-spacing:.22em;white-space:nowrap;}
  .mcc-burger{width:44px;height:44px;}
  /* Il pulsante resta sopra al pannello: su touch permette sempre di chiudere il menu. */
  .mcc-burger[aria-expanded="true"]{
    position:fixed;z-index:1000;
    top:calc(8px + env(safe-area-inset-top));right:var(--mcc-gutter);
    background:var(--mcc-ink);
  }
  .mcc-mobnav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}

  .mcc-hero{min-height:92vh;min-height:92svh;}
  .mcc-hero__inner{
    padding:calc(var(--mcc-header-h-sm) + var(--mcc-s-6)) var(--mcc-gutter) var(--mcc-s-6);
    gap:var(--mcc-s-4);
  }
  .mcc-hero__claim{line-height:1.52;}
  .mcc-dateblock{gap:10px 16px;}
  .mcc-dateblock__num{font-size:clamp(2.2rem,12vw,3.2rem);}
  .mcc-hero__barin{align-items:flex-start;}

  .mcc-phero{min-height:clamp(390px,68svh,560px);}
  .mcc-phero__inner{
    padding:calc(var(--mcc-header-h-sm) + var(--mcc-s-6)) var(--mcc-gutter) var(--mcc-s-6);
    gap:var(--mcc-s-3);
  }
  .mcc-phero__sub{line-height:1.55;}

  .mcc-btns{gap:10px;}
  .mcc-filters__row{align-items:stretch;}
  .mcc-filters__lab{width:100%;margin-right:0;}
  .mcc-daynav__scroller{gap:0;}
  .mcc-day{min-width:76px;padding:12px 14px;}
  .mcc-dayblock{padding-block:var(--mcc-s-6);}
  .mcc-dayblock__head{margin-bottom:var(--mcc-s-5);}
  .mcc-tl__item{padding:20px 0;gap:10px;}
  .mcc-tl__aside{flex-wrap:wrap;}

  .mcc-partner-mark{min-width:190px;min-height:76px;height:auto;padding:12px 16px;gap:12px;}
  .mcc-partner-icon{width:46px;height:46px;}
  .mcc-partner-track{gap:12px;padding-inline:12px;}

  .mcc-guest__body{padding:16px 16px 20px;}
  .mcc-venue-story__media{min-height:clamp(300px,92vw,380px);}
  .mcc-venue-story__lead{font-size:clamp(1.45rem,7vw,1.8rem);}
  .mcc-venue-story__role{padding:20px;}
  .mcc-venue-facts>div{padding:18px;}
  .mcc-event-callout{padding:20px;}
  .mcc-venue-jump>a{min-height:92px;}

  .mcc-footer__main{gap:var(--mcc-s-6);}
  .mcc-footer__legal{gap:4px 18px;}
  .mcc-footer__legal a,.mcc-fcol__list a{display:inline-flex;align-items:center;min-height:44px;}
}

@media (max-width:480px){
  /* CTA impilate: nessun pulsante compresso o mezzo fuori schermo. */
  .mcc-btns{display:grid;grid-template-columns:minmax(0,1fr);width:100%;}
  .mcc-btns>.mcc-btn{width:100%;}
  .mcc-event-callout .mcc-btn{width:100%;}
  .mcc-campaign-caption{display:grid;gap:4px;}
}

@media (max-width:380px){
  .mcc-logo__t1{font-size:.88rem;}
  .mcc-logo__t2{font-size:.47rem;letter-spacing:.18em;}
  .mcc-hero__title{max-width:12ch;}
  .mcc-facts li{display:grid;grid-template-columns:1fr;gap:6px;}
  .mcc-facts__v{text-align:left;}
  .mcc-venue-jump span{font-size:1.8rem;}
}

/* Telefoni bassi (es. 320x568): menu compatto, sempre chiudibile e scrollabile. */
@media (max-width:1199px) and (max-height:700px){
  .mcc-mobnav__body{align-self:start;padding-top:14px;padding-bottom:14px;}
  .mcc-mobnav__link{padding:10px 0;font-size:clamp(1.28rem,6vw,1.6rem);}
  .mcc-mobnav__foot{padding-top:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));}
}

/* Mobile menu: keep an always-visible touch close control above fullscreen panel. */
@media (max-width:767px){
  body.mcc-noscroll .mcc-header{
    z-index:1001; background:transparent; border-bottom-color:transparent;
    box-shadow:none; pointer-events:none;
  }
  body.mcc-noscroll .mcc-header .mcc-logo,
  body.mcc-noscroll .mcc-header .mcc-header__cta{visibility:hidden;}
  body.mcc-noscroll .mcc-header .mcc-burger{
    visibility:visible; pointer-events:auto; position:fixed; z-index:1002;
    top:calc(8px + env(safe-area-inset-top)); right:var(--mcc-gutter);
    background:var(--mcc-ink);
  }
}

/* Smartphone touch/iOS finishing pass */
@media (max-width:767px){
  .mcc-input,.mcc-select{font-size:16px;}
  .mcc-infobox > p .mcc-link,
  .mcc-venue > p .mcc-link{
    display:inline-flex;align-items:center;min-height:44px;padding-block:8px;
  }
  a,button,input,select,textarea,summary{touch-action:manipulation;}
}

@media (max-width:767px){
  .mcc-listing__m .mcc-link{display:inline-flex;align-items:center;min-height:44px;padding-inline:4px;}
}

/* Landscape phone hardening: intrinsic select widths must never expand the grid. */
@media (max-width:767px){
  .mcc-filters{grid-template-columns:minmax(0,1fr);min-width:0;}
  .mcc-filters__row{width:100%;min-width:0;}
  .mcc-filters__row > .mcc-select{flex:1 1 100%;width:100%;min-width:0;}
}
@media (max-width:767px) and (max-height:450px) and (orientation:landscape){
  .mcc-mobnav__body{align-self:start;padding-top:6px;padding-bottom:6px;}
  .mcc-mobnav__list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;}
  .mcc-mobnav__link{font-size:1.12rem;padding:6px 0;}
  .mcc-mobnav__foot{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));}
  .mcc-mobnav__foot .mcc-btn{min-height:44px;}
}
