/*==================================================
    ページ共通
==================================================*/
.pagePhoto {
  background: #efebe9;
  overflow: hidden;
}

/*==================================================
    パンくず
==================================================*/
.breadcrumb {
  padding: 2.8rem 0;
}

/*==================================================
    ページタイトル
==================================================*/
.pageHead {
  padding: 2.2rem 0 3.2rem;

  .inner {
    width: 1100px;
  }
}

@media screen and (max-width: 767px) {
  .pageHead {
    padding: 17.8667vw 0 0 0;

    .pageHead__title--ja {
      margin-left: 18vw;
    }
  }
}

/*==================================================
    アンカーリンク
==================================================*/
.photoNav {
  padding-top: 3.6rem;

  .photoNav__heading {
    font-size: 2rem;
    font-weight: 700;
    text-align: center;
  }

  .photoNav__list {
    display: grid;
    gap: .4rem;
    grid-template-columns: 1fr 1fr 1fr;
    margin: 3rem auto 0;
    width: fit-content;
  }

  .photoNav__link {
    align-items: center;
    background: #fff;
    border: .1rem solid #000;
    border-radius: .5rem;
    display: flex;
    justify-content: space-between;
    padding: 1.6rem 1.4rem 1.6rem 2.6rem;
    width: 23.5rem;
    position: relative;
    transition: .3s;
  }

  .photoNav__link:hover {
    background: #000;
    color: #fff;
    opacity: 1;
  }

  .photoNav__link::after {
    background-image: url(../img/photo/icon_nav_arrow.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    height: 1.2rem;
    width: 1rem;
  }

  .photoNav__link:hover::after {
    background-image: url(../img/photo/icon_nav_arrow_hover.png);
  }

  @media screen and (max-width: 767px) {
    .photoNav__heading {
      font-size: 3.7333vw;
      font-weight: 500;
      line-height: 1.75;
    }

    .photoNav__list {
      gap: 1.8667vw;
      margin: 6.6667vw auto 0;
    }

    .photoNav__link {
      border: .1333vw solid #000;
      border-radius: 1.3333vw;
      font-size: 3.7333vw;
      height: 100%;
      justify-content: center;
      line-height: 1.4;
      padding: 2.6667vw 0;
      position: relative;
      text-align: center;
      width: 30vw;
    }

    .photoNav__link::after {
      position: absolute;
      bottom: 2vw;
      right: 2vw;
      height: 1.86vw;
      width: 1.6vw;
    }
  }
}

/*==================================================
    各セクション
==================================================*/
.school {
  padding: 5rem 2rem 22.7rem;
}

.events {
  background: #fff;
  padding: 14rem 2rem 19rem;
}

.csr {
  padding: 14rem 2rem 19rem;
}

@media screen and (max-width: 767px) {
  .photoWrap .inner {
    max-width: calc(100% - 0.8vw);
  }

  .school {
    padding: 16vw 0 20vw;
  }

  .events {
    padding: 18.6667vw 0 17.3333vw;
  }

  .csr {
    padding: 22vw 0;
  }
}

/*==================================================
    セクションタイトル
==================================================*/
.photo__subtitle {
  align-items: center;
  color: #01022d;
  display: grid;
  font-size: 2.6rem;
  font-weight: 600;
  gap: 1.4rem;
  grid-template-columns: 1.4rem 1fr;

  .dot {
    background: #f06414;
    border-radius: 50%;
    display: block;
    height: 1.4rem;
    width: 1.4rem;
  }

  @media screen and (max-width: 767px) {
    font-size: 4.8vw;
    gap: 1.8667vw;
    grid-template-columns: 1.8667vw 1fr;
    margin: 0 4vw;

    .dot {
      height: 1.8667vw;
      transform: translateY(-.4vw);
      width: 1.8667vw;
    }
  }
}

/*==================================================
    写真・動画ブロック共通
==================================================*/
.photoSwiper__label,
.videoSwiper__label {
  bottom: 0;
  font-family: "Outfit", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  position: absolute;
  right: 0;

  @media screen and (max-width: 767px) {
    font-size: 4vw;
  }
}

/*==================================================
    写真ブロック
==================================================*/
.photoSwiper__container {
  margin-top: 2.4rem;
  position: relative;

  .photoSwiper .swiper-slide {
    padding: .1rem;
  }

  .photoSwiper__nav {
    align-items: center;
    display: flex;
    gap: 7.5rem;
    justify-content: center;
    margin-top: 3.4rem;
    position: relative;
  }

  .photoSwiper__nav::before {
    background: #01022d;
    content: "";
    display: block;
    height: 100%;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: .1rem;
  }

  .photoSwiper__prev,
  .photoSwiper__next {
    display: flex;
    height: fit-content;
    padding: .6rem;
  }

  .photoSwiper__nav img {
    max-width: 11.4rem;
  }

  .photoSwiper__next img {
    transform: scaleX(-1);
  }

  @media screen and (max-width: 767px) {
    .photoSwiper__container {
      margin-top: 7.3333vw;
    }

    .photoSwiper__nav {
      gap: 7.2vw;
      margin-top: 6vw;
    }

    .photoSwiper__nav img {
      max-width: 11.2vw;
    }

    .photoSwiper__prev,
    .photoSwiper__next {
      padding: .2rem 0;
    }

    .photoSwiper__label {
      bottom: 50%;
      right: 3.2vw;
      transform: translateY(50%);
    }
  }
}

/*==================================================
    動画ブロック
==================================================*/
.videoSwiper__container {
  margin-top: 8.5rem;

  .videoSwiper {
    overflow: visible;
    padding-bottom: 9rem;
  }

  .videoSwiper .swiper-slide {
    /* animation: pulse-bg 1.5s infinite ease-in-out; */
    /* background-color: #252525; */
    border-radius: 1rem;
    position: relative;
  }

  .videoSwiper iframe {
    animation: pulse-bg 1.5s infinite ease-in-out;
    aspect-ratio: 16 / 9;
    background: red;
    background-color: #252525;
    border-radius: 1rem;
    height: 100%;
    position: relative;
    width: 100%;
    z-index: 1;
  }

  .videoSwiper .swiper-scrollbar {
    background: linear-gradient(to bottom, #c8c7c7, #e3e1e2);
    border: .1rem solid #c9c8c8;
    border-radius: 1rem;
    cursor: pointer;
    height: 1rem;
  }

  .videoSwiper .swiper-scrollbar-drag {
    background: linear-gradient(to right, #f06414, #e22802);
    border-radius: 1rem;
  }

  .videoSwiper .swiper-scrollbar-drag:hover {
    background: linear-gradient(to right, #d85b12, #cb2302);
  }

  .videoSwiper__label {
    bottom: 5.5rem;
  }

  @media screen and (max-width: 767px) {
    margin: 16vw 2.6667vw 0;

    .videoSwiper {
      padding-bottom: 21vw;
    }

    .videoSwiper .swiper-scrollbar {
      height: 1.3vw;
    }
  }

}

@keyframes pulse-bg {
  0% {
    background-color: #252525;
  }

  50% {
    background-color: #3e3e3e;
  }

  100% {
    background-color: #252525;
  }
}