/**
 * Project - Media Slider
 * ピックアップスライダー・メディアカード（Splide）
 * 使用: archive-case.php, archive-news.php, archive-aio-lab.php
 */

.p-mediaSlider {
  margin-top: 72px;
  width: 100vw;
  margin-inline: calc(50% - 50vw);

  .splide__list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .splide__slide {
    width: 400px;
    min-width: 400px;
    padding-inline: 0.5rem;
  }
  .splide__pagination {
    display: flex;
    max-width: 1048px;
    width: 90%;
    justify-content: center;
    align-items: center;
    list-style: none;
    padding: 0;
    background-color: var(--color-bg-lightGray);
    margin-top: 72px;
    margin-inline: auto;
    min-height: 2px;

    li,
    .splide__pagination__page {
      line-height: 2px;
      height: 2px;
    }
  }

  &.p-mediaSlider--pickup {
    margin-top: 0;

    @media screen and (max-width: 767px) {
      width: 100%;
      margin-inline: 0;

      .splide__slide {
        width: 100% !important;
        min-width: 100% !important;
      }
    }
  }

  /* TOP用：8件固定幅（ピックアップには当てない） */
  &:not(.p-mediaSlider--pickup) .splide__pagination li,
  &:not(.p-mediaSlider--pickup) .splide__pagination .splide__pagination__page {
    width: calc(100% / 8);
  }

  /* ピックアップ：件数に応じてページネーションの幅を変更（2〜5件）。li / button 両方に指定 */
  &.p-mediaSlider--pickup .splide__pagination li:first-child:nth-last-child(2),
  &.p-mediaSlider--pickup
    .splide__pagination
    li:first-child:nth-last-child(2)
    ~ li,
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(2),
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(2)
    ~ .splide__pagination__page {
    width: calc(100% / 2);
  }
  &.p-mediaSlider--pickup .splide__pagination li:first-child:nth-last-child(3),
  &.p-mediaSlider--pickup
    .splide__pagination
    li:first-child:nth-last-child(3)
    ~ li,
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(3),
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(3)
    ~ .splide__pagination__page {
    width: calc(100% / 3);
  }
  &.p-mediaSlider--pickup .splide__pagination li:first-child:nth-last-child(4),
  &.p-mediaSlider--pickup
    .splide__pagination
    li:first-child:nth-last-child(4)
    ~ li,
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(4),
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(4)
    ~ .splide__pagination__page {
    width: calc(100% / 4);
  }
  &.p-mediaSlider--pickup .splide__pagination li:first-child:nth-last-child(5),
  &.p-mediaSlider--pickup
    .splide__pagination
    li:first-child:nth-last-child(5)
    ~ li,
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(5),
  &.p-mediaSlider--pickup
    .splide__pagination
    .splide__pagination__page:first-child:nth-last-child(5)
    ~ .splide__pagination__page {
    width: calc(100% / 5);
  }
  /* ピックアップ：li 内の button が親幅いっぱいになるように（ul > li > button のとき） */
  &.p-mediaSlider--pickup .splide__pagination li .splide__pagination__page {
    width: 100%;
  }
  .splide__pagination__page {
    flex-shrink: 0;
    padding: 0;
    display: block;
    border: none;
    border-radius: 2px;
    background-color: #ccc;
    cursor: pointer;
    transition: var(--hover);
  }
  .splide__pagination__page.is-active {
    background-color: var(--color-bg-dark);
  }
}

/* Splide の .splide:not(.is-overflow) .splide__pagination の display:none / overflow:hidden を上書き */
.p-mediaSlider.splide:not(.is-overflow) .splide__pagination {
  display: flex !important;
  overflow: visible !important;
}

/* archive-aio-lab：.splide の visibility:hidden を上書きしてスライダーを表示 */
body.post-type-archive-aio-lab .p-mediaSlider.splide {
  visibility: visible !important;
}
body.post-type-archive-aio-lab .p-mediaSlider .splide__track {
  visibility: visible !important;
}
body.post-type-archive-aio-lab .p-mediaSlider .splide__list {
  visibility: visible !important;
}

.p-mediaCardLink {
  display: flex;
  flex-direction: column-reverse;
  position: relative;
}
.p-mediaCardContents {
  color: var(--color-text-light);
  width: calc(100% - 46px);
  padding-block: 24px 30px;
  padding-inline: 1rem;
  border-radius: var(--radius-md);
  background-color: var(--color-bg-dark);
  margin-top: -48px;
  position: relative;
  z-index: 1;
}
.p-mediaCardTitle {
  font-size: 17px;
  line-height: 1.7;
  letter-spacing: 0.02em;
  margin-bottom: 6px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.p-mediaCardTags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;

  li {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: var(--radius-lg);
    background-color: var(--color-bg-darkBlack);

    &::before {
      content: "#";
    }
  }
}
.p-mediaCardImage {
  width: calc(100% - 20px);
  margin-inline: auto 0;
  border: 1px solid var(--color-border-lightGray);
  border-radius: var(--radius-md);
  overflow: hidden;

  img {
    width: 100%;
    object-fit: cover;
    aspect-ratio: 16 / 9;
  }
}
.p-mediaCardDate {
  font-family: var(--font-en);
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1;
  rotate: 90deg;
  transform-origin: top left;
  position: absolute;
  top: 0;
  left: 0;
  translate: 1rem 0;
}

/* 559px以下：TOPのみ縦並び3件。archive-aio-lab ではスライダーを維持 */
@media (max-width: 559px) {
  body:not(.post-type-archive-aio-lab) .p-mediaSlider.splide {
    visibility: visible;
  }
  body:not(.post-type-archive-aio-lab) .p-mediaSlider .splide__track {
    overflow: visible;
    visibility: visible;
  }
  body:not(.post-type-archive-aio-lab) .p-mediaSlider .splide__list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    transform: none !important;
    visibility: visible;
  }
  body:not(.post-type-archive-aio-lab) .p-mediaSlider .splide__slide {
    width: 100%;
    min-width: unset;
    padding-inline: 0;
  }
  body:not(.post-type-archive-aio-lab)
    .p-mediaSlider
    .splide__slide:nth-child(n + 4) {
    display: none;
  }
  body:not(.post-type-archive-aio-lab) .p-mediaSlider .splide__pagination {
    display: none;
  }
}
@media (max-width: 480px) {
  .splide__slide {
    width: 300px;
    min-width: 300px;
  }
}
