/* ==========================================================================
   YeaWea Musical & Dance Academy — foglio di stile unico
   Mobile-first. Un solo breakpoint strutturale (960px) per header/nav.
   ========================================================================== */

/* ---------- Font (ospitati in locale) ---------- */
@font-face {
  font-family: 'Bricolage Grotesque';
  src: url('../fonts/BricolageGrotesque-latin.woff2') format('woff2');
  font-weight: 500 800; font-display: swap;
}
@font-face {
  font-family: 'Instrument Sans';
  src: url('../fonts/InstrumentSans-latin.woff2') format('woff2');
  font-weight: 400 700; font-display: swap;
}
@font-face {
  font-family: 'Dancing Script';
  src: url('../fonts/DancingScript-latin.woff2') format('woff2');
  font-weight: 600; font-display: swap;
}

/* ---------- Design tokens ---------- */
:root {
  --yw-gold: #F2A516;
  --yw-gold-600: #E08A00;
  --yw-gold-700: #C76A00;
  --yw-gold-800: #A04D00;
  --yw-red: #D9232D;
  --yw-red-700: #A3151E;
  --yw-stage: #1C1411;
  --yw-ink: #1F1714;
  --yw-ink-2: #4F433C;
  --yw-muted: #6B5D55;
  --yw-cream: #FBF7F2;
  --yw-paper: #F3EADF;
  --yw-line: #E4D8CA;
  --yw-line-2: #CDBBA8;
  --yw-field: #8E7F74;
  --yw-on-stage: #E9DED2;
  --yw-on-stage-2: #CBBBAE;
  --yw-wa: #128C4A;
  --yw-error-bg: #FDEEEE;
  --yw-white: #FFFFFF;

  --font-display: 'Bricolage Grotesque', system-ui, sans-serif;
  --font-body: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-script: 'Dancing Script', cursive;
  --font-mono: ui-monospace, 'SF Mono', Consolas, monospace;

  --space-page: clamp(20px, 5vw, 64px);
  --space-section: clamp(56px, 8vw, 112px);
  --content-max: 1152px;
  --r-field: 12px; --r-card: 20px; --r-panel: 28px; --r-pill: 999px;
  --r-arch: 999px 999px 20px 20px;
  --shadow-photo: 0 30px 60px -20px rgba(0,0,0,.7);
  --shadow-fab: 0 10px 24px -6px rgba(0,0,0,.45);
  --shadow-cta: 0 8px 24px -10px rgba(224,138,0,.55);
  --righe: repeating-linear-gradient(135deg, #EDE2D4 0 10px, #F6EEE4 10px 20px);
  --righe-scure: repeating-linear-gradient(135deg, #2A201C 0 12px, #241B17 12px 24px);
  --lampadine: radial-gradient(circle, #F2A516 3px, transparent 3.6px) 0 50% / 20px 14px repeat-x;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
body {
  margin: 0; background: var(--yw-cream); color: var(--yw-ink);
  font: 400 16px/1.5 var(--font-body);
  -webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; display: block; }
img { height: auto; }
a { color: var(--yw-gold-800); }
a:hover { color: var(--yw-gold-700); }
h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--yw-gold); outline-offset: 2px; }
[hidden] { display: none !important; }
.ico { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }

.skip {
  position: absolute; left: 12px; top: -60px; z-index: 100; padding: 12px 18px;
  background: var(--yw-ink); color: var(--yw-cream); border-radius: var(--r-pill); font-weight: 700;
}
.skip:focus { top: 12px; color: var(--yw-cream); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
html { scroll-behavior: smooth; }

/* ---------- Layout ---------- */
.sezione { padding: var(--space-section) var(--space-page); }
.sezione--carta { background: var(--yw-paper); }
.sezione--stretta { padding-block: clamp(48px, 6vw, 80px); }
.wrap { max-width: var(--content-max); margin: 0 auto; }
.wrap--1280 { max-width: 1280px; margin: 0 auto; }
.pila { display: flex; flex-direction: column; gap: 12px; }
.pila--32 { gap: 32px; }
.pila--24 { gap: 24px; }
.testata { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
.griglia-auto { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--min, 290px)), 1fr)); }
.griglia-fill { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--min, 300px)), 1fr)); }
.riga-btn { display: flex; flex-wrap: wrap; gap: 12px; }
.riga-btn > .btn { flex: 1 1 auto; }
.mt-auto { margin-top: auto; }

/* ---------- Tipografia ---------- */
.kicker {
  font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--yw-gold-800);
}
.kicker--rosso { color: var(--yw-red-700); }
.kicker--oro { color: var(--yw-gold); }
.kicker--rosa { color: #FF8A8F; }
.kicker--crema { color: #FFE2A8; }
.h1 {
  font: 800 clamp(44px, 7vw, 88px)/.95 var(--font-display); letter-spacing: -.035em; text-wrap: balance;
}
.h1--hero { font-size: clamp(46px, 7.6vw, 96px); }
.h2 { font: 800 clamp(34px, 5vw, 58px)/1 var(--font-display); letter-spacing: -.03em; text-wrap: balance; }
.h2--medio { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -.02em; }
.h3 { font: 800 26px/1.05 var(--font-display); letter-spacing: -.015em; }
.accento { color: var(--yw-gold-700); }
.lead { font-size: clamp(17px, 1.6vw, 20px); line-height: 1.55; color: var(--yw-ink-2); max-width: 52ch; text-wrap: pretty; }
.lead--18 { font-size: 18px; }
.testo-muted { color: var(--yw-muted); font-weight: 400; }
.motto { font: 600 32px/1 var(--font-script); color: var(--yw-gold-700); }
.motto--scuro { color: var(--yw-gold); font-size: 26px; }
.prosa p { font-size: 18px; line-height: 1.65; color: var(--yw-ink-2); max-width: 68ch; }
.prosa p:first-child { color: var(--yw-ink); }
.prosa p + p { margin-top: 16px; }
.da-completare {
  font-family: var(--font-mono); font-size: .85em; color: var(--yw-muted);
  background: rgba(242,165,22,.12); border-radius: 4px; padding: 0 3px;
}

/* ---------- Pulsanti ---------- */
.btn {
  min-height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 0 26px; border-radius: var(--r-pill); border: 2px solid transparent;
  font: 700 17px/1.2 var(--font-body); text-decoration: none; text-align: center; cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn--primary { background: var(--yw-gold); color: var(--yw-stage); }
.btn--primary:hover { background: var(--yw-gold-600); color: var(--yw-stage); }
.btn--secondary { border-color: var(--yw-ink); color: var(--yw-ink); background: transparent; }
.btn--secondary:hover { background: var(--yw-ink); color: var(--yw-cream); }
.btn--red { background: var(--yw-red); color: #fff; }
.btn--red:hover { background: var(--yw-red-700); color: #fff; }
.btn--light { border-color: var(--yw-cream); color: var(--yw-cream); }
.btn--light:hover { background: var(--yw-cream); color: var(--yw-stage); }
.btn--white { background: #fff; color: var(--yw-gold-800); }
.btn--white:hover { background: var(--yw-cream); color: var(--yw-gold-800); }
.btn--white-red { background: #fff; color: var(--yw-red-700); }
.btn--white-red:hover { background: #FFE9EA; color: var(--yw-red-700); }
.btn--outline-white { border-color: #fff; color: #fff; }
.btn--outline-white:hover { background: #fff; color: var(--yw-red-700); }
.btn--ink { background: var(--yw-stage); color: var(--yw-cream); }
.btn--ink:hover { background: #000; color: var(--yw-gold); }
.btn--outline-ink { border-color: var(--yw-stage); color: var(--yw-stage); }
.btn--outline-ink:hover { background: var(--yw-stage); color: var(--yw-gold); }
.btn--card { min-height: 46px; font-size: 15px; padding: 0 18px; margin-top: auto; }
.btn--pieno { width: 100%; }
.btn--ombra { box-shadow: var(--shadow-cta); }
.link-freccia {
  min-height: 44px; display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 16px; color: var(--yw-gold-800);
}
.link-btn { background: none; border: 0; padding: 6px 0; color: inherit; text-decoration: underline; cursor: pointer; font-size: inherit; }
.chip {
  min-height: 44px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: var(--r-pill);
  background: var(--yw-paper); color: var(--yw-ink); font-weight: 600; font-size: 14px; text-decoration: none;
}
.chip--piccolo { min-height: 0; font-size: 13px; padding: 5px 12px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- Motivi ---------- */
.lampadine { height: 14px; background: var(--lampadine); }
.segnaposto {
  background: var(--righe); display: flex; align-items: center; justify-content: center; padding: 12px;
  font: 500 11px/1.3 var(--font-mono); color: var(--yw-muted); text-transform: uppercase; letter-spacing: .06em; text-align: center;
}
.segnaposto--pieno { position: absolute; inset: 0; }
.arco { position: relative; aspect-ratio: 4 / 5; border-radius: 999px 999px 18px 18px; overflow: hidden; background: var(--yw-paper); }
.arco img { width: 100%; height: 100%; object-fit: cover; }
.cornice { position: relative; padding: 12px; }
.cornice::before {
  content: ""; position: absolute; inset: 0; border: 5px dotted var(--yw-gold);
  border-radius: 999px 999px 28px 28px; pointer-events: none;
}
.cornice--rett::before { border-radius: 32px; }

/* ---------- Topbar + header ---------- */
.topbar { display: none; background: var(--yw-stage); color: var(--yw-on-stage); font-size: 13px; }
.topbar__in { max-width: 1280px; margin: 0 auto; padding: 0 48px; height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar__dove { display: flex; align-items: center; gap: 8px; }
.topbar__dove .ico { color: var(--yw-gold); }
.topbar__allievi { display: flex; align-items: center; gap: 18px; }
.topbar__label { color: var(--yw-gold); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: 11px; }
.topbar a { color: var(--yw-on-stage); text-decoration: none; }
.topbar a:hover { color: #fff; text-decoration: underline; }

.header { position: sticky; top: 0; z-index: 40; background: var(--yw-cream); border-bottom: 1px solid var(--yw-line); }
.header__in { height: 64px; padding: 0 10px 0 16px; display: flex; align-items: center; gap: 6px; max-width: 1280px; margin: 0 auto; }
.header__logo { flex: none; display: block; }
.header__logo img { height: 34px; width: auto; }
.nav, .btn--header { display: none; }
.home-mini {
  margin-left: auto; flex: none; min-height: 44px; padding: 0 10px; border-radius: 12px;
  display: inline-flex; align-items: center; gap: 5px; color: var(--yw-ink); text-decoration: none; font-weight: 700; font-size: 14px;
}
.home-mini[aria-current="page"] { color: var(--yw-gold-800); }
@media (max-width: 389px) { .home-mini span { display: none; } }
.btn--mini { min-height: 44px; padding: 0 14px; font-size: 14px; white-space: nowrap; }
.menu-btn {
  width: 44px; height: 44px; border: 0; background: transparent; border-radius: 12px; padding: 0;
  display: grid; place-items: center; cursor: pointer; color: var(--yw-ink);
}

@media (min-width: 960px) {
  .topbar { display: block; }
  .header__in { height: 84px; padding: 0 48px; gap: 24px; }
  .header__logo img { height: 44px; }
  .nav { display: flex; gap: 2px; margin-left: auto; }
  .nav__link {
    min-height: 44px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: var(--r-pill);
    font-weight: 600; font-size: 15px; color: var(--yw-ink); text-decoration: none; white-space: nowrap;
    transition: background-color .15s ease;
  }
  .nav__link:hover { background: var(--yw-paper); color: var(--yw-ink); }
  .nav__link[aria-current="page"] {
    font-weight: 700; color: var(--yw-gold-800); text-decoration: underline;
    text-decoration-thickness: 2px; text-underline-offset: 8px; text-decoration-color: var(--yw-gold-700);
  }
  .nav__link[aria-current="page"]:hover { background: transparent; }
  .btn--header { display: inline-flex; flex: none; min-height: 48px; padding: 0 20px; font-size: 15px; }
  .nav__link--home { gap: 6px; }
  .btn--mini, .menu-btn, .home-mini { display: none; }
}
@media (min-width: 960px) and (max-width: 1180px) {
  .nav__link { padding: 0 8px; font-size: 14px; }
  .header__in { gap: 14px; padding: 0 28px; }
}
@media (min-width: 960px) and (max-width: 1100px) {
  .nav__link { padding: 0 6px; font-size: 13.5px; }
  .header__in { gap: 10px; padding: 0 20px; }
  .header__logo img { height: 38px; }
  .btn--header { padding: 0 16px; font-size: 14px; }
  .btn--header .ico { display: none; }
}

/* Menu mobile a tutto schermo */
.menu-mobile {
  position: fixed; inset: 0; z-index: 60; overflow: auto; display: flex; flex-direction: column;
  background: var(--yw-cream) radial-gradient(ellipse 80% 40% at 85% 0%, rgba(242,165,22,.22), transparent 70%);
}
.menu-mobile__barra { height: 64px; padding: 0 10px 0 16px; display: flex; align-items: center; justify-content: space-between; flex: none; }
.menu-mobile__logo { height: 34px; width: auto; }
.menu-mobile__chiudi {
  width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--yw-ink); color: var(--yw-cream);
  display: grid; place-items: center; cursor: pointer; padding: 0;
}
.menu-mobile__nav { padding: 12px 20px 0; display: flex; flex-direction: column; }
.menu-mobile__nav a {
  display: flex; align-items: baseline; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--yw-line);
  color: var(--yw-ink); text-decoration: none;
}
.menu-mobile__num { width: 20px; font: 500 12px var(--font-mono); color: var(--yw-muted); }
.menu-mobile__label { font: 800 30px/1.05 var(--font-display); letter-spacing: -.02em; }
.menu-mobile__dot { margin-left: auto; align-self: center; width: 10px; height: 10px; border-radius: 50%; background: var(--yw-gold-700); }
.menu-mobile__fondo { padding: 24px 20px 28px; display: flex; flex-direction: column; gap: 12px; margin-top: auto; }
.menu-mobile__fondo .btn--secondary { min-height: 52px; font-size: 16px; }
.menu-mobile__allievi { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
body.menu-aperto { overflow: hidden; }
@media (min-width: 960px) { .menu-mobile { display: none !important; } }

/* ---------- Footer ---------- */
.footer { background: var(--yw-stage); color: var(--yw-on-stage); }
.footer__in { max-width: var(--content-max); margin: 0 auto; padding: 56px var(--space-page) calc(28px + env(safe-area-inset-bottom)); }
.footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 36px 28px; }
.footer__brand { display: flex; flex-direction: column; gap: 14px; }
.footer__logo { align-self: flex-start; background: var(--yw-cream); border-radius: 16px; padding: 12px 16px; }
.footer__logo img { height: 40px; width: auto; }
.footer__indirizzo { font-size: 15px; line-height: 1.55; color: var(--yw-on-stage-2); }
.footer__titolo { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--yw-gold); }
.footer__grid a { display: block; padding: 11px 0; color: var(--yw-on-stage); text-decoration: none; font-size: 15px; }
.footer__grid a:hover { color: #fff; text-decoration: underline; }
.footer__legale {
  margin-top: 44px; padding-top: 20px; border-top: 1px solid rgba(233,222,210,.16);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; font-size: 13px; line-height: 1.5; color: #BFAFA2;
}
.footer__legale nav { display: flex; flex-wrap: wrap; gap: 4px 18px; align-items: center; }
.footer__legale a, .footer__legale .link-btn { color: #BFAFA2; padding: 6px 0; }

/* ---------- WhatsApp flottante ---------- */
.wa-fab {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 50;
  width: 60px; height: 60px; border-radius: 50%; background: var(--yw-wa); color: #fff;
  display: grid; place-items: center; box-shadow: var(--shadow-fab);
}
.wa-fab:hover { color: #fff; background: #0E7A40; }

/* ---------- HOME ---------- */
.hero { padding: clamp(28px, 5vw, 72px) var(--space-page) clamp(48px, 7vw, 96px); }
.hero__in { max-width: var(--content-max); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: clamp(36px, 5vw, 72px); }
.hero__testo { flex: 1 1 440px; display: flex; flex-direction: column; gap: 20px; }
.hero__testo .lead { max-width: 36ch; }
.hero__nota { font-size: 14px; color: var(--yw-muted); }
.hero__foto { flex: 1 1 340px; }
.hero__foto .arco { background: var(--yw-stage); border-radius: var(--r-arch); }
/* Variante con foto orizzontale (es. foto di gruppo dello spettacolo di fine anno) */
.hero--orizzontale .hero__testo { flex: 1 1 380px; }
.hero--orizzontale .hero__foto { flex: 1.35 1 480px; }
.hero--orizzontale .hero__foto .arco { aspect-ratio: 3 / 2; border-radius: 22px; }
.hero--orizzontale .hero__foto.cornice::before { border-radius: 32px; }
.hero--orizzontale .h1--hero { font-size: clamp(46px, 6.4vw, 84px); }
/* Home: foto principale (una a caso a ogni visita) con didascalia */
.hero__figura { flex: 1 1 340px; min-width: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.hero--orizzontale .hero__figura { flex: 1.35 1 480px; }
.hero__figura .hero__foto { flex: none; }
.hero__didascalia { padding: 0 14px; font-size: 14px; line-height: 1.45; color: var(--yw-ink-2); text-wrap: pretty; }
.hero__credito { color: var(--yw-muted); font-size: 12.5px; }.hero__video {
  position: absolute; left: 16px; bottom: 16px; min-height: 44px; display: inline-flex; align-items: center; gap: 8px;
  padding: 0 16px 0 8px; border: 0; border-radius: var(--r-pill); background: var(--yw-cream); color: var(--yw-ink);
  font: 600 14px var(--font-body); cursor: pointer;
}
.hero__video span.tondo { width: 30px; height: 30px; border-radius: 50%; background: var(--yw-gold); display: grid; place-items: center; color: var(--yw-stage); }

.card-fascia { background: #fff; border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; }
.card-fascia > img, .card-fascia > .segnaposto { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; }
.card-fascia__corpo { padding: 22px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.card-fascia__corpo .h3 { font-size: 30px; }
.card-fascia__corpo p { font-size: 15px; color: var(--yw-muted); }
.card-fascia__corpo .link-freccia { margin-top: auto; }

.palco {
  background: var(--yw-stage) radial-gradient(ellipse 60% 70% at 30% 0%, rgba(242,165,22,.20), transparent 70%);
  background-image: radial-gradient(ellipse 60% 70% at 30% 0%, rgba(242,165,22,.20), transparent 70%), radial-gradient(ellipse 50% 60% at 85% 100%, rgba(217,35,45,.22), transparent 70%);
  color: var(--yw-cream); padding: 0 var(--space-page) clamp(56px, 8vw, 104px);
}
.palco > .lampadine { margin: 0 calc(-1 * var(--space-page)) clamp(48px, 7vw, 88px); }
.palco__in { max-width: var(--content-max); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: clamp(32px, 5vw, 72px); }
.locandina { width: 100%; border-radius: 14px; box-shadow: var(--shadow-photo); object-fit: cover; }
.palco__locandina { flex: 0 1 340px; min-width: 0; max-width: 340px; }
.palco__testo { flex: 1 1 380px; display: flex; flex-direction: column; gap: 18px; }
.palco__testo .h2 { font-size: clamp(36px, 5.4vw, 64px); line-height: .98; }
.palco__sotto { font-size: 17px; color: var(--yw-on-stage-2); }
.palco dl { display: flex; flex-direction: column; gap: 10px; padding: 18px 0; border-block: 1px solid rgba(251,247,242,.16); }
.palco dl > div { display: flex; gap: 12px; align-items: baseline; }
.palco dt { width: 90px; flex: none; font-size: 13px; color: var(--yw-on-stage-2); }
.palco dd { font-weight: 700; font-size: 17px; }
.palco__nota { font-size: 13px; color: var(--yw-on-stage-2); }

.perche { display: flex; flex-direction: column; gap: 10px; padding-top: 18px; border-top: 2px solid var(--yw-ink); }
.perche__num { font: 800 44px/1 var(--font-display); color: var(--yw-gold-700); }
.perche h3 { font-size: 20px; font-weight: 700; }
.perche p { font-size: 16px; line-height: 1.55; color: var(--yw-muted); }

.striscia {
  display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 0 var(--space-page) 8px; scroll-padding: 0 var(--space-page);
}
.sala { margin: 0; flex: 1 0 min(82%, 320px); scroll-snap-align: start; display: flex; flex-direction: column; gap: 12px; }
.sala img, .sala .segnaposto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; }
.sala strong { font: 800 22px var(--font-display); }
.sala span { font-size: 15px; color: var(--yw-muted); }

.citazione { margin: 0; background: #fff; border-radius: 24px; padding: 26px; display: flex; flex-direction: column; gap: 16px; }
.citazione__virg { font: 800 64px/.6 var(--font-display); color: var(--yw-gold-700); height: 28px; }
.citazione blockquote { font-size: 18px; line-height: 1.5; }
.citazione figcaption { margin-top: auto; font-size: 14px; color: var(--yw-muted); }
.citazione figcaption strong { color: var(--yw-ink); }

.partner { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.partner li { flex: 1 1 150px; }
.partner a, .partner span.partner__box {
  min-height: 88px; border: 1px solid var(--yw-line); border-radius: 14px; background: #fff;
  display: flex; align-items: center; justify-content: center; padding: 12px 16px; text-decoration: none;
}
.partner img { max-height: 56px; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1) sepia(.25); opacity: .8; transition: filter .15s, opacity .15s; }
.partner a:hover img { filter: none; opacity: 1; }
.partner a:hover { border-color: var(--yw-gold-700); }

.banda-oro { background: var(--yw-gold); color: var(--yw-stage); padding: clamp(56px, 7vw, 96px) var(--space-page); }
.banda-oro__in { max-width: var(--content-max); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.banda-oro__testo { flex: 1 1 420px; display: flex; flex-direction: column; gap: 12px; }
.banda-oro__testo .h2 { font-size: clamp(36px, 5.4vw, 64px); line-height: .98; }
.banda-oro__testo p { font-size: 18px; line-height: 1.5; max-width: 44ch; }
.banda-oro .riga-btn { flex: 0 1 auto; width: 100%; max-width: 440px; }
.banda-oro .riga-btn .btn { flex: 1 1 180px; padding: 0 22px; }

/* ---------- CORSI ---------- */
.testata-pagina { padding: clamp(32px, 5vw, 72px) var(--space-page) 24px; }
.testata-pagina .wrap { display: flex; flex-direction: column; gap: 14px; }
.testata-pagina .wrap.testata { flex-direction: row; flex-wrap: wrap; align-items: flex-end; gap: 16px 40px; }
.testata-pagina .wrap.testata > * { flex: 1 1 320px; }
.filtri {
  position: sticky; top: 64px; z-index: 30; background: var(--yw-cream); border-bottom: 1px solid var(--yw-line);
  padding: 12px var(--space-page) 14px;
}
@media (min-width: 960px) { .filtri { top: 84px; } }
.filtri .wrap { display: flex; flex-direction: column; gap: 12px; }
.segmentato { display: flex; gap: 4px; padding: 4px; background: var(--yw-paper); border-radius: var(--r-pill); align-self: flex-start; max-width: 100%; overflow-x: auto; }
.segmentato a, .segmentato button {
  flex: none; min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--r-pill); background: transparent;
  display: inline-flex; align-items: center; color: var(--yw-ink); font: 600 15px var(--font-body); text-decoration: none; cursor: pointer; white-space: nowrap;
}
.segmentato a:hover { background: #E9DDCF; }
.segmentato [aria-pressed="true"], .segmentato [aria-current="true"] { background: var(--yw-ink); color: var(--yw-cream); font-weight: 700; }
.chips-scroll { display: flex; gap: 8px; overflow-x: auto; margin: 0 calc(-1 * var(--space-page)); padding: 2px var(--space-page); }
.chip-filtro {
  flex: none; min-height: 44px; padding: 0 16px; border: 1.5px solid var(--yw-line-2); border-radius: var(--r-pill);
  background: #fff; color: var(--yw-ink); font: 600 15px var(--font-body); display: inline-flex; align-items: center; gap: 6px;
  text-decoration: none; cursor: pointer;
}
.chip-filtro:hover { border-color: var(--yw-ink); color: var(--yw-ink); }
.chip-filtro .ico { display: none; }
.chip-filtro[aria-pressed="true"], .chip-filtro[aria-current="true"] { background: var(--yw-gold); border: 2px solid var(--yw-gold); color: var(--yw-stage); font-weight: 700; }
.chip-filtro[aria-pressed="true"] .ico, .chip-filtro[aria-current="true"] .ico { display: block; }
.conteggio { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; font-size: 15px; color: var(--yw-ink-2); }
.conteggio strong { color: var(--yw-ink); }
.conteggio .link-btn { color: var(--yw-gold-800); font-weight: 700; text-underline-offset: 4px; min-height: 44px; }
.avviso-esempio {
  font: 500 12px/1.5 var(--font-mono); color: var(--yw-muted); background: rgba(242,165,22,.12);
  border-left: 3px solid var(--yw-gold); padding: 8px 12px; border-radius: 6px;
}

.card-corso {
  height: 100%; background: #fff; border: 1px solid var(--yw-line); border-radius: var(--r-card); padding: 22px;
  display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 220px;
}
.card-corso:target { border-color: var(--yw-gold-700); box-shadow: 0 0 0 3px rgba(242,165,22,.35); }
.card-corso__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.card-corso__top .kicker { letter-spacing: .1em; }
.card-corso__nome { font: 800 26px/1.05 var(--font-display); letter-spacing: -.015em; text-wrap: balance; }
.card-corso__materie { list-style: none; margin: -4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.card-corso__materie li { font-size: 13px; font-weight: 700; color: var(--yw-gold-800); background: rgba(242,165,22,.14); border-radius: var(--r-pill); padding: 4px 10px; }
.card-corso__orari { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.card-corso__orari span { display: inline-block; min-width: 92px; font-weight: 400; color: var(--yw-muted); }
.card-corso__descr { font-size: 15px; line-height: 1.5; color: var(--yw-muted); text-wrap: pretty; }
.card-corso__dati { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; padding-top: 14px; border-top: 1px dashed var(--yw-line-2); }
.card-corso__dati .intera { grid-column: 1 / -1; }
.card-corso__dati dt, .dati-mini dt { font-size: 12px; color: var(--yw-muted); margin-bottom: 2px; }
.card-corso__dati dd { font-weight: 600; font-size: 15px; }

.vuoto { border: 2px dashed var(--yw-line-2); border-radius: 24px; padding: 40px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.vuoto h2, .vuoto h3 { font: 800 28px var(--font-display); }
.vuoto p { color: var(--yw-muted); max-width: 44ch; }
.vuoto .btn { min-height: 48px; font-size: 15px; }

/* Orario: un'unica tabella (giorni × sale), righe solo dove inizia una lezione */
.orario-desktop { display: none; overflow-x: auto; border-radius: 20px; border: 1px solid var(--yw-line); background: #fff; }
.orario {
  display: grid; grid-template-columns: 52px repeat(var(--colonne), minmax(104px, 1fr));
  min-width: calc(52px + var(--colonne) * 104px); position: relative; font-size: 13px;
}
.orario__angolo { grid-column: 1; border-bottom: 2px solid var(--yw-ink); }
.orario__giorno { grid-row: 1; padding: 12px 8px 6px; text-align: center; font: 800 17px var(--font-display); }
.orario__sala {
  grid-row: 2; padding: 0 6px 8px; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--yw-muted); border-bottom: 2px solid var(--yw-ink);
}
.orario__riga { grid-column: 1 / -1; border-top: 1px solid #EFE6DA; }
.orario__ora { grid-column: 1; padding: 8px 6px 0; font: 500 12px var(--font-mono); color: var(--yw-muted); text-align: right; }
.orario__separatore { border-left: 2px solid var(--yw-line); pointer-events: none; }
.slot {
  position: relative; z-index: 1; margin: 2px; padding: 5px 6px; border-radius: 8px; border-left: 4px solid var(--c-bordo, var(--yw-gold));
  background: var(--c-sfondo, var(--yw-cream)); color: var(--yw-ink); text-decoration: none;
  display: flex; flex-direction: column; gap: 2px; line-height: 1.25; min-width: 0; overflow: hidden;
}
.slot:hover { color: var(--yw-ink); filter: brightness(.97); box-shadow: 0 2px 8px -4px rgba(28,20,17,.35); }
.slot__corso { font-weight: 700; font-size: 12.5px; letter-spacing: -.01em; overflow-wrap: break-word; }
.slot__ora { font-size: 11.5px; color: var(--yw-ink-2); overflow-wrap: break-word; }
/* Colori per categoria (stesso ordine dei filtri) */
.slot--c0 { --c-sfondo: #EFE8FA; --c-bordo: #7E57C2; }
.slot--c1 { --c-sfondo: #E5F0FB; --c-bordo: #3B7DC4; }
.slot--c2 { --c-sfondo: #FCE9E9; --c-bordo: #C8434B; }
.slot--c3 { --c-sfondo: #FFF1DD; --c-bordo: #E08A00; }
.slot--c4 { --c-sfondo: #FCE8F1; --c-bordo: #C2477F; }
.slot--c5 { --c-sfondo: #E7F5EA; --c-bordo: #3E9A57; }
.slot--c6 { --c-sfondo: #E2F3F2; --c-bordo: #2E8C86; }
.slot--c7 { --c-sfondo: #F1EDE8; --c-bordo: #8E7F74; }
.orario-legenda { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; color: var(--yw-ink-2); }
.orario-legenda li { display: inline-flex; align-items: center; gap: 6px; }
.orario-legenda__pallino { width: 18px; height: 14px; border-radius: 4px; background: var(--c-sfondo); border-left: 5px solid var(--c-bordo); }

.orario-mobile { display: flex; flex-direction: column; gap: 14px; }
.orario-mobile__tabs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; padding: 4px; background: #fff; border-radius: 16px; }
.orario-mobile__tabs button { min-height: 48px; border: 0; border-radius: 12px; background: transparent; font: 600 14px var(--font-body); cursor: pointer; }
.orario-mobile__tabs [aria-selected="true"] { background: var(--yw-ink); color: var(--yw-cream); font-weight: 700; }
.orario-mobile__giorno { background: #fff; border-radius: 18px; border: 1px solid var(--yw-line); overflow: hidden; }
.orario--giorno { grid-template-columns: 46px repeat(var(--colonne), minmax(0, 1fr)); min-width: 0; font-size: 14px; }
.orario--giorno .orario__giorno { display: none; }
.orario--giorno .orario__sala { grid-row: 1 / 3; align-self: end; padding-top: 12px; }
@media (min-width: 960px) {
  .orario-desktop { display: block; }
  .orario-mobile { display: none; }
}

/* ---------- INSEGNANTI ---------- */
.griglia-insegnanti { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px clamp(14px, 2.4vw, 28px); }
@media (min-width: 640px) { .griglia-insegnanti { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 960px) { .griglia-insegnanti { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 36px; } }
.card-insegnante { display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: var(--yw-ink); }
.card-insegnante:hover { color: var(--yw-ink); }
.card-insegnante:hover .arco img { transform: scale(1.03); }
.card-insegnante .arco img { transition: transform .3s ease; }
.card-insegnante__testo { display: flex; flex-direction: column; gap: 4px; }
.card-insegnante__testo .kicker { letter-spacing: .1em; }
.card-insegnante__nome { font: 800 21px/1.1 var(--font-display); letter-spacing: -.01em; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.card-insegnante__nome .ico { color: var(--yw-gold-700); margin-top: 2px; }
.card-insegnante__disc { font-size: 14px; line-height: 1.45; color: var(--yw-muted); }

.banda-scura {
  max-width: var(--content-max); margin: 0 auto; border-radius: var(--r-panel); color: var(--yw-cream);
  background: var(--yw-stage) radial-gradient(ellipse 60% 90% at 20% 0%, rgba(242,165,22,.22), transparent 70%);
  padding: clamp(28px, 5vw, 56px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px;
}
.banda-scura > div { flex: 1 1 320px; display: flex; flex-direction: column; gap: 8px; }
.banda-scura h2 { font: 800 clamp(28px, 4vw, 44px)/1.02 var(--font-display); letter-spacing: -.02em; }
.banda-scura p { font-size: 17px; color: var(--yw-on-stage-2); }

.briciole { padding: 16px var(--space-page) 0; }
.briciole ol { max-width: var(--content-max); margin: 0 auto; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; font-size: 14px; color: var(--yw-muted); align-items: center; }
.briciole a { display: inline-flex; min-height: 44px; align-items: center; }
.ritratto { padding: 8px var(--space-page) clamp(40px, 6vw, 80px); }
.ritratto__in { max-width: var(--content-max); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: flex-end; gap: clamp(28px, 5vw, 64px); }
.ritratto__foto { flex: 0 1 380px; min-width: 0; width: 100%; }
.ritratto__foto.cornice { padding: 10px; }
.ritratto__foto.cornice::before { border-radius: 999px 999px 26px 26px; }
.ritratto__testo { flex: 1 1 380px; display: flex; flex-direction: column; gap: 16px; padding-bottom: 10px; }
.ritratto__testo .h1 { font-size: clamp(42px, 6.6vw, 84px); }
.ritratto__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ritratto__chips li { font-size: 14px; font-weight: 600; background: var(--yw-paper); border-radius: var(--r-pill); padding: 7px 14px; }
.ritratto__testo .riga-btn { margin-top: 6px; }
.ritratto__testo .btn { min-height: 52px; font-size: 16px; padding: 0 22px; }
.bio { padding: 0 var(--space-page) clamp(48px, 7vw, 96px); }
.bio__in { max-width: var(--content-max); margin: 0 auto; display: flex; flex-wrap: wrap; gap: clamp(40px, 6vw, 80px); }
.bio__testo { flex: 1 1 440px; display: flex; flex-direction: column; gap: 16px; max-width: 68ch; }
.bio__aside { flex: 1 1 300px; display: flex; flex-direction: column; gap: 12px; }
.ricon { list-style: none; margin: 0; padding: 0; }
.ricon li { display: flex; gap: 14px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--yw-line); font-size: 16px; }
.ricon__punto { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--yw-gold); box-shadow: 0 0 0 4px rgba(242,165,22,.2); transform: translateY(-1px); }
.ricon__anno { flex: none; width: 52px; font: 500 13px var(--font-mono); color: var(--yw-muted); }
.corso-link {
  min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px;
  background: #fff; border: 1px solid var(--yw-line); border-radius: 16px; text-decoration: none; color: var(--yw-ink);
}
.corso-link:hover { border-color: var(--yw-gold-700); color: var(--yw-ink); }
.corso-link > span { display: flex; flex-direction: column; gap: 2px; }
.corso-link strong { font-size: 17px; }
.corso-link small { font-size: 13px; color: var(--yw-muted); }
.corso-link .ico { color: var(--yw-gold-700); }
.media-griglia { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.media-griglia .video-anteprima { grid-column: 1 / -1; }
.media-griglia a.foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; }
.striscia--insegnanti > * { flex: 0 0 170px; scroll-snap-align: start; }

/* ---------- Video (anteprima cliccabile) ---------- */
.video-anteprima {
  position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; max-height: 560px; border: 0; padding: 0;
  border-radius: 20px; overflow: hidden; cursor: pointer; background: var(--yw-stage);
}
.video-anteprima img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .15s; }
.video-anteprima:hover img { opacity: 1; }
.video-anteprima__righe { position: absolute; inset: 0; background: var(--righe-scure); }
.video-anteprima__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 76px; height: 76px; border-radius: 50%;
  background: var(--yw-gold); color: var(--yw-stage); display: grid; place-items: center; box-shadow: 0 0 0 12px rgba(242,165,22,.22);
}
.video-anteprima--1610 { aspect-ratio: 16 / 10; border-radius: 22px; }

/* Lightbox */
.lightbox { border: 0; padding: 0; background: transparent; max-width: min(1200px, 96vw); width: 100%; max-height: 92vh; overflow: visible; }
.lightbox::backdrop { background: rgba(20,14,12,.88); }
.lightbox__corpo { display: grid; place-items: center; }
.lightbox__corpo img, .lightbox__corpo video { max-height: 86vh; width: auto; max-width: 100%; border-radius: 12px; }
.lightbox__corpo iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 12px; background: #000; }
.lightbox__chiudi {
  position: absolute; top: -56px; right: 0; width: 44px; height: 44px; border-radius: 50%; border: 0;
  background: var(--yw-cream); color: var(--yw-ink); display: grid; place-items: center; cursor: pointer;
}

/* ---------- COMPAGNIA ---------- */
.pagina-compagnia main a:not(.btn):not(.chip-ancora) { color: var(--yw-red-700); }
.pagina-compagnia main a:not(.btn):not(.chip-ancora):hover { color: var(--yw-red); }
.hero-scuro {
  background: var(--yw-stage) radial-gradient(ellipse 50% 80% at 50% -10%, rgba(242,165,22,.28), transparent 70%);
  color: var(--yw-cream); padding: clamp(44px, 7vw, 104px) var(--space-page) 0; text-align: center;
}
.hero-scuro__in { max-width: 880px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.hero-scuro .h1 { font-size: clamp(44px, 7.4vw, 96px); }
.hero-scuro p { font-size: 18px; line-height: 1.55; color: var(--yw-on-stage-2); max-width: 52ch; text-wrap: pretty; }
.hero-scuro nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 6px; }
.chip-ancora {
  min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: var(--r-pill);
  border: 1.5px solid rgba(251,247,242,.35); color: var(--yw-cream); text-decoration: none; font-weight: 600; font-size: 14px;
}
.chip-ancora:hover { border-color: var(--yw-cream); color: #fff; }
.hero-scuro > .lampadine { margin: clamp(40px, 6vw, 72px) calc(-1 * var(--space-page)) 0; }

.biglietto {
  position: relative; display: flex; min-height: 188px; height: 100%; background: #fff; border: 1px solid var(--yw-line);
  border-radius: 20px; overflow: hidden;
}
.biglietto__matrice {
  flex: 0 0 104px; color: var(--yw-cream); padding: 16px 6px; text-align: center;
  background: var(--yw-stage) radial-gradient(ellipse 90% 60% at 50% 0%, rgba(242,165,22,.28), transparent 70%);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
}
.biglietto__gs { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--yw-on-stage-2); }
.biglietto__giorno { font: 800 40px/1 var(--font-display); color: var(--yw-gold); }
.biglietto__mese { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.biglietto__ora { font-size: 13px; color: var(--yw-on-stage-2); margin-top: 6px; }
.biglietto__corpo { flex: 1; min-width: 0; padding: 18px 20px 16px; display: flex; flex-direction: column; gap: 8px; border-left: 2px dashed var(--yw-line); }
.biglietto__titolo { font: 800 22px/1.08 var(--font-display); letter-spacing: -.01em; text-wrap: balance; }
.biglietto__dove { font-size: 15px; line-height: 1.4; color: var(--yw-muted); display: flex; gap: 6px; }
.biglietto__dove .ico { color: var(--yw-red-700); margin-top: 2px; }
.biglietto__nota { font-size: 12px; color: var(--yw-muted); text-align: center; }
.biglietto__nota--grande { margin-top: auto; font-size: 14px; text-align: left; }
.biglietto__tacca { position: absolute; left: 93px; width: 22px; height: 22px; border-radius: 50%; background: var(--yw-cream); border: 1px solid var(--yw-line); }
.biglietto__tacca--su { top: -12px; }
.biglietto__tacca--giu { bottom: -12px; }
.biglietto--settimana .biglietto__matrice { flex-basis: 92px; background: var(--yw-gold); color: var(--yw-stage); }
.biglietto--settimana .biglietto__tacca { left: 81px; }
.biglietto--settimana .biglietto__corpo { padding: 16px 18px; }
.biglietto__sett { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.biglietto__num { font: 800 46px/1 var(--font-display); }

.nessuna-data {
  position: relative; overflow: hidden; border-radius: var(--r-panel); background: var(--yw-red-700); color: #fff;
  padding: clamp(32px, 5vw, 56px) clamp(24px, 5vw, 56px); display: flex; flex-direction: column; gap: 14px; align-items: flex-start;
}
.nessuna-data::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(0,0,0,.16) 0 18px, transparent 18px 44px); opacity: .7; }
.nessuna-data > * { position: relative; }
.nessuna-data h3 { font: 800 clamp(30px, 4.4vw, 48px)/1 var(--font-display); letter-spacing: -.02em; text-wrap: balance; }
.nessuna-data p { font-size: 17px; line-height: 1.55; max-width: 46ch; }
.nessuna-data .btn { min-height: 52px; font-size: 16px; padding: 0 22px; }
.nessuna-data .riga-btn { margin-top: 6px; }
.nessuna-data a.link-bianco { min-height: 44px; display: inline-flex; align-items: center; color: #fff !important; font-weight: 600; }

.in-scena { display: flex; flex-wrap: wrap; gap: clamp(28px, 5vw, 64px); align-items: flex-start; }
.in-scena__locandina { flex: 0 1 360px; min-width: 0; max-width: 360px; }
.in-scena__locandina img { box-shadow: 0 24px 48px -24px rgba(28,20,17,.6); }
.in-scena__testo { flex: 1 1 380px; display: flex; flex-direction: column; gap: 16px; }
.in-scena__testo .h2 { font-size: clamp(36px, 5.4vw, 64px); line-height: .98; }
.etichetta { margin-top: 8px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.in-scena__testo p { font-size: 17px; line-height: 1.6; color: var(--yw-ink-2); max-width: 60ch; }
.cast { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 0 28px; }
.cast > div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid #DCCDBB; font-size: 15px; }
.cast dt { color: var(--yw-muted); }
.cast dd { font-weight: 600; text-align: right; }
.crediti { font-size: 14px !important; color: var(--yw-muted) !important; }

.galleria {
  display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory;
  margin: 0 calc(-1 * var(--space-page)); padding: 0 var(--space-page) 8px; scroll-padding: 0 var(--space-page);
}
.galleria__item { flex: 0 0 min(78%, 340px); scroll-snap-align: start; display: block; border-radius: 16px; overflow: hidden; background: var(--yw-line); }
.galleria__item img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .3s ease; }
.galleria__item:hover img { transform: scale(1.03); }
.galleria--archivio { margin: 0; padding: 4px 0 24px; scroll-padding: 0; }
.galleria--archivio .galleria__item { flex: 0 0 auto; height: 240px; border-radius: 10px; }
.galleria--archivio .galleria__item img { height: 240px; width: auto; aspect-ratio: auto; }
.galleria--archivio .galleria__item--locandina img { aspect-ratio: 1606 / 2271; object-fit: cover; }
@media (min-width: 960px) { .galleria { margin: 0; padding-inline: 0; scroll-padding: 0; } }

.archivio { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--yw-ink); }
.archivio > li { border-bottom: 1px solid var(--yw-line); }
.archivio summary {
  min-height: 68px; display: flex; align-items: center; gap: clamp(14px, 3vw, 40px); padding: 12px 0; cursor: pointer; list-style: none;
}
.archivio summary::-webkit-details-marker { display: none; }
.archivio__anni { flex: 0 0 clamp(78px, 10vw, 120px); font: 500 14px var(--font-mono); color: var(--yw-red-700); }
.archivio__titolo { flex: 1; font: 800 clamp(22px, 3vw, 32px)/1.05 var(--font-display); letter-spacing: -.02em; }
.segno {
  flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--yw-line-2); display: grid; place-items: center;
  font-size: 22px; line-height: 1;
}
.segno::before { content: "+"; }
details[open] > summary .segno::before { content: "–"; }
.archivio__trama { font-size: 16px; line-height: 1.6; color: var(--yw-ink-2); max-width: 68ch; margin: 0 0 16px; }

.audizioni { background: var(--yw-red); color: #fff; padding: clamp(56px, 7vw, 96px) var(--space-page); }
.audizioni__in { max-width: var(--content-max); margin: 0 auto; display: flex; flex-wrap: wrap; gap: 24px 56px; align-items: center; justify-content: space-between; }
.audizioni__in > div { flex: 1 1 420px; display: flex; flex-direction: column; gap: 12px; }
.audizioni .h2 { font-size: clamp(36px, 5.4vw, 64px); line-height: .98; }
.audizioni p { font-size: 18px; line-height: 1.55; max-width: 48ch; }

/* ---------- CONTATTI + FORM ---------- */
.azioni-grandi { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.azione {
  flex: 1 1 260px; min-height: 64px; display: flex; align-items: center; gap: 14px; padding: 10px 22px; border-radius: 20px;
  text-decoration: none; border: 2px solid transparent; transition: background-color .15s, color .15s;
}
.azione > span { display: flex; flex-direction: column; }
.azione strong { font-size: 17px; }
.azione small { font-size: 14px; }
.azione--oro { background: var(--yw-gold); color: var(--yw-stage); }
.azione--oro:hover { background: var(--yw-gold-600); color: var(--yw-stage); }
.azione--bordo { flex-basis: 200px; border-color: var(--yw-ink); color: var(--yw-ink); }
.azione--bordo:hover { background: var(--yw-ink); color: var(--yw-cream); }
.contatti { display: flex; flex-wrap: wrap; align-items: flex-start; gap: clamp(24px, 4vw, 48px); }
.contatti > .form-card { flex: 1 1 480px; min-width: 0; }
.contatti__aside { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.contatti__aside h2 { font: 800 28px var(--font-display); letter-spacing: -.02em; }
.contatti__aside p { font-size: 17px; line-height: 1.55; }
.box-carta { background: var(--yw-paper); border-radius: 20px; padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.box-carta a { min-height: 40px; display: inline-flex; align-items: center; }

.form-card { background: #fff; border: 1px solid var(--yw-line); border-radius: var(--r-panel); padding: clamp(22px, 4vw, 40px); scroll-margin-top: 100px; }
.form { display: flex; flex-direction: column; gap: 20px; }
.form__titolo { font: 800 28px var(--font-display); letter-spacing: -.02em; }
.campo { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.campo > label, .campo legend { font-weight: 700; font-size: 15px; padding: 0; }
.campo legend { margin-bottom: 10px; }
.campo__riga { display: flex; flex-wrap: wrap; gap: 12px; }
.campo__sub { flex: 1 1 200px; display: flex; flex-direction: column; gap: 6px; }
.campo__sub label { font-size: 14px; color: var(--yw-ink-2); }
.campo--eta { flex: 1 1 140px; }
.campo--corso { flex: 2 1 220px; }
.obbl { color: var(--yw-gold-800); }
.form input:not([type="checkbox"]), .form select, .form textarea {
  width: 100%; min-height: 52px; padding: 0 16px; border-radius: var(--r-field); border: 1.5px solid var(--yw-field);
  font: 16px var(--font-body); color: var(--yw-ink); background: #fff;
}
.form select { padding: 0 14px; }
.form textarea { padding: 14px 16px; line-height: 1.5; resize: vertical; min-height: 96px; }
.form [aria-invalid="true"] { border: 2px solid var(--yw-red) !important; }
.campo__errore { color: var(--yw-red-700); font-size: 14px; font-weight: 600; }
.campo__errore--rientro { padding-left: 36px; }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.45; cursor: pointer; min-height: 44px; font-weight: 400 !important; }
.check input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--yw-gold-700); }
.form__nota { margin-top: -6px; font-size: 13px; color: var(--yw-muted); text-align: center; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-errori { border: 2px solid var(--yw-red); background: var(--yw-error-bg); border-radius: 16px; padding: 16px 18px; display: flex; gap: 12px; }
.form-errori .ico { color: var(--yw-red-700); }
.form-errori strong { color: var(--yw-red-700); font-size: 16px; }
.form-errori ul { margin: 6px 0 0; padding-left: 18px; font-size: 15px; line-height: 1.5; }
.form-errori a { color: var(--yw-ink); }
.form-errori p { margin-top: 6px; font-size: 15px; }
.form-ok { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 8px 0; }
.form-ok:focus { outline: none; }
.form-ok__check { width: 64px; height: 64px; border-radius: 50%; background: var(--yw-gold); color: var(--yw-stage); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(242,165,22,.18); }
.form-ok__check .ico { stroke-width: 2.8; }
.form-ok h2 { margin-top: 8px; font: 800 clamp(30px, 4vw, 40px)/1 var(--font-display); letter-spacing: -.02em; }
.form-ok p { font-size: 17px; line-height: 1.55; color: var(--yw-ink-2); max-width: 42ch; }
.form-ok .motto { font-size: 28px; color: var(--yw-gold-700); }
.form-ok .riga-btn { width: 100%; }
.form-ok .btn { min-height: 52px; font-size: 16px; }

.mappa { position: relative; aspect-ratio: 4 / 3; border-radius: 24px; overflow: hidden; border: 1px solid var(--yw-line); background: var(--righe); }
.mappa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mappa__finta { position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(255,255,255,.55) 2px, transparent 2px) 0 0 / 48px 48px,
  linear-gradient(rgba(255,255,255,.55) 2px, transparent 2px) 0 0 / 48px 48px,
  linear-gradient(35deg, transparent 47%, #fff 47%, #fff 53%, transparent 53%),
  #E8E1D6; }
.mappa__pin { position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%); color: var(--yw-red); }
.mappa__pin .ico { fill: var(--yw-red); stroke: #fff; stroke-width: 1.5; }
.mappa__pannello {
  position: absolute; left: 14px; right: 14px; bottom: 14px; background: #fff; border-radius: 16px; padding: 14px;
  display: flex; flex-direction: column; gap: 10px; box-shadow: 0 8px 24px -12px rgba(28,20,17,.4);
}
.mappa__pannello button { min-height: 48px; border: 0; border-radius: var(--r-pill); background: var(--yw-ink); color: var(--yw-cream); font: 700 15px var(--font-body); cursor: pointer; }
.mappa__pannello span { font-size: 12px; line-height: 1.4; color: var(--yw-muted); }

/* ---------- SUMMER CAMP ---------- */
.hero-estate {
  padding: clamp(32px, 5vw, 80px) var(--space-page) clamp(48px, 7vw, 96px);
  background: var(--yw-cream);
  background-image: radial-gradient(circle at 92% 0%, rgba(242,165,22,.38), transparent 38%), radial-gradient(circle at 0% 100%, rgba(242,165,22,.16), transparent 40%);
}
.badge-oro { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--yw-stage); background: var(--yw-gold); border-radius: var(--r-pill); padding: 7px 14px; }
.in-breve { max-width: var(--content-max); margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.in-breve > div { background: #fff; border: 1px solid var(--yw-line); border-radius: 20px; padding: 18px 20px; }
.in-breve dt { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--yw-gold-800); }
.in-breve dd { margin-top: 6px; font-size: 18px; font-weight: 700; }
.attivita { background: #fff; border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; }
.attivita > img, .attivita > .segnaposto { aspect-ratio: 16 / 9; width: 100%; object-fit: cover; }
.attivita__corpo { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.attivita__corpo > div { display: flex; align-items: baseline; gap: 10px; }
.attivita__num { font: 800 18px var(--font-display); color: var(--yw-gold-700); }
.attivita h3 { font: 800 24px var(--font-display); letter-spacing: -.01em; }
.attivita p { font-size: 15px; line-height: 1.5; color: var(--yw-muted); }
.stato-completa { align-self: flex-start; font-size: 13px; font-weight: 700; color: var(--yw-red-700); background: var(--yw-error-bg); border-radius: var(--r-pill); padding: 4px 10px; }

/* FAQ (fisarmonica con <details>) */
.faq { display: flex; flex-direction: column; border-top: 2px solid var(--yw-ink); }
.faq details { border-bottom: 1px solid #DCCDBB; }
.faq summary { min-height: 64px; display: flex; align-items: center; gap: 16px; padding: 12px 0; cursor: pointer; list-style: none; font-weight: 700; font-size: 18px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .faq__q { flex: 1; }
.faq .segno { width: 36px; height: 36px; font-size: 20px; }
.faq__tag { flex: none; width: 92px; font: 500 12px var(--font-mono); color: var(--yw-gold-800); text-transform: uppercase; }
.faq__r { margin: 0 0 20px; font-size: 16px; line-height: 1.6; color: var(--yw-ink-2); max-width: 62ch; }
.faq--tag .faq__r { margin-left: 108px; }
@media (max-width: 600px) { .faq--tag .faq__r { margin-left: 0; } .faq__tag { width: 70px; } }

/* ---------- ISCRIZIONI ---------- */
.passi { max-width: var(--content-max); margin: 0 auto; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.passi li { background: #fff; border: 1px solid var(--yw-line); border-radius: 24px; padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.passi li:first-child { background: var(--yw-gold); border-color: var(--yw-gold); color: var(--yw-stage); }
.passi__num { font: 800 56px/.9 var(--font-display); color: var(--yw-gold-700); }
.passi li:first-child .passi__num { color: var(--yw-stage); }
.passi h3 { font-size: 21px; font-weight: 700; }
.passi p { font-size: 15px; line-height: 1.5; color: var(--yw-muted); }
.passi li:first-child p { color: var(--yw-stage); }
.passi .link-freccia { margin-top: auto; }
.passi li:first-child .link-freccia { color: var(--yw-stage); }
.documenti { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.documento {
  min-height: 96px; display: flex; align-items: center; gap: 16px; padding: 18px; background: #fff; border: 1px solid var(--yw-line);
  border-radius: 20px; text-decoration: none; color: var(--yw-ink);
}
.documento:hover { border-color: var(--yw-gold-700); color: var(--yw-ink); }
.documento__icona { flex: none; width: 52px; height: 64px; border-radius: 8px 18px 8px 8px; background: var(--yw-stage); color: var(--yw-gold); display: grid; place-items: center; font: 800 13px var(--font-body); letter-spacing: .06em; }
.documento > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.documento strong { font-size: 17px; }
.documento small { font-size: 14px; color: var(--yw-muted); }
.documento__scarica { flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--yw-gold); color: var(--yw-stage); display: grid; place-items: center; }
.due-col { display: flex; flex-wrap: wrap; gap: 24px clamp(32px, 6vw, 80px); }
.due-col > :first-child { flex: 1 1 280px; }
.due-col > :last-child { flex: 2 1 460px; }

/* ---------- PRIVACY ---------- */
.legale-testata { border-bottom: 1px solid var(--yw-line); }
.legale { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px clamp(40px, 6vw, 96px); }
.indice { flex: 1 1 240px; max-width: 300px; display: flex; flex-direction: column; gap: 2px; }
.indice a { min-height: 40px; display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--yw-ink); text-decoration: none; border-left: 2px solid var(--yw-line); padding-left: 14px; }
.indice a:hover { border-left-color: var(--yw-gold-700); color: var(--yw-ink); }
.indice span { font: 500 12px var(--font-mono); color: var(--yw-gold-800); }
@media (min-width: 960px) { .indice { position: sticky; top: 110px; } }
.articolo { flex: 3 1 520px; min-width: 0; max-width: 68ch; font-size: 17px; line-height: 1.7; color: #2E2420; }
.articolo h2 { font: 800 clamp(30px, 4vw, 44px)/1.05 var(--font-display); letter-spacing: -.02em; color: var(--yw-ink); margin-bottom: 8px; scroll-margin-top: 110px; }
.articolo h3 { margin: 36px 0 10px; font-size: 22px; font-weight: 700; color: var(--yw-ink); scroll-margin-top: 110px; }
.articolo p + p { margin-top: 14px; }
.articolo ul { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.articolo .box { background: #fff; border: 1px solid var(--yw-line); border-radius: 16px; padding: 18px 20px; font-size: 16px; line-height: 1.6; }
.articolo .lampadine { margin: 56px 0 40px; }
.tabella-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--yw-line); border-radius: 16px; }
.tabella-wrap table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.45; min-width: 520px; }
.tabella-wrap th { text-align: left; padding: 12px 14px; border-bottom: 2px solid var(--yw-ink); }
.tabella-wrap td { padding: 12px 14px; border-bottom: 1px solid var(--yw-line); }
.tabella-wrap td:first-child { font-weight: 600; }
.pill-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.pill-nav a, .pill-nav button {
  min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: var(--r-pill);
  border: 1.5px solid var(--yw-line-2); background: #fff; color: var(--yw-ink); font: 600 15px var(--font-body); text-decoration: none; cursor: pointer;
}
.pill-nav a:first-child { background: var(--yw-ink); border-color: var(--yw-ink); color: var(--yw-cream); font-weight: 700; }

/* ---------- 404 ---------- */
.errore-404 { text-align: center; align-items: center; }
.errore-404 .h1 { font-size: clamp(64px, 14vw, 160px); color: var(--yw-gold-700); }
