@charset "UTF-8";
/*======================================
    Font size
======================================*/
/*======================================
    media
======================================*/
/*======================================
    color
======================================*/
/*======================================
    font
======================================*/
@font-face {
  font-family: "TsukuGoPro";
  src: url("../fonts/FOT-TsukuGoPro-R.otf") format("opentype");
  font-weight: 400;
}
@font-face {
  font-family: "TsukuGoPro";
  src: url("../fonts/FOT-TsukuGoPro-D.otf") format("opentype");
  font-weight: 600;
}
@font-face {
  font-family: "TsukuGoPro";
  src: url("../fonts/FOT-TsukuGoPro-B.otf") format("opentype");
  font-weight: 700;
}
@font-face {
  font-family: "Gothic725";
  src: url("../fonts/Gothic725BdBT.otf") format("opentype");
  font-weight: 400;
}
/*======================================
    mixin
======================================*/
/*======================================
    common
======================================*/
html {
  font-size: 1rem;
  font-family: "TsukuGoPro", sans-serif;
  color: #000;
}

body {
  background-color: #fff;
}
body.bg_navy {
  background-color: #28283c;
  color: #fff;
}
body.bg_navy .header .h_inner {
  border-color: #fff;
}
body.bg_navy .header .h_logo {
  background: url(../img/common/logo_white.svg) no-repeat center/contain;
}
body.bg_navy .header .h_logo img {
  opacity: 0;
}
body.bg_navy .header .h_nav_sub li a::before {
  background-color: #fff;
}
body.bg_navy .header .d_icon::before, body.bg_navy .header .d_icon::after {
  background-color: #fff;
}
body.bg_navy .button_liner_square::before {
  border-top-color: #fff;
  border-right-color: #fff;
}
body.bg_navy .button_liner_square::after {
  border-bottom-color: #fff;
  border-left-color: #fff;
}
body.bg_navy .button_liner_arrow::before, body.bg_navy .button_liner_arrow::after {
  background-color: #fff;
}

img {
  width: 100%;
  vertical-align: middle;
}

a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  cursor: pointer;
}

@media (min-width: 769px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}
@media screen and (max-width: 767px) {
  br.is_pc {
    display: none;
  }
}

br.is_sp {
  display: none;
}
@media screen and (max-width: 767px) {
  br.is_sp {
    display: block;
  }
}

.main {
  position: relative;
}
.main.page {
  padding: 9.375rem 0 12.5rem;
}
@media screen and (max-width: 767px) {
  .main.page {
    padding: 4.6875rem 0;
  }
}

/*======================================
    layout
======================================*/
.container {
  overflow: hidden;
}

.inner {
  width: 90%;
  max-width: 61.25rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .inner {
    width: 90.67%;
  }
}

.inner_sm {
  max-width: 50rem;
  margin-left: auto;
  margin-right: auto;
}

.button_top {
  display: block;
  position: absolute;
  bottom: min(5%, 2.5rem);
  right: 50%;
  transform: translateX(min(45vw, 30.625rem));
  padding-top: 6.875rem;
  z-index: 2;
  line-height: 1.75;
}
@media screen and (max-width: 767px) {
  .button_top {
    padding-top: 3.75rem;
    bottom: min(5%, 1.25rem);
  }
}
.button_top:hover::before {
  transform: translateY(-0.375rem);
}
.button_top::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 0.625rem;
  height: 6.25rem;
  background: url(../img/common/icon_top.svg) no-repeat center/contain;
  transition: transform 0.3s ease;
}
@media screen and (max-width: 767px) {
  .button_top::before {
    width: 0.3125rem;
    height: 3.125rem;
  }
}
.button_top span {
  font-family: "Gothic725", sans-serif;
  display: inline-block;
  transform: rotate(180deg);
  writing-mode: vertical-rl;
  font-size: 0.625rem;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .button_top span {
    font-size: 0.5rem;
  }
}

/*======================================
    decoration
======================================*/
.dilate {
  filter: url(#dilate);
}

@keyframes slideDown {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 300;
}
.header.active .h_logo {
  background: url(../img/common/logo_white.svg) no-repeat center/contain;
}
.header.active .h_logo img {
  opacity: 0;
}
.header.top {
  opacity: 0;
}
.header.hide {
  transform: translateY(-100%);
  opacity: 0;
}

.h_inner {
  display: flex;
  height: 5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #000;
  align-items: flex-end;
}
@media screen and (max-width: 767px) {
  .h_inner {
    height: 2.5rem;
    padding-bottom: 0.625rem;
  }
}

.h_logo {
  display: block;
  width: 100%;
  max-width: 12.5rem;
}
@media screen and (max-width: 767px) {
  .h_logo {
    max-width: 6.25rem;
  }
}

.h_nav {
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .h_nav {
    display: none;
  }
}

.h_nav_links {
  display: flex;
}

.h_nav_link {
  position: relative;
  z-index: 1;
}
.h_nav_link:last-child a {
  padding-right: 0;
}
.h_nav_link a {
  display: block;
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  text-transform: uppercase;
  padding: 0 0.8em;
}
.h_nav_link:hover ul.h_nav_sub {
  transform: translateY(100%);
  opacity: 1;
  visibility: visible;
}
.h_nav_link ul.h_nav_sub {
  position: absolute;
  bottom: 0;
  left: 0;
  width: fit-content;
  padding: 1.75rem 0.8em 1.25rem;
  transform: translateY(calc(100% - 1.25rem));
  opacity: 0;
  visibility: hidden;
  transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
  z-index: -1;
}
.h_nav_link ul.h_nav_sub li a {
  display: inline-block;
  line-height: 1.6666666667;
  white-space: nowrap;
  position: relative;
  padding: 0;
}
.h_nav_link ul.h_nav_sub li a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transition: transform 0.5s ease;
  transform-origin: right top;
  transform: scale(0, 1);
}
.h_nav_link ul.h_nav_sub li a:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}

/*======================================
    drawer
======================================*/
.d_icon {
  display: none;
}
@media screen and (max-width: 767px) {
  .d_icon {
    display: block;
    width: 3.125rem;
    aspect-ratio: 2/1;
    background-color: unset;
    border: none;
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    margin-left: auto;
    position: relative;
  }
  .d_icon.active::before, .d_icon.active::after {
    background-color: #fff;
  }
  .d_icon.active::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  .d_icon::before, .d_icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transition: transform 0.3s ease;
    background-color: #000;
    transform: translate(-50%, -50%);
  }
  .d_icon::before {
    width: 100%;
    height: 2px;
  }
  .d_icon::after {
    width: 1.3125rem;
    height: 1px;
  }
}

.drawer {
  display: none;
}
@media screen and (max-width: 767px) {
  .drawer {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100svh;
    color: #fff;
    z-index: 200;
    padding-top: 7.5rem;
    overflow: auto;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.3s ease, opacity 0.3s ease;
  }
  .drawer::before, .drawer::after {
    content: "";
    position: absolute;
    background-color: #000;
    width: 100%;
    height: calc(60% + 6.25rem);
    z-index: -1;
    transition: transform 0.3s ease;
  }
  .drawer::before {
    top: 0;
    left: 0;
    clip-path: polygon(0 0, 100% 0%, 100% 50%, 0% 100%);
    transform: translateY(-100%);
  }
  .drawer::after {
    bottom: 0;
    left: 0;
    clip-path: polygon(0 50%, 100% 0%, 100% 100%, 0% 100%);
    transform: translateY(100%);
  }
  .drawer.active {
    visibility: visible;
    opacity: 1;
  }
  .drawer.active::before, .drawer.active::after {
    transform: translateY(0);
  }
}

.d_inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  row-gap: 2.5rem;
}

.d_items_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 1.25rem;
}

.d_items {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}

.d_item_link {
  display: block;
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.5;
  border: none;
  border-bottom: 1px solid #fff;
  font-family: "Gothic725", sans-serif;
  text-transform: uppercase;
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  border-radius: 0;
  background-color: unset;
  padding: 0;
  color: inherit;
  width: 100%;
  text-align: left;
  margin-bottom: 0.625rem;
}

button.d_item_link {
  position: relative;
}
button.d_item_link.active::after {
  transform: translateY(-50%);
}
button.d_item_link.active .d_item_sub {
  max-height: 100%;
}
button.d_item_link::before, button.d_item_link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 0.4375rem;
  height: 1px;
  background-color: #fff;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}
button.d_item_link::after {
  transform: translateY(-50%) rotate(90deg);
}

.d_item_sub {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.d_item_sub li a {
  font-size: 0.9375rem;
  font-feature-settings: "palt";
  line-height: 2.3333333333;
}

.d_bottoms {
  margin-top: auto;
  padding-bottom: 1.25rem;
}

/*======================================
    目次
======================================*/
.toc_wrap {
  position: fixed;
  bottom: calc((100% - 5rem) / 2);
  right: 50%;
  transform: translate(min(45vw, 30.625rem), 50%);
  z-index: 300;
  height: min(60vh, 40.625rem);
  transform: bottom 0.3s ease, transform 0.3s ease;
}
@media screen and (max-width: 767px) {
  .toc_wrap {
    height: min(60vh, 20.3125rem);
  }
}
.toc_wrap.stop {
  position: absolute;
  bottom: 20rem;
  transform: translate(min(45vw, 30.625rem), 0);
}
@media screen and (max-width: 767px) {
  .toc_wrap.stop {
    bottom: 10rem;
  }
}

.toc {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 1px;
  transition: transform 0.3s ease 0.5s, opacity 0.3s ease 0.5s, visibility 0.3s ease 0.5s;
  transform: translateX(1.25rem);
  opacity: 0;
  visibility: hidden;
}
.toc.show {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
}

.toc_link {
  display: block;
  writing-mode: vertical-rl;
  flex: 1;
  position: relative;
}
.toc_link:last-child {
  height: 0.375rem;
  flex: 0;
}
.toc_link:not(:last-child)::before, .toc_link:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  background-color: #000;
  height: 100%;
  translate: -50% 0;
}
@media screen and (max-width: 767px) {
  .toc_link:not(:last-child)::before, .toc_link:not(:last-child)::after {
    translate: 20% 0;
  }
}
.toc_link:not(:last-child)::before {
  opacity: 0.1;
  z-index: 1;
}
.toc_link:not(:last-child)::after {
  z-index: 2;
  transform: scaleY(var(--progress, 0%));
  transition: transform 0.1s ease;
  transform-origin: top center;
}
.toc_link.active span.text {
  opacity: 1;
}
.toc_link.active span.dot {
  opacity: 1;
}
.toc_link span.dot {
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background-color: #000;
  z-index: 2;
  transform: translateX(-50%);
  opacity: 0.1;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 767px) {
  .toc_link span.dot {
    width: 0.1875rem;
    height: 0.1875rem;
  }
}
.toc_link span.text {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  font-size: 0.9375rem;
  font-family: "Gothic725", sans-serif;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  white-space: nowrap;
  text-align: right;
  transform: translate(-100%, -50%) rotate(180deg);
  transition: opacity 0.3s ease;
  line-height: 1.75;
  opacity: 0.2;
}
@media screen and (max-width: 767px) {
  .toc_link span.text {
    font-size: 0.5rem;
  }
}

.footer {
  background-color: #000;
  color: #fff;
  padding: 2.25rem 0 13.75rem;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .footer {
    padding: 1.25rem 0 1.875rem;
  }
}

.f_inner {
  display: flex;
  column-gap: 1.875rem;
  align-items: start;
}
@media screen and (max-width: 767px) {
  .f_inner {
    column-gap: 1.25rem;
  }
}

.f_wrap {
  flex: 1;
}

.f_head {
  max-width: 37.625rem;
}
@media screen and (max-width: 767px) {
  .f_head {
    max-width: 18.75rem;
  }
}

.f_social {
  display: flex;
  column-gap: 1.25rem;
  padding-bottom: 3.125rem;
  border-bottom: 1px solid #fff;
}
@media screen and (max-width: 767px) {
  .f_social {
    column-gap: 0.625rem;
    padding-bottom: 1.25rem;
  }
}

.f_social_title {
  font-family: "Gothic725", sans-serif;
  font-size: 2.8125rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .f_social_title {
    font-size: 1.5625rem;
  }
}

.f_social_links {
  display: flex;
  column-gap: 2.1875rem;
  margin-left: auto;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .f_social_links {
    column-gap: 1.125rem;
  }
}

.f_social_link a {
  display: block;
  width: 1.875rem;
  aspect-ratio: 1/1;
  line-height: 1;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 767px) {
  .f_social_link a {
    width: 0.9375rem;
  }
}
.f_social_link a:hover {
  opacity: 0.7;
}
.f_social_link a img {
  height: 100%;
  object-fit: contain;
}

.f_contact {
  position: relative;
  display: block;
  font-size: 5.9375rem;
  font-family: "Gothic725", sans-serif;
  line-height: 1;
  white-space: nowrap;
  padding: 1.25rem 0;
}
.f_contact.button_liner_arrow {
  width: 100%;
}
.f_contact.button_liner_arrow .arrow-horizontal {
  position: absolute;
  bottom: unset;
  left: unset;
  top: 50%;
  right: 0;
  width: 5rem;
  transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  .f_contact.button_liner_arrow .arrow-horizontal {
    width: 2.8125rem;
  }
}
@media screen and (max-width: 767px) {
  .f_contact {
    font-size: 2.8125rem;
  }
}

.f_body {
  display: grid;
  grid-template-columns: auto 14.0625rem 15.375rem;
  column-gap: 2.5rem;
  margin-top: 6.875rem;
}
@media screen and (max-width: 767px) {
  .f_body {
    margin-top: 2.5rem;
    grid-template-columns: 1fr;
    row-gap: 1.25rem;
  }
}

@media screen and (min-width: 1025px) {
  .f_links_wrapper {
    display: contents;
  }
}
@media screen and (max-width: 767px) {
  .f_links_wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 1.25rem;
  }
}

.f_links_wrap {
  display: flex;
  flex-direction: column;
  row-gap: 3.125rem;
}
@media screen and (max-width: 767px) {
  .f_links_wrap {
    row-gap: 1.25rem;
  }
}

.f_links_block {
  flex: 1;
}

.f_links_title {
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .f_links_title {
    font-size: 0.8125rem;
    letter-spacing: normal;
  }
}
.f_links_title {
  display: block;
  font-family: "Gothic725", sans-serif;
  line-height: 1.5;
  border-bottom: 1px solid #fff;
  position: relative;
  text-transform: uppercase;
}
.f_links_title:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}
.f_links_title::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.2;
  background-color: #fff;
  transition: transform 0.5s ease;
  transform-origin: right top;
  transform: scale(0, 1);
}

.f_links {
  margin-top: 1.25rem;
}

@keyframes line_flow {
  0% {
    transform: scaleX(0);
    transform-origin: left center;
  }
  40% {
    transform: scaleX(1);
    transform-origin: left center;
  }
  41% {
    transform-origin: right center;
  }
  80% {
    transform: scaleX(0);
    transform-origin: right center;
  }
  100% {
    transform: scaleX(0);
    transform-origin: right center;
  }
}
.f_links_link a {
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .f_links_link a {
    font-size: 0.8125rem;
    letter-spacing: normal;
  }
}
.f_links_link a {
  font-weight: 600;
  line-height: 2.3333333333;
  position: relative;
  transition: opacity 0.5s ease;
}
.f_links_link a:hover {
  opacity: 0.7;
}
.f_links_link a:hover::before {
  animation: line_flow 2.5s ease infinite;
}
.f_links_link a::before {
  content: "";
  position: absolute;
  bottom: -0.5em;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;
  transition: transform 0.5s ease;
  transform-origin: right top;
  transform: scale(0, 1);
}
.f_links_link a.link_out::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -1.33em;
  width: 0.93em;
  aspect-ratio: 1/1;
  background: url(../img/common/icon_out.svg) no-repeat center/contain;
  transform: translate(100%, -50%);
  transition: transform 0.5s ease;
}
@media screen and (max-width: 767px) {
  .f_links_link a.link_out::after {
    right: -0.5em;
    width: 1em;
  }
}
.f_links_link a.link_out:hover::after {
  transform: translate(calc(100% + 0.2em), calc(-50% - 0.2em));
}

.f_bottoms {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  row-gap: 1.875rem;
}

.f_buttons {
  display: flex;
  flex-direction: column;
  row-gap: 1.25rem;
}

.f_button_lang {
  font-size: 1.25rem;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  background-color: unset;
  border: none;
  box-shadow: none;
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
  color: inherit;
  display: block;
  position: relative;
  text-align: center;
  padding: 0;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .f_button_lang {
    font-size: 0.625rem;
  }
}
.f_button_lang::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1em;
  height: 1px;
  background-color: #fff;
  visibility: hidden;
}
.f_button_lang.active::before {
  visibility: visible;
}

.f_copyright {
  line-height: 1;
}
.f_copyright small {
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  writing-mode: vertical-rl;
  transform: translateX(50%) rotate(180deg);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .f_copyright small {
    font-size: 0.5rem;
  }
}

/*======================================
    GSAP
======================================*/
/* 背景コンテナ */
.bg-wrap {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

/* 光の玉 */
.blob {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, var(--blob-color, #ffffff) 0%, var(--blob-color, #ffffff) 30%, rgba(0, 0, 0, 0) 80%);
  filter: blur(100px);
  /* ぼかし弱めで芯を濃く */
  opacity: 0.95;
  /* 不透明度を強める */
  mix-blend-mode: screen;
  z-index: 1;
}

/* メインカラー用（大きめ） */
.blob.large {
  width: 80vw;
  height: 80vw;
}

/* マウス追従用（小さめ） */
.blob.mouse-blob {
  width: 40vw;
  height: 40vw;
  left: 0;
  /* 初期位置は左上に固定 */
  top: 0;
  z-index: 2;
  background: radial-gradient(circle, var(--blob-color, #ffffff) 0%, var(--blob-color, #ffffff) 20%, rgba(0, 0, 0, 0) 90%);
}

section {
  position: relative;
  z-index: 1;
}

/*======================================
    WebGL
======================================*/
canvas {
  display: block;
  position: fixed;
  inset: 0;
  z-index: -1;
}

/*======================================
    animation
======================================*/
.fadeIn {
  opacity: 0;
  transform: translateY(1.25rem);
  transition: opacity 1s ease, transform 1s ease;
}
.fadeIn.trigger {
  transform: translateY(0);
  opacity: 1;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: translateY(1.25rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.imgIn {
  overflow: hidden;
  position: relative;
}
.imgIn::before {
  content: "";
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  background-color: #000;
  transition: transform 0.75s cubic-bezier(0.46, 0.03, 0.52, 0.96);
}
.imgIn.trigger::before {
  transform: translateX(100%);
}
.imgIn img {
  height: 100%;
  object-fit: cover;
}

.img_slideIn {
  overflow: hidden;
  position: relative;
  aspect-ratio: 280/420;
  width: 17.5rem;
}
.img_slideIn img {
  height: 100%;
  object-fit: cover;
  background-color: lightgray;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 1s cubic-bezier(0.77, 0, 0.175, 1);
}
.img_slideIn.trigger img {
  clip-path: inset(0 0 0 0);
}

.img_slideInDeg {
  overflow: hidden;
  position: relative;
  aspect-ratio: 280/420;
  width: 17.5rem;
}
.img_slideInDeg img {
  height: 100%;
  object-fit: cover;
  background-color: lightgray;
  clip-path: polygon(0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0);
}
.img_slideInDeg.trigger img {
  animation-name: imgIn;
  animation-duration: 1s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}
.img_slideInDeg:not(.trigger) img {
  animation-name: imgOut;
  animation-duration: 1s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

@keyframes imgIn {
  0% {
    clip-path: polygon(0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0);
  }
  25% {
    clip-path: polygon(50% 0, 50% 0, 50% 0, 50% 0, 0 50%, 0 50%, 0 50%, 0 0);
  }
  50% {
    clip-path: polygon(100% 0, 100% 0, 100% 0, 100% 0, 0 100%, 0 100%, 0 100%, 0 0);
  }
  75% {
    clip-path: polygon(100% 0, 100% 0, 100% 0, 100% 50%, 50% 100%, 0 100%, 0 100%, 0 0);
  }
  100% {
    clip-path: polygon(100% 0, 100% 0, 100% 99%, 100% 100%, 100% 100%, 100% 100%, 0 100%, 0 0);
  }
}
@keyframes imgOut {
  0% {
    clip-path: polygon(100% 0, 100% 0, 100% 99%, 100% 100%, 100% 100%, 100% 100%, 0 100%, 0 0);
  }
  25% {
    clip-path: polygon(100% 0, 100% 0, 100% 0, 100% 50%, 50% 100%, 0 100%, 0 100%, 0 0);
  }
  50% {
    clip-path: polygon(100% 0, 100% 0, 100% 0, 100% 0, 0 100%, 0 100%, 0 100%, 0 0);
  }
  75% {
    clip-path: polygon(50% 0, 50% 0, 50% 0, 50% 0, 0 50%, 0 50%, 0 50%, 0 0);
  }
  100% {
    clip-path: polygon(0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0);
  }
}
@keyframes textBlur {
  0% {
    text-shadow: 0 0 8px rgba(255, 255, 255, 0);
  }
  100% {
    text-shadow: 0 0 0 #000;
  }
}
@keyframes textBlurWhite {
  0% {
    text-shadow: 0 0 8px rgba(255, 255, 255, 0);
  }
  100% {
    text-shadow: 0 0 0 #fff;
  }
}
.scroll_wrap {
  position: fixed;
  bottom: min(5%, 2.5rem);
  right: 50%;
  transform: translateX(min(45vw, 30.625rem));
  z-index: 100;
  transition: visibility 0.5s ease, opacity 0.5s ease, transform 0.5s ease;
}
@media screen and (max-width: 767px) {
  .scroll_wrap {
    bottom: 4.375rem;
  }
}
.scroll_wrap .scroll {
  writing-mode: vertical-rl;
  transition: transform 0.5s ease, visibility 0.5s ease 0.5s, opacity 0.5s ease;
}
.scroll_wrap .scroll span.text {
  transform: rotate(180deg);
  margin-bottom: 0.375rem;
}
.scroll_wrap.white .arrow .arrow-wrap path {
  stroke: #fff;
}
.scroll_wrap.white.trigger .scroll span.text {
  animation-name: textBlurWhite;
}
.scroll_wrap .arrow-wrap {
  opacity: 0;
  transition: opacity 0.3s ease;
}
.scroll_wrap .arrow-wrap.show {
  opacity: 1;
}
.scroll_wrap.hidden {
  opacity: 0;
  visibility: hidden;
  transform: translate(min(45vw, 30.625rem), 1.25rem);
}
.scroll_wrap.trigger .scroll span.text {
  animation: textBlur 0.5s ease-in forwards;
}

.scroll {
  font-size: 0.625rem;
  font-family: "Gothic725", sans-serif;
  letter-spacing: 0.01em;
  font-feature-settings: "palt";
  position: relative;
  text-align: center;
  display: flex;
  align-items: center;
}
.scroll span.text {
  display: inline-block;
  color: rgba(255, 255, 255, 0);
  text-shadow: 0 0 4px rgba(255, 255, 255, 0);
}
.scroll span.arrow {
  display: block;
  transform: translateX(-35%);
}
@media screen and (max-width: 767px) {
  .scroll {
    font-size: 0.5rem;
  }
}

@keyframes lineIn {
  0% {
    clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}
/*======================================
    TOP contents
======================================*/
.loop_title_section {
  display: grid;
  grid-template-columns: 1fr;
}

.loop_title_label {
  grid-column: 1/2;
  grid-row: 1/2;
  color: rgba(255, 255, 255, 0);
  opacity: 0;
  visibility: hidden;
}

.loop_title_wrap {
  width: 100%;
  grid-column: 1/2;
  grid-row: 1/2;
}

.loop_title_track {
  display: flex;
  white-space: nowrap;
  will-change: transform;
}

.loop_title {
  font-size: 12.1875rem;
  padding-right: 7.8125rem;
  white-space: nowrap;
  font-family: "Gothic725", sans-serif;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .loop_title {
    font-size: 6.25rem;
  }
}

.loop_swiper_wrap {
  display: flex;
  flex-direction: column;
  row-gap: 1.25rem;
  width: 100%;
  overflow: hidden;
}

.loop_img_wrap {
  overflow: hidden;
}

.loop_img_track {
  display: flex;
  width: max-content;
}

.loop_img {
  background-color: lightgray;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  width: 12.5rem;
  margin-right: 1.25rem;
}
@media screen and (max-width: 767px) {
  .loop_img {
    width: 6.25rem;
    margin-right: 0.625rem;
  }
}

/*======================================
    button
======================================*/
.button_liner_square {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 6.25rem;
  font-size: 1.25rem;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  line-height: 1.5;
  position: relative;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0);
  color: #000;
  vertical-align: middle;
  transition: color 0.25s;
  max-width: 35rem;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
  color: inherit;
}
@media screen and (max-width: 767px) {
  .button_liner_square {
    min-height: 3.125rem;
    font-size: 0.8125rem;
    max-width: 17.5rem;
  }
}
.button_liner_square::before, .button_liner_square::after {
  box-sizing: inherit;
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0);
  width: 0;
  height: 0;
  z-index: -1;
}
.button_liner_square::before {
  top: 0;
  left: 0;
}
.button_liner_square::after {
  bottom: 0;
  right: 0;
}
.button_liner_square .button_liner_arrow {
  margin-top: 0;
}
.button_liner_square .button_liner_arrow::before {
  transition: width 0.25s ease-out 1s;
  left: -1em;
}
.button_liner_square .button_liner_arrow::after {
  transition: height 0.25s ease-out 1.25s;
  opacity: 1;
  right: -1em;
}
.button_liner_square.trigger::before, .button_liner_square.trigger::after {
  width: 100%;
  height: 100%;
}
.button_liner_square.trigger::before {
  border-top-color: #000;
  border-right-color: #000;
  transition: width 0.25s ease-out, height 0.25s ease-out 0.25s;
}
.button_liner_square.trigger::after {
  border-bottom-color: #000;
  border-left-color: #000;
  transition: border-color 0s ease-out 0.5s, width 0.25s ease-out 0.5s, height 0.25s ease-out 0.75s;
}
.button_liner_square.trigger .button_liner_arrow .arrow-line line {
  animation: drawLine 1.2s linear 1s forwards;
}
.button_liner_square.trigger .button_liner_arrow .arrow-head path {
  animation: drawHead 1.2s linear 1.6s forwards;
}

@keyframes button_liner_line {
  0% {
    width: 0;
  }
  25% {
    width: 100%;
  }
  50% {
    width: 100%;
  }
  75% {
    width: 100%;
  }
  0% {
    width: 0;
  }
}
@keyframes button_liner_arrow {
  0% {
    height: 0;
    opacity: 0;
  }
  25% {
    height: 0;
    opacity: 0;
  }
  50% {
    height: 0.5em;
    opacity: 1;
  }
  75% {
    height: 0.5em;
    opacity: 1;
  }
  100% {
    height: 0;
    opacity: 0;
  }
}
.button_liner_arrow {
  display: inline-block;
  line-height: 1;
  position: relative;
}
.button_liner_arrow .arrow-horizontal {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  flex: 1;
  transform: translateY(100%);
  display: inline-block;
}
.button_liner_arrow .arrow-horizontal.reverse {
  transform: translateY(100%) scale(-1, 1);
}
.button_liner_arrow .arrow-wrap {
  display: flex;
  align-items: center;
  width: 100%;
}
.button_liner_arrow {
  /* 線＝可変 / 矢＝固定 */
}
.button_liner_arrow .arrow-line {
  width: calc(100% - 20px);
  height: 10px;
  overflow: visible;
}
.button_liner_arrow .arrow-head {
  width: 20px;
  height: 10px;
  flex-shrink: 0;
  overflow: visible;
}
.button_liner_arrow line,
.button_liner_arrow path {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
}
.button_liner_arrow {
  /* --- trigger: 初回一筆書き --- */
}
.button_liner_arrow.trigger .arrow-line line {
  animation: drawLine 1.2s linear forwards;
}
.button_liner_arrow.trigger .arrow-head path {
  animation: drawHead 1.2s linear forwards;
  animation-delay: 0.6s;
}
.button_liner_arrow:hover .arrow-line line {
  animation: drawLineLoop 2.5s linear infinite;
}
.button_liner_arrow:hover .arrow-head path {
  animation: drawHeadLoop 2.5s linear infinite;
}

/* 一筆描き（trigger） */
@keyframes drawLine {
  from {
    stroke-dashoffset: 200;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes drawHead {
  from {
    stroke-dashoffset: 200;
  }
  to {
    stroke-dashoffset: 0;
  }
}
/* scroll矢印風ループ（戻らない） */
@keyframes drawLineLoop {
  0% {
    stroke-dasharray: 0 200;
    stroke-dashoffset: 0;
  }
  45% {
    stroke-dasharray: 200 0;
    stroke-dashoffset: 0;
  }
  70% {
    stroke-dasharray: 200 0;
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dasharray: 0 200;
    stroke-dashoffset: -200;
  }
}
@keyframes drawHeadLoop {
  0%, 22% {
    stroke-dasharray: 0 200;
    stroke-dashoffset: 0;
  }
  65% {
    stroke-dasharray: 200 0;
    stroke-dashoffset: 0;
  }
  85% {
    stroke-dasharray: 200 0;
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dasharray: 0 200;
    stroke-dashoffset: -200;
  }
}
.button_more {
  font-size: 0.9375rem;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  width: fit-content;
  margin: 4.375rem auto 0;
  display: block;
  text-align: center;
  max-width: 5.625rem;
}
@media screen and (max-width: 767px) {
  .button_more {
    font-size: 0.625rem;
    margin-top: 2.5rem;
  }
}

/*======================================
    section
======================================*/
.pinned_overlay {
  width: 100%;
  background-color: #fff;
  padding: 6.25rem 0;
  min-height: 100vh;
}
.pinned_overlay.is-hidden {
  opacity: 0;
  visibility: hidden;
}
@media screen and (max-width: 767px) {
  .pinned_overlay {
    padding-bottom: 9.375rem;
    padding-bottom: 3.125rem;
    padding-top: 3.125rem;
  }
}
.pinned_overlay::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 18.75rem;
  transform: translateY(calc(-100% + 1px));
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #fff 100%);
}
@media screen and (max-width: 767px) {
  .pinned_overlay::before {
    height: 9.375rem;
  }
}

/*======================================
    FV
======================================*/
.t-fv {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 100svh auto;
}

.t-fv_logo_wrap {
  grid-row: 1/2;
  grid-column: 1/2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.t-fv_logo {
  width: 100%;
  max-width: 12.5rem;
  margin-left: auto;
  margin-right: auto;
  animation: logoIn 2.5s ease-in forwards;
  opacity: 0;
}

@keyframes logoIn {
  0% {
    opacity: 0;
  }
  75% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
/*======================================
    message
======================================*/
.t-message {
  padding-bottom: 11.875rem;
  grid-column: 1/2;
  grid-row: 1/3;
  padding-top: 50svh;
}
@media screen and (max-width: 767px) {
  .t-message {
    padding-bottom: 5.625rem;
  }
}

.t-message_title {
  font-size: 1.5625rem;
  font-feature-settings: "palt";
  text-align: center;
  font-family: "Gothic725", sans-serif;
  padding-bottom: 0.6em;
  margin-top: -0.75em;
  font-size: 400;
  position: relative;
  z-index: 1;
}
.t-message_title.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.t-message_title::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 15em;
  height: 15em;
  background: url(../img/common/text_line_grad.svg) no-repeat center/contain;
  transform: translate(-100%, 100%);
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
}
@media screen and (max-width: 767px) {
  .t-message_title::before {
    width: 11.75rem;
    height: 11.75rem;
  }
}
@media screen and (max-width: 767px) {
  .t-message_title {
    font-size: 0.9375rem;
  }
}

.t-message_contents {
  margin-top: 6.875rem;
}
@media screen and (max-width: 767px) {
  .t-message_contents {
    width: fit-content;
    margin-top: 3.75rem;
    margin-left: auto;
    margin-right: auto;
  }
}

.t-message_lead {
  font-size: 3.4375rem;
  font-weight: 600;
  line-height: 1.4545454545;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .t-message_lead {
    font-size: 1.875rem;
    line-height: 1.3333333333;
  }
}

.t-message_texts {
  margin-top: 3.125rem;
}
@media screen and (max-width: 767px) {
  .t-message_texts {
    margin-top: 1.625rem;
  }
}

.t-message_text {
  font-size: 1.4375rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.8695652174;
}
.t-message_text:nth-child(n+2) {
  margin-top: 1.87em;
}
@media screen and (max-width: 767px) {
  .t-message_text:nth-child(n+2) {
    margin-top: 1.7em;
  }
}
@media screen and (max-width: 767px) {
  .t-message_text {
    font-size: 0.875rem;
    line-height: 1.7142857143;
  }
}

.t-message_button {
  margin-top: 12.5rem;
}
@media screen and (max-width: 767px) {
  .t-message_button {
    margin-top: 3.125rem;
  }
}

/*======================================
    works
======================================*/
.t-works {
  padding-bottom: 31.25rem;
}
@media screen and (max-width: 767px) {
  .t-works {
    padding-bottom: 25rem;
  }
}

.t-works_lists {
  margin-top: 12.5rem;
}
@media screen and (max-width: 767px) {
  .t-works_lists {
    margin-top: 6.25rem;
  }
}

@media screen and (max-width: 767px) {
  .t-works_list {
    width: 82%;
  }
}
.t-works_list:nth-child(n+2) {
  margin-top: 10rem;
}
@media screen and (max-width: 767px) {
  .t-works_list:nth-child(n+2) {
    margin-top: 4.375rem;
  }
}

.t-works_head {
  display: grid;
  grid-template-columns: 7.5rem auto;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .t-works_head {
    grid-template-columns: 2.875rem auto;
  }
}

.t-works_head_num {
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  font-family: "Gothic725", sans-serif;
  font-size: 0.9375rem;
  position: relative;
  align-self: start;
  position: relative;
  z-index: 1;
}
.t-works_head_num.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.t-works_head_num::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 15em;
  height: 15em;
  background: url(../img/common/text_line_grad.svg) no-repeat center/contain;
  transform: translate(-100%, 100%);
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
}
@media screen and (max-width: 767px) {
  .t-works_head_num::before {
    width: 11.75rem;
    height: 11.75rem;
  }
}
@media screen and (max-width: 767px) {
  .t-works_head_num {
    font-size: 0.625rem;
  }
}
.t-works_head_num span.num {
  font-size: 3.4375rem;
  font-feature-settings: "palt";
  display: block;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .t-works_head_num span.num {
    font-size: 1.875rem;
  }
}

.t-works_head_link {
  grid-column: 2/3;
  grid-row: 1/2;
}
@media screen and (max-width: 767px) {
  .t-works_head_link {
    padding-bottom: 0.625rem;
  }
}
.t-works_head_link::before {
  transition-delay: 0.3s;
}
.t-works_head_link::after {
  transition-delay: 0.55s;
}

.t-works_head_title {
  display: flex;
  flex-direction: column-reverse;
}
.t-works_head_title h3 {
  font-size: 1.4375rem;
  font-weight: 700;
  line-height: 2.0869565217;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .t-works_head_title h3 {
    font-size: 0.875rem;
  }
}
.t-works_head_title p {
  font-size: 0.9375rem;
  font-family: "Gothic725", sans-serif;
}
@media screen and (max-width: 767px) {
  .t-works_head_title p {
    font-size: 0.625rem;
  }
}
.t-works_head_title p span.lg {
  font-size: 3.4375rem;
  display: block;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .t-works_head_title p span.lg {
    font-size: 1.875rem;
  }
}

/*======================================
    feature
======================================*/
.t-feature_container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 9.375rem;
}
@media screen and (max-width: 767px) {
  .t-feature_container {
    margin-top: 5.625rem;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}

.t-feature_wrap {
  max-width: 35.625rem;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media screen and (max-width: 767px) {
  .t-feature_wrap {
    max-width: 26.5625rem;
    margin: unset;
  }
}

.t-feature_eye {
  padding-bottom: 1.25rem;
}
@media screen and (max-width: 767px) {
  .t-feature_eye {
    max-width: 26.5625rem;
    margin-left: auto;
    margin-right: auto;
  }
}
.t-feature_eye .swiper-slide {
  position: relative;
  overflow: hidden;
}
.t-feature_eye .swiper-slide::before, .t-feature_eye .swiper-slide::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  opacity: 0.4;
  transition: transform 0.5s ease 0.3s;
}
.t-feature_eye .swiper-slide::before {
  top: 0;
  clip-path: polygon(0 0, 100% 0, 100% 20%, 0 80%);
}
.t-feature_eye .swiper-slide::after {
  bottom: 0;
  clip-path: polygon(0 80%, 100% 20%, 100% 100%, 0 100%);
}
.t-feature_eye .swiper-slide-active::before {
  transform: translateY(-80%) scale(1.2);
}
.t-feature_eye .swiper-slide-active::after {
  transform: translateY(80%) scale(1.2);
}
.t-feature_eye .swiper-pagination {
  bottom: 0 !important;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  column-gap: 1.25rem;
}
.t-feature_eye .swiper-pagination .swiper-pagination-bullet {
  width: 2.5rem;
  height: 1px;
  background-color: #c7c7c7;
  border-radius: 0;
  opacity: 1;
  margin: 0 !important;
  position: relative;
}
@media screen and (max-width: 767px) {
  .t-feature_eye .swiper-pagination .swiper-pagination-bullet {
    width: 1.875rem;
  }
}
.t-feature_eye .swiper-pagination .swiper-pagination-bullet::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 3px;
  background-color: #000;
  transition: transform 0.5s ease;
  transform-origin: right top;
  transform: translate(-50%, -50%) scale(0, 1);
}
.t-feature_eye .swiper-pagination .swiper-pagination-bullet-active::before {
  transform-origin: left top;
  transform: translate(-50%, -50%) scale(1, 1);
}

.t-feature_eye_img {
  display: block;
  aspect-ratio: 280/420;
  overflow: hidden;
}
.t-feature_eye_img img {
  height: 100%;
  object-fit: cover;
}

.t-feature_thumb {
  margin-top: 1.25rem;
}
.t-feature_thumb .swiper-slide {
  background-color: #fff;
}
.t-feature_thumb .swiper-slide-active .t-feature_thumb_contents .en,
.t-feature_thumb .swiper-slide-active .t-feature_thumb_contents .jp {
  transform: translateY(0);
  opacity: 1;
}

.t-feature_thumb_contents {
  display: block;
  font-size: 0.9375rem;
  text-align: center;
}
.t-feature_thumb_contents .en {
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  line-height: 1.2;
  transform: translateY(-0.625rem);
  opacity: 0;
  transition: transform 1s ease 0.3s, opacity 1s ease 0.3s;
}
.t-feature_thumb_contents .en span {
  display: inline-block;
}
.t-feature_thumb_contents .sm {
  font-size: 1.25rem;
  margin-bottom: 0.625rem;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .sm {
    font-size: 0.8125rem;
  }
}
.t-feature_thumb_contents .lg {
  font-size: 4.6875rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .lg {
    font-size: 2.5rem;
  }
}
.t-feature_thumb_contents .md {
  font-size: 2.1875rem;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .md {
    font-size: 1.25rem;
  }
}
.t-feature_thumb_contents .jp {
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.2777777778;
  font-weight: 600;
  margin-top: 0.625rem;
  transform: translateY(0.625rem);
  opacity: 0;
  transition: transform 1s ease 0.3s, opacity 1s ease 0.3s;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .jp {
    font-size: 0.75rem;
  }
}

.t-feature_thumb_pagination {
  position: absolute;
  top: 0;
  left: 0 !important;
  bottom: unset !important;
  text-align: left;
  font-size: 2.1875rem;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  line-height: 1;
  transform: translateY(-100%);
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_pagination {
    left: 2.5rem !important;
    font-size: 1.25rem;
  }
}
.t-feature_thumb_pagination::before {
  content: "Feature";
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(calc(-100% - 0.375rem));
  font-size: 0.9375rem;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_pagination::before {
    font-size: 0.625rem;
  }
}
.t-feature_thumb_pagination::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-90%, calc(100% + 0.625rem));
  width: 23.4375rem;
  height: 23.4375rem;
  background: url(../img/common/text_line_grad.svg) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_pagination::after {
    width: 11.75rem;
    height: 11.75rem;
  }
}

.feature_button_more {
  margin-top: 1.25rem;
}

/*======================================
    team
======================================*/
.t-team .sticky_contents {
  padding-top: 10rem;
  padding-bottom: 25rem;
}
@media screen and (max-width: 767px) {
  .t-team .sticky_contents {
    padding: 2.5rem 0 6.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

.t-team_wrap {
  margin-top: 5.625rem;
}
@media screen and (max-width: 767px) {
  .t-team_wrap {
    margin-top: 3.125rem;
  }
}

/*======================================
    news
======================================*/
.news_cards {
  margin-top: 6.25rem;
}
@media screen and (max-width: 767px) {
  .news_cards {
    margin-top: 3.125rem;
    width: calc(100% - 1.25rem);
  }
}

.news_card:nth-child(n+2) {
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .news_card:nth-child(n+2) {
    margin-top: 1.25rem;
  }
}

.news_card_head {
  display: flex;
  flex-wrap: wrap;
  column-gap: 0.625rem;
  row-gap: 0.25rem;
  border-bottom: 1px solid #000;
}
@media screen and (max-width: 767px) {
  .news_card_head {
    column-gap: 0.25rem;
  }
}

.news_card_cat {
  font-size: 0.9375rem;
  font-family: "Gothic725", sans-serif;
  letter-spacing: 0.05em;
  font-feature-settings: "palt";
  height: 1.25rem;
  line-height: 1;
  background-color: #000;
  color: #fff;
  min-width: 6.25rem;
  text-align: center;
  width: fit-content;
  display: flex;
  white-space: nowrap;
  justify-content: center;
  align-items: flex-end;
  padding: 0 1em 0.1em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .news_card_cat {
    font-size: 0.5rem;
    height: 0.625rem;
    min-width: 3.125rem;
    padding-bottom: 0;
  }
}

.news_card_date {
  font-size: 0.9375rem;
  letter-spacing: 0.05em;
  font-feature-settings: "palt";
  line-height: 1.5;
  font-family: "Gothic725", sans-serif;
  margin-top: 0.625rem;
}
@media screen and (max-width: 767px) {
  .news_card_date {
    font-size: 0.625rem;
  }
}

.news_card_title {
  font-size: 0.9375rem;
  line-height: 2;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 600;
  display: inline;
  padding-bottom: 3px;
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 1px;
}
.news_card_title:not(:hover) {
  animation: none;
}
.news_card_title:hover {
  animation: underlineFlow 3s ease-in-out infinite;
}
@media screen and (max-width: 767px) {
  .news_card_title {
    font-size: 0.9375rem;
    letter-spacing: 0.1em;
    font-feature-settings: "palt";
    line-height: 1.52;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .news_card_title {
    font-size: 0.8125rem;
    letter-spacing: normal;
  }
}

@keyframes underlineFlow {
  0% {
    background-position: bottom left;
    background-size: 0% 1px;
  }
  40% {
    background-size: 100% 1px;
    background-position: bottom left;
  }
  50% {
    background-size: 100% 1px;
    background-position: bottom right;
  }
  90% {
    background-size: 0% 1px;
    background-position: bottom right;
  }
  100% {
    background-size: 0% 1px;
    background-position: bottom right;
  }
}
.randomText span {
  display: inline-block;
  color: rgba(0, 0, 0, 0); /* 初期透明色 */
  will-change: color, transform;
}

/*======================================
    sticky
======================================*/
.sticky_normal {
  position: relative;
  z-index: 2;
}

/*======================================
    common
======================================*/
.p-section-ttl {
  text-align: center;
}
.p-section-ttl p {
  font-family: "Gothic725", sans-serif;
  font-size: 2.1875rem;
  line-height: 1.7142857143;
  font-feature-settings: "palt";
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .p-section-ttl p {
    font-size: 1.25rem;
  }
}
.p-section-ttl h2 {
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.75;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .p-section-ttl h2 {
    font-size: 0.625rem;
    line-height: 1;
  }
}

/*======================================
    business
======================================*/
.p-business {
  padding-top: 1.875rem;
}
@media screen and (max-width: 767px) {
  .p-business {
    padding-top: 1rem;
  }
}

.p-business-motto {
  margin-top: 6.875rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto {
    margin-top: -0.625rem;
  }
}

.p-business-motto_ttl {
  text-align: center;
  font-size: 0.9375rem;
  font-weight: 700;
  font-feature-settings: "palt";
  position: relative;
  z-index: 1;
}
.p-business-motto_ttl.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-business-motto_ttl::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 15em;
  height: 15em;
  background: url(../img/common/text_line_grad.svg) no-repeat center/contain;
  transform: translate(-100%, 100%);
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
}
@media screen and (max-width: 767px) {
  .p-business-motto_ttl::before {
    width: 11.75rem;
    height: 11.75rem;
  }
}
@media screen and (max-width: 767px) {
  .p-business-motto_ttl {
    font-size: 0.625rem;
  }
}

.p-business-motto_lists {
  max-width: 42.5rem;
  margin-left: auto;
  margin-right: auto;
}

.p-business-motto_list {
  position: relative;
  z-index: 1;
}
.p-business-motto_list:nth-child(1) {
  margin-top: 10.25rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list:nth-child(1) {
    margin-top: 8.75rem;
  }
}
.p-business-motto_list:nth-child(1) .p-business-motto_list_img {
  width: 23.875rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list:nth-child(1) .p-business-motto_list_img {
    width: 9.625rem;
  }
}
.p-business-motto_list:nth-child(2) {
  margin-top: 17.5rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list:nth-child(2) {
    margin-top: 8.75rem;
  }
}
.p-business-motto_list:nth-child(2) .p-business-motto_list_img {
  width: 18rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list:nth-child(2) .p-business-motto_list_img {
    width: 7.25rem;
  }
}
.p-business-motto_list:nth-child(3) {
  margin-top: 19.6875rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list:nth-child(3) {
    margin-top: 10rem;
  }
}
.p-business-motto_list:nth-child(3) .p-business-motto_list_img {
  top: unset;
  bottom: 0;
  transform: translate(0);
  width: 30.625rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list:nth-child(3) .p-business-motto_list_img {
    width: 12.25rem;
  }
}

.p-business-motto_list_img {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: -1;
}

.p-business-motto_list_text {
  font-size: 2.1875rem;
  line-height: 1.7142857143;
  letter-spacing: 0.25em;
  font-feature-settings: "palt";
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list_text {
    font-size: 1.25rem;
    line-height: 1.5;
    letter-spacing: 0.2em;
  }
}

.p-business-policy {
  margin-top: 9.375rem;
}

.p-business-policy_section:nth-of-type(1) {
  margin-top: 7.5rem;
}
@media screen and (max-width: 767px) {
  .p-business-policy_section:nth-of-type(1) {
    margin-top: 3.75rem;
  }
}
.p-business-policy_section:nth-of-type(2) {
  margin-top: 4.375rem;
}
@media screen and (max-width: 767px) {
  .p-business-policy_section:nth-of-type(2) {
    margin-top: 7.5rem;
  }
}

.p-business-policy_lead {
  font-size: 2.1875rem;
  font-weight: 600;
  line-height: 1.5714285714;
  letter-spacing: 0.2em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .p-business-policy_lead {
    font-size: 1.25rem;
    line-height: 1.5;
  }
  .p-business-policy_lead .space {
    display: inline-block;
    padding: 0 0.25em;
  }
}

.p-business-policy_graph_head {
  display: inline-block;
  margin-bottom: 1.875rem;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.3333333333;
  font-feature-settings: "palt";
  letter-spacing: 0.2em;
  border-bottom: 1px solid #000;
}
@media screen and (max-width: 767px) {
  .p-business-policy_graph_head {
    font-size: 0.625rem;
    margin-bottom: 1rem;
  }
}

.p-business-policy_text {
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 2.1111111111;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-business-policy_text {
    font-size: 0.75rem;
    line-height: 1.8333333333;
    font-feature-settings: "palt";
  }
}

.p-business-policy_graph1 {
  max-width: 42.375rem;
  margin: 8.75rem auto 5rem;
}
@media screen and (max-width: 767px) {
  .p-business-policy_graph1 {
    margin: 1.5rem auto 2.1875rem;
  }
}

.p-business-policy_graph2 {
  max-width: 33.25rem;
  margin: 5.625rem auto 4.375rem;
  transform: translateX(-14%);
}
@media screen and (max-width: 767px) {
  .p-business-policy_graph2 {
    max-width: 16.75rem;
    margin: 3.25rem auto 2.5rem;
  }
}

.p-business-policy_graph3 {
  max-width: 40rem;
  margin: 6.875rem auto 0;
}
@media screen and (max-width: 767px) {
  .p-business-policy_graph3 {
    margin-top: 3.125rem;
  }
  .p-business-policy_graph3 img {
    display: block;
    padding: 0 0.625rem;
  }
}

.p-business-policy_button {
  font-size: 0.9375rem;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  max-width: 22.5rem;
  height: 3.75rem;
  margin: 4rem auto 0;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}
@media screen and (max-width: 767px) {
  .p-business-policy_button {
    font-size: 0.625rem;
    height: 1.875rem;
    max-width: 11.25rem;
    margin-top: 2.125rem;
  }
}

.p-business-policy_button_text {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.6666666667;
  font-feature-settings: "palt";
  margin-top: 0.875rem;
}
@media screen and (max-width: 767px) {
  .p-business-policy_button_text {
    font-size: 0.5rem;
    margin-top: 0.375rem;
  }
}

.p-business-policy_history {
  margin-top: 6.875rem;
}
@media screen and (max-width: 767px) {
  .p-business-policy_history {
    margin-top: 3.125rem;
  }
}

/*======================================
    history
======================================*/
.p-history {
  position: relative;
  padding-bottom: 12.5rem;
}
@media screen and (max-width: 767px) {
  .p-history {
    padding-bottom: 4.6875rem;
  }
}
.p-history .scroll_wrap {
  color: #fff;
}

.p-history_wrap {
  display: grid;
  grid-template-columns: 1fr;
}

.p-history_highlight {
  color: #f6f5b3;
  padding-top: 22.5rem;
  z-index: -1;
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
}
.p-history_highlight .loop_title_section {
  transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  .p-history_highlight {
    padding-top: 14.0625rem;
  }
}

.p-history_items_wrap {
  position: relative;
  z-index: 1;
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
}

.p-history_items {
  display: flex;
  width: max-content;
  column-gap: 9.375rem;
}
@media screen and (max-width: 767px) {
  .p-history_items {
    column-gap: 5rem;
  }
}

.p-history_item {
  height: 100svh;
  display: flex;
  flex-direction: column;
  padding-top: 9.375rem;
}
.p-history_item.active .p-history_item_img img {
  animation-name: imgIn;
  animation-duration: 1s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}
.p-history_item.active .p-history_item_story::before {
  animation: lineIn 0.5s ease 1s forwards;
}
@media screen and (max-width: 767px) {
  .p-history_item {
    padding-top: 4.6875rem;
  }
}

.p-history_item_img_highlight {
  color: #f6f5b3;
  width: 100%;
  min-width: 0;
}

.p-history_item_img {
  aspect-ratio: 280/420;
  max-width: 17.5rem;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  width: 100%;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-history_item_img {
    max-width: 12.5rem;
    aspect-ratio: 200/300;
  }
}
.p-history_item_img img {
  height: 100%;
  object-fit: cover;
  background-color: lightgray;
  animation-name: imgOut;
  animation-duration: 1s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

.p-history_item_story {
  font-family: "Gothic725", sans-serif;
  font-weight: 700;
  color: #f6f5b3;
  text-align: center;
  margin-top: 0.625rem;
  position: relative;
  position: relative;
  z-index: 1;
}
.p-history_item_story.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-history_item_story::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 15em;
  height: 15em;
  background: url(../img/common/text_line_grad.svg) no-repeat center/contain;
  transform: translate(-100%, 100%);
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
}
@media screen and (max-width: 767px) {
  .p-history_item_story::before {
    width: 11.75rem;
    height: 11.75rem;
  }
}
@media screen and (max-width: 767px) {
  .p-history_item_story {
    font-size: 0.625rem;
  }
}
.p-history_item_story::before {
  background-image: url(../img/common/text_line_grad_yellow.svg);
}
.p-history_item_story .year {
  display: block;
  font-size: 3.0625rem;
}
@media screen and (max-width: 767px) {
  .p-history_item_story .year {
    font-size: 1.875rem;
  }
}

.p-history_item_body {
  position: relative;
  z-index: 2;
  flex: 1;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  margin-top: 2.5rem;
  padding: 0 0.625rem 2.5rem;
}

.p-history_item_title {
  font-size: 1.5625rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  color: #f6f5b3;
}
@media screen and (max-width: 767px) {
  .p-history_item_title {
    font-size: 0.9375rem;
  }
}

.p-history_item_text {
  font-size: 1.125rem;
  line-height: 2.1111111111;
  font-weight: 700;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: justify;
  margin-top: 0.625rem;
}
@media screen and (max-width: 767px) {
  .p-history_item_text {
    font-size: 0.75rem;
  }
}

.p-history_item_button {
  margin-top: 6.25rem;
}
@media screen and (max-width: 767px) {
  .p-history_item_button {
    margin-top: 4.375rem;
  }
}

/*======================================
    single
======================================*/
.single {
  position: relative;
}
.single h2 {
  font-size: 1.875rem;
  font-weight: 600;
  line-height: 1.5;
  font-feature-settings: "palt";
  margin-bottom: 2.5rem;
}
.single h2.lg {
  font-size: 2.5rem;
}
@media screen and (max-width: 767px) {
  .single h2.lg {
    font-size: 1.5625rem;
  }
}
@media screen and (max-width: 767px) {
  .single h2 {
    font-size: 1.25rem;
    line-height: 1.5;
    margin-bottom: 1.75rem;
  }
}
.single h3 {
  font-size: 1.25rem;
  font-feature-settings: "palt";
  line-height: 1.5;
  margin-bottom: 2.5rem;
}
@media screen and (max-width: 767px) {
  .single h3 {
    font-size: 0.625rem;
    margin-bottom: 1.25rem;
  }
}
.single p {
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 2.1111111111;
  margin-bottom: 2.11em;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .single p {
    font-feature-settings: "palt";
    font-size: 0.75rem;
    line-height: 1.8333333333;
    margin-bottom: 1.83em;
  }
}
.single img {
  height: auto;
}

.s_inner {
  padding: 0 2.5rem;
}
@media screen and (max-width: 767px) {
  .s_inner {
    padding: 0;
  }
}

.s_inner_sm {
  max-width: 36.875rem;
  margin-left: auto;
  margin-right: auto;
}

.s_bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  transform: translateY(-34.375rem);
  width: 100%;
  aspect-ratio: 1920/2304;
  background-image: linear-gradient(to bottom, #5a9ee6, #6cbdd4);
  clip-path: polygon(100% 0, 100% 50%, 0 50%, 0 100%);
}
@media screen and (max-width: 767px) {
  .s_bg {
    aspect-ratio: 750/900;
    transform: translateY(-1.875rem);
  }
}

.s_head {
  display: grid;
  grid-template-columns: 6.875rem auto;
  column-gap: 0.625rem;
}
@media screen and (max-width: 767px) {
  .s_head {
    grid-template-columns: 3.75rem auto;
  }
}

.s_head_num {
  font-family: "Gothic725", sans-serif;
  font-size: 2.5rem;
  font-feature-settings: "palt";
  color: #c8c8c8;
  line-height: 1.2;
  position: relative;
  position: relative;
  z-index: 1;
}
.s_head_num.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.s_head_num::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 15em;
  height: 15em;
  background: url(../img/common/text_line_grad.svg) no-repeat center/contain;
  transform: translate(-100%, 100%);
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
}
@media screen and (max-width: 767px) {
  .s_head_num::before {
    width: 11.75rem;
    height: 11.75rem;
  }
}
.s_head_num {
  transform: translateX(-0.625rem);
}
@media screen and (max-width: 767px) {
  .s_head_num {
    font-size: 1.25rem;
    transform: translateX(0);
  }
}
.s_head_num::before {
  left: 95%;
  bottom: 15%;
}
@media screen and (max-width: 767px) {
  .s_head_num::before {
    left: 88%;
  }
}

.s_head_ttl {
  font-weight: 700;
  font-size: 2.1875rem;
  line-height: 1.2;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .s_head_ttl {
    font-size: 1.0625rem;
  }
}

.s_eye {
  margin: 0.875rem 0;
}
@media screen and (max-width: 767px) {
  .s_eye {
    margin: 0.625rem 1.25rem;
  }
}

.s_introduction {
  margin-top: 3.125rem;
}

.s_toc {
  margin-top: 5rem;
}
.s_toc .s_toc_ttl {
  font-size: 1.375rem;
  letter-spacing: normal;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  border-bottom: 1px solid #000;
  margin-bottom: 2.125rem;
}
@media screen and (max-width: 767px) {
  .s_toc .s_toc_ttl {
    font-size: 0.625rem;
    margin-bottom: 1.25rem;
  }
}
.s_toc .s_toc_items {
  counter-reset: number;
}
.s_toc .s_toc_item {
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 3;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .s_toc .s_toc_item {
    font-size: 0.8125rem;
    line-height: 2.1538461538;
  }
}
.s_toc .s_toc_item a {
  display: block;
  font-weight: inherit;
}

.s_contents {
  margin-top: 8.125rem;
}
@media screen and (max-width: 767px) {
  .s_contents {
    margin-top: 5.625rem;
  }
}
.s_contents .en {
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
}
.s_contents .center {
  text-align: center;
}
.s_contents .right {
  text-align: right;
}
.s_contents section {
  margin-top: 8.125rem;
}
.s_contents section:nth-child(n+2) {
  margin-top: 11.875rem;
}
@media screen and (max-width: 767px) {
  .s_contents section:nth-child(n+2) {
    margin-top: 7.875rem;
  }
}
@media screen and (max-width: 767px) {
  .s_contents section {
    margin-top: 3.125rem;
  }
}
.s_contents section.space_md {
  margin-top: 8.75rem;
}
.s_contents section.space_sm {
  margin-top: 5.625rem;
}
@media screen and (max-width: 767px) {
  .s_contents section.space_sm {
    margin-top: 4.125rem;
  }
}
.s_contents .img_md {
  width: 100%;
  max-width: 34.125rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .s_contents .img_md {
    max-width: 17.125rem;
  }
}
.s_contents .img_md img {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.s_contents img {
  display: block;
  margin-left: -2.5rem;
  margin-right: -2.5rem;
  width: calc(100% + 5rem);
  max-width: none;
  margin-top: 3.125rem;
  margin-bottom: 3.125rem;
}
.s_contents img.img_space_md {
  margin-top: 5rem;
  margin-bottom: 4.375rem;
}
@media screen and (max-width: 767px) {
  .s_contents img.img_space_md {
    margin-top: 2.5rem;
    margin-bottom: 1.875rem;
  }
}
@media screen and (max-width: 767px) {
  .s_contents img {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    margin-top: 0.625rem;
    margin-bottom: 0.625rem;
  }
}
.s_contents h2,
.s_contents h3 {
  border-bottom: 1px solid #599bdf;
}
.s_contents h2 {
  margin-top: 6.25rem;
}
@media screen and (max-width: 767px) {
  .s_contents h2 {
    margin-top: 0.9375rem;
    margin-bottom: 0.9375rem;
  }
}
.s_contents h3 {
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  .s_contents h3 {
    margin-top: 0.9375rem;
    margin-bottom: 0.9375rem;
  }
}
.s_contents a {
  font-weight: inherit;
  word-break: break-all;
  display: inline;
  position: relative;
  transition: opacity 0.5s ease;
  padding-bottom: 5px;
  background-image: linear-gradient(#599bdf, #599bdf);
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 100% 1px;
}
.s_contents a:hover {
  opacity: 0.7;
  animation: underlineFlowRight 3s ease-in-out infinite;
}

@keyframes underlineFlowRight {
  0% {
    background-position: bottom right;
    background-size: 100% 1px;
  }
  40% {
    background-position: bottom right;
    background-size: 0% 1px;
  }
  50% {
    background-size: 0% 1px;
    background-position: bottom left;
  }
  90% {
    background-size: 100% 1px;
    background-position: bottom left;
  }
  100% {
    background-size: 100% 1px;
    background-position: bottom left;
  }
}
@media screen and (max-width: 767px) {
  .s_related_items {
    padding: 0 1.25rem;
  }
}

.s_related_item {
  aspect-ratio: 590/310;
}
.s_related_item a {
  display: block;
}
.s_related_item:nth-child(n+2) {
  margin-top: 1.875rem;
}
@media screen and (max-width: 767px) {
  .s_related_item:nth-child(n+2) {
    margin-top: 0.9375rem;
  }
}
.s_related_item img,
.s_related_item iframe {
  height: 100%;
  width: 100%;
  margin: 0;
  object-fit: cover;
}

.s_pagination {
  margin-top: 13.75rem;
}
@media screen and (max-width: 767px) {
  .s_pagination {
    margin-top: 4.375rem;
  }
}

.s_pagination_wrap {
  display: grid;
  grid-template-columns: 1fr 9.375rem 1fr;
  column-gap: 1.25rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .s_pagination_wrap {
    grid-template-columns: 1fr 4.6875rem 1fr;
  }
}

.s_pagination_slash {
  grid-column: 2/3;
  grid-row: 1/2;
  position: relative;
}
.s_pagination_slash::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 13.25rem;
  transform: translate(-50%, -50%) rotate(45deg);
  background-color: #000;
}
@media screen and (max-width: 767px) {
  .s_pagination_slash::before {
    height: 6.625rem;
  }
}

.s_pagination_prev,
.s_pagination_next {
  font-size: 1.4375rem;
  line-height: 1.4347826087;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  transition: opacity 0.3s ease;
  display: flex;
  flex-direction: column;
}
.s_pagination_prev span.text,
.s_pagination_next span.text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  max-width: 80%;
}
@media screen and (max-width: 767px) {
  .s_pagination_prev,
  .s_pagination_next {
    font-size: 0.6875rem;
  }
}
.s_pagination_prev:hover,
.s_pagination_next:hover {
  opacity: 0.7;
}

.s_pagination_prev {
  grid-column: 1/2;
  grid-row: 1/2;
}

.s_pagination_next {
  text-align: right;
  grid-column: 3/4;
  grid-row: 1/2;
}
.s_pagination_next .text {
  margin-left: auto;
}
.s_pagination_next .s_pagination_en {
  margin-left: auto;
}

.s_pagination_en {
  position: relative;
  display: block;
  width: fit-content;
}
.s_pagination_en .arrow-horizontal {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  flex: 1;
  transform: translateY(100%);
  display: inline-block;
}
.s_pagination_en .arrow-horizontal.reverse {
  transform: translateY(100%) scale(-1, 1);
}
.s_pagination_en .arrow-wrap {
  display: flex;
  align-items: center;
  width: 100%;
}
.s_pagination_en {
  /* 線＝可変 / 矢＝固定 */
}
.s_pagination_en .arrow-line {
  width: calc(100% - 20px);
  height: 10px;
  overflow: visible;
}
.s_pagination_en .arrow-head {
  width: 20px;
  height: 10px;
  flex-shrink: 0;
  overflow: visible;
}
.s_pagination_en line,
.s_pagination_en path {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
}
.s_pagination_en {
  /* --- trigger: 初回一筆書き --- */
}
.s_pagination_en.trigger .arrow-line line {
  animation: drawLine 1.2s linear forwards;
}
.s_pagination_en.trigger .arrow-head path {
  animation: drawHead 1.2s linear forwards;
  animation-delay: 0.6s;
}
.s_pagination_en:hover .arrow-line line {
  animation: drawLineLoop 2.5s linear infinite;
}
.s_pagination_en:hover .arrow-head path {
  animation: drawHeadLoop 2.5s linear infinite;
}
.s_pagination_en {
  font-size: 1.25rem;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: normal;
  line-height: 1;
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 767px) {
  .s_pagination_en {
    font-size: 0.625rem;
    margin-bottom: 1rem;
  }
}

.s_pagination_all {
  margin-top: 3.125rem;
  display: block;
  text-align: right;
  font-family: "Gothic725", sans-serif;
  font-size: 1.25rem;
  font-feature-settings: "palt";
}
.s_pagination_all .arrow-horizontal {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  flex: 1;
  transform: translateY(100%);
  display: inline-block;
}
.s_pagination_all .arrow-horizontal.reverse {
  transform: translateY(100%) scale(-1, 1);
}
.s_pagination_all .arrow-wrap {
  display: flex;
  align-items: center;
  width: 100%;
}
.s_pagination_all {
  /* 線＝可変 / 矢＝固定 */
}
.s_pagination_all .arrow-line {
  width: calc(100% - 20px);
  height: 10px;
  overflow: visible;
}
.s_pagination_all .arrow-head {
  width: 20px;
  height: 10px;
  flex-shrink: 0;
  overflow: visible;
}
.s_pagination_all line,
.s_pagination_all path {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
}
.s_pagination_all {
  /* --- trigger: 初回一筆書き --- */
}
.s_pagination_all.trigger .arrow-line line {
  animation: drawLine 1.2s linear forwards;
}
.s_pagination_all.trigger .arrow-head path {
  animation: drawHead 1.2s linear forwards;
  animation-delay: 0.6s;
}
.s_pagination_all:hover .arrow-line line {
  animation: drawLineLoop 2.5s linear infinite;
}
.s_pagination_all:hover .arrow-head path {
  animation: drawHeadLoop 2.5s linear infinite;
}
.s_pagination_all {
  grid-column: 1/4;
  grid-row: 2/3;
}
@media screen and (max-width: 767px) {
  .s_pagination_all {
    font-size: 0.625rem;
    margin-top: 1.25rem;
  }
}

/*# sourceMappingURL=style.css.map */
