:root{
  --paper:#F3F0E9; --paper-alt:#EAE5DA; --ink:#15120E; --ink-2:#221E18;
  --soft:#3C362D; --muted:#6E675B; --faint:#948C7D;
  --accent:#C23A1C; --accent-ink:#E8674A;
  --rule:rgba(21,18,14,.17); --rule-light:rgba(243,240,233,.19);
  --ffd:'Instrument Serif',Georgia,'Times New Roman',serif;
  --ffb:'Inter',system-ui,-apple-system,sans-serif;
  --ffm:'IBM Plex Mono',ui-monospace,monospace;
  --maxw:1240px; --gut:clamp(22px,5vw,76px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ffb);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto}
a{color:inherit}
::selection{background:var(--accent);color:var(--paper)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:200;background:var(--ink);color:var(--paper);padding:10px 14px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* paper grain — keeps flat colour from looking digital */
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E")}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);position:relative;z-index:2}
.wrap-mid{max-width:760px}

/* ---------- progress ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:90}
.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .12s linear}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;border-bottom:1px solid transparent;transition:background .25s,border-color .25s}
.nav.stuck{background:rgba(243,240,233,.92);backdrop-filter:blur(8px);border-bottom-color:var(--rule)}
.nav-in{display:flex;align-items:center;gap:30px;height:66px;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.brand{font-family:var(--ffd);font-size:1.4rem;letter-spacing:-.01em;text-decoration:none;flex:0 0 auto;line-height:1}
.brand-dot{color:var(--accent)}
.nav-links{display:flex;gap:28px;margin-left:auto;font:500 .82rem/1 var(--ffb)}
.nav-links a{text-decoration:none;color:var(--soft);padding-bottom:3px;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.nav-links a:hover,.nav-links a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.nav-toggle{display:none;flex-direction:column;gap:5px;width:38px;height:38px;align-items:center;justify-content:center;
  background:none;border:1px solid var(--rule);cursor:pointer;margin-left:auto;border-radius:2px}
.nav-toggle span{display:block;width:17px;height:1.5px;background:var(--ink);transition:transform .25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
.nav-drawer[hidden]{display:none}
.nav-drawer{display:flex;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--rule);padding:6px var(--gut) 24px}
.nav-drawer a:not(.btn){padding:15px 0;text-decoration:none;color:var(--soft);border-bottom:1px solid var(--rule);font-size:1.05rem}
.nav-drawer .btn{margin-top:20px}

/* ---------- dots ---------- */
.dots{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:70;display:flex;flex-direction:column;gap:3px;align-items:flex-end}
.dots button{display:flex;align-items:center;gap:10px;background:none;border:0;cursor:pointer;padding:5px 0;
  color:var(--faint);font:500 .64rem/1 var(--ffm);letter-spacing:.1em;text-transform:uppercase}
.dots .bead{width:16px;height:1px;background:currentColor;transition:width .25s,background .25s;flex:0 0 auto}
.dots .lbl{opacity:0;transition:opacity .25s;white-space:nowrap}
.dots button:hover .lbl{opacity:1}
.dots button[aria-current="true"]{color:var(--accent)}
.dots button[aria-current="true"] .bead{width:30px}
.dots button[aria-current="true"] .lbl{opacity:1}
.s-ink-active .dots button{color:rgba(243,240,233,.55)}
.s-ink-active .dots button[aria-current="true"]{color:var(--accent-ink)}

/* ---------- slides ---------- */
.slide{min-height:auto;display:flex;align-items:center;padding:clamp(84px,9.5vh,112px) 0 clamp(66px,7.5vh,92px);position:relative}
#s-hero{min-height:100svh}
.s-paper{background:var(--paper)}
.s-alt{background:var(--paper-alt)}
.s-ink{background:var(--ink);color:var(--paper)}
.s-ink .kicker span{color:var(--accent-ink)}
.s-ink .kicker{color:rgba(243,240,233,.55)}

/* ---------- type ---------- */
h1,h2,h3,h4{margin:0;font-weight:400}
h1,.h-big{font-family:var(--ffd);font-size:clamp(2.7rem,7.6vw,6.1rem);line-height:.98;letter-spacing:-.018em}
.h-sec{font-family:var(--ffd);font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.03;letter-spacing:-.015em;max-width:17ch}
h1 em,.h-big em{font-style:italic;color:var(--accent)}
.s-ink .h-big em{color:var(--accent-ink)}
.kicker{display:flex;align-items:center;gap:12px;font:500 .72rem/1 var(--ffm);letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.kicker span{color:var(--accent);font-weight:500}
.kicker::after{content:"";flex:1;height:1px;background:currentColor;opacity:.3;max-width:90px}
.eyebrow{font:500 .72rem/1 var(--ffm);letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin:0}
.lede{font-size:clamp(1.02rem,1.3vw,1.16rem);color:var(--soft);margin:0;max-width:44ch}
.sec-sub{color:var(--muted);font-size:1.02rem;max-width:56ch;margin:20px 0 0}

/* ---------- hero ---------- */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-areas:"eyebrow eyebrow" "title side" "foot foot";gap:34px 60px;align-items:end}
.hero-grid .eyebrow{grid-area:eyebrow;margin-bottom:6px}
.hero-grid h1{grid-area:title}
.hero-side{grid-area:side;padding-bottom:10px}
.hero-cta{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:28px}
.hero-foot{grid-area:foot;display:flex;align-items:center;gap:14px;margin:36px 0 0;
  font:500 .68rem/1 var(--ffm);letter-spacing:.17em;text-transform:uppercase;color:var(--faint)}
.hero-foot .rule{display:block;width:56px;height:1px;background:currentColor;animation:slide 2.6s ease-in-out infinite}
@keyframes slide{0%,100%{transform:translateX(0);opacity:.45}50%{transform:translateX(10px);opacity:1}}

/* ---------- buttons / links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);font:500 .9rem/1 var(--ffb);text-decoration:none;cursor:pointer;border-radius:2px;
  transition:background .2s,color .2s}
.btn:hover{background:var(--accent);border-color:var(--accent)}
.btn-lg{padding:17px 32px;font-size:.98rem}
.btn-sm{padding:10px 18px;font-size:.82rem}
.btn-full{width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font:500 .88rem/1 var(--ffb);text-decoration:none;
  color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:4px;transition:gap .2s,color .2s}
.link-arrow::after{content:"→";font-size:1.05em;transition:transform .2s}
.link-arrow:hover{color:var(--accent)}
.link-arrow:hover::after{transform:translateX(4px)}
.link-light{color:var(--paper);border-bottom-color:var(--accent-ink)}
.link-light:hover{color:var(--accent-ink)}

/* ---------- split (two services) ---------- */
.s-split{padding:0;min-height:86svh;display:flex;flex-direction:column;align-items:stretch}
.split{flex:1;display:grid;grid-template-columns:1fr 1fr;min-height:0}
.split-half{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  padding:116px clamp(26px,4.4vw,62px) 62px;position:relative;z-index:2}
.half-paper{background:var(--paper)}
.half-ink{background:var(--ink);color:var(--paper)}
.half-ink .split-sub{color:var(--accent-ink)}
.half-ink p{color:rgba(243,240,233,.82)}
.num-xl{font-family:var(--ffd);font-size:clamp(3.4rem,6vw,5.4rem);line-height:.8;margin:0 0 20px;color:var(--accent);opacity:.9}
.half-ink .num-xl{color:var(--accent-ink)}
.split-half h2{font-family:var(--ffd);font-size:clamp(2.1rem,4vw,3.2rem);line-height:1;letter-spacing:-.015em;margin:0}
.split-sub{font:500 .82rem/1 var(--ffm);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:16px 0 22px}
.split-half p:not(.split-sub):not(.num-xl){color:var(--soft);margin:0 0 26px;max-width:40ch;font-size:1rem}
.split-note{margin:0;padding:24px var(--gut);text-align:center;border-top:1px solid var(--rule);
  background:var(--paper);color:var(--muted);font-size:.95rem;position:relative;z-index:2}
.split-note strong{color:var(--ink);font-weight:600}

/* ---------- deliverables ---------- */
.deliver{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(24px,3.4vw,52px);margin-top:42px;border-top:1px solid var(--rule)}
.s-ink .deliver,.s-ink .d-item{border-color:var(--rule-light)}
.d-item{padding:26px 0 28px;border-bottom:1px solid var(--rule)}
.d-item h3{font-size:1.04rem;font-weight:600;letter-spacing:-.005em;margin:0 0 9px;font-family:var(--ffb)}
.d-item p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.6}
.s-ink .d-item p{color:rgba(243,240,233,.72)}

/* ---------- versus ---------- */
.versus{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,44px);margin-top:42px}
.v-col{padding-top:20px;border-top:2px solid var(--rule)}
.v-col h3{font-size:.96rem;font-weight:600;font-family:var(--ffb);margin:0 0 10px}
.v-col p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.62}
.v-col-accent{border-top-color:var(--accent)}
.v-col-accent h3{color:var(--accent)}
.v-col-accent p{color:var(--soft)}

/* ---------- steps ---------- */
.steps{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.6vw,40px)}
.steps li{border-top:1px solid var(--rule);padding-top:20px}
.step-n{display:block;font-family:var(--ffd);font-size:2.6rem;line-height:1;color:var(--accent);margin-bottom:14px}
.steps h3{font-size:1.02rem;font-weight:600;font-family:var(--ffb);margin:0 0 9px}
.steps p{margin:0 0 12px;color:var(--muted);font-size:.9rem;line-height:1.58}
.step-get{font:500 .78rem/1.5 var(--ffm);color:var(--soft);margin:0}

/* ---------- proof ---------- */
.proof-sub{color:rgba(243,240,233,.76);font-size:1rem;max-width:58ch;margin:26px 0 0}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,44px);margin:40px 0 0}
.metrics>div{border-top:1px solid var(--rule-light);padding-top:18px}
.metrics dt{font:500 .7rem/1 var(--ffm);letter-spacing:.14em;text-transform:uppercase;color:rgba(243,240,233,.5);margin-bottom:12px}
.metrics dd{margin:0;font-family:var(--ffd);font-size:clamp(1.9rem,3.2vw,2.7rem);line-height:1;color:var(--paper)}
.metrics .m-note{font-family:var(--ffb);font-size:.76rem;color:rgba(243,240,233,.42);margin-top:9px;line-height:1.45}
.proof-foot{margin:36px 0 0;color:rgba(243,240,233,.7);font-size:.92rem;max-width:52ch}

/* ---------- faq ---------- */
.faq{margin-top:34px;border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:20px 34px 20px 0;position:relative;
  font-size:1.04rem;font-weight:500;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:19px;font-family:var(--ffm);font-size:1.15rem;color:var(--accent);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--accent)}
.faq p{margin:0 0 22px;color:var(--muted);font-size:.95rem;max-width:62ch;line-height:1.65}

/* ---------- form ---------- */
.form{margin-top:32px;display:flex;flex-direction:column;gap:16px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:block;font:500 .78rem/1.4 var(--ffm);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.opt{text-transform:none;letter-spacing:0;color:var(--faint);font-family:var(--ffb)}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:8px;font:400 1rem/1.5 var(--ffb);color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--rule);padding:9px 2px;border-radius:0;transition:border-color .2s}
.form textarea{resize:vertical;min-height:70px}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-bottom-color:var(--accent);border-bottom-width:2px;padding-bottom:8px}
.form input[aria-invalid="true"],.form textarea[aria-invalid="true"]{border-bottom-color:var(--accent);border-bottom-width:2px;padding-bottom:8px}
.f-err{display:block;margin-top:7px;color:var(--accent);font:500 .78rem/1.4 var(--ffb);text-transform:none;letter-spacing:0}
.f-err::before{content:"\2191  ";font-family:var(--ffm)}
.form select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 13px) 60%,calc(100% - 8px) 60%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}
.form .btn{margin-top:10px}
.form-msg{margin:0;font-size:.92rem;min-height:1.2em}
.form-msg.ok{color:#2E6B43}
.form-msg.err{color:var(--accent)}
.form-alt{margin:0;color:var(--muted);font-size:.9rem}
.form-alt a{color:var(--ink);border-bottom:1px solid var(--accent);text-decoration:none}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:var(--paper);position:relative;z-index:2}
.foot-in{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr 1.2fr;gap:34px;padding-top:62px;padding-bottom:46px}
.foot-logo{font-family:var(--ffd);font-size:1.7rem;margin:0}
.foot-line{color:rgba(243,240,233,.6);margin:14px 0 0;max-width:26ch;font-size:.94rem}
.foot-nav{display:flex;flex-direction:column;gap:10px}
.foot h4{font:500 .68rem/1 var(--ffm);letter-spacing:.16em;text-transform:uppercase;color:rgba(243,240,233,.42);margin:0 0 6px}
.foot-nav a{color:rgba(243,240,233,.78);text-decoration:none;font-size:.92rem;transition:color .2s}
.foot-nav a:hover{color:var(--accent-ink)}
.foot-nav p{margin:0;color:rgba(243,240,233,.78);font-size:.92rem}
.foot-bot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px;padding-bottom:32px;
  border-top:1px solid var(--rule-light);color:rgba(243,240,233,.42);font-size:.8rem}

/* ---------- reveal ---------- */
.slide-in>*{opacity:0;transform:translateY(14px);transition:opacity .72s cubic-bezier(.2,.8,.3,1),transform .72s cubic-bezier(.2,.8,.3,1)}
.slide.vis .slide-in>*{opacity:1;transform:none}
.slide.vis .slide-in>*:nth-child(2){transition-delay:.08s}
.slide.vis .slide-in>*:nth-child(3){transition-delay:.15s}
.slide.vis .slide-in>*:nth-child(4){transition-delay:.22s}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .deliver{grid-template-columns:repeat(2,1fr)}
  .steps,.metrics{grid-template-columns:repeat(2,1fr);row-gap:30px}
  .versus{grid-template-columns:1fr;gap:0}
  .v-col{padding:20px 0 22px}
  .dots{display:none}
}
@media (max-width:900px){
  .nav-links,.nav .btn-sm{display:none}
  .nav-toggle{display:flex}
  .nav{background:rgba(243,240,233,.94);border-bottom-color:var(--rule)}
  .slide{padding:76px 0 60px;align-items:flex-start}
  #s-hero{min-height:100svh;align-items:center}
  .hero-grid{grid-template-columns:1fr;grid-template-areas:"eyebrow" "title" "side" "foot";gap:26px}
  .hero-side{padding-bottom:0}
  .split{grid-template-columns:1fr}
  .split-half{padding:74px var(--gut) 60px}
  .half-paper{padding-top:108px}
  .deliver{grid-template-columns:1fr;margin-top:38px}
  .steps{grid-template-columns:1fr;margin-top:34px}
  .f-row{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  h1 br,.h-big br{display:none}
  .metrics{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr;gap:30px}
  .foot-bot{flex-direction:column;gap:8px}
  .hero-cta .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .slide-in>*{opacity:1;transform:none}
}

/* ---------- document pages (privacy, 404) ---------- */
.doc{padding:150px 0 100px;min-height:68svh}
.doc h1{font-family:var(--ffd);font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.02;letter-spacing:-.015em;margin:0 0 12px}
.doc .updated{font:400 .74rem/1 var(--ffm);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0 0 46px}
.doc h2{font-family:var(--ffb);font-size:1.02rem;font-weight:600;margin:38px 0 10px}
.doc p,.doc li{color:var(--muted);font-size:.96rem;line-height:1.72}
.doc ul{padding-left:20px}
.doc a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent)}
.doc strong{color:var(--ink);font-weight:600}
.err{min-height:84svh;display:flex;align-items:center}
.err .code{font-family:var(--ffd);font-size:clamp(5rem,15vw,9rem);line-height:.9;color:var(--accent);margin:0 0 14px}
.err h1{font-family:var(--ffd);font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.04;margin:0 0 14px;font-weight:400}
.err p{color:var(--muted);margin:0 0 32px;font-size:1.02rem;max-width:44ch}

/* ---------- team ---------- */
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(26px,4vw,64px);margin-top:38px;max-width:900px}
.t-card{display:grid;grid-template-columns:132px 1fr;gap:26px;align-items:start}
.t-portrait{aspect-ratio:4/5;background:var(--paper-alt);border:1px solid var(--rule);
  display:flex;align-items:flex-end;justify-content:flex-start;padding:14px;overflow:hidden}
.t-portrait span{font-family:var(--ffd);font-size:2.2rem;line-height:1;color:var(--accent);opacity:.85}
.t-portrait img{width:100%;height:100%;object-fit:cover;display:block;margin:-14px}
.t-body{min-width:0}
.t-card h3{font-family:var(--ffd);font-size:1.65rem;font-weight:400;line-height:1.08;margin:0 0 4px;letter-spacing:-.01em}
.t-role{font:500 .7rem/1 var(--ffm);letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}
.t-card p:not(.t-role){margin:0;color:var(--muted);font-size:.92rem;line-height:1.62}
.team-note{margin:32px 0 0;font-size:.92rem;color:var(--soft);border-top:1px solid var(--rule);padding-top:20px;max-width:900px}
@media (max-width:1080px){.team{grid-template-columns:1fr;gap:30px;max-width:620px}}
@media (max-width:560px){.t-card{grid-template-columns:96px 1fr;gap:18px}.t-portrait span{font-size:1.6rem}}

.ph{color:var(--faint);border-bottom:1px dashed rgba(21,18,14,.3);font-style:italic}
.foot .ph{color:rgba(243,240,233,.5);border-bottom-color:rgba(243,240,233,.3)}
.foot-sm{font-size:.82rem;color:rgba(243,240,233,.55);line-height:1.5;margin:0}
@media (max-width:1080px){.foot-in{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:900px){.foot-in{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-in{grid-template-columns:1fr}}

.addr{cursor:help;outline:none}
.addr .addr-short{border-bottom:1px dotted rgba(243,240,233,.4);transition:color .2s}
.addr .addr-full{display:block;max-height:0;opacity:0;overflow:hidden;
  transition:max-height .3s cubic-bezier(.2,.8,.3,1),opacity .25s,margin-top .3s;margin-top:0}
.addr:hover .addr-short,.addr:focus .addr-short,.addr:focus-within .addr-short{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.addr:hover .addr-full,.addr:focus .addr-full,.addr:focus-within .addr-full{max-height:8em;opacity:1;margin-top:7px}

/* ================= pagine interne (servizi, blog) ================= */
.page{padding:clamp(104px,12vh,150px) 0 0}
.crumb{font:500 .72rem/1 var(--ffm);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0 0 22px}
.crumb a{color:var(--muted);text-decoration:none;border-bottom:1px solid transparent}
.crumb a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.crumb span{margin:0 8px;opacity:.5}
.page h1{font-family:var(--ffd);font-size:clamp(2.4rem,5.6vw,4.2rem);line-height:1;letter-spacing:-.02em;margin:0;max-width:16ch}
.page h1 em{font-style:italic;color:var(--accent)}
.page-lede{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.6;color:var(--soft);max-width:58ch;margin:26px 0 0}
.page-head{padding-bottom:clamp(44px,6vh,72px);border-bottom:1px solid var(--rule)}

/* corpo del testo */
.prose{max-width:none}
.prose section{padding:clamp(42px,5.5vh,66px) 0;border-bottom:1px solid var(--rule)}
.prose section:last-child{border-bottom:0}
.prose h2{font-family:var(--ffd);font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.08;letter-spacing:-.015em;margin:0 0 20px;max-width:20ch}
.prose h3{font-family:var(--ffb);font-size:1.04rem;font-weight:600;margin:28px 0 8px}
.prose p{color:var(--muted);font-size:1rem;line-height:1.72;margin:0 0 16px;max-width:66ch}
.prose p strong{color:var(--ink);font-weight:600}
.prose ul,.prose ol{color:var(--muted);font-size:1rem;line-height:1.72;max-width:66ch;padding-left:22px;margin:0 0 16px}
.prose li{margin-bottom:9px}
.prose li strong{color:var(--ink);font-weight:600}
.prose a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent)}
.prose a:hover{color:var(--accent)}
.prose .lead{font-size:1.1rem;color:var(--soft);max-width:60ch}
.prose blockquote{margin:26px 0;padding:4px 0 4px 22px;border-left:2px solid var(--accent);
  font-family:var(--ffd);font-size:1.35rem;line-height:1.35;color:var(--ink);max-width:40ch}
.prose blockquote p{color:inherit;font-size:inherit;margin:0;max-width:none}

/* griglia a due colonne con filetti, per gli elenchi "cosa include" */
.cols2{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(26px,3.4vw,56px);border-top:1px solid var(--rule);margin-top:26px}
.cols2 .item{padding:22px 0 24px;border-bottom:1px solid var(--rule)}
.cols2 .item h3{margin:0 0 8px}
.cols2 .item p{margin:0;font-size:.93rem}

/* tabella semplice (fasce di prezzo, confronti) */
.tbl{width:100%;border-collapse:collapse;margin:24px 0;font-size:.94rem}
.tbl th,.tbl td{text-align:left;padding:13px 14px 13px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.tbl th{font:500 .72rem/1 var(--ffm);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-bottom:10px}
.tbl td{color:var(--muted)}
.tbl td:first-child{color:var(--ink);font-weight:500;white-space:nowrap;padding-right:28px}

/* riquadro richiamo */
.note{background:var(--paper-alt);border-left:2px solid var(--accent);padding:20px 22px;margin:26px 0;max-width:66ch}
.note p{margin:0;color:var(--soft);font-size:.95rem}
.note p + p{margin-top:10px}

/* chiusura con invito all'azione */
.page-cta{background:var(--ink);color:var(--paper);padding:clamp(52px,7vh,84px) 0;margin-top:clamp(40px,6vh,70px)}
.page-cta h2{font-family:var(--ffd);font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.06;margin:0 0 14px;max-width:18ch}
.page-cta p{color:rgba(243,240,233,.7);margin:0 0 28px;max-width:52ch;font-size:1rem}
.page-cta .btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.page-cta .btn:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}

/* elenco articoli */
.posts{display:grid;gap:0;margin-top:10px}
.post-row{display:grid;grid-template-columns:118px 1fr;gap:28px;padding:26px 0;border-bottom:1px solid var(--rule);
  text-decoration:none;transition:background .2s}
.post-row:hover{background:rgba(21,18,14,.028)}
.post-row time{font:500 .72rem/1.6 var(--ffm);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.post-row h2{font-family:var(--ffd);font-size:clamp(1.3rem,2.2vw,1.8rem);font-weight:400;line-height:1.14;margin:0 0 7px;letter-spacing:-.01em}
.post-row p{margin:0;color:var(--muted);font-size:.94rem;max-width:62ch}
.post-meta{font:500 .72rem/1 var(--ffm);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:18px 0 0}

@media (max-width:900px){
  .cols2{grid-template-columns:1fr;margin-top:18px}
  .post-row{grid-template-columns:1fr;gap:8px;padding:22px 0}
  .page{padding-top:92px}
  .tbl td:first-child{white-space:normal}
}

/* ---------- pannello richieste ---------- */
.leads{display:grid;gap:0;margin-top:14px;border-top:1px solid var(--rule)}
.lead{display:grid;grid-template-columns:150px 1fr;gap:28px;padding:24px 0;border-bottom:1px solid var(--rule)}
.lead-new{background:rgba(194,58,28,.04);box-shadow:inset 2px 0 0 var(--accent);padding-left:16px;margin-left:-16px}
.lead-side{display:flex;flex-direction:column;gap:5px}
.lead-side time{font:500 .76rem/1.4 var(--ffm);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.lead-time{font:400 .72rem/1 var(--ffm);color:var(--faint)}
.lead-flag{display:inline-block;align-self:flex-start;margin-top:4px;padding:3px 8px;border-radius:2px;
  background:var(--accent);color:var(--paper);font:500 .62rem/1.5 var(--ffm);letter-spacing:.1em;text-transform:uppercase}
.lead-body h2{font-family:var(--ffd);font-size:1.5rem;font-weight:400;line-height:1.1;margin:0 0 6px;letter-spacing:-.01em}
.lead-co{color:var(--muted);font-size:.78em}
.lead-contact{margin:0 0 10px;font-size:.93rem}
.lead-contact a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent)}
.lead-contact a:hover{color:var(--accent)}
.lead-site{color:var(--muted);font-family:var(--ffm);font-size:.86rem}
.lead-topic{display:inline-block;margin:0 0 12px;padding:4px 10px;border:1px solid var(--rule);
  font:500 .72rem/1.5 var(--ffm);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.lead-msg{margin:0 0 12px;color:var(--soft);font-size:.97rem;line-height:1.65;max-width:68ch;
  padding-left:14px;border-left:2px solid var(--rule)}
.lead-meta{margin:0;font:400 .72rem/1 var(--ffm);color:var(--faint)}
@media (max-width:760px){
  .lead{grid-template-columns:1fr;gap:10px}
  .lead-side{flex-direction:row;align-items:center;gap:12px}
}

/* ---------- statistiche nel pannello ---------- */
.stats{margin-top:64px;padding-top:40px;border-top:1px solid var(--rule)}
.stats-h{font-family:var(--ffd);font-size:clamp(1.7rem,3vw,2.4rem);font-weight:400;letter-spacing:-.015em;margin:0 0 26px}
.stats-h span{font-family:var(--ffm);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-left:12px;vertical-align:middle}
.stats-empty,.stats-note{color:var(--muted);font-size:.9rem;max-width:72ch}
.stats-note{margin:34px 0 0;padding-top:16px;border-top:1px solid var(--rule);color:var(--faint);font-size:.82rem;line-height:1.6}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.6vw,38px);margin-bottom:38px}
.tile{display:flex;flex-direction:column;gap:6px;padding-top:16px;border-top:2px solid var(--rule)}
.tile-k{font:500 .68rem/1 var(--ffm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tile-v{font-family:var(--ffd);font-size:clamp(1.9rem,3.2vw,2.6rem);line-height:1;color:var(--ink)}
.tile-v-sm{font-size:clamp(1.1rem,1.8vw,1.5rem);word-break:break-word}
.tile-n{font-size:.76rem;color:var(--faint)}

/* grafico: una sola serie, barre sottili ancorate alla base, assi discreti */
.chart{margin:0 0 30px}
.chart figcaption{font:500 .68rem/1 var(--ffm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.bars{display:flex;align-items:flex-end;gap:3px;height:150px;padding-top:22px;
  border-bottom:1px solid var(--rule);background:linear-gradient(var(--rule),var(--rule)) 0 50%/100% 1px no-repeat}
.bar{position:relative;flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center}
.bar-fill{display:block;width:100%;max-width:18px;background:var(--accent);border-radius:3px 3px 0 0;transition:opacity .15s}
.bar:hover .bar-fill{opacity:.72}
.bar-num{position:absolute;top:-4px;left:50%;transform:translate(-50%,-100%);font:500 .68rem/1 var(--ffm);color:var(--accent)}
.bar-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:var(--ink);color:var(--paper);padding:6px 9px;border-radius:3px;white-space:nowrap;
  font:500 .72rem/1 var(--ffm);opacity:0;pointer-events:none;transition:opacity .15s;z-index:5}
.bar:hover .bar-tip{opacity:1}
.axis{display:flex;justify-content:space-between;margin-top:8px;font:400 .68rem/1 var(--ffm);
  letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.table-view{margin:0 0 34px}
.table-view summary{cursor:pointer;font:500 .72rem/1 var(--ffm);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 0}
.table-view summary:hover{color:var(--accent)}
.table-view .tbl{max-width:380px}

.ranks{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.8vw,40px)}
.rank h3{font:500 .68rem/1 var(--ffm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--rule)}
.rank-empty{color:var(--faint);font-size:.84rem;margin:0}
.rank-row{position:relative;display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding:7px 8px 7px 0;font-size:.86rem}
.rank-bar{position:absolute;left:-6px;top:2px;bottom:2px;background:rgba(194,58,28,.11);border-radius:2px;z-index:0}
.rank-l{position:relative;z-index:1;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-n{position:relative;z-index:1;color:var(--muted);font-family:var(--ffm);font-size:.8rem;flex:0 0 auto}

@media (max-width:1000px){ .tiles,.ranks{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .tiles{grid-template-columns:1fr 1fr} .ranks{grid-template-columns:1fr} .bars{height:120px} }
