@charset 'UTF-8';

/**
 * 他の CSS はデスクトップ用とモバイル用の2つの CSS を使用していますが、
 * /collection/ ページ用のこの CSS はレスポンシブに1つの CSS を使用しています。
 */

.internalLink {
  margin-top: 64px;
}

@media only screen and (max-width: 479px) {
  .internalLink {
    margin: 43px auto 0;
    /* 375px の場合、.internalLink__list > li が1行に3列表示されるように拡大する。 */
    /* width: calc(310 / 375 * 100%); */
    width: calc(340 / 375 * 100%);
  }
}

.internalLink__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  /* .internalLink__list > li に指定した margin-bottom を打ち消す。 */
  margin-bottom: -24px;
}

@media only screen and (max-width: 479px) {
  .internalLink__list {
    justify-content: flex-start;
  }
}

.internalLink__list > li {
  position: relative;
  margin-bottom: 24px;
  /**
   * li 要素に font-size: 12px; が指定されており、
   * 12px の未満であるのに高さが 12px になってしまうので、
   * font-size に 0 を指定する。
   */
  font-size: 0;
}

.internalLink__list > li:not(:last-child) {
  /* padding-right + widht of li::before */
  padding-right: calc(26px + 1px);
  margin-right: 26q;
}

.internalLink__list > li:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  display: block;
  width: 1px;
  height: 12px;
  content: '';
  background: #e8e6e6;
}

@media only screen and (max-width: 479px) {
  .internalLink__list > li:not(:last-child) {
    margin-right: 15px;
    padding-right: 15px;
  }
}

.internalLink__link {
  display: block; /* Chrome で opacity を有効にするために指定する。 */
  transition: opacity 0.25s ease-out;
}

.internalLink__link:hover,
.internalLink__link:focus {
  opacity: 0.5;
}

.internalLink__img {
  display: block;
  width: auto;
  height: 9px;
}

.internalLink__button {
  position: relative;
  border: 0;
  border-radius: 0;
  /* .internalLink__button::after とのマージン + border-inline */
  padding: 0 calc(9px + 3px + 3px) 0 0;
  background: none;
  cursor: pointer;
  transition: opacity 0.25s ease-out;
}

.internalLink__button:hover,
.internalLink__button:focus {
  opacity: 0.5;
}

.internalLink__button::after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  border-top: 5px solid #140a0a;
  border-right: 3px solid transparent;
  border-left: 3px solid transparent;
  content: '';
}

.internalLink__menu {
  position: absolute;
  top: calc(100% + 18px);
  left: -26px;
  z-index: 1;
  box-sizing: border-box;
  border: 1px solid #e7e6e6;
  padding: 22px 0;
  width: calc(100% + 26px);
  background: #fff;
}

@media only screen and (max-width: 479px) {
  .internalLink__menu {
    left: -15px;
    width: calc(100% + 15px);
  }
}

.internalLink__menu[aria-hidden='true'] {
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.25s ease-out, visibility 0s 0.25s;
}

.internalLink__menu[aria-hidden='false'] {
  transition: opacity 0.25s ease-out;
}

/* .internalLink__menu ul {} */

.internalLink__menu li + li {
  margin-top: 21px;
}

.internalLink__menuLink {
  display: flex;
  justify-content: center;
  transition: opacity 0.25s ease-out;
}

.internalLink__menuLink:hover,
.internalLink__menuLink:focus {
  opacity: 0.5;
}

.internalLink__menuLink > img {
  width: auto;
  height: 9px;
}

.materialWrapper {
  margin-top: 59px;
  /* = padding-bottom - margin-top of #footer-store */
  padding-bottom: calc(243px - 97px);
}

@media only screen and (max-width: 479px) {
  .materialWrapper {
    padding-bottom: 66px;
    margin: 42px auto 0;
    width: calc(349 / 375 * 100%);
  }
}

.materialWrapper > * {
  border-top: 1px solid #e7e6e6;
}

.materialWrapper > *:first-child {
  padding-top: 100px;
}

@media only screen and (max-width: 479px) {
  .materialWrapper > *:first-child {
    padding-top: 60px;
  }
}

.materialWrapper > * + * {
  margin-top: 104px;
  padding-top: 104px;
}

@media only screen and (max-width: 479px) {
  .materialWrapper > * + * {
    margin-top: 60px;
    padding-top: 60px;
  }
}

/* .material {} */

.material__heading {
  display: flex;
  justify-content: center;
}

/* ページ内リンク用のスタイル */
.material__heading[id] {
  margin-top: -100px;
  padding-top: 100px;
}

@media only screen and (max-width: 479px) {
  .material__heading[id] {
    margin-top: -60px;
    padding-top: 60px;
  }
}

.material__headingImg {
  width: auto;
  height: 12px;
}

@media only screen and (max-width: 479px) {
  .material__headingImg {
    height: 10px;
  }
}

.material__series {
  display: flex;
  flex-wrap: wrap;
  margin-top: 64px;
}

@media only screen and (max-width: 479px) {
  .material__series {
    margin-top: 46px;
    /* IE11以外は grid をサポートしているので、モバイル向けには grid を使用する。 */
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px calc(13 / 349 * 100%);
  }
}

.material__series > * {
  flex-basis: calc((100% - (17px * 2)) / 3);
  min-width: 0;
}

@media only screen and (max-width: 479px) {
  .material__series > * {
    flex-basis: auto;
  }
}

.material__series > *:nth-child(3n+2),
.material__series > *:nth-child(3n+3) {
  margin-left: 17px;
}

@media only screen and (max-width: 479px) {
  .material__series > *:nth-child(3n+2),
  .material__series > *:nth-child(3n+3) {
    margin-left: 0;
  }
}

.material__series > *:nth-child(n+4) {
  margin-top: 65px;
}

@media only screen and (max-width: 479px) {
  .material__series > *:nth-child(n+4) {
    margin-top: 0;
  }
}

/* .series {} */

.series__link {
  position: relative;
  display: block;
}

.series__img {
  display: block;
  width: 100%;
  height: auto;
}

.series__overlay {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  padding: 0 calc(34 / 322 * 100%);
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  transition: opacity 0.25s ease-out;
}

@media only screen and (max-width: 479px) {
  .series__overlay {
    display: none;
  }
}

.series__link:hover .series__overlay,
.series__link:focus .series__overlay {
  opacity: 1;
}

.series__overlayDescription {
  font-size: 13px;
  line-height: 1.75; /* 22.75px */
  color: #fff;
}

.series__category {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: calc(30px - (22.75px - 13px) / 2 - (23px - 12px) / 2);
}

@font-face {
  font-family: 'Yu Gothic';
  src: local('Yu Gothic Medium'), local('YuGothic-Medium');
}

.series__category li {
  font-family: YuGothic, 'Yu Gothic', sans-serif;
  font-size: 12px;
  line-height: 23px;
  letter-spacing: 0.06em;
  color: #fff;
}

.series__category li:not(:last-child)::after {
  white-space: pre;
  content: ' / ';
}

.series__overlayMore {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  width: calc(290 / 322 * 100%);
  height: 54px;
}

.series__overlayMore::after {
  position: absolute;
  top: 50%;
  right: 13px;
  transform: translateY(-50%);
  border-top: 2px solid transparent;
  border-bottom: 2px solid transparent;
  border-left: 5px solid #fff;
  content: '';
}

.series__overlayMore > img {
  width: auto;
  height: 10px;
}

.series__name {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

@media only screen and (max-width: 479px) {
  .series__name {
    align-items: center;
    /* 2カラム内のY位置を揃えるために、明示的に高さを指定する。 */
    height: calc(63px - (19.25px - 11px) / 2);
    margin-top: 0;
  }
}

.series__name img {
  width: 100%;
  object-fit: contain;
  height: 10px;
}

@media only screen and (max-width: 479px) {
  .series__name img {
    height: 9px;
  }
}

/* 高さが異なる画像を微調整する。 */
.series__name img[height='25'] {
  margin-top: -2px;
  height: 12px;
}

@media only screen and (max-width: 479px) {
  .series__name img[height='25'] {
    height: 11px;
  }
}

.series__name img[height='30'] {
  margin-top: -1px;
  height: 15px;
}

@media only screen and (max-width: 479px) {
  .series__name img[height='30'] {
    margin-top: 3px;
    height: 14px;
  }
}

@media only screen and (max-width: 479px) {
  /* source 要素でモバイル用の source 要素を出力している画像に決め打ちで（2行用の）高さを指定する。 */
  .series__name source + img {
    height: 25px;
  }
}

.series__description {
  display: none;
}

@media only screen and (max-width: 479px) {
  .series__description {
    display: block;
    font-size: 11px;
    line-height: 1.75; /* = 19.25 / 11 */
    color: #433B3B;
  }
}

.series__more {
  display: none;
}

@media only screen and (max-width: 479px) {
  .series__more {
    display: flex;
    justify-content: center;
    align-self: flex-start; /* for iOS Safari and Chrome */
    margin-top: calc(24px - (19.2px - 11px) / 2);
  }
}

.series__more img {
  width: 130px;
  max-width: 100%;
  /**
   * iOS Safari で flex アイテムの img 要素に height: auto; が効かないので、
   * 明示的に height を指定する。
   */
  /* height: auto; */
  height: 31px;
}
