body.single-works .l-main {
  padding-block-start: var(--header-height);
}

.p-works-detail {
  --works-detail-inner: calc(1040 * var(--to-rem));
  --works-detail-accent: #2f3e5c;
  --works-detail-title: #1f1f1f;
  --works-detail-text: #555;
  --works-detail-label: #8a8a8a;
  --works-detail-border: #e2e2e2;
  overflow-x: clip;
  background-color: var(--color-bg-light);
  font-family: "Noto Sans JP", sans-serif;
}

.p-works-detail__inner {
  width: 100%;
  max-width: var(--works-detail-inner);
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-works-detail__inner {
    padding-inline: calc(22 * var(--to-rem));
  }
}

.p-works-detail__title {
  padding-block-start: calc(56 * var(--to-rem));
  text-align: center;
}

.p-works-detail__title-en,
.p-works-detail__heading-en,
.p-works-detail__project-link-en,
.p-works-detail__project-link-label,
.p-works-detail__navigation-list-link {
  font-family: Jost, sans-serif;
}

.p-works-detail__title-en {
  margin: 0;
  color: var(--works-detail-label);
  font-size: calc(13 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.28em;
}

.p-works-detail__title-ja {
  margin-block: calc(16 * var(--to-rem)) 0;
  color: var(--works-detail-title);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(32 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: 0.06em;
}

.p-works-detail__categories,
.p-works-detail__gallery-thumbs,
.p-works-detail__related-grid,
.p-works-detail__related-categories {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-works-detail__categories {
  display: flex;
  flex-wrap: wrap;
  gap: calc(10 * var(--to-rem));
  justify-content: center;
  margin-block-start: calc(24 * var(--to-rem));
}

.p-works-detail__category {
  display: inline-block;
  padding: calc(7 * var(--to-rem)) calc(18 * var(--to-rem));
  border: 1px solid #cdd2dd;
  border-radius: 999px;
  background-color: var(--color-white);
  color: var(--works-detail-accent);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(13 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-decoration: none;
}
@media (any-hover: hover) {
  a.p-works-detail__category:hover {
    opacity: 0.7;
  }
}

.p-works-detail__gallery {
  padding-block-start: calc(48 * var(--to-rem));
}

.p-works-detail__gallery-stage {
  position: relative;
}

.p-works-detail__gallery-main {
  overflow: hidden;
  height: calc(520 * var(--to-rem));
  border: 1px solid var(--works-detail-border);
  background-color: #e4e7ea;
}

.p-works-detail__gallery-arrow {
  position: absolute;
  top: 50%;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(46 * var(--to-rem));
  height: calc(46 * var(--to-rem));
  padding: 0;
  border: 0;
  background-color: transparent;
  color: var(--works-detail-accent);
  cursor: pointer;
  translate: 0 -50%;
  transition: opacity 0.2s;
}

.p-works-detail__gallery-arrow--previous {
  left: calc(-56 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-works-detail__gallery-arrow--previous {
    left: calc(4 * var(--to-rem));
  }
}

.p-works-detail__gallery-arrow--next {
  right: calc(-56 * var(--to-rem));
}
@media screen and (max-width: 767px) {
  .p-works-detail__gallery-arrow--next {
    right: calc(4 * var(--to-rem));
  }
}

.p-works-detail__gallery-arrow-icon {
  flex: none;
  width: calc(46 * var(--to-rem));
  height: calc(46 * var(--to-rem));
}

@media (any-hover: hover) {
  .p-works-detail__gallery-arrow:hover {
    opacity: 0.6;
  }
}
.p-works-detail__gallery-main img,
.p-works-detail__gallery-button img,
.p-works-detail__project-link-image img,
.p-works-detail__related-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-works-detail__gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: calc(12 * var(--to-rem));
  margin-block-start: calc(14 * var(--to-rem));
}

.p-works-detail__gallery-thumb {
  aspect-ratio: 4/3;
}

.p-works-detail__gallery-button {
  display: block;
  overflow: hidden;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 1px solid transparent;
  background-color: transparent;
  opacity: 0.72;
  cursor: pointer;
  transition: opacity var(--duration), border-color var(--duration);
}

.p-works-detail__gallery-button.is-current {
  border-color: var(--works-detail-accent);
  opacity: 1;
}

@media (any-hover: hover) {
  .p-works-detail__gallery-button:hover {
    opacity: 0.82;
  }
}
.p-works-detail__spec {
  padding-block-start: calc(72 * var(--to-rem));
}

.p-works-detail__heading {
  display: flex;
  flex-wrap: wrap;
  gap: calc(12 * var(--to-rem));
  justify-content: center;
  align-items: center;
  margin-block-end: calc(24 * var(--to-rem));
  text-align: center;
}

.p-works-detail__heading-en {
  color: var(--works-detail-label);
  font-size: calc(13 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.24em;
}

.p-works-detail__heading-ja {
  flex-basis: 100%;
  margin-block-start: calc(8 * var(--to-rem));
  color: var(--works-detail-title);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(30 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.5;
  letter-spacing: 0.06em;
}

.p-works-detail__spec-table {
  width: 100%;
  border-top: 1px solid var(--works-detail-border);
  border-collapse: collapse;
  background-color: var(--color-white);
}

.p-works-detail__spec-label,
.p-works-detail__spec-value {
  padding: calc(20 * var(--to-rem)) calc(24 * var(--to-rem));
  border-bottom: 1px solid var(--works-detail-border);
  vertical-align: top;
  text-align: start;
}

.p-works-detail__spec-label {
  width: 24%;
  background-color: #fbfbfb;
  color: var(--works-detail-title);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(15 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.9;
  letter-spacing: 0.04em;
}

.p-works-detail__spec-value {
  color: var(--works-detail-text);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(15 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.9;
  letter-spacing: 0;
}

.p-works-detail__project-link {
  padding-block-start: calc(56 * var(--to-rem));
}

.p-works-detail__project-link-anchor {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background-color: var(--works-detail-accent);
  color: var(--color-white);
  text-decoration: none;
  transition: background-color var(--duration);
}

.p-works-detail__project-link-image {
  flex: 0 0 38%;
  height: calc(190 * var(--to-rem));
}

.p-works-detail__project-link-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  padding: calc(40 * var(--to-rem)) calc(48 * var(--to-rem));
}

.p-works-detail__project-link-en {
  color: #aeb8ca;
  font-size: calc(12 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.28em;
}

.p-works-detail__project-link-text {
  margin: calc(12 * var(--to-rem)) 0 0;
  color: var(--color-white);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(20 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.p-works-detail__project-link-label {
  display: inline-flex;
  gap: calc(12 * var(--to-rem));
  align-items: center;
  margin-block-start: calc(20 * var(--to-rem));
  color: var(--color-white);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.14em;
}

.p-works-detail__project-link-arrow {
  flex: none;
  transition: transform 0.25s;
}

@media (any-hover: hover) {
  .p-works-detail__project-link-anchor:hover {
    background-color: #243049;
  }
  .p-works-detail__project-link-anchor:hover .p-works-detail__project-link-arrow {
    transform: translateX(calc(6 * var(--to-rem)));
  }
}
.p-works-detail__related {
  padding-block-start: calc(110 * var(--to-rem));
}

.p-works-detail__related .p-works-detail__heading {
  margin-block-end: calc(36 * var(--to-rem));
}

.p-works-detail__related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: calc(32 * var(--to-rem));
}

.p-works-detail__related-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.p-works-detail__related-image {
  overflow: hidden;
  aspect-ratio: 4/3;
  border: 1px solid var(--works-detail-border);
}

.p-works-detail__related-image img {
  transition: opacity var(--duration);
}

.p-works-detail__related-title {
  margin: calc(16 * var(--to-rem)) 0 0;
  color: var(--works-detail-title);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(15 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.6;
  letter-spacing: 0.03em;
}

.p-works-detail__related-categories {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  margin-block-start: calc(10 * var(--to-rem));
}

.p-works-detail__related-category {
  display: inline-block;
  padding: calc(3 * var(--to-rem)) calc(10 * var(--to-rem));
  border: 1px solid var(--works-detail-border);
  color: var(--works-detail-label);
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(11 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-decoration: none;
}
@media (any-hover: hover) {
  a.p-works-detail__related-category:hover {
    opacity: 0.7;
  }
}

@media (any-hover: hover) {
  .p-works-detail__related-link:hover .p-works-detail__related-image img {
    opacity: 0.85;
  }
}
.p-works-detail__navigation {
  padding-block: calc(96 * var(--to-rem)) calc(130 * var(--to-rem));
}

.p-works-detail__navigation-list {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: calc(20 * var(--to-rem));
  align-items: center;
  padding-block: calc(28 * var(--to-rem));
  border-block: 1px solid var(--works-detail-border);
}

.p-works-detail__navigation-item--next {
  text-align: end;
}

.p-works-detail__navigation-link {
  color: #3a3a3a;
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.p-works-detail__navigation-list-link {
  display: inline-flex;
  gap: calc(10 * var(--to-rem));
  align-items: center;
  padding: calc(14 * var(--to-rem)) calc(34 * var(--to-rem));
  border: 1px solid #cdd2dd;
  background-color: var(--color-white);
  color: var(--works-detail-title);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.5;
  letter-spacing: 0.12em;
  text-decoration: none;
  transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

.p-works-detail__navigation-list-icon {
  flex: none;
}

@media (any-hover: hover) {
  .p-works-detail__navigation-list-link:hover {
    border-color: var(--works-detail-accent);
    background-color: var(--works-detail-accent);
    color: var(--color-white);
  }
}
@media screen and (max-width: 767px) {
  .p-works-detail__title-ja {
    font-size: calc(24 * var(--to-rem));
  }
  .p-works-detail__gallery-main {
    height: calc(240 * var(--to-rem));
  }
  .p-works-detail__gallery-thumbs {
    grid-template-columns: repeat(3, 1fr);
    gap: calc(8 * var(--to-rem));
  }
  .p-works-detail__spec-label,
  .p-works-detail__spec-value {
    padding: calc(16 * var(--to-rem));
    font-size: calc(13 * var(--to-rem));
  }
  .p-works-detail__spec-label {
    width: 32%;
  }
  .p-works-detail__project-link-anchor {
    flex-direction: column;
    text-align: center;
  }
  .p-works-detail__project-link-image {
    height: calc(180 * var(--to-rem));
  }
  .p-works-detail__project-link-content {
    align-items: center;
    padding: calc(30 * var(--to-rem));
  }
  .p-works-detail__project-link-text {
    font-size: calc(17 * var(--to-rem));
  }
  .p-works-detail__related-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(24 * var(--to-rem)) calc(16 * var(--to-rem));
  }
  .p-works-detail__navigation-list {
    grid-template-columns: 1fr;
    gap: calc(14 * var(--to-rem));
    justify-items: center;
  }
  .p-works-detail__navigation-item,
  .p-works-detail__navigation-item--next {
    width: 100%;
    text-align: center;
  }
}