.topbar { background:var(--deep); border-bottom:3px solid var(--gold); }
.topbar-inner {
  max-width:1240px; margin:0 auto; padding:0 32px;
  display:flex; align-items:center; justify-content:space-between;
  min-height:68px; gap:20px;
}

.logo { display:flex; align-items:center; gap:14px; text-decoration:none; flex-shrink:0; }
.logo-mark { width:36px; height:36px; flex-shrink:0; }
.logo-text { display:flex; flex-direction:column; }
.logo-name { font-family:var(--serif); font-size:1.2rem; font-weight:700; line-height:1.1; color:#fff; letter-spacing:-.01em; }
.logo-name em { color:var(--gold-lt); font-style:normal; }
.logo-tag { font-family:var(--mono); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255); margin-top:1px; font-weight:600; }

.topbar-nav { display:flex; align-items:center; gap:4px; }
.topbar-nav a {
  font-family:var(--mono); font-size:.65rem; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255); text-decoration:none; padding:6px 13px;
  border-bottom:2px solid transparent; transition:all .15s; font-weight:600;
}
.topbar-nav a:hover { color:#fff; }
.topbar-nav a.active { color:var(--gold-lt); border-bottom-color:var(--gold); }
.topbar-end { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.topbar-badges { display:flex; align-items:center; gap:10px; }
.badge { font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; padding:5px 11px; border:1px solid rgba(201,168,76); color:var(--gold-lt); white-space:nowrap; font-weight:600; }
.badge-plain { font-family:var(--mono); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255); white-space:nowrap; font-weight:600; }

.hamburger {
  display:none;
  flex-direction:column; justify-content:center; align-items:center;
  gap:5px; width:42px; height:42px; flex-shrink:0;
  background:none; border:1px solid rgba(255,255,255,.3);
  cursor:pointer; padding:10px;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
.hamburger span {
  display:block; width:18px; height:2px;
  background:#fff; border-radius:1px;
}

.mob-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,.55); z-index:300;
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
.mob-overlay.show { display:block; }

.mob-drawer {
  display:none;
  position:fixed; top:0; right:0; bottom:0;
  width:300px; max-width:88vw;
  background:var(--deep); border-left:1px solid rgba(255,255,255,.12);
  z-index:301; flex-direction:column;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  box-shadow:-12px 0 40px rgba(0,0,0,.5);
}
.mob-drawer.open { transform:translateX(0); }
.mob-drawer-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:0 20px; border-bottom:1px solid rgba(255,255,255,.1);
  min-height:64px; flex-shrink:0;
}
.mob-drawer-brand { font-family:var(--serif); font-size:1.1rem; font-weight:700; color:#fff; }
.mob-drawer-brand em { color:var(--gold-lt); font-style:normal; }

.mob-close {
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; flex-shrink:0;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2);
  color:#fff; cursor:pointer;
  transition:background .15s;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
.mob-close:hover { background:rgba(255,255,255,.18); }

.mob-nav { display:flex; flex-direction:column; padding:8px 0; flex:1; }
.mob-nav a {
  display:flex; align-items:center; gap:14px; padding:17px 24px;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.8); text-decoration:none; font-weight:500;
  border-left:3px solid transparent; transition:all .15s;
}
.mob-nav a:hover { color:#fff; background:rgba(255,255,255,.06); border-left-color:rgba(255,255,255,.3); }
.mob-nav a.active { color:var(--gold-lt); border-left-color:var(--gold); background:rgba(201,168,76,.1); }
.mob-nav a svg { flex-shrink:0; opacity:.75; }
.mob-nav a:hover svg, .mob-nav a.active svg { opacity:1; }

.mob-drawer-foot {
  padding:18px 24px; border-top:1px solid rgba(255,255,255,.08); flex-shrink:0;
  font-family:var(--mono); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.55); font-weight:500; line-height:1.7;
}

.site-footer { background:var(--deep); border-top:3px solid var(--gold); padding:28px 32px; }
.footer-inner {
  max-width:1240px; margin:0 auto;
  display:flex; flex-wrap:wrap; gap:16px 32px; align-items:center; justify-content:space-between;
}
.footer-brand { font-family:var(--serif); font-size:.95rem; font-weight:700; color:#fff; flex-shrink:0; }
.footer-brand em { color:var(--gold-lt); font-style:normal; }
.footer-links { display:flex; flex-wrap:wrap; gap:6px 20px; }
.footer-links a { font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255); text-decoration:none; font-weight:600; transition:color .15s; }
.footer-links a:hover { color:var(--gold-lt); }
.footer-copy { font-family:var(--mono); font-size:.6rem; color:rgba(255,255,255,.95); letter-spacing:.06em; line-height:1.6; font-weight:600; }

.cookie-banner {
  position:fixed; bottom:0; left:0;
  width:100vw; max-width:100vw; box-sizing:border-box;
  background:var(--deep); border-top:2px solid var(--gold);
  padding:16px 24px;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; z-index:999; flex-wrap:wrap;
  transform:translateY(100%);
  transition:transform .4s cubic-bezier(.4,0,.2,1);
  box-shadow:0 -4px 24px rgba(0,0,0,.35);
}
.cookie-banner.show { transform:translateY(0); }
.cookie-text {
  font-size:.84rem; color:rgba(255,255,255,.88); line-height:1.65;
  flex:1 1 0; min-width:0; font-weight:500;
  overflow-wrap:break-word; word-break:break-word;
}
.cookie-text strong { color:#fff; font-weight:700; }
.cookie-text a { color:var(--gold-lt); text-decoration:none; }
.cookie-text a:hover { text-decoration:underline; }
.cookie-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.btn-cookie { background:var(--gold); color:var(--deep); border:none; padding:10px 22px; font-family:var(--sans); font-size:.76rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:background .15s; white-space:nowrap; }
.btn-cookie:hover { background:var(--gold-lt); }
.btn-cookie-sec { background:transparent; color:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.4); padding:10px 16px; font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:all .15s; white-space:nowrap; }
.btn-cookie-sec:hover { color:#fff; border-color:rgba(255,255,255,.8); }

@media(max-width:700px) {
  .topbar-inner { padding:0 16px; min-height:56px; }
  .topbar-nav  { display:none; }
  .badge-plain { display:none; }
  .hamburger   { display:flex; }
  .mob-drawer  { display:flex; }   /* attiva il drawer — animato con transform */

  .site-footer { padding:20px 16px; }
  .footer-inner { flex-direction:column; align-items:flex-start; }

  .cookie-banner { padding:14px 16px; }
  .cookie-actions { width:100%; }
  .btn-cookie, .btn-cookie-sec { flex:1; text-align:center; }
}
@media(max-width:480px) { .badge { display:none; } }