/* Mobile refinement — pre-launch 2026
   Layout/accessibility only. Editorial copy is intentionally untouched. */

@media (max-width: 820px){
  :root{
    --header-h:68px;
    --gutter:20px;
  }

  html{
    scroll-padding-top:calc(var(--header-h) + 14px);
    -webkit-text-size-adjust:100%;
  }

  body{
    font-size:16px;
    line-height:1.65;
    padding-bottom:calc(68px + env(safe-area-inset-bottom));
    overflow-x:hidden;
  }

  .shell{width:min(var(--shell),calc(100% - 40px))}
  .section-pad,
  .about-section,
  .solutions-section,
  .contact-section{padding:56px 0}

  /* Header / navigation */
  .site-header{
    height:var(--header-h);
    padding-left:max(16px,env(safe-area-inset-left));
    padding-right:max(16px,env(safe-area-inset-right));
  }
  .brand{gap:10px}
  .brand img{width:38px;height:38px}
  .brand strong{font-size:16px}
  .brand small{font-size:10px;letter-spacing:.07em}
  .site-menu summary{
    width:48px;
    height:48px;
    padding:0;
    justify-content:center;
  }
  .menu-icon{width:32px;height:32px}
  .menu-panel{
    top:var(--header-h);
    width:100%;
    max-height:calc(100dvh - var(--header-h));
    padding:18px 20px calc(28px + env(safe-area-inset-bottom));
    border-left:0;
  }
  .menu-panel nav>a{
    min-height:64px;
    grid-template-columns:30px 1fr 22px;
    gap:10px;
  }
  .menu-panel nav span{font-size:28px}
  .menu-contact{font-size:11px}

  /* Home hero: keep all wording exactly as supplied, improve hierarchy only */
  .hero-layout{
    min-height:0;
    padding:38px 0 46px;
    grid-template-areas:"intro" "media" "detail";
    gap:24px;
  }
  .hero-intro h1{
    max-width:10ch;
    font-size:clamp(43px,12.2vw,56px);
    line-height:.96;
    letter-spacing:-.035em;
  }
  .hero-time-lines{
    margin-top:20px;
    gap:4px;
    font-size:16px;
    line-height:1.48;
  }
  .hero-time-label{font-size:11px}
  .hero-carousel{
    width:calc(100% + 40px);
    margin-left:-20px;
    aspect-ratio:1672/941;
    box-shadow:none;
    touch-action:pan-y;
  }
  .hero-carousel-controls{right:12px;bottom:10px;left:12px}
  .hero-carousel-dots{gap:2px}
  .hero-carousel-dots button{
    width:30px;
    height:34px;
  }
  .hero-carousel-dots button:before{width:6px;height:6px}
  .hero-carousel-dots button.is-active:before{width:20px}
  .hero-carousel-toggle{width:36px;height:36px}
  .hero-detail{max-width:42rem}
  .hero-description{
    max-width:none;
    font-size:16px;
    line-height:1.65;
  }
  .hero-detail .hero-description+.hero-description{margin-top:13px}
  .hero-decision{
    max-width:none;
    margin-top:18px;
    font-size:12px;
    line-height:1.55;
    letter-spacing:.035em;
  }
  .hero-actions{
    margin-top:22px;
    gap:16px;
    align-items:flex-start;
    flex-direction:column;
  }
  .hero-actions .text-link{
    margin:0;
    min-height:36px;
    display:inline-flex;
    align-items:center;
  }

  /* Home sections */
  .after-hero-wrap{grid-template-columns:1fr;gap:24px}
  .after-hero h2{font-size:clamp(34px,9.5vw,44px)}
  .after-hero-copy p{
    font-size:16px;
    line-height:1.68;
  }
  .after-hero-copy p+p{margin-top:17px}
  .after-hero-final{
    font-size:clamp(22px,6.4vw,27px)!important;
    line-height:1.38!important;
  }

  .split-heading{gap:18px;margin-bottom:28px}
  .split-heading>p{font-size:16px;line-height:1.65}
  .questions-answer{font-size:clamp(28px,8vw,34px)!important}
  .question-list summary{
    padding:18px 0;
    grid-template-columns:30px minmax(0,1fr) 22px;
    gap:10px;
  }
  .question-list summary>strong{
    font-size:clamp(20px,5.8vw,24px);
    line-height:1.22;
  }
  .question-list summary>b{
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
  }
  .question-response{
    margin:0 0 0 40px;
    padding:0 0 22px;
    font-size:16px;
    line-height:1.68;
  }

  .meeting-heading{margin-bottom:28px}
  .meeting-heading h2{font-size:clamp(34px,9.5vw,44px)}
  .meeting-only .meeting-faq-item{padding:22px 0}
  .meeting-only .meeting-faq-item dt{font-size:21px}
  .meeting-only .meeting-faq-item dd{font-size:16px;line-height:1.68}
  .meeting-cta{
    grid-template-columns:1fr;
    gap:24px;
    margin-top:36px;
    padding:28px 22px;
  }
  .meeting-cta h3{font-size:clamp(29px,8.2vw,38px)}
  .meeting-cta-copy p{font-size:16px;line-height:1.68}

  /* Chi sono */
  .about-hero{padding:34px 0 52px}
  .about-hero-grid{
    display:flex;
    flex-direction:column;
    gap:28px;
  }
  .about-photo{order:1;width:100%;max-width:none}
  .about-copy-wrap{order:2}
  .about-photo img{
    width:100%;
    max-height:none;
    box-shadow:0 18px 44px rgba(0,0,0,.20);
  }
  .about-photo figcaption{font-size:10px}
  .about-hero h1{
    font-size:clamp(42px,11.5vw,54px);
    line-height:.98;
  }
  .about-lead{margin-top:22px;font-size:16px;line-height:1.68}
  .section-grid,
  .human-grid,
  .path-grid,
  .about-cta-grid{grid-template-columns:1fr;gap:26px}
  .section-grid h2,.human h2,.path h2,.about-cta h2{
    font-size:clamp(34px,9vw,43px);
  }
  .section-copy p,.human-copy p,.about-cta p{
    font-size:16px;
    line-height:1.68;
  }
  .section-copy .lead,.human-copy .human-highlight{
    font-size:22px;
    line-height:1.45;
  }
  .experience-grid{grid-template-columns:1fr;gap:14px}
  .experience-card{
    min-height:0;
    padding:24px 22px;
  }
  .experience-card h3{margin:28px 0 14px;font-size:29px}
  .experience-card p{font-size:16px;line-height:1.65}
  .value-line{
    margin-top:40px;
    font-size:clamp(29px,8.2vw,38px);
  }
  .path-list li{
    grid-template-columns:70px 1fr;
    gap:14px;
    padding:20px 0;
  }
  .path-list strong{font-size:21px}
  .path-list p{font-size:15px;line-height:1.62}
  .about-more summary{
    min-height:58px;
    padding:18px 0;
    font-size:21px;
  }
  .about-cta{padding:56px 0}

  /* Soluzioni */
  .solutions-hero{padding:42px 0 54px}
  .solutions-hero-grid,
  .solutions-heading,
  .product-after-grid,
  .collab-grid,
  .solutions-cta-grid{
    grid-template-columns:1fr;
    gap:24px;
  }
  .solutions-hero h1{
    max-width:10ch;
    font-size:clamp(44px,12vw,58px);
    line-height:.98;
  }
  .solutions-intro .lead{font-size:clamp(24px,7vw,31px);line-height:1.34}
  .solutions-intro p{margin-top:18px;font-size:16px;line-height:1.68}
  .solutions-heading{margin-bottom:30px}
  .solutions-heading h2{font-size:clamp(34px,9vw,44px)}
  .solution-item,.process-item{
    grid-template-columns:36px minmax(0,1fr);
    gap:10px 12px;
    padding:24px 0;
  }
  .solution-item>div:last-child,.process-item>p{grid-column:2}
  .solution-item h3{font-size:clamp(25px,7vw,31px)}
  .solution-item p{font-size:16px;line-height:1.65}
  .process-item h3{font-size:25px}
  .process-item p{font-size:15px;line-height:1.65}
  .tools-grid{grid-template-columns:1fr}
  .tool{min-height:0;padding:22px}
  .collab-copy p{font-size:16px;line-height:1.68}
  .collab-copy .emphasis{font-size:22px}
  .solutions-cta{padding:56px 0}
  .solutions-cta h2{font-size:clamp(34px,9vw,44px)}
  .solutions-cta p{font-size:16px;line-height:1.68}

  /* Contatti */
  .contact-hero{padding:40px 0 54px}
  .contact-hero-grid,
  .contact-heading,
  .before-grid{
    grid-template-columns:1fr;
    gap:26px;
  }
  .contact-hero h1{
    font-size:clamp(42px,11.5vw,54px);
    line-height:.98;
  }
  .contact-intro{margin-top:22px;font-size:16px;line-height:1.68}
  .contact-summary{padding:22px}
  .contact-summary h2{font-size:29px}
  .contact-summary p{font-size:15px;line-height:1.65}
  .contact-heading{margin-bottom:30px}
  .contact-heading h2,.before h2{
    font-size:clamp(34px,9vw,43px);
  }
  .contact-heading>p{font-size:16px;line-height:1.68}
  .meeting-grid,.contact-cards{grid-template-columns:1fr;gap:14px}
  .meeting-card,.contact-card{
    min-height:0;
    padding:22px;
  }
  .meeting-card h3{margin:26px 0 10px;font-size:27px}
  .meeting-card p,.contact-card p{font-size:16px;line-height:1.65}
  .contact-card h3{margin:28px 0 10px;font-size:29px}
  .contact-card a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .contact-number{font-size:22px}
  .before-list li{padding:20px 0;gap:14px}
  .before-list strong{font-size:22px}
  .before-list p{font-size:15px;line-height:1.65}
  .final-note{padding:56px 0}
  .final-note h2{font-size:clamp(34px,9vw,44px)}
  .final-note p{font-size:16px;line-height:1.68}

  /* Footer + persistent CTA */
  .footer-main{padding:38px 0 28px;gap:24px}
  .footer-brand strong{font-size:25px}
  .footer-main nav{font-size:14px}
  .footer-contact{font-size:13px}
  .footer-legal{
    gap:14px;
    padding:18px 0 calc(92px + env(safe-area-inset-bottom));
    font-size:11px;
  }
  .mobile-cta{
    z-index:100;
    right:12px;
    left:12px;
    bottom:max(10px,env(safe-area-inset-bottom));
    min-height:54px;
    padding:0 18px;
    border-radius:2px;
    box-shadow:0 10px 30px rgba(0,0,0,.20);
    font-size:13px;
    line-height:1.2;
  }

  /* Better tap targets */
  a,button,summary{-webkit-tap-highlight-color:rgba(147,104,70,.14)}
  .text-link{font-size:14px}
}

@media (max-width: 480px){
  :root{--gutter:18px}
  .shell{width:calc(100% - 36px)}
  .hero-layout{padding-top:34px}
  .hero-intro h1{font-size:43px}
  .hero-time-lines{font-size:15px}
  .hero-carousel{width:calc(100% + 36px);margin-left:-18px}
  .question-list summary>strong{font-size:20px}
  .question-response{font-size:16px}
  .button{width:100%;min-height:52px}
}

@media (hover:none) and (pointer:coarse){
  .button:hover,
  .menu-panel nav>a:hover{transform:none}
}

@media (prefers-reduced-motion:reduce){
  .hero-slides img{transform:none!important}
}
