:root {
  --bg: #f6f8fb;
  --paper: #ffffff;
  --ink: #132033;
  --muted: #5c6878;
  --line: #d9e1ec;
  --brand: #0b3d5d;
  --brand-2: #0f7d61;
  --brand-3: #f0b429;
  --soft: #eaf3f0;
  --danger: #8c2f39;
  --shadow: 0 10px 30px rgba(19, 32, 51, .08);
  --radius: 18px;
  --max: 1160px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
}
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
.skip-link { position:absolute; top:-40px; left:0; background:#fff; padding:8px; z-index:10; }
.skip-link:focus { top:0; }
.site-header { position: sticky; top:0; z-index: 9; background: rgba(255,255,255,.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.header-inner { max-width: var(--max); margin:0 auto; padding: 14px 20px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.logo { display:flex; align-items:center; gap:12px; font-weight:800; letter-spacing:.01em; color:var(--ink); }
.logo-mark { width:42px; height:42px; border-radius:12px; background: linear-gradient(135deg, var(--brand), var(--brand-2)); display:grid; place-items:center; color:#fff; font-size:15px; box-shadow: var(--shadow); }
.logo small { display:block; color:var(--muted); font-weight:600; margin-top:1px; letter-spacing:0; }
.nav { display:flex; align-items:center; gap:16px; flex-wrap: wrap; justify-content:flex-end; font-size: 14px; }
.nav a { color: var(--ink); font-weight: 650; }
.nav .btn { color: #fff; }
.mobile-toggle { display:none; border: 1px solid var(--line); background:#fff; border-radius:12px; padding:9px 12px; font-weight:700; }
.lang { border:1px solid var(--line); padding:7px 10px; border-radius: 999px; background:#fff; font-weight:700; }
.btn, button.btn { display:inline-flex; align-items:center; gap:8px; padding: 12px 17px; border-radius: 999px; border: 0; background: var(--brand); color: #fff; font-weight: 800; cursor:pointer; box-shadow: 0 8px 18px rgba(11,61,93,.16); }
.btn.secondary { background: #fff; color: var(--brand); border:1px solid var(--line); box-shadow:none; }
.btn.green { background: var(--brand-2); }
main { min-height: 70vh; }
.hero { background: radial-gradient(circle at 82% 10%, rgba(240,180,41,.25), transparent 35%), linear-gradient(135deg, #08283f 0%, #0b3d5d 48%, #0f7d61 100%); color: #fff; }
.hero-inner { max-width: var(--max); margin:0 auto; padding: 74px 20px 58px; display:grid; grid-template-columns: 1.15fr .85fr; gap:38px; align-items:center; }
.kicker { display:inline-flex; gap:8px; align-items:center; padding:7px 12px; border:1px solid rgba(255,255,255,.32); border-radius:999px; color:rgba(255,255,255,.9); font-weight:700; font-size:13px; margin-bottom:18px; }
.kicker.dark { color: var(--brand); border-color: var(--line); background:#fff; }
h1 { font-size: clamp(34px, 5vw, 58px); line-height:1.02; margin:0 0 18px; letter-spacing:-.035em; }
h2 { font-size: clamp(26px, 3vw, 40px); line-height:1.12; letter-spacing:-.025em; margin:0 0 16px; }
h3 { font-size: 22px; line-height:1.22; margin: 0 0 12px; }
h4 { margin: 0 0 8px; }
p { margin: 0 0 16px; }
.lead { font-size: 19px; color: rgba(255,255,255,.9); max-width: 760px; }
.hero-card { background: rgba(255,255,255,.11); border: 1px solid rgba(255,255,255,.24); border-radius: var(--radius); padding: 24px; box-shadow: 0 20px 60px rgba(0,0,0,.18); }
.hero-card strong { font-size: 38px; display:block; }
.hero-actions { display:flex; gap:12px; margin-top: 28px; flex-wrap:wrap; }
.section { max-width: var(--max); margin:0 auto; padding: 56px 20px; }
.section.compact { padding: 34px 20px; }
.grid { display:grid; gap:18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.card { background: var(--paper); border:1px solid var(--line); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); }
.card.no-shadow { box-shadow:none; }
.stat { padding: 24px; border-radius: var(--radius); background:#fff; border: 1px solid var(--line); }
.stat b { display:block; font-size: clamp(28px, 5vw, 46px); line-height:1; color: var(--brand); margin-bottom:7px; }
.stat span { color: var(--muted); font-weight:700; }
.badge { display:inline-block; padding:5px 10px; background: var(--soft); color: var(--brand-2); border-radius:999px; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
.muted { color: var(--muted); }
.callout { border-left: 5px solid var(--brand-3); background:#fff8e7; padding:20px; border-radius:14px; margin:22px 0; }
.callout.green { border-left-color: var(--brand-2); background: #edf7f3; }
.callout.red { border-left-color: var(--danger); background:#fff2f3; }
ul.clean { list-style: none; padding:0; margin:0; }
ul.clean li { padding: 10px 0 10px 30px; position:relative; border-bottom: 1px solid #edf1f5; }
ul.clean li:before { content:"•"; position:absolute; left:7px; color:var(--brand-2); font-size:24px; top:5px; }
ul.clean li:last-child { border-bottom:0; }
.timeline { border-left: 3px solid var(--line); margin-left: 10px; padding-left: 22px; }
.timeline-item { position: relative; margin-bottom: 22px; }
.timeline-item:before { content:""; width:13px; height:13px; background: var(--brand-2); border:3px solid #fff; box-shadow: 0 0 0 2px var(--brand-2); border-radius:50%; position:absolute; left:-31px; top:5px; }
.table-wrap { overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow: var(--shadow); }
table { width:100%; border-collapse: collapse; min-width:720px; }
th, td { padding: 14px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { background:#f0f5f9; color:var(--brand); font-size:14px; }
tr:last-child td { border-bottom:0; }
.form-grid { display:grid; gap:16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
label { font-weight:750; display:block; margin-bottom:6px; }
input, textarea, select { width:100%; border:1px solid var(--line); border-radius:12px; padding:12px 13px; font:inherit; background:#fff; color:var(--ink); }
textarea { min-height: 110px; resize: vertical; }
.full { grid-column: 1 / -1; }
.output { white-space: pre-wrap; border:1px dashed var(--brand); background:#f4fbff; border-radius:14px; padding:16px; min-height:90px; }
.footer { margin-top: 50px; background:#0a2032; color:#d7e2ec; }
.footer-inner { max-width: var(--max); margin:0 auto; padding: 36px 20px; display:grid; grid-template-columns: 1.2fr .8fr .8fr; gap:26px; }
.footer a { color:#fff; }
.small { font-size: 13px; }
.breadcrumb { color: var(--muted); font-size: 14px; margin-bottom: 18px; }
.page-title { background:#fff; border-bottom:1px solid var(--line); }
.page-title .section { padding-top: 42px; padding-bottom: 34px; }
.doc-list a { display:flex; justify-content:space-between; gap:18px; padding:16px; border:1px solid var(--line); border-radius:14px; background:#fff; margin-bottom:12px; color:var(--ink); }
.doc-list a:hover { text-decoration:none; border-color:var(--brand-2); }
.notice { font-size:13px; color:var(--muted); border-top:1px solid var(--line); margin-top:20px; padding-top:14px; }
@media (max-width: 900px) {
  .hero-inner { grid-template-columns: 1fr; padding-top:50px; }
  .grid-2, .grid-3, .grid-4, .footer-inner { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .mobile-toggle { display:block; }
  .nav { display:none; position:absolute; left:20px; right:20px; top:72px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:16px; box-shadow: var(--shadow); flex-direction:column; align-items:flex-start; }
  .nav.open { display:flex; }
  .nav .btn { width:100%; justify-content:center; }
}


/* Research update blocks */
.metric-strip { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:14px; margin:22px 0; }
.metric-box { background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; box-shadow: var(--shadow); }
.metric-box b { display:block; font-size:28px; color:var(--brand-2); line-height:1.05; }
.metric-box span { color:var(--muted); font-size:13px; font-weight:700; }
.source-note { font-size:13px; color:var(--muted); margin-top:12px; }
.source-note a { font-weight:700; }
.map-panel { background:linear-gradient(135deg,#f7fbff,#eef8f1); border:1px solid var(--line); border-radius:22px; padding:24px; box-shadow:var(--shadow); }
.map-wrap { display:grid; grid-template-columns: .9fr 1.1fr; gap:20px; align-items:center; }
.italy-map { width:100%; max-width:330px; margin:0 auto; display:block; }
.map-legend { display:grid; gap:10px; }
.legend-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.legend-row strong { color:var(--brand); }
.scenario-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px; }
.scenario-card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:18px; }
.scenario-card h3 { color:var(--brand); }
@media (max-width: 900px) { .metric-strip, .map-wrap, .scenario-grid { grid-template-columns:1fr; } }
