:root{--bg:#f6f7f9;--card:#fff;--ink:#1d2733;--muted:#5b6776;--brand:#1f4e79;--brand2:#2f7fb8;--accent:#c8a24a;--line:#dde2e8}
@media (prefers-color-scheme:dark){:root{--bg:#10161d;--card:#18212b;--ink:#e6ebf0;--muted:#9aa7b5;--brand:#6fb1e3;--brand2:#4a93cc;--accent:#d9b660;--line:#2a3643}}
*{box-sizing:border-box}
body{margin:0;font:17px/1.65 Georgia,"Times New Roman",serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand2)}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
header.top{background:var(--brand);color:#fff}
header.top .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:18px 16px}
.logo{color:#fff;text-decoration:none;font-size:1.6rem;font-weight:700;letter-spacing:.04em}
.logo small{display:block;font-size:.8rem;font-weight:400;letter-spacing:.02em;opacity:.85;font-style:italic}
.social a{color:#fff;margin-left:14px;font:600 .85rem system-ui,sans-serif;text-decoration:none;opacity:.9}
nav.main{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
nav.main .wrap{display:flex;flex-wrap:wrap;gap:2px;padding:0 8px}
nav.main a{font:600 .92rem system-ui,sans-serif;color:var(--ink);text-decoration:none;padding:13px 12px;border-bottom:3px solid transparent}
nav.main a:hover,nav.main a.on{border-color:var(--accent);color:var(--brand)}
nav.main a.cta{margin-left:auto;background:var(--accent);color:#1d2733;border-radius:6px;margin-block:6px;padding:7px 14px;border:0}
.hero{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;padding:56px 0}
.hero h1{margin:0 0 8px;font-size:2.2rem;line-height:1.2}
.hero p{max-width:640px;margin:0 0 20px;opacity:.95}
.btn{display:inline-block;background:var(--accent);color:#1d2733;font:700 .95rem system-ui,sans-serif;padding:10px 18px;border-radius:6px;text-decoration:none;margin:0 8px 8px 0}
.btn.alt{background:transparent;color:inherit;border:2px solid currentColor}
main{padding:32px 0 48px}
h1,h2,h3{line-height:1.25}
h2{color:var(--brand);margin-top:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px}
.card h3{margin-top:0}
.card.link{display:block;text-decoration:none;color:inherit;transition:transform .15s,border-color .15s}
.card.link:hover{transform:translateY(-2px);border-color:var(--brand2)}
.badge{display:inline-block;font:600 .75rem system-ui,sans-serif;background:var(--accent);color:#1d2733;border-radius:99px;padding:2px 10px}
.event{border-left:4px solid var(--accent);padding:2px 0 2px 14px;margin:0 0 14px}
.event b{display:block}.event span{color:var(--muted);font-size:.92rem}
table{border-collapse:collapse;width:100%}td,th{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}
.note{background:var(--card);border:1px dashed var(--accent);border-radius:8px;padding:14px 18px;color:var(--muted);font-size:.95rem}
section.block{margin-bottom:36px}
form label{display:block;font:600 .85rem system-ui,sans-serif;margin:12px 0 4px}
form input,form select,form textarea{width:100%;padding:9px;border:1px solid var(--line);border-radius:6px;font:inherit;background:var(--bg);color:var(--ink)}
footer{background:var(--card);border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font:.88rem system-ui,sans-serif}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
@media(max-width:600px){.hero h1{font-size:1.6rem}nav.main a.cta{margin-left:0}}
.logo{display:flex;align-items:center;gap:20px}
.logo span{display:block;line-height:1.3}
.stemma{display:block;background:#fff;border-radius:8px;padding:4px;width:64px;height:auto;flex:none;margin-right:6px}
