/* base: variabili, testata, bottoni, piede, carta dei cookie */
:root {
  --navy: #10233d;
  --ink: #0a1729;
  --gold: #b08d57;
  --gold-2: #c9a14a;
  --line: #e2e8f0;
  --page: #fafafa;
  --text: #101010;
  --muted: #4b5563;
  --foot-text: #d9e3f2;
  --r-sm: 6px;
  --r-md: 8px;
  --fast: .15s cubic-bezier(.4,0,.2,1);
}

*, *:before, *:after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  font-family: Inter, Arial, system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: -0.4px;
  color: var(--text);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); }
h1, h2, h3 { color: var(--ink); margin: 0; }
p { margin: 0 0 1em; }

/* utility, rimaste dalla prima versione */
.antialiased { -webkit-font-smoothing: antialiased; }
.bg-page { background: var(--page); }
.max-w-site { max-width: 1280px; }
.max-w-read { max-width: 896px; }
.mx-auto { margin-left: auto; margin-right: auto; }
.px-gutter { padding-left: 16px; padding-right: 16px; }
.border-b { border-bottom: 1px solid var(--line); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (min-width: 640px) { .px-gutter { padding-left: 24px; padding-right: 24px; } }

/* testata */
.navstrip { position: relative; z-index: 40; border-bottom: 1px solid #e5e7eb; background: var(--page); }
.navstrip-row { display: flex; align-items: center; justify-content: space-between; min-height: 64px; gap: 16px; }
.signet-link { display: inline-flex; min-width: 0; }
.signet { width: 150px; }
.navstrip-links { display: none; }
.menu, .submenu { list-style: none; margin: 0; padding: 0; }
.navstrip-links a { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; font-size: 14px; font-weight: 500; letter-spacing: .16px; text-decoration: none; color: var(--text); padding: 12px 8px; transition: color var(--fast); }
.submenu a { padding-left: 20px; color: var(--muted); }
.navstrip-links a:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 4px; }
.burger { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; cursor: pointer; }
.burger span { display: block; width: 18px; height: 2px; background: var(--ink); transition: transform var(--fast), opacity var(--fast); }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.navstrip.aperta .navstrip-links { display: flex; flex-direction: column; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--line); padding: 8px 16px 20px; box-shadow: 0 10px 15px -3px rgba(10,23,41,.08); }
.navstrip.aperta .navstrip-links .btn-navy { margin-top: 8px; justify-content: center; }
@media (min-width: 1024px) {
  .navstrip-row { min-height: 69px; }
  .burger { display: none; }
  .navstrip-links { display: flex; align-items: center; gap: 4px; }
  .menu { display: flex; align-items: center; gap: 4px; }
  .ha-sub { position: relative; }
  .ha-sub svg { transition: transform var(--fast); }
  .submenu { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; padding: 6px; background: rgba(255,255,255,.96); border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 20px 25px -5px rgba(10,23,41,.1); }
  .submenu a { display: flex; padding: 10px 12px; color: var(--text); }
  .ha-sub:hover .submenu, .ha-sub:focus-within .submenu { display: block; }
  .ha-sub:hover svg, .ha-sub:focus-within svg { transform: rotate(180deg); }
  .navstrip-links .btn-navy { margin-left: 16px; }
}
.fuori { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.link-cookie { font: inherit; color: inherit; background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; min-height: 24px; }

/* bottoni: due raggi diversi come nel riferimento */
.btn-navy, .btn-line { display: inline-flex; align-items: center; gap: 8px; font: 600 16px/24px Inter, Arial, sans-serif; letter-spacing: .16px; padding: 12px 20px; text-decoration: none; cursor: pointer; transition: background var(--fast), border-color var(--fast); }
.btn-navy { background: var(--navy); color: #fff !important; border: 0; border-radius: var(--r-md); }
.btn-navy:hover { background: var(--ink); text-decoration: none !important; }
.btn-line { background: #fff; color: #111827; border: 1px solid #cbd5e1; border-radius: var(--r-sm); }
.btn-line:hover { background: #f9fafb; }
.btn-sm { font-size: 14px; padding: 8px 14px; border-radius: var(--r-sm); }
.btn-navy:focus-visible, .btn-line:focus-visible, .tile:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* piede */
.footzone { background: var(--ink); color: var(--foot-text); padding: 32px 0 24px; margin-top: 0; }
.footzone-grid { display: grid; grid-template-columns: 1fr; gap: 32px 16px; }
.footzone-brand img { width: 168px; margin-bottom: 14px; }
.footzone-legal { font-size: 14px; line-height: 1.9; color: #cbd5e1; }
.footzone a { color: #cbd5e1; text-decoration: none; display: inline-block; min-height: 24px; padding: 2px 0; }
.footzone a:hover { color: #fff; text-decoration: underline; }
.footzone-col { display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.footzone-h { color: #fff; font-size: 16px; font-weight: 500; margin: 0 0 4px; }
.footzone-copy { font-size: 14px; color: #94a3b8; margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(226,232,240,.15); }
@media (min-width: 768px) {
  .footzone { padding: 48px 0 32px; }
  .footzone-grid { grid-template-columns: 5fr 3fr 4fr; }
  .footzone-copy { margin-top: 64px; }
}

/* carta dei cookie, angolo in basso */
.carta-cookie { position: fixed; right: 16px; bottom: 16px; left: 16px; z-index: 9999; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 20px 20px 16px; box-shadow: 0 20px 25px -5px rgba(10,23,41,.12); font-size: 14px; line-height: 1.55; }
.carta-cookie[hidden] { display: none; }
.carta-cookie p { margin: 0 24px 14px 0; }
.carta-x { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border: 0; background: none; font-size: 22px; line-height: 1; color: var(--muted); cursor: pointer; }
.carta-azioni { display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 640px) { .carta-cookie { left: auto; max-width: 380px; } }
