/* =========================================================================
   Gatto's School: foglio di stile del sito.
   CSS puro, nessuna compilazione. I valori vengono dai prototipi del
   restyling 2026 (claude design/handoff): dove il foglio consegnato e il
   prototipo non coincidevano vale il prototipo.
   Ordine: 1 caratteri, 2 variabili, 3 base, 4 tipografia, 5 fondi e motivi,
           6 componenti, 7 testata e piè di pagina, 8 schede evento,
           9 moduli, 10 pagine, 11 testi dell'editor, 12 movimento.
   ========================================================================= */

/* 1. Caratteri: Archivo variabile, servito dal tema ---------------------- */
@font-face {
  font-family: 'Archivo';
  src: url('../fonts/archivo-latin-ext.woff2') format('woff2');
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  src: url('../fonts/archivo-latin.woff2') format('woff2');
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 2. Variabili ------------------------------------------------------------ */
:root {
  --gs-arancio: #D7351D;
  --gs-arancio-chiaro: #FF8A6B;
  --gs-viola: #370662;
  --gs-notte: #22093F;
  --gs-viola-2: #2E0F52;
  --gs-viola-bordo: #4A2470;
  --gs-inchiostro: #1A0B2B;
  --gs-carta: #F3EFF6;
  --gs-bianco: #FFFFFF;
  --gs-grigio-testo: #404040;
  --gs-grigio: #6B6B6B;
  --gs-muto: #5E5470;
  --gs-lilla: #CDB5F5;
  --gs-lilla-chiaro: #E4D8F5;
  --gs-divisore: #E0DAE8;
  --gs-errore: #B02814;
  --gs-errore-fondo: #FFF5F3;
  --gs-errore-avviso: #FFF0ED;
  --gs-errore-testo: #8A1E0F;

  --gs-font: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gs-stretto: 62%;
  --gs-semistretto: 75%;

  --gs-pad-x: clamp(16px, 4vw, 40px);
  --gs-max: calc(1320px + 2 * var(--gs-pad-x));
  --gs-curva: cubic-bezier(.2, .7, .2, 1);
  --gs-testata: 65px;
  --gs-rete: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50L0 16L28 0L56 16L56 50L28 66L28 100M28 0L28 34L0 50L0 84L28 100L56 84L56 50L28 34' fill='none' stroke='%23fff' stroke-opacity='.13' stroke-width='1.5'/%3E%3C/svg%3E");
}
@media (min-width: 900px) { :root { --gs-testata: 77px; } }

/* 3. Base ----------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--gs-bianco); color: var(--gs-inchiostro);
  font-family: var(--gs-font); font-size: 17px; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--gs-arancio); }
a:hover { color: var(--gs-inchiostro); }
button { font-family: inherit; }
:focus-visible { outline: 3px solid var(--gs-arancio); outline-offset: 3px; }
.gs-sec--viola :focus-visible, .gs-sec--notte :focus-visible, .gs-piede :focus-visible, .gs-menu :focus-visible { outline-color: var(--gs-arancio-chiaro); }
[id] { scroll-margin-top: calc(var(--gs-testata) + 8px); }
[hidden] { display: none !important; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.gs-salta { position: absolute; left: 8px; top: -80px; z-index: 200; padding: 12px 16px; background: var(--gs-inchiostro); color: var(--gs-bianco); font-weight: 700; }
.gs-salta:focus { top: 8px; color: var(--gs-bianco); }
.gs-accento { color: var(--gs-arancio); }

/* 4. Tipografia ----------------------------------------------------------- */
.gs-display { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(76px, 11.5vw, 184px); line-height: .82; text-transform: uppercase; letter-spacing: -.005em; }
.gs-titolo-pagina { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(72px, 11vw, 168px); line-height: .82; text-transform: uppercase; }
.gs-titolo-pagina--m { font-size: clamp(64px, 9vw, 136px); line-height: .84; }
.gs-titolo-pagina--work { font-size: clamp(64px, 10vw, 152px); }
.gs-titolo-evento { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(60px, 9vw, 136px); line-height: .84; text-transform: uppercase; text-wrap: balance; }
.gs-h2 { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(48px, 6.4vw, 96px); line-height: .86; text-transform: uppercase; }
.gs-h2--bilanciato { text-wrap: balance; }
.gs-h2--m { font-size: clamp(44px, 5.6vw, 80px); line-height: .88; }
.gs-h2--s { font-size: clamp(36px, 4vw, 56px); line-height: .9; }
.gs-h3 { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(30px, 3vw, 40px); line-height: 1; text-transform: uppercase; }
.gs-h4 { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 26px; line-height: 1.05; text-transform: uppercase; }
.gs-lead { margin: 0; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.55; max-width: 58ch; }
.gs-lead--chiaro { color: var(--gs-lilla-chiaro); }
.gs-etichetta { font-weight: 700; font-size: 12px; line-height: 1.3; letter-spacing: .1em; text-transform: uppercase; }
.gs-contatore { font-weight: 900; font-stretch: var(--gs-stretto); line-height: 1; color: transparent; -webkit-text-stroke: 2px var(--gs-arancio); }

/* 5. Layout, fondi, tagli e motivi --------------------------------------- */
.gs-wrap { max-width: var(--gs-max); margin: 0 auto; padding-left: var(--gs-pad-x); padding-right: var(--gs-pad-x); position: relative; }
.gs-sec--viola { background: var(--gs-viola); color: var(--gs-bianco); position: relative; overflow: hidden; }
.gs-sec--notte { background: var(--gs-notte); color: var(--gs-bianco); position: relative; }
.gs-sec--carta { background: var(--gs-carta); position: relative; }
.gs-sec--arancio { background: var(--gs-arancio); color: var(--gs-bianco); position: relative; }
.gs-taglio-basso { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 40px), 0 100%); padding-bottom: 40px; }

.gs-motivo {
  position: absolute; inset: 0; pointer-events: none;
  background-image: var(--gs-rete), repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 90px, transparent 90px 180px);
  background-position: 0 calc(var(--s, 0) * -0.18px), calc(var(--s, 0) * 0.12px) 0;
}
.gs-motivo--arancio { background-position: 0 calc(var(--s, 0) * -0.18px), calc(var(--s, 0) * -0.14px) 0; }
.gs-motivo--strisce { background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 90px, transparent 90px 180px); }
.gs-motivo--strisce-viola { background-image: repeating-linear-gradient(90deg, rgba(55,6,98,.10) 0 90px, transparent 90px 180px); }

.gs-campo-cerchio { position: absolute; width: min(70vw, 900px); aspect-ratio: 1; right: -18vw; top: -12%; border: 3px solid rgba(255,255,255,.12); border-radius: 50%; pointer-events: none;
  transform: translateY(calc(var(--s, 0) * 0.15px)) rotate(calc(var(--s, 0) * 0.02deg)); }
.gs-campo-cerchio::before { content: ''; position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; margin: -7px; background: rgba(255,255,255,.18); border-radius: 50%; }
.gs-campo-cerchio::after { content: ''; position: absolute; left: -60%; right: 50%; top: 50%; height: 3px; background: rgba(255,255,255,.12); }
.gs-cerchio { position: absolute; width: min(80vw, 820px); aspect-ratio: 1; right: -22vw; top: -20%; border: 3px solid rgba(255,255,255,.12); border-radius: 50%; pointer-events: none; }
.gs-cerchio--basso { right: auto; left: -24vw; top: auto; bottom: -40%; }
.gs-cerchio--alto { top: -30%; }
.gs-campo-area { position: absolute; left: -3vw; bottom: -4px; width: min(46vw, 620px); height: min(34vw, 300px); border: 3px solid rgba(255,255,255,.11); border-bottom: 0; pointer-events: none;
  transform: translateY(calc(var(--s, 0) * -0.08px)); }
.gs-campo-area--destra { left: auto; right: -3vw; }
.gs-campo-area--ferma { transform: none; }
.gs-campo-area > span:first-child { position: absolute; left: 24%; right: 24%; bottom: 0; height: 38%; border: 3px solid rgba(255,255,255,.11); border-bottom: 0; }
.gs-campo-area > span:last-child { position: absolute; left: 50%; top: -1px; width: 36%; aspect-ratio: 2/1; transform: translate(-50%, -100%); border: 3px solid rgba(255,255,255,.11); border-bottom: 0; border-radius: 999px 999px 0 0; }

.gs-eco { position: absolute; white-space: nowrap; pointer-events: none; font-weight: 900; font-stretch: var(--gs-stretto);
  font-size: clamp(140px, 22vw, 340px); line-height: .8; text-transform: uppercase; color: transparent; -webkit-text-stroke: 2px rgba(55,6,98,.12);
  top: clamp(40px, 5vw, 72px); left: 0; transform: translateX(calc(var(--s, 0) * -0.12px + 4vw)); }
.gs-eco--notte { -webkit-text-stroke-color: rgba(255,255,255,.09); top: clamp(70px, 7vw, 110px); left: auto; right: 0; transform: translateX(calc(var(--s, 0) * 0.1px - 30vw)); }

/* 6. Componenti ----------------------------------------------------------- */
.gs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; height: 52px; padding: 0 26px; border: 0;
  background: var(--gs-arancio); color: var(--gs-bianco); text-decoration: none; cursor: pointer;
  font: 700 15px/1 var(--gs-font); letter-spacing: .06em; text-transform: uppercase;
  transition: background .15s ease, color .15s ease, transform .15s ease; }
.gs-btn:hover { background: var(--gs-notte); color: var(--gs-bianco); }
.gs-btn--su-scuro:hover { background: var(--gs-bianco); color: var(--gs-inchiostro); }
.gs-btn--grande { height: 56px; padding: 0 28px; font-weight: 800; font-size: 16px; }
.gs-btn--contorno-chiaro { background: transparent; border: 2px solid var(--gs-bianco); padding: 0 24px; }
.gs-btn--contorno-chiaro:hover { background: var(--gs-bianco); color: var(--gs-inchiostro); }
.gs-btn--contorno { background: var(--gs-bianco); border: 2px solid var(--gs-inchiostro); color: var(--gs-inchiostro); padding: 0 22px; }
.gs-btn--contorno:hover { background: var(--gs-notte); color: var(--gs-bianco); }
.gs-btn--notte { background: var(--gs-notte); padding: 0 22px; }
.gs-btn--notte:hover { background: var(--gs-arancio); color: var(--gs-bianco); }
.gs-btn--viola { background: var(--gs-viola); }
.gs-btn--viola:hover { background: var(--gs-arancio); color: var(--gs-bianco); transform: rotate(-2deg) scale(1.03); }
.gs-btn--bianco { background: var(--gs-bianco); color: var(--gs-arancio); }
.gs-btn--bianco:hover { background: var(--gs-notte); color: var(--gs-bianco); }
.gs-btn[disabled] { background: var(--gs-grigio); cursor: progress; }
.gs-link-freccia { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--gs-inchiostro); text-decoration: none;
  font-weight: 700; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; box-shadow: inset 0 -2px 0 var(--gs-arancio); }
.gs-link-freccia:hover { color: var(--gs-arancio); }

.gs-sticker { margin: 0; align-self: flex-start; display: flex; flex-direction: column; transform: rotate(-2.5deg); transform-origin: left center; }
.gs-sticker > span { align-self: flex-start; padding: 6px 14px; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(22px, 2.2vw, 32px); line-height: 1.05; text-transform: uppercase; }
.gs-sticker > span:first-child { background: var(--gs-inchiostro); color: var(--gs-bianco); }
.gs-sticker > span + span { background: var(--gs-bianco); color: var(--gs-inchiostro); border: 3px solid var(--gs-inchiostro); margin-left: 22px; }
.gs-targhetta { margin: 0; align-self: flex-start; background: var(--gs-bianco); color: var(--gs-inchiostro); border: 3px solid var(--gs-inchiostro); padding: 6px 14px; transform: rotate(-2deg);
  font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(20px, 2vw, 28px); line-height: 1.05; text-transform: uppercase; box-shadow: 6px 6px 0 var(--gs-arancio); }
.gs-richiamo { margin: 6px 0 0; align-self: flex-start; padding: 10px 16px; transform: rotate(-2.5deg); font-weight: 800; font-stretch: var(--gs-semistretto); line-height: 1.1; text-transform: uppercase; max-width: 26ch; }
.gs-richiamo--arancio { background: var(--gs-arancio); color: var(--gs-bianco); font-size: clamp(18px, 1.8vw, 22px); box-shadow: 6px 6px 0 var(--gs-inchiostro); }
.gs-richiamo--inchiostro { background: var(--gs-inchiostro); color: var(--gs-bianco); font-size: 22px; box-shadow: 6px 6px 0 var(--gs-viola); }

.gs-avviso { margin: 0; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 14px; align-items: start; padding: 18px 20px; background: var(--gs-carta); font-size: 16px; line-height: 1.5; color: var(--gs-inchiostro); }
.gs-avviso::before { content: '!'; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--gs-notte); color: var(--gs-bianco); font-weight: 900; font-size: 18px; }
.gs-avviso a { color: var(--gs-arancio); font-weight: 700; }
.gs-avviso--nudo { padding: 0; background: transparent; max-width: 70ch; }
.gs-avviso--nudo::before { background: var(--gs-inchiostro); }

.gs-quote { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.gs-quota { padding: clamp(14px, 2vw, 22px); display: flex; flex-direction: column; gap: 4px; border: 3px solid var(--gs-inchiostro); text-decoration: none; transition: rotate .25s, translate .25s; }
.gs-quota:hover { rotate: 0deg; translate: 0 -4px; }
.gs-quota--a { background: var(--gs-bianco); color: var(--gs-inchiostro); box-shadow: 8px 8px 0 var(--gs-arancio); rotate: -2deg; }
.gs-quota--a:hover { color: var(--gs-inchiostro); }
.gs-quota--b { background: var(--gs-notte); color: var(--gs-bianco); border-color: var(--gs-bianco); box-shadow: 8px 8px 0 var(--gs-inchiostro); rotate: 1.5deg; }
.gs-quota--b:hover { color: var(--gs-bianco); }
.gs-quota__nome { font-weight: 700; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.gs-quota__prima { font-size: 15px; color: var(--gs-muto); text-decoration: line-through; min-height: 1.55em; }
.gs-quota__prezzo { font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(64px, 7vw, 96px); line-height: .85; }
.gs-quota--a .gs-quota__prezzo { color: var(--gs-arancio); }
.gs-quote--home { gap: 12px; }
.gs-quote--home .gs-quota { padding: clamp(16px, 2vw, 24px); gap: 6px; box-shadow: 8px 8px 0 var(--gs-inchiostro); border-color: var(--gs-inchiostro); }
.gs-quote--home .gs-quota--b { background: var(--gs-viola); }
.gs-quote--home .gs-quota__prima { color: var(--gs-grigio); }

.gs-foto-sfalsata { position: relative; min-width: 0; }
.gs-foto-sfalsata::before { content: ''; position: absolute; inset: 0; background: var(--gs-arancio); }
.gs-foto-sfalsata img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-foto-sfalsata--taglio::before { transform: translate(18px, -18px); clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%); }
.gs-foto-sfalsata--taglio .gs-foto-sfalsata__dentro { position: absolute; inset: 0; clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%); background: var(--gs-viola-2); }
.gs-foto-sfalsata--taglio-10::before { clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); }
.gs-foto-sfalsata--taglio-10 .gs-foto-sfalsata__dentro { clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); }
.gs-foto-sfalsata--cornice img { border: 3px solid var(--gs-bianco); }
.gs-foto-sfalsata--cornice-scura img { border: 3px solid var(--gs-inchiostro); }

.gs-whatsapp { position: relative; background: var(--gs-bianco); border: 3px solid var(--gs-inchiostro); box-shadow: 12px 12px 0 var(--gs-arancio); padding: clamp(22px, 3vw, 36px);
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px 40px; align-items: center; }
.gs-whatsapp__targa { position: absolute; top: -18px; left: 24px; background: var(--gs-viola); color: var(--gs-bianco); padding: 6px 12px; font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; transform: rotate(-3deg); }
.gs-whatsapp__testi { display: flex; flex-direction: column; gap: 8px; }
.gs-whatsapp__titolo { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.1; text-transform: uppercase; }
.gs-whatsapp__nota { margin: 0; font-size: 15px; line-height: 1.5; color: var(--gs-grigio-testo); }
.gs-whatsapp .gs-btn { justify-self: start; }
.gs-whatsapp--vuoto { border: 0; box-shadow: 10px 10px 0 var(--gs-viola); padding: clamp(28px, 4vw, 48px); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.gs-whatsapp--vuoto .gs-whatsapp__titolo { font-size: clamp(24px, 2.4vw, 32px); }
.gs-whatsapp--elenco { box-shadow: 10px 10px 0 var(--gs-viola); padding: clamp(24px, 3vw, 40px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.gs-whatsapp__azioni { display: flex; flex-wrap: wrap; gap: 12px; }

/* 7. Testata e piè di pagina ---------------------------------------------- */
.gs-testata { position: sticky; top: 0; z-index: 50; background: var(--gs-bianco); border-bottom: 1px solid #E6E6E6; }
.gs-testata__riga { max-width: 1400px; margin: 0 auto; padding: 0 12px 0 16px; height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.gs-testata__logo { display: flex; align-items: center; flex: none; }
.gs-testata__logo img { width: 44px; height: 44px; }
.gs-nav, .gs-testata__cta { display: none; }
.gs-nav a { display: flex; align-items: center; height: 44px; padding: 0 14px; color: var(--gs-inchiostro); text-decoration: none; font-weight: 700; font-size: 15px; letter-spacing: .04em; text-transform: uppercase; transition: color .15s ease; }
.gs-nav a:hover { color: var(--gs-arancio); }
.gs-nav a[aria-current="page"] { color: var(--gs-arancio); box-shadow: inset 0 -3px 0 var(--gs-arancio); }
.gs-testata__cta { align-items: center; height: 48px; padding: 0 24px; background: var(--gs-arancio); color: var(--gs-bianco); text-decoration: none; font-weight: 700; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; transition: background .15s ease; }
.gs-testata__cta:hover { background: var(--gs-notte); color: var(--gs-bianco); }
.gs-menu-btn { display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 12px; background: transparent; border: 0; color: var(--gs-inchiostro); font: 700 15px/1 var(--gs-font); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.gs-menu-btn__icona { display: flex; flex-direction: column; gap: 5px; width: 24px; }
.gs-menu-btn__icona span { height: 3px; background: var(--gs-notte); }
.gs-menu-btn__icona span:last-child { background: var(--gs-arancio); width: 16px; }
.gs-menu-btn[aria-expanded="true"] .gs-menu-btn__icona { position: relative; height: 24px; display: block; }
.gs-menu-btn[aria-expanded="true"] .gs-menu-btn__icona span { position: absolute; left: 0; right: 0; top: 10px; width: auto; background: var(--gs-arancio); transform: rotate(45deg); }
.gs-menu-btn[aria-expanded="true"] .gs-menu-btn__icona span:nth-child(2) { display: none; }
.gs-menu-btn[aria-expanded="true"] .gs-menu-btn__icona span:last-child { transform: rotate(-45deg); }
@media (min-width: 900px) {
  .gs-testata__riga { height: 76px; padding: 0 40px; justify-content: flex-start; }
  .gs-testata__logo img { width: 52px; height: 52px; }
  .gs-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
  .gs-testata__cta { display: inline-flex; }
  .gs-menu-btn { display: none; }
}
.gs-menu { position: fixed; left: 0; right: 0; bottom: 0; top: var(--gs-testata); z-index: 60; background: var(--gs-viola); color: var(--gs-bianco); overflow: auto; display: flex; flex-direction: column; }
.gs-menu__nav { position: relative; display: flex; flex-direction: column; padding: 8px 16px 0; }
.gs-menu__voce { display: flex; align-items: center; justify-content: space-between; min-height: 73px; border-bottom: 1px solid var(--gs-viola-bordo); color: var(--gs-bianco); text-decoration: none;
  font-weight: 900; font-stretch: var(--gs-stretto); font-size: 44px; line-height: 1; text-transform: uppercase; letter-spacing: .005em; }
.gs-menu__voce:hover { color: var(--gs-bianco); }
.gs-menu__voce::after { content: ''; width: 14px; height: 14px; background: var(--gs-arancio); transform: rotate(45deg); }
.gs-menu__fondo { position: relative; padding: 24px 16px 32px; display: flex; flex-direction: column; gap: 20px; margin-top: auto; }
.gs-menu__fondo .gs-btn { height: 56px; font-size: 16px; }
.gs-menu__recapiti { display: grid; gap: 10px; font-size: 15px; line-height: 1.5; }
.gs-menu__recapiti a { color: var(--gs-bianco); text-decoration: none; display: flex; justify-content: space-between; gap: 16px; min-height: 45px; align-items: center; border-bottom: 1px solid var(--gs-viola-bordo); }
.gs-menu__recapiti a:last-child { border-bottom: 0; min-height: 44px; }
.gs-menu__recapiti a > span:first-child { color: var(--gs-lilla); }

.gs-piede { position: relative; background: var(--gs-notte); color: var(--gs-bianco); clip-path: polygon(0 48px, 100% 0, 100% 100%, 0 100%); padding-top: 48px; margin-top: -1px; }
.gs-piede__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: 72px var(--gs-pad-x) 0; }
.gs-piede__colonne { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px 32px; }
.gs-piede__colonna { display: flex; flex-direction: column; }
.gs-piede__colonna--societa { gap: 16px; }
.gs-piede__colonna--contatti { gap: 8px; }
.gs-piede__colonna--societa img { width: 88px; height: 88px; }
.gs-piede__societa { margin: 0; font-size: 14px; line-height: 1.55; color: var(--gs-lilla-chiaro); }
.gs-piede__titolo { margin: 0 0 8px; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 20px; line-height: 1.1; text-transform: uppercase; letter-spacing: .02em; color: var(--gs-arancio); }
.gs-piede a { color: var(--gs-bianco); }
.gs-piede a:hover { color: var(--gs-arancio-chiaro); }
.gs-piede__link { text-decoration: none; font-size: 15px; min-height: 44px; display: flex; align-items: center; }
.gs-piede__recapito { text-decoration: none; font-size: 15px; line-height: 1.4; min-height: 44px; display: flex; flex-direction: column; justify-content: center; }
.gs-piede__recapito span { font-size: 12px; color: var(--gs-lilla); text-transform: uppercase; letter-spacing: .08em; }
.gs-piede__cta { margin-top: 8px; align-self: flex-start; height: 48px; padding: 0 22px; font-size: 14px; }
.gs-piede .gs-piede__cta:hover { background: var(--gs-bianco); color: var(--gs-inchiostro); }
.gs-piede__evento { text-decoration: none; min-height: 57px; display: flex; flex-direction: column; justify-content: center; padding: 6px 0; border-bottom: 1px solid var(--gs-viola-bordo); }
.gs-piede__evento span:first-child { font-size: 15px; line-height: 1.3; }
.gs-piede__evento span:last-child { font-size: 12px; line-height: 1.4; color: var(--gs-lilla); text-transform: uppercase; letter-spacing: .06em; }
.gs-piede__vuoto { margin: 0; font-size: 14px; line-height: 1.5; color: var(--gs-lilla); }
.gs-piede__legale { margin-top: 56px; padding: 20px 0 28px; border-top: 1px solid var(--gs-viola-bordo); display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; font-size: 13px; line-height: 1.5; color: var(--gs-lilla); }
.gs-piede__legale a { display: inline-flex; align-items: center; min-height: 44px; }
.gs-piede__firma { margin-left: auto; }

/* 8. Schede evento e stati ------------------------------------------------ */
.gs-stato { display: inline-flex; align-items: center; gap: 8px; height: 28px; padding: 0 10px; font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.gs-stato--aperte { background: var(--gs-arancio); color: var(--gs-bianco); }
.gs-stato--aperte::before { content: ''; width: 7px; height: 7px; background: var(--gs-bianco); transform: rotate(45deg); }
.gs-stato--card.gs-stato--aperte { font-weight: 800; transform: rotate(-3deg); box-shadow: 3px 3px 0 var(--gs-inchiostro); }
.gs-stato--card.gs-stato--non-aperte { height: 31px; border: 1.5px solid var(--gs-inchiostro); padding: 0 9px; color: var(--gs-inchiostro); }
.gs-stato--card.gs-stato--esauriti { background: var(--gs-notte); color: var(--gs-bianco); }
.gs-stato--chiuse, .gs-stato--concluso { background: #E6E6E6; color: var(--gs-grigio-testo); }
.gs-stato--hero { height: 30px; letter-spacing: .08em; }
.gs-stato--hero.gs-stato--non-aperte { border: 1.5px solid var(--gs-bianco); padding: 0 9px; color: var(--gs-bianco); }
.gs-stato--hero.gs-stato--esauriti { background: var(--gs-bianco); color: var(--gs-inchiostro); font-weight: 800; box-shadow: inset 0 0 0 2px var(--gs-arancio); }
.gs-stato--fascia { border: 1.5px solid var(--gs-bianco); background: transparent; }
.gs-tipo { display: inline-flex; align-items: center; height: 30px; padding: 0 10px; background: var(--gs-bianco); color: var(--gs-inchiostro); font-weight: 700; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.gs-scheda { display: flex; flex-direction: column; height: 100%; background: var(--gs-bianco); color: var(--gs-inchiostro); text-decoration: none;
  border: 3px solid var(--gs-inchiostro); box-shadow: 0 0 0 var(--gs-viola);
  transition: transform .3s var(--gs-curva), box-shadow .3s var(--gs-curva); }
.gs-scheda:hover { color: var(--gs-inchiostro); transform: translate(-4px, -6px) rotate(-.8deg); box-shadow: 10px 10px 0 var(--gs-viola); }
.gs-scheda__locandina { box-sizing: content-box; position: relative; aspect-ratio: 4/5; background: var(--gs-viola); overflow: hidden; border-bottom: 3px solid var(--gs-inchiostro); }
.gs-scheda__locandina img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.gs-scheda--concluso .gs-scheda__locandina img { filter: grayscale(1); opacity: .7; }
.gs-scheda__cerchio { position: absolute; width: 150%; aspect-ratio: 1; left: 40%; top: -30%; border: 3px solid rgba(255,255,255,.14); border-radius: 50%; }
.gs-scheda__senza { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; color: var(--gs-bianco); }
.gs-scheda__senza-tipo { font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.gs-scheda__data { display: flex; align-items: flex-end; gap: 10px; }
.gs-scheda__giorno { font-weight: 900; font-stretch: var(--gs-stretto); font-size: 128px; line-height: .78; color: var(--gs-arancio); }
.gs-scheda__mese { font-weight: 900; font-stretch: var(--gs-stretto); font-size: 44px; line-height: .85; }
.gs-scheda__senza-titolo { position: relative; }
.gs-scheda__senza-titolo::before { content: ''; position: absolute; left: -22px; right: -22px; top: -14px; height: 6px; background: var(--gs-arancio); transform: rotate(-3deg); }
.gs-scheda__senza-titolo span { display: block; font-weight: 900; font-stretch: var(--gs-stretto); font-size: 44px; line-height: .9; text-transform: uppercase; text-wrap: balance; }
.gs-scheda__corpo { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.gs-scheda__testa { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.gs-scheda__tipo { font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--gs-viola); }
.gs-scheda__titolo { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 30px; line-height: 1; text-transform: uppercase; text-wrap: balance; }
.gs-scheda__dati { margin: 0; display: grid; gap: 8px; font-size: 15px; line-height: 1.4; }
.gs-scheda__dati > div { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 8px; }
.gs-scheda__dati dt { font-size: 12px; line-height: 1.7; letter-spacing: .08em; text-transform: uppercase; color: var(--gs-grigio); }
.gs-scheda__dati dd { margin: 0; }
.gs-scheda__piede { margin-top: auto; padding-top: 14px; border-top: 1px solid #E6E6E6; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.gs-scheda__nota { font-size: 13px; line-height: 1.35; color: var(--gs-grigio); }
.gs-scheda__vai { flex: none; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--gs-arancio); margin-left: auto; }
.gs-scheda__vai span { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--gs-arancio); color: var(--gs-bianco); font-size: 16px; transform: rotate(45deg); }
.gs-scheda__vai span span { background: none; width: auto; height: auto; transform: rotate(-45deg); }

.gs-griglia-schede { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 28px; }
.gs-griglia-schede--passati { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 24px; }
.gs-griglia-schede > * { min-width: 0; }

/* 9. Moduli --------------------------------------------------------------- */
.gs-contenitore-modulo { background: var(--gs-bianco); border: 3px solid var(--gs-inchiostro); border-top: 8px solid var(--gs-arancio); box-shadow: 12px 12px 0 var(--gs-viola); }
.gs-modulo { margin-top: 20px; display: flex; flex-direction: column; gap: 20px; }
.gs-trappola { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.gs-modulo__passo { margin: 0; padding: 0; border: 0; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.gs-modulo__legenda { padding: 0; margin: 0 0 4px; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 24px; line-height: 1.05; text-transform: uppercase; }
.gs-script .gs-modulo--passi .gs-modulo__legenda { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.gs-modulo__campi { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px 16px; }
.gs-modulo--2col .gs-modulo__campi { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.gs-modulo__nota { margin: -8px 0 0; font-size: 13px; color: var(--gs-grigio); }
.gs-campo { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.gs-campo--largo { grid-column: 1 / -1; }
.gs-campo > label, .gs-campo > legend { padding: 0; font-weight: 600; font-size: 15px; line-height: 1.3; }
.gs-campo > legend { margin-bottom: 8px; }
.gs-obbl { color: var(--gs-arancio); }
.gs-input { width: 100%; height: 52px; padding: 0 14px; border: 1.5px solid var(--gs-inchiostro); border-radius: 0; background: var(--gs-bianco); color: var(--gs-inchiostro);
  font: 400 16px/1.2 var(--gs-font); outline: none; transition: border-color .15s ease, box-shadow .15s ease; -webkit-appearance: none; appearance: none; }
textarea.gs-input { height: auto; min-height: 160px; padding: 12px 14px; line-height: 1.5; resize: vertical; }
.gs-input:focus { border-color: var(--gs-arancio); box-shadow: 0 0 0 3px rgba(215,53,29,.28); }
.gs-input[aria-invalid="true"] { border: 2px solid var(--gs-errore); background: var(--gs-errore-fondo); }
.gs-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(176,40,20,.28); }
.gs-errore { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 1.35; font-weight: 600; color: var(--gs-errore); }
.gs-errore::before { content: ''; flex: none; width: 8px; height: 8px; background: var(--gs-errore); transform: rotate(45deg); }
.gs-riepilogo-errori { margin: 0; padding: 12px 14px; background: var(--gs-errore-avviso); border: 1.5px solid var(--gs-errore); color: var(--gs-errore-testo); font-size: 15px; line-height: 1.4; font-weight: 600; }
.gs-scelte { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-scelta { flex: 1 1 140px; display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 10px 14px; border: 1.5px solid var(--gs-inchiostro); background: var(--gs-bianco); font-size: 16px; line-height: 1.3; cursor: pointer; }
.gs-scelta:hover { border-color: var(--gs-arancio); }
.gs-scelta:has(input:checked) { border: 2px solid var(--gs-arancio); background: var(--gs-errore-fondo); font-weight: 600; }
.gs-scelta input, .gs-consenso input { width: 22px; height: 22px; margin: 0; accent-color: var(--gs-arancio); flex: none; }
.gs-consenso { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start; min-height: 44px; font-size: 15px; line-height: 1.45; font-weight: 400; cursor: pointer; }
.gs-consenso input { margin-top: 1px; }
.gs-consenso a { color: var(--gs-arancio); font-weight: 600; }
.gs-passi { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; }
.gs-passi li { display: flex; flex-direction: column; gap: 8px; min-width: 0; font-size: 12px; line-height: 1.3; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--gs-grigio); }
.gs-passi li::before { content: ''; height: 6px; background: #E0E0E0; }
.gs-passi li.is-fatto { color: var(--gs-inchiostro); }
.gs-passi li.is-fatto::before { background: var(--gs-notte); }
.gs-passi li[aria-current="step"] { color: var(--gs-arancio); }
.gs-passi li[aria-current="step"]::before { background: var(--gs-arancio); }
.gs-modulo__azioni { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.gs-modulo__azioni .gs-btn { height: 56px; padding: 0 20px; }
.gs-modulo__azioni .gs-btn--contorno { flex: 0 0 auto; }
.gs-modulo__avanti, .gs-modulo__invia { flex: 1 1 220px; font-weight: 800; line-height: 1.1; }
.gs-spinner { width: 18px; height: 18px; border: 3px solid rgba(255,255,255,.4); border-top-color: var(--gs-bianco); border-radius: 50%; animation: gs-spin .8s linear infinite; }
@keyframes gs-spin { to { transform: rotate(360deg); } }
.gs-esito { margin-top: 20px; display: flex; flex-direction: column; gap: 16px; outline: none; }
.gs-successo { display: flex; gap: 16px; align-items: flex-start; padding: 20px; background: var(--gs-notte); color: var(--gs-bianco); }
.gs-successo__segno { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: var(--gs-arancio); color: var(--gs-bianco); font-weight: 900; font-size: 22px; }
.gs-successo p { margin: 0; font-size: 17px; line-height: 1.5; font-weight: 600; }
.gs-riepilogo { margin: 0; display: grid; gap: 0; font-size: 15px; line-height: 1.4; }
.gs-riepilogo > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid #E6E6E6; }
.gs-riepilogo dt { color: var(--gs-grigio); }
.gs-riepilogo dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.gs-modulo-chiuso { margin-top: 20px; padding: 24px; background: var(--gs-carta); display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.gs-modulo-chiuso::before { content: ''; width: 40px; height: 40px; background: var(--gs-notte); transform: rotate(45deg); display: block; margin: 6px 0 4px 6px; }
.gs-modulo-chiuso__titolo { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: 36px; line-height: .9; text-transform: uppercase; }
.gs-modulo-chiuso__nota { margin: 0; font-size: 16px; line-height: 1.5; color: var(--gs-grigio-testo); }

/* 10. Pagine -------------------------------------------------------------- */

/* Homepage */
.gs-apertura__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: clamp(40px, 6vw, 88px) var(--gs-pad-x) 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: end; }
.gs-apertura__testi { padding-bottom: clamp(8px, 4vw, 64px); display: flex; flex-direction: column; gap: clamp(18px, 2vw, 28px); min-width: 0; }
.gs-apertura__testi .gs-lead { max-width: 42ch; }
.gs-apertura__azioni { display: flex; flex-wrap: wrap; gap: 12px; }
.gs-apertura__foto { aspect-ratio: 3 / 2; }
.gs-apertura__foto img { object-position: 52% 35%; }
@media (min-width: 1024px) {
  .gs-apertura__dentro { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  .gs-apertura__foto { aspect-ratio: 4 / 4.4; }
}
.gs-fascia-aperti { position: relative; background: var(--gs-arancio); color: var(--gs-bianco); }
.gs-fascia-aperti a { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; min-height: 97px; padding: 12px 0; color: var(--gs-bianco); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.35); }
.gs-fascia-aperti a:hover { color: var(--gs-bianco); background: rgba(34,9,63,.12); }
.gs-fascia-aperti__titolo { font-weight: 900; font-stretch: var(--gs-stretto); font-size: 30px; line-height: 1; text-transform: uppercase; }
.gs-fascia-aperti__dove { font-size: 15px; line-height: 1.4; }
.gs-fascia-aperti__vai { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.gs-fascia-aperti__vai span { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--gs-bianco); color: var(--gs-arancio); }

.gs-nastri { position: relative; height: clamp(110px, 12vw, 170px); margin: 0 0 -40px; overflow: hidden; z-index: 3; pointer-events: none; }
.gs-nastro { position: absolute; left: -10%; right: -10%; top: 50%; padding: 12px 0; white-space: nowrap; overflow: hidden; }
.gs-nastro--a { background: var(--gs-inchiostro); transform: translateY(-50%) rotate(2.4deg); }
.gs-nastro--b { background: var(--gs-arancio); transform: translateY(-50%) rotate(-2deg); box-shadow: 0 10px 30px rgba(34,9,63,.25); }
.gs-nastro__riga { display: flex; gap: 28px; width: max-content; }
.gs-nastro--a .gs-nastro__riga { transform: translateX(calc(var(--s, 0) * 0.35px - 600px)); }
.gs-nastro--b .gs-nastro__riga { transform: translateX(calc(var(--s, 0) * -0.45px)); }
.gs-nastro__voce { display: inline-flex; align-items: center; gap: 28px; font-weight: 900; font-stretch: var(--gs-stretto); font-size: 30px; line-height: 1; text-transform: uppercase; color: var(--gs-bianco); }
.gs-nastro__voce::after { content: ''; width: 12px; height: 12px; background: var(--gs-arancio); transform: rotate(45deg); }
.gs-nastro--b .gs-nastro__voce::after { background: var(--gs-bianco); }

.gs-home-eventi { overflow: hidden; padding: clamp(88px, 9vw, 128px) 0 clamp(56px, 7vw, 96px); }
.gs-home-eventi__testa { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: clamp(28px, 3.5vw, 48px); }
.gs-home-eventi__testa .gs-h2 { max-width: 12ch; text-wrap: balance; }
.gs-home-eventi__conteggio { position: relative; margin: 10px 16px 0; font-size: 13px; color: var(--gs-viola-bordo); }
.gs-home-eventi__lista { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: min(82%, 340px); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 16px 12px; scroll-padding: 0 16px; -webkit-overflow-scrolling: touch; }
.gs-home-eventi__lista > * { scroll-snap-align: start; min-width: 0; }
@media (min-width: 760px) {
  .gs-home-eventi__lista { max-width: var(--gs-max); margin: 0 auto; padding: 0 var(--gs-pad-x); grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px; overflow: visible; scroll-snap-type: none; }
  .gs-home-eventi__conteggio { display: none; }
}
.gs-home-whatsapp { padding: 0 0 clamp(72px, 8vw, 112px); }

.gs-scuola { clip-path: polygon(0 0, 100% 56px, 100% 100%, 0 calc(100% - 56px)); padding: clamp(104px, 10vw, 152px) 0; }
.gs-scuola__testa { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(24px, 4vw, 64px); align-items: end; }
.gs-scuola__testa .gs-lead { line-height: 1.6; color: var(--gs-lilla-chiaro); }
.gs-scuola__testa .gs-lead strong { color: var(--gs-bianco); }
.gs-caselle { margin: clamp(40px, 5vw, 72px) 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 2px; background: var(--gs-viola-bordo); border: 2px solid var(--gs-viola-bordo); }
.gs-caselle > div { background: var(--gs-viola-2); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.gs-caselle dt { font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 22px; line-height: 1; text-transform: uppercase; color: var(--gs-arancio); }
.gs-caselle dd { margin: 0; font-size: 16px; line-height: 1.5; }
.gs-pilastri { list-style: none; margin: clamp(48px, 6vw, 88px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.gs-pilastro { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; min-height: 228px; padding: 22px; background: var(--gs-viola); border: 2px solid var(--gs-viola-bordo);
  transition: background .25s ease, transform .25s var(--gs-curva), box-shadow .25s; }
.gs-pilastro:hover { background: var(--gs-arancio); transform: translateY(-6px) rotate(-1deg); box-shadow: 8px 8px 0 var(--gs-inchiostro); }
.gs-pilastro__n { font-weight: 900; font-stretch: var(--gs-stretto); font-size: 72px; line-height: .8; color: transparent; -webkit-text-stroke: 2px var(--gs-arancio-chiaro); }
.gs-pilastro__testo { font-weight: 700; font-size: 16px; line-height: 1.4; text-transform: uppercase; letter-spacing: .03em; }

.gs-sez { padding: clamp(64px, 8vw, 112px) 0; }
.gs-allenamenti .gs-h2 { margin: 0 0 clamp(28px, 3.5vw, 48px); }
.gs-allenamenti__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 24px; }
.gs-allenamento { display: flex; flex-direction: column; border: 3px solid var(--gs-inchiostro); box-shadow: 10px 10px 0 var(--gs-viola); background: var(--gs-bianco); }
.gs-allenamento__foto { position: relative; aspect-ratio: 1000/454; background: #E6E6E6; overflow: hidden; }
.gs-allenamento__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gs-allenamento__corpo { padding: clamp(20px, 2.4vw, 32px); display: flex; flex-direction: column; gap: 14px; flex: 1; }
.gs-allenamento__corpo p { margin: 0; color: var(--gs-grigio-testo); max-width: 56ch; }
.gs-allenamento__corpo p strong { color: var(--gs-inchiostro); font-weight: 600; }
.gs-allenamento__corpo .gs-btn { margin-top: auto; align-self: flex-start; }

.gs-fascia-tesseramento { clip-path: polygon(0 40px, 100% 0, 100% calc(100% - 40px), 0 100%); padding: clamp(88px, 9vw, 128px) 0; }
.gs-fascia-tesseramento__dentro { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(32px, 4vw, 64px); align-items: center; }
.gs-fascia-tesseramento__testi { display: flex; flex-direction: column; gap: 18px; }
.gs-fascia-tesseramento__testi .gs-lead { max-width: 46ch; }
.gs-fascia-tesseramento__azioni { display: flex; flex-direction: column; gap: 16px; }
.gs-fascia-tesseramento__azioni .gs-btn { align-self: flex-start; }

.gs-chi-breve { overflow-x: clip; }
.gs-chi-breve__dentro { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(28px, 4vw, 64px); align-items: center; }
.gs-chi-breve__foto { max-width: 434px; width: 100%; justify-self: center; aspect-ratio: 434/572; position: relative; }
.gs-chi-breve__foto::before { content: ''; position: absolute; inset: 0; background: var(--gs-arancio); transform: translate(-18px, 18px) rotate(-3deg); }
.gs-chi-breve__foto::after { content: ''; position: absolute; inset: 0; background: var(--gs-viola); transform: translate(14px, -12px) rotate(2deg); }
.gs-chi-breve__foto img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; clip-path: polygon(0 4%, 100% 0, 100% 96%, 0 100%); }
.gs-chi-breve__testi { display: flex; flex-direction: column; gap: 20px; }
.gs-chi-breve__testi .gs-h2 { font-size: clamp(44px, 5.6vw, 84px); line-height: .88; text-wrap: balance; }
.gs-chi-breve__ruolo { margin: 0; font-weight: 700; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; color: var(--gs-grigio-testo); }

/* Apertura delle pagine interne */
.gs-apertura-pagina__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: clamp(36px, 5vw, 72px) var(--gs-pad-x) clamp(40px, 5vw, 72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(28px, 4vw, 64px); align-items: end; }
.gs-apertura-pagina__testi { display: flex; flex-direction: column; gap: clamp(16px, 2vw, 24px); min-width: 0; }
.gs-apertura-pagina--colonna .gs-apertura-pagina__dentro { display: flex; flex-direction: column; align-items: stretch; gap: clamp(16px, 2vw, 24px); padding-bottom: clamp(40px, 5vw, 64px); }

/* Elenco degli eventi */
.gs-filtri { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.gs-filtro { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; background: transparent; border: 2px solid var(--gs-bianco); color: var(--gs-bianco); font: 700 14px/1 var(--gs-font); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: background .15s, color .15s; }
.gs-filtro:hover { background: var(--gs-bianco); color: var(--gs-viola); }
.gs-filtro span { font-size: 12px; opacity: .8; }
.gs-filtro[aria-pressed="true"] { background: var(--gs-arancio); border-color: var(--gs-arancio); color: var(--gs-bianco); }
.gs-filtro[aria-pressed="true"] span { opacity: .9; }
.gs-eventi-prossimi { margin-top: -40px; padding: clamp(80px, 8vw, 112px) 0 clamp(56px, 7vw, 96px); }
.gs-eventi-passati { padding: clamp(56px, 7vw, 96px) 0 clamp(80px, 9vw, 120px); }
.gs-eventi__testa { display: flex; align-items: baseline; gap: 16px; margin-bottom: clamp(24px, 3vw, 40px); }
.gs-eventi__testa .gs-contatore { font-size: clamp(28px, 3vw, 44px); }
.gs-eventi-passati .gs-eventi__testa { border-top: 3px solid var(--gs-inchiostro); padding-top: 20px; }
.gs-eventi-passati .gs-h2 { font-size: clamp(40px, 4.8vw, 68px); line-height: .88; color: var(--gs-viola); }
.gs-eventi-passati .gs-contatore { font-size: clamp(26px, 2.6vw, 38px); -webkit-text-stroke-color: var(--gs-viola); }
.gs-eventi__vuoto { margin: 0; padding: 20px; background: var(--gs-carta); color: var(--gs-muto); }

/* Pagina evento */
.gs-evento-apertura__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: clamp(20px, 3vw, 36px) var(--gs-pad-x) clamp(40px, 5vw, 72px); display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.gs-evento-apertura__testi { display: flex; flex-direction: column; gap: clamp(16px, 2vw, 24px); min-width: 0; }
.gs-percorso { font-size: 14px; line-height: 1.4; color: var(--gs-lilla); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: -10px 0; }
.gs-percorso a { color: var(--gs-bianco); text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }
.gs-percorso a:hover { color: var(--gs-arancio-chiaro); }
.gs-evento-apertura__stato { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.gs-evento-apertura__nota { font-size: 14px; color: var(--gs-lilla-chiaro); }
.gs-evento-apertura__sottotitolo { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(20px, 2vw, 28px); line-height: 1.05; text-transform: uppercase; color: var(--gs-arancio); }
.gs-evento-apertura .gs-lead { color: #E6E6E6; }
.gs-evento-dati { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 2px; background: var(--gs-inchiostro); border: 3px solid var(--gs-inchiostro); box-shadow: 10px 10px 0 var(--gs-arancio); margin-top: 4px; }
.gs-evento-dati > div { background: var(--gs-notte); padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; }
.gs-evento-dati > div.gs-evento-dati--luogo { gap: 6px; }
.gs-evento-dati > div.gs-evento-dati--quote { gap: 8px; }
.gs-evento-dati__nome { font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gs-arancio-chiaro); }
.gs-evento-dati__data { display: flex; flex-direction: column; gap: 2px; }
.gs-evento-dati__piccolo { font-size: 13px; line-height: 1.3; color: var(--gs-lilla); }
.gs-evento-dati__grande { font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 24px; line-height: 1.05; text-transform: uppercase; }
.gs-evento-dati__testo { font-size: 14px; line-height: 1.45; color: var(--gs-lilla-chiaro); }
.gs-evento-dati__data .gs-evento-dati__testo { line-height: 1.4; }
.gs-evento-dati__testo strong { color: var(--gs-bianco); }
.gs-evento-dati__destinatari { margin-top: 6px; }
.gs-evento-dati__gratuito { font-weight: 900; font-stretch: var(--gs-stretto); font-size: 44px; line-height: .9; text-transform: uppercase; color: var(--gs-bianco); }
.gs-evento-quota { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; border-top: 1px solid var(--gs-viola-bordo); padding-top: 8px; }
.gs-evento-quota__etichetta { font-size: 15px; line-height: 1.35; }
.gs-evento-quota__prezzi { display: flex; align-items: baseline; gap: 8px; }
.gs-evento-quota__anziche { font-size: 14px; color: var(--gs-lilla); text-decoration: line-through; }
.gs-evento-quota__prezzo { font-weight: 900; font-stretch: var(--gs-stretto); font-size: 36px; line-height: .9; }
.gs-evento-quota__nota { flex-basis: 100%; font-size: 13px; line-height: 1.4; color: var(--gs-lilla-chiaro); }
.gs-evento-apertura__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.gs-evento-apertura__cta .gs-btn { padding: 0 30px; }
.gs-evento-apertura__locandine { display: none; position: relative; padding: 12px 0 0; text-decoration: none; }
.gs-evento-apertura__locandine img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: contain; position: relative; z-index: 2; box-shadow: 0 20px 50px rgba(0,0,0,.5); transform: rotate(-2deg); }
.gs-evento-apertura__locandine--due img { width: 84%; }
.gs-evento-apertura__locandine--due img + img { position: absolute; right: 0; top: 40px; z-index: 1; transform: rotate(3deg); opacity: .9; box-shadow: none; }

.gs-evento-corpo { max-width: var(--gs-max); margin: 0 auto; padding: clamp(40px, 5vw, 72px) var(--gs-pad-x) clamp(72px, 8vw, 120px); display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "info" "form" "desc" "loc"; gap: clamp(36px, 4vw, 56px) clamp(32px, 4vw, 64px); align-items: start; }
.gs-evento-info { grid-area: info; display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); min-width: 0; }
.gs-evento-info .gs-h2--s { margin: 0 0 16px; }
.gs-incluso { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 0 28px; }
.gs-incluso li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid #E6E6E6; font-size: 17px; line-height: 1.4; }
.gs-incluso li::before { content: ''; width: 9px; height: 9px; background: var(--gs-arancio); transform: rotate(45deg) translateY(-2px); display: block; }
.gs-evento-avvisi { display: flex; flex-direction: column; gap: 12px; }
.gs-evento-come { border-top: 4px solid var(--gs-inchiostro); padding-top: 16px; }
.gs-evento-come .gs-h4 { margin: 0 0 8px; }
.gs-evento-come p { margin: 0; color: var(--gs-grigio-testo); max-width: 60ch; }
.gs-evento-come .gs-link-freccia { margin-top: 12px; }
.gs-evento-modulo { grid-area: form; position: relative; min-width: 0; scroll-margin-top: 88px; }
.gs-evento-modulo__dentro { padding: clamp(20px, 2.4vw, 32px); }
.gs-evento-modulo .gs-h2--form { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(36px, 3.6vw, 48px); line-height: .9; text-transform: uppercase; }
.gs-evento-modulo__evento { margin: 6px 0 0; font-size: 14px; line-height: 1.4; color: var(--gs-grigio); }
.gs-evento-desc { grid-area: desc; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.gs-evento-desc > div { display: flex; flex-direction: column; gap: 8px; max-width: 64ch; }
.gs-evento-desc p { margin: 0; color: var(--gs-grigio-testo); }
.gs-evento-locandine { grid-area: loc; min-width: 0; scroll-margin-top: 88px; }
.gs-evento-locandine .gs-h2--s { margin: 0 0 16px; }
.gs-evento-locandine__lista { display: grid; grid-auto-flow: column; grid-auto-columns: 80%; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
.gs-evento-locandine__lista a { display: block; scroll-snap-align: start; background: var(--gs-carta); border: 1px solid #E0E0E0; }
.gs-evento-locandine__lista a:hover { border-color: var(--gs-arancio); }
.gs-evento-locandine__lista img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: contain; }
@media (min-width: 760px) {
  .gs-evento-locandine__lista { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 420px); }
  .gs-evento-locandine__lista--due { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .gs-evento-apertura--locandine .gs-evento-apertura__dentro { grid-template-columns: minmax(0, 1fr) minmax(0, 360px); }
  .gs-evento-apertura__locandine { display: block; }
  .gs-evento-corpo { grid-template-columns: minmax(0, 1fr) minmax(380px, 460px); grid-template-areas: "info form" "desc form" "loc form"; }
  .gs-evento-modulo { position: sticky; top: 100px; }
}
.gs-barra-iscriviti { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--gs-bianco); border-top: 1px solid #E0E0E0; box-shadow: 0 -8px 24px rgba(34,9,63,.12);
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px;
  transform: translateY(110%); transition: transform .32s var(--gs-curva); }
.gs-barra-iscriviti.is-visibile { transform: none; }
.gs-barra-iscriviti__testi { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.gs-barra-iscriviti__stato { font-weight: 700; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--gs-arancio); }
.gs-barra-iscriviti__titolo { font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 20px; line-height: 1.05; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-barra-iscriviti .gs-btn { flex: none; height: 48px; padding: 0 22px; font-weight: 800; }
@media (min-width: 760px) { .gs-barra-iscriviti { display: none; } }

/* Tesseramento */
.gs-tess-apertura .gs-lead { color: var(--gs-lilla-chiaro); max-width: 44ch; }
.gs-tess-apertura .gs-quote { max-width: 520px; width: 100%; justify-self: end; }
.gs-confronto-sez { margin-top: -40px; padding: clamp(72px, 8vw, 112px) 0 clamp(64px, 7vw, 96px); scroll-margin-top: 72px; }
.gs-confronto-sez__dentro { max-width: calc(1080px + 2 * var(--gs-pad-x)); margin: 0 auto; padding: 0 var(--gs-pad-x); }
.gs-confronto-sez .gs-h2 { margin: 0 0 clamp(24px, 3vw, 40px); font-size: clamp(44px, 6vw, 88px); }
.gs-confronto { background: var(--gs-bianco); border: 3px solid var(--gs-inchiostro); box-shadow: 12px 12px 0 var(--gs-viola); }
.gs-confronto__riga { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--gs-divisore); transition: background .2s; }
.gs-confronto__riga:hover { background: #FBF9FC; }
.gs-confronto__riga--testa { border-bottom: 3px solid var(--gs-inchiostro); }
.gs-confronto__riga--testa:hover, .gs-confronto__riga--azioni:hover { background: none; }
.gs-confronto__riga--azioni { border-bottom: 0; }
.gs-confronto__riga > * { min-width: 0; }
.gs-confronto__riga > *:first-child { border-right: 3px solid var(--gs-inchiostro); }
.gs-confronto__testa { padding: clamp(14px, 2vw, 24px); color: var(--gs-bianco); display: flex; flex-direction: column; gap: 6px; }
.gs-confronto__testa--a { background: var(--gs-arancio); }
.gs-confronto__testa--b { background: var(--gs-notte); }
.gs-confronto__nome { font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(17px, 2.4vw, 30px); line-height: 1; text-transform: uppercase; overflow-wrap: anywhere; }
.gs-confronto__prezzi { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.gs-confronto__prezzo { font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(44px, 5vw, 64px); line-height: .9; }
.gs-confronto__prima { font-size: 14px; text-decoration: line-through; }
.gs-confronto__cella { padding: 14px clamp(12px, 2vw, 24px); display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; align-items: start; font-size: clamp(15px, 1.3vw, 17px); line-height: 1.4; }
.gs-confronto__cella--a { font-weight: 600; }
.gs-confronto__cella--no { color: var(--gs-muto); }
.gs-confronto__segno { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; color: var(--gs-bianco); font-size: 14px; font-weight: 900; }
.gs-confronto__cella--a .gs-confronto__segno { background: var(--gs-arancio); }
.gs-confronto__cella--si .gs-confronto__segno { background: var(--gs-viola); }
.gs-confronto__cella--no .gs-confronto__segno { border: 2px solid #9A8FAB; color: var(--gs-muto); font-size: 13px; }
.gs-confronto__azione { padding: clamp(12px, 2vw, 20px); }
.gs-confronto__azione button { width: 100%; min-height: 52px; padding: 8px 12px; border: 0; background: var(--gs-arancio); color: var(--gs-bianco); font: 800 14px/1.15 var(--gs-font); letter-spacing: .02em; text-transform: uppercase; cursor: pointer; overflow-wrap: anywhere; }
.gs-confronto__azione button:hover { background: var(--gs-inchiostro); }
.gs-confronto__azione--b button { background: var(--gs-bianco); border: 2px solid var(--gs-inchiostro); color: var(--gs-inchiostro); }
.gs-confronto__azione--b button:hover { background: var(--gs-inchiostro); color: var(--gs-bianco); }
.gs-confronto-sez .gs-avviso { margin-top: 24px; }
.gs-tess-modulo { padding: clamp(56px, 7vw, 96px) 0 clamp(80px, 9vw, 128px); scroll-margin-top: 72px; }
.gs-tess-modulo__dentro { max-width: calc(880px + 2 * var(--gs-pad-x)); margin: 0 auto; padding: 0 var(--gs-pad-x); }
.gs-tess-modulo .gs-contenitore-modulo { padding: clamp(20px, 3vw, 40px); }
.gs-tess-modulo .gs-h2--s { margin: 0 0 6px; }
.gs-tess-modulo__stagione { margin: 0 0 24px; font-size: 14px; line-height: 1.4; color: var(--gs-muto); }
.gs-tess-modulo .gs-modulo { margin-top: 0; }

/* Chi siamo */
.gs-chi-apertura .gs-apertura-pagina__dentro { align-items: center; gap: clamp(32px, 4vw, 64px); }
.gs-chi-apertura .gs-lead { line-height: 1.6; color: var(--gs-lilla-chiaro); }
.gs-chi-apertura .gs-btn { align-self: flex-start; }
.gs-chi-apertura__foto { aspect-ratio: 3/2; }
.gs-vision { padding: clamp(56px, 7vw, 104px) 0; }
.gs-vision__dentro { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: clamp(20px, 4vw, 64px); align-items: start; }
.gs-vision__titolo { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(64px, 9vw, 140px); line-height: .82; text-transform: uppercase; color: transparent; -webkit-text-stroke: 3px var(--gs-viola); }
.gs-vision__testo { margin: 0; font-size: clamp(18px, 1.7vw, 24px); line-height: 1.5; max-width: 52ch; }
.gs-vision__testo strong { color: var(--gs-arancio); }
.gs-team { clip-path: polygon(0 48px, 100% 0, 100% calc(100% - 48px), 0 100%); padding: clamp(104px, 10vw, 144px) 0; }
.gs-team__dentro { display: flex; flex-direction: column; gap: clamp(40px, 5vw, 72px); }
.gs-team .gs-h2 { font-size: clamp(52px, 7vw, 104px); }
.gs-persona-evidenza { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: clamp(28px, 4vw, 64px); align-items: start; }
.gs-persona-evidenza__foto { position: relative; max-width: 460px; width: 100%; aspect-ratio: 4/5; }
.gs-persona-evidenza__foto::before { content: ''; position: absolute; inset: 0; background: var(--gs-arancio); transform: translate(-16px, 16px) rotate(-3deg); }
.gs-persona-evidenza__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 3px solid var(--gs-bianco); }
.gs-primato { position: absolute; right: -12px; bottom: 28px; background: var(--gs-bianco); color: var(--gs-inchiostro); border: 3px solid var(--gs-inchiostro); padding: 8px 14px 6px; transform: rotate(-4deg); display: flex; flex-direction: column; box-shadow: 6px 6px 0 var(--gs-arancio); }
.gs-primato strong { font-weight: 900; font-stretch: var(--gs-stretto); font-size: 56px; line-height: .85; color: var(--gs-arancio); }
.gs-primato span { font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.gs-persona-evidenza__testi { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.gs-ruolo { align-self: flex-start; background: var(--gs-arancio); color: var(--gs-bianco); padding: 6px 12px; font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; transform: rotate(-2deg); }
.gs-persona-evidenza__nome { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(48px, 5.6vw, 80px); line-height: .86; text-transform: uppercase; }
.gs-bio { display: flex; flex-direction: column; gap: 14px; font-size: 17px; line-height: 1.6; color: var(--gs-lilla-chiaro); max-width: 62ch; }
.gs-bio p { margin: 0; }
.gs-bio strong { color: var(--gs-bianco); }
.gs-bio__resto { display: flex; flex-direction: column; gap: 14px; }
.gs-bio__apri { align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0; background: transparent; border: 0; color: var(--gs-bianco); font: 700 15px/1 var(--gs-font); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; box-shadow: inset 0 -2px 0 var(--gs-arancio); }
.gs-bio__apri:hover { color: var(--gs-arancio-chiaro); }
.gs-persone { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(24px, 3vw, 40px); }
.gs-persona { display: grid; grid-template-columns: minmax(0, 120px) minmax(0, 1fr); gap: 16px 18px; align-items: start; align-content: start; background: var(--gs-viola-2); border: 2px solid var(--gs-viola-bordo); padding: 20px; }
.gs-persona__foto { aspect-ratio: 4/5; position: relative; background: var(--gs-viola); }
.gs-persona__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 20%; }
.gs-persona__testa { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.gs-persona__nome { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(30px, 3vw, 40px); line-height: .9; text-transform: uppercase; overflow-wrap: anywhere; }
.gs-persona__ruolo { align-self: flex-start; background: var(--gs-bianco); color: var(--gs-inchiostro); padding: 4px 10px; font-weight: 800; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.gs-persona__bio { grid-column: 1 / -1; margin: 0; font-size: 16px; line-height: 1.6; color: var(--gs-lilla-chiaro); }
.gs-invito-sez { padding: clamp(56px, 7vw, 104px) 0 clamp(80px, 9vw, 120px); }
.gs-invito { position: relative; background: var(--gs-arancio); color: var(--gs-bianco); border: 3px solid var(--gs-inchiostro); box-shadow: 12px 12px 0 var(--gs-viola); padding: clamp(24px, 4vw, 56px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 24px 48px; align-items: center; overflow: hidden; }
.gs-invito > *:not(.gs-motivo) { position: relative; }
.gs-invito .gs-h2 { font-size: clamp(44px, 5.6vw, 80px); }
.gs-invito__testi { display: flex; flex-direction: column; gap: 18px; }
.gs-invito__testi p { margin: 0; font-size: 17px; line-height: 1.55; }
.gs-invito__testi .gs-btn { align-self: flex-start; }
.gs-invito .gs-btn--bianco:hover { background: var(--gs-inchiostro); }

/* Contattaci */
.gs-contatti-apertura { padding-bottom: clamp(48px, 6vw, 88px); }
.gs-contatti-apertura__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: clamp(36px, 5vw, 72px) var(--gs-pad-x) 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: clamp(32px, 4vw, 64px); align-items: start; }
.gs-contatti-apertura__testi { display: flex; flex-direction: column; gap: clamp(24px, 3vw, 36px); min-width: 0; }
.gs-azioni { display: flex; flex-direction: column; gap: 14px; }
.gs-azione { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; min-height: 126px; padding: 16px 20px; text-decoration: none; border: 3px solid var(--gs-inchiostro); transition: transform .2s var(--gs-curva), box-shadow .2s; }
.gs-azione:hover { transform: translate(-3px, -3px) rotate(-.6deg); }
.gs-azione__testi { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gs-azione__etichetta { font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.gs-azione__nome { font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(30px, 3.2vw, 44px); line-height: .95; text-transform: uppercase; }
.gs-azione__freccia { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; font-size: 22px; font-weight: 900; }
.gs-azione--whatsapp { background: var(--gs-arancio); color: var(--gs-bianco); box-shadow: 8px 8px 0 var(--gs-inchiostro); }
.gs-azione--whatsapp:hover { color: var(--gs-bianco); box-shadow: 12px 12px 0 var(--gs-inchiostro); }
.gs-azione--whatsapp .gs-azione__freccia { background: var(--gs-bianco); color: var(--gs-arancio); }
.gs-azione--email { background: var(--gs-bianco); color: var(--gs-inchiostro); box-shadow: 8px 8px 0 var(--gs-arancio); }
.gs-azione--email:hover { color: var(--gs-inchiostro); box-shadow: 12px 12px 0 var(--gs-arancio); }
.gs-azione--email .gs-azione__etichetta { color: var(--gs-viola); }
.gs-azione--email .gs-azione__freccia { background: var(--gs-inchiostro); color: var(--gs-bianco); }
.gs-azione--telefono { background: var(--gs-notte); color: var(--gs-bianco); border-color: var(--gs-bianco); box-shadow: 8px 8px 0 var(--gs-arancio); }
.gs-azione--telefono:hover { color: var(--gs-bianco); box-shadow: 12px 12px 0 var(--gs-arancio); }
.gs-azione--telefono .gs-azione__etichetta { color: var(--gs-arancio-chiaro); }
.gs-azione--telefono .gs-azione__freccia { background: var(--gs-arancio); color: var(--gs-bianco); }
.gs-contatti-apertura__foto { aspect-ratio: 4/5; max-width: 520px; width: 100%; justify-self: end; }
.gs-contatti-apertura__foto::before { transform: translate(16px, -16px) rotate(2deg); }
.gs-recapiti { padding: clamp(48px, 6vw, 88px) 0 clamp(72px, 8vw, 112px); }
.gs-recapiti__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; }
.gs-recapito { background: var(--gs-bianco); border: 3px solid var(--gs-inchiostro); padding: 22px; display: flex; flex-direction: column; gap: 8px; }
.gs-recapito--social { gap: 4px; }
.gs-recapito h2 { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 22px; line-height: 1; text-transform: uppercase; color: var(--gs-arancio); }
.gs-recapito--social h2 { margin-bottom: 4px; }
.gs-recapito p { margin: 0; font-size: 16px; line-height: 1.5; }
.gs-recapito__numero { color: var(--gs-inchiostro); text-decoration: none; font-weight: 900; font-stretch: var(--gs-stretto); font-size: 36px; line-height: 1; min-height: 44px; display: flex; align-items: center; }
.gs-recapito__numero:hover, .gs-recapito__social:hover { color: var(--gs-arancio); }
.gs-recapito__social { color: var(--gs-inchiostro); font-weight: 600; min-height: 45px; display: flex; align-items: center; border-bottom: 1px solid var(--gs-divisore); }
.gs-recapito__social:last-child { border-bottom: 0; min-height: 44px; }

/* Gallery */
.gs-gallery-apertura { padding-bottom: clamp(48px, 6vw, 80px); }
.gs-gallery-apertura__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: clamp(36px, 5vw, 72px) var(--gs-pad-x) 0; display: flex; flex-direction: column; gap: clamp(24px, 3vw, 40px); }
.gs-gallery-apertura__testa { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; }
.gs-album-nav { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-album-nav a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 14px; border: 2px solid var(--gs-bianco); color: var(--gs-bianco); text-decoration: none; font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; transition: background .15s, color .15s; }
.gs-album-nav a:hover { background: var(--gs-bianco); color: var(--gs-viola); }
.gs-album-nav span { font-size: 12px; opacity: .8; }
.gs-trailer { display: flex; flex-direction: column; gap: 12px; }
.gs-trailer h2 { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(24px, 2.4vw, 32px); line-height: 1; text-transform: uppercase; }
.gs-trailer__riquadro { box-sizing: content-box; position: relative; aspect-ratio: 16/9; border: 3px solid var(--gs-bianco); box-shadow: 12px 12px 0 var(--gs-arancio); background: var(--gs-notte); overflow: hidden; }
.gs-trailer__riquadro iframe, .gs-trailer__riquadro img, .gs-trailer__avvia { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gs-trailer__riquadro img { object-fit: cover; }
.gs-trailer__avvia { display: flex; align-items: center; justify-content: center; padding: 0; background: rgba(34,9,63,.35); cursor: pointer; }
.gs-trailer__avvia span { width: clamp(64px, 8vw, 96px); height: clamp(64px, 8vw, 96px); background: var(--gs-arancio); clip-path: polygon(28% 18%, 82% 50%, 28% 82%); }
.gs-album { padding: clamp(48px, 6vw, 88px) 0 0; scroll-margin-top: 72px; }
.gs-album__testa { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; margin-bottom: clamp(20px, 2.4vw, 32px); border-top: 3px solid var(--gs-inchiostro); padding-top: 18px; }
.gs-album__testa .gs-h2 { font-size: clamp(40px, 5.6vw, 80px); line-height: .88; overflow-wrap: anywhere; min-width: 0; }
.gs-album__testa .gs-contatore { font-size: clamp(26px, 2.6vw, 38px); }
.gs-album__foto { columns: 1; column-gap: 16px; }
.gs-album__nota { margin: 4px 0 0; font-size: 15px; color: var(--gs-muto); }
@media (min-width: 600px) { .gs-album__foto { columns: 2; } }
@media (min-width: 1100px) { .gs-album__foto { columns: 3; } }
.gs-album__foto--piccole { columns: 2; }
@media (min-width: 900px) { .gs-album__foto--piccole { columns: 4 200px; } }
.gs-foto { display: block; width: 100%; margin: 0 0 16px; padding: 0; border: 3px solid var(--gs-inchiostro); background: var(--gs-carta); cursor: zoom-in; break-inside: avoid; transition: transform .25s var(--gs-curva), box-shadow .25s; }
.gs-foto:hover { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 var(--gs-arancio); }
.gs-foto img { display: block; width: 100%; height: auto; }
.gs-gallery-fine { height: clamp(72px, 8vw, 112px); }
.gs-lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(26,11,43,.94); display: flex; flex-direction: column; outline: none; }
.gs-lightbox__barra { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; color: var(--gs-bianco); }
.gs-lightbox__barra span { font-size: 14px; color: var(--gs-lilla-chiaro); }
.gs-lightbox__chiudi { height: 48px; padding: 0 18px; background: var(--gs-bianco); border: 0; color: var(--gs-inchiostro); font: 800 14px/1 var(--gs-font); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.gs-lightbox__chiudi:hover { background: var(--gs-arancio); color: var(--gs-bianco); }
.gs-lightbox__palco { flex: 1; min-height: 0; height: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: minmax(0, 1fr); align-items: center; gap: 8px; padding: 0 8px 16px; }
.gs-lightbox__palco img { max-width: 100%; max-height: calc(100vh - 96px); width: auto; height: auto; object-fit: contain; justify-self: center; border: 3px solid var(--gs-bianco); }
.gs-lightbox__freccia { width: 48px; height: 64px; background: var(--gs-arancio); border: 0; color: var(--gs-bianco); font-size: 24px; font-weight: 900; cursor: pointer; }
.gs-lightbox__freccia:hover { background: var(--gs-bianco); color: var(--gs-arancio); }

/* Lavora con noi */
.gs-lavora-apertura { padding-bottom: clamp(140px, 14vw, 220px); }
.gs-lavora-apertura__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: clamp(36px, 5vw, 72px) var(--gs-pad-x) 0; display: flex; flex-direction: column; gap: clamp(16px, 2vw, 24px); }
.gs-lavora-apertura .gs-lead { line-height: 1.6; color: var(--gs-lilla-chiaro); max-width: 60ch; }
.gs-lavora-modulo { position: relative; overflow-x: clip; margin-top: clamp(-180px, -12vw, -100px); padding-bottom: clamp(72px, 8vw, 112px); }
.gs-lavora-modulo__dentro { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(28px, 4vw, 56px); align-items: start; }
.gs-lavora-modulo .gs-contenitore-modulo { box-shadow: 12px 12px 0 var(--gs-notte); padding: clamp(20px, 3vw, 36px); }
.gs-lavora-modulo .gs-contenitore-modulo h2 { margin: 0 0 20px; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(36px, 3.6vw, 48px); line-height: .9; text-transform: uppercase; }
.gs-lavora-modulo .gs-modulo { margin-top: 0; }
.gs-lavora-modulo__foto { aspect-ratio: 1000/454; align-self: center; }
.gs-lavora-modulo__foto::before { transform: translate(16px, 16px) rotate(1.5deg); }
@media (min-width: 560px) and (max-width: 899px) { .gs-modulo--lavora .gs-modulo__campi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .gs-modulo--lavora .gs-modulo__campi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Pagine di lettura */
.gs-progresso { position: sticky; top: var(--gs-testata); z-index: 49; height: 5px; margin-bottom: -5px; }
.gs-progresso::after { content: ''; display: block; height: 100%; background: var(--gs-arancio); transform-origin: 0 50%; transform: scaleX(var(--prog, 0)); }
.gs-testo-apertura { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 32px), 0 100%); padding-bottom: 32px; }
.gs-testo-apertura__dentro { position: relative; max-width: var(--gs-max); margin: 0 auto; padding: clamp(32px, 4.5vw, 64px) var(--gs-pad-x) clamp(32px, 4vw, 56px); display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: end; }
.gs-testo-apertura__testi { display: flex; flex-direction: column; gap: clamp(14px, 2vw, 22px); min-width: 0; }
.gs-testo-apertura__tipo { align-self: flex-start; background: var(--gs-bianco); color: var(--gs-viola); padding: 5px 10px; font-weight: 800; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; transform: rotate(-2deg); }
.gs-testo-apertura__titolo { margin: 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(52px, 7vw, 104px); line-height: .86; text-transform: uppercase; text-wrap: balance; }
.gs-testo-apertura__lead { margin: 0; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; color: var(--gs-lilla-chiaro); max-width: 56ch; }
.gs-testo-apertura__ritorno { align-self: flex-start; }
.gs-testo-apertura__foto { box-sizing: content-box; position: relative; aspect-ratio: 4/5; max-width: 300px; width: 100%; justify-self: end; display: none; }
.gs-testo-apertura__foto::before { content: ''; position: absolute; inset: 0; background: var(--gs-arancio); transform: translate(14px, -14px) rotate(3deg); }
.gs-testo-apertura__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 3px solid var(--gs-bianco); }
@media (min-width: 720px) {
  .gs-testo-apertura__dentro--foto { grid-template-columns: minmax(0, 1fr) minmax(0, 300px); }
  .gs-testo-apertura__foto { display: block; }
}
.gs-testo-corpo { max-width: var(--gs-max); margin: 0 auto; padding: clamp(40px, 5vw, 72px) var(--gs-pad-x) clamp(72px, 8vw, 112px); display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; font-size: 18px; line-height: 1.65; }
.gs-indice { display: none; position: sticky; top: 110px; flex-direction: column; border-left: 3px solid var(--gs-inchiostro); }
.gs-indice__titolo { padding: 0 0 10px 16px; font-weight: 800; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gs-muto); }
.gs-indice a { display: flex; align-items: center; min-height: 48px; padding: 4px 0 4px 16px; color: var(--gs-inchiostro); text-decoration: none; font-weight: 600; font-size: 15px; line-height: 1.3; }
.gs-indice a:hover { color: var(--gs-arancio); }
.gs-indice a[aria-current="location"] { padding-left: 13px; margin-left: -3px; border-left: 6px solid var(--gs-arancio); color: var(--gs-arancio); font-weight: 800; }
@media (min-width: 1024px) {
  .gs-testo-corpo--indice { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); }
  .gs-testo-corpo--indice .gs-indice { display: flex; }
}

/* Pagina non trovata */
body.error404 { min-height: 100vh; display: flex; flex-direction: column; }
body.error404 > main { flex: 1; display: flex; flex-direction: column; }
.gs-404 { flex: 1; display: flex; align-items: center; background: var(--gs-viola); color: var(--gs-bianco); position: relative; overflow: hidden; }
.gs-404__cerchio { position: absolute; width: min(90vw, 900px); aspect-ratio: 1; left: 50%; top: 50%; transform: translate(-50%, -50%); border: 3px solid rgba(255,255,255,.1); border-radius: 50%; pointer-events: none; }
.gs-404__dentro { position: relative; max-width: var(--gs-max); width: 100%; margin: 0 auto; padding: clamp(48px, 7vw, 104px) var(--gs-pad-x); display: flex; flex-direction: column; align-items: center; gap: clamp(20px, 3vw, 32px); text-align: center; }
.gs-404__porta { position: relative; width: min(100%, 820px); padding: clamp(18px, 3vw, 36px) clamp(18px, 3vw, 36px) 0; border: clamp(8px, 1.2vw, 14px) solid var(--gs-bianco); border-bottom: 0; background-image: var(--gs-rete); }
.gs-404__porta h1 { margin: 0; display: flex; flex-direction: column; align-items: center; }
.gs-404__etichetta { font-weight: 800; font-size: clamp(14px, 1.4vw, 18px); letter-spacing: .14em; text-transform: uppercase; background: var(--gs-arancio); color: var(--gs-bianco); padding: 6px 12px; transform: rotate(-2deg); }
.gs-404__numero { font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(160px, 30vw, 380px); line-height: .8; color: var(--gs-arancio); -webkit-text-stroke: 3px var(--gs-inchiostro); text-shadow: 10px 10px 0 var(--gs-inchiostro); }
.gs-404__testo { margin: 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: clamp(24px, 3vw, 40px); line-height: 1.05; text-transform: uppercase; max-width: 22ch; }
.gs-404 .gs-btn { background: var(--gs-bianco); color: var(--gs-viola); box-shadow: 6px 6px 0 var(--gs-arancio); }
.gs-404 .gs-btn:hover { background: var(--gs-arancio); color: var(--gs-bianco); box-shadow: 6px 6px 0 var(--gs-inchiostro); }

/* 11. Testi scritti con l'editor di WordPress ----------------------------- */
.gs-prosa { min-width: 0; max-width: 70ch; display: flex; flex-direction: column; gap: 18px; }
.gs-prosa > * { margin: 0; }
.gs-prosa p { text-wrap: pretty; }
.gs-prosa a { color: var(--gs-arancio); font-weight: 700; }
.gs-prosa a:hover { color: var(--gs-inchiostro); }
.gs-prosa h2 { margin: 28px 0 0; font-weight: 900; font-stretch: var(--gs-stretto); font-size: clamp(34px, 3.6vw, 48px); line-height: .92; text-transform: uppercase; scroll-margin-top: 110px; display: flex; align-items: baseline; gap: 12px; }
.gs-prosa h2::before { content: ''; flex: none; width: 14px; height: 14px; background: var(--gs-arancio); transform: rotate(45deg) translateY(-4px); }
.gs-prosa h3, .gs-prosa h4 { margin: 8px 0 0; font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 24px; line-height: 1.1; text-transform: uppercase; }
.gs-prosa h4 { font-size: 20px; }
.gs-prosa ul, .gs-prosa ol { margin: 0; padding: 0; list-style: none; }
.gs-prosa ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 0 24px; }
.gs-prosa ul > li, .gs-prosa ol > li { position: relative; padding: 10px 0 10px 28px; border-bottom: 1px solid var(--gs-divisore); font-size: 17px; line-height: 1.4; }
.gs-prosa ul > li::before { content: ''; position: absolute; left: 0; top: 18px; width: 8px; height: 8px; background: var(--gs-arancio); transform: rotate(45deg); }
.gs-prosa ol { counter-reset: gs-ol; }
.gs-prosa ol > li { counter-increment: gs-ol; padding-left: 36px; }
.gs-prosa ol > li::before { content: counter(gs-ol); position: absolute; left: 0; top: 10px; font-weight: 900; color: var(--gs-arancio); }
.gs-prosa li ul, .gs-prosa li ol { display: block; margin-top: 6px; }
.gs-prosa li li:last-child { border-bottom: 0; }
.gs-coppie { margin: 0; border: 3px solid var(--gs-inchiostro); box-shadow: 8px 8px 0 var(--gs-viola); background: var(--gs-bianco); }
.gs-coppie > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 4px 20px; padding: 14px 18px; border-bottom: 1px solid var(--gs-divisore); }
.gs-coppie dt { font-weight: 800; font-size: 15px; line-height: 1.35; text-transform: uppercase; letter-spacing: .03em; color: var(--gs-viola); }
.gs-coppie dd { margin: 0; font-size: 17px; line-height: 1.5; }
.gs-coppie dt strong, .gs-coppie dt b { font-weight: inherit; }
.gs-prosa img, .gs-prosa figure { max-width: 100%; height: auto; margin: 0; }
.gs-prosa figure img { border: 3px solid var(--gs-inchiostro); }
.gs-prosa figcaption { margin-top: 6px; font-size: 14px; color: var(--gs-muto); }
.gs-prosa table { width: 100%; border-collapse: collapse; border: 3px solid var(--gs-inchiostro); box-shadow: 8px 8px 0 var(--gs-viola); background: var(--gs-bianco); font-size: 17px; line-height: 1.5; }
.gs-prosa th, .gs-prosa td { padding: 14px 18px; border-bottom: 1px solid var(--gs-divisore); text-align: left; vertical-align: top; }
.gs-prosa th, .gs-prosa td:first-child { font-weight: 800; font-size: 15px; line-height: 1.35; text-transform: uppercase; letter-spacing: .03em; color: var(--gs-viola); }
.gs-prosa .gs-tabella { overflow-x: auto; }
.gs-prosa blockquote, .gs-prosa .gs-avviso-forte { margin: 0; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; align-items: start; padding: 18px 20px; background: var(--gs-arancio); color: var(--gs-bianco); transform: rotate(-.6deg); font-size: 17px; line-height: 1.5; font-weight: 600; }
.gs-prosa blockquote::before, .gs-prosa .gs-avviso-forte::before { content: '!'; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--gs-bianco); color: var(--gs-arancio); font-weight: 900; font-size: 20px; }
.gs-prosa blockquote { row-gap: 4px; }
.gs-prosa blockquote > p:last-child { line-height: 1.75; }
.gs-prosa blockquote::before { grid-row: 1 / span 4; }
.gs-prosa blockquote > * { margin: 0; grid-column: 2; }
.gs-prosa blockquote > p:first-child:not(:last-child) { font-weight: 800; font-stretch: var(--gs-semistretto); font-size: 20px; line-height: 1.1; text-transform: uppercase; }
.gs-prosa blockquote > p:first-child:not(:last-child) strong { font-weight: inherit; }
.gs-prosa blockquote a { color: var(--gs-bianco); }
.gs-prosa .wp-block-button__link, .gs-prosa a.gs-btn { display: inline-flex; align-items: center; height: 52px; padding: 0 26px; background: var(--gs-arancio); color: var(--gs-bianco); text-decoration: none; border-radius: 0; font: 700 15px/1 var(--gs-font); letter-spacing: .06em; text-transform: uppercase; }
.gs-prosa .wp-block-button__link:hover, .gs-prosa a.gs-btn:hover { background: var(--gs-notte); color: var(--gs-bianco); }
.gs-prosa hr { width: 100%; border: 0; border-top: 3px solid var(--gs-inchiostro); }

/* 12. Movimento ----------------------------------------------------------- */
/* La comparsa usa `translate` e non `transform`: gli elementi inclinati
   (adesivi, richiami) tengono la loro rotazione. A comparsa finita la classe
   is-fermo restituisce all'elemento le sue transizioni. */
.gs-js [data-reveal]:not(.is-fermo) { transition: opacity .7s var(--gs-curva) var(--d, 0ms), translate .7s var(--gs-curva) var(--d, 0ms); }
.gs-js [data-reveal]:not(.is-dentro) { opacity: 0; translate: 0 28px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .gs-motivo, .gs-campo-cerchio, .gs-campo-area, .gs-eco, .gs-nastro__riga { background-position: 0 0 !important; }
  .gs-campo-cerchio, .gs-campo-area { transform: none !important; }
  .gs-eco { transform: translateX(4vw) !important; }
  .gs-eco--notte { transform: translateX(-30vw) !important; }
  .gs-nastro--a .gs-nastro__riga { transform: translateX(-600px) !important; }
  .gs-nastro--b .gs-nastro__riga { transform: none !important; }
  [data-reveal] { opacity: 1 !important; translate: none !important; }
}

/* Ritocchi dei singoli pulsanti */
.gs-accento--chiaro { color: var(--gs-arancio-chiaro); }
.gs-btn--largo { padding: 0 26px; }

/* Il prototipo misura alcune forme senza contare bordo e margine interno:
   qui si fa lo stesso, perché cerchi e aree del campo abbiano la stessa
   grandezza. */
.gs-campo-cerchio, .gs-cerchio, .gs-campo-area, .gs-campo-area > span, .gs-404__cerchio, .gs-scheda__cerchio { box-sizing: content-box; }
a.gs-btn, a.gs-testata__cta { line-height: 1.55; }
.gs-btn > .gs-freccia { margin-left: calc(.25em - 12px); }
.gs-link-freccia > .gs-freccia { margin-left: calc(.25em - 10px); }
.gs-richiamo { box-sizing: content-box; }

/* I moduli di tesseramento e candidatura hanno i grigi che tirano al viola;
   quello della pagina evento i grigi neutri. */
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-modulo__nota { color: var(--gs-muto); }
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-btn[disabled] { background: var(--gs-muto); }
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-passi li { color: var(--gs-muto); }
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-passi li::before { background: #E0DAE8; }
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-passi li.is-fatto { color: var(--gs-viola); }
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-passi li.is-fatto::before { background: var(--gs-viola); }
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-passi li[aria-current="step"] { color: var(--gs-arancio); }
:is(.gs-modulo--2col, .gs-modulo--lavora) .gs-passi li[aria-current="step"]::before { background: var(--gs-arancio); }
.gs-modulo-chiuso .gs-btn { padding: 0 22px; }
.gs-campo > label.gs-consenso { font-weight: 400; line-height: 1.45; }
:is(.gs-modulo--2col, .gs-modulo--lavora) ~ .gs-esito .gs-riepilogo dt { color: var(--gs-muto); }
.gs-whatsapp__azioni .gs-btn--notte { padding: 0 24px; }

/* Parole lunghe -----------------------------------------------------------
   I titoli degli eventi li scrive la segreteria: una parola lunga
   («Ammazzaportieri») in una scheda stretta o su un telefono uscirebbe dal
   riquadro. Il tema passa la lunghezza della parola più lunga (--gs-parola)
   e il corpo scende quel tanto che basta perché ci stia; dove ci sta già,
   resta quello del disegno. Il divisore è la larghezza media di una lettera
   in quel carattere, in em. Come ultima difesa la parola va a capo. */
.gs-scheda__corpo, .gs-scheda__senza, .gs-evento-apertura__testi, .gs-testo-apertura__testi { container-type: inline-size; }
.gs-scheda__titolo { font-size: min(30px, calc(100cqi / (var(--gs-parola, 1) * .56))); }
.gs-scheda__senza-titolo span { font-size: min(44px, calc(100cqi / (var(--gs-parola, 1) * .51))); }
.gs-titolo-evento { font-size: min(clamp(60px, 9vw, 136px), calc(100cqi / (var(--gs-parola, 1) * .51))); }
.gs-testo-apertura__titolo { font-size: min(clamp(52px, 7vw, 104px), calc(100cqi / (var(--gs-parola, 1) * .51))); }
h1, h2, h3, h4, .gs-prosa, .gs-coppie dd, .gs-evento-dati, .gs-scheda__dati dd, .gs-riepilogo dd { overflow-wrap: break-word; }
.gs-prosa a, .gs-coppie dd a { overflow-wrap: anywhere; }
.gs-confronto__cella, .gs-quota__nome { overflow-wrap: anywhere; hyphens: auto; }
.gs-passi li { font-size: min(12px, 3.2vw); overflow-wrap: anywhere; hyphens: auto; }
.gs-stato--card { max-width: 100%; height: auto; min-height: 28px; padding-block: 4px; white-space: normal; line-height: 1.2; }
.gs-stato--card.gs-stato--non-aperte { height: auto; min-height: 31px; }
