/* Garage Hoppers, stile del sito.
   Colori e font principali sono qui sotto in :root, cambiali da lì. */
:root {
  --ink: #1d1d1f;
  --paper: #ffffff;
  --muted: #6b6b6b;
  --line: #1d1d1f;
  --grey-title: #cbcbcb;
  --blue-bar: #1f4f9e;
  --poster-bg: #f6fbcf;
  --poster-lime: #e2ef55;
  --poster-blue: #2626ff;
  --poster-pink: #ff1fd2;
  --poster-red: #e0124f;
  --soft: #f4f4f1;

  --f-logo: "Unbounded", system-ui, sans-serif;
  --f-display: "Lexend Exa", system-ui, sans-serif;
  --f-ui: "Roboto", system-ui, sans-serif;
  --f-heavy: "Archivo Black", system-ui, sans-serif;

  --sidebar-w: clamp(220px, 18vw, 300px);
  --gutter: clamp(16px, 5vw, 96px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 17px/1.65 var(--f-ui);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

.topbar { position: fixed; inset: 0 0 auto 0; height: 6px; background: var(--blue-bar); z-index: 30; }

/* ---------- sidebar ---------- */
.sidebar {
  position: fixed; top: 0; left: 0; bottom: 0;
  width: var(--sidebar-w);
  border-right: 1.5px solid var(--line);
  padding: 30px clamp(18px, 1.8vw, 32px) 28px;
  overflow-y: auto;
  background: var(--paper);
  z-index: 20;
}
.sidebar__head { display: flex; align-items: flex-start; justify-content: space-between; }

.logo { display: block; width: clamp(170px, 14vw, 270px); }
.logo img { width: 100%; height: auto; }
.tagline { margin: 22px 0 0; font: 300 clamp(15px, 1.25vw, 22px)/1.3 var(--f-display); letter-spacing: 0.01em; }

.register-box { margin-top: clamp(32px, 6vh, 72px); }
.btn--register {
  display: block; width: 100%; max-width: 320px; text-align: center;
  padding: 22px 24px; font-size: clamp(20px, 1.7vw, 28px); letter-spacing: 0.04em;
}

.head-tools { display: flex; align-items: center; gap: 8px; }
.lang { display: flex; border: 1.5px solid var(--line); }
.lang button, .lang a {
  border: 0; background: transparent; color: var(--ink); cursor: pointer;
  font: 500 13px/1 var(--f-ui); letter-spacing: .08em; padding: 7px 9px;
}
.lang button.on, .lang a.on { background: var(--ink); color: #fff; }
.lang button:not(.on):hover, .lang a:not(.on):hover { background: var(--soft); }
.menu__sep { width: 100%; max-width: 220px; border: 0; border-top: 1.5px solid var(--line); margin: 0; }

.menu { margin-top: clamp(28px, 5vh, 64px); display: flex; flex-direction: column; gap: clamp(14px, 2.4vh, 30px); }
.menu a {
  text-decoration: none; text-transform: uppercase;
  font: 400 clamp(17px, 1.35vw, 25px)/1 var(--f-ui); letter-spacing: 0.01em;
  width: fit-content; position: relative;
}
.menu a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px;
  background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.menu a:hover::after, .menu a.active::after, .menu a.menu__parent.open::after { transform: scaleX(1); }
.menu .ext { font-size: 0.7em; margin-left: 6px; vertical-align: 0.2em; }

.burger { display: none; }

/* ---------- buttons ---------- */
.btn {
  display: inline-block; text-decoration: none;
  padding: 12px 20px; border: 2px solid var(--ink);
  font: 400 18px/1 var(--f-display); letter-spacing: 0.01em;
  background: var(--ink); color: #fff; transition: background .2s, color .2s;
}
.btn:hover { background: #fff; color: var(--ink); }
.btn--ghost { background: transparent; color: var(--ink); font-size: 15px; padding: 9px 14px; }
.btn--ghost:hover { background: var(--ink); color: #fff; }
.btn--big { font-size: 21px; padding: 16px 26px; }

/* ---------- main ---------- */
.main { margin-left: var(--sidebar-w); min-height: 100vh; padding: 64px var(--gutter) 48px; outline: none; }
.page { max-width: 1240px; animation: fade .35s ease; }
@keyframes fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.eyebrow { margin: 0 0 6px; font: 500 14px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.page-title {
  margin: 0 0 48px; font: 300 clamp(40px, 5vw, 76px)/1.05 var(--f-display);
  letter-spacing: -0.01em;
}
.outline-title {
  margin: 0 0 40px; color: var(--grey-title); text-transform: uppercase;
  font: 400 clamp(38px, 5.4vw, 80px)/1 var(--f-heavy); letter-spacing: 0.01em;
}

/* home */
.hero { display: flex; gap: 40px; align-items: center; margin-bottom: clamp(80px, 14vh, 190px); }
.hero__text { flex: 1 1 60%; margin: 0; font: 300 clamp(30px, 3.9vw, 70px)/1.22 var(--f-display); letter-spacing: 0.005em; }
.hero__img { flex: 0 1 36%; min-width: 0; max-width: 520px; }

.events { display: grid; gap: 40px; }
.event { display: block; text-decoration: none; position: relative; }
.event__img { width: 100%; }
.event__cta {
  display: inline-block; margin-top: 14px; font: 400 20px/1 var(--f-display);
  border-bottom: 2px solid var(--ink); padding-bottom: 4px;
}
.poster {
  position: relative; overflow: hidden; aspect-ratio: 16 / 7;
  background:
    radial-gradient(ellipse 30% 70% at 8% 80%, var(--poster-lime) 60%, transparent 61%),
    radial-gradient(ellipse 18% 90% at 96% 30%, var(--poster-lime) 55%, transparent 56%),
    repeating-linear-gradient(115deg, transparent 0 22px, rgba(226,239,85,.55) 22px 26px, transparent 26px 60px),
    var(--poster-bg);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: var(--poster-blue); text-align: center; padding: 6%;
  transition: transform .3s;
}
.event:hover .poster { transform: scale(1.01); }
.poster__sq { position: absolute; top: 7%; width: 24px; height: 24px; }
.poster__sq--l { left: 4%; background: var(--poster-red); }
.poster__sq--r { right: 4%; background: var(--poster-pink); }
.poster__title { font: 700 clamp(22px, 3.4vw, 54px)/1.08 var(--f-logo); letter-spacing: 0.42em; text-transform: uppercase; }
.poster__title span { display: block; margin-right: -0.42em; }
.poster__year { font: 700 clamp(26px, 4vw, 66px)/1 var(--f-logo); letter-spacing: 0.2em; margin-top: 0.3em; }
.poster__meta { margin-top: 1.2em; font: 400 clamp(14px, 1.4vw, 22px)/1 var(--f-display); letter-spacing: 0.08em; color: var(--ink); }

/* prose */
.prose { max-width: 760px; }
.prose h2 { font: 400 clamp(26px, 2.4vw, 38px)/1.2 var(--f-display); margin: 1.4em 0 0.5em; }
.prose h2:first-child { margin-top: 0; }
.prose p { margin: 0 0 1em; }
.lead { font: 300 clamp(19px, 1.6vw, 24px)/1.5 var(--f-display); max-width: 760px; margin: 32px 0; }
.small { font-size: 14px; color: var(--muted); }

.notice {
  display: inline-block; margin: 8px 0 24px; padding: 14px 20px;
  background: var(--poster-lime); font: 400 clamp(17px, 1.5vw, 22px)/1.3 var(--f-display);
  text-transform: uppercase; letter-spacing: 0.02em;
}
.notice--soft { display: block; background: var(--soft); text-transform: none; font: 400 16px/1.6 var(--f-ui); margin-top: 40px; max-width: 900px; }
.notice--soft p { margin: 0; }

/* artists */
.artist-section + .artist-section { margin-top: clamp(64px, 10vh, 120px); }
.artists { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 64px 48px; }
.artist__photos { display: grid; gap: 10px; }
.artist__photos--2 { grid-template-columns: 1fr 1fr; }
.artist__photo {
  position: relative; aspect-ratio: 4 / 3; overflow: hidden;
  background: repeating-linear-gradient(45deg, #f2f2f2 0 14px, #e9e9e9 14px 28px);
  border: 1.5px solid var(--line);
  display: flex; align-items: center; justify-content: center;
}
.artist__photos--2 .artist__photo { aspect-ratio: 3 / 4; }
.artist__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph img + .ph-label { display: none; }
.ph-label { font: 400 13px/1 var(--f-display); color: var(--muted); text-transform: uppercase; letter-spacing: 0.1em; }
.artist__body h3 { margin: 18px 0 2px; font: 400 clamp(22px, 1.9vw, 30px)/1.15 var(--f-display); }
.artist__from { margin: 0 0 12px; color: var(--muted); font-size: 14px; text-transform: uppercase; letter-spacing: 0.08em; }
.artist__text p { margin: 0 0 0.8em; font-size: 16px; }
.artist__text a { color: var(--muted); }

/* venue */
.map { margin-top: 40px; border: 1.5px solid var(--line); aspect-ratio: 16 / 8; max-width: 1000px; }
.map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.7); }

/* mealboxes */
.menus { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px; align-items: start; }
.menu-card { border: 1.5px solid var(--line); padding: 26px 26px 18px; }
.menu-card header { border-bottom: 3px solid var(--line); margin-bottom: 18px; padding-bottom: 12px; }
.menu-card h3 { margin: 0 0 4px; font: 400 24px/1.2 var(--f-display); }
.menu-card header p { margin: 0; font-size: 15px; color: var(--muted); }
.dish { margin-bottom: 20px; font-size: 15px; }
.dish p { margin: 0 0 .5em; }
.dish ul { margin: 0 0 .5em; padding-left: 18px; }
.dish__head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.dish h4 { margin: 0 0 6px; font: 500 17px/1.3 var(--f-ui); }
.price { font: 400 18px/1 var(--f-display); white-space: nowrap; }
.tag { display: inline-block; font: 500 11px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .06em; padding: 4px 6px; background: var(--poster-lime); vertical-align: 2px; }
.gluten { max-width: 900px; margin-top: 28px; }

/* move around */
.moves { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 28px; }
.move { border: 1.5px solid var(--line); padding: 28px; }
.move__icon { font-size: 34px; line-height: 1; }
.move h3 { margin: 14px 0 0; font: 400 26px/1.2 var(--f-display); }
.move__sub { margin: 2px 0 14px; color: var(--muted); font-size: 14px; text-transform: uppercase; letter-spacing: .08em; }
.move p, .move li { font-size: 16px; }
.move ul { padding-left: 18px; }
.move li { margin-bottom: 6px; }
.links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

/* menu con sottovoci */
.menu__group { display: flex; flex-direction: column; gap: 14px; }
.menu__sub { display: flex; flex-direction: column; gap: 12px; padding-left: 18px; border-left: 2px solid var(--line); }
.menu a.menu__child { font-size: clamp(15px, 1.1vw, 20px); }

/* titoli secondari */
.sub-title { margin: 56px 0 24px; font: 400 clamp(24px, 2.2vw, 34px)/1.2 var(--f-display); }
.outline-title--mt { margin-top: clamp(72px, 10vh, 120px); }
.lead--big { font-size: clamp(22px, 2.2vw, 34px); margin-top: 0; }
.cta-row { margin: 40px 0 12px; }
.wide-img { width: 100%; max-height: 460px; object-fit: cover; margin-bottom: 32px; }

/* pacchetti */
.passes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 32px; }
.passes--party { grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
.pass__img { position: relative; aspect-ratio: 1; background: var(--poster-blue); overflow: hidden; }
.pass--small .pass__img { aspect-ratio: 456 / 322; }
.pass__img img { width: 100%; height: 100%; object-fit: cover; }
.pass__state { position: absolute; left: 12px; bottom: 12px; background: var(--ink); color: #fff; padding: 6px 10px; font: 500 14px/1 var(--f-ui); letter-spacing: .08em; }
.pass h3 { margin: 16px 0 2px; text-transform: uppercase; font: 300 clamp(22px, 2vw, 32px)/1.1 var(--f-ui); }
.pass__price { margin: 0 0 8px; font: 400 20px/1.2 var(--f-display); }
.pass p { margin: 0 0 .5em; }
.levels { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 48px 48px; }
.level h3 { margin: 0 0 10px; text-transform: uppercase; font: 300 clamp(22px, 2vw, 30px)/1.15 var(--f-ui); }
.level p { margin: 0; font-size: 16px; }

/* schedule */
.days { display: grid; gap: 40px; margin: 40px 0 24px; }
.day { margin: 0; }
.day figcaption { font: 400 22px/1.2 var(--f-display); margin-bottom: 12px; }
.day a { display: block; }
.day__img { position: relative; min-height: 120px; background: var(--soft); display: flex; align-items: center; justify-content: center; }
.day__img img { width: 100%; height: auto; }

.parties { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 40px; }
.party h3 { margin: 0 0 10px; text-transform: uppercase; font: 300 clamp(26px, 2.4vw, 38px)/1.05 var(--f-ui); }
.party__when { font-weight: 500; }
.party p { margin: 0 0 .7em; }

/* festival (home) */
.fest-hero__title { margin: 0 0 36px; text-transform: uppercase; font: 400 clamp(38px, 5.2vw, 84px)/1.02 var(--f-display); letter-spacing: -0.01em; }
.fest-hero__img { width: 100%; }
.facts { display: flex; flex-wrap: wrap; gap: 24px 56px; align-items: flex-end; margin: 32px 0 24px; padding-bottom: 28px; border-bottom: 1.5px solid var(--line); }
.fact { display: flex; flex-direction: column; gap: 6px; }
.fact__k { font: 500 13px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.fact__v { font: 400 clamp(20px, 1.9vw, 30px)/1.2 var(--f-display); }
.fact--cta { margin-left: auto; }
.fest-hero__intro { margin-top: 24px; font-size: 18px; }
.snip { margin-top: clamp(72px, 11vh, 130px); }
.snip__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 24px; }
.snip__head .outline-title { margin-bottom: 20px; }
.snip .lead { margin: 0 0 28px; }
.more { font: 400 17px/1 var(--f-display); text-decoration: none; border-bottom: 2px solid var(--ink); padding-bottom: 4px; white-space: nowrap; }
.chips { display: flex; flex-wrap: wrap; gap: 12px; }
.chip { text-decoration: none; border: 1.5px solid var(--line); padding: 14px 20px; font: 300 clamp(18px, 1.7vw, 26px)/1 var(--f-display); transition: background .2s, color .2s; }
.chip:hover { background: var(--ink); color: #fff; }
.band-snip__item { display: block; text-decoration: none; max-width: 760px; }
.band-snip__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--soft); }
.band-snip__img img { width: 100%; height: 100%; object-fit: cover; }
.band-snip__item span:last-child { display: block; margin-top: 14px; font: 400 clamp(22px, 2vw, 30px)/1.2 var(--f-display); }
.price-list { max-width: 760px; border-top: 1.5px solid var(--line); }
.price-row { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid #d6d6d6; text-decoration: none; font: 300 clamp(18px, 1.6vw, 24px)/1.2 var(--f-display); }
.price-row:hover { background: var(--soft); }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.tile { display: flex; flex-direction: column; gap: 14px; padding: 24px; border: 1.5px solid var(--line); text-decoration: none; font: 400 20px/1.2 var(--f-display); transition: background .2s, color .2s; }
.tile:hover { background: var(--ink); color: #fff; }
.tile__icon { font-size: 30px; line-height: 1; }

/* wellness */
.services { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 32px; margin-top: 40px; }
.service { display: block; text-decoration: none; }
.service__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border: 1.5px solid var(--line); background: repeating-linear-gradient(45deg, #f2f2f2 0 14px, #e9e9e9 14px 28px); display: flex; align-items: center; justify-content: center; }
.service__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.service h3 { margin: 18px 0 6px; font: 400 clamp(22px, 1.9vw, 28px)/1.2 var(--f-display); }
.service p { margin: 0 0 14px; font-size: 16px; }
.service-page { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }
.service__img--big { aspect-ratio: 4 / 5; }
.details { margin: 28px 0 0; border-top: 1.5px solid var(--line); max-width: 560px; }
.details div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #d6d6d6; }
.details dt { font: 500 13px/1.6 var(--f-ui); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.details dd { margin: 0; text-align: right; font: 400 17px/1.4 var(--f-display); }

/* footer */
.footer { margin-top: 120px; padding-top: 22px; border-top: 1.5px solid var(--line); font-size: 14px; color: var(--muted); max-width: 1240px; }
.footer p { margin: 0; }

/* ---------- mobile ---------- */
@media (max-width: 900px) {
  .sidebar {
    position: sticky; top: 0; bottom: auto; width: 100%;
    border-right: 0; border-bottom: 1.5px solid var(--line);
    padding: 22px 16px 14px; overflow: visible;
  }
  .logo { width: 130px; }
  .tagline { margin-top: 8px; font-size: 13px; }
  .burger {
    display: flex; flex-direction: column; justify-content: center; gap: 7px;
    width: 44px; height: 44px; border: 0; background: none; cursor: pointer; padding: 8px;
  }
  .burger span { display: block; height: 2px; background: var(--ink); transition: transform .25s; }
  .nav-open .burger span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .nav-open .burger span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
  .sidebar__body { display: none; padding: 8px 0 18px; }
  .nav-open .sidebar__body { display: block; }
  .nav-open { overflow: hidden; }
  .nav-open .sidebar { height: 100vh; overflow-y: auto; }
  .register-box { margin-top: 20px; }
  .btn--register { max-width: none; padding: 18px; }
  .service-page { grid-template-columns: 1fr; gap: 28px; }
  .fact--cta { margin-left: 0; }
  .menu { margin-top: 32px; gap: 24px; }
  .main { margin-left: 0; padding: 40px 16px 32px; }
  .hero { flex-direction: column; align-items: flex-start; margin-bottom: 64px; }
  .hero__img { align-self: center; width: 80%; max-width: 320px; }
  .poster { aspect-ratio: 4 / 3; }
  .poster__title { letter-spacing: 0.25em; }
  .poster__title span { margin-right: -0.25em; }
  .artists, .menus, .moves { grid-template-columns: 1fr; }
  .menu-card, .move { padding: 20px 16px; }
  .footer { margin-top: 72px; }
}

/* =====================================================================
   AGGIUNTE OTTOBRE 2026
   ===================================================================== */
:root {
  --sch-blue: #0a0ae6;
  --lv-lint: #17c24a;   --lv-ladv: #2626ff;   --lv-ladva: #2626ff;  --lv-ladvb: #d81b1b;
  --lv-ladvp: #d400c8;  --lv-linv: #111111;
  --lv-jint: #4ff5f0;   --lv-jadv: #fff200;   --lv-jmas: #7a2be2;
}
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* home */
.facts--top { margin: 0 0 28px; padding: 0 0 24px; }
.fest-hero__img { width: 100%; max-width: 1000px; height: auto; image-rendering: auto; }
.eb-banner {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px;
  margin: 28px 0 8px; padding: 16px 20px; max-width: 1000px;
  background: var(--ink); color: #fff; text-decoration: none;
  font: 400 clamp(16px, 1.4vw, 20px)/1.3 var(--f-display);
}
.eb-banner:hover { background: var(--sch-blue); }
.eb-banner__tag {
  display: inline-block; background: var(--poster-lime); color: var(--ink);
  font: 400 13px/1 var(--f-heavy); text-transform: uppercase; letter-spacing: .06em; padding: 7px 10px;
}
.eb-banner__open { margin-left: auto; font: 400 15px/1.3 var(--f-ui); opacity: .85; }
.price-row__v { display: flex; gap: 14px; align-items: baseline; }
.price-row__eb { font-weight: 400; }
.price-row__eb small { font: 500 11px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .06em; background: var(--poster-lime); padding: 3px 5px; vertical-align: 3px; }
.price-row__v .price-row__eb + .price-row__full { color: var(--muted); font-size: .8em; }
.price-row--addon { color: var(--muted); }

/* pacchetti: early bird */
.eb-box {
  display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px 40px; align-items: center;
  background: var(--poster-lime); padding: clamp(20px, 3vw, 36px); margin: 8px 0 48px; max-width: 1100px;
}
.eb-box h2 { margin: 12px 0 10px; font: 400 clamp(24px, 2.6vw, 40px)/1.1 var(--f-heavy); text-transform: uppercase; }
.eb-box .eb-banner__tag { background: var(--ink); color: #fff; }
.eb-box .prose p { margin: 0; font-size: 17px; }
.eb-box__dates { margin: 0; display: grid; gap: 10px; }
.eb-box__dates div { background: #fff; padding: 14px 18px; border: 2px solid var(--ink); }
.eb-box__dates dt { font: 500 12px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.eb-box__dates dd { margin: 6px 0 0; font: 400 clamp(18px, 1.6vw, 24px)/1.1 var(--f-display); }
.eb-box.is-off { background: var(--soft); }

/* pacchetti: pass */
.passes { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; max-width: 1100px; }
.pass { border: 2px solid var(--ink); display: flex; flex-direction: column; background: #fff; }
.pass__top { position: relative; padding: 22px 22px 26px; color: #fff; min-height: 150px; display: flex; flex-direction: column; justify-content: flex-end;
  background: linear-gradient(135deg, var(--sch-blue) 0%, #7a22e8 55%, var(--poster-pink) 100%); }
.pass--lindy .pass__top { background: linear-gradient(135deg, var(--sch-blue) 0%, #2f6bff 60%, #17c24a 130%); }
.pass--jazz .pass__top { background: linear-gradient(135deg, #7a22e8 0%, var(--poster-pink) 70%, #fff200 140%); }
.pass__kind { font: 500 12px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .12em; opacity: .9; }
.pass h3 { margin: 10px 0 0; font: 400 clamp(28px, 2.6vw, 40px)/1 var(--f-heavy); text-transform: uppercase; letter-spacing: .01em; }
.pass__state { position: absolute; top: 14px; right: 14px; left: auto; bottom: auto; background: var(--ink); color: #fff; padding: 6px 10px; font: 500 13px/1 var(--f-ui); letter-spacing: .08em; }
.pass__prices { display: grid; grid-template-columns: 1.2fr 1fr; border-bottom: 2px solid var(--ink); }
.pass__eb { background: var(--poster-lime); padding: 16px 18px; position: relative; }
.pass__full { padding: 16px 18px; border-left: 2px solid var(--ink); }
.pass__label { display: block; font: 500 11px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .1em; }
.pass__full .pass__label { color: var(--muted); }
.pass__amount { display: block; margin-top: 8px; font: 400 clamp(30px, 2.8vw, 42px)/1 var(--f-heavy); }
.pass__full .pass__amount { font-size: clamp(22px, 2vw, 28px); color: var(--muted); margin-top: 12px; }
.pass__save { display: inline-block; margin-top: 8px; font: 500 12px/1 var(--f-ui); background: var(--ink); color: #fff; padding: 4px 7px; text-transform: uppercase; letter-spacing: .05em; }
.pass__eb.is-off { background: var(--soft); }
.pass__eb.is-off .pass__amount { text-decoration: line-through; color: var(--muted); font-size: clamp(22px, 2vw, 28px); }
.pass__eb.is-off + .pass__full .pass__amount { color: var(--ink); font-size: clamp(30px, 2.8vw, 42px); margin-top: 8px; }
.inc { list-style: none; margin: 0; padding: 18px 22px 0; }
.inc li { position: relative; padding-left: 22px; margin-bottom: 8px; font-size: 16px; }
.inc li::before { content: "✦"; position: absolute; left: 0; color: var(--sch-blue); }
.pass .pass__text { margin: 6px 22px 22px; font-size: 15px; color: var(--muted); }

.addon {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px 32px; align-items: center;
  margin: 28px 0 0; padding: 22px 26px; border: 2px dashed var(--ink); max-width: 1100px;
}
.addon__tag { display: inline-block; background: var(--poster-pink); color: #fff; font: 400 12px/1 var(--f-heavy); text-transform: uppercase; padding: 6px 9px; letter-spacing: .06em; }
.addon h3 { margin: 8px 0 2px; font: 400 clamp(24px, 2.2vw, 32px)/1 var(--f-heavy); text-transform: uppercase; }
.addon__meta { font: 400 15px/1 var(--f-display); color: var(--muted); }
.addon__body p { margin: 0 0 6px; font-size: 16px; }
.addon__note { font-size: 14px; color: var(--muted); }
.addon__price { font: 400 clamp(34px, 3vw, 46px)/1 var(--f-heavy); white-space: nowrap; }
.addon__price sup { font-size: .45em; vertical-align: 1.2em; }

.party-passes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; max-width: 1100px; }
.ppass { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; border: 1.5px solid var(--ink); padding: 18px 20px; }
.ppass h3 { margin: 0; font: 400 22px/1.1 var(--f-display); text-transform: uppercase; }
.ppass .inc { padding: 12px 0 0; }
.ppass p { margin: 10px 0 0; font-size: 15px; color: var(--muted); }
.ppass__price { font: 400 30px/1 var(--f-heavy); white-space: nowrap; }
.ppass--card { background: var(--soft); border-style: dashed; }

/* livelli */
.lead--tight { margin-top: -12px; }
.lvl-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 40px 56px; }
.lvl-col__title { margin: 0 0 18px; padding-bottom: 12px; border-bottom: 3px solid var(--ink); font: 400 clamp(24px, 2.2vw, 34px)/1 var(--f-heavy); text-transform: uppercase; }
.lvl { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 16px 0; border-bottom: 1px solid #d6d6d6; }
.lvl__n { width: 36px; height: 36px; border: 2px solid var(--ink); display: flex; align-items: center; justify-content: center; font: 400 15px/1 var(--f-heavy); }
.lvl h4 { margin: 4px 0 6px; font: 400 clamp(19px, 1.6vw, 23px)/1.2 var(--f-display); text-transform: uppercase; }
.lvl p { margin: 0; font-size: 16px; }
.quiz { margin-top: 56px; background: var(--ink); color: #fff; padding: clamp(24px, 3.5vw, 44px); max-width: 1100px; }
.quiz h2 { margin: 0 0 18px; font: 400 clamp(26px, 2.8vw, 42px)/1.1 var(--f-heavy); text-transform: uppercase; color: var(--poster-lime); }
.quiz .prose { max-width: 820px; }
.quiz .prose p { font-size: 17px; }

/* schedule */
.sch-tabs { display: flex; flex-wrap: wrap; gap: 0; margin: 40px 0 0; }
.sch-tab {
  border: 2px solid var(--ink); border-bottom: 0; margin-right: -2px; background: #fff; color: var(--ink); cursor: pointer;
  padding: 14px 22px 12px; text-align: left; display: flex; flex-direction: column; gap: 4px;
  font: 400 clamp(17px, 1.5vw, 22px)/1 var(--f-heavy); text-transform: uppercase;
}
.sch-tab small { font: 400 13px/1 var(--f-ui); text-transform: none; color: var(--muted); }
.sch-tab.on { background: var(--sch-blue); color: #fff; border-color: var(--sch-blue); }
.sch-tab.on small { color: #fff; opacity: .8; }
.sch-board { background: var(--sch-blue); padding: clamp(14px, 2vw, 28px); color: #fff; }
.sch-legend { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 18px; }
.sch-legend__k { font: 500 12px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .12em; margin-right: 6px; }
.sch-chip { font: 500 13px/1 var(--f-display); padding: 7px 10px; }
.sch-day__title { margin: 0 0 18px; font: 400 clamp(26px, 3vw, 44px)/1 var(--f-heavy); text-transform: uppercase; }
.sch-day__title span { font: 300 .55em/1 var(--f-display); text-transform: none; margin-left: 8px; opacity: .85; }
.sch-day__sub { margin: 0 0 10px; font: 500 13px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .12em; }
.sch-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; outline: none; }
.sch {
  display: grid; grid-template-columns: 96px repeat(var(--rooms), minmax(150px, 1fr)); gap: 3px;
  min-width: calc(96px + var(--rooms) * 150px + var(--rooms) * 3px); background: var(--sch-blue); color: var(--ink);
}
.sch__h { background: #fff; padding: 14px 10px; text-align: center; font: 400 14px/1.1 var(--f-heavy); text-transform: uppercase; letter-spacing: .08em; border-top: 3px solid var(--poster-pink); }
.sch__corner { background: var(--ink); color: #fff; position: sticky; left: 0; z-index: 2; }
.sch__time { background: #fff; padding: 10px; display: flex; flex-direction: column; justify-content: center; gap: 2px; position: sticky; left: 0; z-index: 1; font: 400 15px/1.1 var(--f-display); }
.sch__time .t2 { font-size: 12px; color: var(--muted); }
.sch__time .t2::before { content: "→ "; }
.sch__row { grid-column: 2 / -1; display: flex; align-items: center; justify-content: center; padding: 10px; font: 500 14px/1.2 var(--f-ui); text-transform: uppercase; letter-spacing: .1em; }
.sch__row--info { background: #fff; font-family: var(--f-heavy); font-weight: 400; }
.sch__row--pausa, .sch__time--pausa { background: #e9e9ef; color: var(--muted); font-size: 12px; padding-top: 6px; padding-bottom: 6px; }
.sch__time--pausa { flex-direction: row; gap: 6px; align-items: center; justify-content: flex-start; }
.sch__time--pausa .t2::before { content: "→ "; }
.sch__cell { min-height: 84px; padding: 12px; display: flex; flex-direction: column; justify-content: space-between; gap: 8px; }
.sch__cell--empty { background: rgba(255,255,255,.12); }
.sch__lv { font: 400 13px/1 var(--f-heavy); text-transform: uppercase; letter-spacing: .06em; }
.sch__who { font: 400 15px/1.25 var(--f-display); }
.lv-lint  { background: var(--lv-lint);  color: var(--ink); }
.lv-ladv, .lv-ladva { background: var(--lv-ladv);  color: #fff; outline: 2px solid #fff; outline-offset: -2px; }
.lv-ladvb { background: var(--lv-ladvb); color: #fff; }
.lv-themed { background: var(--poster-lime); color: var(--ink); }
.lv-yoga { background: #fff; color: var(--ink); }
.lv-ladvp { background: var(--lv-ladvp); color: #fff; }
.lv-linv  { background: var(--lv-linv);  color: #fff; }
.lv-jint  { background: var(--lv-jint);  color: var(--ink); }
.lv-jadv  { background: var(--lv-jadv);  color: var(--ink); }
.lv-jmas  { background: var(--lv-jmas);  color: #fff; }
.sch-legend .lv-ladv { outline: 1.5px solid #fff; }
.progs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 20px; margin-top: 24px; }
.prog { background: #fff; color: var(--ink); border-top: 3px solid var(--poster-pink); }
.prog__where { margin: 0; padding: 14px 18px; background: var(--ink); color: #fff; font: 400 15px/1 var(--f-heavy); text-transform: uppercase; letter-spacing: .08em; }
.prog__list { list-style: none; margin: 0; padding: 6px 0; }
.prog__item { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 12px; padding: 10px 18px; border-bottom: 1px solid #e4e4ea; align-items: baseline; }
.prog__item:last-child { border-bottom: 0; }
.prog__time { font: 400 14px/1.2 var(--f-display); color: var(--muted); white-space: nowrap; }
.prog__what { font: 400 16px/1.3 var(--f-ui); }
.prog__item--taster { background: #ff6a1f; }
.prog__item--themed { background: var(--poster-lime); }
.prog__item--taster .prog__time { color: var(--ink); }
.prog__item--live .prog__what { font-weight: 500; }
.prog__item--live .prog__what::before { content: "♪ "; color: var(--poster-pink); }
.prog__item--dj .prog__what::before { content: "◉ "; color: var(--sch-blue); }
.prog__item--show .prog__what::before { content: "★ "; color: var(--poster-pink); }
.prog__item--talk { background: var(--poster-lime); }
.prog__link { margin: 0; padding: 4px 18px 18px; }

/* venue, marina: galleria */
.gallery { display: grid; gap: 10px; margin-bottom: 40px; max-width: 1100px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery--1 { grid-template-columns: 1fr; }
.gallery__item { margin: 0; position: relative; overflow: hidden; background: var(--soft); aspect-ratio: 4 / 3; }
.gallery__item--main { grid-column: 1 / -1; aspect-ratio: 16 / 8; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.gallery__item figcaption { position: absolute; left: 0; bottom: 0; background: var(--ink); color: #fff; font: 400 13px/1 var(--f-ui); padding: 7px 10px; letter-spacing: .04em; }
.moves + .notice, .notice + .map { margin-top: 40px; }

@media (max-width: 900px) {
  .eb-box { grid-template-columns: 1fr; }
  .eb-banner__open { margin-left: 0; }
  .addon { grid-template-columns: 1fr; gap: 12px; padding: 18px 16px; }
  .addon__price { order: -1; }
  .sch-tab { padding: 10px 14px 9px; flex: 1 1 0; }
  .sch-board { padding: 12px 10px; }
  .sch { grid-template-columns: 70px repeat(var(--rooms), 140px); min-width: 0; }
  .sch__time { padding: 8px 6px; font-size: 13px; }
  .sch__time--pausa { flex-direction: column; align-items: flex-start; gap: 0; font-size: 11px; }
  .sch__row { justify-content: flex-start; padding-left: 14px; }
  .prog__item { grid-template-columns: 1fr; gap: 2px; padding: 10px 14px; }
  .gallery { grid-template-columns: 1fr 1fr; }
  .gallery__item--main { aspect-ratio: 4 / 3; }
  .lvl-cols { gap: 32px; }
}

/* info: condizioni e codice di condotta */
.credits { margin: -30px 0 32px; }
.doc { max-width: 900px; border-top: 2px solid var(--ink); }
.doc__sec { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; padding: 28px 0; border-bottom: 1px solid #d6d6d6; }
.doc__n { font: 400 clamp(22px, 2vw, 30px)/1 var(--f-heavy); color: var(--grey-title); }
.doc__sec h2 { margin: 0 0 12px; font: 400 clamp(22px, 2vw, 30px)/1.15 var(--f-display); }
.doc__sec .prose p:last-child, .doc__sec .prose ul:last-child { margin-bottom: 0; }
.doc__sec .prose ul { padding-left: 20px; margin: 0 0 1em; }
.doc__sec .prose li { margin-bottom: 8px; }
@media (max-width: 900px) {
  .doc__sec { grid-template-columns: 1fr; gap: 6px; }
  }

/* sidebar compatta (ottobre 2026) */
@media (min-width: 901px) {
  .logo { width: clamp(130px, 10vw, 180px); }
  .tagline { margin-top: 10px; font-size: clamp(13px, 0.95vw, 16px); }
  .register-box { margin-top: 20px; }
  .btn--register { padding: 13px 16px; font-size: clamp(17px, 1.25vw, 21px); }
  .menu { margin-top: 26px; gap: clamp(10px, 1.6vh, 16px); }
  .menu a { font-size: clamp(14px, 1vw, 17px); }
  .menu__group { gap: 8px; }
  .menu__sub { gap: 7px; padding-left: 12px; }
  .menu a.menu__child { font-size: clamp(12.5px, 0.85vw, 14.5px); }
  .menu a::after { bottom: -4px; height: 1.5px; }
  .lang button, .lang a { padding: 5px 7px; font-size: 12px; }
}
.btn-wrap { display: inline-flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.register-box .btn-wrap { display: flex; align-items: stretch; }
.btn--off, .btn--off:hover { background: #e6e6e6; color: #8a8a8a; border-color: #cfcfcf; cursor: not-allowed; }
.btn-note { font: 500 12px/1.2 var(--f-ui); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.register-box .btn-note { text-align: center; }

/* gratis dalla community */
.free { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px 24px; align-items: center; margin: 16px 0 0; padding: 18px 22px; max-width: 1100px; border: 2px solid var(--ink); background: var(--poster-lime); text-decoration: none; }
.free:hover { background: #d6e43f; }
.free__tag { background: var(--ink); color: #fff; font: 400 12px/1 var(--f-heavy); text-transform: uppercase; letter-spacing: .06em; padding: 7px 10px; }
.free__body { display: flex; flex-direction: column; gap: 4px; font-size: 16px; }
.free__body strong { font: 400 clamp(19px, 1.6vw, 24px)/1.15 var(--f-display); }
.free__more { font: 400 16px/1 var(--f-display); border-bottom: 2px solid var(--ink); padding-bottom: 3px; white-space: nowrap; }

/* venue multiple */
.venue--next { margin-top: clamp(72px, 10vh, 120px); padding-top: clamp(40px, 6vh, 64px); border-top: 2px solid var(--ink); }
.venue__head { margin-bottom: 24px; }
.venue__tag { display: inline-block; background: var(--sch-blue); color: #fff; font: 400 12px/1 var(--f-heavy); text-transform: uppercase; letter-spacing: .06em; padding: 7px 10px; }
.venue--next .venue__tag { background: var(--poster-pink); }
.venue__name { margin: 12px 0 6px; font: 400 clamp(28px, 3vw, 46px)/1.05 var(--f-heavy); text-transform: uppercase; }
.venue__when { margin: 0; font: 400 clamp(17px, 1.4vw, 21px)/1.3 var(--f-display); color: var(--muted); }

/* city tour: tappe */
.stops { list-style: none; margin: 0 0 40px; padding: 0; max-width: 820px; }
.stop { display: grid; grid-template-columns: 64px 22px minmax(0, 1fr); gap: 12px; position: relative; padding-bottom: 18px; }
.stop::before { content: ""; position: absolute; left: 86px; top: 14px; bottom: -4px; width: 2px; background: var(--ink); }
.stop:last-child::before { display: none; }
.stop__time { font: 400 15px/1.5 var(--f-display); color: var(--muted); text-align: right; }
.stop__dot { width: 14px; height: 14px; margin-top: 4px; margin-left: 4px; border: 2px solid var(--ink); background: var(--poster-lime); border-radius: 50%; position: relative; z-index: 1; }
.stop__body { display: flex; flex-direction: column; gap: 2px; font-size: 16px; }
.stop__body strong { font: 400 18px/1.3 var(--f-display); }
.stop--extra .stop__dot { background: #fff; border-style: dashed; }
.stop--extra .stop__body strong::after { content: " ✦"; color: var(--poster-pink); }
@media (max-width: 900px) {
  .free { grid-template-columns: 1fr; }
  .stop { grid-template-columns: 48px 22px minmax(0, 1fr); gap: 8px; }
  .stop::before { left: 66px; }
}

/* artisti: schede per persona */
.person { margin-top: 18px; padding-top: 16px; border-top: 1px solid #d6d6d6; }
.person__name { margin: 0 0 8px; font: 400 15px/1.2 var(--f-heavy); text-transform: uppercase; letter-spacing: .06em; }
.artist__links { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 4px 0 0; }
.artist__links a { font: 500 13px/1.4 var(--f-ui); text-transform: uppercase; letter-spacing: .06em; color: var(--ink); text-decoration: none; border-bottom: 1.5px solid var(--ink); }
.artist__links a:hover { color: var(--sch-blue); border-color: var(--sch-blue); }

/* wellness: tabella slot */
.slots { margin-top: clamp(48px, 7vh, 80px); max-width: 900px; }
.slots__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px; }
.slots__head .sub-title { margin: 0; }
.slots__intro { margin: 10px 0 18px; color: var(--muted); font-size: 15px; }
.slots__msg { padding: 18px; background: var(--soft); margin: 0; }
.slots__msg--err { background: #fde8ec; }
.slots__count { margin: 0 0 12px; font: 400 18px/1.2 var(--f-display); }
.slots__count strong { font: 400 26px/1 var(--f-heavy); color: var(--sch-blue); margin-right: 4px; }
.slots__scroll { overflow-x: auto; }
.slots__table { border-collapse: separate; border-spacing: 3px; width: 100%; min-width: 420px; background: var(--sch-blue); padding: 3px; }
.slots__table th, .slots__table td { padding: 10px 12px; text-align: center; font: 400 14px/1.2 var(--f-ui); }
.slots__table thead th { background: var(--ink); color: #fff; font: 400 13px/1.1 var(--f-heavy); text-transform: uppercase; letter-spacing: .06em; }
.slots__table tbody th { background: #fff; font: 400 15px/1 var(--f-display); width: 90px; }
.slot--free { background: var(--poster-lime); font-weight: 500; }
.slot--free span::before { content: "● "; color: #17a33f; }
.slot--booked { background: #e9e9ef; color: #8a8a8a; text-decoration: line-through; }
.slot--na { background: rgba(255,255,255,.14); }
.btn--wa:not(.btn--off) { background: #1fae54; border-color: #1fae54; }
.btn--wa:not(.btn--off):hover { background: #fff; color: #1fae54; }

/* codice di condotta: sezioni evidenziate */
.doc__sec--evidenza { background: var(--poster-lime); padding: 28px 20px; margin: 0 -20px; }
.doc__sec--evidenza .doc__n { color: var(--ink); }
.doc__sec--scuro { background: var(--ink); color: #fff; padding: 28px 20px; margin: 0 -20px; }
.doc__sec--scuro .doc__n { color: var(--poster-lime); }
/* schedule: celle pausa ed etichette */
.sch__cell--pausa { background: #e9e9ef; min-height: 0; padding: 6px; color: var(--muted); font-size: 12px; }
.sch__time .t1--label { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
/* social nella barra laterale */
.social { display: flex; gap: 16px; margin-top: 22px; padding-top: 14px; border-top: 1.5px solid var(--line); max-width: 220px; }
.social a { font: 500 12.5px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .08em; text-decoration: none; border-bottom: 1.5px solid var(--ink); padding-bottom: 3px; }
.social a:hover { color: var(--sch-blue); border-color: var(--sch-blue); }
@media (max-width: 900px) {
  .doc__sec--evidenza, .doc__sec--scuro { margin: 0 -16px; padding: 24px 16px; }
}

/* schedule: blocchi live in evidenza */
.prog__item--live { background: var(--poster-pink); color: #fff; padding-top: 14px; padding-bottom: 14px; border-bottom-color: #ff6fe2; }
.prog__item--live .prog__time { color: #fff; font-weight: 500; }
.prog__item--live .prog__what { font: 400 17px/1.25 var(--f-heavy); text-transform: uppercase; letter-spacing: .02em; font-weight: 400; }
.prog__item--live .prog__what::before { content: "♪ "; color: #fff; }
.prog__note { display: block; margin-top: 4px; font: 500 13px/1.3 var(--f-ui); text-transform: none; letter-spacing: 0; opacity: .95; }
.prog__item--live .prog__note::before { content: "+ "; }

/* pacchetti: Mix & Match */
.mm { margin-top: 48px; max-width: 1100px; border: 2px solid var(--ink); padding: clamp(18px, 2.4vw, 30px); }
.mm__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.mm__head .sub-title { margin: 0; font-family: var(--f-heavy); text-transform: uppercase; }
.mm__price { font: 400 clamp(30px, 2.8vw, 42px)/1 var(--f-heavy); }
.mm__text { max-width: 820px; font-size: 16px; }
.mm__levels { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 14px; margin: 18px 0; }
.mm__level { background: var(--soft); padding: 16px 18px; border-left: 4px solid var(--poster-pink); }
.mm__level h3 { margin: 0 0 6px; font: 400 18px/1.1 var(--f-heavy); text-transform: uppercase; }
.mm__level p { margin: 0; font-size: 15px; }
.mm__when { max-width: none; margin-top: 8px; }
.mm__when dd { max-width: 70%; }
@media (max-width: 900px) { .mm__when div { flex-direction: column; gap: 4px; } .mm__when dd { text-align: left; max-width: none; } }

/* serate: niente colori di sfondo (novembre 2026) */
.prog__item--taster, .prog__item--themed, .prog__item--talk, .prog__item--live { background: #fff; color: var(--ink); border-bottom-color: #e4e4ea; }
.prog__item--taster .prog__time, .prog__item--live .prog__time { color: var(--muted); font-weight: 400; }
.prog__item--live .prog__what::before { color: var(--ink); }

/* venue: all in one */
.aio { background: var(--sch-blue); color: #fff; padding: clamp(22px, 3vw, 40px); margin-bottom: clamp(48px, 7vh, 80px); max-width: 1100px; }
.aio__tag { display: inline-block; background: var(--poster-lime); color: var(--ink); font: 400 13px/1 var(--f-heavy); text-transform: uppercase; letter-spacing: .08em; padding: 8px 12px; }
.aio__title { margin: 14px 0 10px; font: 400 clamp(30px, 4vw, 58px)/1 var(--f-heavy); text-transform: uppercase; }
.aio__text { margin: 0 0 24px; max-width: 760px; font: 300 clamp(18px, 1.5vw, 22px)/1.45 var(--f-display); }
.aio__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.aio__item { background: #fff; color: var(--ink); padding: 18px; display: flex; flex-direction: column; gap: 6px; border-top: 4px solid var(--poster-lime); }
.aio__icon { font-size: 28px; line-height: 1; }
.aio__item strong { font: 400 17px/1.15 var(--f-heavy); text-transform: uppercase; }
.aio__item span:last-child { font-size: 15px; }
.aio__note { margin: 22px 0 0; font-size: 16px; opacity: .95; }


/* novembre 2026 ---------------------------------------------------- */
/* wellness: numero WhatsApp al posto del pulsante */
.wa { margin: 28px 0 10px; }
.wa__line { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 6px; font: 400 clamp(18px, 1.5vw, 22px)/1.3 var(--f-display); }
.wa__line strong { font-weight: 400; font-family: var(--f-heavy); white-space: nowrap; }
.wa__icon { display: inline-flex; line-height: 0; transition: transform .15s; }
a.wa__icon:hover { transform: scale(1.12); }
.wa__icon--off { opacity: .45; }

/* yoga: lezioni con capienza */
.slots__table--cap { min-width: 0; }
.slots__table--cap tbody th { width: auto; white-space: nowrap; }
.slots__day th { background: var(--ink) !important; color: #fff; font: 400 13px/1.1 var(--f-heavy) !important; text-transform: uppercase; letter-spacing: .06em; text-align: left !important; }
.slot--room { background: #fff; font-weight: 500; text-transform: capitalize; }
.slot--cap { font-weight: 500; text-transform: uppercase; letter-spacing: .04em; font-size: 13px !important; }
.slot--cap0 { background: #9fe3ae; }
.slot--cap1 { background: #e2ef55; }
.slot--cap2 { background: #ffb15c; }
.slot--cap3 { background: #ff5c7a; color: #fff; }

/* schedule: serate alte uguali, a tutta larghezza */
.page--schedule .parties { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.page--schedule .party { border: 2px solid var(--ink); padding: 22px 22px 14px; height: 100%; }
@media (max-width: 900px) { .page--schedule .parties { grid-template-columns: 1fr; } }

/* foto artisti 2027 (1430 x 1100) */
.artist__photo, .band-snip__img { aspect-ratio: 13 / 10; }

/* cellulare: scorrendo restano solo Register e menu */
@media (max-width: 900px) {
  body.scrolled:not(.nav-open) .sidebar { display: flex; align-items: center; gap: 12px; padding: 10px 16px; }
  body.scrolled:not(.nav-open) .logo,
  body.scrolled:not(.nav-open) .lang,
  body.scrolled:not(.nav-open) .tagline { display: none; }
  body.scrolled:not(.nav-open) .register-box { order: -1; flex: 1; margin-top: 0; }
  body.scrolled:not(.nav-open) .btn--register { padding: 10px 14px; font-size: 18px; }
  body.scrolled:not(.nav-open) .register-box .btn-wrap { flex-direction: row; align-items: center; gap: 10px; }
  body.scrolled:not(.nav-open) .register-box .btn-note { text-align: left; font-size: 11px; }
}

/* statuto: indice e commi numerati */
.statuto__toc { max-width: 900px; margin: 0 0 48px; padding: 22px 24px; background: var(--soft); }
.statuto__toc-t { margin: 0 0 12px; font: 500 14px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.statuto__toc ol { list-style: none; margin: 0; padding: 0; columns: 2 280px; column-gap: 32px; }
.statuto__toc li { break-inside: avoid; }
.statuto__toc button {
  display: flex; gap: 10px; width: 100%; padding: 5px 0; border: 0; background: none; cursor: pointer;
  font: 400 15px/1.35 var(--f-ui); color: var(--ink); text-align: left;
}
.statuto__toc button span { flex: 0 0 24px; font-family: var(--f-heavy); color: var(--grey-title); }
.statuto__toc button:hover { text-decoration: underline; }
.statuto .doc__sec { scroll-margin-top: 24px; }
.statuto__lab { margin: 0 0 4px; font: 500 13px/1 var(--f-ui); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.statuto__nota { max-width: 760px; margin: -16px 0 32px; color: var(--muted); }
.commi { margin: 0; padding-left: 26px; }
.commi > li { margin-bottom: 14px; padding-left: 4px; }
.commi > li::marker { font-weight: 500; color: var(--muted); }
.commi > li:last-child { margin-bottom: 0; }
.commi .prose p:last-child, .commi .prose ul:last-child { margin-bottom: 0; }
.statuto .prose ul { padding-left: 20px; margin: 0 0 1em; list-style: disc; }
.statuto .prose li { margin-bottom: 6px; }
@media (max-width: 900px) {
  .statuto__toc { padding: 18px 16px; margin: 0 -16px 36px; }
  .statuto .doc__sec { scroll-margin-top: 90px; }
}

/* pacchetti: header bianco senza gradiente, prezzi in fondo alla card */
.pass .pass__top, .pass--lindy .pass__top, .pass--jazz .pass__top {
  background: #fff; color: var(--ink); min-height: 0; padding: 22px 22px 20px; border-bottom: 2px solid var(--ink);
}
.pass__kind { color: var(--ink); opacity: 1; }
.pass__prices { margin-top: auto; border-bottom: 0; border-top: 2px solid var(--ink); }

/* schedule: sfondo bianco e bordini neri (il blu resta solo per il livello Adv A) */
.sch-tab.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.sch-board { background: #fff; color: var(--ink); border: 2px solid var(--ink); }
.sch { background: var(--ink); gap: 1px; border: 1px solid var(--ink); }
.sch__h { border-top: 0; }
.sch__cell--empty { background: #fff; }
.lv-ladv, .lv-ladva { outline: 0; }
.prog { border: 2px solid var(--ink); }
.sch-legend .lv-yoga { box-shadow: inset 0 0 0 1px var(--ink); }
.prog__item--dj .prog__what::before { color: var(--ink); }
/* schedule: avviso come nota secondaria */
.notice--small { display: inline-block; font: 400 14px/1.4 var(--f-ui); text-transform: none; letter-spacing: 0; padding: 6px 10px; margin: 8px 0 0; }
/* serate: le themed class restano evidenziate in lime come nella tabella */
.prog__item--themed { background: var(--poster-lime); }
/* wellness senza foto */
.service-page--noimg { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
.service h3.service__t--noimg { margin-top: 0; }
.services .service { border-top: 2px solid var(--ink); padding-top: 16px; }
.credits { font-size: 12px; } .credits a { color: inherit; }
.lang a { text-decoration: none; display: inline-flex; align-items: center; }

/* schedule: serata in tabella (giorni con tabella: true) */
.ptab {
  display: grid; grid-template-columns: minmax(300px, 2fr) repeat(calc(var(--cols) - 1), minmax(190px, 1fr));
  gap: 0; margin-top: 24px; border: 2px solid var(--ink); background: #fff; min-width: 720px;
}
.ptab .ptab__side { border-left: 1px solid var(--ink); }
.ptab .prog__where.ptab__side { border-left-color: #fff; }
.ptab .prog__item { border-bottom: 1px solid #e4e4ea; align-content: start; }
.ptab .prog__item.ptab__side { grid-template-columns: 1fr; gap: 2px; }
.ptab .prog__item--empty { background: #fff; }

/* home: carosello "perché venire" (3 card per vista, 1 su cellulare) */
.car { margin-top: 40px; max-width: 1100px; }
.car__nav { display: flex; justify-content: flex-end; gap: 6px; margin-bottom: 10px; }
.car__track {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 32px) / 3); gap: 16px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; outline: none;
}
.car__track::-webkit-scrollbar { display: none; }
.car__card { scroll-snap-align: start; border: 1.5px solid var(--ink); padding: 18px 18px 20px; background: #fff; }
.car__card h3 { margin: 0 0 10px; font: 400 17px/1.3 var(--f-display); }
.car__card p { margin: 0; font-size: 14.5px; line-height: 1.55; }
.car__btn {
  width: 30px; height: 30px; padding: 0; border: 1.5px solid var(--ink); background: #fff; color: var(--ink);
  font: 400 20px/1 var(--f-ui); cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.car__btn:hover:not(:disabled) { background: var(--ink); color: #fff; }
.car__btn:disabled { opacity: .25; cursor: default; }
@media (max-width: 900px) {
  .car__track { grid-auto-columns: 100%; }
  .car__btn { width: 26px; height: 26px; font-size: 17px; }
}


/* Accessibilita': link "Salta al contenuto", visibile solo navigando con la tastiera */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;padding:10px 16px;background:#fff;color:#111;font-weight:500;text-decoration:none;outline:2px solid currentColor}
.skip-link:focus{left:16px;top:16px}
