:root {
  --blue:#1a3aff;
  --coral:#ff5c4d;
  --paper:#f8f7f3;
  --soft:#efeee9;
  --ink:#080c18;
  --muted:#626170;
  --line:rgba(8,12,24,.11);
  --serif:"DM Serif Display", Georgia, serif;
  --sans:"Montserrat", system-ui, sans-serif;
  --pad:clamp(22px,5vw,72px);
  --nav:68px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { background:var(--paper); color:var(--ink); font-family:var(--sans); overflow-x:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
::selection { background:var(--blue); color:#fff; }
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-thumb { background:var(--blue); }

.nav {
  position:fixed; inset:0 0 auto; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  gap:22px; height:var(--nav); padding:0 var(--pad);
  background:rgba(248,247,243,.96); border-bottom:1px solid var(--line);
  backdrop-filter:blur(16px);
}
.nav-logo { display:flex; align-items:center; flex-shrink:0; }
.nav-logo img { width:clamp(148px,14vw,190px); height:auto; }
.nav-links { display:flex; align-items:center; list-style:none; }
.nav-links a {
  display:flex; align-items:center; height:var(--nav); padding:0 14px;
  border-bottom:2px solid transparent; color:rgba(8,12,24,.55);
  font-size:.67rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  transition:color .2s,border-color .2s;
}
.nav-links a:hover,.nav-links a[aria-current="page"] { color:var(--ink); border-color:var(--blue); }
.nav-cta,.button {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  border:none; border-radius:999px; cursor:pointer;
  font-size:.69rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  transition:transform .2s,background .2s,color .2s,border-color .2s;
}
.nav-cta { padding:11px 20px; background:var(--blue); color:#fff; white-space:nowrap; }
.nav-cta:hover,.button-blue:hover { background:var(--ink); transform:translateY(-2px); }
.button { padding:14px 24px; }
.button-blue { background:var(--blue); color:#fff; }
.button-light { border:1px solid rgba(255,255,255,.25); color:#fff; }
.button-light:hover { border-color:#fff; background:#fff; color:var(--ink); }
.button svg { width:14px; height:14px; }

.ticker-wrap {
  position:fixed; top:var(--nav); left:0; right:0; z-index:199;
  overflow:hidden; padding:10px 0; background:var(--blue);
}
.ticker-track { display:flex; width:max-content; white-space:nowrap; animation:ticker 34s linear infinite; }
.ticker-item {
  padding:0 24px; color:rgba(255,255,255,.9);
  font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
}
.ticker-item.accent { color:#fff; }
.ticker-item.accent::before {
  content:""; display:inline-block; width:5px; height:5px; margin-right:10px;
  border-radius:50%; background:var(--coral); vertical-align:1px;
}
@keyframes ticker { to { transform:translateX(-50%); } }

.page-start { padding-top:calc(var(--nav) + 35px); }
.eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  color:var(--blue); font-size:.66rem; font-weight:800;
  letter-spacing:.2em; text-transform:uppercase;
}
.eyebrow::before { content:""; width:23px; height:2px; background:var(--coral); }
.eyebrow.inverse { color:rgba(255,255,255,.78); }

/* NEWS INDEX */
.news-hero {
  display:grid; grid-template-columns:1.15fr .85fr;
  min-height:600px; border-bottom:1px solid var(--line);
}
.news-hero-main,.news-hero-side { padding:clamp(70px,9vw,124px) var(--pad); }
.news-hero-main { border-right:1px solid var(--line); }
.news-hero h1 {
  max-width:830px; margin:25px 0 28px;
  font-size:clamp(4rem,7.5vw,8rem); font-weight:900;
  letter-spacing:-.065em; line-height:.83;
}
.news-hero h1 em { display:block; color:var(--blue); font-family:var(--serif); font-weight:400; }
.news-hero-copy {
  max-width:610px; color:var(--muted); font-size:1rem; line-height:1.85;
}
.news-hero-side { display:flex; flex-direction:column; justify-content:flex-end; background:var(--soft); }
.news-manifesto { max-width:430px; font-family:var(--serif); font-size:clamp(1.55rem,2.8vw,2.8rem); font-style:italic; line-height:1.15; }
.news-manifesto strong { color:var(--coral); font-family:var(--sans); font-style:normal; font-weight:900; }
.issue { margin-top:34px; padding-top:17px; border-top:1px solid var(--line); color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }

.latest { padding:clamp(72px,9vw,118px) var(--pad); }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:38px; }
.section-head h2 { margin-top:18px; font-size:clamp(2.4rem,5vw,5rem); font-weight:900; letter-spacing:-.055em; line-height:.92; }
.section-head h2 em { color:var(--blue); font-family:var(--serif); font-weight:400; }
.article-grid {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.article-card {
  position:relative; display:flex; flex-direction:column; min-height:620px;
  padding:clamp(34px,4.5vw,60px); overflow:hidden;
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  background:#fff; transition:background .25s,transform .25s;
}
.article-card:nth-child(even) { background:var(--soft); }
.article-card:hover { background:#f3f5ff; }
.article-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:clamp(60px,9vw,120px); }
.article-number { color:var(--blue); font-size:clamp(4.5rem,8vw,8rem); font-weight:900; letter-spacing:-.08em; line-height:.75; }
.article-series { color:var(--coral); font-size:.62rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.article-card-meta { margin-bottom:15px; color:var(--muted); font-size:.67rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.article-card h3 { max-width:650px; font-size:clamp(2.4rem,4.2vw,4.8rem); font-weight:900; letter-spacing:-.055em; line-height:.93; }
.article-card h3 em { display:block; color:var(--blue); font-family:var(--serif); font-weight:400; }
.article-card-excerpt { max-width:720px; margin-top:22px; color:var(--muted); font-size:.94rem; line-height:1.75; }
.article-arrow {
  display:grid; place-items:center; width:58px; height:58px; margin-top:auto; align-self:flex-end;
  border:1px solid var(--line); border-radius:50%; color:var(--blue); transition:all .2s;
}
.article-card:hover .article-arrow { background:var(--blue); border-color:var(--blue); color:#fff; transform:translateX(4px); }
.article-arrow svg { width:20px; height:20px; }

.news-cta {
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:30px;
  padding:clamp(58px,8vw,100px) var(--pad); background:var(--ink); color:#fff;
}
.news-cta h2 { max-width:820px; font-size:clamp(2.3rem,5vw,5.2rem); font-weight:900; letter-spacing:-.055em; line-height:.9; }
.news-cta h2 em { color:var(--coral); font-family:var(--serif); font-weight:400; }

/* ARTICLE */
.article-hero {
  padding:clamp(72px,9vw,120px) var(--pad) clamp(60px,8vw,105px);
  border-bottom:1px solid var(--line);
}
.article-hero-inner { max-width:1180px; }
.article-meta-top {
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  margin-bottom:26px; color:var(--muted); font-size:.68rem;
  font-weight:700; letter-spacing:.12em; text-transform:uppercase;
}
.article-meta-top .category { color:var(--blue); }
.article-meta-top .dot { color:var(--coral); }
.article-hero h1 {
  max-width:1120px; font-size:clamp(3.4rem,7.8vw,8rem); font-weight:900;
  letter-spacing:-.067em; line-height:.86;
}
.article-hero h1 em { display:block; color:var(--blue); font-family:var(--serif); font-weight:400; }
.article-deck {
  max-width:800px; margin:35px 0 38px; color:var(--muted);
  font-size:clamp(1rem,1.6vw,1.25rem); line-height:1.75;
}
.author {
  display:flex; align-items:center; gap:15px; width:fit-content;
  padding-top:24px; border-top:1px solid var(--line);
}
.author img { width:62px; height:62px; border-radius:50%; object-fit:cover; filter:grayscale(1); }
.author-copy { display:flex; flex-direction:column; gap:4px; }
.author-copy small { color:var(--muted); font-size:.68rem; }
.author-copy a { width:fit-content; font-size:.86rem; font-weight:800; }
.author-copy a:hover { color:var(--blue); }
.author-copy span { color:var(--muted); font-size:.72rem; line-height:1.4; }

.article-layout {
  display:grid; grid-template-columns:minmax(170px,240px) minmax(0,760px);
  gap:clamp(40px,7vw,105px); justify-content:center;
  padding:clamp(64px,8vw,110px) var(--pad);
}
.article-aside { align-self:start; position:sticky; top:130px; }
.aside-label { color:var(--coral); font-size:.62rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.aside-title { margin:12px 0 22px; font-size:1rem; font-weight:800; line-height:1.45; }
.aside-tags { display:flex; flex-wrap:wrap; gap:7px; }
.aside-tags span { padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:.62rem; font-weight:700; }
.back-news { display:inline-flex; align-items:center; gap:8px; margin-top:30px; color:var(--blue); font-size:.67rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.back-news:hover { color:var(--ink); }

.article-body { min-width:0; }
.article-body p { margin-bottom:28px; font-family:var(--serif); font-size:clamp(1.18rem,1.75vw,1.42rem); line-height:1.72; }
.article-body p.lead::first-letter {
  float:left; margin:9px 10px 0 0; color:var(--blue);
  font-family:var(--sans); font-size:4.7rem; font-weight:900; line-height:.72;
}
.article-body h2 { margin:72px 0 25px; font-size:clamp(2rem,4vw,3.9rem); font-weight:900; letter-spacing:-.05em; line-height:.95; }
.article-body h2 em { color:var(--blue); font-family:var(--serif); font-weight:400; }
.pullquote {
  margin:62px 0; padding:36px 0 36px clamp(25px,4vw,45px);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); border-left:5px solid var(--coral);
}
.pullquote p { margin:0; color:var(--blue); font-size:clamp(1.8rem,3.6vw,3.35rem); font-style:italic; line-height:1.08; }
.data-figure { margin:65px 0 72px; }
.data-frame { overflow:hidden; padding:clamp(12px,2vw,22px); border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 24px 52px rgba(8,12,24,.08); }
.data-frame img { width:100%; height:auto; }
.data-frame::-webkit-scrollbar { height:4px; }
.data-figure figcaption { display:flex; gap:12px; margin-top:15px; color:var(--muted); font-size:.7rem; line-height:1.55; }
.data-figure figcaption::before { content:""; flex:0 0 22px; height:2px; margin-top:8px; background:var(--coral); }
.article-question {
  margin-top:72px; padding:clamp(34px,5vw,55px); border-radius:22px;
  background:var(--blue); color:#fff;
}
.article-question small { display:block; margin-bottom:18px; color:rgba(255,255,255,.78); font-size:.64rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.article-question p { margin:0; font-family:var(--sans); font-size:clamp(1.45rem,3vw,2.6rem); font-weight:800; letter-spacing:-.035em; line-height:1.2; }

.article-end {
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:30px;
  padding:clamp(58px,8vw,96px) var(--pad); background:var(--ink); color:#fff;
}
.article-end p { max-width:800px; font-size:clamp(2rem,4.5vw,4.8rem); font-weight:900; letter-spacing:-.055em; line-height:.92; }
.article-end p em { color:var(--coral); font-family:var(--serif); font-weight:400; }

footer { padding:36px var(--pad) 26px; border-top:1px solid var(--line); }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:22px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.footer-logo { width:clamp(155px,18vw,220px); }
.footer-tagline { color:var(--muted); font-family:var(--serif); font-size:.86rem; font-style:italic; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer-copy { color:var(--muted); font-size:.66rem; letter-spacing:.08em; }
.footer-links { display:flex; gap:16px; flex-wrap:wrap; }
.footer-links a,.footer-links button {
  padding:0; border:none; background:none; color:var(--muted); cursor:pointer;
  font-size:.66rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
}
.footer-links a:hover,.footer-links button:hover { color:var(--blue); }

@media(max-width:1000px) {
  .news-hero { grid-template-columns:1fr; }
  .news-hero-main { border-right:none; border-bottom:1px solid var(--line); }
  .news-cta,.article-end { grid-template-columns:1fr; }
  .news-cta .button,.article-end .button { width:fit-content; }
  .article-layout { grid-template-columns:170px minmax(0,700px); }
}

@media(max-width:780px) {
  .nav-links { display:none; }
  .article-layout { grid-template-columns:1fr; }
  .article-aside { position:static; padding-bottom:30px; border-bottom:1px solid var(--line); }
  .article-grid { grid-template-columns:1fr; }
  .article-card { min-height:560px; }
}

@media(max-width:640px) {
  :root { --pad:18px; }
  .nav { gap:12px; }
  .nav-logo img { width:150px; }
  .nav-cta { padding:10px 14px; font-size:.58rem; letter-spacing:.09em; }
  .ticker-wrap { padding:9px 0; }
  .ticker-item { padding:0 16px; font-size:.68rem; }
  .news-hero-main,.news-hero-side { padding-top:64px; padding-bottom:64px; }
  .news-hero h1 { font-size:clamp(3.15rem,15vw,4.6rem); }
  .news-hero-copy { font-size:.94rem; }
  .section-head { align-items:flex-start; flex-direction:column; }
  .article-card { min-height:520px; padding:32px 24px; }
  .article-card-top { margin-bottom:58px; }
  .article-card h3 { font-size:2.55rem; }
  .article-arrow { width:48px; height:48px; }
  .news-cta .button,.article-end .button { width:100%; }
  .article-hero { padding-top:64px; }
  .article-hero h1 { font-size:clamp(2.85rem,14vw,4.2rem); }
  .article-deck { margin-top:27px; }
  .author { align-items:flex-start; }
  .author-copy span { max-width:220px; }
  .article-body p { font-size:1.18rem; line-height:1.67; }
  .article-body h2 { margin-top:56px; }
  .pullquote { margin:48px 0; }
  .data-figure { margin:50px 0; }
  .data-frame { overflow-x:auto; padding:10px; }
  .data-frame img { min-width:760px; }
  .data-figure figcaption { flex-wrap:wrap; }
  .data-figure figcaption::after {
    content:"Scorri la tabella verso destra →";
    flex:0 0 100%; margin-left:34px; color:var(--blue);
    font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  }
  .footer-top,.footer-bottom { align-items:flex-start; flex-direction:column; }
}

@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .ticker-track { animation:none; }
}
