
:root { --oro:#a8853f; --oro-chiaro:#c9a45c; --cipria:#ebcfcb; --cipria-chiaro:#f8ece9; --carta:#fffcf9;
        --testo:#3d312f; --tenue:#7a6a66; --linea:#ead9d5; --blu:#1f4e79; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { margin:0; font-family:"Segoe UI",system-ui,-apple-system,sans-serif; color:var(--testo);
       background:var(--cipria-chiaro); line-height:1.6; font-size:16px; }
a { color:var(--blu); } a:hover { color:var(--oro); }
.testata { position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:16px; height:60px; padding:0 20px;
           background:var(--carta); border-bottom:1px solid var(--linea); }
.marchio { font-weight:650; font-size:18px; color:var(--testo); text-decoration:none; display:flex; align-items:center; gap:10px; white-space:nowrap; }
.marchio small { font-weight:400; color:var(--tenue); font-size:13px; }
.pallino { width:22px; height:22px; border-radius:50%; background:conic-gradient(var(--oro-chiaro),var(--cipria),var(--oro-chiaro),var(--cipria),var(--oro-chiaro)); border:2px solid var(--oro); }
#cerca { margin-left:auto; width:min(320px,40vw); padding:8px 12px; border:1px solid var(--linea); border-radius:20px; font:inherit; font-size:14px; background:#fff; }
#cerca:focus { outline:2px solid var(--oro-chiaro); }
#risultati { position:absolute; right:20px; top:54px; width:min(440px,92vw); max-height:70vh; overflow:auto; background:#fff;
             border:1px solid var(--linea); border-radius:12px; box-shadow:0 10px 30px rgba(90,60,50,.18); display:none; }
#risultati a { display:block; padding:10px 14px; text-decoration:none; color:var(--testo); border-bottom:1px solid var(--linea); font-size:14px; }
#risultati a:hover { background:var(--cipria-chiaro); } #risultati b { color:var(--oro); } #risultati small { color:var(--tenue); display:block; }
.apri-menu { display:none; font-size:22px; background:none; border:0; cursor:pointer; color:var(--testo); }
.corpo { display:flex; max-width:1320px; margin:0 auto; }
.laterale { width:264px; flex:none; padding:22px 14px 40px 20px; position:sticky; top:60px; height:calc(100vh - 60px); overflow:auto; }
.gruppo { font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--oro); font-weight:700; margin:18px 0 6px 10px; }
.laterale ul, .indice ul { list-style:none; margin:0; padding:0; }
.laterale a { display:block; padding:6px 10px; border-radius:8px; color:var(--testo); text-decoration:none; font-size:14.5px; }
.laterale a:hover { background:#fff; } .laterale a.attiva { background:var(--cipria); font-weight:600; }
main { flex:1; min-width:0; background:var(--carta); margin:22px 20px 40px 6px; padding:34px 44px 30px; border-radius:16px;
       border:1px solid var(--linea); max-width:920px; }
main.larga { max-width:none; }
h1 { font-size:30px; margin:0 0 18px; line-height:1.2; }
h2 { font-size:21px; margin:34px 0 10px; padding-top:14px; border-top:1px solid var(--linea); }
h3 { font-size:17px; margin:24px 0 8px; }
.indice { background:var(--cipria-chiaro); border-radius:12px; padding:6px 16px 14px; margin:0 0 22px; }
.indice .gruppo { margin-left:0; } .indice ul { columns:2; column-gap:26px; } .indice li { font-size:14px; padding:2px 0; break-inside:avoid; }
.indice a { text-decoration:none; }
.tab { overflow-x:auto; margin:14px 0; }
table { border-collapse:collapse; width:100%; font-size:14.5px; }
th, td { border:1px solid var(--linea); padding:7px 10px; text-align:left; vertical-align:top; }
th { background:var(--cipria-chiaro); font-weight:650; } tr:nth-child(even) td { background:#fffaf7; }
code { background:var(--cipria-chiaro); padding:1px 5px; border-radius:5px; font-size:.9em; }
pre { background:#2f2624; color:#f6ebe7; padding:14px 16px; border-radius:12px; overflow:auto; font-size:13px; line-height:1.35; }
pre code { background:none; padding:0; color:inherit; }
blockquote { margin:14px 0; padding:8px 16px; border-left:4px solid var(--oro-chiaro); background:var(--cipria-chiaro); border-radius:0 10px 10px 0; }
img { max-width:100%; height:auto; border:1px solid var(--linea); border-radius:10px; background:#fff; }
.avviso { background:#fff6e0; border:1px solid #ecd28a; border-radius:12px; padding:12px 16px; margin:16px 0; }
.schede { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; margin:18px 0; }
.scheda { border:1px solid var(--linea); border-radius:14px; padding:14px 16px; background:#fff; display:flex; flex-direction:column; gap:8px; }
.scheda h3 { margin:0; font-size:16px; } .scheda p { margin:0; font-size:14px; color:var(--tenue); flex:1; }
.scheda img { border-radius:8px; aspect-ratio:1.414; object-fit:cover; object-position:top left; }
a.scheda { text-decoration:none; color:inherit; } a.scheda:hover { border-color:var(--oro-chiaro); box-shadow:0 6px 18px rgba(90,60,50,.10); }
.bottoni { display:flex; gap:8px; flex-wrap:wrap; }
.btn { display:inline-block; padding:7px 13px; border-radius:18px; background:var(--oro); color:#fff !important; text-decoration:none; font-size:13.5px; font-weight:600; }
.btn.chiaro { background:#fff; color:var(--testo) !important; border:1px solid var(--linea); } .btn:hover { filter:brightness(1.08); }
.cornice3d { width:100%; height:min(74vh,760px); border:1px solid var(--linea); border-radius:14px; background:var(--cipria); }
footer { margin-top:40px; padding-top:14px; border-top:1px solid var(--linea); font-size:12.5px; color:var(--tenue); }
@media (max-width: 900px) {
  .apri-menu { display:block; } .marchio small { display:none; }
  .laterale { position:fixed; left:0; top:60px; background:var(--carta); z-index:15; transform:translateX(-100%); transition:transform .2s;
              border-right:1px solid var(--linea); box-shadow:8px 0 24px rgba(90,60,50,.15); }
  body.menu-aperto .laterale { transform:none; }
  main { margin:12px 10px 30px; padding:22px 18px; } h1 { font-size:25px; } .indice ul { columns:1; }
}
@media print {
  .testata, .laterale, .indice, footer a, .bottoni, .cornice3d { display:none !important; }
  body { background:#fff; font-size:11pt; } main { border:0; margin:0; padding:0; max-width:none; }
  h2 { break-after:avoid; } table, img, pre { break-inside:avoid; } a { color:inherit; text-decoration:none; }
}
