    /* ===== FOOTER FULL SCREEN ===== */
    .site-footer{ background:#000; color:var(--text); min-height:60vh; display:flex; }
    .footer-wrap{
      max-width:2200px; margin:0 auto; width:100%;
      padding:72px min(4vw,32px) 28px;
      display:grid;
      grid-template-rows: auto auto auto 1fr auto;
      row-gap: 40px;
    }


  @media (max-width: 640px){
    .footer-wrap{
      padding:0px min(0vw,0px) 0px;
    }




  }

    /* Titolo grande (riusato nella CTA servizi) */
    .footer-hero{ text-align:left; }
    .footer-hero-title{
      font-size: clamp(36px, 4.5vw, 60px);
      letter-spacing:.08em;
      font-weight:800;
      margin:0 0 10px;
    }
    .footer-hero-title .brand{ color:var(--accent); }
    .title-underline{
      width:120px; height:4px; background:var(--accent);
      margin-top:10px; border-radius:4px;
    }

    /* Servizi (riutilizzato nella CTA) */
    .svc-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:60px;
      padding:60px 0 40px;
    }
    .svc-item h3{ margin:.5rem 0 .5rem; font-size:1.15rem; letter-spacing:.03em }
    .svc-item p{ color:var(--muted); margin:0 0 1rem }
    .svc-link{ font-weight:700; border-bottom:0px solid rgba(255,255,255,.25); padding-bottom:2px; color: red;}
    .svc-ico{ width:32px; height:32px; color:var(--accent); display:flex; align-items:center; justify-content:center; margin-bottom:4px }

    /* Separatore con logo grande sopra la linea */
    .footer-sep{ position:relative; height:350px; margin:12px 0 12px; }
    .footer-sep .sep-line{
      position:absolute; left:0; right:0; top:68px;
      height:2px; background:rgb(255, 0, 0);
    }
    .footer-logo{
      position:absolute; left:50%; top:40%; transform:translateX(-50%);
      display:inline-flex; align-items:center; justify-content:center;
      background:#000; padding:10px 18px;
      border:0px solid rgba(255,255,255,.18);
      border-radius:999px;
    }
    .footer-logo img{ height:110px; width:auto; display:block }

    /* Parte bassa */
    .footer-main{
      display:grid; grid-template-columns: minmax(280px, 1.2fr) 2fr; gap:64px; align-items:start; margin-top: 100px;
    }


    .nl-title{ font-size:clamp(28px,3.5vw,44px); line-height:1.05; margin:0 0 10px }
    .nl-title span{ color:var(--accent) }
    .newsletter p{ color:var(--muted); margin:0 0 16px }
    .nl-form{ display:flex; gap:10px; flex-wrap:wrap; align-items:center }
    .nl-form input{
      flex:1 1 260px; min-width:240px;
      background:#0f0f0f; border:1px solid rgba(255,255,255,.18); color:#fff;
      padding:12px 14px; border-radius:10px;
    }
    .nl-form .nl-msg{ display:block; margin-top:8px; color:var(--muted) }
    .socials{ display:flex; gap:10px; margin-top:18px }
    .sbtn{ width:38px; height:38px; border:1px solid rgba(255,255,255,.18); border-radius:999px; display:flex; align-items:center; justify-content:center; color:#fff }
    .sbtn:hover{ border-color:var(--accent); color:var(--accent) }

    .footer-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px }
    .footer-cols .col h4{ color:var(--accent); font-size:.95rem; letter-spacing:.1em; margin:0 0 8px }
    .footer-cols .col ul{ list-style:none; margin:0; padding:0 }
    .footer-cols .col li{ margin:.45rem 0 }
    .footer-cols .col a{ color:#cfcfcf }
    .footer-cols .col a:hover{ color:#fff }

    /* Barra legale */
    .legal{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12) }
    .legal-text{
  font-size:.9rem;
  color:#cfcfcf;
  line-height:1.5;
}

.legal-text p{
  margin:0;
  text-decoration:none;
}
    .legal-links{ display:flex; gap:20px; list-style:none; margin: 0; padding:0 }
    .legal-links a{ color:#cfcfcf; font-size:.9rem }
    .country{ display:flex; align-items:center; gap:6px; color:#cfcfcf; font-size:.9rem }

    /* Responsive footer */
    @media (max-width: 1024px){
      .svc-grid{ grid-template-columns:1fr; gap:40px; padding:40px 0 }
      .footer-main{ grid-template-columns:1fr; gap:40px }
      .footer-cols{ grid-template-columns:repeat(2,1fr) }
      .footer-sep .sep-line{ top:72px }
      .footer-logo img{ height:74px }
    }
    @media (max-width: 640px){

      .footer-wrap{ padding-left:16px; padding-right:16px }
      .footer-main{ margin-top: 20px; }
    }

    /* ===== LIGHTBOX NEWS ===== */
.news-card img{ cursor: zoom-in; }

.lightbox{
  position: fixed; inset: 0;
  background: rgba(0,0,0,.85);
  display:none;
  align-items:center;
  justify-content:center;
  z-index: 99999;
  padding: 24px;
}
.lightbox.open{ display:flex; }

.lightbox img{
  max-width: 96vw;
  max-height: 92vh;
  object-fit: contain;
  cursor: zoom-out;
}

.lightbox .close{
  position:absolute;
  top: 14px; right: 14px;
  width: 44px; height: 44px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.08);
  color: #fff;
  border-radius: 999px;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}

.footer-partners{
  position:absolute;
  left:50%;
  top:90%;                  /* regola se vuoi più su/giù */
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:200px;                 /* “aria” tra i loghi */
  width:90vw;   /* mantiene equidistanza */
  padding:0 12px;
  z-index:2;
}

.footer-partners img{
  height:120px;              /* dimensione coerente */
  width:auto;
  opacity:.95;
  filter:none;
}

.sbtn svg{
  width:30px;
  height:30px;
  display:block;
}

@media (max-width: 1554px){
  .footer-partners{
    gap:100px;
    justify-content:center;
  }
  .footer-partners img{ height:100px; }
}

@media (max-width: 1024px){
  .footer-partners{
    gap:50px;
    justify-content:center;
  }
  .footer-partners img{ height:70px; }
}


@media (max-width: 640px){
  .footer-partners{
    flex-wrap:wrap;
    justify-content:center;
    gap:22px 30px;
    top:75%;
  }
   .footer-partners img{ height:50px; }
}


.sbtn img{
  width:26px; height:26px;
  display:block;
  opacity:.92;
}
.sbtn:hover img{ opacity:1;  
  /* filtro rosso */
  filter: brightness(0) saturate(100%)
          invert(15%)
          sepia(95%)
          saturate(6000%)
          hue-rotate(-10deg);
 }