/* Ottimizzazione solo telefono. Caricato per ultimo e vincolato a <= 768px.
   Il layout desktop resta nei fogli originali. */
@media (max-width: 768px) {
  :root { --section-padding: 3rem 0; }
  .container { padding-inline: 1rem; }
  main { min-width: 0; }
  .fade-in { opacity: 1; transform: none; transition: none; }
  section[id], .guida-body [id], .legal-body [id], .faq-item[id], #prova {
    scroll-margin-top: 5rem;
  }
  a, button, summary { -webkit-tap-highlight-color: rgba(16, 27, 77, .08); }
  button, summary, .btn { touch-action: manipulation; }
  :is(a, button, summary):focus-visible { outline: 2px solid var(--color-navy); outline-offset: 4px; }
  .btn { min-height: 48px; }

  /* Navigazione compatta, con bersagli comodi e menu che entra nel viewport. */
  .navbar-inner { gap: .5rem; }
  .navbar-logo { min-height: 44px; gap: .375rem; }
  .navbar-logo .navbar-icon { width: 1.75rem; height: 1.75rem; }
  .navbar-logo img:last-child { height: 1.4rem; }
  .navbar-cta { min-height: 44px; padding-inline: .75rem; font-size: .8125rem; }
  .navbar-toggle { width: 44px; height: 44px; padding: 10px; border-radius: 10px; }
  .navbar-links { padding: .5rem 1rem 1rem; gap: .125rem; max-height: calc(100dvh - 4rem); overflow-y: auto; overscroll-behavior: contain; }
  .navbar-links a { display: flex; align-items: center; min-height: 48px; padding: .5rem .75rem; border-radius: 10px; font-size: 1rem; }
  .navbar-links a:hover, .navbar-links a[aria-current="page"] { background: var(--color-offwhite); }

  /* Apertura: gerarchia chiara e due piattaforme senza sprechi di spazio. */
  .hero.hero--demo { padding: 2rem 0 2.5rem; }
  .hero-title { font-size: clamp(1.875rem, 8.15vw, 2.5rem); line-height: 1.12; letter-spacing: -.04em; margin-bottom: 1.125rem; text-wrap: balance; }
  .hero-subtitle { max-width: 36rem; font-size: 1rem; line-height: 1.65; margin-bottom: 1.5rem; text-wrap: pretty; }
  .hero-start { max-width: 25rem; }
  .hero-trial-title { font-size: .875rem; margin-bottom: .75rem; }
  .hero-start .hero-ctas { gap: .875rem; }
  .hero-platform { gap: .375rem; max-width: none; }
  .hero-ctas .btn { max-width: none; }
  .btn-download { min-height: 52px; font-size: .9375rem; border-radius: 12px; }
  .hero-platform-note { font-size: .75rem; }
  .download-status { padding-inline: .5rem; line-height: 1.6; }

  /* I nodi originali sono riordinati da mobile.js e ripristinati sul desktop. */
  .hero-demo { width: calc(100% + 1rem); left: auto; transform: none; margin: 1rem 0 0 -.5rem; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .hero-demo .demo-portatile { order: 0; grid-column: auto; max-width: 36rem; width: 100%; }
  .hero-demo .demo-passi:empty { display: none; }
  .hero-demo .demo-comandi { margin: -.125rem 0 .75rem; }
  .demo-pausa { min-height: 44px; padding: .5rem 1rem; font-size: .8125rem; background: rgba(255,255,255,.8); }
  .mobile-demo-caption { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: 0 .5rem; margin-bottom: .625rem; font-size: .75rem; color: var(--color-text-secondary); }
  .mobile-demo-caption strong { color: var(--color-navy); font-weight: 600; }
  .mobile-demo-steps { display: flex; gap: .75rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: .5rem; padding: .25rem .5rem .75rem; scrollbar-width: thin; scrollbar-color: #c9d0e0 transparent; }
  .mobile-demo-steps .demo-passo { flex: 0 0 min(82%, 19rem); width: auto; align-self: stretch; scroll-snap-align: start; padding: 1rem; box-shadow: 0 3px 10px rgba(16,27,77,.04); }
  .mobile-demo-steps .demo-passo:hover { transform: none; }
  .mobile-demo-steps .demo-passo-titolo { font-size: .9375rem; line-height: 1.35; }
  .mobile-demo-steps .demo-passo-riga { margin: .625rem 0 0; font-size: .875rem; line-height: 1.5; }

  .eyebrow { font-size: .75rem; }
  #performance .performance-content { margin-bottom: 1.75rem; }
  #performance .performance-content h2 { font-size: clamp(2rem, 8.5vw, 2.75rem); margin: .75rem 0 1rem; }
  #performance .performance-text { font-size: 1rem; line-height: 1.65; }
  #performance .performance-charts { gap: 1rem; }
  .bench-legend { gap: 1.25rem; font-size: .75rem; margin-bottom: 1rem; }
  .bench-card { padding: 1.25rem 1rem 0; border-radius: 18px; }
  .bench-card-header h3 { font-size: 1.25rem; }
  .bench-card-header p { font-size: .8125rem; }
  .bench-axis-help { min-height: 44px; font-size: .6875rem; background: transparent; padding-inline: 4px; }
  .bench-axis-y { top: -18px; }
  .bench-axis-x { bottom: -20px; }
  .bench-result { margin-top: 1.5rem; padding: .875rem 0; }
  .bench-result p { font-size: .8125rem; }
  .bench-data { min-height: 44px; font-size: .75rem; padding-inline: .875rem; }
  .bench-table { font-size: .75rem; }
  .bench-table-wrap, .legal-table-wrap { overscroll-behavior-x: contain; }
  .bench-method { margin-top: 1rem; font-size: .8125rem; }
  .bench-method details { width: 100%; }
  .bench-method summary { display: flex; align-items: center; min-height: 48px; padding: .5rem 0; }
  .bench-method-body { padding: 1rem; }
  .bench-popover { left: 12px !important; right: 12px; width: auto; max-width: 22rem; margin-inline: auto; max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; font-size: .875rem; padding: 1.25rem; }
  .bench-popover h4 { font-size: 1rem; padding-right: 2.75rem; min-height: 2rem; }
  .bench-popover .bench-config, .bench-popover .bench-insight, .bench-popover .bench-insight-metric { font-size: .8125rem; }
  .bench-popover .bench-provenance { font-size: .75rem; }
  .bench-close { width: 44px; height: 44px; top: 8px; right: 8px; font-size: 22px; }

  .privacy-editorial-grid { gap: 1.5rem; }
  .privacy-intro { padding-top: 0; }
  .privacy-kicker { margin-bottom: 1.25rem; font-size: .75rem; }
  .privacy--editorial h2 { font-size: clamp(1.75rem, 7.5vw, 2.25rem); line-height: 1.2; margin-bottom: 1.125rem; }
  .privacy--editorial .privacy-lead { font-size: 1rem; line-height: 1.65; }
  .privacy-evidence { grid-template-columns: 1fr; gap: .875rem; }
  .privacy-risk-card { padding: 1.125rem; border-radius: 16px; }
  .privacy-risk-card h3 { font-size: 1rem; }
  .privacy-risk-card p { font-size: .9375rem; line-height: 1.65; }
  .privacy-source { font-size: .8125rem; padding-block: .375rem; margin-top: .375rem; }
  .privacy--editorial .privacy-legal-note { font-size: .8125rem; }
  .privacy-assurance { grid-template-columns: 1fr; gap: .875rem; padding: 1.25rem; margin-top: 1.5rem; border-radius: 18px; }
  .privacy-assurance-icon { width: 44px; height: 44px; }
  .privacy-assurance .privacy-warning strong { font-size: 1.125rem; }
  .privacy-assurance .privacy-warning { font-size: .9375rem; line-height: 1.65; }

  /* Quattro passaggi compatti: icona, titolo e testo leggibile. */
  .how-it-works-header, .pricing-header { margin-bottom: 1.75rem; }
  .how-it-works-header h2, .pricing-header h2 { font-size: clamp(1.75rem, 7.2vw, 2.25rem); line-height: 1.2; text-wrap: balance; }
  .how-it-works-grid { gap: .875rem; max-width: 36rem; }
  .how-step { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; column-gap: .875rem; align-items: center; padding: 1.25rem; border-radius: 16px; }
  .how-step-icon { grid-column: 1; grid-row: 1; margin: 0; width: 44px; height: 44px; }
  .how-step-num { grid-column: 3; grid-row: 1; margin: 0; font-size: .75rem; color: var(--color-text-muted); }
  .how-step h3 { grid-column: 2; grid-row: 1; font-size: 1.125rem; margin: 0; }
  .how-step p { grid-column: 1 / -1; font-size: .9375rem; line-height: 1.65; margin-top: .875rem; }

  .pricing-header p { font-size: .9375rem; line-height: 1.65; max-width: 32rem; margin-inline: auto; }
  .billing-toggle { width: min(100%, 20rem); margin-bottom: 2rem; }
  .billing-toggle-option { min-height: 48px; padding-inline: .5rem; font-size: .875rem; }
  .billing-toggle-badge { font-size: .6875rem; padding-inline: .375rem; }
  .pricing-grid { grid-template-columns: minmax(0, 1fr); max-width: 28rem; gap: 1.5rem; }
  .pricing-card { padding: 1.5rem; border-radius: 18px; }
  .pricing-card h3 { font-size: 1.25rem; margin-bottom: .625rem; }
  .pricing-common { align-items: flex-start; max-width: 24rem; font-size: .9375rem; gap: .5rem; }
  .pricing-common span { text-align: left; }
  .pricing-common strong { display: block; }
  .pricing-common svg { margin-top: .125rem; }
  .pricing-card-heading { min-height: 0; margin-bottom: 1rem; }
  .pricing-description { max-width: 31ch; font-size: .9375rem; }
  .pricing-price { min-height: 0; margin-bottom: 1.125rem; }
  .price-amount { font-size: 2rem; }
  .price-amount-custom { font-size: 1.5rem; }
  .price-sub { font-size: .8125rem; line-height: 1.6; }
  .pricing-features { margin-bottom: 0; }
  .pricing-features li { font-size: .875rem; padding-block: .625rem; }
  .pricing-card .btn { min-height: 52px; margin-bottom: 1.5rem; }
  .pricing-enterprise { flex-direction: column; align-items: stretch; max-width: 28rem; padding: 1.5rem; gap: 1.5rem; margin-top: 1.5rem; }
  .pricing-enterprise h3 { font-size: 1.375rem; }
  .pricing-enterprise-copy > p { font-size: .9375rem; }
  .pricing-enterprise-features { grid-template-columns: minmax(0, 1fr); gap: .625rem; }
  .pricing-enterprise-features li { font-size: .875rem; }
  .pricing-enterprise-action { flex-basis: auto; text-align: left; padding-top: 1.25rem; border-top: 1px solid #dce2ed; }
  .pricing-enterprise-action .btn { min-height: 52px; }
  .pricing-comparison { max-width: 28rem; margin-top: 1rem; }
  .pricing-comparison > summary { font-size: .875rem; padding-inline: .25rem; }
  .pricing-comparison-content { padding: 1.25rem; }
  .pricing-comparison-intro { font-size: .875rem; }
  .pricing-comparison-table { font-size: .875rem; }
  .pricing-comparison-table colgroup { display: none; }
  .pricing-comparison-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .pricing-comparison-table tbody { display: block; }
  .pricing-comparison-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-block: .875rem; border-bottom: 1px solid #edf0f5; }
  .pricing-comparison-table th[scope="row"] { grid-column: 1 / -1; padding: 0 0 .625rem; border: 0; line-height: 1.5; }
  .pricing-comparison-table td { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: .5rem .25rem; border: 0; font-size: .75rem; overflow-wrap: anywhere; }
  .pricing-comparison-table td::before { content: attr(data-plan); font-size: .6875rem; font-weight: 600; color: var(--color-navy); }
  .pricing-comparison-table td:nth-child(3) { border-radius: 6px; }
  .pricing-comparison-table .pricing-comparison-category { display: block; padding: .75rem 0; border-bottom: 1px solid #dce2ed; }
  .pricing-comparison-table .pricing-comparison-category th { display: block; border: 0; padding: .625rem 0 0; font-size: .9375rem; }
  .pricing-comparison-table tbody:last-child tr:last-child { border-bottom: 0; }
  .pricing-trial { padding: 1.25rem 1rem 2rem; gap: .25rem; font-size: .875rem; }
  .pricing-trial a { display: flex; align-items: center; justify-content: center; min-height: 44px; }

  .footer { padding-top: 2rem; }
  .footer-inner { gap: 1.5rem; padding-bottom: 1.5rem; }
  .footer-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
  .footer-col { gap: 0; min-width: 0; }
  .footer-col:last-child { grid-column: 1 / -1; }
  .footer-col h4 { margin-bottom: .375rem; }
  .footer-col a { display: flex; align-items: center; min-height: 44px; padding-block: .5rem; font-size: .875rem; overflow-wrap: anywhere; }
  .footer-bottom { padding-block: 1.25rem; }
  .footer-bottom p { font-size: .75rem; line-height: 1.65; overflow-wrap: anywhere; }

  /* FAQ, documenti legali e le due guide condividono la stessa cura. */
  .faq { padding: 2.5rem 0 3rem; }
  .faq-header { margin-bottom: 1.5rem; }
  .faq-header h1 { font-size: 2rem; }
  .faq-back { min-height: 44px; display: inline-flex; align-items: center; }
  .faq-item summary { min-height: 60px; padding: 1rem .25rem; gap: .875rem; font-size: 1rem; line-height: 1.5; }
  .faq-answer { padding: 0 .25rem 1.125rem; }
  .faq-answer p { font-size: 1rem; line-height: 1.65; }
  .legal-hero, .guida-hero { padding: 2.5rem 0 2rem; }
  .legal-hero h1, .guida-hero h1 { font-size: clamp(1.875rem, 8vw, 2.5rem); line-height: 1.15; overflow-wrap: anywhere; }
  .guida-hero .guida-intro { font-size: 1rem; line-height: 1.65; }
  .legal-body, .guida-body { padding: 2rem 0 3rem; }
  .legal-summary { padding: 1.125rem; }
  .legal-body h2 { scroll-margin-top: 5rem; }
  .legal-body p, .legal-body li { overflow-wrap: anywhere; }
  .legal-toc, .guida-toc { padding: 1.125rem; margin-bottom: 2.5rem; }
  .legal-toc a, .guida-toc a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .375rem; line-height: 1.5; }
  .legal-toc li, .guida-toc-col li { margin-bottom: .25rem; }
  .guida-toc-grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .guida-parte { margin: 3rem 0 1.5rem; padding-top: 2rem; }
  .guida-parte h2 { font-size: 1.5rem; line-height: 1.3; }
  .guida-parte p { font-size: 1rem; }
  .guida-passo { margin-block: 2rem; }
  .guida-passo h3 { font-size: 1.125rem; line-height: 1.4; gap: .5rem; flex-wrap: wrap; }
  .guida-serve, .guida-legenda { padding: 1rem; }
  .guida-figura { margin-block: 1.25rem 1.5rem; }
  .guida-figura figcaption { font-size: .8125rem; }
  .guida-figura-larga { width: 100%; margin-left: 0; }
  .guida-body :not(pre) > code { overflow-wrap: anywhere; word-break: break-word; }
  .guida-codice { max-width: 100%; padding: .875rem; font-size: .8125rem; overscroll-behavior-x: contain; }
  .guida-body .guida-codice { background: var(--color-navy); color: #fff; padding: .875rem; }
  .guida-domande summary { min-height: 44px; padding-block: .5rem; }
  .guida-chiusura { padding: 1.25rem; margin-top: 2.5rem; }
  .guida-chiusura .btn { white-space: normal; }
}

@media (max-width: 360px) {
  .hero-title { font-size: 1.875rem; }
  .hero-subtitle { font-size: .9375rem; }
  .pricing-card { padding: 1.25rem; }
  .bench-result { align-items: flex-start; flex-direction: column; gap: .625rem; }
  .bench-result p { max-width: none; }
  .bench-data { align-self: flex-end; }
}

@media (min-width: 600px) and (max-width: 768px) {
  .hero-start { max-width: 36rem; }
  .hero-start .hero-ctas { flex-direction: row; flex-wrap: nowrap; }
  .hero-platform { flex: 1; }
  .hero-subtitle { max-width: 34rem; }
  .privacy-evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .privacy--editorial .privacy-legal-note { grid-column: 1 / -1; }
  .pricing-grid { grid-template-columns: minmax(0, 1fr); max-width: 28rem; }
  .footer-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-col:last-child { grid-column: auto; }
}
