.news-text {
  line-height: 1.5;
  max-height: 4.5em;
  overflow: hidden;
  transition: max-height 350ms ease;
}

/* Izolacja layoutu/paint dla karty — zmiana wewnątrz (rozwinięcie tekstu, decoding obrazka)
   NIE wymusza reflow/repaint całego dokumentu. Browser ogranicza prace do tej karty.
   Wymierne odciążenie main thread na iOS, gdzie każde repaint jest droższe niż na desktop. */
.card-news {
  contain: layout style paint;
}

/* Style tylko dla urządzeń desktopowych */
  @media (min-width: 992px) {
    .card-news {
      /* Płynne przejście dla transformacji i cienia */
      transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), filter 0.3s ease;
      will-change: transform; /* Optymalizacja dla przeglądarki */
    }

    /* Efekt po najechaniu myszką */
    .card-news:hover {
      /* rotate(-4deg) = obrót w lewo (ccw); scale(1.1) = lekkie powiększenie/wybicie przed szereg */
      transform: scale(1.05);
      /* Opcjonalnie: dodanie lekkiego cienia, aby wzmocnić efekt "wybicia przed" */
      filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.15));
    }
  }