/* Progressive enhancement: content remains readable without JavaScript. */
html { scroll-padding-top: 100px; }
section[id] { scroll-margin-top: 100px; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.hero p, .section-head p { max-width: 65ch; }
.reveal { opacity: 1; transform: none; }
.reveal.motion-pending { opacity: 0; transform: translateY(14px); }
.reveal.is-visible { opacity: 1; transform: none; }
.hero-grid > *, .contatti-grid > *, .chi-grid > *, .form-row > * { min-width: 0; }
.val { overflow-wrap: anywhere; }
.btn, .menu-toggle { min-height: 44px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--plum, var(--teal-deep, #147A70)); outline-offset: 4px;
}
.skip-link { position: fixed; left: -10000px; top: 12px; z-index: 100; padding: 12px 20px; background: white; color: #161626; }
.skip-link:focus { left: 12px; }
.nav-links a[aria-current="location"] { text-decoration: underline; text-underline-offset: 7px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .btn:hover { transform: translateY(-2px); }
}
@media (max-width: 1040px) and (min-width: 861px) {
  .nav { gap: 16px; padding-inline: 24px; }
  .nav-links { gap: 16px; font-size: 13px; }
}
@media (max-width: 860px) {
  header.menu-open .nav-links { max-height: calc(100dvh - 90px); overflow-y: auto; }
  .menu-toggle { min-width: 44px; }
  .nav-links a { min-height: 44px; }
}
@media (max-width: 480px) {
  .nav { padding-inline: 20px; gap: 12px; }
  .hero { padding: 52px 20px 60px; }
  .hero-grid { gap: 32px; }
  .hero h1 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .form-row { grid-template-columns: 1fr; }
  input, textarea { font-size: 16px; }
  .hero-cta { gap: 12px; }
  .hero-cta .btn { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal.motion-pending { opacity: 1; transform: none; }
}
@media print {
  header, form, .hero-cta { display: none; }
  .reveal.motion-pending { opacity: 1; transform: none; }
}

/* Hero refinement based on the generated reference; original brand assets retained. */
.hero { padding-block: clamp(52px, 6vw, 80px); }
.hero-grid { grid-template-columns: 1.15fr .85fr; gap: clamp(32px, 4vw, 64px); }
.hero h1 { font-size: clamp(2.3rem, 4.2vw, 3.45rem); line-height: 1.1; letter-spacing: -.025em; }
.hero p { font-size: 17px; line-height: 1.65; max-width: 54ch; }
.hub-wrap { width: 100%; isolation: isolate; }
.hub-wrap::before { content: ''; position: absolute; inset: 10%; border-radius: 50%; background: #E4F8F4; opacity: .5; z-index: -1; }
.mail-help { font-size: 14px; line-height: 1.6; }
.btn, a, input, textarea { touch-action: manipulation; }
.nav-links a::after { width: 100%; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nav-links a:hover::after { transform: scaleX(1); }
@media (prefers-reduced-motion: no-preference) {
  .hero-grid > :first-child { animation: entrance .65s ease-out both; }
  .hub-wrap { animation: entrance .8s .1s ease-out both; }
  @keyframes entrance { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 860px) { .hero-grid { grid-template-columns: 1fr; } .hub-wrap { max-width: 340px; } }
@media (max-width: 480px) { .hero h1 { font-size: clamp(2rem, 8.8vw, 2.65rem); } }
