/* Layout comune a tutte le pagine: nav, tipografia di sezione, footer, barra contatti mobile. */

html { scroll-behavior: smooth; }
body { margin: 0; text-wrap: pretty; }
a { color: var(--color-accent-700); }
a:hover { color: var(--color-accent-900); }

.wrap { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.skip { position: absolute; left: -9999px; top: 0; }
.skip:focus { left: 12px; top: 12px; z-index: 50; background: var(--color-bg); padding: 8px 12px; }

/* nav */
.nav { padding-inline: max(20px, calc((100% - 1100px) / 2 + 20px)); border-bottom: 1px solid var(--color-divider); position: sticky; top: 0; background: var(--color-bg); z-index: 20; }
.nav-brand { margin-right: auto; display: flex; align-items: center; text-decoration: none; }
.nav-brand img { height: 44px; width: auto; display: block; }
.nav-links { display: flex; gap: var(--space-4); align-items: center; }
.nav-links .sep { width: 1px; height: 16px; background: var(--color-divider); }
.nav a[aria-current='page'] { color: var(--color-accent-700); }
.nav .btn { min-height: 40px; }

/* sotto-nav mobile: News e Articoli restano raggiungibili */
.subnav { display: none; }

/* type */
.kicker { display: block; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--color-accent-700); margin-bottom: 12px; }
.rule { height: 1px; border: 0; margin: 0 0 32px; background: var(--color-divider); }
.rule.tight { margin-bottom: 24px; }
.rule.faq { margin-bottom: 8px; }
.h-section { font-family: var(--font-heading); font-weight: var(--font-heading-weight); line-height: 1.1; letter-spacing: 0.02em; text-transform: uppercase; }
.muted { color: var(--color-neutral-800); }

section { padding: 40px 0; }

footer { border-top: 1px solid var(--color-divider); padding: 24px 20px 32px; font-size: 13px; line-height: 1.6; color: var(--color-neutral-800); }
footer .wrap { display: grid; gap: 8px; padding: 0; }
footer p { margin: 0; }

.wa-bar { position: fixed; left: 0; right: 0; bottom: 0; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); background: var(--color-bg); border-top: 1px solid var(--color-divider); display: flex; gap: 12px; z-index: 10; }
.wa-bar .btn-primary { flex: 1; min-height: 48px; font-size: 16px; }
.wa-bar .btn-icon { width: 48px; height: 48px; }

@media (min-width: 721px) { .wa-bar { display: none; } }
@media (max-width: 720px) {
  .nav-links { display: none; }
  body { padding-bottom: 72px; }
  .nav-brand img { height: 38px; }
  .subnav { display: flex; gap: 0; border-bottom: 1px solid var(--color-divider); padding: 0 20px; font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; overflow-x: auto; }
  .subnav a { color: var(--color-neutral-800); text-decoration: none; padding: 10px 14px 10px 0; margin-right: 14px; border-bottom: 2px solid transparent; white-space: nowrap; }
  .subnav a[aria-current='page'] { color: var(--color-text); border-bottom-color: var(--color-accent); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
