/* Caricato DOPO Bootstrap. Nessun font esterno da scaricare. */
:root {
    --brand: #a82b10;
    --ink: #24323c;
    --muted: #52616b;
    --paper: #f7f8fa;
    --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --bs-body-color: var(--ink);
    --bs-body-bg: var(--paper);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.65;
    --bs-link-color: #92230d;
    --bs-link-hover-color: #651808;
}
html { font-size: 100%; }
body { margin: 0; }
/* Il form Web Forms e' il contenitore flex: il footer segue il contenuto. */
.site-shell { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.site-header { background: #fff; border-top: .25rem solid var(--brand); border-bottom: 1px solid #dce2e6; }
.header-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; padding-block: 1.5rem; }
.brand-link { display: block; width: min(100%, 26rem); flex-shrink: 1; }
.site-logo { display: block; width: 100%; max-width: 100%; height: auto; }
.project-brand { min-width: 0; }
.project-name { color: var(--brand); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.65rem); font-weight: 750; letter-spacing: .06em; line-height: 1.25; margin: 0 0 .25rem; }
.project-description { color: var(--muted); font-size: 1rem; line-height: 1.5; margin: 0; }
.site-main { flex: 1 0 auto; padding-block: clamp(1.75rem, 1.1rem + 2vw, 3.5rem); min-width: 0; overflow-wrap: anywhere; }
h1, h2, h3, h4, h5, h6 { color: var(--ink); line-height: 1.25; font-weight: 700; text-wrap: balance; }
h1 { font-size: clamp(1.8rem, 1.35rem + 1.6vw, 2.8rem); margin-bottom: 1rem; }
h2 { font-size: clamp(1.45rem, 1.2rem + 1vw, 2rem); }
h3 { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); }
.lead { color: var(--muted); font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem); line-height: 1.7; }
.readable { max-width: 70ch; }
.content-panel { padding: clamp(1.25rem, .8rem + 1.5vw, 2.25rem); background: #fff; border: 1px solid #dce2e6; border-radius: .75rem; }
.eyebrow { font-size: .875rem; color: var(--brand); font-weight: 700; letter-spacing: .07em; text-transform: uppercase; margin-bottom: .75rem; }
.site-main img, .site-main video { max-width: 100%; height: auto; }
.site-main iframe { max-width: 100%; }
.site-main pre { max-width: 100%; overflow-x: auto; }
.row > * { min-width: 0; }
.form-control, .form-select, .btn { font-size: 1rem; }
.form-control, .form-select { min-height: 2.75rem; }
.btn { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; white-space: normal; }
.btn-primary { --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-hover-bg: #84210c; --bs-btn-hover-border-color: #84210c; --bs-btn-active-bg: #651808; --bs-btn-active-border-color: #651808; }
.site-footer { flex-shrink: 0; padding-block: 1.5rem; background: #fff; border-top: 1px solid #dce2e6; color: var(--muted); text-align: center; font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
.site-footer p { margin: 0; }
:focus-visible { outline: 3px solid #1769aa; outline-offset: 4px; }
.skip-link { position: absolute; top: .5rem; left: .5rem; z-index: 1100; padding: .75rem 1rem; background: #fff; color: #24323c; transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
@media (min-width: 768px) {
    :root { --bs-body-font-size: 1.0625rem; }
    .header-inner { flex-direction: row; justify-content: space-between; align-items: center; gap: 2rem; padding-block: 1.75rem; }
    .brand-link { width: 55%; max-width: 28rem; }
    .project-brand { flex: 1; text-align: right; }
}
@media (min-width: 1200px) {
    :root { --bs-body-font-size: 1.125rem; }
    .brand-link { max-width: 31rem; }
}
@media print {
    .site-shell { min-height: auto; }
    .site-header, .site-footer, .content-panel { background: #fff; }
    .skip-link { display: none; }
}

/* Estensioni per le pagine CAPTCHA. Le regole originali sono conservate sopra. */
.captcha-panel { width: 100%; max-width: 36rem; margin-inline: auto; min-width: 0; }
.captcha-slot { min-width: 0; }
.captcha-slot cap-widget { display: block; width: 100%; max-width: 100%; margin-block: 1.25rem; --cap-widget-width: 100%; }
.captcha-continue { display: block; width: 100%; margin-top: 1.25rem; min-height: 3rem; font-weight: 600; }
.captcha-hidden-submit { display: none; }
.captcha-result { min-height: 3.3em; margin-top: 1rem; color: var(--ink); overflow-wrap: anywhere; }
.captcha-verified { margin-block: 1rem; padding: 1rem; border: 1px solid #a3cfbb; border-radius: .5rem; background: #eaf5ee; color: #225b36; }
.captcha-site-title { margin: 0; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.65rem); color: var(--brand); }
@media (max-width: 575.98px) {
    .captcha-panel { padding: 1rem; }
    .captcha-panel h1 { font-size: clamp(1.5rem, 1.2rem + 1.5vw, 1.8rem); }
    .captcha-continue { min-height: 3rem; }
}
