@charset 'UTF-8';

/* main > article */
#wrapper > main > article {
  padding: 6.4rem 0;
}
@media screen and (min-width: 768px) {
  #wrapper > main > article {
    padding: 10.4rem 0;
  }
}

/* artlist */
#artlist {
  padding: 12.5rem 0;
  margin: 0 auto;
  max-width: 104.2rem;
}
#artlist article:not(:first-of-type) {
  margin-top: 4.6rem;
}
@media screen and (min-width: 768px) {
  #artlist {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  #artlist article {
    flex-basis: calc(300 / 1042 * 100%);
  }
  #artlist article:last-of-type:nth-of-type(3n - 1) {
    margin-right: calc(371 / 1042 * 100%);
  }
  #artlist article:not(:first-of-type) {
    margin-top: 0;
  }
  #artlist article:nth-of-type(n + 4) {
    margin-top: 4.6rem;
  }
}
#artlist article a {
  display: flex;
  flex-direction: column;
  height: 100%;
}
#artlist article h2 {
  padding: 0.25em 0;
  margin: 0;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  #artlist article h2 {
    font-size: 2rem;
  }
}
#artlist article .meta {
  padding: 1em 0;
  margin: auto 0 0 0;
  list-style: none;
  font-size: 1.4rem;
  line-height: 2;
}
#artlist article .meta li {
  font-weight: 500;
  letter-spacing: calc(0.9 / 14 * 1em);
}
#artlist article .ftimage {
  order: -10;
  padding-bottom: 2.1rem;
}
#artlist article .ftimage .image {
  aspect-ratio: 300 / 192;
  background-color: rgb(255, 255, 255);
}
#artlist article .ftimage .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
#artlist article .more {
  padding: 1em 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: calc(0.56 / 14 * 1em);
  text-align: end;
}
#artlist article .more::after {
  content: "";
  margin-left: 0.7em;
  display: inline-block;
  vertical-align: sub;
  width: 0.5rem;
  height: 1em;
  background-image: radial-gradient(circle, currentColor calc(0.5rem / 2), transparent calc(0.5rem / 2));
  background-repeat: no-repeat;
}

/* pagination */
#pagination > div {
  display: flex;
  justify-content: center;
}
#pagination a,
#pagination span {
  padding: 1em 0;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 3.6rem;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1;
}
#pagination a:not([rel]):not(.first):not(.last):not(.current) {
  transition: 0.2s color ease-out;
}
#pagination a:not([rel]):not(.first):not(.last):not(.current):hover {
  opacity: 1;
}
#pagination a:not([rel]):not(.first):not(.last):not(.current):not(:hover) {
  color: rgb(203, 195, 178);
}
@media screen and (max-width: 767px) {
  /* sp only */
  #pagination a[rel="prev"],
  #pagination .first,
  #pagination a[rel="next"],
  #pagination .last {
    font-size: 0;
  }
}
@media screen and (min-width: 768px) {
  #pagination a[rel="prev"],
  #pagination .first {
    margin-right: 5rem;
  }
  #pagination a[rel="next"],
  #pagination .last {
    margin-left: 5rem;
  }
}

/* pagination */
#pagination a[rel="prev"]::before {
  content: "";
  width: 1em;
  height: 1em;
  background: url(../images/ico_next.svg) no-repeat 100% 50% / contain;
  scale: -1;
}
#pagination a[rel="next"]::after {
  content: "";
  width: 1em;
  height: 1em;
  background: url(../images/ico_next.svg) no-repeat 100% 50% / contain;
}
#pagination a.first::before {
  content: "";
  padding-left: 1rem;
  width: 1em;
  height: 1em;
  background: url(../images/ico_last.svg) no-repeat 100% 50% / contain;
  scale: -1;
}
#pagination a.last::after {
  content: "";
  padding-left: 1rem;
  width: 1em;
  height: 1em;
  background: url(../images/ico_last.svg) no-repeat 100% 50% / contain;
}
@media screen and (max-width: 767px) {
  /* sp only */
  #pagination a[rel="prev"]::before,
  #pagination .first::before,
  #pagination a[rel="next"]::after,
  #pagination .last::after {
    font-size: 1.4rem;
  }
}
