/* CT25 HOME — Hero Master + News Bar. Migrated unchanged from ct25-home.css. */

/* ==========================================================
   CT25 HOME — HERO MASTER
   ========================================================== */
      .ct25-heroNeo,
      .ct25-heroNeo *{
        box-sizing:border-box;
      }

      .ct25-heroNeo{
        font-family:Arial, Helvetica, sans-serif;
        padding:20px 0;
        background:transparent !important;
        color:#0b1630;
      }

      .ct25-heroNeo .wrap{
        max-width:1180px;
        margin:0 auto;
        padding:0 14px;
      }

      .ct25-heroNeo .shell{
        position:relative;
        border-radius:26px;
        overflow:hidden;
        background:linear-gradient(180deg,#ffffff 0%, #f3f7ff 100%);
        border:1px solid rgba(11,22,48,.10);
        box-shadow:0 20px 48px rgba(0,0,0,.16);
      }

      .ct25-heroNeo .inner{
        position:relative;
        z-index:2;
        padding:26px 22px;
      }

      .ct25-heroNeo .hero-header{
        text-align:center;
        margin:0 0 16px;
      }

      .ct25-heroNeo .hero-title{
        display:flex;
        align-items:center;
        justify-content:center;
        gap:10px;
        padding:12px 16px;
        margin:0;
        border-radius:14px;
        font-weight:900;
        font-size:22px;
        line-height:1.25;
        letter-spacing:.3px;
        background:linear-gradient(90deg,#ffcc00,#ffe88a);
        color:#111;
        border:2px solid rgba(0,0,0,.08);
        box-shadow:0 6px 16px rgba(0,0,0,.10);
      }

      .ct25-heroNeo .hero-title .dot{
        width:12px;
        height:12px;
        border-radius:999px;
        background:#111;
        opacity:.22;
        flex:0 0 12px;
      }

      .ct25-heroNeo .grid{
        display:grid;
        grid-template-columns:1.35fr .75fr;
        gap:20px;
        align-items:stretch;
      }

      .ct25-heroNeo .sub{
        margin:0 auto 10px;
        max-width:820px;
        text-align:center;
        font-size:15.5px;
        line-height:1.55;
        color:#0b1630;
        padding:14px 20px 14px 24px;
        border-radius:16px;
        background:#ffffff;
        border:1px solid rgba(0,51,153,.16);
        box-shadow:0 10px 24px rgba(2,18,52,.08), 0 2px 8px rgba(0,0,0,.05);
        position:relative;
        overflow:hidden;
      }

      .ct25-heroNeo .sub:before{
        content:"";
        position:absolute;
        left:0;
        top:6px;
        bottom:6px;
        width:4px;
        border-radius:4px;
        background:linear-gradient(180deg,#003399,#0b3cff);
      }

      .ct25-heroNeo .promo-pill-wrap{
        text-align:center;
        margin:8px 0 12px;
      }

      .ct25-heroNeo .promo-pill{
        display:inline-flex;
        align-items:center;
        gap:6px;
        padding:6px 12px;
        border-radius:999px;
        background:rgba(255,204,0,.16);
        border:1px solid rgba(0,0,0,.12);
        color:#111;
        font-weight:900;
        font-size:13.5px;
        box-shadow:0 4px 10px rgba(0,0,0,.06);
      }

      .ct25-heroNeo .bullets{
        display:grid;
        gap:12px;
        margin:14px 0 18px;
      }

      .ct25-heroNeo .bullet{
        display:flex;
        gap:10px;
        padding:12px;
        border-radius:16px;
        background:linear-gradient(180deg,#eaf4ff 0%, #dff0ff 100%);
        border:1px solid rgba(42,167,255,.35);
        box-shadow:0 8px 18px rgba(0,0,0,.08);
      }

      .ct25-heroNeo .ico{
        width:34px;
        height:34px;
        border-radius:12px;
        display:flex;
        align-items:center;
        justify-content:center;
        background:linear-gradient(180deg,#0b57d0,#0a2a66);
        color:#fff;
        font-size:16px;
        line-height:1;
        flex:0 0 34px;
      }

      .ct25-heroNeo .txt{
        font-weight:900;
        font-size:14px;
        color:#0a2a66;
      }

      .ct25-heroNeo .txt small{
        display:block;
        margin-top:3px;
        font-size:12.6px;
        font-weight:800;
        color:rgba(11,22,48,.78);
      }

      .ct25-heroNeo .cta{
        margin-top:14px;
        text-align:center;
      }

      .ct25-heroNeo .btn{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        gap:8px;
        border-radius:999px;
        font-weight:900;
        text-decoration:none;
        padding:14px 16px;
        transition:.15s;
        border:1px solid rgba(11,22,48,.12);
        box-shadow:0 12px 24px rgba(0,0,0,.10);
        color:#fff;
      }

      .ct25-heroNeo .btn:hover{
        transform:translateY(-2px);
      }

      .ct25-heroNeo .btn.primary{
        width:100%;
        max-width:540px;
        background:linear-gradient(180deg,#0b57d0,#0a2a66);
        border-color:rgba(255,255,255,.12);
      }

      .ct25-heroNeo .cta-row{
        display:flex;
        gap:10px;
        justify-content:center;
        flex-wrap:wrap;
        margin-top:10px;
      }

      .ct25-heroNeo .btn.sm{
        font-size:12.5px;
        padding:11px 14px;
        min-width:150px;
      }

      .ct25-heroNeo .btn.clil{
        background:linear-gradient(90deg,#ffcc00,#ffe88a);
        color:#111;
        border-color:rgba(0,0,0,.10);
      }

      .ct25-heroNeo .btn.art13{
        background:linear-gradient(180deg,#2aa7ff 0%, #0b57d0 55%, #0a2a66 100%);
        color:#ffffff;
        border-color:rgba(255,255,255,.16);
      }

      .ct25-heroNeo .date-panel{
        margin-top:18px;
        border-radius:18px;
        overflow:hidden;
        background:linear-gradient(135deg,#0b57d0 0%, #0a43ad 55%, #08398e 100%);
        border:1px solid rgba(255,255,255,.12);
        box-shadow:0 14px 28px rgba(0,0,0,.14);
      }

      .ct25-heroNeo .date-grid{
        display:grid;
        grid-template-columns:1fr 1fr;
      }

      .ct25-heroNeo .date-card{
        padding:14px 14px 12px;
        position:relative;
      }

      .ct25-heroNeo .date-card + .date-card{
        border-left:1px solid rgba(255,255,255,.14);
      }

      .ct25-heroNeo .date-label{
        width:160px;
        max-width:100%;
        margin:0 auto 10px;
        padding:10px 10px;
        text-align:center;
        font-size:12px;
        line-height:1.05;
        font-weight:900;
        text-transform:uppercase;
      }

      .ct25-heroNeo .date-label.light{
        background:#eef1f6;
        color:#17315f;
      }

      .ct25-heroNeo .date-label.accent{
        background:#ff2f14;
        color:#fff;
      }

      .ct25-heroNeo .date-card .date-label.accent{
        width:210px;
        line-height:1.2;
      }

      .ct25-heroNeo .date-divider{
        display:flex;
        align-items:center;
        justify-content:center;
        gap:10px;
        margin:2px 0 10px;
        color:#fff;
      }

      .ct25-heroNeo .date-line{
        width:72px;
        height:1.5px;
        background:rgba(255,255,255,.52);
        display:block;
      }

      .ct25-heroNeo .date-icon{
        width:30px;
        height:30px;
        display:flex;
        align-items:center;
        justify-content:center;
        color:#fff;
        flex:0 0 30px;
      }

      .ct25-heroNeo .date-icon svg{
        width:24px;
        height:24px;
        display:block;
      }

      .ct25-heroNeo .date-value{
        text-align:center;
        color:#fff;
        font-size:20px;
        line-height:1.1;
        font-weight:900;
        letter-spacing:-.02em;
      }

      .ct25-heroNeo .date-badge{
        text-align:center;
        padding:10px 12px 14px;
      }

      .ct25-heroNeo .date-badge span{
        display:inline-block;
        padding:9px 16px;
        border-radius:999px;
        background:linear-gradient(90deg,#ffcc00,#ffd74e);
        color:#111;
        font-size:12px;
        line-height:1;
        font-weight:900;
        letter-spacing:.04em;
      }

      .ct25-heroNeo .right-col{
        display:flex;
        flex-direction:column;
        gap:12px;
        align-items:stretch;
        height:100%;
      }

      .ct25-heroNeo .card{
        width:100%;
        border-radius:18px;
        overflow:hidden;
        background:linear-gradient(135deg,#0b3cff 0%, #0040b3 55%, #001f66 100%);
        color:#ffffff;
        box-shadow:0 18px 36px rgba(0,0,0,.18);
        border:1px solid rgba(255,255,255,.14);
      }

      .ct25-heroNeo .card .head{
        padding:12px;
        text-align:center;
        font-weight:900;
        background:rgba(0,0,0,.15);
        letter-spacing:.4px;
      }

      .ct25-heroNeo .card .body{
        padding:14px;
        text-align:center;
      }

      .ct25-heroNeo .code-label{
        font-weight:900;
        font-size:13px;
        color:rgba(255,255,255,.92);
        margin-bottom:10px;
      }

      .ct25-heroNeo .codewrap{
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        text-align:center;
      }

      .ct25-heroNeo .ct25-main{
        margin-bottom:10px;
        padding:14px;
        border-radius:14px;
        background:linear-gradient(180deg,#0b57d0,#0a2a66);
        border:2px solid #ffd400;
      }

      .ct25-heroNeo .ct25-main .code{
        font-size:26px;
        letter-spacing:.8px;
      }

      .ct25-heroNeo .codes-secondary{
        display:flex;
        gap:8px;
        margin-top:6px;
      }

      .ct25-heroNeo .codes-secondary .codewrap{
        flex:1;
        padding:10px 8px;
        border-radius:12px;
        min-height:104px;
      }

      .ct25-heroNeo .ct25-tfa{
        background:linear-gradient(180deg, rgba(17,90,210,.48) 0%, rgba(9,42,110,.70) 100%);
        border:1px solid rgba(255,186,0,.60);
      }

      .ct25-heroNeo .ct25-unitelma{
        background:linear-gradient(180deg, rgba(7,47,140,.52) 0%, rgba(4,23,61,.78) 100%);
        border:1px solid rgba(255,160,0,.72);
      }

      .ct25-heroNeo .codelabel{
        display:block;
        font-size:10px;
        font-weight:900;
        letter-spacing:.7px;
        margin-bottom:4px;
        text-transform:uppercase;
        color:rgba(255,255,255,.92);
      }

      .ct25-heroNeo .code{
        font-size:20px;
        font-weight:900;
        color:#ffd400;
        letter-spacing:.6px;
        line-height:1.05;
      }

      .ct25-heroNeo .codesub{
        margin-top:5px;
        font-size:11px;
        font-weight:900;
        color:rgba(255,255,255,.90);
        line-height:1.25;
      }

      .ct25-heroNeo .warning{
        margin-top:12px;
        padding:10px 12px;
        border-radius:14px;
        background:rgba(0,0,0,.25);
        border:1px solid rgba(255,204,0,.35);
        color:#ffffff;
        font-weight:900;
        font-size:12.6px;
        text-align:center;
        line-height:1.35;
      }

      .ct25-heroNeo .warning .attn,
      .ct25-heroNeo .warning .hot{
        color:#ffd400;
        font-weight:900;
        text-decoration:underline;
      }

      /* Icona separata dal testo sottolineato: nessuna sottolineatura sotto ⚠️. */
      .ct25-heroNeo .warning .attn-icon{
        display:inline-block;
        color:#ffd400;
        text-decoration:none;
        vertical-align:baseline;
      }

      .ct25-heroNeo .right-actions{
        margin-top:12px;
        display:grid;
        gap:10px;
      }

      .ct25-heroNeo .wa-group a,
      .ct25-heroNeo .wa-support a{
        display:block;
        text-align:center;
        padding:13px;
        border-radius:999px;
        color:#fff;
        text-decoration:none;
        font-weight:900;
      }

      .ct25-heroNeo .wa-group a{
        background:linear-gradient(180deg,#0b57d0,#0a2a66);
        border:1px solid rgba(255,255,255,.14);
      }

      .ct25-heroNeo .wa-support a{
        background:linear-gradient(180deg,#25d366,#1ebe5d);
      }

      .ct25-heroNeo .mm-newsbar{
        width:100%;
        margin:0;
      }

      .ct25-heroNeo .mm-newsbar__box{
        width:100%;
        display:flex;
        align-items:center;
        gap:12px;
        padding:12px 16px;
        border-radius:18px;
        background:linear-gradient(135deg, rgba(11,87,208,.08) 0%, rgba(10,42,102,.04) 100%);
        border:1px solid rgba(11,87,208,.14);
        overflow:hidden;
      }

      .ct25-heroNeo .mm-newsbar__label{
        flex:0 0 auto;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:30px;
        padding:6px 12px;
        border-radius:999px;
        background:linear-gradient(135deg,#ff3b30 0%, #d10000 100%);
        color:#fff;
        font-size:10px;
        font-weight:900;
        letter-spacing:.08em;
        text-transform:uppercase;
        white-space:nowrap;
      }

      .ct25-heroNeo .mm-newsbar__track{
        position:relative;
        flex:1 1 auto;
        min-width:0;
        height:22px;
        overflow:hidden;
      }

      .ct25-heroNeo .mm-newsbar__item{
        position:absolute;
        inset:0;
        opacity:0;
        transform:translateY(14px);
        transition:opacity .45s ease, transform .45s ease;
        font-size:14px;
        line-height:22px;
        font-weight:700;
        color:#0a2a66;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
      }

      .ct25-heroNeo .mm-newsbar__item.is-active{
        opacity:1;
        transform:translateY(0);
      }

      @media (max-width: 980px){
        .ct25-heroNeo .grid{
          grid-template-columns:1fr;
        }
      }

      @media (max-width: 768px){
        .ct25-heroNeo{
          padding:12px 0;
        }

        .ct25-heroNeo .inner{
          padding:16px 12px;
        }

        .ct25-heroNeo .hero-title{
          font-size:13px;
          padding:9px 10px;
          gap:8px;
          text-align:center;
        }

        .ct25-heroNeo .hero-title .dot{
          display:none;
        }

        .ct25-heroNeo .sub{
          font-size:13.8px;
          text-align:center;
          margin:0 auto 8px;
          padding:11px 12px 11px 16px;
          border-radius:14px;
        }

        .ct25-heroNeo .promo-pill-wrap{
          margin:6px 0 8px;
        }

        .ct25-heroNeo .promo-pill{
          font-size:12.4px;
          padding:5px 10px;
        }

        .ct25-heroNeo .bullet{
          padding:9px 10px;
          gap:8px;
          border-radius:14px;
        }

        .ct25-heroNeo .ico{
          width:28px;
          height:28px;
          border-radius:10px;
          font-size:14px;
          flex:0 0 28px;
        }

        .ct25-heroNeo .txt{
          font-size:13px;
          line-height:1.35;
          text-align:left;
        }

        .ct25-heroNeo .txt small{
          font-size:11.5px;
          margin-top:2px;
        }

        .ct25-heroNeo .cta-row{
          gap:8px;
        }

        .ct25-heroNeo .btn.sm{
          font-size:10.8px;
          padding:8px 10px;
          min-width:132px;
          white-space:nowrap;
        }

        .ct25-heroNeo .right-col{
          display:none;
        }

        .ct25-heroNeo .date-panel{
          margin-top:14px;
        }

        .ct25-heroNeo .date-grid{
          grid-template-columns:1fr;
        }

        .ct25-heroNeo .date-card{
          padding:12px 10px 10px;
        }

        .ct25-heroNeo .date-card + .date-card{
          border-left:0;
          border-top:1px solid rgba(255,255,255,.14);
        }

        .ct25-heroNeo .date-label{
          width:140px;
          font-size:11.5px;
          padding:9px 8px;
          margin-bottom:8px;
        }

        .ct25-heroNeo .date-line{
          width:58px;
        }

        .ct25-heroNeo .date-value{
          font-size:17px;
        }

        .ct25-heroNeo .date-badge span{
          font-size:11px;
          padding:8px 13px;
        }
      }

/* Mobile overflow guard for the homepage hero only. */
@media (max-width: 768px){
  .ct25-heroNeo,
  .ct25-heroNeo .wrap,
  .ct25-heroNeo .shell,
  .ct25-heroNeo .inner,
  .ct25-heroNeo .hero-header,
  .ct25-heroNeo .hero-title,
  .ct25-heroNeo .sub,
  .ct25-heroNeo .promo-pill-wrap,
  .ct25-heroNeo .promo-pill,
  .ct25-heroNeo .grid,
  .ct25-heroNeo .left-col,
  .ct25-heroNeo .bullets,
  .ct25-heroNeo .bullet,
  .ct25-heroNeo .txt,
  .ct25-heroNeo .cta,
  .ct25-heroNeo .cta-row,
  .ct25-heroNeo .btn{
    max-width:100%;
    min-width:0;
  }

  .ct25-heroNeo .hero-title{
    display:block !important;
    width:100%;
    flex-wrap:wrap;
    overflow-wrap:anywhere;
    word-break:normal;
    overflow:hidden;
    text-align:center;
  }

  .ct25-heroNeo .hero-title span:not(.dot),
  .ct25-heroNeo .sub,
  .ct25-heroNeo .promo-pill,
  .ct25-heroNeo .txt,
  .ct25-heroNeo .btn{
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .ct25-heroNeo .hero-title span:not(.dot){
    display:block;
    max-width:100%;
    white-space:normal;
  }

  .ct25-heroNeo .promo-pill{
    white-space:normal;
    flex-wrap:wrap;
    justify-content:center;
    text-align:center;
  }

  .ct25-heroNeo .cta-row{
    flex-wrap:wrap;
    justify-content:center;
  }

  .ct25-heroNeo .btn.sm{
    flex:1 1 132px;
    white-space:normal;
  }
}

@media (max-width: 430px){
  .ct25-heroNeo{
    width:100%;
    max-width:100vw;
    overflow-x:hidden;
  }

  .ct25-heroNeo .wrap{
    padding-left:8px;
    padding-right:8px;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .ct25-heroNeo .wrap{
    width:100vw !important;
    max-width:100vw !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .ct25-heroNeo .shell{
    width:100% !important;
    max-width:100% !important;
  }

  .ct25-heroNeo .inner{
    padding-left:10px;
    padding-right:10px;
  }

  .ct25-heroNeo .hero-title{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    font-size:12.5px !important;
    line-height:1.28 !important;
    padding-left:8px !important;
    padding-right:8px !important;
    overflow:hidden !important;
    text-align:center !important;
  }

  .ct25-heroNeo .hero-title span:not(.dot){
    display:block !important;
    max-width:100% !important;
    white-space:normal !important;
  }

  .ct25-heroNeo .sub{
    padding-left:14px;
    padding-right:10px;
    width:100%;
    max-width:100%;
  }

  .ct25-heroNeo .bullet{
    padding-left:9px;
    padding-right:9px;
  }
}
