/* Shared editorial rhythm: full-width sections with content-led heights. */
@media (min-width: 761px) {
  .page-hero { min-height: 500px; }
  .page-hero__copy { padding-block: 55px; }
  .page-hero h1 { font-size: clamp(72px, 7vw, 122px); }

  /* Home */
  body.home .aperture { height: min(690px, calc(100svh - 124px)); min-height: 560px; }
  .home-story { min-height: 610px; }
  .home-story__copy { padding-block: 62px; }
  .home-story__image { min-height: 590px; }
  .home-story h2 { font-size: clamp(68px, 6.1vw, 108px); margin-block: 27px 30px; }
  .frame-stage, .frame-stage__scene { min-height: 620px; }
  .frame-stage__intro { padding-block: 65px; }
  .frame-stage h2 { font-size: clamp(67px, 5.7vw, 98px); margin-block: 30px 28px; }
  body.home .solutions { padding-block: 75px 80px; }
  body.home .solutions__heading { margin-bottom: 44px; }
  body.home .solutions__heading h2 { font-size: clamp(92px, 9vw, 150px); margin-top: 20px; }
  body.home .solutions__body, body.home .solutions__view { min-height: 490px; }
  body.home .solution { min-height: 98px; padding-block: 18px; }
  body.home .solution__name { font-size: clamp(28px, 2.4vw, 42px); }
  .craft { height: min(680px, 82svh); min-height: 590px; }
  .craft__content { top: 11%; }
  .craft h2 { font-size: clamp(80px, 8vw, 142px); margin-block: 28px; }
  body.home .choice { min-height: 650px; }
  .choice__image { min-height: 620px; }
  .choice__copy { padding-block: 62px; }
  .choice h2 { font-size: clamp(75px, 7vw, 126px); margin-block: 30px 32px; }
  body.home .home-work { min-height: 620px; }
  .home-work__copy { padding-block: 65px; }
  body.home .home-work h2 { font-size: clamp(78px, 7.7vw, 138px); margin-block: 26px; }
  .home-work__image { min-height: 600px; }
  .home-partners { padding-block: 75px 70px; }
  .home-partners__heading { margin-bottom: 42px; }
  .home-partners h2 { font-size: clamp(90px, 9vw, 150px); margin-top: 22px; }
  .home-partners__card { min-height: 215px; }
  body.home .home-journal { padding-block: 65px 95px; }
  body.home .home-journal__heading { margin-bottom: 42px; }
  body.home .home-journal h2 { font-size: clamp(95px, 10vw, 168px); margin-top: 20px; }
  .home-journal__preview { min-height: 290px; padding-block: 30px; }
  .home-journal__preview-window { height: 215px; }

  /* Azienda */
  .company-hero { min-height: 620px; }
  .company-hero__copy { padding-block: 58px; }
  .company-hero__media { min-height: 600px; }
  .company-hero h1 { font-size: clamp(75px, 7.2vw, 126px); margin-block: 36px 27px; }
  .company-intro { min-height: 0; padding-block: 75px 90px; }
  .company-intro h2 { font-size: clamp(88px, 8.7vw, 152px); margin-block: 28px 32px; }
  .company-history { padding-bottom: 85px; }
  .company-history__scene, .company-history__scene--turn { gap: clamp(38px, 5vw, 85px); padding-top: 75px; }
  .company-history__image--roots, .company-history__image--turn { aspect-ratio: 1.35; }
  .company-history__copy h2 { font-size: clamp(70px, 6.5vw, 116px); margin-block: 25px 30px; }
  .company-founder { min-height: 0; }
  .company-founder h2 { font-size: clamp(90px, 9vw, 168px); margin-block: 35px 44px; }
  .company-offer { padding-block: 75px; }
  .company-offer__heading h2 { font-size: clamp(78px, 7.3vw, 136px); margin-top: 26px; }
  .company-offer__image { height: clamp(330px, 32vw, 500px); margin-top: 48px; }
  .company-paths { padding-block: 75px 85px; }
  .company-paths__top { margin-bottom: 42px; }
  .company-paths h2 { font-size: clamp(76px, 7vw, 125px); }
  .company-path { min-height: 430px; padding: clamp(30px, 3vw, 55px); }
  .company-path h3 { font-size: clamp(66px, 5.7vw, 100px); margin-block: 38px 24px; }

  /* Prodotti e servizi */
  .services-hero { min-height: 650px; }
  .services-hero__copy { padding-block: 55px; }
  .services-hero__media { min-height: 620px; }
  .services-hero h1 { font-size: clamp(78px, 7.7vw, 138px); margin-block: 38px 30px; }
  .services-intro { min-height: 0; padding-block: 75px 90px; }
  .services-intro h2 { font-size: clamp(87px, 9vw, 155px); margin-block: 28px 30px; }
  .service-feature { min-height: 630px; }
  .service-feature__copy { padding-block: 62px; }
  .service-feature__media { min-height: 600px; }
  .service-feature h2 { font-size: clamp(78px, 7vw, 128px); margin-block: 30px 28px; }
  .services-process { min-height: 620px; }
  .services-process__media { min-height: 600px; }
  .services-process__copy { padding-block: 65px; }
  .services-process h2 { font-size: clamp(78px, 7.3vw, 132px); margin-block: 30px 28px; }
  .services-guide { min-height: 580px; padding-block: 75px; }
  .services-guide h2 { font-size: clamp(85px, 8.8vw, 155px); margin-block: 30px 28px; }

  /* Dettaglio prodotto */
  .product-detail__hero { min-height: 650px; }
  .product-detail__hero-copy { padding-block: 58px; }
  .product-detail__hero-media { min-height: 620px; }
  .product-detail__hero h1 { font-size: clamp(75px, 7vw, 130px); margin-block: 38px 30px; }
  .product-detail--pvc .product-detail__hero h1 { font-size: clamp(70px, 6vw, 112px); }
  .product-detail__intro { min-height: 0; padding-block: 75px 90px; }
  .product-detail__intro h2 { font-size: clamp(88px, 8.8vw, 155px); margin-block: 28px 30px; }
  .product-detail__scene { min-height: 620px; }
  .product-detail__scene-copy { padding-block: 65px; }
  .product-detail__scene-media { min-height: 600px; }
  .product-detail__scene h2 { font-size: clamp(78px, 7vw, 128px); margin-block: 30px 28px; }
  .product-detail__applications { min-height: 560px; padding-block: 70px; }
  .product-detail__applications h2 { font-size: clamp(80px, 7.5vw, 135px); margin-block: 27px; }
  .product-detail__applications-list li { padding-block: 17px; }
  .product-detail__applications--gallery { padding-block: 75px; }
  .product-detail__applications--gallery h2 { margin-block: 22px 35px; }
  .product-detail__applications--gallery .product-detail__applications-copy>p:not(.eyebrow),
  .product-detail__applications--gallery .product-detail__link { margin-bottom: 35px; }
  .product-detail__application-card { aspect-ratio: 1.55; }
  .product-detail__application-card:nth-child(4), .product-detail__application-card:nth-child(5) { aspect-ratio: 2.4; }
  .product-detail__more { padding-block: 75px 85px; }
  .product-detail__more>div { margin-top: 35px; }
  .product-detail__more a { min-height: 105px; }
}

@media (min-width: 1400px) {
  .product-detail__application-gallery { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .product-detail__application-card,
  .product-detail__application-card:nth-child(4),
  .product-detail__application-card:nth-child(5) { grid-column: auto; aspect-ratio: .85; }
  .product-detail__application-card figcaption { font-size: clamp(38px, 2.7vw, 52px); padding: 20px; }
}

@media (max-width: 760px) {
  .home-story__copy, .choice__copy, .home-work__copy,
  .service-feature__copy, .service-feature--pvc .service-feature__copy,
  .services-process__copy, .product-detail__scene-copy,
  .product-detail__scene--reverse .product-detail__scene-copy { padding-block: 65px; }
  .frame-stage__intro { padding-block: 65px; }
  .company-intro, .services-intro, .product-detail__intro { padding-block: 70px 80px; }
  .company-offer, .company-paths, .services-guide, .product-detail__applications { padding-block: 75px; }
  .company-history__scene, .company-history__scene--turn { padding-top: 65px; }
  .company-path { min-height: 400px; }
  .services-hero__copy, .company-hero__copy, .product-detail__hero-copy { min-height: 0; padding-block: 65px; }
  .services-hero h1, .company-hero h1, .product-detail__hero h1 { margin-top: 36px; }
  .services-hero__media, .service-feature__media, .services-process__media,
  .company-hero__media, .product-detail__hero-media, .product-detail__scene-media { min-height: 0; height: clamp(300px, 55vw, 390px); }
  .company-offer__image { margin-top: 42px; }
  .product-detail__applications--gallery .product-detail__application-card,
  .product-detail__applications--gallery .product-detail__application-card:nth-child(4),
  .product-detail__applications--gallery .product-detail__application-card:nth-child(5) { aspect-ratio: 1.25; }
  .product-detail__more { padding-block: 75px; }
}

/* Give the display font enough room between stacked lines on every template. */
:is(
  .aperture h1,
  .page-hero h1,
  .archive-hero h1,
  .single-entry h1,
  .not-found h1,
  .site-footer h2,
  .site-footer__form-panel h3,
  .site-footer__details h3,
  .page-next a,
  .guide-callout h2,
  .news h2,
  .material-card h2,
  .contact-layout h2,
  .home-story h2,
  .frame-stage h2,
  body.home .solutions__heading h2,
  .craft h2,
  .choice h2,
  body.home .home-work h2,
  .home-journal h2,
  .home-partners h2,
  .company-page h1,
  .company-page h2,
  .company-path h3,
  .services-page h1,
  .services-page h2,
  .product-detail h1,
  .product-detail h2,
  .choice-guide h1,
  .choice-guide h2,
  .choice-guide h3,
  .contact-page h1,
  .contact-page h2
) {
  line-height: 1;
  letter-spacing: -.01em;
  word-spacing: .035em;
}

/* The home aperture has a fixed photographic mask; keep its horizontal fit. */
.aperture h1 { letter-spacing: -.022em; word-spacing: normal; }
.company-page .company-founder h2 { line-height: .96; letter-spacing: -.025em; word-spacing: normal; }
