*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    :root {
      --gold: #d4af37; --gold-dim: rgba(212,175,55,0.35);
      --dark: #0a0a0a; --dark2: #0d0d18; --dark3: #07070f;
      --white: #ffffff; --white-dim: rgba(255,255,255,0.6);
      --border: rgba(255,255,255,0.08);
    }
    html, body { overflow-x: hidden; background: var(--dark); font-family: 'Georgia', serif; color: var(--white); }

    /* ── NAVBAR ── */
    .navbar {
      position: fixed; top: 22px; left: 50%; transform: translateX(-50%);
      z-index: 600; display: flex; align-items: center; gap: 20px;
      background: rgba(10,10,20,0.65); backdrop-filter: blur(16px);
      border: 1px solid rgba(255,255,255,0.1); border-radius: 9999px;
      padding: 10px 10px 10px 28px; min-width: 300px;
    }
    .logo { font-size: 17px; font-weight: bold; color: var(--white); letter-spacing: 6px; text-transform: uppercase; font-family: "Times New Roman", serif; flex: 1; white-space: nowrap; text-decoration: none; }
    .hamburger-wrap { position: relative; width: 46px; height: 46px; cursor: pointer; flex-shrink: 0; }
    .hamburger-wrap::before { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(255,255,255,0.25); transition: border-color 0.35s; }
    .hamburger-wrap:hover::before { border-color: var(--gold); }
    .hamburger-icon { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
    .hamburger-icon span { display: block; width: 18px; height: 1.5px; background: var(--white); transition: transform 0.35s, opacity 0.25s, width 0.3s; transform-origin: center; }
    .hamburger-wrap.open .hamburger-icon span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .hamburger-wrap.open .hamburger-icon span:nth-child(2) { opacity: 0; width: 0; }
    .hamburger-wrap.open .hamburger-icon span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
    .nav-overlay { position: fixed; inset: 0; z-index: 590; pointer-events: none; overflow: hidden; }
    .nav-circle { position: absolute; border-radius: 50%; background: #0d0d1c; transform: scale(0); }
    .nav-overlay.open { pointer-events: auto; }
    .nav-menu-items { position: absolute; top: 50%; left: 10%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 6px; }
    .nav-menu-items a { font-family: "Times New Roman", serif; font-size: clamp(34px,5.5vw,72px); color: rgba(255,255,255,0.12); text-decoration: none; letter-spacing: 4px; text-transform: uppercase; display: block; opacity: 0; transform: translateX(-50px); transition: color 0.3s, letter-spacing 0.3s; line-height: 1.2; }
    .nav-menu-items a:hover { color: var(--gold); letter-spacing: 7px; }
    .nav-menu-items a.active-page { color: rgba(212,175,55,0.5); }
    .nav-menu-number { font-size: 11px; letter-spacing: 2px; color: var(--gold); vertical-align: super; margin-right: 12px; }
    .nav-socials { position: absolute; bottom: 40px; right: 60px; display: flex; gap: 28px; opacity: 0; }
    .nav-socials a { color: var(--white-dim); text-decoration: none; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; transition: color 0.3s; }
    .nav-socials a:hover { color: var(--gold); }
    .back-btn { position: fixed; bottom: 32px; left: 32px; z-index: 550; display: flex; align-items: center; gap: 10px; background: rgba(10,10,20,0.6); border: 1px solid rgba(255,255,255,0.15); backdrop-filter: blur(12px); color: var(--white); font-size: 11px; letter-spacing: 3px; text-transform: uppercase; font-family: 'Georgia', serif; padding: 12px 22px; border-radius: 9999px; cursor: pointer; transition: border-color 0.3s, color 0.3s; text-decoration: none; }
    .back-btn:hover { border-color: var(--gold); color: var(--gold); }
    .back-btn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; }

    /* ── PAGE HERO ── */
    .page-hero {
      height: 55vh; position: relative;
      display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding-bottom: 80px;
      background: linear-gradient(160deg, #0a0a0a 0%, #1a1a2e 60%, #0a0a18 100%); overflow: hidden;
    }
    .page-hero::before { content:''; position:absolute; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"); pointer-events:none; opacity:0.4; z-index:0; }
    .page-hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, var(--gold-dim), transparent); }
    .page-eyebrow { position:relative; z-index:1; font-size:10px; letter-spacing:6px; text-transform:uppercase; color:var(--gold); margin-bottom:18px; opacity:0; }
    .page-title { position:relative; z-index:1; font-family:"Times New Roman",serif; font-size:clamp(48px,8vw,110px); color:var(--white); letter-spacing:6px; text-transform:uppercase; text-align:center; opacity:0; transform:translateY(40px); }
    .page-update { position:relative; z-index:1; margin-top:18px; font-size:10px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); opacity:0; }

    /* ── LAYOUT ── */
    .cp-wrapper { max-width: 860px; margin: 0 auto; padding: 80px 40px 120px; }

    /* ── TOC ── */
    .cp-toc {
      background: var(--dark2); border: 1px solid var(--border);
      border-left: 2px solid var(--gold); padding: 32px 36px; margin-bottom: 72px;
      opacity: 0; transform: translateY(20px);
    }
    .cp-toc-title { font-size: 9px; letter-spacing: 5px; text-transform: uppercase; color: var(--gold); margin-bottom: 20px; }
    .cp-toc ol { padding-left: 16px; display: grid; gap: 6px; }
    .cp-toc a { color: var(--white-dim); text-decoration: none; font-size: 13px; letter-spacing: 1px; transition: color 0.2s; }
    .cp-toc a:hover { color: var(--gold); }

    /* ── SECTIONS ── */
    .cp-section { margin-bottom: 72px; opacity: 0; transform: translateY(30px); }
    .cp-section-num { font-size: 9px; letter-spacing: 5px; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }
    .cp-section h2 {
      font-family: "Times New Roman", serif; font-size: clamp(24px,3.5vw,42px);
      color: var(--white); letter-spacing: 2px; margin-bottom: 28px; padding-bottom: 20px;
      border-bottom: 1px solid var(--border);
    }
    .cp-section p { font-size: 14px; line-height: 1.9; color: var(--white-dim); margin-bottom: 16px; }
    .cp-section p:last-child { margin-bottom: 0; }
    .cp-section strong { color: var(--white); font-weight: normal; }

    /* ── BADGE ── */
    .badge {
      display: inline-block; font-size: 9px; font-weight: normal; letter-spacing: 3px;
      text-transform: uppercase; padding: 3px 10px; vertical-align: middle; font-family: 'Georgia', serif;
    }
    .badge-tec  { border: 1px solid rgba(46,125,79,0.6); color: #6ecf98; }
    .badge-ana  { border: 1px solid rgba(27,94,138,0.6); color: #7ab8e8; }
    .badge-mkt  { border: 1px solid rgba(155,53,21,0.6); color: #e8916e; }

    /* ── TIPO CARD ── */
    .type-cards { display: grid; gap: 2px; margin-bottom: 32px; }
    .type-card {
      background: var(--dark2); border-left: 2px solid var(--gold-dim);
      padding: 24px 28px; transition: border-color 0.3s;
    }
    .type-card:hover { border-left-color: var(--gold); }
    .type-card h3 { font-family: "Times New Roman", serif; font-size: 18px; color: var(--white); margin-bottom: 10px; display: flex; align-items: center; gap: 12px; letter-spacing: 1px; }
    .type-card p  { font-size: 13px; line-height: 1.85; color: var(--white-dim); }

    /* ── TABLE ── */
    .cp-table-wrap { overflow-x: auto; margin-top: 8px; }
    table { width: 100%; border-collapse: collapse; font-size: 12px; }
    thead tr { border-bottom: 1px solid var(--gold-dim); }
    thead th { padding: 12px 16px; text-align: left; font-size: 9px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); font-weight: normal; }
    tbody tr { border-bottom: 1px solid var(--border); transition: background 0.2s; }
    tbody tr:hover { background: rgba(255,255,255,0.02); }
    tbody td { padding: 14px 16px; color: var(--white-dim); vertical-align: top; line-height: 1.6; }
    td code { color: var(--gold); font-size: 11px; font-family: 'Courier New', monospace; letter-spacing: 1px; }
    td:first-child { white-space: nowrap; }

    /* ── BASE GIURIDICA GRID ── */
    .legal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin-top: 8px; }
    @media(max-width:600px){ .legal-grid { grid-template-columns: 1fr; } }
    .legal-card { background: var(--dark2); padding: 24px 28px; }
    .legal-card p.legal-type { font-size: 9px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
    .legal-card h4 { font-family: "Times New Roman", serif; font-size: 16px; color: var(--white); margin-bottom: 8px; letter-spacing: 1px; }
    .legal-card p.legal-desc { font-size: 12px; color: var(--white-dim); line-height: 1.75; }

    /* ── STEPS ── */
    .steps { display: grid; gap: 2px; margin-top: 8px; }
    .step { display: flex; gap: 20px; background: var(--dark2); padding: 20px 24px; }
    .step-num { flex-shrink: 0; width: 28px; height: 28px; border: 1px solid var(--gold-dim); display: flex; align-items: center; justify-content: center; font-size: 11px; letter-spacing: 1px; color: var(--gold); }
    .step-body strong { display: block; font-size: 13px; color: var(--white); letter-spacing: 1px; margin-bottom: 4px; font-weight: normal; }
    .step-body span { font-size: 12px; color: var(--white-dim); line-height: 1.7; }

    /* ── BROWSER LINKS ── */
    .browser-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
    .browser-links a {
      display: inline-block; padding: 9px 20px;
      border: 1px solid var(--border); color: var(--white-dim);
      text-decoration: none; font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
      transition: border-color 0.3s, color 0.3s;
    }
    .browser-links a:hover { border-color: var(--gold); color: var(--gold); }

    /* ── TERZE PARTI ── */
    .tp-list { display: grid; gap: 2px; margin-top: 8px; }
    .tp-item { display: grid; grid-template-columns: 140px 1fr; background: var(--dark2); padding: 20px 24px; gap: 20px; }
    @media(max-width:560px){ .tp-item { grid-template-columns: 1fr; } }
    .tp-name { font-family: "Times New Roman", serif; font-size: 15px; color: var(--white); letter-spacing: 1px; }
    .tp-detail { font-size: 12px; color: var(--white-dim); line-height: 1.75; }
    .tp-detail a { color: var(--gold); text-decoration: none; }
    .tp-detail a:hover { text-decoration: underline; }

    /* ── TITOLARE CARD ── */
    .titolare-card { background: var(--dark2); border: 1px solid var(--border); border-top: 2px solid var(--gold); padding: 40px; margin-top: 8px; }
    .titolare-card h3 { font-family: "Times New Roman", serif; font-size: 22px; color: var(--white); letter-spacing: 3px; text-transform: uppercase; margin-bottom: 28px; }
    .titolare-dl { display: grid; grid-template-columns: max-content 1fr; gap: 10px 28px; font-size: 13px; }
    .titolare-dl dt { color: var(--gold); font-size: 9px; letter-spacing: 3px; text-transform: uppercase; padding-top: 2px; }
    .titolare-dl dd { color: var(--white-dim); }
    .titolare-dl a { color: var(--gold); text-decoration: none; }
/* ════════ BASE — BANNER COOKIE ════════ */
.cookie-banner {
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:9000;
  background:#0d0d18;
  border-top:1px solid var(--gold-dim);
  padding:20px 24px;
  transform:translateY(100%);
  transition:transform 0.4s cubic-bezier(0.22,1,0.36,1);
}
.cookie-banner.visible { transform:translateY(0); }

.cookie-inner {
  max-width:1100px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.cookie-text-wrap { flex:1; min-width:0; }
.cookie-title {
  font-family:"Times New Roman",serif;
  font-size:13px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--white);
  margin-bottom:6px;
}
.cookie-body {
  font-size:11px;
  color:var(--white-dim);
  line-height:1.6;
}
.cookie-actions {
  display:flex;
  gap:10px;
  flex-shrink:0;
  flex-wrap:wrap;
}
.cookie-btn {
  padding:11px 22px;
  border-radius:9999px;
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-family:'Georgia',serif;
  cursor:pointer;
  white-space:nowrap;
  transition:background 0.3s, border-color 0.3s;
}
.cookie-decline,
.cookie-customize {
  background:transparent;
  border:1px solid var(--gold-dim);
  color:var(--gold);
}
.cookie-decline:hover,
.cookie-customize:hover {
  border-color:var(--gold);
  background:rgba(212,175,55,0.06);
}
.cookie-accept {
  background:var(--gold);
  border:1px solid var(--gold);
  color:#0a0a0a;
  font-weight:bold;
}
.cookie-accept:hover { background:#e8c84a; }

/* ════════ BASE — MODAL PREFERENZE ════════ */
.cookie-modal-overlay { position:fixed; inset:0; z-index:9100; background:rgba(0,0,0,0.85); backdrop-filter:blur(10px); opacity:0; pointer-events:none; transition:opacity 0.35s; display:flex; align-items:center; justify-content:center; padding:20px; }
.cookie-modal-overlay.open { opacity:1; pointer-events:auto; }
.cookie-modal { background:#0d0d18; border:1px solid var(--gold-dim); border-top:2px solid var(--gold); max-width:560px; width:100%; transform:translateY(30px); transition:transform 0.4s cubic-bezier(0.22,1,0.36,1); box-sizing:border-box; }
.cookie-modal-overlay.open .cookie-modal { transform:translateY(0); }
.cookie-modal-head { padding:28px 32px 20px; border-bottom:1px solid var(--border); }
.cookie-modal-head h3 { font-family:"Times New Roman",serif; font-size:22px; letter-spacing:3px; text-transform:uppercase; color:var(--white); margin-bottom:6px; }
.cookie-modal-head p { font-size:12px; color:var(--white-dim); line-height:1.7; }
.cookie-modal-body { padding:20px 32px; display:grid; gap:12px; }
.pref-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid var(--border); }
.pref-row:last-child { border-bottom:none; }
.pref-label strong { display:block; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--white); font-weight:normal; margin-bottom:4px; }
.pref-label span { font-size:11px; color:var(--white-dim); line-height:1.65; display:block; max-width:340px; }
.toggle { position:relative; flex-shrink:0; width:44px; height:24px; }
.toggle input { opacity:0; width:0; height:0; }
.toggle-track { position:absolute; inset:0; background:rgba(255,255,255,0.12); border:1px solid var(--border); border-radius:12px; cursor:pointer; transition:background 0.3s; }
.toggle input:checked ~ .toggle-track { background:var(--gold); border-color:var(--gold); }
.toggle-thumb { position:absolute; left:3px; top:50%; transform:translateY(-50%); width:16px; height:16px; background:#fff; border-radius:50%; transition:left 0.3s; pointer-events:none; }
.toggle input:checked ~ .toggle-track .toggle-thumb { left:23px; }
.toggle.disabled .toggle-track { opacity:0.4; cursor:not-allowed; }
.cookie-modal-foot { padding:20px 32px 28px; display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }
.modal-btn-save { padding:11px 28px; border-radius:9999px; font-size:10px; letter-spacing:3px; text-transform:uppercase; font-family:'Georgia',serif; cursor:pointer; background:var(--gold); border:1px solid var(--gold); color:#0a0a0a; font-weight:bold; transition:background 0.3s; }
.modal-btn-save:hover { background:#e8c84a; }
.modal-btn-all { padding:11px 28px; border-radius:9999px; font-size:10px; letter-spacing:3px; text-transform:uppercase; font-family:'Georgia',serif; cursor:pointer; background:transparent; border:1px solid var(--gold-dim); color:var(--gold); transition:border-color 0.3s, background 0.3s; }
.modal-btn-all:hover { border-color:var(--gold); background:rgba(212,175,55,0.06); }
.cookie-body a { color:var(--gold); text-decoration:none; }

/* ════════ RESPONSIVE — TABLET (≤768px) ════════ */
@media (max-width: 768px) {
  .cookie-inner { flex-direction:column; align-items:stretch; gap:16px; }
  .cookie-actions { width:100%; justify-content:flex-start; }
}

/* ════════ RESPONSIVE — MOBILE (≤600px) ════════ */
@media (max-width: 600px) {
  /* --- banner --- */
  .cookie-banner { padding:18px 16px; }
  .cookie-title { font-size:12px; }
  .cookie-body { font-size:10.5px; }
  .cookie-actions { flex-direction:column; gap:8px; }
  .cookie-btn { width:100%; text-align:center; padding:12px 18px; }

  /* --- modal overlay/contenitore --- */
  .cookie-modal-overlay { padding:0; align-items:flex-end; justify-content:center; }
  .cookie-modal {
    max-width:100%;
    width:100%;
    max-height:85vh;
    max-height:85dvh;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    border-top:none;
    border-bottom:2px solid var(--gold);
  }

  .cookie-modal-head { padding:20px 18px 14px; }
  .cookie-modal-head h3 { font-size:17px; letter-spacing:2px; }
  .cookie-modal-head p { font-size:11px; }

  .cookie-modal-body { padding:12px 18px; gap:4px; }

  /* righe preferenze: grid per evitare sovrapposizioni toggle/testo */
  .pref-row {
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "title toggle"
      "desc  desc";
    column-gap:14px;
    row-gap:8px;
    padding:14px 0;
    align-items:center;
  }
  .pref-label { display:contents; }
  .pref-label strong { grid-area:title; margin-bottom:0; }
  .pref-label span { grid-area:desc; max-width:100%; }
  .toggle { grid-area:toggle; margin:0; }

  .cookie-modal-foot {
    padding:14px 18px 20px;
    flex-direction:column-reverse;
    gap:10px;
    position:sticky;
    bottom:0;
    background:#0d0d18;
    border-top:1px solid var(--border);
  }
  .modal-btn-save,
  .modal-btn-all {
    width:100%;
    text-align:center;
    padding:13px 20px;
    box-sizing:border-box;
  }
}

@media (max-width: 360px) {
  .cookie-modal-head h3 { font-size:15px; letter-spacing:1.5px; }
}