/* Concetto: allenamento e nutrizione corrono affiancati per tutto il sito, a pari merito,
   e si incontrano nella fascia senape del percorso integrato, il fit² del logo.
   Colori presi dal suo mondo: la parete senape dello studio, il celeste del logo, il nero degli attrezzi. */
@font-face { font-family: "Bodoni Moda"; src: url(font/bodoni-moda-normal.woff2) format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Bodoni Moda"; src: url(font/bodoni-moda-italic.woff2) format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Figtree"; src: url(font/figtree-normal.woff2) format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }

:root {
  color-scheme: light;
  --carta: #FDFCF8;
  --inchiostro: #211F1B;
  --grafite: #59544A;
  --filo: #E4DFD3;
  --senape: #C9A322;
  --senape-scuro: #76600F;
  --senape-tenue: #F7F0D8;
  --celeste: #BEDEEF;
  --celeste-tenue: #E7F2F8;
  --titoli: "Bodoni Moda", "Bodoni 72", Didot, Georgia, serif;
  --testo: "Figtree", "Segoe UI", system-ui, sans-serif;
  --larghezza: 1200px;
  --gutter-l: max(20px, env(safe-area-inset-left, 0px));
  --gutter-r: max(20px, env(safe-area-inset-right, 0px));
  --stacco: clamp(4rem, 9vw, 7.5rem);
  --logo: url(foto/logo-fit2.png);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 6rem; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { .palco-zoom, .stato { transition: none; } .palco { --zoom: 1 !important; } }
body { margin: 0; background: var(--carta); color: var(--inchiostro); font-family: var(--testo); font-size: 1.0625rem; line-height: 1.65; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--inchiostro); outline-offset: 3px; }

h1, h2, h3 { font-family: var(--titoli); font-weight: 500; line-height: 1.08; margin: 0; text-wrap: balance; }
h1 { font-size: clamp(2.7rem, 6.3vw, 5rem); letter-spacing: -.01em; font-variation-settings: "opsz" 34; }
h2 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); letter-spacing: -.005em; font-variation-settings: "opsz" 26; }
h3 { font-size: clamp(1.45rem, 2.2vw, 1.75rem); line-height: 1.18; font-variation-settings: "opsz" 16; }
p { margin: 0; }
.sup { font-size: .62em; vertical-align: .55em; line-height: 0; }

.fascia { padding-left: var(--gutter-l); padding-right: var(--gutter-r); }
.interno { max-width: var(--larghezza); margin-inline: auto; }
.blocco { padding-block: var(--stacco); }
.occhiello { font-size: .8rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--senape-scuro); }
.colonna-testo { max-width: 62ch; display: grid; gap: 1.1rem; }
.attenuato { color: var(--grafite); }

.bottone { display: inline-block; padding: .85em 1.5em; border: 1.5px solid var(--inchiostro); background: var(--inchiostro); color: var(--carta); font: 600 1rem/1.2 var(--testo); text-decoration: none; cursor: pointer; transition: background-color .18s, color .18s; }
.bottone:hover { background: var(--senape); color: var(--inchiostro); }
.bottone-vuoto { background: transparent; color: var(--inchiostro); }

/* Avviso proposta */
.avviso { background: var(--inchiostro); color: var(--carta); font-size: .875rem; line-height: 1.4; }
.avviso .interno { padding-block: .55rem; }

/* Testata */
.testata { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: var(--carta); border-bottom: 1px solid var(--filo); }
.testata .interno { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: .7rem; }
.marchio { display: flex; align-items: center; gap: .75rem; text-decoration: none; min-width: 0; }
.marchio-segno { width: 46px; aspect-ratio: 572 / 648; flex: none; background: var(--inchiostro); -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; }
.marchio-nome { font-family: var(--titoli); font-size: 1.35rem; font-weight: 500; line-height: 1; white-space: nowrap; font-variation-settings: "opsz" 14; }
.menu { display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 1.9rem); font-size: .96rem; font-weight: 500; }
.menu a { text-decoration: none; white-space: nowrap; }
.menu a:not(.bottone):hover, .menu a[aria-current="page"] { text-decoration: underline; text-underline-offset: .3em; text-decoration-thickness: 1.5px; }
.menu .bottone { padding: .6em 1.1em; font-size: .94rem; }
.menu-mobile { display: none; }

/* Apertura: la parete senape dello studio diventa la prima cosa che si vede */
.apertura { position: relative; overflow: hidden; background: var(--senape); }
.apertura::before, .pagina-titolo::before { content: ""; position: absolute; left: max(-110px, calc(50% - 790px)); top: -70px; width: clamp(460px, 60vw, 820px); aspect-ratio: 572 / 648; background: var(--carta); -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; opacity: .3; pointer-events: none; }
.apertura .interno { position: relative; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.apertura .occhiello { color: var(--inchiostro); }
.apertura-testo { display: grid; gap: 1.5rem; justify-items: start; padding-block: clamp(3rem, 8vw, 6.5rem); }
.apertura-testo > p:not(.occhiello) { max-width: 46ch; font-size: 1.16rem; }
.apertura h1 em { font-style: italic; }
.apertura-testo > .apertura-nota { font-size: .96rem; font-weight: 500; }
.azioni { display: flex; flex-wrap: wrap; gap: .75rem; }
.ritratto { position: relative; aspect-ratio: 1; overflow: hidden; background: #0E0D0C; margin: clamp(2rem, 4vw, 3rem) 0; }
.ritratto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; }
.ritratto figcaption { position: absolute; left: 0; bottom: 0; padding: .5rem .95rem; background: var(--inchiostro); color: var(--carta); font-family: var(--titoli); font-size: 1.15rem; line-height: 1.3; font-variation-settings: "opsz" 14; }

/* Titolo delle pagine interne */
.pagina-titolo { position: relative; overflow: hidden; background: var(--senape); }
.pagina-titolo .interno { position: relative; display: grid; gap: 1.1rem; justify-items: start; padding-block: clamp(3rem, 7vw, 5.5rem); }
.pagina-titolo .occhiello { color: var(--inchiostro); }
.pagina-titolo p:not(.occhiello) { max-width: 52ch; font-size: 1.16rem; }

/* Due competenze: l'equazione occupa tutta la fascia */
.duo { background: var(--inchiostro); color: var(--carta); }
.duo .interno { display: grid; gap: clamp(.8rem, 1.8vw, 1.25rem); padding-block: clamp(2.75rem, 6vw, 4.5rem) clamp(2rem, 4vw, 3rem); }
.duo-titolo { font-size: clamp(1.1rem, 1.8vw, 1.35rem); color: #D8D3C8; }
.duo-titolo strong { color: var(--carta); font-weight: 600; }
.duo-equazione { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .3em; font-family: var(--titoli); font-size: clamp(2.6rem, 8vw, 6.4rem); font-weight: 500; line-height: 1.05; font-variation-settings: "opsz" 40; }
.duo-equazione em { font-style: italic; }
.duo-equazione i { font-family: var(--testo); font-style: normal; font-weight: 400; font-size: .8em; color: var(--senape); }
.duo-nota { color: #D8D3C8; }

/* Credenziali */
.credenziali { background: var(--inchiostro); color: var(--carta); }
.credenziali ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #47433B; }
.credenziali li { padding-block: 1.35rem; padding-inline: 1.5rem; border-left: 1px solid #47433B; font-size: .96rem; line-height: 1.4; color: #D8D3C8; }
.credenziali li:first-child { border-left: 0; padding-left: 0; }
.credenziali strong { display: block; font-family: var(--titoli); font-weight: 500; font-size: 1.4rem; line-height: 1.2; margin-bottom: .15rem; font-variation-settings: "opsz" 14; color: var(--carta); }

/* Percorsi, non lezioni */
.manifesto .interno { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.manifesto h2 { font-size: clamp(3rem, 9.2vw, 7.4rem); line-height: 1; font-variation-settings: "opsz" 40; }
.manifesto h2 em { font-style: italic; }
.manifesto-guida { max-width: 30em; font-family: var(--titoli); font-size: clamp(1.5rem, 2.7vw, 2.15rem); line-height: 1.22; font-variation-settings: "opsz" 18; }
.manifesto-secondo h2 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); line-height: 1.08; font-variation-settings: "opsz" 26; }
.manifesto-colonne { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.manifesto-colonne p { border-top: 2px solid var(--inchiostro); padding-top: .9rem; }

/* Fotogrammi a tutta larghezza */
.scena { margin: 0; background: var(--inchiostro); }
.scena img { display: block; width: 100%; aspect-ratio: 16 / 9; max-height: 92vh; object-fit: cover; object-position: 50% 100%; }

/* Entra nello studio: il plastico si accende una stanza alla volta */
.viaggio { background: #211F1B; color: var(--carta); }
.viaggio .interno { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; max-width: 1360px; }
.palco { position: sticky; top: 5.5rem; overflow: hidden; aspect-ratio: 5 / 4; }
.palco::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 46px 30px #211F1B; pointer-events: none; }
.palco-zoom { position: absolute; inset: 0; transition: transform 1.1s cubic-bezier(.3, .7, .2, 1); transform-origin: var(--ox, 50%) var(--oy, 50%); transform: scale(var(--zoom, 1)); }
.stato { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .8s ease; }
.stato[data-stato="spento"] { opacity: 1; }
.palco[data-zona="tutto"] .stato[data-stato="tutto"],
.palco[data-zona="accoglienza"] .stato[data-stato="accoglienza"],
.palco[data-zona="sala"] .stato[data-stato="sala"],
.palco[data-zona="nutrizione"] .stato[data-stato="nutrizione"] { opacity: 1; }
.palco[data-zona="accoglienza"] { --zoom: 1.5; --ox: 49%; --oy: 66%; }
.palco[data-zona="sala"] { --zoom: 1.3; --ox: 24%; --oy: 58%; }
.palco[data-zona="nutrizione"] { --zoom: 1.5; --ox: 80%; --oy: 58%; }
.tappe { display: grid; }
.tappa { min-height: 86vh; display: grid; align-content: center; gap: .9rem; }
.tappa:first-child { min-height: 70vh; }
.tappa .occhiello { color: var(--senape); }
.tappa h2, .tappa h3 { font-size: clamp(2.1rem, 3.6vw, 3rem); line-height: 1.08; font-variation-settings: "opsz" 24; }
.tappa p:not(.occhiello) { color: #D8D3C8; max-width: 38ch; }

/* Tre aree: blocchi di colore pieno, ognuno con la sua scena */
.aree-testa { display: grid; gap: .8rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.aree-griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.area { display: grid; align-content: start; }
.area-foto { aspect-ratio: 1 / 1; overflow: hidden; }
.area-foto img { width: 100%; height: 100%; object-fit: cover; object-position: var(--fuoco, 50%) 50%; }
.area-testo { display: grid; gap: .7rem; padding: clamp(1.4rem, 3vw, 2.25rem); padding-top: clamp(1rem, 2vw, 1.5rem); }
.area-testo h3 { font-size: clamp(1.7rem, 2.8vw, 2.25rem); }
.area-senape { background: var(--senape); }
.area-celeste { background: var(--celeste); }
.area-nero { background: var(--inchiostro); color: var(--carta); }

/* I due binari */
.binari-testa { display: grid; gap: .8rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.binari { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.binario { padding: clamp(1.5rem, 3.5vw, 2.75rem); display: grid; gap: 1.25rem; align-content: start; }
.binario-foto { --bordo: clamp(1.5rem, 3.5vw, 2.75rem); margin: calc(-1 * var(--bordo)) calc(-1 * var(--bordo)) 0; aspect-ratio: 16 / 9; overflow: hidden; }
.binario-foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.binario-a { background: var(--senape-tenue); }
.binario-n { background: var(--celeste-tenue); }
.binario h3 { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.binario dl { margin: 0; display: grid; gap: 1rem; }
.binario dt { font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.binario dd { margin: .1rem 0 0; }

/* Come si svolge */
.passi { list-style: none; margin: clamp(2rem, 4vw, 3rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(1.25rem, 2.4vw, 2rem); }
.passi li { display: grid; gap: .4rem; align-content: start; border-top: 2px solid var(--inchiostro); padding-top: .9rem; }
.passi-tre { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.passi b { font-family: var(--titoli); font-weight: 500; font-size: 2.4rem; line-height: 1; font-variation-settings: "opsz" 11; font-variant-numeric: lining-nums; }
.passi h3 { font-size: 1.3rem; }
.passi p { font-size: 1rem; color: var(--grafite); }

/* Chi sono */
.chi-sono { background: var(--celeste); }
.chi-sono .interno { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 6vw, 5.5rem); align-items: start; }
.chi-sono figure { margin: 0; max-width: 320px; position: sticky; top: 6.5rem; }
.chi-sono img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; }
.chi-sono figcaption { margin-top: .6rem; font-size: .9rem; }
.chi-sono .occhiello { color: var(--inchiostro); }
.chi-sono-testo { display: grid; gap: 1.5rem; min-width: 0; }
.titoli-griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem clamp(1.5rem, 4vw, 3rem); margin-top: .75rem; }
.titoli-griglia h3 { font-size: 1.3rem; margin-bottom: .8rem; }
.titoli-griglia ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; font-size: 1rem; line-height: 1.45; }
.anno { display: block; font-weight: 600; font-variant-numeric: lining-nums; }

/* Dove lavoro */
.luogo-testa { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1.25rem 2.5rem; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.luogo-testa > div { display: grid; gap: .8rem; max-width: 62ch; }
.galleria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.75rem, 1.5vw, 1.25rem); }
.galleria img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.galleria + .galleria { margin-top: clamp(.75rem, 1.5vw, 1.25rem); }
.galleria-vere { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.galleria-vere img { aspect-ratio: 3 / 4; }
.didascalia { margin-top: .8rem; font-size: .92rem; line-height: 1.45; color: var(--grafite); }
.country { background: var(--celeste-tenue); }
.online .interno { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.online figure { margin: 0; }
.online img { width: 100%; }
.online-testo { display: grid; gap: 1.1rem; }

/* Invito a scrivere, in fondo alle spiegazioni */
.invito { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.25rem 2.5rem; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--senape-tenue); }
.invito > div { display: grid; gap: .35rem; max-width: 56ch; }
.invito h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.invito-separato { margin-top: clamp(2.5rem, 5vw, 4rem); }

/* Listino */
.listino-testa { display: grid; gap: .8rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.listino-colonne { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4.5rem); }
.listino-colonna { min-width: 0; }
.listino-colonna > h3 { font-size: clamp(1.8rem, 3vw, 2.3rem); padding-bottom: .75rem; border-bottom: 2px solid var(--inchiostro); }
.listino-gruppo { margin: 1.5rem 0 .1rem; font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--grafite); }
.voce { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem 1.25rem; align-items: baseline; padding-block: .85rem; border-bottom: 1px solid var(--filo); }
.voce-nome { font-weight: 600; }
.voce-nota { grid-column: 1; font-size: .96rem; line-height: 1.45; color: var(--grafite); }
.prezzo { grid-row: 1 / 3; grid-column: 2; text-align: right; font-family: var(--titoli); font-size: 1.7rem; font-weight: 500; line-height: 1.1; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; font-variation-settings: "opsz" 9; }
.prezzo s { display: block; font-family: var(--testo); font-size: .9rem; font-weight: 400; color: var(--grafite); }
.nuovo { display: inline-block; margin-left: .4rem; padding: .05em .45em; background: var(--senape); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; vertical-align: .12em; }

.proposta { margin-top: 1.5rem; padding: .85rem 1.1rem; border-left: 4px solid var(--senape); background: var(--senape-tenue); font-size: .96rem; line-height: 1.45; }
.proposta + .listino-gruppo { margin-top: 1.1rem; }
.nota-listino { margin-top: .75rem; font-size: .92rem; color: var(--grafite); }

/* Fascia senape: i due binari si incontrano */
.insieme { background: var(--senape); }
.insieme .interno { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.insieme .occhiello { color: var(--inchiostro); }
.segno { font-family: var(--testo); font-weight: 400; font-size: .82em; }
.insieme-testo { display: grid; gap: 1.1rem; }
.percorsi-insieme { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.percorso { background: var(--carta); padding: clamp(1.4rem, 2.6vw, 2rem); display: grid; gap: .55rem; align-content: start; }
.percorso h3 { font-size: 1.55rem; }
.percorso ul { list-style: none; margin: 0; padding: 0; font-size: 1rem; line-height: 1.5; }
.percorso-prezzo { margin-top: .5rem; font-family: var(--titoli); font-size: clamp(2.3rem, 4vw, 3rem); font-weight: 500; line-height: 1; font-variant-numeric: lining-nums; font-variation-settings: "opsz" 11; }
.percorso-prezzo s { display: block; font-family: var(--testo); font-size: .95rem; font-weight: 400; color: var(--grafite); margin-bottom: .25rem; }
.risparmio { font-size: .95rem; font-weight: 600; color: var(--senape-scuro); }

/* Il mio valore: chiude la home con lo stesso colore dell'apertura */
.valore { background: var(--senape); }
.valore .interno { display: grid; gap: 1.75rem; justify-items: start; }
.valore .occhiello { color: var(--inchiostro); }
.valore blockquote { margin: 0; max-width: 19em; font-family: var(--titoli); font-size: clamp(2.2rem, 5.4vw, 4.4rem); font-weight: 500; line-height: 1.08; font-variation-settings: "opsz" 32; }
.valore blockquote em { font-style: italic; }

/* Recensione */
.recensione blockquote { margin: 0; max-width: 24em; font-family: var(--titoli); font-style: italic; font-size: clamp(1.7rem, 3.4vw, 2.6rem); line-height: 1.25; font-variation-settings: "opsz" 18; }
.recensione cite { display: block; margin-top: 1.1rem; font-family: var(--testo); font-style: normal; font-size: 1rem; font-weight: 600; }

/* Domande */
.recensione + .domande { padding-top: 0; }
.domande .interno { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 4.5rem); }
.domande details { border-bottom: 1px solid var(--filo); }
.domande details:first-child { border-top: 1px solid var(--filo); }
.domande summary { padding-block: 1.05rem; font-weight: 600; cursor: pointer; list-style-position: outside; }
.domande details p { padding-bottom: 1.15rem; max-width: 62ch; color: var(--grafite); }

/* Contatti */
.contatti { background: var(--inchiostro); color: var(--carta); }
.contatti .interno { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 6rem); }
.contatti .occhiello { color: var(--celeste); }
.contatti-testo { display: grid; gap: 1.5rem; align-content: start; }
.contatti-testo .bottone { justify-self: start; background: var(--senape); border-color: var(--senape); color: var(--inchiostro); }
.contatti-testo .bottone:hover { background: var(--carta); border-color: var(--carta); }
.recapiti { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .9rem; }
.recapiti span { display: block; font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--celeste); }
.recapiti a { text-underline-offset: .25em; }
form { background: var(--carta); color: var(--inchiostro); padding: clamp(1.4rem, 3vw, 2.5rem); display: grid; gap: 1.15rem; min-width: 0; }
form h3 { font-size: 1.7rem; }
label, legend { display: block; font-weight: 600; font-size: .98rem; padding: 0; margin-bottom: .3rem; }
.aiuto { display: block; font-weight: 400; font-size: .92rem; line-height: 1.4; color: var(--grafite); }
input[type=text], textarea { width: 100%; padding: .7em .8em; border: 1px solid #A8A295; background: #fff; color: var(--inchiostro); font: 400 1rem/1.4 var(--testo); border-radius: 0; }
textarea { min-height: 4.4em; resize: vertical; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.scelte { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem 1rem; }
.scelte label { display: flex; gap: .5rem; align-items: baseline; font-weight: 400; margin: 0; line-height: 1.35; }
.scelte input { accent-color: var(--inchiostro); margin: 0; flex: none; transform: translateY(.1em); }
.nota-modulo { font-size: .92rem; line-height: 1.45; color: var(--grafite); }
form .bottone { justify-self: start; }

/* Piede */
.piede { background: var(--inchiostro); color: #CFCABF; font-size: .9rem; line-height: 1.5; }
.piede .interno { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; padding-block: 1.25rem; border-top: 1px solid #47433B; }
.da-inserire { color: var(--celeste); }

/* Tablet */
@media (max-width: 1020px) {
  .menu a:not(.bottone) { display: none; }
  .menu-mobile { display: block; position: relative; }
  .menu-mobile summary { list-style: none; cursor: pointer; font-weight: 600; font-size: .96rem; padding: .5em .2em; }
  .menu-mobile summary::-webkit-details-marker { display: none; }
  .menu-mobile nav { position: absolute; right: 0; top: calc(100% + .6rem); min-width: 13rem; background: var(--carta); border: 1px solid var(--filo); padding: .5rem 0; display: grid; }
  .menu .menu-mobile nav a { display: block; padding: .55rem 1rem; text-decoration: none; }
  .passi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .passi li:last-child { grid-column: 1 / -1; }
  .passi-tre li:last-child { grid-column: auto; }
  .credenziali ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .credenziali li { padding-inline: 0 1rem; border-left: 0; }
  .insieme .interno, .contatti .interno { grid-template-columns: minmax(0, 1fr); }
  .viaggio .interno { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .palco { top: 3.9rem; z-index: 5; margin-inline: calc(var(--gutter-l) * -1); box-shadow: 0 14px 24px #211F1B; }
  .tappa, .tappa:first-child { min-height: 62vh; padding-block: 2rem; align-content: start; }
  .tappa p:not(.occhiello) { max-width: 52ch; }
  .manifesto-colonne, .online .interno { grid-template-columns: minmax(0, 1fr); }
}

/* Telefono */
@media (max-width: 720px) {
  body { font-size: 1.03rem; }
  .menu .bottone { display: none; }
  .apertura::before, .pagina-titolo::before { left: -120px; top: -30px; opacity: .3; }
  .apertura .interno, .chi-sono .interno, .domande .interno { grid-template-columns: minmax(0, 1fr); }
  .apertura-testo { padding-block: 2.5rem 0; }
  .ritratto { margin: 1.75rem 0 2.5rem; }
  .galleria { grid-template-columns: minmax(0, 1fr); }
  .galleria-vere { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .aree-griglia, .binari, .listino-colonne, .percorsi-insieme, .titoli-griglia { grid-template-columns: minmax(0, 1fr); }
  .area-foto { aspect-ratio: 3 / 2; }
  .passi { grid-template-columns: minmax(0, 1fr); }
  .scelte { grid-template-columns: minmax(0, 1fr); }
  .chi-sono figure { max-width: 240px; position: static; }
}
