.grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
      grid-auto-rows: 200px;
      gap: 15px;
    }

    .news {
      position: relative;
      overflow: hidden;
      border-radius: 12px;
      box-shadow: 0 4px 10px rgba(0,0,0,0.1);
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .news img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .news.wide {
      grid-column: span 2;
    }

    .news.tall {
      grid-row: span 2;
    }

    .news.square {
      /* обычный квадрат, без изменений */
    }

    .overlay2 {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 10px;
      background: rgba(0,0,0,0.6);
      color: #fff;
      font-size: 14px;
    }