@charset "UTF-8";

.card {
  width: 100%;

  .card__list {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto;
    gap: 50px 2%;

    @media screen and (max-width: 768px) {
      grid-template-columns: repeat(2, 1fr);
      gap: 4%;
    }

    .card__list-item {
      position: relative;
      display: grid;
      grid-template-rows: subgrid;
      grid-row: span 3;

      a {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 3;
        gap: 10px;
      }

      @media screen and (min-width: 769px) {
        a {
          transition: transform .5s ease;
        }

        a:hover {
          transform: translate(0, -5px);

          img {
            transform: scale(1.1);
          }
        }
      }

      .card__list-textbox {
        position: relative;
        padding: 5px;
        display: grid;
        order: 2;
        grid-template-rows: subgrid;
        grid-row: span 2;

        .card__list-title {
          font-size: 18px;
          font-weight: bold;

          /* 2行で省略 */
          text-overflow: ellipsis;
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 2;
          overflow: hidden;
        }

        .card__list-text {
          font-size: 16px;

          /* 3行で省略 */
          text-overflow: ellipsis;
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 3;
          overflow: hidden;
        }
      }

      .card__list-imgbox {
        order: 1;
        position: relative;
        aspect-ratio: 640 / 425;
        overflow: hidden;
        display: flex;
        justify-content: center;
        align-items: center;

        img {
          width: 100%;
          height: auto;
          transform: scale(1.0);
          transition: transform .5s ease;
        }
      }
    }

    .card__list-item::after {
      content: "";
      position: absolute;
      top: 0;
      left: -3.1%;
      width: 1px;
      height: 100%;
      border-left: 1px solid #aaa;
      box-sizing: border-box;
    }

    .card__list-item:nth-child(3n + 1)::after {
      display: none;
    }

    @media screen and (max-width: 768px) {
      .card__list-item::after {
        left: -4.4%;
      }

      .card__list-item:nth-child(3n + 1)::after {
        display: unset;
      }

      .card__list-item:nth-child(2n + 1)::after {
        display: none;
      }
    }
  }
}
