  /*
   T heme Name:   Divi Child - No Tasse                              *
   Template:     Divi
   Version:      1.0
   */

  /* Incolla qui tutto il contenuto di config/custom-css.css */

  /* ===========================================================
   *  NO TASSE SUI DENTI — Custom CSS per WordPress/Divi
   *  Generato dal design prototype (Claude Design)
   *  Inserire in: Divi > Theme Options > General > Custom CSS
   *  oppure nel child theme style.css
   *  ===========================================================
   *  Palette: #ff3c38 (red) · #28347c (navy) · #f7f4ec (cream)
   *  Type: Archivo Black / Archivo (TT Commons stand-in)
   *  =========================================================== */

  :root{
      --red: #ff3c38;
      --red-dark: #e52b28;
      --navy: #28347c;
      --navy-dark: #1b245c;
      --white: #ffffff;
      --cream: #f7f4ec;
      --ink: #121428;
      --gray-100: #f2f2f5;
      --gray-200: #e4e4ea;
      --gray-500: #6b6b78;

      --fs-hero: clamp(54px, 10vw, 180px);
      --fs-h1: clamp(40px, 6vw, 96px);
      --fs-h2: clamp(30px, 4vw, 64px);
      --fs-h3: clamp(22px, 2.4vw, 34px);
      --fs-body: clamp(16px, 1.15vw, 19px);

      --bar: 54px;
      --nav: 84px;
      --top-offset: calc(var(--bar) + var(--nav));
  }

  /* ----------------------------- reset & base ----------------------------- */
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
      font-family: 'Archivo', system-ui, sans-serif;
      font-size: var(--fs-body);
      line-height: 1.55;
      color: var(--ink);
      background: var(--white);
      -webkit-font-smoothing: antialiased;
      padding-top: var(--top-offset);
  }
  a{color:inherit; text-decoration: none}

  /* ----------------------------- headings ----------------------------- */
  h1,h2,h3,h4{
      font-family: 'Archivo Black', 'Archivo', sans-serif;
      font-weight: 900;
      line-height: 0.92;
      letter-spacing: -0.02em;
      margin: 0;
      text-wrap: balance;
  }
  h1{font-size: var(--fs-h1)}
  h2{font-size: var(--fs-h2)}
  h3{font-size: var(--fs-h3)}

  .display{
      font-family:'Archivo Black', sans-serif;
      font-weight:900;
      letter-spacing:-0.03em;
      line-height:0.9;
  }
  .eyebrow{
      font-family:'Archivo', sans-serif;
      font-weight:700;
      font-size:13px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--navy);
  }

  /* ----------------------------- layout ----------------------------- */
  .container{
      max-width: 1320px;
      margin: 0 auto;
      padding: 0 32px;
  }
  @media (max-width: 640px){
      .container{padding: 0 20px}
  }
  .section{padding: 96px 0}
  .section-tight{padding: 64px 0}
  @media (max-width: 640px){
      .section{padding: 64px 0}
  }

  /* ----------------------------- sticky vote banner ----------------------------- */
  .vote-bar{
      position: fixed;
      top: 0; left: 0; right: 0;
      height: var(--bar);
      background: var(--red);
      color: var(--white);
      display:flex; align-items:center; justify-content:center;
      gap: 18px;
      font-family:'Archivo Black', sans-serif;
      font-size: 15px;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      z-index: 1000;
      overflow: hidden;
      border-bottom: 1px solid rgba(255,255,255,0.2);
  }
  .vote-bar .marquee{
      display:flex;
      gap: 64px;
      white-space: nowrap;
      animation: scroll 38s linear infinite;
      padding-left: 64px;
  }
  .vote-bar .marquee span{
      display:inline-flex; align-items:center; gap:18px; font-size:15px;
  }
  .vote-bar .marquee .dot{
      width: 8px; height: 8px; background: var(--white); border-radius: 50%;
      display:inline-block;
  }
  @keyframes scroll{
      from{ transform: translateX(0) }
      to{ transform: translateX(-50%) }
  }

  /* ----------------------------- main nav ----------------------------- */
  .nav{
      position: fixed;
      top: var(--bar); left: 0; right: 0;
      height: var(--nav);
      background: var(--white);
      border-bottom: 1px solid var(--gray-200);
      z-index: 999;
      display:flex; align-items:center;
  }
  .nav-inner{
      width: 100%;
      display:flex; align-items:center; justify-content: space-between;
      gap: 32px;
  }
  .logo{
      display:flex; align-items:center; gap: 12px;
      font-family:'Archivo Black', sans-serif;
      font-size: 20px;
      letter-spacing: -0.02em;
      line-height: 1;
      color: var(--navy);
  }
  .logo-mark{
      display:inline-flex; align-items:center; justify-content:center;
      background: var(--red); color: var(--white);
      font-family:'Archivo Black', sans-serif;
      font-size: 22px;
      padding: 10px 14px 8px;
      transform: rotate(-4deg);
      line-height: 1;
      letter-spacing: -0.02em;
      box-shadow: 3px 3px 0 var(--navy);
  }
  .logo-text small{
      display:block; font-family:'Archivo', sans-serif; font-weight:700;
      font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--ink); opacity:0.6; margin-top:2px;
  }
  .nav-links{
      display:flex; align-items:center; gap: 4px;
      list-style: none; margin: 0; padding: 0;
  }
  .nav-links a{
      display:inline-block;
      padding: 10px 14px;
      font-family:'Archivo', sans-serif;
      font-weight: 700;
      font-size: 15px;
      color: var(--ink);
      position:relative;
      transition: color .15s;
  }
  .nav-links a:hover{ color: var(--red) }
  .nav-links a.active{ color: var(--red) }
  .nav-links a.active::after{
      content:""; position:absolute; left: 14px; right: 14px; bottom: 4px;
      height: 3px; background: var(--red);
  }
  .nav-cta{
      background: var(--navy);
      color: var(--white);
      padding: 12px 20px;
      font-family:'Archivo Black', sans-serif;
      font-size: 14px;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      display:inline-flex; align-items:center; gap: 8px;
      transition: transform .15s, background .15s;
  }
  .nav-cta:hover{ background: var(--red); transform: translateY(-1px) }

  .nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding: 8px }
  .nav-toggle svg{ width: 28px; height: 28px; color: var(--navy) }

  @media (max-width: 980px){
      .nav-links, .nav-cta{ display:none }
      .nav-toggle{ display:inline-flex }
      .nav.open .nav-mobile{ display:flex }
      .nav-mobile{
          display:none;
          position: fixed; top: calc(var(--bar) + var(--nav)); left: 0; right: 0;
          background: var(--white);
          flex-direction: column;
          padding: 16px;
          border-bottom: 1px solid var(--gray-200);
          box-shadow: 0 12px 24px rgba(0,0,0,0.08);
      }
      .nav-mobile a{
          padding: 14px 12px;
          font-family:'Archivo Black', sans-serif;
          font-size: 18px;
          border-bottom: 1px solid var(--gray-200);
      }
      .nav-mobile a:last-child{ border-bottom: none }
      .nav-mobile a.active{ color: var(--red) }
  }
  @media (min-width: 981px){
      .nav-mobile{ display:none !important }
  }

  /* ----------------------------- buttons ----------------------------- */
  .btn{
      display:inline-flex; align-items:center; gap: 10px;
      padding: 16px 28px;
      font-family:'Archivo Black', sans-serif;
      font-size: 16px;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      cursor: pointer;
      border: none;
      transition: transform .15s, background .15s, color .15s;
      line-height: 1;
  }
  .btn-red{ background: var(--red); color: var(--white); box-shadow: 4px 4px 0 var(--navy) }
  .btn-red:hover{ background: var(--red-dark); transform: translate(-2px,-2px); box-shadow: 6px 6px 0 var(--navy) }
  .btn-navy{ background: var(--navy); color: var(--white) }
  .btn-navy:hover{ background: var(--navy-dark) }
  .btn-ghost{
      background: transparent; color: var(--navy);
      border: 2px solid var(--navy);
  }
  .btn-ghost:hover{ background: var(--navy); color: var(--white) }
  .btn-white{ background: var(--white); color: var(--navy) }
  .btn-white:hover{ background: var(--cream) }

  /* ----------------------------- NO stamp ----------------------------- */
  .no-stamp{
      display:inline-flex; align-items:center; justify-content:center;
      background: var(--red); color: var(--white);
      font-family:'Archivo Black', sans-serif;
      padding: 12px 24px 10px;
      transform: rotate(-6deg);
      box-shadow: 6px 6px 0 var(--navy);
      letter-spacing: -0.03em;
      line-height: 0.9;
  }
  .no-stamp.sm{ font-size: 22px; padding: 6px 12px }
  .no-stamp.md{ font-size: 48px; padding: 10px 22px }
  .no-stamp.lg{ font-size: 110px; padding: 16px 40px }

  /* ----------------------------- bam tag ----------------------------- */
  .bam{
      display:inline-block;
      background: var(--navy);
      color: var(--white);
      font-family:'Archivo Black', sans-serif;
      padding: 8px 16px 6px;
      transform: rotate(4deg);
      letter-spacing: 0.02em;
      font-size: 18px;
  }

  /* ----------------------------- page header (inner pages) ----------------------------- */
  .page-header{
      background: var(--cream);
      padding: 137px 0 56px;
      border-bottom: 4px solid var(--navy);
      position: relative;
      overflow: hidden;
  }
  .page-header .crumbs{
      font-family:'Archivo', sans-serif;
      font-weight:700;
      font-size: 13px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--navy);
      margin-bottom: 20px;
      display:flex; align-items:center; gap: 10px;
  }
  .page-header h1{
      color: var(--navy);
      font-size: clamp(48px, 7vw, 112px);
      line-height: 0.9;
  }
  .page-header .page-intro{
      margin-top: 24px;
      font-size: clamp(17px, 1.5vw, 22px);
      max-width: 760px;
      color: var(--ink);
      line-height: 1.45;
  }
  .page-header .corner-no{
      position: absolute;
      right: -20px; top: 50%;
      transform: translateY(-50%) rotate(-8deg);
      font-family:'Archivo Black', sans-serif;
      color: var(--red);
      font-size: clamp(140px, 22vw, 340px);
      opacity: 0.08;
      pointer-events: none;
      line-height: 1;
      letter-spacing: -0.05em;
  }
  @media (max-width: 981px){
  .page-header{
      background: var(--cream);
      padding: 56px 0 56px;
      border-bottom: 4px solid var(--navy);
      position: relative;
      overflow: hidden;
  }
  }
  /* ============================= HOME PAGE ============================= */

  /* -- Hero A: K-Visual (default) -- */
  .hero{ position:relative; overflow:hidden }
  .hero-variant{ display: none }
  .hero-variant.active{ display: block }

  .hero-kvisual{
      background: var(--navy);
      color: var(--white);
      padding: 140px 0 120px;
      position: relative;
  }
  .hero-kvisual::before{
      content:""; position:absolute; inset:0;
      background-image: radial-gradient(circle, rgba(255,255,255,0.08) 1.5px, transparent 1.5px);
      background-size: 28px 28px;
      pointer-events:none;
  }
  .hero-kvisual .kv-grid{
      display:grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items:center;
      position: relative; z-index: 2;
  }
  @media (max-width: 900px){ .hero-kvisual .kv-grid{ grid-template-columns: 1fr } }
  .hero-kvisual h1{
      font-family:'Archivo Black', sans-serif;
      font-size: clamp(52px, 7.6vw, 120px);
      line-height: 0.85;
      letter-spacing: -0.035em;
      color: var(--white);
  }
  .hero-kvisual h1 em{
      font-style: normal;
      color: var(--red);
  }
  .hero-kvisual .sub{
      font-size: clamp(18px, 1.6vw, 24px);
      line-height: 1.4;
      max-width: 520px;
      margin-top: 28px;
      color: rgba(255,255,255,0.9);
      font-weight: 500;
  }
  .hero-kvisual .cta-row{ display:flex; gap: 14px; margin-top: 36px; flex-wrap: wrap }
  .kv-no{
      position: relative;
      display:flex; flex-direction: column; justify-content:flex-start; align-items:center;
      min-height: 520px;
  }
  .kv-no .giant-no{
      font-family:'Archivo Black', sans-serif;
      font-size: clamp(150px, 18vw, 260px);
      color: var(--red);
      line-height: 0.85;
      letter-spacing: -0.06em;
      text-shadow: 10px 10px 0 rgba(0,0,0,0.35);
      transform: rotate(-4deg);
      white-space: nowrap;
      position: relative;
      z-index: 4;
      margin-top: -0.33em;
  }
  .kv-boxer{
      display: block;
      width: 100%;
      max-width: 460px;
      height: auto;
      position: relative;
      z-index: 2;
      filter: drop-shadow(8px 8px 0 rgba(0,0,0,0.35));
      background: transparent;
  }
  .kv-no .bam-top{
      position: absolute;
      top: 12px; right: 20px;
      transform: rotate(8deg);
      background: var(--white); color: var(--navy);
      font-family:'Archivo Black';
      padding: 10px 18px;
      font-size: 22px;
      letter-spacing: 0.02em;
      box-shadow: 4px 4px 0 var(--red);
      z-index: 5;
  }
  .hero-kvisual .meta-bottom{
      margin-top: 64px;
      position: relative; z-index: 2;
      display:flex; justify-content: space-between; align-items:flex-end; flex-wrap:wrap; gap: 20px;
      color: rgba(255,255,255,0.75);
      font-family:'Archivo Black', sans-serif; font-size: 14px;
      letter-spacing: 0.18em; text-transform: uppercase;
      border-top: 1px solid rgba(255,255,255,0.15);
      padding-top: 24px;
  }
  .hero-kvisual .meta-bottom strong{ color: var(--white) }

  /* -- Hero B: Countdown -- */
  .hero-countdown{
      background: var(--red);
      color: var(--white);
      padding: 96px 0 120px;
      position: relative;
      overflow: hidden;
  }
  .hero-countdown::before{
      content:"";
      position: absolute; inset: 0;
      background: repeating-linear-gradient(135deg, transparent 0 40px, rgba(255,255,255,0.06) 40px 41px);
      pointer-events:none;
  }
  .hero-countdown .ctd-eyebrow{
      display:inline-block;
      background: var(--navy); color: var(--white);
      padding: 8px 16px 6px; font-family:'Archivo Black'; font-size: 14px;
      letter-spacing: 0.18em; text-transform: uppercase;
      transform: rotate(-2deg); margin-bottom: 24px;
  }
  .hero-countdown h1{
      font-size: clamp(56px, 8vw, 130px);
      color: var(--white);
      line-height: 0.88;
      max-width: 1100px;
  }
  .hero-countdown h1 span{ color: var(--navy) }
  .countdown-grid{
      margin-top: 48px;
      display:grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
      max-width: 780px;
  }
  @media (max-width: 720px){ .countdown-grid{ grid-template-columns: repeat(2, 1fr) } }
  .cd-box{
      background: var(--white); color: var(--navy);
      padding: 24px; text-align: center;
      box-shadow: 6px 6px 0 var(--navy);
  }
  .cd-num{ font-family:'Archivo Black'; font-size: clamp(44px, 5vw, 72px); line-height: 1; letter-spacing: -0.03em }
  .cd-lbl{ font-family:'Archivo', sans-serif; font-weight:700; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; margin-top: 8px }
  .hero-countdown .cta-row{ display:flex; gap: 14px; margin-top: 40px; flex-wrap: wrap }
  .hero-countdown .no-float{
      position:absolute; right: -30px; bottom: -40px;
      font-family:'Archivo Black', sans-serif;
      font-size: clamp(260px, 32vw, 480px);
      color: rgba(0,0,0,0.08);
      line-height: 0.8;
      transform: rotate(-10deg);
      pointer-events: none;
  }

  /* -- Hero C: Mixed / newspaper -- */
  .hero-mixed{
      background: var(--cream);
      padding: 80px 0 0;
      position: relative;
  }
  .hero-mixed .mx-grid{
      display:grid; grid-template-columns: 1.4fr 1fr; gap: 60px; align-items:start;
  }
  @media (max-width: 960px){ .hero-mixed .mx-grid{ grid-template-columns: 1fr } }
  .hero-mixed .tag{
      display:inline-flex; align-items:center; gap: 8px;
      background: var(--red); color: var(--white);
      font-family:'Archivo Black'; font-size: 13px;
      letter-spacing: 0.18em; text-transform: uppercase;
      padding: 8px 14px 6px;
      margin-bottom: 28px;
  }
  .hero-mixed h1{
      font-size: clamp(54px, 7.6vw, 132px);
      color: var(--navy);
      line-height: 0.88;
  }
  .hero-mixed h1 em{ font-style: normal; color: var(--red) }
  .hero-mixed .lead{
      margin-top: 24px; font-size: clamp(17px, 1.4vw, 22px); max-width: 620px;
      line-height: 1.5; color: var(--ink);
  }
  .hero-mixed .cta-row{ display:flex; gap: 14px; margin-top: 28px; flex-wrap: wrap }
  .mx-side{
      background: var(--navy); color: var(--white);
      padding: 32px; position: relative;
      box-shadow: 10px 10px 0 var(--red);
  }
  .mx-side .date-big{
      font-family:'Archivo Black'; font-size: clamp(56px, 7vw, 96px);
      line-height: 0.9; letter-spacing: -0.03em;
      color: var(--white);
  }
  .mx-side .date-big span{ color: var(--red) }
  .mx-side .date-lbl{
      font-family:'Archivo Black'; font-size: 13px; letter-spacing: 0.22em;
      text-transform: uppercase; color: rgba(255,255,255,0.7); margin-bottom: 12px;
  }
  .mx-side hr{
      border: 0; border-top: 2px solid rgba(255,255,255,0.2); margin: 24px 0;
  }
  .mx-side .fact-list{
      list-style: none; padding: 0; margin: 0;
      display:flex; flex-direction: column; gap: 14px;
      font-size: 15px; line-height: 1.4;
  }
  .mx-side .fact-list li{
      display:flex; align-items: baseline; gap: 12px;
  }
  .mx-side .fact-list b{
      color: var(--red);
      font-family:'Archivo Black'; font-size: 22px; line-height: 1;
      flex-shrink: 0; min-width: 42px;
  }
  .hero-mixed .strip{
      margin-top: 72px;
      background: var(--red); color: var(--white);
      padding: 20px 0;
      font-family:'Archivo Black';
      font-size: clamp(22px, 3vw, 40px);
      letter-spacing: -0.01em;
      overflow: hidden;
      white-space: nowrap;
  }
  .hero-mixed .strip .track{
      display:inline-flex; gap: 48px;
      animation: scroll 32s linear infinite;
  }
  .hero-mixed .strip .track span{ display:inline-flex; align-items:center; gap: 48px }
  .hero-mixed .strip .track em{ font-style: normal; background: var(--white); color: var(--red); padding: 4px 10px }

  /* -- Pillars -- */
  .pillars{
      background: var(--white);
      padding: 80px 0;
  }
  .pillars .container{
      display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  }
  @media (max-width: 900px){ .pillars .container{ grid-template-columns: 1fr } }
  .pillar{
      border: 3px solid var(--navy);
      padding: 28px;
      position: relative;
      background: var(--white);
      transition: transform .2s;
  }
  .pillar:hover{ transform: translate(-4px,-4px); box-shadow: 8px 8px 0 var(--red) }
  .pillar .p-num{
      font-family:'Archivo Black'; font-size: 64px; color: var(--red);
      line-height: 1; letter-spacing: -0.04em; margin-bottom: 8px;
  }
  .pillar h3{ color: var(--navy); font-size: 22px; line-height: 1.1; margin-bottom: 12px }
  .pillar p{ font-size: 15px; line-height: 1.55; margin: 0 }

  /* -- Intro split -- */
  .intro-split{
      background: var(--cream);
      padding: 96px 0;
  }
  .intro-split .container{
      display:grid; grid-template-columns: 1.1fr 1fr; gap: 72px; align-items: center;
  }
  @media (max-width: 900px){ .intro-split .container{ grid-template-columns: 1fr; gap: 40px } }
  .intro-split h2{ color: var(--navy); font-size: clamp(38px, 5vw, 72px) }
  .intro-split h2 em{ font-style: normal; color: var(--red) }
  .intro-split p{ margin-top: 24px; font-size: 17px; line-height: 1.6 }
  .intro-split .cta-row{ margin-top: 28px; display:flex; gap: 14px; flex-wrap: wrap }

  .intro-visual{
      position: relative;
      aspect-ratio: 4/5;
      background: var(--navy);
      padding: 32px;
      color: var(--white);
      display: flex; align-items: flex-end;
      overflow: hidden;
  }
  .intro-visual::before{
      content:""; position:absolute; inset:0;
      background: repeating-linear-gradient(135deg, transparent 0 24px, rgba(255,255,255,0.04) 24px 25px);
  }
  .intro-visual .iv-big{
      font-family:'Archivo Black'; font-size: clamp(110px, 16vw, 220px);
      line-height: 0.85; letter-spacing: -0.04em;
      position: absolute; top: 32px; left: 32px;
      color: var(--red);
  }
  .intro-visual .iv-stamp{
      position: absolute; top: 32px; right: 32px;
      transform: rotate(8deg);
  }
  .intro-visual .iv-caption{
      font-family:'Archivo Black'; font-size: 22px; line-height: 1;
      position: relative; z-index: 2;
      max-width: 280px;
  }
  .intro-visual .iv-caption small{
      display:block; font-family:'Archivo', sans-serif; font-weight: 600;
      font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(255,255,255,0.7); margin-top: 8px;
  }

  /* -- Voices / testimonials (home) -- */
  .voices{
      background: var(--white); padding: 96px 0;
  }
  .voices .container{
      display:grid; grid-template-columns: 1fr 1fr; gap: 48px;
  }
  @media (max-width: 900px){ .voices .container{ grid-template-columns: 1fr } }
  .voices .v-intro h2{ color: var(--navy); font-size: clamp(40px, 5vw, 72px) }
  .voices .v-intro h2 em{ font-style: normal; color: var(--red) }
  .voices .v-intro p{ font-size: 17px; line-height: 1.6; margin-top: 20px; max-width: 440px }
  .v-card{
      background: var(--cream);
      padding: 32px;
      position: relative;
      border-left: 6px solid var(--red);
  }
  .v-card + .v-card{ margin-top: 16px }
  .v-card .quote-mark{
      position:absolute; top: 12px; right: 20px;
      font-family:'Archivo Black';
      font-size: 96px; line-height: 1; color: var(--red); opacity: 0.25;
  }
  .v-card q{
      display:block; font-size: 17px; line-height: 1.55; quotes: "\00ab" "\00bb";
      font-weight: 500;
      margin-bottom: 16px;
  }
  .v-card q::before{ content: open-quote }
  .v-card q::after{ content: close-quote }
  .v-card .who{
      display:flex; align-items:center; gap: 14px;
      padding-top: 16px; border-top: 2px solid rgba(40,52,124,0.15);
  }
  .v-card .who .avatar{
      width: 48px; height: 48px; border-radius: 50%;
      background: var(--navy); color: var(--white);
      display:flex; align-items:center; justify-content:center;
      font-family:'Archivo Black'; font-size: 16px; flex-shrink: 0;
      overflow: hidden;
  }
  .v-card .who .avatar img{
      width: 100%; height: 100%; object-fit: cover; border-radius: 50%;
  }
  .v-card .who .name{ font-family:'Archivo Black'; font-size: 16px; color: var(--navy); line-height: 1.2 }
  .v-card .who .role{ font-size: 12px; letter-spacing: 0.08em; color: var(--gray-500); text-transform: uppercase; margin-top: 2px; line-height: 1.3 }

  /* -- Final CTA -- */
  .final-cta{
      background: var(--red);
      color: var(--white);
      padding: 120px 0;
      text-align: center;
      position: relative;
      overflow: hidden;
  }
  .final-cta::before{
      content:""; position:absolute; inset:0;
      background-image: radial-gradient(circle, rgba(255,255,255,0.1) 1.5px, transparent 1.5px);
      background-size: 28px 28px;
      pointer-events:none;
  }
  .final-cta h2{
      font-size: clamp(54px, 9vw, 150px);
      color: var(--white);
      line-height: 0.9;
      position: relative; z-index: 2;
  }
  .final-cta h2 em{
      font-style: normal;
      color: var(--navy);
      display: inline-block;
      transform: rotate(-2deg);
  }
  .final-cta p{ position: relative; z-index: 2; font-size: 20px; margin: 32px auto 0; max-width: 720px }
  .final-cta .cta-row{ position: relative; z-index: 2; margin-top: 40px; display:flex; gap: 16px; justify-content: center; flex-wrap: wrap }

  /* ============================= ARGOMENTI PAGE ============================= */

  .overview{
      background: var(--navy); color: var(--white);
      padding: 72px 0; position: relative; overflow: hidden;
  }
  .overview::before{
      content:""; position:absolute; inset:0;
      background-image: radial-gradient(circle, rgba(255,255,255,0.08) 1.5px, transparent 1.5px);
      background-size: 28px 28px;
  }
  .overview .container{ position: relative; z-index: 2 }
  .overview h2{
      color: var(--white); font-size: clamp(34px, 4.4vw, 56px);
      max-width: 900px; margin-bottom: 40px;
  }
  .overview h2 em{ font-style: normal; color: var(--red) }
  .overview .ov-grid{
      display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  }
  @media (max-width: 900px){ .overview .ov-grid{ grid-template-columns: 1fr } }
  .ov-item{
      border-left: 4px solid var(--red);
      padding: 20px 24px;
      background: rgba(255,255,255,0.04);
  }
  .ov-item h4{ color: var(--red); margin: 0 0 8px; font-size: 16px; letter-spacing: 0.08em; text-transform: uppercase }
  .ov-item p{ margin: 0; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.92) }

  .reasons{ padding: 112px 0; background: var(--white) }
  .reasons .r-head{ text-align: center; margin-bottom: 80px }
  .reasons .r-head h2{ color: var(--navy); font-size: clamp(44px, 6.5vw, 96px) }
  .reasons .r-head h2 em{ font-style: normal; color: var(--red) }

  .reason{
      display:grid; grid-template-columns: auto 1fr; gap: 48px; align-items: start;
      padding: 48px 0;
      border-bottom: 2px solid var(--gray-200);
  }
  .reason:last-child{ border-bottom: none }
  @media (max-width: 800px){ .reason{ grid-template-columns: 1fr; gap: 24px } }

  .reason .r-num{
      position: relative;
      display:flex; flex-direction: column; align-items:center; gap: 8px;
  }
  .reason .r-num .num-big{
      font-family:'Archivo Black', sans-serif;
      font-size: clamp(140px, 14vw, 220px);
      line-height: 0.8;
      color: var(--red);
      letter-spacing: -0.06em;
      text-shadow: 8px 8px 0 var(--navy);
  }
  .reason .r-num .no-tag{ transform: rotate(-4deg) }

  .reason .r-body h3{
      color: var(--navy);
      font-size: clamp(28px, 3.4vw, 48px);
      line-height: 1; margin-bottom: 20px;
  }
  .reason .r-body h3 em{ font-style: normal; color: var(--red); text-transform: uppercase }
  .reason .r-body p{ font-size: 17px; line-height: 1.65; margin: 0 0 14px }
  .reason .r-body .r-callout{
      margin-top: 24px;
      background: var(--cream);
      padding: 20px 24px;
      border-left: 4px solid var(--red);
      font-size: 15px; font-weight: 600; color: var(--navy);
  }

  .notcovered{
      background: var(--cream);
      padding: 96px 0;
      text-align: center;
  }
  .notcovered .eyebrow{ margin-bottom: 16px }
  .notcovered h2{
      color: var(--navy);
      font-size: clamp(40px, 5.5vw, 80px);
      max-width: 900px; margin: 0 auto 16px;
  }
  .notcovered h2 em{ font-style: normal; color: var(--red) }
  .notcovered p{ font-size: 17px; max-width: 640px; margin: 0 auto 40px }
  .nc-grid{
      display:grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
      max-width: 1100px; margin: 0 auto;
  }
  @media (max-width: 900px){ .nc-grid{ grid-template-columns: 1fr 1fr } }
  @media (max-width: 600px){ .nc-grid{ grid-template-columns: 1fr } }
  .nc-item{
      background: var(--white);
      border: 3px solid var(--navy);
      padding: 28px 20px 24px;
      text-align: center;
      position: relative;
  }
  .nc-item::before{
      content: "NO";
      position: absolute;
      top: -18px; left: 50%; transform: translateX(-50%) rotate(-6deg);
      background: var(--red); color: var(--white);
      font-family:'Archivo Black';
      padding: 6px 14px 4px;
      font-size: 18px;
      box-shadow: 3px 3px 0 var(--navy);
  }
  .nc-item h4{
      font-family:'Archivo Black';
      font-size: 24px; color: var(--navy); margin-top: 14px;
      letter-spacing: -0.02em;
  }
  .nc-item p{ font-size: 14px; margin-top: 8px; color: var(--gray-500) }

  .cta-inline{
      background: var(--red); color: var(--white);
      padding: 72px 0; text-align: center;
  }
  .cta-inline h3{
      font-size: clamp(36px, 5vw, 64px); line-height: 0.95;
      color: var(--white); max-width: 900px; margin: 0 auto 24px;
  }
  .cta-inline h3 em{ font-style: normal; color: var(--navy) }
  .cta-inline .cta-row{ display:flex; gap: 14px; justify-content: center; flex-wrap: wrap }

  /* ============================= FATTI PAGE ============================= */

  .intro-fatti{ padding: 80px 0; background: var(--white) }
  .intro-fatti p{ font-size: clamp(19px, 1.6vw, 24px); line-height: 1.5; max-width: 900px; font-weight: 500 }

  .facts-grid{ padding: 40px 0 112px; background: var(--white) }
  .facts-grid .grid{
      display:grid; grid-template-columns: repeat(6, 1fr); gap: 20px;
  }
  @media (max-width: 960px){ .facts-grid .grid{ grid-template-columns: 1fr 1fr } }
  .fact{
      padding: 40px 32px;
      position: relative;
      overflow: hidden;
      min-height: 340px;
      display:flex; flex-direction: column; justify-content: space-between;
  }
  .fact .f-num{
      font-family:'Archivo Black';
      line-height: 0.85;
      letter-spacing: -0.05em;
      margin: 0;
  }
  .fact .f-lbl{
      font-family:'Archivo Black';
      font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase;
      margin-bottom: 16px;
  }
  .fact p{
      font-size: 15px; line-height: 1.5; margin: 16px 0 0; max-width: 420px;
  }
  .fact.f1{ grid-column: span 4; background: var(--red); color: var(--white) }
  .fact.f1 .f-num{ font-size: clamp(100px, 14vw, 220px); color: var(--white) }
  .fact.f1 p{ color: rgba(255,255,255,0.95); font-size: 17px; max-width: 560px }
  .fact.f2{ grid-column: span 2; background: var(--navy); color: var(--white) }
  .fact.f2 .f-num{ font-size: clamp(70px, 8vw, 120px); color: var(--white) }
  .fact.f3{ grid-column: span 2; background: var(--cream); color: var(--navy); border: 3px solid var(--navy) }
  .fact.f3 .f-num{ font-size: clamp(72px, 8.5vw, 128px); color: var(--red) }
  .fact.f4{ grid-column: span 2; background: var(--navy); color: var(--white) }
  .fact.f4 .f-num{ font-size: clamp(60px, 7vw, 100px); color: var(--white) }
  .fact.f4 .f-num span{ color: var(--red) }
  .fact.f5{ grid-column: span 2; background: var(--red); color: var(--white) }
  .fact.f5 .f-num{ font-size: clamp(80px, 10vw, 160px); color: var(--white) }
  .fact .bam-deco{
      position: absolute;
      right: -10px; top: -10px;
      transform: rotate(8deg);
      font-family:'Archivo Black'; font-size: 14px;
      background: var(--white); color: var(--navy);
      padding: 6px 10px 4px;
      box-shadow: 2px 2px 0 rgba(0,0,0,0.2);
  }

  .compare{ background: var(--cream); padding: 112px 0 }
  .compare h2{ color: var(--navy); font-size: clamp(40px, 5.5vw, 80px); max-width: 900px }
  .compare h2 em{ font-style: normal; color: var(--red) }
  .compare .c-grid{
      display:grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 40px;
  }
  @media (max-width: 800px){ .compare .c-grid{ grid-template-columns: 1fr } }
  .compare-card{
      background: var(--white); padding: 32px; border-top: 8px solid;
  }
  .compare-card.now{ border-color: var(--navy) }
  .compare-card.prop{ border-color: var(--red) }
  .compare-card h3{ color: var(--navy); font-size: 28px; margin-bottom: 16px }
  .compare-card.prop h3{ color: var(--red) }
  .compare-card ul{ list-style: none; padding: 0; margin: 0; display:flex; flex-direction: column; gap: 12px }
  .compare-card li{ display:flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.5 }
  .compare-card li::before{ content: "\2713"; color: var(--navy); font-weight: 900; flex-shrink: 0 }
  .compare-card.prop li::before{ content: "\2717"; color: var(--red) }

  /* ============================= NEWS PAGE ============================= */

  .news-wrap{ padding: 80px 0 112px; background: var(--white) }
  .news-tabs{
      display:flex; gap: 8px; flex-wrap: wrap; margin-bottom: 40px;
  }
  .news-tab{
      padding: 10px 18px; border: 2px solid var(--navy); color: var(--navy);
      font-family:'Archivo Black'; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase;
      cursor: pointer; background: transparent;
  }
  .news-tab.active{ background: var(--navy); color: var(--white) }
  .news-tab:hover:not(.active){ background: var(--cream) }

  .news-featured{
      display:grid; grid-template-columns: 1.3fr 1fr; gap: 32px;
      padding: 32px; background: var(--navy); color: var(--white);
      margin-bottom: 48px; position: relative; overflow: hidden;
  }
  @media (max-width: 800px){ .news-featured{ grid-template-columns: 1fr } }
  .news-featured::before{
      content:""; position:absolute; inset:0;
      background-image: radial-gradient(circle, rgba(255,255,255,0.08) 1.5px, transparent 1.5px);
      background-size: 24px 24px;
  }
  .news-featured > *{ position: relative; z-index: 2 }
  .news-featured .tag{
      display:inline-block; background: var(--red); color: var(--white);
      font-family:'Archivo Black'; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase;
      padding: 6px 12px 4px; margin-bottom: 20px;
  }
  .news-featured h2{ color: var(--white); font-size: clamp(32px, 4vw, 56px); line-height: 0.95 }
  .news-featured .meta{
      margin-top: 16px; font-family:'Archivo'; font-weight: 600;
      font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase;
      color: rgba(255,255,255,0.7);
  }
  .news-featured .excerpt{ margin-top: 20px; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,0.92) }

  .news-grid{
      display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
  }
  @media (max-width: 900px){ .news-grid{ grid-template-columns: 1fr } }
  .news-card{
      background: var(--cream);
      display:flex; flex-direction: column;
      border: 2px solid transparent;
      transition: border-color .15s, transform .15s;
      cursor: pointer;
  }
  .news-card:hover{ border-color: var(--navy); transform: translateY(-4px) }
  .news-card .n-img{
      aspect-ratio: 16/10;
      background: var(--navy);
      position: relative;
      overflow: hidden;
      display:flex; align-items: center; justify-content: center;
  }
  .news-card .n-body{ padding: 24px }
  .news-card .n-meta{
      font-family:'Archivo'; font-weight:600; font-size: 12px;
      letter-spacing: 0.12em; text-transform: uppercase; color: var(--red);
      margin-bottom: 10px;
  }
  .news-card h3{
      color: var(--navy); font-size: 22px; line-height: 1.1; letter-spacing: -0.02em;
  }
  .news-card .excerpt{ margin-top: 12px; font-size: 14px; line-height: 1.55 }
  .news-card .read-more{
      display:inline-block; margin-top: 16px;
      font-family:'Archivo Black'; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--red);
  }

  /* ===== DIVI BLOG (fullwidth) → News card grid ===== */

  .news-wrap .et_pb_posts .et_pb_ajax_pagination_container {
      display: grid !important;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;
  }
  @media (max-width: 900px) {
      .news-wrap .et_pb_posts .et_pb_ajax_pagination_container {
          grid-template-columns: 1fr !important;
      }
  }
  .news-wrap .et_pb_post {
      background: var(--cream);
      border: 2px solid transparent;
      margin-bottom: 0 !important;
      padding: 0 !important;
      display: flex;
      flex-direction: column;
      transition: border-color .15s, transform .15s;
      width: 100% !important;
      overflow: hidden;
  }
  .news-wrap .et_pb_post:hover {
      border-color: var(--navy);
      transform: translateY(-4px);
  }
  .news-wrap .et_pb_post .entry-featured-image-url {
      display: block;
      aspect-ratio: 16/10;
      overflow: hidden;
  }
  .news-wrap .et_pb_post .entry-featured-image-url img {
      width: 100%; height: 100%;
      object-fit: cover;
  }
  .news-wrap .et_pb_post:not(:has(.entry-featured-image-url)) {
      border-top: 8px solid var(--navy);
  }
  .news-wrap .et_pb_post h2.entry-title {
      padding: 0 24px;
      margin: 0;
  }
  .news-wrap .et_pb_post .post-meta {
      font-family: 'Archivo', sans-serif;
      font-weight: 600;
      font-size: 12px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--red);
      margin-bottom: 0;
      padding: 12px 24px 0;
  }
  .news-wrap .et_pb_post .post-meta a {
      color: var(--red);
  }
  .news-wrap .et_pb_post h2,
  .news-wrap .et_pb_post h2 a {
      font-family: 'Archivo Black', sans-serif;
      color: var(--navy);
      font-size: 22px !important;
      line-height: 1.1;
      letter-spacing: -0.02em;
  }
  .news-wrap .et_pb_post .post-content {
      padding: 12px 24px 24px;
  }
  .news-wrap .et_pb_post .post-content p {
      font-size: 14px;
      line-height: 1.55;
      margin-top: 0;
  }
  .news-wrap .et_pb_post a.more-link {
      display: inline-block;
      margin-top: 16px;
      font-family: 'Archivo Black', sans-serif;
      font-size: 12px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--red);
      text-decoration: none;
  }

  .newsletter{ background: var(--cream); padding: 80px 0 }
  .newsletter .nl-card{
      background: var(--white); padding: 48px;
      display:grid; grid-template-columns: 1.3fr 1fr; gap: 32px; align-items: center;
      border: 3px solid var(--navy);
      box-shadow: 10px 10px 0 var(--red);
  }
  @media (max-width: 800px){ .newsletter .nl-card{ grid-template-columns: 1fr } }
  .newsletter h2{ color: var(--navy); font-size: clamp(30px, 4vw, 52px); line-height: 0.95 }
  .newsletter h2 em{ font-style: normal; color: var(--red) }
  .newsletter p{ margin-top: 12px; font-size: 15px }

  /* ============================= CHI SIAMO PAGE ============================= */

  .voices2{ padding: 96px 0; background: var(--white) }
  .voices2 h2{ color: var(--navy); font-size: clamp(40px, 5.5vw, 80px); max-width: 900px; margin-bottom: 48px }
  .voices2 h2 em{ font-style: normal; color: var(--red) }
  .v-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px }
  @media (max-width: 960px){ .v-grid{ grid-template-columns: 1fr } }
  .v-big{
      background: var(--cream);
      padding: 32px;
      border-top: 8px solid var(--red);
      display:flex; flex-direction: column; position: relative;
  }
  .v-big .portrait{
      aspect-ratio: 1/1;
      background: repeating-linear-gradient(135deg, var(--navy) 0 16px, #2d3a8a 16px 17px);
      margin: -32px -32px 24px;
      position: relative;
      display:flex; align-items:flex-end; justify-content:flex-start;
      padding: 20px;
      color: var(--white);
      font-family: 'Archivo'; font-weight: 700; font-size: 11px;
      letter-spacing: 0.14em; text-transform: uppercase;
  }
  .v-big .portrait::after{
      content: attr(data-initials);
      position: absolute; inset: 0;
      display:flex; align-items:center; justify-content:center;
      font-family:'Archivo Black'; font-size: 120px;
      color: rgba(255,255,255,0.95);
      letter-spacing: -0.04em;
  }
  .v-big .portrait span{ position: relative; z-index: 2; background: rgba(0,0,0,0.4); padding: 4px 10px }
  .v-big q{
      font-size: 16px; line-height: 1.55; display: block; margin-bottom: 20px;
      font-weight: 500; quotes: "\00ab" "\00bb";
  }
  .v-big q::before{ content: open-quote }
  .v-big q::after{ content: close-quote }
  .v-big .name{ font-family:'Archivo Black'; font-size: 18px; color: var(--navy) }
  .v-big .role{ font-size: 12px; letter-spacing: 0.08em; color: var(--gray-500); text-transform: uppercase; margin-top: 4px; line-height: 1.4 }
  .v-big .quote-deco{
      position:absolute; top: -12px; right: 16px;
      font-family:'Archivo Black'; font-size: 64px; color: var(--red); line-height: 1;
  }

  .committee{ padding: 96px 0; background: var(--cream) }
  .committee h2{ color: var(--navy); font-size: clamp(36px, 5vw, 60px) }
  .committee h2 em{ font-style: normal; color: var(--red) }
  .committee .note{ font-size: 17px; max-width: 720px; margin: 16px 0 48px }
  .c-grid-members{ display:grid; grid-template-columns: repeat(5, 1fr); gap: 16px }
  @media (max-width: 900px){ .c-grid-members{ grid-template-columns: repeat(2, 1fr) } }
  .c-card{
      background: var(--white);
      padding: 24px;
      border-left: 4px solid var(--red);
      display:flex; flex-direction: column; gap: 8px;
      transition: transform .15s;
  }
  .c-card:hover{ transform: translateY(-4px) }
  .c-card .c-init{
      font-family:'Archivo Black'; font-size: 48px; color: var(--navy);
      line-height: 1; letter-spacing: -0.04em;
  }
  .c-card .c-photo{
      width: calc(100% + 48px);
      aspect-ratio: 1/1;
      object-fit: cover;
      object-position: center top;
      margin: -24px -24px 16px -24px;
      border-bottom: 4px solid var(--red);
  }
  .c-card .c-name{ font-family:'Archivo Black'; font-size: 16px; color: var(--navy); line-height: 1.15 }
  .c-card .c-role{ font-size: 12px; color: var(--gray-500); letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.4 }

  .orgs{ padding: 96px 0; background: var(--white) }
  .orgs h2{ color: var(--navy); font-size: clamp(36px, 5vw, 60px); margin-bottom: 16px }
  .orgs h2 em{ font-style: normal; color: var(--red) }
  .orgs .note{ font-size: 17px; max-width: 720px; margin-bottom: 48px }
  .o-head{
      font-family:'Archivo Black';
      font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase;
      color: var(--navy); margin: 40px 0 20px;
      border-top: 2px solid var(--navy); padding-top: 20px;
  }
  .o-list{
      display:grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px;
      list-style: none; padding: 0; margin: 0;
  }
  .o-list li{
      padding: 16px 20px;
      background: var(--cream);
      font-family:'Archivo'; font-weight: 700; font-size: 14px; color: var(--navy);
      border-left: 3px solid var(--red);
      line-height: 1.35;
  }
  .parties{ display:flex; flex-wrap: wrap; gap: 10px; align-items: center }
  .party{
      padding: 10px 18px;
      background: var(--navy); color: var(--white);
      font-family:'Archivo Black'; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase;
      display: inline-flex; align-items: center; gap: 10px;
  }
  .party img{ height: 24px; width: auto; filter: brightness(0) invert(1) }
  .party.alt{ background: var(--red) }
  .party.alt img{ filter: brightness(0) invert(1) }
  .party.white{ background: transparent; color: var(--navy); border: 2px solid var(--navy) }
  .party.white img{ filter: none }

  /* logo grid for associations */
  .logo-grid{
      display: flex; flex-wrap: wrap; gap: 40px 48px;
      align-items: center;
      margin-top: 28px;
      padding: 32px 0;
  }
  .logo-grid a{
      display: inline-flex; align-items: center;
      padding: 8px;
      transition: opacity .2s, transform .2s;
  }
  .logo-grid a:hover{ opacity: 0.7; transform: translateY(-2px) }
  .logo-grid img{
      height: 56px; width: auto;
      filter: grayscale(20%); transition: filter .2s;
  }
  .logo-grid img:hover{ filter: grayscale(0%) }
  @media (max-width: 640px){
      .logo-grid{ gap: 28px 32px; padding: 24px 0 }
      .logo-grid img{ height: 44px }
  }

  /* ============================= FAQ PAGE ============================= */

  .faq-wrap{ padding: 80px 0 112px; background: var(--white) }
  .faq-grid{
      display:grid; grid-template-columns: 1fr 2fr; gap: 72px;
  }
  @media (max-width: 960px){ .faq-grid{ grid-template-columns: 1fr; gap: 40px } }

  .faq-side h2{ color: var(--navy); font-size: clamp(36px, 5vw, 60px); line-height: 0.95 }
  .faq-side h2 em{ font-style: normal; color: var(--red) }
  .faq-side p{ margin-top: 20px; font-size: 16px; line-height: 1.6 }
  .faq-side .side-card{
      margin-top: 40px;
      background: var(--navy); color: var(--white);
      padding: 28px;
      position: relative;
  }
  .faq-side .side-card h4{ color: var(--white); font-family:'Archivo Black'; font-size: 18px; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 12px }
  .faq-side .side-card p{ color: rgba(255,255,255,0.92); font-size: 14px; margin-top: 0 }
  .faq-side .side-card .btn{ margin-top: 18px }

  .faq-list{ display:flex; flex-direction: column; gap: 12px }
  .faq-item{
      border: 2px solid var(--navy);
      background: var(--white);
      transition: box-shadow .15s;
  }
  .faq-item[open]{ box-shadow: 6px 6px 0 var(--red) }
  .faq-item summary{
      list-style: none;
      cursor: pointer;
      padding: 22px 28px;
      display:flex; align-items: center; gap: 20px;
      font-family:'Archivo Black';
      font-size: clamp(17px, 1.6vw, 22px);
      color: var(--navy);
      line-height: 1.25;
  }
  .faq-item summary::-webkit-details-marker{ display: none }
  .faq-item .q-num{
      font-family:'Archivo Black';
      font-size: 36px;
      line-height: 0.9;
      color: var(--red);
      letter-spacing: -0.04em;
      min-width: 52px;
      flex-shrink: 0;
  }
  .faq-item .chev{
      margin-left: auto; flex-shrink: 0;
      width: 36px; height: 36px;
      border-radius: 50%;
      background: var(--cream);
      display:flex; align-items:center; justify-content:center;
      color: var(--navy);
      font-family:'Archivo Black';
      transition: transform .2s, background .15s, color .15s;
      font-size: 18px;
  }
  .faq-item[open] .chev{ transform: rotate(45deg); background: var(--red); color: var(--white) }
  .faq-item .answer{
      padding: 0 28px 24px 100px;
      font-size: 16px;
      line-height: 1.65;
  }
  .faq-item .answer p{ margin: 0 0 12px }
  @media (max-width: 640px){
      .faq-item .answer{ padding: 0 20px 20px 20px }
      .faq-item summary{ padding: 18px 20px }
      .faq-item .q-num{ font-size: 28px; min-width: 38px }
  }

  /* ============================= CONTATTO PAGE ============================= */

  .contact-wrap{ padding: 80px 0 112px; background: var(--white) }
  .contact-grid{
      display:grid; grid-template-columns: 1fr 1.4fr; gap: 60px;
  }
  @media (max-width: 960px){ .contact-grid{ grid-template-columns: 1fr; gap: 40px }  .contact-wrap{ padding:0;}}

  .c-side h2{ color: var(--navy); font-size: clamp(38px, 5vw, 60px); line-height: 0.95 }
  .c-side h2 em{ font-style: normal; color: var(--red) }
  .c-side p{ margin-top: 20px; font-size: 17px; line-height: 1.6 }

  .c-info-card{
      background: var(--cream);
      padding: 28px;
      margin-top: 28px;
      border-left: 4px solid var(--red);
  }
  .c-info-card h4{
      font-family:'Archivo Black'; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase;
      color: var(--navy); margin-bottom: 12px;
  }
  .c-info-card p{ margin: 0; font-size: 16px; line-height: 1.55 }
  .c-info-card a{ color: var(--red); font-weight: 700 }
  .c-info-card a:hover{ color: var(--navy) }
  .c-info-card + .c-info-card{ margin-top: 16px }

  .c-form{
      background: var(--navy); color: var(--white);
      padding: 48px; position: relative; overflow: hidden;
      box-shadow: 10px 10px 0 var(--red);
  }
  .c-form::before{
      content:""; position:absolute; inset: 0;
      background-image: radial-gradient(circle, rgba(255,255,255,0.07) 1.5px, transparent 1.5px);
      background-size: 22px 22px;
      pointer-events: none;
  }
  .c-form > *{ position: relative; z-index: 2 }
  .c-form .eyebrow{ color: rgba(255,255,255,0.7) }
  .c-form h3{ color: var(--white); font-size: clamp(28px, 3.6vw, 44px); margin: 12px 0 28px; line-height: 1 }
  .c-form h3 em{ font-style: normal; color: var(--red) }

  .form-grid{
      display:grid; grid-template-columns: 1fr 1fr; gap: 16px;
  }
  @media (max-width: 640px){ .form-grid{ grid-template-columns: 1fr } }
  .c-form label{
      display:block;
      font-family:'Archivo'; font-weight: 700; font-size: 12px; letter-spacing: 0.14em;
      text-transform: uppercase; color: rgba(255,255,255,0.85);
      margin-bottom: 8px;
  }
  .c-form .field{ margin-bottom: 16px }
  .c-form .field-full{ grid-column: 1 / -1 }
  .c-form input, .c-form select, .c-form textarea{
      width: 100%;
      padding: 14px 16px;
      background: var(--white); color: var(--ink);
      border: 2px solid var(--white);
      font-family:'Archivo'; font-size: 15px;
      transition: border-color .15s;
  }
  .c-form input:focus, .c-form select:focus, .c-form textarea:focus{
      outline: none; border-color: var(--red);
  }
  .c-form textarea{ min-height: 140px; resize: vertical }

  .map-strip{
      background: var(--cream); padding: 0;
      display:grid; grid-template-columns: 1fr 1fr; min-height: 320px;
  }
  @media (max-width: 800px){ .map-strip{ grid-template-columns: 1fr } }
  .map-strip .map-placeholder{
      background:
      repeating-linear-gradient(45deg, var(--cream) 0 28px, rgba(40,52,124,0.06) 28px 29px),
      var(--cream);
      display:flex; align-items:center; justify-content:center;
      color: var(--navy);
      font-family:'Archivo Black'; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase;
  }
  .map-strip .map-info{
      background: var(--navy); color: var(--white);
      padding: 40px;
      display:flex; flex-direction: column; justify-content: center;
  }
  .map-strip .map-info h3{ color: var(--white); font-size: 32px; margin-bottom: 16px }
  .map-strip .map-info p{ font-size: 16px; line-height: 1.6; margin: 0 }

  /* ============================= FOOTER ============================= */

  footer.site-footer{
      background: var(--navy);
      color: var(--white);
      padding: 72px 0 32px;
  }
  footer.site-footer h4{
      color: var(--white);
      font-size: 18px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      margin-bottom: 16px;
  }
  footer.site-footer a:hover{ color: var(--red) }
  footer .footer-grid{
      display:grid;
      grid-template-columns: 1.4fr 1fr 1fr 1fr;
      gap: 48px;
      margin-bottom: 56px;
  }
  @media (max-width: 900px){
      footer .footer-grid{ grid-template-columns: 1fr 1fr; gap: 36px }
  }
  @media (max-width: 560px){
      footer .footer-grid{ grid-template-columns: 1fr }
  }
  footer .footer-links{ list-style: none; padding: 0; margin: 0; display:flex; flex-direction: column; gap: 10px; font-size: 15px }
  footer .footer-bottom{
      border-top: 1px solid rgba(255,255,255,0.15);
      padding-top: 24px;
      display:flex; justify-content: space-between; flex-wrap: wrap; gap: 16px;
      font-size: 13px;
      color: rgba(255,255,255,0.7);
      letter-spacing: 0.04em;
      text-transform: uppercase;
  }
  footer .socials{ display:flex; gap: 10px }
  footer .social-btn{
      width: 44px; height: 44px;
      display:inline-flex; align-items:center; justify-content:center;
      background: rgba(255,255,255,0.08);
      color: var(--white);
      transition: background .15s;
  }
  footer .social-btn:hover{ background: var(--red); color: var(--white) }
  footer .big-stamp{
      font-family:'Archivo Black', sans-serif;
      font-size: clamp(100px, 18vw, 280px);
      color: rgba(255,255,255,0.05);
      line-height: 0.8;
      letter-spacing: -0.04em;
      margin-bottom: -48px;
      margin-top: 32px;
      text-align: center;
      pointer-events: none;
  }

  /* ============================= HELPERS ============================= */

  .text-red{ color: var(--red) !important }
  .text-navy{ color: var(--navy) !important }
  .text-white{ color: var(--white) !important }
  .bg-red{ background: var(--red) !important; color: var(--white) }
  .bg-navy{ background: var(--navy) !important; color: var(--white) }
  .bg-cream{ background: var(--cream) !important }
  .bg-white{ background: var(--white) !important }

  .dotted-bg{
      background-image: radial-gradient(circle, rgba(40,52,124,0.12) 1px, transparent 1px);
      background-size: 22px 22px;
  }
  .rough-underline{
      display:inline-block;
      position: relative;
  }
  .rough-underline::after{
      content:"";
      position: absolute;
      left: -4px; right: -4px; bottom: -6px;
      height: 14px;
      background: var(--red);
      z-index: -1;
      opacity: 0.9;
      transform: skew(-6deg);
  }
  .tilt-left{ transform: rotate(-2deg) }
  .tilt-right{ transform: rotate(2deg) }

  .divider-zigzag{
      height: 24px;
      background: var(--red);
      -webkit-mask: linear-gradient(135deg, #000 25%, transparent 25%) 0 0 / 24px 24px,
      linear-gradient(225deg, #000 25%, transparent 25%) 0 0 / 24px 24px;
      mask: linear-gradient(135deg, #000 25%, transparent 25%) 0 0 / 24px 24px,
      linear-gradient(225deg, #000 25%, transparent 25%) 0 0 / 24px 24px;
  }

  /* ============================= MOBILE FIXES ============================= */

  /* Generale: rimuovi padding extra su container mobile */
  @media (max-width: 640px){
      .container{ padding: 0px }
      .container.nav-inner{ padding: 0 16px}
      .final-cta{padding: 30px 0;}
      .kv-no {min-height:450px;}
      .intro-split, .voices, .pillars, .overview, .reasons, .compare, .voices2, .committee, .orgs, .faq-wrap{padding: 0 0 96px 0;}
      .c-form{margin-bottom: 96px;}
  }

  @media (max-width: 768px){

      /* --- HOMEPAGE --- */

      /* Hero: riduci padding top */
      .hero-kvisual{ padding: 48px 0 80px }

      /* Intro visual: no-stamp non si sovrappone a 150 */
      .intro-visual .iv-big{
          font-size: clamp(80px, 22vw, 140px);
          top: 20px; left: 20px;
      }
      .intro-visual .iv-stamp{
          top: auto; bottom: 80px; right: 20px;
      }
      .intro-visual{ padding: 20px; min-height: 280px }

      /* Avatars testimonial: supporto per foto */
      .v-card .who .avatar{
          width: 40px; height: 40px; font-size: 14px;
      }
      .v-card .who .avatar img{
          width: 100%; height: 100%; object-fit: cover; border-radius: 50%;
      }

      /* --- ARGOMENTI --- */

      /* Parole lunghe come CONTROPRESTAZIONI non escono */
      .reason .r-body h3{
          font-size: clamp(22px, 5.5vw, 36px);
          word-break: break-word;
          overflow-wrap: break-word;
          hyphens: auto;
      }
      .reason .r-body h3 em{
          word-break: break-word;
          overflow-wrap: break-word;
      }

      /* --- FATTI --- */

      /* Ogni fatto su una linea */
      .facts-grid .grid{
          grid-template-columns: 1fr !important;
      }
      .fact.f1, .fact.f2, .fact.f3, .fact.f4, .fact.f5{
          grid-column: span 1;
          min-height: 240px;
      }
      .fact .f-num{ font-size: clamp(48px, 14vw, 100px) !important }
      .fact.f1 .f-num{ font-size: clamp(64px, 18vw, 140px) !important }

      /* --- CHI SIAMO --- */

      /* Loghi associazioni: uno per linea, più generosi */
      .logo-grid{
          flex-direction: column;
          align-items: flex-start;
          gap: 24px;
          padding: 24px 0;
      }
      .logo-grid img{
          height: 48px;
          max-width: 200px;
          width: auto;
      }
      .logo-grid a{ padding: 4px 0 }

      /* Comitato membri: 1 colonna */
      .c-grid-members{ grid-template-columns: 1fr !important }

      /* --- FAQ --- */

      /* Sidebar e lista non escono dal container */
      .faq-grid{
          grid-template-columns: 1fr !important;
          gap: 32px;
      }
      .faq-side{ max-width: 100%; overflow: hidden }
      .faq-side h2{ font-size: clamp(28px, 7vw, 48px) }
      .faq-item{
          max-width: 100%;
          overflow: hidden;
      }
      .faq-item summary{
          padding: 16px;
          gap: 12px;
          font-size: 16px;
      }
      .faq-item .q-num{ font-size: 24px; min-width: 32px }
      .faq-item .chev{ width: 30px; height: 30px; font-size: 16px }
      .faq-item .answer{ padding: 0 16px 20px 16px }
      .faq-item[open]{ box-shadow: 4px 4px 0 var(--red) }

      /* --- PAGINE INTERNE --- */

      /* Page header non overflow */
      .page-header{ overflow: hidden }
      .page-header .page-intro{ font-size: 16px }
  }
