/* SAURON LTD — design tokens. Unica fonte di verita per colore, spazio, tipo, motion. */
:root{
  color-scheme: light dark;

  /* superfici */
  --paper:#F6F2EA; --paper-raised:#EFE9DD; --stone:#E4DCCC;
  --ink:#1E1A15; --chalk:#EDE6DA;

  /* testo */
  --text:#1E1A15; --muted:#6B6255; --text-inv:#EDE6DA; --muted-inv:#A79C8C;

  /* linee */
  --line:#CEC4B2; --border-strong:#8A8071;

  /* accento ottone */
  --brass:#A98246; --brass-ink:#7E5F38; --brass-hi:#B08F5E;
  --brass-wash: color-mix(in srgb, var(--brass) 5%, transparent);
  --brass-glow: color-mix(in srgb, var(--brass) 22%, transparent);

  /* stati */
  --danger:#8A3F2C; --ok:#4E6152;

  /* lastra */
  --plate-1:#EFE7D8; --plate-2:#E2D8C6; --plate-3:#D3C7B1;
  --plate-hatch: color-mix(in srgb, #FFFFFF 6%, transparent);
  --plate-frame: color-mix(in srgb, var(--brass) 55%, transparent);
  --plate-light-1: color-mix(in srgb, #FFFFFF 24%, transparent);
  --plate-light-2: color-mix(in srgb, #FFF6E4 16%, transparent);
  --plate-blend: soft-light;

  /* ombra unica */
  --shade:#2A241C;
  --shadow-header: 0 1px 0 color-mix(in srgb, var(--shade) 6%, transparent);
  --shadow-lift: 0 2px 0 color-mix(in srgb, var(--shade) 5%, transparent);

  /* spazio */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px;
  --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px; --s-11:160px;
  --sp-section: clamp(80px, 10vw, 168px);
  --sp-block: clamp(40px, 5vw, 72px);

  --r-0:0; --r-1:2px; --focus-offset:2px;

  /* griglia */
  --w-text:1320px; --w-bleed:1600px;
  --gutter: max(24px, 4.5vw);
  --col-gap:28px;
  --header-h:76px;

  /* tipo */
  --fs-hero: clamp(2.75rem, 1.4rem + 5.2vw, 6rem);
  --fs-h2:   clamp(1.875rem, 1.2rem + 2.3vw, 3rem);
  --fs-h3:   clamp(1.3125rem, 1.1rem + .7vw, 1.625rem);
  --fs-lead: clamp(1.1875rem, 1.06rem + .5vw, 1.4375rem);
  --fs-body: clamp(1.0625rem, 1.02rem + .18vw, 1.1875rem);
  --fs-ui:.9375rem; --fs-small:.875rem; --fs-kicker:.75rem; --fs-reg:.6875rem;
  --fs-fact: clamp(2rem, 1.4rem + 1.7vw, 2.75rem);

  /* motion */
  --ease-out: cubic-bezier(.22,.61,.36,1);
  --ease-inout: cubic-bezier(.4,0,.2,1);
  --ease-soft: cubic-bezier(.16,.84,.44,1);
  --ease-draw: cubic-bezier(.2,.7,.2,1);
  --t-micro:160ms; --t-ui:260ms; --t-open:420ms;
  --t-reveal:560ms; --t-mask:560ms; --t-slow:900ms; --t-light:7000ms;
}

@media (prefers-color-scheme: dark){
  :root{
    --paper:#14110D; --paper-raised:#1C1813; --stone:#241F18;
    --ink:#0E0C09; --chalk:#EDE6DA;
    --text:#EDE6DA; --muted:#A79C8C; --text-inv:#EDE6DA; --muted-inv:#A79C8C;
    --line:#3E3629; --border-strong:#6E6455;
    --brass:#A98246; --brass-ink:#C9A76A; --brass-hi:#DCC08A;
    --danger:#E0A08C; --ok:#A9C0AF;
    --plate-1:#2A241B; --plate-2:#221D16; --plate-3:#1A1610;
    --plate-hatch: color-mix(in srgb, #FFFFFF 4%, transparent);
    --plate-light-1: color-mix(in srgb, #FFE9C4 18%, transparent);
    --plate-light-2: color-mix(in srgb, #FFF6E4 10%, transparent);
    --plate-blend: screen;
    --shadow-header: 0 1px 0 color-mix(in srgb, #000000 40%, transparent);
    --shadow-lift: 0 2px 0 color-mix(in srgb, #000000 30%, transparent);
  }
}

@media (prefers-contrast: more){
  :root{ --line:#A79B85; --muted:#4E4740; --border-strong:#5C5449; }
}

/* Literata (TypeTogether) e Inter (Rasmus Andersson) — SIL Open Font License 1.1.
   File generato da tools/fetch-fonts.py: non modificare a mano.
   Ospitati in locale: nessuna richiesta a domini esterni, nessun dato verso terzi. */
@font-face{font-family:Literata;src:url(/fonts/literata-cyrillic-ext.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:optional;unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:Literata;src:url(/fonts/literata-cyrillic.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:optional;unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:Literata;src:url(/fonts/literata-latin-ext.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:optional;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:Literata;src:url(/fonts/literata-latin.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:optional;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:Inter;src:url(/fonts/inter-cyrillic-ext.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:Inter;src:url(/fonts/inter-cyrillic.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:Inter;src:url(/fonts/inter-latin-ext.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:Inter;src:url(/fonts/inter-latin.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ---- FONT: vedi 05-fonts.css, generato da tools/fetch-fonts.py ---- */
/* metriche allineate: se i woff2 mancano il sito resta identico nel ritmo */
@font-face{font-family:"Literata Fallback";src:local("Georgia"),local("Times New Roman"),local("Times");
  size-adjust:99%;ascent-override:90%;descent-override:24%;line-gap-override:0%;}
@font-face{font-family:"Inter Fallback";src:local("Helvetica Neue"),local("Arial"),local("Roboto");
  size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%;}

/* ---- RESET ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}
body{margin:0;background:var(--paper);color:var(--text);
  font-family:Inter,"Inter Fallback",system-ui,-apple-system,sans-serif;
  font-size:var(--fs-body);line-height:1.62;
  font-feature-settings:'cv05' 1,'zero' 1,'calt' 1;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* clip invece di hidden: 'hidden' sul body crea un contenitore di scorrimento
   e rompe sia window.scroll sia position:sticky. 'clip' contiene senza scrollare. */
body{overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}}
img,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
hr{border:0;border-top:1px solid var(--line);margin:0}
table{border-collapse:collapse;width:100%}
:target{scroll-margin-top:calc(var(--header-h) + 32px)}

/* ---- TIPOGRAFIA ------------------------------------------------------- */
h1,h2,h3,.serif,.lead,.prose p,.fact__n{font-family:Literata,"Literata Fallback",Georgia,serif;font-optical-sizing:auto}
h1{font-size:var(--fs-hero);font-weight:400;line-height:1.04;letter-spacing:-.02em;hyphens:none}
h2{font-size:var(--fs-h2);font-weight:400;line-height:1.12;letter-spacing:-.014em;text-wrap:pretty;hyphens:none}
h3{font-size:var(--fs-h3);font-weight:500;line-height:1.28;letter-spacing:-.006em;text-wrap:pretty}
.lead{font-size:var(--fs-lead);line-height:1.5;max-width:52ch;text-wrap:pretty}
.prose p{max-width:62ch;line-height:1.62;text-wrap:pretty;hyphens:auto}
.prose p + p{margin-top:1.05em}
.prose strong{font-weight:600}
.kicker{font-family:Inter,"Inter Fallback",sans-serif;font-size:var(--fs-kicker);font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;line-height:1;color:var(--brass-ink)}
.reg{font-family:Inter,"Inter Fallback",sans-serif;font-size:var(--fs-reg);font-weight:500;
  letter-spacing:.10em;text-transform:uppercase;line-height:1.45;color:var(--muted);
  font-variant-numeric:tabular-nums lining-nums}
.small{font-size:var(--fs-small);color:var(--muted)}
.num{font-variant-numeric:tabular-nums lining-nums}

/* ---- ACCESSIBILITA ---------------------------------------------------- */
:focus{outline:none}
:focus-visible{outline:2px solid var(--brass-ink);outline-offset:var(--focus-offset);border-radius:1px}
.on-ink :focus-visible{outline-color:var(--chalk)}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:var(--chalk);
  padding:14px 20px;font-size:var(--fs-ui)}
.skip:focus{left:12px;top:12px}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ---- MOTION: fallback obbligatori ------------------------------------- */
html.no-js .reveal{opacity:1;transform:none}
html.no-js .ln__i{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;
    transition-duration:1ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
  .ln__i{opacity:1!important;transform:none!important}
  .plate::after{animation:none!important;transform:translateX(38%)!important;opacity:.20!important}
  .plate__inner{transform:none!important}
}
@media (forced-colors: active){
  .plate{background:Canvas;border:1px solid CanvasText}
  .rule,.svc-row,.card{border-color:CanvasText}
  .mark__b,.mark__s{stroke:CanvasText}
}

/* ---- CONTENITORI ------------------------------------------------------ */
.wrap{width:100%;max-width:var(--w-text);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--bleed{max-width:var(--w-bleed)}
.wrap--narrow{max-width:820px}
.section{padding-block:var(--sp-section)}
.section--tight{padding-block:var(--sp-block)}
.section--ink{background:var(--ink);color:var(--text-inv)}
.section--ink h2,.section--ink h3{color:var(--text-inv)}
.section--ink .small,.section--ink .reg{color:var(--muted-inv)}
.section--stone{background:var(--stone)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--col-gap)}
.stack>*+*{margin-top:var(--s-5)}

/* ---- HEADER ----------------------------------------------------------- */
.hdr{position:sticky;top:0;z-index:100;height:var(--header-h);
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);
  transition:box-shadow var(--t-ui) var(--ease-out),background var(--t-ui) var(--ease-out)}
.hdr.is-stuck{box-shadow:var(--shadow-header);background:color-mix(in srgb, var(--paper) 96%, transparent)}
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);height:100%}
.hdr__prog{position:absolute;left:0;bottom:0;height:1px;background:var(--brass);
  width:100%;transform:scaleX(0);transform-origin:0 50%;will-change:transform}

/* logo lock-up */
.lock{display:inline-flex;align-items:center;gap:12px;text-decoration:none;min-width:128px}
.lock__mark{flex:none}
.lock__txt{display:flex;flex-direction:column;gap:3px}
.lock__name{font-family:Inter,"Inter Fallback",sans-serif;font-weight:600;font-size:1.0625rem;
  letter-spacing:.18em;text-transform:uppercase;line-height:1;color:var(--text)}
.lock__desc{font-size:var(--fs-reg);font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  line-height:1;color:var(--muted)}
@media (max-width:640px){.lock__desc{display:none}}

/* navigazione */
.nav{display:flex;align-items:center;gap:var(--s-6)}
.nav__list{display:flex;align-items:center;gap:var(--s-6)}
.nav__a{position:relative;font-size:var(--fs-ui);font-weight:500;text-decoration:none;color:var(--text);
  padding:6px 0;display:inline-block;transition:color var(--t-micro) var(--ease-out)}
.nav__a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:100% 50%;transition:transform var(--t-ui) var(--ease-out)}
.nav__a:hover::after,.nav__a:focus-visible::after{transform:scaleX(1);transform-origin:0 50%}
.nav__a[aria-current="page"]{color:var(--brass-ink)}
.nav__a[aria-current="page"]::after{transform:scaleX(1);background:var(--brass-ink)}
@media (max-width:1023px){.nav__list{display:none}}

/* selettore lingua */
.lang{display:flex;align-items:center;gap:2px;border:1px solid var(--border-strong);
  border-radius:var(--r-1);padding:2px;min-height:34px}
.lang__a{font-size:var(--fs-reg);font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;padding:6px 9px;color:var(--muted);border-radius:1px;line-height:1;
  transition:background var(--t-micro) var(--ease-out),color var(--t-micro) var(--ease-out)}
.lang__a:hover{color:var(--text);background:var(--brass-wash)}
.lang__a[aria-current="true"]{background:var(--ink);color:var(--chalk)}

/* menu mobile */
.burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;
  background:none;border:1px solid var(--border-strong);border-radius:var(--r-1);cursor:pointer}
.burger__i,.burger__i::before,.burger__i::after{display:block;width:18px;height:1.5px;background:var(--text);
  transition:transform var(--t-ui) var(--ease-out),opacity var(--t-micro) linear}
.burger__i::before,.burger__i::after{content:"";position:absolute}
.burger__i::before{transform:translateY(-6px)}
.burger__i::after{transform:translateY(6px)}
.burger[aria-expanded="true"] .burger__i{background:transparent}
.burger[aria-expanded="true"] .burger__i::before{transform:rotate(45deg)}
.burger[aria-expanded="true"] .burger__i::after{transform:rotate(-45deg)}
@media (max-width:1023px){.burger{display:inline-flex;position:relative}}

.drawer{position:fixed;inset:var(--header-h) 0 0;z-index:99;background:var(--paper);
  padding:var(--s-7) var(--gutter) var(--s-9);overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity var(--t-ui) var(--ease-out),transform var(--t-ui) var(--ease-out),visibility 0s linear var(--t-ui)}
.drawer.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.drawer__a{display:block;padding:var(--s-4) 0;border-bottom:1px solid var(--line);
  font-family:Literata,"Literata Fallback",Georgia,serif;font-size:1.375rem;text-decoration:none}
.drawer__a[aria-current="page"]{color:var(--brass-ink)}

/* ---- FOOTER ----------------------------------------------------------- */
.ftr{background:var(--ink);color:var(--text-inv);padding-block:var(--s-9) var(--s-6)}
.ftr a{color:var(--text-inv);text-decoration:none}
.ftr__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s-7)}
@media (max-width:900px){.ftr__cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ftr__cols{grid-template-columns:1fr}}
.ftr__h{font-size:var(--fs-reg);font-weight:500;letter-spacing:.10em;text-transform:uppercase;
  color:var(--muted-inv);margin-bottom:var(--s-4)}
.ftr__li{padding:5px 0}
.ftr__li a{font-size:var(--fs-ui);opacity:.86;transition:opacity var(--t-micro) var(--ease-out)}
.ftr__li a:hover{opacity:1;color:var(--brass-hi)}
.ftr__legal{margin-top:var(--s-8);padding-top:var(--s-5);border-top:1px solid color-mix(in srgb,var(--chalk) 14%,transparent)}
.ftr__legal p{font-size:var(--fs-reg);letter-spacing:.04em;line-height:1.7;color:var(--muted-inv);
  max-width:none;text-transform:none}
.ftr__legal a{text-decoration:underline;text-underline-offset:2px}

/* ---- MARCHIO ---------------------------------------------------------- */
.mark{color:var(--text)}
.mark__s{stroke:currentColor}
.mark__b{stroke:var(--brass)}
.section--ink .mark,.ftr .mark{color:var(--chalk)}

/* tracciatura del monogramma al caricamento */
.is-ready .mark--draw .mark__s{stroke-dasharray:44;stroke-dashoffset:44;
  animation:draw 1100ms var(--ease-draw) 180ms forwards}
.is-ready .mark--draw .mark__b{opacity:0;animation:fadein 400ms var(--ease-out) 900ms forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}

/* ---- BOTTONI ---------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:0 26px;border-radius:var(--r-1);border:1px solid transparent;
  font-size:var(--fs-ui);font-weight:500;letter-spacing:.02em;text-decoration:none;cursor:pointer;
  transition:background var(--t-ui) var(--ease-out),color var(--t-ui) var(--ease-out),
             border-color var(--t-ui) var(--ease-out),transform var(--t-micro) var(--ease-out)}
.btn__a{transition:transform var(--t-ui) var(--ease-out)}
.btn:hover .btn__a{transform:translateX(4px)}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--ink);color:var(--chalk);border-color:var(--ink)}
.btn--primary:hover{background:var(--brass-ink);border-color:var(--brass-ink);color:#fff}
.btn--ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}
.btn--ghost:hover{border-color:var(--brass-ink);color:var(--brass-ink);background:var(--brass-wash)}
.section--ink .btn--ghost{color:var(--chalk);border-color:color-mix(in srgb,var(--chalk) 34%,transparent)}
.section--ink .btn--ghost:hover{color:var(--ink);background:var(--chalk);border-color:var(--chalk)}

/* link testuale con sottolineatura che si disegna */
.lnk{text-decoration:none;color:var(--brass-ink);font-weight:500;
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;
  transition:background-size 320ms var(--ease-out)}
.lnk:hover,.lnk:focus-visible{background-size:100% 1px}
.prose a:not(.btn):not(.lnk){color:var(--brass-ink);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px}

/* ---- FILETTI E ORDINALI ----------------------------------------------- */
.rule{border-top:1px solid var(--line)}
.rule--brass{border-top:1px solid var(--brass);width:56px}
.ord{font-size:var(--fs-reg);font-weight:500;letter-spacing:.10em;color:var(--brass-ink);
  font-variant-numeric:tabular-nums}

/* ---- LASTRA (elemento grafico dell hero) ------------------------------ */
.plate{position:relative;overflow:hidden;isolation:isolate;
  background:
    repeating-linear-gradient(122deg, var(--plate-hatch) 0 1px, transparent 1px 7px),
    linear-gradient(152deg, var(--plate-1) 0%, var(--plate-2) 46%, var(--plate-3) 100%);
  border:1px solid var(--plate-frame);aspect-ratio:4/5}
.plate::before{content:"";position:absolute;inset:12px;border:1px solid var(--plate-frame);
  opacity:.5;pointer-events:none;z-index:2}
.plate::after{content:"";position:absolute;top:-20%;left:0;width:55%;height:140%;z-index:3;
  pointer-events:none;transform:rotate(-14deg) translateX(-60%);opacity:0;
  mix-blend-mode:var(--plate-blend);
  background:linear-gradient(90deg,transparent 0%,var(--plate-light-2) 18%,var(--plate-light-1) 38%,
    var(--plate-light-1) 52%,var(--plate-light-2) 72%,transparent 100%)}
.is-ready .plate::after{animation:sweep var(--t-light) cubic-bezier(.37,0,.63,1) 350ms 1 forwards}
@keyframes sweep{
  0%{transform:rotate(-14deg) translateX(-60%);opacity:0}
  14%{opacity:.24} 78%{opacity:.24}
  100%{transform:rotate(-14deg) translateX(175%);opacity:0}}
.plate__inner{position:absolute;inset:0;z-index:1;display:grid;place-items:center;
  transition:transform 700ms var(--ease-soft)}
.plate__inner img{width:100%;height:100%;object-fit:cover}
.plate__glyph{width:min(58%,300px);color:var(--brass);opacity:.42}
.plate__cap{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:14px 16px;
  background:linear-gradient(transparent,color-mix(in srgb,var(--shade) 34%,transparent));
  color:var(--chalk);font-size:var(--fs-reg);letter-spacing:.10em;text-transform:uppercase}
@media (max-width:767px){.plate{aspect-ratio:3/2}}

/* ---- SCHEDE ----------------------------------------------------------- */
.card{position:relative;display:flex;flex-direction:column;gap:var(--s-3);
  padding:var(--s-6) var(--s-5) var(--s-7);background:var(--paper-raised);
  border:1px solid var(--line);text-decoration:none;color:inherit;overflow:hidden;
  transition:border-color var(--t-ui) var(--ease-out),transform var(--t-ui) var(--ease-out),
             background var(--t-ui) var(--ease-out)}
.card::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--brass);
  transform:scaleX(0);transform-origin:0 50%;transition:transform 420ms var(--ease-out)}
a.card:hover,a.card:focus-visible{border-color:var(--border-strong);transform:translateY(-3px);
  background:color-mix(in srgb,var(--paper-raised) 70%, var(--brass-wash))}
a.card:hover::after,a.card:focus-visible::after{transform:scaleX(1)}
.card__ord{font-size:var(--fs-reg);letter-spacing:.10em;color:var(--brass-ink);
  font-variant-numeric:tabular-nums}
.card__t{font-family:Literata,"Literata Fallback",Georgia,serif;font-size:var(--fs-h3);
  font-weight:500;line-height:1.28}
.card__d{font-size:var(--fs-ui);color:var(--muted);line-height:1.6;max-width:46ch}
.card__go{margin-top:auto;padding-top:var(--s-3);font-size:var(--fs-ui);font-weight:500;
  color:var(--brass-ink);display:inline-flex;align-items:center;gap:8px}
a.card:hover .card__go svg{transform:translateX(5px)}
.card__go svg{transition:transform var(--t-ui) var(--ease-out)}
.cards{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}

/* ---- RIGA DI SERVIZIO (elenco denso) ---------------------------------- */
.rows{border-top:1px solid var(--line)}
.svc-row{display:grid;grid-template-columns:auto 1fr auto;gap:var(--s-5);align-items:baseline;
  padding:var(--s-5) var(--s-4);border-bottom:1px solid var(--line);text-decoration:none;color:inherit;
  transition:background var(--t-ui) var(--ease-out),padding-inline var(--t-ui) var(--ease-out)}
.svc-row:hover,.svc-row:focus-visible{background:var(--brass-wash);padding-inline-start:var(--s-6)}
.svc-row__t{font-family:Literata,"Literata Fallback",Georgia,serif;font-size:var(--fs-h3);font-weight:500}
.svc-row__d{grid-column:2;font-size:var(--fs-ui);color:var(--muted);margin-top:6px;max-width:64ch}
.svc-row__go{color:var(--brass-ink);transition:transform var(--t-ui) var(--ease-out)}
.svc-row:hover .svc-row__go{transform:translateX(6px)}
@media (max-width:640px){.svc-row{grid-template-columns:auto 1fr}.svc-row__go{display:none}}

/* ---- PASSI NUMERATI --------------------------------------------------- */
.steps{counter-reset:st;display:grid;gap:var(--s-6)}
.step{display:grid;grid-template-columns:64px 1fr;gap:var(--s-5);align-items:start}
.step__n{counter-increment:st;font-size:var(--fs-reg);letter-spacing:.10em;color:var(--brass-ink);
  padding-top:8px;border-top:1px solid var(--brass);font-variant-numeric:tabular-nums}
.step__n::before{content:"0" counter(st)}
.step__t{font-family:Literata,"Literata Fallback",Georgia,serif;font-size:var(--fs-h3);font-weight:500;margin-bottom:8px}
.step__d{color:var(--muted);max-width:60ch;line-height:1.62}
@media (max-width:640px){.step{grid-template-columns:1fr;gap:var(--s-3)}}

/* ---- FATTI ------------------------------------------------------------ */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:var(--s-6)}
.fact{border-top:1px solid var(--brass);padding-top:var(--s-4)}
.fact__n{font-size:var(--fs-fact);line-height:1.05;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums lining-nums}
.fact__l{font-size:var(--fs-ui);color:var(--muted);margin-top:8px;line-height:1.5}
.section--ink .fact__l{color:var(--muted-inv)}

/* ---- FAQ / DETTAGLI --------------------------------------------------- */
.faq{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa summary{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-5);
  padding:var(--s-5) 0;cursor:pointer;list-style:none;font-family:Literata,"Literata Fallback",Georgia,serif;
  font-size:var(--fs-h3);font-weight:500;line-height:1.32;
  transition:color var(--t-micro) var(--ease-out)}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:var(--brass-ink)}
.qa__ico{flex:none;width:20px;height:20px;margin-top:6px;position:relative}
.qa__ico::before,.qa__ico::after{content:"";position:absolute;left:50%;top:50%;background:var(--brass-ink);
  transition:transform var(--t-open) var(--ease-inout)}
.qa__ico::before{width:16px;height:1.5px;transform:translate(-50%,-50%)}
.qa__ico::after{width:1.5px;height:16px;transform:translate(-50%,-50%)}
.qa[open] .qa__ico::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(0)}
.qa__body{overflow:hidden}
.qa__body p{padding-bottom:var(--s-5);color:var(--muted);max-width:64ch}
.qa__wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--t-open) var(--ease-inout)}
.qa[open] .qa__wrap{grid-template-rows:1fr}
.qa__wrap>div{min-height:0;overflow:hidden}

/* ---- ELENCO PUNTATO --------------------------------------------------- */
.ticks{display:grid;gap:var(--s-3)}
.tick{display:grid;grid-template-columns:22px 1fr;gap:var(--s-3);align-items:start;line-height:1.6}
.tick__m{margin-top:9px;width:12px;height:1px;background:var(--brass)}
.tick strong{font-weight:600}

/* ---- NOTA / AVVISO ---------------------------------------------------- */
.note{border-left:2px solid var(--brass);padding:var(--s-4) var(--s-5);background:var(--brass-wash)}
.note p{max-width:66ch;font-size:var(--fs-ui);color:var(--text)}

/* ---- FORM ------------------------------------------------------------- */
.form{display:grid;gap:var(--s-5);max-width:640px}
.field{display:grid;gap:8px}
.field label{font-size:var(--fs-ui);font-weight:500}
.field .req{color:var(--brass-ink)}
.field input,.field textarea,.field select{width:100%;padding:13px 14px;font-size:16px;
  background:var(--paper-raised);border:1px solid var(--border-strong);border-radius:var(--r-1);
  transition:border-color var(--t-micro) var(--ease-out),background var(--t-micro) var(--ease-out)}
.field input:hover,.field textarea:hover{border-color:var(--muted)}
.field input:focus,.field textarea:focus{border-color:var(--brass-ink);background:var(--paper)}
.field textarea{min-height:150px;resize:vertical;line-height:1.6}
.field__hint{font-size:var(--fs-small);color:var(--muted)}
.field__err{font-size:var(--fs-small);color:var(--danger);display:none}
.field.is-err input,.field.is-err textarea{border-color:var(--danger)}
.field.is-err .field__err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form__msg{padding:var(--s-4) var(--s-5);border:1px solid var(--line);display:none}
.form__msg.is-on{display:block}
.form__msg--ok{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,transparent)}
.form__msg--err{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}

/* ---- ANIMAZIONE DI INGRESSO ------------------------------------------- */
.reveal{opacity:0;transform:translateY(18px);
  transition:opacity var(--t-reveal) var(--ease-soft),transform var(--t-reveal) var(--ease-soft);
  transition-delay:calc(var(--i,0) * 90ms)}
.reveal.is-in{opacity:1;transform:none}

.lnw{display:block}
/* Niente clip-path: un gruppo di parole che va a capo verrebbe tagliato a meta.
   Su schermo stretto e in bulgaro accade sempre. Opacita + traslazione reggono
   qualunque numero di righe visive. */
.ln__i{display:block;opacity:0;transform:translateY(.16em);
  transition:opacity var(--t-mask) var(--ease-draw),transform var(--t-mask) var(--ease-draw)}
.ln--first .ln__i{opacity:1;transform:none}
.is-ready .ln__i{opacity:1;transform:none}
.is-ready .ln--2 .ln__i{transition-delay:110ms}
.is-ready .ln--3 .ln__i{transition-delay:200ms}

/* ---- HERO HOME -------------------------------------------------------- */
.hero{padding-block:clamp(56px,8vw,120px) var(--sp-section)}
.hero__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--col-gap);align-items:center}
.hero__txt{grid-column:1 / span 7}
.hero__art{grid-column:8 / span 5}
.hero__kicker{display:flex;align-items:center;gap:12px;margin-bottom:var(--s-5)}
.hero__kicker::after{content:"";flex:1;max-width:120px;height:1px;background:var(--brass);opacity:.6}
.kicker__x{white-space:nowrap}
@media (max-width:640px){.kicker__x{display:none}}
.hero h1{margin-bottom:var(--s-5)}
.hero .lead{color:var(--muted);margin-bottom:var(--s-6)}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-bottom:var(--s-7)}
.hero__meta{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6);padding-top:var(--s-4);
  border-top:1px solid var(--line)}
@media (max-width:1023px){.hero__txt{grid-column:1 / span 12}.hero__art{grid-column:1 / span 12;margin-top:var(--s-7)}}

/* ---- INTESTAZIONE DI PAGINA INTERNA ----------------------------------- */
.phead{padding-block:clamp(48px,6vw,96px) var(--sp-block);border-bottom:1px solid var(--line)}
.phead h1{max-width:18ch;margin-block:var(--s-4)}
.phead .lead{color:var(--muted)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:var(--fs-reg);
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.crumbs a{text-decoration:none;color:var(--muted);transition:color var(--t-micro) var(--ease-out)}
.crumbs a:hover{color:var(--brass-ink)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--line)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* ---- BLOCCO DI SEZIONE ------------------------------------------------ */
.shead{display:grid;gap:var(--s-4);margin-bottom:var(--sp-block);max-width:70ch}
.shead__k{display:flex;align-items:center;gap:12px}
.shead__k .ord{flex:none}
.shead__k::after{content:"";flex:1;height:1px;background:var(--line)}
.section--ink .shead__k::after{background:color-mix(in srgb,var(--chalk) 20%,transparent)}

/* ---- SPLIT (testo + colonna) ------------------------------------------ */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--col-gap)}
.split__a{grid-column:1 / span 5}
.split__b{grid-column:7 / span 6}
@media (max-width:900px){.split__a,.split__b{grid-column:1 / span 12}}

/* ---- CONTATTI --------------------------------------------------------- */
.contact{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--col-gap);align-items:start}
.contact__form{grid-column:1 / span 7}
.contact__info{grid-column:9 / span 4}
@media (max-width:900px){.contact__form,.contact__info{grid-column:1 / span 12}}
.contact__info{border-top:1px solid var(--brass);padding-top:var(--s-5)}
.cinfo{display:grid;gap:var(--s-5)}
.cinfo__h{font-size:var(--fs-reg);letter-spacing:.10em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.cinfo__v{font-size:var(--fs-lead);font-family:Literata,"Literata Fallback",Georgia,serif}
.cinfo__v a{text-decoration:none;color:var(--text);border-bottom:1px solid var(--brass);
  transition:color var(--t-micro) var(--ease-out)}
.cinfo__v a:hover{color:var(--brass-ink)}
.cinfo address{font-style:normal;line-height:1.7;color:var(--muted)}

/* ---- PAGINE LEGALI ---------------------------------------------------- */
.legal{max-width:68ch}
.legal h2{font-size:var(--fs-h3);margin-top:var(--s-8);margin-bottom:var(--s-4)}
.legal h2:first-child{margin-top:0}
.legal p,.legal li{font-size:var(--fs-ui);line-height:1.75;color:var(--text);max-width:68ch}
.legal p+p{margin-top:1em}
.legal .ticks{margin-top:var(--s-4)}
.toc{border:1px solid var(--line);padding:var(--s-5);margin-bottom:var(--s-8);background:var(--paper-raised)}
.toc ol{counter-reset:t;display:grid;gap:8px}
.toc li{counter-increment:t;font-size:var(--fs-ui)}
.toc li::before{content:counter(t) ". ";color:var(--brass-ink);font-variant-numeric:tabular-nums}
.toc a{text-decoration:none}
.toc a:hover{color:var(--brass-ink)}

/* ---- 404 -------------------------------------------------------------- */
.e404{min-height:60vh;display:grid;place-items:center;text-align:center;padding-block:var(--sp-section)}
.e404 .fact__n{font-size:clamp(4rem,12vw,9rem);color:var(--brass);opacity:.5}

/* ---- CTA FINALE ------------------------------------------------------- */
.cta-end{text-align:center}
.cta-end h2{max-width:20ch;margin-inline:auto;margin-bottom:var(--s-5)}
.cta-end .lead{margin-inline:auto;color:var(--muted-inv);margin-bottom:var(--s-6)}
.cta-end .hero__cta{justify-content:center}
