/* Foglio di stile condiviso dalle tre pagine legali.
   La landing (index.html) resta un file singolo con il proprio CSS inline. */
:root{
  --cream:#E7EDF5;
  --paper:#F5F9FD;
  --ink:#0B1E3A;
  --ink-soft:#3D5C85;
  --ink-faint:#6D8FBB;
  --ember:#0A5BD3;
  --line: rgba(11,30,58,0.16);
  --line-strong: rgba(11,30,58,0.28);
  --display:'Fraunces','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --sans:'Inter Tight', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --edge:clamp(18px,5vw,64px);
  --hdr:68px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
body.menu-open{ overflow:hidden; }
a{ color:inherit; }
::selection{ background:var(--ember); color:var(--paper); }
h1,h2{ font-family:var(--display); font-weight:400; font-variation-settings:'SOFT' 20,'WONK' 1,'opsz' 100; color:var(--ink); margin:0; letter-spacing:-0.015em; text-wrap:balance; }
p{ margin:0; }

.wrap{ max-width:840px; margin:0 auto; padding-left:var(--edge); padding-right:var(--edge); }

header{
  position:sticky; top:0; z-index:60; background:rgba(245,249,253,0.94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); padding-top:env(safe-area-inset-top);
}
.header-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:var(--hdr); max-width:1180px; margin:0 auto; padding-left:var(--edge); padding-right:var(--edge); }
.wordmark{ font-size:12px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; color:var(--ink); }
.nav-desktop{ display:flex; align-items:center; gap:24px; }
.nav-desktop a{ font-size:13px; text-decoration:none; color:var(--ink-soft); white-space:nowrap; transition:color .25s ease; }
.nav-desktop a:hover, .nav-desktop a[aria-current="page"]{ color:var(--ember); }
.nav-sep{ width:1px; height:16px; background:var(--line-strong); flex-shrink:0; }
a:focus-visible, button:focus-visible{ outline:2px solid var(--ember); outline-offset:3px; }

.menu-btn{
  display:none; background:none; border:1px solid var(--line-strong); border-radius:2px;
  width:44px; height:44px; padding:0; cursor:pointer; align-items:center; justify-content:center; flex-shrink:0;
}
.menu-btn i{ display:block; width:18px; height:1.5px; background:var(--ink); position:relative; transition:background .2s ease; }
.menu-btn i::before, .menu-btn i::after{ content:''; position:absolute; left:0; width:18px; height:1.5px; background:var(--ink); transition:transform .3s cubic-bezier(.16,1,.3,1); }
.menu-btn i::before{ top:-6px; } .menu-btn i::after{ top:6px; }
body.menu-open .menu-btn i{ background:transparent; }
body.menu-open .menu-btn i::before{ transform:translateY(6px) rotate(45deg); }
body.menu-open .menu-btn i::after{ transform:translateY(-6px) rotate(-45deg); }
.nav-mobile{
  display:none; border-bottom:1px solid var(--line); background:var(--paper);
  padding:6px var(--edge) 20px;
}
body.menu-open .nav-mobile{ display:block; }
.nav-mobile a{
  display:block; text-decoration:none; color:var(--ink);
  font-family:var(--display); font-variation-settings:'SOFT' 20,'WONK' 1,'opsz' 40;
  font-size:1.5rem; padding:12px 0; border-bottom:1px solid var(--line);
}
@media (max-width:900px){
  .nav-desktop{ display:none; }
  .menu-btn{ display:inline-flex; }
}

main{ padding:clamp(48px,8vh,88px) 0 clamp(56px,9vh,96px); }
.doc-tag{ font-size:11px; font-weight:500; letter-spacing:0.14em; color:var(--ember); text-transform:uppercase; }
main h1{ font-size:clamp(1.9rem,4vw,2.7rem); margin-top:12px; }
.doc-meta{ font-size:12.5px; color:var(--ink-faint); margin-top:16px; }
main h2{ font-family:var(--sans); font-weight:600; font-size:15px; margin-top:36px; margin-bottom:8px; letter-spacing:0.01em; }
main p, main li{ font-size:14.5px; line-height:1.8; color:var(--ink-soft); }
main ul{ padding-left:20px; margin:0; display:flex; flex-direction:column; gap:8px; }
main p + p{ margin-top:12px; }
main a{ text-decoration:underline; }
/* Versione del documento: serve a legare ogni ordine al testo vigente al momento
   della spunta. Il valore stampato qui deve restare allineato a DOCUMENTI in
   prenota.html e a DOC_VERSIONI in server/app.py. */
.doc-version{ margin-top:40px; padding-top:16px; border-top:1px solid var(--line); font-size:12px; color:var(--ink-faint); }
/* Riquadro del modulo tipo di recesso: si compila e si invia via email. */
.doc-modulo{ margin-top:20px; padding:22px 24px; border:1px solid var(--line-strong); background:var(--cream); }
.doc-modulo p{ font-size:14px; }
.doc-modulo p + p{ margin-top:14px; }
.doc-back{ display:inline-flex; margin-top:40px; font-size:13px; text-decoration:none; color:var(--ink-soft); border-bottom:1px solid var(--line-strong); padding-bottom:4px; min-height:32px; }
.doc-back:hover{ color:var(--ember); border-color:var(--ember); }

footer{ border-top:1px solid var(--line); padding:44px 0 40px; background:var(--cream); }
.footer-in{ max-width:1180px; margin:0 auto; padding-left:var(--edge); padding-right:var(--edge); }
.footer-row{ display:flex; justify-content:space-between; gap:28px; flex-wrap:wrap; align-items:flex-start; }
.footer-legal{ font-size:12px; color:var(--ink-faint); line-height:1.9; max-width:46ch; }
.footer-links{ display:flex; gap:22px; flex-wrap:wrap; }
.footer-links a{ font-size:12.5px; text-decoration:none; color:var(--ink-soft); padding:6px 0; }
.footer-links a:hover{ color:var(--ember); }
.footer-warning{ margin-top:32px; padding-top:18px; border-top:1px solid var(--line); font-size:12px; color:var(--ink-faint); line-height:1.7; }
