:root{
    --ink:#0a0c11;--ink-2:#11141c;--ink-3:#171b25;
    --paper:#e9e3d5;--dim:#a49e8f;--dim-2:#7d7869;
    --gold:#c9a227;--gold-2:#e0c165;--violet:#6d5b8f;
    --green:#9ecf9e;--red:#c99a9a;--blue:#8fa8c9;
    --rule:rgba(201,162,39,.24);
    --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
    --sans:"Optima","Gill Sans","Trebuchet MS","Helvetica Neue",Arial,sans-serif;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{background:var(--ink);color:var(--paper);font-family:var(--serif);font-size:18px;line-height:1.72;-webkit-font-smoothing:antialiased}
  body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
    background:radial-gradient(1100px 620px at 50% -14%,rgba(109,91,143,.28),transparent 62%),
               radial-gradient(760px 460px at 92% 6%,rgba(201,162,39,.09),transparent 60%),
               radial-gradient(900px 700px at 4% 92%,rgba(109,91,143,.13),transparent 62%)}
  body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.045;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.5'/></svg>")}
  .wrap{position:relative;z-index:2;max-width:1220px;margin:0 auto;padding:0 26px}
  a{color:var(--gold-2)}

  header.site{padding:28px 0 16px}
  .top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
  .brand{display:flex;align-items:center;gap:13px;cursor:pointer;user-select:none}
  .sigil{width:44px;height:44px;flex:none}
  .brand h1{font-size:1.26rem;margin:0;letter-spacing:.18em;text-transform:uppercase;font-weight:400}
  .brand small{display:block;font-family:var(--sans);font-size:.57rem;letter-spacing:.3em;color:var(--dim);text-transform:uppercase;margin-top:5px}
  nav{display:flex;gap:2px;flex-wrap:wrap}
  nav button{background:none;border:0;color:var(--dim);font-family:var(--sans);font-size:.69rem;letter-spacing:.17em;text-transform:uppercase;padding:9px 11px;cursor:pointer;border-bottom:1px solid transparent;transition:.25s}
  nav button:hover{color:var(--paper)}
  nav button.on{color:var(--gold-2);border-bottom-color:var(--gold)}
  .hr{height:1px;background:linear-gradient(90deg,transparent,var(--rule) 18%,var(--rule) 82%,transparent);margin:14px 0 0}

  section.page{display:none;padding:24px 0 88px}
  section.page.on{display:block;animation:fade .45s ease}
  @keyframes fade{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
  .kicker{font-family:var(--sans);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);margin:0}
  h2.pt{font-size:clamp(1.9rem,4.2vw,2.9rem);font-weight:400;margin:10px 0 14px;line-height:1.2}
  .sub{color:var(--dim);max-width:700px;margin:0 0 34px}
  h3.rub{font-family:var(--sans);font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:50px 0 20px;font-weight:600}

  .hero{padding:52px 0 40px;text-align:center}
  .hero h2{font-size:clamp(2rem,5.2vw,3.6rem);font-weight:400;margin:0 0 20px;line-height:1.16}
  .hero h2 em{font-style:italic;color:var(--gold-2)}
  .lede{max-width:680px;margin:0 auto;color:#cfc8b8;font-size:1.07rem}
  .cta{margin-top:32px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
  .btn{background:none;border:1px solid var(--gold);color:var(--gold-2);font-family:var(--sans);font-size:.67rem;letter-spacing:.23em;text-transform:uppercase;padding:12px 24px;cursor:pointer;transition:.25s}
  .btn:hover{background:var(--gold);color:var(--ink)}
  .btn.ghost{border-color:rgba(233,227,213,.26);color:var(--dim)}
  .btn.ghost:hover{background:none;border-color:var(--paper);color:var(--paper)}
  .btn:disabled{opacity:.45;cursor:not-allowed}
  .btn:disabled:hover{background:none;color:var(--gold-2)}

  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(266px,1fr));gap:18px}
  .card{background:linear-gradient(180deg,rgba(23,27,37,.86),rgba(17,20,28,.86));border:1px solid rgba(201,162,39,.15);padding:24px 22px 26px;cursor:pointer;transition:.3s}
  .card:hover{border-color:rgba(201,162,39,.42);transform:translateY(-3px)}
  .card .sym{font-size:1.55rem;color:var(--gold);display:block;margin-bottom:11px;opacity:.85}
  .card h4{margin:0 0 8px;font-size:1.2rem;font-weight:400}
  .card p{margin:0;color:var(--dim);font-size:.93rem;line-height:1.6}
  .card .meta{font-family:var(--sans);font-size:.59rem;letter-spacing:.21em;text-transform:uppercase;color:rgba(224,193,101,.68);margin-top:14px;display:block}

  /* ---- controlli atlante ---- */
  .controls{margin-bottom:26px}
  .searchrow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
  .searchrow input[type=search]{flex:1;min-width:250px;background:rgba(10,12,17,.85);border:1px solid rgba(201,162,39,.24);color:var(--paper);padding:12px 15px;font-family:var(--serif);font-size:1rem}
  .searchrow input[type=search]:focus{outline:none;border-color:var(--gold)}
  .count{font-family:var(--sans);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
  .chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
  .chips .lab{font-family:var(--sans);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);padding:6px 0;margin-right:6px;width:100%}
  .chip{background:none;border:1px solid rgba(201,162,39,.2);color:var(--dim);font-family:var(--sans);font-size:.65rem;letter-spacing:.09em;padding:6px 12px;cursor:pointer;transition:.2s;border-radius:2px}
  .chip:hover{color:var(--paper);border-color:rgba(201,162,39,.45)}
  .chip.on{background:rgba(201,162,39,.16);border-color:var(--gold);color:var(--gold-2)}

  .atlas{display:grid;grid-template-columns:minmax(280px,1fr) minmax(310px,430px);gap:32px;align-items:start}
  .mapbox{background:rgba(10,12,17,.5);border:1px solid rgba(201,162,39,.13);padding:10px}
  svg.geo{width:100%;height:auto;display:block}
  svg.geo path.land{fill:rgba(109,91,143,.13);stroke:rgba(201,162,39,.4);stroke-width:1.1;stroke-linejoin:round}
  svg.geo .pt{cursor:pointer}
  svg.geo .pt circle.halo{fill:rgba(201,162,39,.13);opacity:0;transition:.25s}
  svg.geo .pt:hover circle.halo,svg.geo .pt.sel circle.halo{opacity:1}
  svg.geo .pt circle.dot{fill:#e0c165;transition:.2s}
  svg.geo .pt.gC circle.dot{fill:#6d5b8f;stroke:#e0c165;stroke-width:1}
  svg.geo .pt.sel circle.dot{fill:#fff2cf}
  svg.geo .pt.off{opacity:.16;pointer-events:none}
  svg.geo text.lbl{font-family:var(--sans);fill:#a49e8f;pointer-events:none}
  svg.geo .pt:hover text.lbl,svg.geo .pt.sel text.lbl{fill:#e9e3d5}

  .panel{border:1px solid rgba(201,162,39,.18);background:rgba(17,20,28,.72);padding:26px 24px;position:sticky;top:18px;max-height:88vh;overflow-y:auto}
  .grade{display:inline-block;font-family:var(--sans);font-size:.57rem;letter-spacing:.19em;text-transform:uppercase;padding:4px 10px;border:1px solid;margin-bottom:13px}
  .gA{color:var(--green);border-color:rgba(158,207,158,.45)}
  .gB{color:var(--gold-2);border-color:rgba(224,193,101,.45)}
  .gC{color:var(--red);border-color:rgba(201,154,154,.45)}
  .gL{color:var(--blue);border-color:rgba(143,168,201,.45)}
  .panel h3{margin:0 0 4px;font-size:1.55rem;font-weight:400}
  .panel .area{font-family:var(--sans);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:16px;line-height:1.6}
  dl{margin:0}
  dt{font-family:var(--sans);font-size:.59rem;letter-spacing:.21em;text-transform:uppercase;color:var(--gold);margin-top:17px}
  dd{margin:6px 0 0;font-size:.94rem;line-height:1.6;color:#d5cec0}
  dd.varianti{color:var(--dim);font-style:italic}
  dd.warn{color:var(--red)}
  .legend{margin-top:22px;font-size:.82rem;color:var(--dim-2);line-height:1.65;border-top:1px solid rgba(201,162,39,.12);padding-top:18px}

  /* elenco risultati */
  .rows{margin-top:28px;border-top:1px solid rgba(201,162,39,.12)}
  .row{display:flex;gap:16px;align-items:baseline;padding:13px 4px;border-bottom:1px solid rgba(201,162,39,.09);cursor:pointer;transition:.2s}
  .row:hover{background:rgba(201,162,39,.05)}
  .row .rn{flex:0 0 190px;font-size:1.02rem}
  .row .rg{flex:0 0 22px;font-family:var(--sans);font-size:.66rem;font-weight:700}
  .row .ra{flex:1;color:var(--dim);font-size:.87rem}
  .row.hide{display:none}
  .empty{padding:30px 0;color:var(--dim);font-style:italic}

  /* gruppi paese */
  .country{border:1px solid rgba(201,162,39,.14);margin-bottom:12px;background:rgba(17,20,28,.5)}
  .country>h4{margin:0;padding:15px 20px;font-size:1.12rem;font-weight:400;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
  .country>h4 span{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;color:var(--dim)}
  .country .body{display:none;padding:0 20px 18px}
  .country.open .body{display:block}
  .subarea{margin-top:14px}
  .subarea .sname{font-family:var(--sans);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}

  article{max-width:700px;margin:0 auto}
  article p{margin:0 0 22px}
  article .drop::first-letter{float:left;font-size:4rem;line-height:.82;padding:6px 12px 0 0;color:var(--gold)}
  blockquote{margin:32px 0;padding:4px 0 4px 24px;border-left:2px solid var(--rule);font-style:italic;color:#d8d1c1}
  .ornament{text-align:center;color:var(--gold);opacity:.5;letter-spacing:.6em;margin:42px 0}
  table.t{width:100%;border-collapse:collapse;margin:24px 0;font-size:.9rem}
  table.t th{text-align:left;font-family:var(--sans);font-size:.59rem;letter-spacing:.19em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--rule);padding:8px 10px 8px 0;font-weight:600}
  table.t td{padding:8px 10px 8px 0;border-bottom:1px solid rgba(201,162,39,.09);color:#d5cec0;vertical-align:top}
  table.t td:first-child{font-style:italic;color:var(--paper)}
  .fonti{border-top:1px solid var(--rule);margin-top:42px;padding-top:20px;font-size:.85rem;color:var(--dim)}
  .fonti b{font-family:var(--sans);font-size:.59rem;letter-spacing:.21em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:9px}
  .nota{border-left:2px solid var(--violet);background:rgba(109,91,143,.10);padding:17px 21px;margin:28px 0;font-size:.92rem;color:#c8c1b2}
  .nota.warn{border-left-color:var(--red);background:rgba(201,154,154,.07)}

  .field{margin-bottom:16px;max-width:460px}
  label{display:block;font-family:var(--sans);font-size:.63rem;letter-spacing:.21em;text-transform:uppercase;color:var(--dim);margin-bottom:7px}
  input[type=text],textarea{width:100%;background:rgba(10,12,17,.8);border:1px solid rgba(201,162,39,.2);color:var(--paper);padding:12px 14px;font-family:var(--serif);font-size:1rem}
  input:focus,textarea:focus{outline:none;border-color:var(--gold)}
  .consent{display:flex;gap:11px;align-items:flex-start;max-width:560px;margin:20px 0 18px}
  .consent input{margin-top:5px;flex:none;width:16px;height:16px;accent-color:#c9a227}
  .consent label{text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:.9rem;color:#c8c1b2;line-height:1.55;margin:0}
  .inline-optin{border:1px solid rgba(201,162,39,.22);background:rgba(17,20,28,.7);padding:22px 24px;margin:36px 0}
  .inline-optin p{margin:0 0 14px;font-size:.94rem;color:#d5cec0}
  .inline-optin .row2{display:flex;gap:10px;flex-wrap:wrap}
  .inline-optin input[type=text]{flex:1;min-width:200px}
  .msg{margin-top:14px;color:var(--gold-2);font-size:.9rem}

  footer{border-top:1px solid var(--rule);padding:32px 0 54px;color:var(--dim);font-size:.83rem}
  footer .cols{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap}
  footer a{color:var(--dim);text-decoration:none;border-bottom:1px dotted rgba(201,162,39,.35);cursor:pointer}
  footer a:hover{color:var(--gold-2)}
  .pnote{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(201,162,39,.94);color:#0a0c11;font-family:var(--sans);font-size:.7rem;padding:9px 16px;text-align:center}
  .pnote button{background:none;border:0;color:#0a0c11;font-weight:700;cursor:pointer;margin-left:10px;font-size:.9rem}

  @media(max-width:880px){.atlas{grid-template-columns:1fr}.panel{position:static;max-height:none}}
  @media(max-width:640px){body{font-size:17px}.brand h1{font-size:.95rem;letter-spacing:.12em}nav button{padding:7px 7px;font-size:.62rem}.row .rn{flex:0 0 130px}}
/* ---------- aggiunte del sito multipagina ---------- */
[hidden]{display:none!important}
a.brand{text-decoration:none;color:inherit}
nav a.navlink{color:var(--dim);font-family:var(--sans);font-size:.69rem;letter-spacing:.17em;
  text-transform:uppercase;padding:9px 11px;text-decoration:none;border-bottom:1px solid transparent;transition:.25s}
nav a.navlink:hover{color:var(--paper)}
nav a.navlink.on{color:var(--gold-2);border-bottom-color:var(--gold)}
.crumbs{font-family:var(--sans);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim-2);padding:16px 0 0}
.crumbs a{color:var(--dim);text-decoration:none}
.crumbs a:hover{color:var(--gold-2)}
.crumbs .sep{opacity:.5;margin:0 4px}
main{display:block}
a.card{display:block;text-decoration:none;color:inherit}
a.row{display:flex;gap:16px;align-items:baseline;padding:13px 4px;text-decoration:none;color:inherit;
  border-bottom:1px solid rgba(201,162,39,.09);transition:.2s}
a.row:hover,a.row.sel{background:rgba(201,162,39,.07)}
a.row .rn{color:var(--paper)}
details.country{border:1px solid rgba(201,162,39,.14);margin-bottom:12px;background:rgba(17,20,28,.5);padding:0 20px}
details.country>summary{margin:0 -20px;padding:15px 20px;font-size:1.12rem;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;list-style:none}
details.country>summary::-webkit-details-marker{display:none}
details.country>summary span{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;color:var(--dim)}
details.country[open]>summary{border-bottom:1px solid rgba(201,162,39,.12)}
details.country .subarea{margin:14px 0}
article.voce{max-width:760px;margin:0 auto}
article.voce .area{font-family:var(--sans);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dim);line-height:1.7;margin:0 0 26px}
article.voce dl{border-top:1px solid rgba(201,162,39,.14);padding-top:8px}
article.voce dd{font-size:1rem;max-width:66ch}
.minuta{margin-top:30px;font-size:.85rem;color:var(--dim-2)}
.minuta a{color:var(--dim)}
.ritorno{margin-top:40px;font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}
.ritorno a{text-decoration:none}
.mapbox{margin-bottom:8px}
