/* ═══════════════════════════════════════════════════════
   TOP by Finanza Digitale — styles.css
   Design: V2.1 (wide hero, narrow content, breakout elements)
   ═══════════════════════════════════════════════════════ */

/* ─── RESET ─── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;color:#111318;background:#fff;line-height:1.6}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
ul{list-style:none}

html, body{
  overflow-x:hidden;
}

/* ─── TOKENS ─── */
:root{
  --blue-900:#0f1d3a;
  --blue-700:#1b3a6b;
  --blue-600:#2454a0;
  --blue-500:#2e6bd6;
  --blue-100:#e8f0fe;
  --blue-50:#f4f7fc;
  --white:#ffffff;
  --gray-50:#f8f9fa;
  --gray-100:#f1f2f4;
  --gray-200:#e2e4e8;
  --gray-300:#cdd0d5;
  --gray-500:#7a7f88;
  --gray-600:#5c616a;
  --gray-700:#3d4148;
  --black:#111318;
  --amber-600:#b45309;
  --amber-50:#fffbeb;
  --green-600:#16a34a;
  --green-50:#f0fdf4;
  --red-600:#dc2626;
  --red-50:#fef2f2;
  --serif:'PT Serif',Georgia,serif;
  --sans:'Plus Jakarta Sans',system-ui,sans-serif;
  --radius:10px;
  --radius-lg:14px;
  
  /* Layout widths */
  --width-full:1100px;
  --width-content:760px;
  --width-breakout:800px;
}

/* ─── LAYOUT ─── */
.page-shell{min-height:100vh;display:flex;flex-direction:column}
.page-shell main{flex:1}
.container{max-width:var(--width-full);margin:0 auto;padding:0 2rem}

/* ═══════════════════════════════════════
   HEADER (topbar)
   ═══════════════════════════════════════ */
.topbar{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--gray-200);
}
.topbar-inner{
  max-width:var(--width-full);
  margin:0 auto;
  padding:0 2rem;
  height:60px;display:flex;align-items:center;
  justify-content:space-between;gap:1.5rem;
}
.brand{display:flex;align-items:center;gap:.625rem;flex-shrink:0}
.brand-mark{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;background:var(--blue-900);color:#fff;
  font-family:var(--sans);font-size:.625rem;font-weight:800;
  letter-spacing:.06em;border-radius:8px;flex-shrink:0;
}
.brand-logo{height:18px;width:auto}
.brand-copy{display:none}
@media(min-width:1060px){
  .brand-copy{display:block;font-size:.6875rem;color:var(--gray-500);max-width:200px;line-height:1.35;margin-top: 2px;}
}

/* ═══════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════ */
.btn-primary{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.7rem 1.35rem;background:var(--blue-600);color:#fff;
  font-family:var(--sans);font-size:.8125rem;font-weight:600;
  border-radius:var(--radius);border:none;cursor:pointer;
  transition:background .15s;white-space:nowrap;
}
.btn-primary:hover{background:var(--blue-700)}
.btn-primary svg{width:15px;height:15px}
.btn-ghost{
  display:inline-flex;align-items:center;gap:.375rem;
  padding:.7rem 1.25rem;font-family:var(--sans);
  font-size:.8125rem;font-weight:600;color:var(--gray-600);
  border:1px solid var(--gray-200);border-radius:var(--radius);
  transition:border-color .15s,color .15s;white-space:nowrap;
}
.btn-ghost:hover{border-color:var(--gray-300);color:var(--blue-900)}
.btn-sm{padding:.5rem 1rem;font-size:.75rem}

/* ═══════════════════════════════════════
   BREADCRUMBS
   ═══════════════════════════════════════ */
.breadcrumbs{
  max-width:var(--width-full);
  margin:0 auto;
  padding:1.25rem 2rem;
  font-size:.75rem;
  color:var(--gray-500);
}
.breadcrumbs a{
  color:var(--gray-500);
  transition:color .15s;
}
.breadcrumbs a:hover{color:var(--blue-600)}

/* ═══════════════════════════════════════
   HERO (centered) — Homepage
   ═══════════════════════════════════════ */
.hero{
  text-align:center;
  padding:4.5rem 2rem 3.5rem;
  max-width:780px;
  margin:0 auto;
}
.hero-chip{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.375rem .875rem;background:var(--blue-50);
  border:1px solid var(--blue-100);border-radius:100px;
  font-size:.75rem;font-weight:600;color:var(--blue-600);
  margin-bottom:1.75rem;
}
.hero-chip-dot{
  width:6px;height:6px;background:var(--blue-500);
  border-radius:50%;flex-shrink:0;
}
.hero h1{
  font-family:var(--serif);
  font-size:clamp(2rem,4.5vw,3rem);line-height:1.2;
  font-weight:400;color:var(--blue-900);
  margin-bottom:1.25rem;letter-spacing:-.01em;
}
.hero p{
  font-size:1.0625rem;line-height:1.75;color:var(--gray-600);
  max-width:600px;margin:0 auto 2.25rem;
}
.hero-actions{
  display:flex;align-items:center;justify-content:center;
  gap:1rem;flex-wrap:wrap;
}

/* ═══════════════════════════════════════
   HERO — Article pages (FULL WIDTH)
   ═══════════════════════════════════════ */
.hero--article{
  padding:1rem 0 2.5rem;
  border-bottom:1px solid var(--gray-100);
  background:var(--white);
}
.hero--article .container{
  max-width:var(--width-full);
}
.hero--article h1{
  font-family:var(--serif);
  font-size:clamp(1.875rem,4.5vw,2.75rem);
  line-height:1.2;
  font-weight:400;
  color:var(--blue-900);
  margin-bottom:1.25rem;
  letter-spacing:-.01em;
}
.hero--article .lead{
  font-size:1.0625rem;
  line-height:1.75;
  color:var(--gray-600);
  margin-bottom:2rem;
}

/* Section label */
.section-label{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.6875rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--blue-600);margin-bottom:.75rem;
}
.section-label .dot{
  width:6px;height:6px;background:var(--blue-500);
  border-radius:50%;flex-shrink:0;
}

/* Author strip */
.author-strip{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  padding-top:1.75rem;
  border-top:1px solid var(--gray-100);
}
.author-chip{
  display:flex;
  align-items:center;
  gap:.625rem;
}
.author-chip img{
  width:40px;
  height:40px;
  border-radius:50%;
  object-fit:cover;
}
.author-chip strong{
  font-size:.8125rem;
  font-weight:600;
  color:var(--blue-900);
}
.author-chip .muted{
  color:var(--gray-500);
}
.author-chip .small{
  font-size:.75rem;
}

/* ═══════════════════════════════════════
   ARTICLE CONTENT — Narrow center layout
   ═══════════════════════════════════════ */
.article-content{
  padding:3rem 2rem 4rem;
  max-width:var(--width-full);
  margin:0 auto;
}

/* Inner wrapper for narrow text */
.article-content__inner{
  max-width:var(--width-content);
  margin:0 auto;
}

/* ═══════════════════════════════════════
   TABLE OF CONTENTS (TOC) — Breakout width
   ═══════════════════════════════════════ */
.toc{
  background:var(--gray-50);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:1.5rem 2rem;
  margin:0 auto 2.5rem;
  max-width:var(--width-breakout);
  /* Breakout: center within full width */
  position:relative;
  left:50%;
  transform:translateX(-50%);
  width:calc(100% + 40px);
  max-width:var(--width-breakout);
}
@media(max-width:840px){
  .toc{
    width:100%;
    left:0;
    transform:none;
  }
}
.toc-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:1rem;
}
.toc-title{
  font-family:var(--sans);
  font-size:.875rem;
  font-weight:700;
  color:var(--blue-900);
  display:flex;
  align-items:center;
  gap:.5rem;
}
.toc-title svg{
  width:18px;
  height:18px;
  color:var(--blue-600);
}
.toc-toggle{
  background:none;
  border:none;
  cursor:pointer;
  padding:.25rem;
  color:var(--gray-500);
  transition:color .15s;
}
.toc-toggle:hover{color:var(--blue-600)}
.toc-toggle svg{
  width:20px;
  height:20px;
  transition:transform .2s ease;
}
.toc-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.toc-list.collapsed{display:none}
.toc-list li{
  padding-left:1rem;
  border-left:2px solid var(--gray-200);
  transition:border-color .15s;
}
.toc-list li:hover{border-color:var(--blue-500)}
.toc-list a{
  font-size:.8125rem;
  color:var(--gray-600);
  line-height:1.5;
  display:block;
  padding:.25rem 0;
  transition:color .15s;
}
.toc-list a:hover{color:var(--blue-600)}

/* ═══════════════════════════════════════
   TYPOGRAPHY — Article body
   ═══════════════════════════════════════ */
.article-content h2{
  font-family:var(--serif);
  font-size:1.5rem;
  font-weight:400;
  color:var(--blue-900);
  margin:2.75rem 0 1rem;
  line-height:1.3;
  scroll-margin-top:80px;
}
.article-content h2:first-child,
.article-content .toc + h2{
  margin-top:0;
}

.article-content h3{
  font-family:var(--sans);
  font-size:1.125rem;
  font-weight:700;
  color:var(--blue-900);
  margin:2rem 0 .75rem;
  line-height:1.4;
}

.article-content h4{
  font-family:var(--sans);
  font-size:1rem;
  font-weight:600;
  color:var(--gray-700);
  margin:1.5rem 0 .5rem;
}

.article-content p{
  font-size:1rem;
  line-height:1.85;
  color:var(--gray-700);
  margin-bottom:1.25rem;
}
.article-content p:last-child{margin-bottom:0}

/* Links */
.article-content a{
  color:var(--blue-600);
  text-decoration:underline;
  text-underline-offset:2px;
  transition:color .15s;
}
.article-content a:hover{color:var(--blue-900)}

/* Lists */
.article-content ul,
.article-content ol{
  margin:1.25rem 0;
  padding-left:1.5rem;
}
.article-content ul{list-style:disc}
.article-content ol{list-style:decimal}
.article-content li{
  font-size:1rem;
  line-height:1.75;
  color:var(--gray-700);
  margin-bottom:.5rem;
}
.article-content li::marker{color:var(--blue-600)}

/* Blockquote */
.article-content blockquote{
  margin:2rem 0;
  padding:1.25rem 1.5rem;
  background:var(--blue-50);
  border-left:4px solid var(--blue-500);
  border-radius:0 var(--radius) var(--radius) 0;
}
.article-content blockquote p{
  font-size:.9375rem;
  font-style:italic;
  color:var(--blue-900);
  margin:0;
}

/* ═══════════════════════════════════════
   BREAKOUT ELEMENTS — Tables, Images, Callouts
   ═══════════════════════════════════════ */
.breakout{
  position:relative;
  left:50%;
  transform:translateX(-50%);
  width:calc(100% + 40px);
  max-width:var(--width-breakout);
  margin:2rem 0;
}
@media(max-width:840px){
  .breakout{
    width:100%;
    left:0;
    transform:none;
  }
}

/* ═══════════════════════════════════════
   TABLES — Responsive with breakout
   ═══════════════════════════════════════ */
.table-wrapper{
  position:relative;
  left:50%;
  transform:translateX(-50%);
  width:calc(100% + 40px);
  max-width:var(--width-breakout);
  margin:2rem 0;
}
@media(max-width:840px){
  .table-wrapper{
    width:100%;
    left:0;
    transform:none;
  }
}
.table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
}
.table-scroll::-webkit-scrollbar{height:6px}
.table-scroll::-webkit-scrollbar-track{background:var(--gray-100);border-radius:3px}
.table-scroll::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}

.article-content table{
  width:100%;
  border-collapse:collapse;
  font-size:.875rem;
  min-width:600px;
}
.article-content thead{
  background:var(--gray-50);
  border-bottom:2px solid var(--gray-200);
}
.article-content th{
  font-family:var(--sans);
  font-weight:600;
  text-align:left;
  padding:.875rem 1rem;
  color:var(--blue-900);
  white-space:nowrap;
}
.article-content td{
  padding:.875rem 1rem;
  color:var(--gray-700);
  border-bottom:1px solid var(--gray-100);
  vertical-align:top;
}
.article-content tbody tr:last-child td{border-bottom:none}
.article-content tbody tr:hover{background:var(--gray-50)}

/* Table buttons */
.article-content td .btn-primary,
.article-content td .btn-ghost{
  font-size:.75rem;
  padding:.4rem .875rem;
}

/* Hide columns on mobile */
@media(max-width:768px){
  .hide-mobile{display:none !important}
}

/* ═══════════════════════════════════════
   TABLE CARDS — Mobile alternative
   ═══════════════════════════════════════ */
.table-cards{display:none}
@media(max-width:600px){
  .table-responsive-cards .table-scroll{display:none}
  .table-responsive-cards .table-cards{display:block}
  
  .table-card{
    background:var(--white);
    border:1px solid var(--gray-200);
    border-radius:var(--radius);
    padding:1.25rem;
    margin-bottom:1rem;
  }
  .table-card:last-child{margin-bottom:0}
  .table-card-header{
    font-family:var(--sans);
    font-weight:700;
    font-size:1rem;
    color:var(--blue-900);
    margin-bottom:.75rem;
    padding-bottom:.75rem;
    border-bottom:1px solid var(--gray-100);
  }
  .table-card-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    padding:.5rem 0;
    font-size:.875rem;
  }
  .table-card-row:not(:last-child){
    border-bottom:1px solid var(--gray-50);
  }
  .table-card-label{
    color:var(--gray-500);
    font-weight:500;
    flex-shrink:0;
    margin-right:1rem;
  }
  .table-card-value{
    color:var(--gray-700);
    text-align:right;
  }
  .table-card-actions{
    margin-top:1rem;
    padding-top:1rem;
    border-top:1px solid var(--gray-100);
  }
  .table-card-actions .btn-primary{
    width:100%;
    justify-content:center;
  }
}

/* ═══════════════════════════════════════
   CALLOUT BOXES — Breakout width
   ═══════════════════════════════════════ */
.callout{
  position:relative;
  left:50%;
  transform:translateX(-50%);
  width:calc(100% + 40px);
  max-width:var(--width-breakout);
  margin:2rem 0;
  padding:1.25rem 1.5rem;
  border-radius:var(--radius);
  border:1px solid;
}
@media(max-width:840px){
  .callout{
    width:100%;
    left:0;
    transform:none;
  }
}
.callout--info{
  background:var(--blue-50);
  border-color:var(--blue-100);
}
.callout--warning{
  background:var(--amber-50);
  border-color:#fde68a;
}
.callout--success{
  background:var(--green-50);
  border-color:#bbf7d0;
}
.callout--danger{
  background:var(--red-50);
  border-color:#fecaca;
}
.callout-title{
  font-family:var(--sans);
  font-size:.8125rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:.5rem;
}
.callout--info .callout-title{color:var(--blue-600)}
.callout--warning .callout-title{color:var(--amber-600)}
.callout--success .callout-title{color:var(--green-600)}
.callout--danger .callout-title{color:var(--red-600)}
.callout p{
  font-size:.875rem;
  margin:0;
}

/* ═══════════════════════════════════════
   IMAGES — Breakout width
   ═══════════════════════════════════════ */
.article-content figure{
  position:relative;
  left:50%;
  transform:translateX(-50%);
  width:calc(100% + 40px);
  max-width:var(--width-breakout);
  margin:2rem 0;
}
@media(max-width:840px){
  .article-content figure{
    width:100%;
    left:0;
    transform:none;
  }
}
.article-content figure img{
  width:100%;
  border-radius:var(--radius-lg);
  border:1px solid var(--gray-200);
}
.article-content figcaption{
  font-size:.8125rem;
  color:var(--gray-500);
  text-align:center;
  margin-top:.75rem;
}

/* ═══════════════════════════════════════
   RELATED ARTICLES
   ═══════════════════════════════════════ */
.related{
  padding:4rem 0;
  background:var(--gray-50);
  border-top:1px solid var(--gray-100);
}
.related .container{max-width:var(--width-breakout)}
.related h2{
  font-family:var(--serif);
  font-size:1.375rem;
  color:var(--blue-900);
  margin-bottom:1.5rem;
}
.related-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}
.related-card{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  padding:1.25rem;
  transition:border-color .2s;
}
.related-card:hover{border-color:var(--blue-500)}
.related-card h3{
  font-family:var(--sans);
  font-size:.9375rem;
  font-weight:600;
  color:var(--blue-900);
  margin-bottom:.375rem;
  line-height:1.4;
}
.related-card p{
  font-size:.8125rem;
  color:var(--gray-500);
  line-height:1.5;
}

/* ═══════════════════════════════════════
   PILLARS (3 icons row) — Homepage
   ═══════════════════════════════════════ */
.pillars{
  max-width:720px;margin:0 auto;padding:0 2rem 4rem;
  display:flex;justify-content:center;gap:2.5rem;
}
.pillar{text-align:center}
.pillar-icon{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:12px;
  background:var(--blue-50);margin:0 auto .625rem;
}
.pillar-icon svg{width:22px;height:22px;color:var(--blue-600)}
.pillar h4{
  font-family:var(--sans);font-size:.8125rem;font-weight:700;
  color:var(--blue-900);margin-bottom:.125rem;
}
.pillar p{font-size:.75rem;color:var(--gray-500)}

/* ═══════════════════════════════════════
   IN EVIDENZA (gray bg, 3 cards) — Homepage
   ═══════════════════════════════════════ */
.evidenza{
  background:var(--gray-50);
  border-top:1px solid var(--gray-100);
  border-bottom:1px solid var(--gray-100);
  padding:4rem 0;
}
.evidenza-header{text-align:center;max-width:620px;margin:0 auto 2.5rem}
.evidenza-header h2{
  font-family:var(--serif);
  font-size:clamp(1.625rem,3vw,2.125rem);
  color:var(--blue-900);font-weight:400;line-height:1.25;
  margin-bottom:.75rem;
}
.evidenza-header p{font-size:.9375rem;color:var(--gray-600);line-height:1.7}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{
  background:var(--white);border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);padding:1.75rem;
  display:flex;flex-direction:column;transition:border-color .2s;cursor:pointer;
}
.card:hover{border-color:var(--blue-500)}
.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}
.card-num{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;background:var(--blue-50);
  color:var(--blue-600);font-size:.8125rem;font-weight:700;border-radius:8px;
}
.card-tag{
  font-size:.625rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--gray-500);
  padding:.25rem .625rem;background:var(--gray-50);border-radius:6px;
}
.card-tag-primary{background:var(--blue-50);color:var(--blue-600)}
.card-tag-amber{background:var(--amber-50);color:var(--amber-600)}
.card h3{
  font-family:var(--sans);font-weight:700;font-size:1.0625rem;
  color:var(--blue-900);line-height:1.35;margin-bottom:.4rem;
}
.card p{font-size:.8125rem;color:var(--gray-500);line-height:1.6;flex-grow:1}
.card-arrow{
  display:flex;align-items:center;gap:.375rem;margin-top:1.25rem;
  font-size:.8125rem;font-weight:600;color:var(--blue-600);
}
.card-arrow svg{width:14px;height:14px}

/* ═══════════════════════════════════════
   PROCESSO (steps) — Homepage
   ═══════════════════════════════════════ */
.processo{padding:5rem 0}
.processo-header{text-align:center;max-width:640px;margin:0 auto 3.5rem}
.processo-header h2{
  font-family:var(--serif);
  font-size:clamp(1.625rem,3vw,2.125rem);
  color:var(--blue-900);font-weight:400;line-height:1.25;
  margin-bottom:.75rem;
}
.processo-header p{font-size:.9375rem;color:var(--gray-600);line-height:1.7}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.step{text-align:center;padding:0 1.25rem;position:relative}
.step::before{
  content:'';position:absolute;top:24px;left:0;right:0;
  height:1px;background:var(--gray-200);
}
.step:first-child::before{left:50%}
.step:last-child::before{right:50%}
.step-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;background:var(--white);
  border:2px solid var(--gray-200);border-radius:50%;
  font-family:var(--sans);font-size:.875rem;font-weight:700;
  color:var(--blue-900);margin-bottom:1rem;
  position:relative;z-index:1;
  transition:border-color .2s,background .2s;
}
.step:hover .step-num{border-color:var(--blue-500);background:var(--blue-50);color:var(--blue-600)}
.step h4{
  font-family:var(--sans);font-weight:700;font-size:.875rem;
  color:var(--blue-900);margin-bottom:.375rem;
}
.step p{font-size:.8125rem;color:var(--gray-500);line-height:1.6}

/* ═══════════════════════════════════════
   ARCHITETTURA (dark section) — Homepage
   ═══════════════════════════════════════ */
.architettura{background:var(--blue-900);color:var(--white);padding:5rem 0}
.architettura .section-label{color:var(--blue-100);opacity:.6}
.arch-header{text-align:center;max-width:580px;margin:0 auto 3rem}
.arch-header h2{
  font-family:var(--serif);
  font-size:clamp(1.625rem,3vw,2.125rem);
  font-weight:400;line-height:1.25;margin-bottom:.75rem;
}
.arch-header p{font-size:.9375rem;color:rgba(255,255,255,.6);line-height:1.7}

.arch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.arch-item{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius-lg);padding:2rem 1.75rem;transition:background .2s;
}
.arch-item:hover{background:rgba(255,255,255,.1)}
.arch-icon{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;background:rgba(255,255,255,.08);
  border-radius:10px;margin-bottom:1.25rem;
}
.arch-icon svg{width:20px;height:20px;color:var(--blue-100)}
.arch-item h4{font-family:var(--sans);font-weight:700;font-size:1rem;margin-bottom:.4rem}
.arch-item p{font-size:.8125rem;color:rgba(255,255,255,.55);line-height:1.65}

/* ═══════════════════════════════════════
   POSITIONING — Homepage
   ═══════════════════════════════════════ */
.positioning{padding:5rem 0}
.pos-header{text-align:center;max-width:580px;margin:0 auto 3rem}
.pos-header h2{
  font-family:var(--serif);
  font-size:clamp(1.625rem,3vw,2.125rem);
  color:var(--blue-900);font-weight:400;line-height:1.25;
  margin-bottom:.75rem;
}
.pos-header p{font-size:.9375rem;color:var(--gray-600);line-height:1.7}

.pos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.pos-item{text-align:center;padding:1.5rem 1rem}
.pos-icon{
  display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;background:var(--blue-50);
  border-radius:14px;margin:0 auto 1rem;
}
.pos-icon svg{width:24px;height:24px;color:var(--blue-600)}
.pos-item h4{
  font-family:var(--sans);font-weight:700;font-size:.9375rem;
  color:var(--blue-900);margin-bottom:.375rem;
}
.pos-item p{font-size:.8125rem;color:var(--gray-500);line-height:1.65}

/* ═══════════════════════════════════════
   CTA BAND — Homepage
   ═══════════════════════════════════════ */
.cta-band{
  background:var(--gray-50);
  border-top:1px solid var(--gray-100);
  border-bottom:1px solid var(--gray-100);
  padding:4rem 0;
}
.cta-inner{text-align:center;max-width:620px;margin:0 auto}
.cta-inner h2{
  font-family:var(--serif);
  font-size:clamp(1.5rem,2.5vw,1.875rem);
  color:var(--blue-900);font-weight:400;line-height:1.3;
  margin-bottom:.75rem;
}
.cta-inner p{font-size:.9375rem;color:var(--gray-600);line-height:1.7;margin-bottom:1.75rem}
.cta-buttons{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}
.cta-disclaimer{
  font-size:.75rem;color:var(--gray-500);line-height:1.6;
  max-width:520px;margin:1.5rem auto 0;
  border-top:1px solid var(--gray-200);padding-top:1rem;
}

/* ═══════════════════════════════════════
   RISK WARNING
   ═══════════════════════════════════════ */
.footer-top{padding:2.5rem 0 0}
.risk-box{
  font-size:.75rem;line-height:1.65;color:var(--gray-600);
  background:var(--gray-50);border:1px solid var(--gray-200);
  border-radius:var(--radius);padding:1.25rem 1.5rem;
}
.risk-box strong{color:var(--blue-900);font-weight:700}

/* ═══════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════ */
.footer{background:var(--blue-900);color:#fff;padding:3rem 0 0;margin-top:3rem}
.footer-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:2.5rem;padding-bottom:2.5rem;
}
.footer-grid>div>p{font-size:.8125rem;color:rgba(255,255,255,.5);line-height:1.65;max-width:340px}
.footer-grid h4{
  font-family:var(--sans);font-weight:700;font-size:.6875rem;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.35);margin-bottom:1rem;
}
.footer-grid ul li{margin-bottom:.5rem}
.footer-grid a{font-size:.8125rem;color:rgba(255,255,255,.6);transition:color .15s}
.footer-grid a:hover{color:#fff}

.socials{display:flex;gap:.5rem;margin-top:1.25rem}
.socials a{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:8px;
  background:rgba(255,255,255,.08);color:rgba(255,255,255,.5);
  font-size:.75rem;font-weight:700;
  transition:background .15s,color .15s;
}
.socials a:hover{background:rgba(255,255,255,.15);color:#fff}

.footer-note{
  border-top:1px solid rgba(255,255,255,.08);
  padding:1.25rem 0;font-size:.6875rem;
  color:rgba(255,255,255,.25);line-height:1.6;
}

/* ═══════════════════════════════════════
   GRID LAYOUTS
   ═══════════════════════════════════════ */
.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
}
.grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
@media(max-width:860px){
  .grid-2,.grid-3{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════
   DETAIL CARDS (sidebar style)
   ═══════════════════════════════════════ */
.detail-card{
  background:var(--gray-50);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:1.75rem;
}
.detail-card h2{
  font-family:var(--serif);
  font-size:1.25rem;
  color:var(--blue-900);
  margin-bottom:1rem;
}
.detail-card h3{
  font-family:var(--sans);
  font-size:1rem;
  font-weight:700;
  color:var(--blue-900);
  margin-bottom:.75rem;
}
.detail-card p{
  font-size:.875rem;
  color:var(--gray-600);
  line-height:1.7;
}
.detail-card ul{
  list-style:disc;
  padding-left:1.25rem;
  margin:.75rem 0;
}
.detail-card li{
  font-size:.875rem;
  color:var(--gray-600);
  line-height:1.6;
  margin-bottom:.375rem;
}

/* TOC inside detail card */
.detail-card .toc{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.detail-card .toc a{
  font-size:.875rem;
  color:var(--gray-600);
  padding:.5rem .75rem;
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  transition:border-color .15s,color .15s;
}
.detail-card .toc a:hover{
  border-color:var(--blue-500);
  color:var(--blue-600);
}

/* ═══════════════════════════════════════
   SECTION HEAD
   ═══════════════════════════════════════ */
.section-head{
  text-align:center;
  max-width:720px;
  margin:0 auto 2.5rem;
}
.section-head h2{
  font-family:var(--serif);
  font-size:clamp(1.5rem,3vw,2rem);
  color:var(--blue-900);
  margin-bottom:.75rem;
}
.section-head p{
  font-size:.9375rem;
  color:var(--gray-600);
  line-height:1.7;
}

/* ═══════════════════════════════════════
   KEY TABLE (broker comparison)
   ═══════════════════════════════════════ */
.table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
}
.key-table{
  width:100%;
  border-collapse:collapse;
  font-size:.8125rem;
  min-width:800px;
}
.key-table thead{
  background:var(--blue-900);
  color:var(--white);
}
.key-table th{
  font-weight:600;
  text-align:left;
  padding:.875rem 1rem;
  white-space:nowrap;
}
.key-table td{
  padding:.875rem 1rem;
  color:var(--gray-700);
  border-bottom:1px solid var(--gray-100);
  vertical-align:top;
}
.key-table tbody tr:last-child td{border-bottom:none}
.key-table tbody tr:hover{background:var(--gray-50)}
.btn-link{
  font-size:.75rem;
  font-weight:600;
  color:var(--blue-600);
  text-decoration:underline;
  white-space:nowrap;
}
.btn-link:hover{color:var(--blue-900)}

/* ═══════════════════════════════════════
   BROKER CARDS
   ═══════════════════════════════════════ */
.broker-grid{
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}
.broker-card{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:2rem;
  transition:border-color .2s;
}
.broker-card:hover{border-color:var(--blue-500)}
.broker-header{
  display:flex;
  align-items:flex-start;
  gap:1.5rem;
  margin-bottom:1.5rem;
}
.broker-logo{
  width:64px;
  height:64px;
  object-fit:contain;
  border-radius:var(--radius);
  border:1px solid var(--gray-100);
  flex-shrink:0;
}
.broker-header h2{
  font-family:var(--serif);
  font-size:1.375rem;
  color:var(--blue-900);
  margin:0;
}
.broker-header p{
  font-size:.875rem;
  color:var(--gray-600);
  line-height:1.6;
  margin-top:.5rem;
}
.broker-rating{
  margin-left:auto;
  font-family:var(--sans);
  font-size:1.25rem;
  font-weight:700;
  color:var(--blue-600);
  background:var(--blue-50);
  padding:.5rem 1rem;
  border-radius:var(--radius);
  white-space:nowrap;
}
.eyebrow{
  font-size:.6875rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--gray-500);
}

/* Button row */
.button-row{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:1.5rem;
}

/* Pros/Cons */
.proscons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin-bottom:1.5rem;
}
@media(max-width:600px){
  .proscons{grid-template-columns:1fr}
}
.info-box{
  background:var(--gray-50);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  padding:1rem 1.25rem;
}
.info-box strong{
  display:block;
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--blue-900);
  margin-bottom:.5rem;
}
.info-box ul{
  list-style:disc;
  padding-left:1.25rem;
  margin:0;
}
.info-box li{
  font-size:.8125rem;
  color:var(--gray-600);
  line-height:1.5;
  margin-bottom:.25rem;
}

/* Meta grid */
.meta-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.75rem;
}
@media(max-width:768px){
  .meta-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .meta-grid{grid-template-columns:1fr}
}
.meta-box{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  padding:.75rem 1rem;
}
.meta-box strong{
  display:block;
  font-size:.6875rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--gray-500);
  margin-bottom:.25rem;
}

/* ═══════════════════════════════════════
   COPY SECTION (article prose)
   ═══════════════════════════════════════ */
.copy{padding:3rem 0}
.copy h2{
  font-family:var(--serif);
  font-size:1.5rem;
  color:var(--blue-900);
  margin:2.5rem 0 1rem;
}
.copy h2:first-child{margin-top:0}
.copy h3{
  font-family:var(--sans);
  font-size:1.125rem;
  font-weight:700;
  color:var(--blue-900);
  margin:2rem 0 .75rem;
}
.copy p{
  font-size:1rem;
  line-height:1.85;
  color:var(--gray-700);
  margin-bottom:1.25rem;
}
.copy ul,.copy ol{
  margin:1.25rem 0;
  padding-left:1.5rem;
}
.copy ul{list-style:disc}
.copy ol{list-style:decimal}
.copy li{
  font-size:1rem;
  line-height:1.75;
  color:var(--gray-700);
  margin-bottom:.5rem;
}
.copy li::marker{color:var(--blue-600)}

/* ═══════════════════════════════════════
   RELATED LINKS (inline)
   ═══════════════════════════════════════ */
.related-links{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.5rem;
}
.related-links a{
  font-size:.8125rem;
  font-weight:600;
  color:var(--blue-600);
  padding:.625rem 1.25rem;
  background:var(--white);
  border:1px solid var(--blue-100);
  border-radius:100px;
  transition:background .15s,border-color .15s;
}
.related-links a:hover{
  background:var(--blue-50);
  border-color:var(--blue-500);
}

/* ═══════════════════════════════════════
   SECTION (generic)
   ═══════════════════════════════════════ */
.section{padding:4rem 0}
.section:nth-child(even){background:var(--gray-50)}

/* ═══════════════════════════════════════
   INTRO SECTION (TOC + sidebar) — REDESIGNED
   ═══════════════════════════════════════ */
.intro-section{
  padding:2.5rem 0;
  background:var(--white);
}
.intro-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
  max-width:var(--width-full);
  margin:0 auto;
  padding:0 2rem;
}
@media(max-width:860px){
  .intro-grid{grid-template-columns:1fr}
}
.intro-card{
  background:var(--gray-50);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:1.5rem 1.75rem;
}
.intro-card h2{
  font-family:var(--sans);
  font-size:.9375rem;
  font-weight:700;
  color:var(--blue-900);
  margin-bottom:1rem;
}
.intro-card h3{
  font-family:var(--sans);
  font-size:.875rem;
  font-weight:700;
  color:var(--blue-900);
  margin-bottom:.75rem;
}
.intro-card p{
  font-size:.8125rem;
  color:var(--gray-600);
  line-height:1.65;
}
/* TOC compatto */
.toc-compact{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.5rem;
}
@media(max-width:520px){
  .toc-compact{grid-template-columns:1fr}
}
.toc-compact a{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.8125rem;
  font-weight:500;
  color:var(--gray-700);
  padding:.625rem .875rem;
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  transition:all .15s;
}
.toc-compact a:hover{
  border-color:var(--blue-500);
  color:var(--blue-600);
  background:var(--blue-50);
}
.toc-compact a::before{
  content:'';
  width:6px;height:6px;
  background:var(--blue-500);
  border-radius:50%;
  flex-shrink:0;
}

/* ═══════════════════════════════════════
   BROKER TABLE — DESKTOP
   ═══════════════════════════════════════ */
.broker-table-desktop{
  overflow-x:auto;
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  background:var(--white);
}
@media(max-width:860px){
  .broker-table-desktop{display:none}
}
.broker-table{
  width:100%;
  border-collapse:collapse;
  font-size:.8125rem;
}
.broker-table thead{
  background:var(--blue-900);
  color:var(--white);
}
.broker-table th{
  font-weight:600;
  text-align:left;
  padding:.875rem 1rem;
  white-space:nowrap;
}
.broker-table th:first-child{padding-left:1.25rem}
.broker-table th:last-child{padding-right:1.25rem}
.broker-table td{
  padding:1rem;
  color:var(--gray-700);
  border-bottom:1px solid var(--gray-100);
  vertical-align:middle;
}
.broker-table td:first-child{padding-left:1.25rem}
.broker-table td:last-child{padding-right:1.25rem;text-align:right}
.broker-table tbody tr:last-child td{border-bottom:none}
.broker-table tbody tr:hover{background:var(--gray-50)}

/* Broker cell con logo */
.broker-cell{
  display:flex;
  align-items:center;
  gap:.75rem;
  min-width:160px;
}
.broker-table-logo{
  width:40px;height:40px;
  object-fit:contain;
  border-radius:8px;
  border:1px solid var(--gray-200);
  background:var(--white);
  flex-shrink:0;
}
.broker-cell strong{
  display:block;
  font-weight:600;
  color:var(--blue-900);
}
.broker-rating-small{
  font-size:.6875rem;
  font-weight:600;
  color:var(--blue-600);
  background:var(--blue-50);
  padding:.125rem .375rem;
  border-radius:4px;
}
.mercati-cell{
  max-width:180px;
  font-size:.75rem;
  color:var(--gray-500);
}

/* Badge fiscalità */
.fiscalita-badge{
  display:inline-block;
  font-size:.6875rem;
  font-weight:600;
  padding:.25rem .5rem;
  border-radius:4px;
  white-space:nowrap;
}
.fiscalita-amministrato{
  background:var(--green-50);
  color:var(--green-600);
}
.fiscalita-dichiarativo{
  background:var(--amber-50);
  color:var(--amber-600);
}

/* ═══════════════════════════════════════
   BROKER TABLE — MOBILE CARDS
   ═══════════════════════════════════════ */
.broker-table-mobile{
  display:none;
}
@media(max-width:860px){
  .broker-table-mobile{
    display:flex;
    flex-direction:column;
    gap:.75rem;
  }
}
.broker-card-mobile{
  display:block;
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:0;
  transition:all .15s;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.broker-card-mobile:hover,
.broker-card-mobile:active{
  border-color:var(--blue-500);
  box-shadow:0 4px 12px rgba(46,107,214,.12);
}
.broker-card-mobile-header{
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:1rem 1.25rem;
  border-bottom:1px solid var(--gray-100);
}
.broker-rank{
  font-size:.625rem;
  font-weight:700;
  color:var(--gray-500);
  background:var(--gray-100);
  padding:.25rem .5rem;
  border-radius:4px;
}
.broker-card-mobile-logo{
  width:44px;height:44px;
  object-fit:contain;
  border-radius:8px;
  border:1px solid var(--gray-200);
  background:var(--white);
}
.broker-card-mobile-name{
  flex:1;
}
.broker-card-mobile-name strong{
  display:block;
  font-size:.9375rem;
  font-weight:700;
  color:var(--blue-900);
}
.broker-card-arrow{
  width:20px;height:20px;
  color:var(--gray-400);
  flex-shrink:0;
}
.broker-card-mobile-body{
  padding:1rem 1.25rem;
}
.broker-card-mobile-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.5rem 0;
  border-bottom:1px solid var(--gray-100);
}
.broker-card-mobile-row:last-child{border-bottom:none}
.broker-card-mobile-row .label{
  font-size:.75rem;
  font-weight:600;
  color:var(--gray-500);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.broker-card-mobile-row .value{
  font-size:.8125rem;
  color:var(--gray-700);
  text-align:right;
  max-width:60%;
}
.broker-card-mobile-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:1rem 1.25rem;
  background:var(--blue-600);
  color:var(--white);
  font-size:.8125rem;
  font-weight:600;
  border-radius:0 0 var(--radius-lg) var(--radius-lg);
  transition:background .15s;
}
.broker-card-mobile-cta svg{
  width:16px;height:16px;
}
.broker-card-mobile:hover .broker-card-mobile-cta,
.broker-card-mobile:active .broker-card-mobile-cta{
  background:var(--blue-700);
}

/* ═══════════════════════════════════════
   FISCALITA SECTION — FIX PADDING
   ═══════════════════════════════════════ */
.fiscalita-section{
  padding:3rem 0;
  background:var(--gray-50);
}
.fiscalita-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:1.5rem;
  max-width:var(--width-full);
  margin:0 auto;
  padding:0 2rem;
  align-items:start;
}
@media(max-width:860px){
  .fiscalita-grid{grid-template-columns:1fr}
}
.fiscalita-card{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:2rem;
}
.fiscalita-card h2{
  font-family:var(--serif);
  font-size:1.375rem;
  color:var(--blue-900);
  margin-bottom:1rem;
}
.fiscalita-card p{
  font-size:.9375rem;
  line-height:1.75;
  color:var(--gray-700);
  margin-bottom:1rem;
}
.fiscalita-card p:last-of-type{margin-bottom:1.5rem}
.fiscalita-sidebar{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:1.5rem;
}
.fiscalita-sidebar h3{
  font-family:var(--sans);
  font-size:.9375rem;
  font-weight:700;
  color:var(--blue-900);
  margin-bottom:1rem;
}
.fiscalita-sidebar ul{
  list-style:none;
  padding:0;
}
.fiscalita-sidebar li{
  position:relative;
  font-size:.8125rem;
  color:var(--gray-600);
  line-height:1.6;
  padding:.5rem 0 .5rem 1.25rem;
  border-bottom:1px solid var(--gray-100);
}
.fiscalita-sidebar li:last-child{border-bottom:none}
.fiscalita-sidebar li::before{
  content:'';
  position:absolute;
  left:0;top:.875rem;
  width:6px;height:6px;
  background:var(--blue-500);
  border-radius:50%;
}

/* Button small */
.btn-sm{
  padding:.5rem 1rem;
  font-size:.75rem;
}

/* ═══════════════════════════════════════
   ANIMATIONS
   ═══════════════════════════════════════ */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}
.hero-chip,.hero h1,.hero p,.hero-actions,.pillars{animation:fadeUp .5s ease-out both}
.hero h1{animation-delay:.06s}
.hero p{animation-delay:.12s}
.hero-actions{animation-delay:.18s}
.pillars{animation-delay:.24s}

/* ═══════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════ */
@media(max-width:860px){

  .cards,.arch-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;row-gap:2.5rem}
  .step::before{display:none}
  .pos-grid{grid-template-columns:1fr;gap:1rem}
  .pillars{flex-wrap:wrap;gap:1.5rem}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .related-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .steps{grid-template-columns:1fr}
  .hero{padding:3rem 1.25rem 2.5rem}
  .hero--article{padding:2rem 0}
  .hero--article .container{padding:0 1.25rem}
  .pillars{padding:0 1.25rem 3rem}
  .container{padding:0 1.25rem}
  .topbar-inner{padding:0 1.25rem;height:52px}
  .footer-grid{grid-template-columns:1fr;gap:1.5rem}
  .author-strip{gap:1rem}
  .author-chip{flex-basis:calc(50% - .5rem)}
  .article-content{padding:2rem 1.25rem 3rem}
  .breadcrumbs{padding:1rem 1.25rem}
}

/* ═══════════════════════════════════════
   BROKER CARD V2 — Layout per testi lunghi
   ═══════════════════════════════════════ */
.broker-grid-v2{
  display:flex;
  flex-direction:column;
  gap:2rem;
}
.broker-card-v2{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.broker-card-v2__header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding:1.5rem 1.75rem;
  background:var(--gray-50);
  border-bottom:1px solid var(--gray-200);
}
.broker-card-v2__identity{
  display:flex;
  align-items:center;
  gap:1rem;
}
.broker-card-v2__logo{
  width:56px;height:56px;
  object-fit:contain;
  border-radius:10px;
  border:1px solid var(--gray-200);
  background:var(--white);
  flex-shrink:0;
}
.broker-card-v2__logo--placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--sans);
  font-size:.875rem;
  font-weight:700;
  color:var(--blue-600);
  background:var(--blue-50);
  border:1px solid var(--blue-100);
}
.broker-card-v2__rank{
  font-size:.6875rem;
  font-weight:700;
  color:var(--blue-600);
  text-transform:uppercase;
  letter-spacing:.05em;
}
.broker-card-v2__name{
  font-family:var(--serif);
  font-size:1.375rem;
  font-weight:700;
  color:var(--blue-900);
  margin:0;
}
.broker-card-v2__rating{
  font-family:var(--sans);
  font-size:1.5rem;
  font-weight:700;
  color:var(--blue-900);
  white-space:nowrap;
}
.broker-card-v2__rating span{
  font-size:.875rem;
  font-weight:600;
  color:var(--gray-500);
}
.broker-card-v2__eyebrow{
  padding:1rem 1.75rem;
  font-size:.8125rem;
  font-weight:600;
  color:var(--blue-600);
  background:var(--blue-50);
  border-bottom:1px solid var(--blue-100);
}
.broker-card-v2__content{
  padding:1.5rem 1.75rem;
}
.broker-card-v2__content p{
  font-size:.9375rem;
  line-height:1.75;
  color:var(--gray-700);
  margin-bottom:1rem;
}
.broker-card-v2__content p:last-child{margin-bottom:0}
.broker-card-v2__cta{
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1rem 1.75rem;
  border-top:1px solid var(--gray-100);
  background:var(--gray-50);
}
.broker-card-v2__details{
  padding:1.5rem 1.75rem;
  border-top:1px solid var(--gray-200);
}
.broker-card-v2__details .proscons{
  margin-bottom:1.5rem;
}
.broker-card-v2__details .meta-grid{
  padding-top:1rem;
  border-top:1px solid var(--gray-100);
}

/* ═══════════════════════════════════════
   SECTION PROSE — Per contenuti verbosi
   ═══════════════════════════════════════ */
.section--prose{
  padding:3rem 0;
  background:var(--gray-50);
}
.container--narrow{
  max-width:760px;
  margin:0 auto;
  padding:0 2rem;
}
.section--prose h2{
  font-family:var(--serif);
  font-size:1.5rem;
  font-weight:700;
  color:var(--blue-900);
  margin-bottom:1.25rem;
}
.section--prose h3{
  font-family:var(--sans);
  font-size:1rem;
  font-weight:700;
  color:var(--blue-900);
  margin-top:2rem;
  margin-bottom:.75rem;
}
.section--prose p{
  font-size:.9375rem;
  line-height:1.8;
  color:var(--gray-700);
  margin-bottom:1rem;
}

/* ═══════════════════════════════════════
   FAQ GRID — Layout domande frequenti
   ═══════════════════════════════════════ */
.faq-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.5rem;
}
@media(max-width:860px){
  .faq-grid{grid-template-columns:1fr}
}
.faq-item{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:1.5rem;
}
.faq-item h3{
  font-family:var(--sans);
  font-size:.9375rem;
  font-weight:700;
  color:var(--blue-900);
  margin-bottom:.75rem;
}
.faq-item p{
  font-size:.8125rem;
  line-height:1.7;
  color:var(--gray-600);
  margin:0;
}

/* ═══════════════════════════════════════
   FISCALITA — Variante wide per più testo
   ═══════════════════════════════════════ */
.fiscalita-grid--wide{
  grid-template-columns:1.4fr 1fr;
}
@media(max-width:860px){
  .fiscalita-grid--wide{grid-template-columns:1fr}
}
.fiscalita-card--main{
  padding:2rem 2.25rem;
}
.fiscalita-card--main h2{
  font-size:1.5rem;
  margin-bottom:1.25rem;
}
.fiscalita-card--main p{
  font-size:.9375rem;
  line-height:1.8;
  margin-bottom:1.25rem;
}
.fiscalita-card--main .btn-primary{
  margin-top:.5rem;
}

/* ═══════════════════════════════════════
   RESPONSIVE V2
   ═══════════════════════════════════════ */
@media(max-width:520px){
  .broker-card-v2__header{
    flex-direction:column;
    gap:1rem;
  }
  .broker-card-v2__rating{
    align-self:flex-start;
  }
  .broker-card-v2__cta{
    flex-direction:column;
    gap:.75rem;
  }
  .broker-card-v2__cta .btn-primary,
  .broker-card-v2__cta .btn-ghost{
    width:100%;
    justify-content:center;
  }
  .container--narrow{
    padding:0 1.25rem;
  }
  .fiscalita-card--main{
    padding:1.5rem;
  }
}

/* CTA desktop e hamburger */
.topbar-nav{
  display:flex;
  align-items:center;
  gap:1.75rem;
}

.topbar-nav a{
  font-size:.8125rem;
  font-weight:500;
  color:var(--gray-600);
  transition:color .15s;
}

.topbar-nav a:hover{
  color:var(--blue-900);
}

@media(max-width:860px){
  .topbar-nav,
  .topbar-cta{
    display:none;
  }

  .menu-toggle{
    display:inline-flex;
  }

  .mobile-menu.is-open{
    display:block;
  }
}

.menu-toggle{
  display:none;
  width:40px;
  height:40px;
  border:1px solid var(--gray-200);
  border-radius:10px;
  background:#fff;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  cursor:pointer;
}

.menu-toggle span{
  display:block;
  width:18px;
  height:2px;
  background:var(--blue-900);
  border-radius:2px;
}

.mobile-menu{
  display:none;
}

.mobile-menu-nav{
  display:flex;
  flex-direction:column;
  padding:1rem 1.25rem 1.25rem;
  background:#fff;
  border-top:1px solid var(--gray-200);
}

.mobile-menu-nav a{
  display:block;
  padding:.9rem 0;
  border-bottom:1px solid var(--gray-100);
}

.mobile-menu-cta{
  width:100%;
  justify-content:center;
  margin-top:.75rem;
  border-bottom:none !important;
}

@media(max-width:860px){
  .topbar-nav,
  .topbar-cta{
    display:none;
  }

  .menu-toggle{
    display:inline-flex;
  }

  .mobile-menu.is-open{
    display:block;
  }
}