/* Match each section's width to its content, keeping related blocks together. */
:root{--wrap:1440px;--gutter:clamp(1.15rem,3.5vw,4rem)}
.nav .wrap,.hero-inner{max-width:1680px}
.contact .wrap{max-width:1280px}
.storia .wrap,.footer .wrap{max-width:1360px}
.intro-media,.terr-media,.storia-media{margin:0}
.process-heading{gap:2.5rem}
.process-heading>p{margin-left:0}
@media(max-width:960px){.terr-media{margin-inline:auto}}
@media(min-width:1101px){
  .hero{align-items:flex-end}
  .hero-inner{display:grid;grid-template-columns:1.35fr 1fr;column-gap:clamp(3rem,6vw,7rem);align-items:center;padding-top:9rem;padding-bottom:5rem}
  .hero .kicker{grid-column:1/-1;margin-bottom:2rem}
  .hero h1{grid-column:1;grid-row:2/4;font-size:clamp(4rem,5.3vw,6rem);max-width:15ch}
  .hero .lead{grid-column:2;grid-row:2;max-width:43ch;margin:0 0 1.5rem;font-size:1.15rem;align-self:end}
  .hero-inner>.hero-cta{grid-column:2;grid-row:3;align-self:start;gap:.65rem}
  .hero-inner>.hero-cta .btn{font-size:.85rem;padding:.8rem 1rem}
  .hero-stats{grid-column:1/-1;margin-top:3.5rem}
  .intro-grid,.terr-grid{gap:3.5rem}
  .intro-media .frame img,.terr-media img{aspect-ratio:1/1}
  .storia-media img{aspect-ratio:4/5}
  .contact .sec-head{text-align:left;margin-left:0;margin-bottom:2rem}
  .contact .sec-head .eyebrow{justify-content:flex-start}
  .contact .sec-head p{margin-left:0}
  .contact-grid{grid-template-columns:.85fr 1.15fr;gap:3rem}
  .b2b .sec-head{display:grid;grid-template-columns:1.1fr 1fr;gap:0 3rem;max-width:none;text-align:left;align-items:end;margin-bottom:2.5rem}
  .b2b .sec-head .eyebrow{grid-column:1/-1;justify-content:flex-start}
  .b2b .sec-head p{margin:0;max-width:48ch}
}
