:root{
  --navy-deep:#10243E;
  --navy-dark:#0A1830;
  --gold:#C9A84C;
  --gold-soft:#E2CD8F;
  --paper:#F7F5F0;
  --ink:#1A2128;
  --slate:#5C6B7A;
  --line:rgba(201,168,76,0.28);
  --maxw:1120px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Fraunces', serif; font-weight:600; margin:0; letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono', monospace;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--gold); margin:0 0 14px 0; display:block;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:2px;}

/* ---------- NAV ---------- */
header{
  position:sticky; top:0; z-index:50; background:rgba(16,36,62,0.94);
  backdrop-filter:blur(6px); border-bottom:1px solid var(--line);
}
nav{
  display:flex; align-items:center; justify-content:space-between;
  max-width:var(--maxw); margin:0 auto; padding:14px 28px; color:var(--paper);
}
.brand{display:flex; align-items:center; gap:10px;}
.brand .mark{
  width:34px; height:34px; border:1px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif; font-weight:600; color:var(--gold); font-size:0.95rem; flex-shrink:0;
}
.brand .name{font-family:'Fraunces', serif; font-size:1.02rem; line-height:1.1;}
.brand .name small{display:block; font-family:'IBM Plex Mono', monospace; font-size:0.62rem; letter-spacing:0.08em; color:var(--gold-soft); text-transform:uppercase; margin-top:2px;}
.navlinks{display:flex; align-items:center; gap:28px; font-size:0.9rem;}
.navlinks a{opacity:0.88; transition:opacity .15s;}
.navlinks a:hover{opacity:1; color:var(--gold-soft);}
.navlinks a.active{color:var(--gold-soft); opacity:1;}
.cta-pill{
  background:var(--gold); color:var(--navy-dark); padding:9px 18px; border-radius:30px;
  font-size:0.84rem; font-weight:600; white-space:nowrap;
}
.cta-pill:hover{background:var(--gold-soft);}
.navtoggle{display:none; background:none; border:1px solid var(--gold); color:var(--gold); width:38px; height:38px; border-radius:8px; font-size:1.1rem; cursor:pointer;}
@media (max-width:760px){
  .navlinks{position:fixed; inset:60px 0 0 0; background:var(--navy-dark); flex-direction:column; justify-content:flex-start; padding:34px 28px; gap:24px; transform:translateY(-110%); transition:transform .25s ease; font-size:1.05rem;}
  .navlinks.open{transform:translateY(0);}
  .navtoggle{display:block;}
}

/* ---------- PAGE HERO (banner per ogni pagina interna) ---------- */
.page-hero{background:linear-gradient(165deg, var(--navy-deep), var(--navy-dark) 78%); color:#fff; padding:64px 0 58px;}
.page-hero h1{font-size:clamp(1.9rem, 3.6vw, 2.7rem); line-height:1.16; max-width:760px;}
.page-hero p.lead{max-width:600px; color:#C9D2DE; font-size:1.02rem; margin:18px 0 0;}

/* ---------- HOME HERO ---------- */
.hero{background:linear-gradient(165deg, var(--navy-deep), var(--navy-dark) 78%); color:var(--paper); padding:96px 0 84px;}
.hero h1{font-size:clamp(2.1rem, 4.4vw, 3.3rem); line-height:1.12; max-width:760px; color:#fff;}
.hero h1 em{color:var(--gold-soft); font-style:normal;}
.hero p.lead{max-width:580px; color:#C9D2DE; font-size:1.06rem; margin:22px 0 34px;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:54px;}
.btn-gold{background:var(--gold); color:var(--navy-dark); padding:13px 22px; border-radius:8px; font-weight:600; font-size:0.94rem; display:inline-block;}
.btn-gold:hover{background:var(--gold-soft);}
.btn-ghost{border:1px solid rgba(255,255,255,0.35); color:#fff; padding:13px 22px; border-radius:8px; font-weight:500; font-size:0.94rem; display:inline-block;}
.btn-ghost:hover{border-color:var(--gold-soft); color:var(--gold-soft);}

.mini-scale{display:flex; flex-wrap:wrap; gap:18px; align-items:flex-end; max-width:640px;}
.mini-scale .cap{width:100%; font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:8px;}
.mini-bar{flex:1; min-width:120px;}
.mini-bar .track{height:6px; background:rgba(255,255,255,0.14); border-radius:4px; overflow:hidden;}
.mini-bar .fill{height:100%; background:var(--gold); border-radius:4px; width:0%; transition:width 1.1s ease;}
.mini-bar .lab{font-size:0.66rem; margin-top:7px; color:#AEB9C6; font-family:'IBM Plex Mono', monospace; letter-spacing:0.03em;}

/* ---------- SECTION shells ---------- */
section{padding:80px 0;}
.section-dark{background:var(--navy-deep); color:var(--paper);}
.section-dark .eyebrow{color:var(--gold-soft);}
.section-darker{background:var(--navy-dark); color:var(--paper);}
h2.head{font-size:clamp(1.6rem, 2.8vw, 2.2rem); max-width:680px; margin-bottom:18px;}
p.sub{max-width:640px; color:var(--slate); font-size:1.02rem;}
.section-dark p.sub, .section-darker p.sub{color:#B9C3CF;}

.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- CARDS — home hub links ---------- */
.hub-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:42px;}
@media (max-width:980px){.hub-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.hub-grid{grid-template-columns:1fr;}}
.hub-card{background:#fff; border:1px solid #E4DFD2; border-radius:14px; padding:24px 20px; display:flex; flex-direction:column; gap:10px; transition:border-color .15s, transform .15s;}
.hub-card:hover{border-color:var(--gold); transform:translateY(-2px);}
.hub-card .tagline{font-family:'IBM Plex Mono', monospace; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold);}
.hub-card h3{font-size:1.02rem;}
.hub-card p{color:var(--slate); font-size:0.88rem; flex:1; margin:0;}
.hub-card .go{font-size:0.84rem; font-weight:600; color:var(--navy-deep);}
.hub-card:hover .go{color:var(--gold);}

/* ---------- CHI SONO ---------- */
.chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:28px;}
.chip{
  border:1px solid var(--line); padding:8px 14px; border-radius:30px;
  font-family:'IBM Plex Mono', monospace; font-size:0.74rem; color:var(--navy-deep);
  background:#fff;
}
.bio-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:50px; margin-top:34px;}
@media (max-width:760px){.bio-grid{grid-template-columns:1fr;}}
.bio-grid p{color:var(--ink); max-width:520px;}
.fact-card{border-left:2px solid var(--gold); padding-left:18px;}
.fact-card div{font-size:0.78rem; color:var(--slate); margin-bottom:5px; font-family:'IBM Plex Mono', monospace; letter-spacing:0.04em;}
.fact-card h3{font-size:1.02rem; margin-bottom:18px;}

/* ---------- METODO / scala ---------- */
.gxe-diagram{display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:36px 0 8px; font-family:'IBM Plex Mono', monospace; font-size:0.84rem;}
.gxe-box{border:1px solid var(--line); border-radius:10px; padding:14px 18px; color:var(--gold-soft); background:rgba(255,255,255,0.03);}
.gxe-arrow{color:var(--gold); font-size:1.1rem;}
.scale{margin-top:54px; border-top:1px solid var(--line);}
.scale-row{display:grid; grid-template-columns:230px 1fr 1.4fr; gap:26px; padding:26px 0; border-bottom:1px solid var(--line); align-items:center;}
@media (max-width:760px){.scale-row{grid-template-columns:1fr; gap:10px;}}
.scale-row .tag{font-family:'IBM Plex Mono', monospace; font-size:0.86rem; letter-spacing:0.03em; color:var(--gold-soft);}
.scale-row .bar-track{height:9px; background:rgba(255,255,255,0.12); border-radius:5px; overflow:hidden;}
.scale-row .bar-fill{height:100%; border-radius:5px; width:0%; transition:width 1.2s ease;}
.scale-row p{margin:0; color:#C9D2DE; font-size:0.94rem;}
.lvl-1 .bar-fill{background:var(--gold);}
.lvl-2 .bar-fill{background:var(--gold-soft); opacity:0.85;}
.lvl-3 .bar-fill{background:transparent; border:1.5px dashed var(--gold-soft);}
.lvl-4 .bar-fill{background:transparent; border:1.5px dotted #8593A2;}

/* ---------- SERVIZI ---------- */
.cards3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:42px;}
@media (max-width:900px){.cards3{grid-template-columns:1fr;}}
.svc{background:#fff; border:1px solid #E4DFD2; border-radius:14px; padding:30px 26px; display:flex; flex-direction:column; gap:14px;}
.svc .tagline{font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold);}
.svc h3{font-size:1.18rem;}
.svc p{color:var(--slate); font-size:0.94rem; margin:0;}
.svc ul{margin:0; padding-left:18px; color:var(--slate); font-size:0.92rem;}
.svc ul li{margin-bottom:6px;}
.svc .go{font-size:0.86rem; font-weight:600; color:var(--navy-deep); border-top:1px solid #E4DFD2; padding-top:14px; margin-top:auto;}
.svc .go:hover{color:var(--gold);}

/* ---------- ARTICOLI ---------- */
.articles{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:42px;}
@media (max-width:900px){.articles{grid-template-columns:1fr;}}
.art{border-top:2px solid var(--navy-deep); padding-top:18px;}
.art .meta{font-family:'IBM Plex Mono', monospace; font-size:0.68rem; color:var(--slate); letter-spacing:0.06em; text-transform:uppercase; margin-bottom:10px;}
.art h3{font-size:1.08rem; margin-bottom:10px;}
.art p{color:var(--slate); font-size:0.92rem; margin:0 0 12px;}
.art a{font-size:0.85rem; font-weight:600; color:var(--navy-deep);}
.art a:hover{color:var(--gold);}

/* ---------- CONTATTI ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:10px;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}
label{display:block; font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:7px;}
.field{margin-bottom:20px;}
input, select, textarea{
  width:100%; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.22); color:#fff;
  padding:11px 13px; border-radius:7px; font-family:'IBM Plex Sans', sans-serif; font-size:0.94rem;
}
input::placeholder, textarea::placeholder{color:#7C8997;}
select option{color:#000;}
.submit{background:var(--gold); color:var(--navy-dark); border:none; padding:13px 26px; border-radius:8px; font-weight:600; cursor:pointer; font-size:0.94rem;}
.submit:hover{background:var(--gold-soft);}
.honeypot{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.side-info p{color:#B9C3CF; font-size:0.95rem;}
.side-info .line{display:flex; gap:10px; margin-bottom:14px; font-size:0.92rem;}
.side-info .line span:first-child{color:var(--gold-soft); font-family:'IBM Plex Mono', monospace; font-size:0.78rem; min-width:120px;}
.form-note{font-size:0.8rem; color:#7C8997; margin-top:10px;}

/* ---------- GRAZIE ---------- */
.thanks{min-height:50vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:60px 28px;}
.thanks h1{font-size:clamp(1.8rem,4vw,2.6rem);}
.thanks p{color:var(--slate); max-width:480px; margin:16px auto 28px;}

footer{background:var(--navy-dark); color:#8C99A6; padding:34px 0; border-top:1px solid var(--line); font-size:0.82rem;}
footer .wrap{display:flex; flex-direction:column; gap:10px;}
footer .disclaimer{max-width:760px; line-height:1.55;}
