
:root{--paper:#F4EFE6;--paper-fold:#E9E1D2;--ink:#1C1815;--ink-soft:#4A4239;
--oro:#B8862E;--oro-pale:#D8B65E;--bordeaux:#9f1239;--verde:#2A3830;--line:#E0D7C4;
--good:#3F7A4E;--mid:#C79A2E;--low:#B5533A;--r:10px;
--sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
--serif:Georgia,'Times New Roman',serif;}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--bordeaux);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--oro);font-weight:700}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;color:var(--ink)}
h1{font-size:clamp(30px,5vw,50px);margin:.2em 0}
.lede{font-size:19px;color:var(--ink-soft);max-width:56ch}
/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(244,239,230,.92);
backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav__in{display:flex;align-items:center;justify-content:space-between;height:60px}
.nav__logo{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--ink)}
.nav__logo em{color:var(--oro);font-style:normal}
.nav a{color:var(--ink-soft);font-size:14px;margin-left:20px}
.nav a:hover{color:var(--bordeaux)}
/* hero */
.hero{padding:70px 0 44px;border-bottom:1px solid var(--line);
background:linear-gradient(180deg,var(--paper-fold),var(--paper))}
.badge{display:inline-block;background:var(--verde);color:var(--paper);font-size:12px;
padding:4px 12px;border-radius:100px;letter-spacing:.05em;margin-bottom:14px}
.stats{display:flex;gap:34px;flex-wrap:wrap;margin-top:26px}
.stat b{font-family:var(--serif);font-size:30px;display:block;color:var(--oro)}
.stat span{font-size:13px;color:var(--ink-soft)}
/* profile toggle */
.toolbar{position:sticky;top:60px;z-index:40;background:var(--paper);padding:16px 0;
border-bottom:1px solid var(--line)}
.profiles{display:flex;gap:8px;flex-wrap:wrap}
.pf{border:1px solid var(--line);background:#fff;color:var(--ink-soft);padding:9px 16px;
border-radius:100px;cursor:pointer;font:inherit;font-size:14px;font-weight:600;transition:.15s}
.pf:hover{border-color:var(--oro)}
.pf[aria-pressed=true]{background:var(--verde);color:var(--paper);border-color:var(--verde)}
.pf__hint{font-size:12px;color:var(--ink-soft);margin-top:8px}
.filters{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:12px;font-size:14px}
.filters select,.filters input{font:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--line);
border-radius:8px;background:#fff}
/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;
padding:26px 0 48px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
display:flex;flex-direction:column;transition:.15s}
.card:hover{box-shadow:0 8px 26px rgba(28,24,21,.09);transform:translateY(-2px)}
.card__top{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 16px 8px}
.card__rank{font-family:var(--serif);font-size:13px;color:var(--oro);font-weight:700}
.card__score{font-family:var(--serif);font-size:26px;font-weight:700;color:var(--verde);line-height:1}
.card__score small{font-size:11px;color:var(--ink-soft);font-weight:400;display:block}
.card__body{padding:0 16px 8px}
.card h3{font-size:19px;margin:2px 0 4px}
.card__meta{font-size:13px;color:var(--ink-soft);margin:0 0 10px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 16px 12px}
.chip{font-size:11px;padding:3px 9px;border-radius:100px;background:var(--paper-fold);color:var(--ink-soft)}
.chip--stato{background:#EEF3EE;color:var(--good)}
.chip--rudere{background:#F6ECE8;color:var(--low)}
.chip--parco{background:#FBF3DD;color:var(--oro)}
.bars{padding:0 16px 14px;margin-top:auto}
.bar{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-soft);margin:3px 0}
.bar__lab{width:78px;flex:none}
.bar__track{flex:1;height:6px;background:var(--paper-fold);border-radius:100px;overflow:hidden}
.bar__fill{height:100%;border-radius:100px;background:var(--oro)}
.bar__val{width:24px;text-align:right;font-variant-numeric:tabular-nums}
.card__foot{border-top:1px solid var(--line);padding:11px 16px;font-size:13px;
display:flex;justify-content:space-between;align-items:center}
/* detail */
.detail{padding:40px 0}
.detail__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}
@media(max-width:820px){.detail__grid{grid-template-columns:1fr}}
#map,#map-mini{border-radius:var(--r);border:1px solid var(--line)}
.kv{width:100%;border-collapse:collapse;font-size:14px}
.kv td{padding:8px 4px;border-bottom:1px solid var(--line)}
.kv td:first-child{color:var(--ink-soft);width:46%}
.scorebox{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px}
.note{background:#FBF3DD;border:1px solid var(--oro-pale);border-radius:var(--r);
padding:14px 18px;font-size:13px;color:var(--ink-soft);margin:24px 0}
.section{padding:44px 0;border-top:1px solid var(--line)}
.prose{max-width:70ch}.prose p{color:var(--ink-soft)}
.prose h2{margin-top:1.4em}
/* footer */
.ft{background:var(--verde);color:var(--paper);padding:44px 0 30px;margin-top:40px}
.ft a{color:var(--oro-pale)}
.ft__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:26px}
@media(max-width:700px){.ft__grid{grid-template-columns:1fr}}
.ft h4{font-family:var(--sans);font-size:13px;letter-spacing:.1em;text-transform:uppercase;
color:var(--oro-pale);margin:0 0 10px}
.ft ul{list-style:none;padding:0;margin:0;font-size:14px;line-height:2}
.ft__logo{font-family:var(--serif);font-size:22px;font-weight:700}
.ft__logo em{color:var(--oro-pale);font-style:normal}
/* bottom bar tricolore */
.bb{background:#111;color:#cfc9bf;font-size:12px;padding:16px 0;
border-top:3px solid;border-image:linear-gradient(90deg,#008C45 33%,#F4F5F0 33% 66%,#CD212A 66%) 1}
.bb__in{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.bb a{color:#e6e0d6}
.badge-list{display:flex;gap:6px;flex-wrap:wrap;font-size:11px;margin-top:6px}
.miss{opacity:.55;font-style:italic}
