/* Armonia del sito (20/10/2026, Alessio: «crea un'armonia generale tra grandezza dei font»).
   Si carica per ultimo su home, pagine /per/ e pagine d'archivio.

   Scala rifatta il 21/10/2026 (Alessio: «ci sono font troppo piccoli»). Misurata sul telefono a
   390 px, la scala del 20/10 lasciava sotto i 14 px il 38-49% del testo della home e delle /per/.
   Scala unica, in pixel CSS:
     etichetta  13 su telefono, 14 su desktop: maiuscoletti, kicker, date, chip
     nota       15: didascalie, note, condizioni, etichette dei campi, prezzi
     testo      17 su desktop, 16 su telefono: corpo
     bottone    16: tutti i bottoni e i link d'azione
     minimo     13: diritti, crediti delle mappe, riga legale
   Nessuna scritta del sito scende sotto i 13 px, e nessuna frase da leggere sotto i 15.
   Gli !important servono a battere le regole storiche più specifiche sparse nei fogli
   precedenti; le dichiarazioni sotto i 16 px di quei fogli sono state alzate di un gradino
   (≤12 → 13, 13-14 → 15, 15 → 16). */

:root{--fs-label:14px;--fs-note:15px;--fs-body:17px;--fs-button:16px;--fs-min:13px;--ease-out:cubic-bezier(.23,1,.32,1)}
@media (max-width:760px){:root{--fs-label:13px;--fs-body:16px}}

/* Scorrimento morbido verso le sezioni, sotto l'intestazione fissa. */
html{scroll-behavior:smooth!important;scroll-padding-top:84px!important}
body{overflow-x:clip}
.audience-document{scroll-behavior:smooth!important}
@media (max-width:760px){html{scroll-padding-top:68px!important}}
@media (prefers-reduced-motion:reduce){html,.audience-document{scroll-behavior:auto!important}}

/* Etichette: maiuscoletti e kicker. */
html body :is(.eyebrow,.a-eyebrow,.stand-eyebrow,.stand-location-intro,.panel-label,.tp-masthead p,.tp-masthead p>span,
.tp-process-heading p,.tp-journey-heading>p,.tp-step-date,.tp-process-option span,.tp-pass-top span,.tp-pass-duration,
.tp-process-index,.presidi-card-copy small,.presidi-card-duration,.audience-cover-copy small,.card-top span,
.card-bottom small,.mf-explore summary small,.episode-meta span,.episode-meta time,.top-ten-label,.journey-signature,
.micro span,.service-image span,.profile-chip,.stand-film figcaption span:last-child,.ts-option-label,
.ts-comparison-heading small,.archive-date,.d-kit-items span){font-size:var(--fs-label)!important;letter-spacing:.12em!important}

/* Note, didascalie, condizioni, etichette dei campi. */
html body :is(.a-fine,.d-note,.fine-print,.green-note,.calculation-note,.legal-note,.legal-form-note,.tp-conditions,
.tp-conditions a,.tp-request-note,.tp-process-note,.tp-process-option small,.tp-zero-caption,.tp-zero-aside,
.tp-billing small,.tp-billing dt,.tp-first-charge small,.tp-pass-facts li,.tp-journey p,.tp-process-step p,
.tp-process-step strong,.tp-journey-heading span,.ts-price-note,.ts-price-unit,.stand-place-copy span,.stand-place-link,
.stand-film figcaption span,.a-product-film figcaption,.l-family-cover figcaption,.l-sport-cover span,.l-coverage,
.a-hero-cost,.a-hero-cost a,.a-hero-offer span,.a-consent span,.a-consent a,.a-disclosure,.contact-disclosure,
.contact-card small,.contact-consent span,.a-input-pair label,.input-pair label,.a-price-card dt,.a-price-card dd,
.a-contact-copy small,.contact-phone-caption,.journey-terms,.journey-reassurance,.rank-copy span,.selection-copy span,
.floating-freedom,.a-mobile-cta small,.presidi-card-locations span,.l-dimensions dt,.l-dimensions dd,.cost-row small,
.calculator-inputs small,.calculator-extras p,.bottle-impact small,.d-bar small,.scene-line p,.contact-alternatives span,
.source,.service-image small,.d-year-numbers dt,.next-year,.comparison-verdict span,.contact-success p,.coverage-result,
.l-sport-note,.l-family-note p,.price-card .plan-setup,.plan-freedom,.stand-description,.section-top p,.archive-date time){font-size:var(--fs-note)!important;line-height:1.55}

/* Minimo assoluto: diritti, crediti, righe legali. */
html body :is(.stand-map small,.stand-map-credit,.stand-map-credit a,.a-footer-legal,.footer-bottom span,.footer-bottom a,
.archive-footer span){font-size:var(--fs-min)!important}

/* Bottoni e link d'azione: una sola misura. */
html body :is(.journey-actions .button,.a-header-cta,.archive-header-cta,.ts-play,.floating-subscribe span,.a-mobile-cta b,
.shelf-heading-link,.text-link,.a-text-link,.button.small span,.stand-contact,.contact-send,.plan-questions,.presidi-card-link,
.tp-request,.price-card .button){font-size:var(--fs-button)!important}

/* «Cosa è incluso»: bottone secondario chiaro, non un blocco grigio che sembra spento. */
html body .journey-actions .flow-secondary{background:transparent!important;border:1.5px solid rgba(154,235,253,.7)!important;color:#fff!important;backdrop-filter:none!important;box-shadow:none!important;transition:background-color 200ms ease,border-color 200ms ease,transform 160ms var(--ease-out)}
html body .journey-actions .flow-secondary .flow-icon{stroke:#9aebfd;color:#9aebfd}
html body .journey-actions .button:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){html body .journey-actions .flow-secondary:hover{background:rgba(154,235,253,.12)!important;border-color:#9aebfd!important}}

/* Sezione «Meno plastica in casa»: gli alberi della vecchia chiusura, più in alto. */
.green-section{scroll-margin-top:84px}
.green-section .green-lead{max-width:58ch;margin:18px auto 0;font-size:18px;line-height:1.55;color:#e9f2f4}
.green-section .green-facts{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:16px 40px;margin:26px auto 28px;padding:0}
.green-section .green-facts li{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:120px}
.green-section .green-facts strong{font-size:40px;line-height:1;letter-spacing:-.04em;color:#9aebfd}
.green-section .green-facts span{max-width:18ch;font-size:var(--fs-note);line-height:1.4;color:#d4e3e7;text-align:center}
.green-section .green-note{max-width:70ch;margin:18px auto 0;color:#bdd0d4!important}
@media (max-width:760px){
  .green-section .green-lead{font-size:16px}
  .green-section .green-facts{gap:14px 22px}
  .green-section .green-facts strong{font-size:32px}
}

/* Prezzi, condizioni ed etichette dei campi: mai sotto i 15 px, anche su telefono
   (audit UX del 20/10: le condizioni economiche si leggono quanto la promessa). */
html body :is(.journey-terms,.a-hero-cost,.a-price-card dt,.a-price-card dd,.a-input-pair label,.input-pair label,
.tp-billing dt,.tp-billing small,.ts-price-note,.tp-process-note,.fine-print,.price-card .plan-setup,.a-consent span,
.contact-consent span,.a-fine.a-disclosure,.contact-disclosure){font-size:15px!important;line-height:1.55}

/* Aree di tocco di almeno 44 px. Sui link dentro il testo l'area cresce senza spostare le righe. */
html body .audience-rail-controls button,html body [data-direction],html body [data-week-count]{min-width:44px!important;min-height:44px!important}
html body :is(.a-hero-cost a,.a-consent a,.contact-consent a,.stand-map-credit a,.tp-conditions a,.plan-setup a,.archive-crumbs a){padding-block:12px;margin-block:-12px}

/* Pagine /per/ su telefono: prima il titolo della sezione, poi il modulo; campi su una colonna.
   In fondo alla pagina c'è spazio per la barra fissa, che non copre più l'ultima riga. */
@media (max-width:760px){
  html body .a-contact .a-contact-copy{order:-2!important}
  html body .a-input-pair{grid-template-columns:minmax(0,1fr)!important}
  footer.site-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))!important}
}
/* Solo i link dentro una frase (21/10: sui bottoni pieni e sui link a blocco il margine negativo
   li tirava sopra il testo precedente: nella garanzia copriva «una tantum di €120»). */
html body main :is(p,li,dd,small) > a:not([class]){padding-block:10px;margin-block:-10px}

/* Testo da leggere (21/10/2026). Queste frasi non sono note: spiegano l'offerta, il servizio
   e il modulo, e dopo il gradino stavano a 15 px. Vanno alla misura del corpo. */
html body :is(.tp-intro,.tp-next,.tp-process-step p,.tp-pass-facts li,.tp-request-note,.a-service-copy p,.contact-copy p,
.contact-card>p:not(.contact-disclosure),.a-contact-copy p,.stand-description,.presidi-card-description,.subscription-head p,
.mf-library-heading p,.a-hero-offer span,.a-mobile-summary,.a-included li,.plan-includes li,.coverage-head p,
.audience-hub-tools p,.section-top p,.green-section .green-lead,#plan-features li){font-size:var(--fs-body)!important;line-height:1.55}

/* Domande frequenti: la domanda è un titolo che si tocca, non una nota. */
html body :is(.faq .questions summary>span:first-child,.a-faq summary,.a-faq summary>span:first-child){font-size:18px!important;line-height:1.35}
html body :is(.faq .questions details>p,.faq .questions details>div>p,.a-faq details>p){font-size:var(--fs-body)!important;line-height:1.6}
@media (max-width:760px){html body :is(.faq .questions summary>span:first-child,.a-faq summary,.a-faq summary>span:first-child){font-size:17px!important}}

/* Il prezzo accanto alla promessa si legge quanto la promessa. */
html body :is(.journey-terms,.a-hero-cost,.ts-price-note):not(.x){font-size:16px!important}

/* Menu principale. */
html body :is(#primary-nav a,.a-header nav a,.archive-nav a){font-size:15px!important}

/* Telefono (21/10/2026), due difetti già online:
   - pagine /per/: «GIORNO 30 / 30» sotto il numero finiva sopra «Zero anticipi.»;
   - il bottone dell'intestazione andava su due righe e raddoppiava l'altezza della barra. */
@media (max-width:760px){
  html body .trial-premiere .tp-title{padding-bottom:30px}
  html body :is(.a-header .a-header-cta,.archive-header .archive-header-cta):not(.x):not(.y){white-space:nowrap;font-size:14px!important;padding-inline:14px}
}
@media (max-width:370px){html body :is(.a-header .a-header-cta,.archive-header .archive-header-cta):not(.x):not(.y){font-size:13px!important;padding-inline:10px}}

/* «Abbonati online» sotto il bottone del piano (21/10/2026): seconda strada, per chi ha già deciso. */
html body .plan-abbonati{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:12px}

/* Audit mobile (22/10/2026). Difetti misurati a 375 e 412 px sul sito online.
   - La barra fissa della home: «30 giorni gratis» non andava a capo e spingeva il bottone
     16 px fuori dal riquadro, fino al bordo dello schermo.
   - «Guarda la storia» stava a metà del filmato, sopra il titolo della prima scena.
   - Il numero verde nel piede andava su due righe («800 100 / 101») in una colonna da 105 px.
   - Collegamenti di testo, telefono e piede sotto i 44 px d'altezza; casella del consenso da 17 px. */
@media (max-width:760px){
  html body.flow-experience .floating-subscribe strong{white-space:normal;min-width:0;flex:1 1 auto}
  html body.flow-experience .floating-subscribe strong span{white-space:normal}
  html body.flow-experience .floating-subscribe b{flex:none}
  html body #primary-nav.open a{font-size:18px!important}
  html body :is(.a-text-link,.a-phone):not(.x){display:inline-flex;align-items:center;min-height:44px}
  html body .sf-bottom nav a,html body .sf-nav a{display:inline-flex;align-items:center;min-height:44px}
}
@media (max-width:600px){
  html body .ts-magenta:not([data-story-state=playing]) .ts-play{top:24%}
}
@media (max-width:480px){
  html body .sf-contacts{grid-template-columns:repeat(2,minmax(0,1fr))}
  html body .sf-contacts li:first-child{grid-column:1/-1}
}
html body .a-consent input{width:22px;height:22px;margin-top:1px}
