.container { width: min(100% - 2 * var(--page-gutter), var(--width-content)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.surface { background: var(--color-surface); }
.eyebrow { color: var(--color-primary); font-size: var(--font-small); font-weight: 650; margin-block-end: var(--space-5); }
.lead { font-size: var(--font-lead); color: var(--color-muted); max-width: var(--width-copy); }
.stack > * + * { margin-block-start: var(--space-5); }
.workspace { background: var(--color-surface); }
.site-header { border-block-end: 1px solid var(--color-border); }
.header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3) var(--space-6); padding-block: var(--space-4); }
.brand { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--font-title-small); font-weight: 650; color: var(--color-ink); text-decoration: none; }
.brand img { width: 2.75rem; }
.navigation { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); padding: 0; margin: 0; list-style: none; }
.navigation a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--color-ink); font-size: var(--font-small); text-decoration: none; }
.navigation a:hover, .navigation a[aria-current="page"] { color: var(--color-primary); text-decoration: underline; text-decoration-thickness: 2px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: var(--space-3) var(--space-5); border-radius: var(--radius-small); background: var(--color-primary); color: var(--color-on-primary); font-weight: 600; text-decoration: none; transition: background-color var(--motion-fast); }
.button:hover { background: var(--color-primary-hover); }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-5); }
.section-intro { display: grid; gap: var(--space-5); margin-block-end: var(--space-7); }
.section-intro h2 { max-width: var(--width-copy); }
.site-footer { border-block-start: 1px solid var(--color-border); padding-block: var(--space-7); background: var(--color-surface); }
.footer-grid { display: grid; gap: var(--space-6); }
.footer-grid p { color: var(--color-muted); font-size: var(--font-small); }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links a { display: inline-block; padding-block: var(--space-2); font-size: var(--font-small); }
.footer-label { font-weight: 650; margin-block-end: var(--space-2); }
.legal-navigation { margin-block-end: var(--space-6); }
.legal-navigation a { display: inline-block; padding-block: var(--space-2); }
.document-list { list-style: none; margin: 0; padding: 0; }
.document-list li { border-block-start: 1px solid var(--color-border); }
.document-list a { display: grid; gap: var(--space-2); padding-block: var(--space-5); text-decoration: none; }
.document-list a:hover .document-title { text-decoration: underline; }
.document-title { font-size: var(--font-title-small); font-weight: 600; }
.document-description { color: var(--color-muted); }
.page-intro { max-width: var(--width-reading); }
.placeholder { min-height: 55vh; }
@media (min-width: 48rem) {
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; gap: var(--space-7); }
  .section-intro { grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: start; }
  .document-list a { grid-template-columns: 1fr 1.5fr; gap: var(--space-6); }
}

/* Reserve the same two link slots across bootstrap, guest and authenticated states. */
.auth-navigation { position: relative; display: grid; grid-template-columns: max-content max-content;
align-items: center; gap: var(--space-5); max-width: 100%; }
.header-inner nav { max-width: 100%; }
@media (scripting: enabled) {
  .auth-navigation:not([data-auth-resolved]) a { visibility: hidden; }
  .auth-navigation:not([data-auth-resolved])::before { content: 'Accesso…'; position: absolute; inset: 0; display: flex; align-items: center; color: var(--color-muted); font-size: var(--font-small); }
}
