@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: 500;
}
@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: "TsukuGoPro";
  src: url("../fonts/FOT-TsukuGoPro-B.otf") format("opentype");
  font-weight: 900;
}
@font-face {
  font-family: "Gothic725";
  src: url("../fonts/Gothic725BdBT.otf") format("opentype");
  font-weight: 400;
}
/*======================================
    mixin
======================================*/
/*======================================
    keyframes
======================================*/
@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;
  }
}
/* 一筆描き（trigger） */
@keyframes drawLine {
  from {
    stroke-dashoffset: 200;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes drawHead {
  from {
    stroke-dashoffset: 200;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@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;
  }
  70% {
    stroke-dasharray: 200 0;
    stroke-dashoffset: 0;
  }
  85% {
    stroke-dasharray: 200 0;
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dasharray: 0 200;
    stroke-dashoffset: -200;
  }
}
@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;
  }
}
@keyframes slideDown {
  0% {
    transform: translateY(-100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: translateY(2rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@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);
  }
}
@-webkit-keyframes textBlur {
  0% {
    text-shadow: 0 0 8px rgba(255, 255, 255, 0);
  }
  100% {
    text-shadow: 0 0 0 #000;
  }
}
@keyframes textBlur {
  0% {
    text-shadow: 0 0 8px rgba(255, 255, 255, 0);
  }
  100% {
    text-shadow: 0 0 0 #000;
  }
}
@-webkit-keyframes textBlurWhite {
  0% {
    text-shadow: 0 0 8px rgba(255, 255, 255, 0);
  }
  100% {
    text-shadow: 0 0 0 #fff;
  }
}
@keyframes textBlurWhite {
  0% {
    text-shadow: 0 0 8px rgba(255, 255, 255, 0);
  }
  100% {
    text-shadow: 0 0 0 #fff;
  }
}
@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%);
  }
}
@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;
  }
}
@keyframes logoIn {
  0% {
    opacity: 0;
  }
  75% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@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;
  }
}
@keyframes rotateRight {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes rotateLeft {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-360deg);
  }
}
/*======================================
    animation
======================================*/
.fadeIn {
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity 1s ease, transform 1s ease;
}
.fadeIn.trigger {
  transform: translateY(0);
  opacity: 1;
}

.imgIn {
  overflow: hidden;
  position: relative;
}
.imgIn img {
  height: 100%;
  object-fit: cover;
  clip-path: polygon(0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0);
}
.imgIn.trigger img {
  animation-name: imgIn;
  animation-duration: 0.25s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}
.imgIn:not(.trigger) img {
  animation-name: imgOut;
  animation-duration: 0.25s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

.slideIn {
  overflow: hidden;
  position: relative;
  clip-path: polygon(0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0);
}
.slideIn.trigger {
  animation-name: imgIn;
  animation-duration: 0.25s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

.scroll_wrap.button_top {
  position: fixed;
  bottom: min(5%, 4rem);
  right: 50%;
  transform: translateX(min(45vw, 49rem));
  z-index: 100;
}
@media screen and (max-width: 767px) {
  .scroll_wrap.button_top {
    bottom: 7rem;
    right: 0.6rem;
    transform: translate(0);
  }
}
.scroll_wrap.button_top .text {
  color: rgba(255, 255, 255, 0);
  text-shadow: 0 0 4px rgba(255, 255, 255, 0);
}
@media screen and (max-width: 767px) {
  .scroll_wrap.button_top .text {
    transform-origin: left center;
    transform: translateX(0.5em) rotate(180deg);
  }
}
.scroll_wrap.button_top .button_top_wrap span.arrow-horizontal {
  transform: rotate(90deg);
  bottom: unset;
  top: 0;
  left: 75%;
}
.scroll_wrap.button_top.white {
  color: #fff;
}
.scroll_wrap.button_top.white.trigger .text {
  animation-name: textBlurWhite;
}
.scroll_wrap.button_top.trigger .text, .scroll_wrap.button_top.show .text {
  animation: textBlur 0.5s ease-in forwards;
}
.scroll_wrap.button_top.trigger .arrow-line line, .scroll_wrap.button_top.show .arrow-line line {
  animation: drawLineLoop 1.2s linear infinite;
}
.scroll_wrap.button_top.trigger .arrow-head path, .scroll_wrap.button_top.show .arrow-head path {
  animation: drawHeadLoop 1.2s linear infinite;
}
.scroll_wrap.button_top.hidden {
  opacity: 0;
  visibility: hidden;
}

.scroll {
  font-size: 1rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  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.8rem;
  }
}

.randomText {
  visibility: hidden;
}
.randomText span {
  display: inline-block;
  color: rgba(0, 0, 0, 0); /* 初期透明色 */
  will-change: color, transform;
}

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

/*======================================
    common
======================================*/
html {
  font-size: 1rem;
  font-family: "TsukuGoPro", sans-serif;
  color: #000;
}
@media screen and (min-width: 768px) {
  html {
    font-size: 50% !important;
  }
}
@media screen and (min-width: 768px) {
  html.base_font {
    font-size: 50% !important;
  }
}
html.is-loading, html.is-loading body {
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
}

body {
  background-color: #fff;
  font-family: inherit;
  color: #000;
  font-size: 1rem !important;
  font-weight: 600;
}
body.bg_navy {
  background-color: #28283c;
  color: #fff;
}
body.bg_navy .header .h_inner::before {
  background-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;
  overflow: clip;
}

.page {
  padding: 15rem 0 20rem;
}
@media screen and (max-width: 767px) {
  .page {
    padding: 7.5rem 0;
  }
}

.en {
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-weight: 400;
}

.main {
  position: relative;
}

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

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

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

.overflow-hidden {
  overflow: hidden;
}

.inner {
  width: 90%;
  max-width: 98rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .inner {
    width: 90.67%;
  }
}
.inner .inner_full {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.inner.inner_lg {
  max-width: 128rem;
}

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

.button_top {
  display: block;
  position: absolute;
  bottom: min(5%, 4rem);
  right: 50%;
  transform: translateX(min(45vw, 49rem));
  translate: 50% 0;
  z-index: 2;
  line-height: 1.75;
}
.button_top .arrow-horizontal {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  flex: 1;
  transform: translateY(100%);
  display: inline-block;
}
.button_top .arrow-horizontal.reverse {
  transform: translateY(100%) scale(-1, 1);
}
.button_top .arrow-horizontal.white {
  color: #fff;
}
.button_top .arrow-wrap {
  display: flex;
  align-items: center;
  width: 100%;
}
.button_top {
  /* 線＝可変 / 矢＝固定 */
}
.button_top .arrow-line {
  width: calc(100% - 2rem);
  height: 1rem;
  overflow: visible;
  transform: translateX(1px);
}
@media screen and (max-width: 767px) {
  .button_top .arrow-line {
    width: calc(100% - 1rem);
    height: 0.5rem;
  }
}
.button_top .arrow-head {
  width: 2rem;
  height: 1rem;
  flex-shrink: 0;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .button_top .arrow-head {
    width: 1rem;
    height: 0.5rem;
  }
}
.button_top line,
.button_top path {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
}
.button_top {
  /* --- trigger: 初回一筆書き --- */
}
.button_top.trigger .arrow-line line, .button_top.show .arrow-line line {
  animation: drawLine var(--line-duration, 1.2s) linear forwards;
}
.button_top.trigger .arrow-head path, .button_top.show .arrow-head path {
  animation: drawHead var(--head-duration, 1.2s) linear forwards;
  animation-delay: calc(var(--line-duration, 1.2s) * 0.5);
}
.button_top:hover .arrow-line line {
  animation: drawLineLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.button_top:hover .arrow-head path {
  animation: drawHeadLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.button_top:hover {
  opacity: 1;
}
.button_top.-pagination {
  bottom: 40rem;
}
@media screen and (max-width: 767px) {
  .button_top.-pagination {
    bottom: 20rem;
  }
}
.button_top:link {
  color: inherit;
}
.button_top.-white {
  color: #fff;
}
@media screen and (max-width: 767px) {
  .button_top {
    padding-top: 6rem;
    bottom: min(5%, 2rem);
  }
}
.button_top span.text {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  display: inline-block;
  transform: rotate(180deg);
  writing-mode: vertical-rl;
  font-size: 1rem;
  font-feature-settings: "palt";
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .button_top span.text {
    font-size: 0.8rem;
  }
}
.button_top .button_top_wrap {
  display: block;
  height: 11rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .button_top .button_top_wrap {
    height: 6rem;
  }
}
.button_top .button_top_wrap span.arrow-horizontal {
  width: 10rem;
  transform: rotate(-90deg);
  transform-origin: left top;
  left: 25%;
}
@media screen and (max-width: 767px) {
  .button_top .button_top_wrap span.arrow-horizontal {
    width: 5rem;
  }
}

/*======================================
    list
======================================*/
.list-disc.list-space li:nth-child(n+2) {
  margin-top: 1rem;
}
.list-disc li {
  padding-left: 1em;
  position: relative;
  font-weight: inherit;
  letter-spacing: inherit;
}
.list-disc li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}

.list-toggle {
  border-top: 1px solid #000;
}

.toggle {
  cursor: pointer;
  padding: 3rem 0;
}
@media screen and (max-width: 767px) {
  .toggle {
    padding: 1.6rem 0;
  }
}
.toggle.open dt {
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .toggle.open dt {
    margin-bottom: 2rem;
  }
}
.toggle.open dt::after {
  transform: translateY(-50%);
}
.toggle.open dd {
  grid-template-rows: 1fr;
}
.toggle dt,
.toggle a.toggle-link {
  position: relative;
  padding-right: 1.75em;
  transition: margin-bottom 0.3s ease;
  display: block;
}
.toggle dt:link,
.toggle a.toggle-link:link {
  color: inherit;
}
.toggle dt::before, .toggle dt::after,
.toggle a.toggle-link::before,
.toggle a.toggle-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 0.625em;
  height: 1px;
  background-color: #000;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}
.toggle dt::after,
.toggle a.toggle-link::after {
  transform: translateY(-50%) rotate(90deg);
}
.toggle dd {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s;
}
.toggle dd .toggle-contents {
  overflow: hidden;
}
.toggle .toggle-contents_block {
  margin-top: 4rem;
}
@media screen and (max-width: 767px) {
  .toggle .toggle-contents_block {
    margin-top: 3rem;
  }
}
.toggle .toggle-contents_block_title {
  font-weight: 700;
  margin-bottom: 2rem;
}

/*======================================
    parallax
======================================*/
.c-parallax {
  height: 80rem;
  overflow: hidden;
  position: relative;
}
@media screen and (max-width: 767px) {
  .c-parallax {
    height: 25rem;
  }
}

.c-parallax_img {
  position: absolute;
  inset: 0;
  height: 130%;
}
@media screen and (max-width: 767px) {
  .c-parallax_img {
    height: 150%;
  }
}
.c-parallax_img img {
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/*======================================
    GSAP
======================================*/
/* 背景コンテナ */
.bg-wrap {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
.bg-wrap.-dark {
  background-color: #5a646e;
}
.bg-wrap.-color .blob {
  background: radial-gradient(circle, var(--blob-color, #ffffff) 0%, var(--blob-color, #ffffff) 60%, rgba(0, 0, 0, 0) 90%);
  filter: blur(200px);
}
.bg-wrap.-color .blob.mouse-blob {
  background: radial-gradient(circle, var(--blob-color, #ffffff) 0%, var(--blob-color, #ffffff) 20%, rgba(0, 0, 0, 0) 90%);
}
.bg-wrap.-sharp .blob {
  background: radial-gradient(circle, var(--blob-color, #ffffff) 0%, var(--blob-color, #ffffff) 80%, rgba(0, 0, 0, 0) 100%);
  filter: blur(100px);
}
.bg-wrap.-sharp .blob.mouse-blob {
  background: radial-gradient(circle, var(--blob-color, #ffffff) 0%, var(--blob-color, #ffffff) 40%, rgba(0, 0, 0, 0) 90%);
}

/* 光の玉 */
.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) 70%);
  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%);
}

#bg_canvas {
  position: fixed;
  inset: 0;
  height: 100vh;
  z-index: -2;
  overflow: hidden;
}

.bg_canvas_noise {
  position: fixed;
  top: 0;
  height: 100%;
  z-index: -1;
  background: url(../../_assets/img/common/bg_grad_noise.jpg) repeat center/20rem 20rem;
  width: 100%;
  opacity: 0.05;
}

.bg_fv_effect {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  mix-blend-mode: overlay;
  z-index: -1;
  opacity: 0.7;
}
.bg_fv_effect video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.loading-line {
  position: fixed;
  top: 8rem;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 98rem;
  transition: opacity 0.3s ease;
  opacity: 0;
  z-index: 1000;
}
.loading-line span.line {
  display: block;
  width: 100%;
  height: 1px;
  background-color: #000;
  transform-origin: left center;
}
.loading-line.show {
  opacity: 1;
}
@media screen and (max-width: 767px) {
  .loading-line {
    width: 90.67%;
    top: 4rem;
  }
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.header a:link {
  color: inherit;
}
.header.active .h_logo {
  background: url(../img/common/logo_white.svg) no-repeat center/contain;
}
.header.active .h_logo img {
  opacity: 0;
}
.header.top .h_inner::before {
  display: none;
}
.header.line .h_inner::before {
  transform: scale(1, 1);
}
.header.hide {
  transform: translateY(-100%);
  opacity: 0;
}

.h_inner {
  display: flex;
  height: 8rem;
  padding-bottom: 2.4rem;
  position: relative;
}
.h_inner::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transition: transform var(--underline-duration, 0.5s) ease;
  transform-origin: left top;
}
@media screen and (min-width: 768px) {
  .h_inner {
    align-items: flex-end;
  }
}
@media screen and (max-width: 767px) {
  .h_inner {
    align-items: center;
    height: 4rem;
    padding-bottom: 0;
  }
}

.h_logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 20rem;
}
.h_logo:hover {
  opacity: 1;
}
@media screen and (max-width: 767px) {
  .h_logo {
    max-width: 10rem;
  }
}

.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;
  line-height: 1;
}
.h_nav_link:last-child a {
  padding-right: 0;
}
.h_nav_link a,
.h_nav_link span {
  display: block;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  text-transform: uppercase;
  font-weight: 400;
  padding: 0 0.8em;
  cursor: pointer;
}
.h_nav_link a:link,
.h_nav_link span:link {
  color: inherit;
}
.h_nav_link:hover ul.h_nav_sub {
  transform: translateY(100%);
  opacity: 1;
  visibility: visible;
  z-index: 10;
}
.h_nav_link ul.h_nav_sub {
  position: absolute;
  bottom: 0;
  left: 0;
  width: fit-content;
  padding: 2.4rem 0 2rem;
  transform: translateY(calc(100% - 2.4rem));
  opacity: 0;
  visibility: hidden;
  transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
  z-index: 10;
}
@media screen and (min-width: 768px) {
  .h_nav_link ul.h_nav_sub li {
    background-color: #000;
    color: #fff;
    padding: 0.2rem 1.8rem;
  }
  .h_nav_link ul.h_nav_sub li:first-child {
    padding-top: 1.8rem;
  }
  .h_nav_link ul.h_nav_sub li:last-child {
    padding-bottom: 1.8rem;
  }
  .h_nav_link ul.h_nav_sub li a::before {
    background-color: #fff !important;
  }
}
.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 var(--underline-duration, 0.5s) ease;
  transform-origin: right top;
  transform: scale(0, 1);
}
.h_nav_link ul.h_nav_sub li a.h_nav_sub_link {
  margin-left: 1.5em;
}
.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: 4rem;
    height: 1rem;
    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;
    top: 50%;
  }
  .d_icon.active::before {
    transform: translate(-50%, -50%) rotate(20deg);
  }
  .d_icon.active::after {
    transform: translate(-50%, -50%) rotate(-20deg);
  }
  .d_icon::before, .d_icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transition: all 0.3s linear;
    background-color: #000;
    transform: translate(-50%, -50%);
    height: 1px;
    width: 100%;
  }
  .d_icon::before {
    transform: translate(-50%, calc(-0.5rem - 50%));
  }
  .d_icon::after {
    transform: translate(-50%, calc(0.5rem - 50%));
  }
}

.drawer {
  display: none;
}
@media screen and (max-width: 767px) {
  .drawer {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    color: #fff;
    z-index: 299;
    overflow: auto;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.3s ease, opacity 0.3s ease;
  }
  .drawer::before, .drawer::after {
    content: "";
    position: absolute;
    background-color: #1e1e28;
    width: 100%;
    height: calc(60% + 10rem);
    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%;
  padding-top: 12rem;
  max-height: 100svh;
  display: flex;
  flex-direction: column;
  row-gap: 4rem;
}

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

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

.d_item_link {
  display: block;
  font-size: 2rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.5;
  border: none;
  border-bottom: 1px solid #fff;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  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: 1rem;
}
.d_item_link:link {
  color: #fff;
}

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.7rem;
  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: 1.5rem;
  font-feature-settings: "palt";
  line-height: 2.3333333333;
}
.d_item_sub li a:link {
  color: inherit;
}
.d_item_sub li .d_item_sub_link {
  margin-left: 1.75em;
}

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

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

.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(2rem);
  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:link {
  color: #000;
}
.toc_link:last-child {
  height: 0.6rem;
  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.6rem;
  height: 0.6rem;
  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.3rem;
    height: 0.3rem;
  }
}
.toc_link span.text {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  font-size: 1.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  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.8rem;
  }
}

.footer {
  background-color: #1e1e28;
  color: #fff;
  padding: 4.4rem 0 22rem;
  position: relative;
  z-index: 1;
}
.footer a:link {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .footer {
    padding: 2rem 0 6rem;
  }
}

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

.f_wrap {
  flex: 1;
}

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

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

.f_social_title {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 4.5rem;
  line-height: 1;
  letter-spacing: normal;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .f_social_title {
    font-size: 2.5rem;
  }
}

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

.f_social_link:nth-child(2) a {
  width: 3.2rem;
}
@media screen and (max-width: 767px) {
  .f_social_link:nth-child(2) a {
    width: 1.6rem;
  }
}
.f_social_link:nth-child(4) a {
  width: 3.6rem;
}
@media screen and (max-width: 767px) {
  .f_social_link:nth-child(4) a {
    width: 1.8rem;
  }
}
.f_social_link a {
  display: block;
  width: 3rem;
  aspect-ratio: 1/1;
  line-height: 1;
  transition: opacity 0.3s ease;
}
.f_social_link a:link {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .f_social_link a {
    width: 1.5rem;
  }
}
.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: 9.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  padding: 2rem 0;
  letter-spacing: normal;
  font-feature-settings: "palt";
}
.f_contact:link {
  color: inherit;
}
.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: 8rem;
  transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  .f_contact.button_liner_arrow .arrow-horizontal {
    width: 4.5rem;
  }
}
@media screen and (max-width: 767px) {
  .f_contact {
    font-size: 4.5rem;
  }
}

.f_body {
  display: grid;
  grid-template-columns: auto 25rem 21rem;
  column-gap: 2rem;
  margin-top: 7.2rem;
}
@media screen and (max-width: 1024px) {
  .f_body {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 5rem;
  }
}
@media screen and (max-width: 767px) {
  .f_body {
    margin-top: 4rem;
    grid-template-columns: 1fr;
    row-gap: 2rem;
  }
}

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

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

.f_links_block {
  flex: 1;
}

@keyframes wipe-loop {
  0% {
    transform-origin: left top;
    transform: scale(0, 1);
  }
  45% {
    transform-origin: left top;
    transform: scale(1, 1);
  }
  55% {
    transform-origin: right top;
    transform: scale(1, 1);
  }
  100% {
    transform-origin: right top;
    transform: scale(0, 1);
  }
}
.f_links_title {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .f_links_title {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .f_links_title {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.f_links_title {
  display: block;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  line-height: 1.5;
  position: relative;
  text-transform: uppercase;
}
.f_links_title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;
  transform-origin: right top;
}

a.f_links_title:hover::after {
  animation: wipe-loop 2s ease infinite;
}

.f_links {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .f_links {
    margin-top: 0.4rem;
  }
}

.f_links_link a {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .f_links_link a {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .f_links_link a {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.f_links_link a {
  font-family: "TsukuGoPro", sans-serif;
  font-weight: 600;
  line-height: 2.1333333333;
  position: relative;
  transition: opacity 0.5s ease;
  display: inline;
  padding-bottom: 0.5em;
  background-image: linear-gradient(#fff, #fff);
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 1px;
}
@media screen and (min-width: 768px) {
  .f_links_link a {
    font-size: 1.5rem;
  }
}
.f_links_link a:link {
  color: inherit;
}
.f_links_link a:hover {
  opacity: 0.7;
  animation: underlineFlow 2s ease-in-out infinite;
}
.f_links_link a.link_out::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -1.3em;
  width: 1em;
  aspect-ratio: 1/1;
  background: url(../img/common/icon_out.svg) no-repeat center/contain;
  transform: translate(100%, -90%);
  transition: transform 0.5s ease;
}
@media screen and (max-width: 767px) {
  .f_links_link a.link_out::after {
    right: -0.75em;
    width: 0.8em;
  }
}
.f_links_link a.link_out:hover::after {
  transform: translate(calc(100% + 0.2em), calc(-50% - 0.2em));
}
@media screen and (min-width: 768px) {
  .f_links_link a.link_out:hover::after {
    transform: translate(calc(100% + 0.2em), calc(-90% - 0.2em));
  }
}
.f_links_link .f_links_link_sub {
  margin-left: 1.75em;
}
@media screen and (max-width: 767px) {
  .f_links_link .f_links_link_sub {
    margin-left: 1.5em;
  }
}

.f_bottoms {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  row-gap: 3rem;
  transform: translateX(50%);
}

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

.f_button_lang {
  font-size: 2rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  line-height: 1;
  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;
  transition: opacity 0.3s ease;
}
.f_button_lang:link {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .f_button_lang {
    font-size: 1rem;
  }
}
.f_button_lang::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1.4em;
  display: inline;
  padding-bottom: 0.5em;
  background-image: linear-gradient(#fff, #fff);
  background-repeat: no-repeat;
  background-position: bottom left;
  background-size: 0 1px;
}
.f_button_lang:hover {
  opacity: 0.6;
}
.f_button_lang:hover::before {
  animation: underlineFlow 1.4s ease-in-out infinite;
}
.f_button_lang.active::before {
  background-size: 100% 1px;
}

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

/*======================================
    Loading
======================================*/
:root {
  --bg: #1e1e28;
  --fg: #fff;
}

#loader {
  position: fixed;
  inset: 0;
  overflow: hidden;
  z-index: 10000;
  /* カーテンバー（テストの .bar と同じ） */
}
#loader .bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: var(--bg);
  transform: translateX(0);
  will-change: transform;
}
#loader {
  /* ロゴ・カウンターはバーより上のレイヤー */
}
#loader #loader-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 1;
  pointer-events: none;
}
#loader .loader-logo {
  max-width: 28.75rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  #loader .loader-logo {
    max-width: 23rem;
    width: 100%;
  }
}
#loader {
  /* intro 構造 */
}
#loader .intro {
  position: relative;
  width: 100%;
}
#loader .intro-data {
  position: relative;
}
#loader {
  /* ロゴ（塗りつぶし）：マスクワイプ */
}
#loader .intro-logo {
  width: 100%;
  mask-image: linear-gradient(to right, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0) 0%);
  mask-position: center center;
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}
#loader .intro-logo img {
  width: 100%;
}
#loader {
  /* ストロークドローSVG */
}
#loader .intro-line1, #loader .intro-line2 {
  width: 100%;
  opacity: 0;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
#loader .intro-line1 svg, #loader .intro-line2 svg {
  width: 100%;
}
#loader .intro-line1 svg path, #loader .intro-line2 svg path {
  stroke: #fff;
  fill: none;
}
#loader .loader-bottom {
  position: absolute;
  bottom: 2.8rem;
  left: 50%;
  transform: translateX(-50%);
  width: min(90%, 98rem);
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  z-index: 2;
}
#loader .loader-counter {
  position: absolute;
  bottom: 4rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1rem;
  color: #ffffff;
  text-align: center;
  font-family: "Gothic725", sans-serif;
}
#loader .loader-counter .num {
  font-size: 2em;
  display: inline-block;
  margin-right: 0.1em;
}
@media screen and (max-width: 767px) {
  #loader .loader-counter .num {
    font-size: 1.5em;
  }
}
#loader .loader-bar-track {
  position: absolute;
  top: 8rem;
  width: min(90%, 98rem);
  height: 1px;
  background-color: rgba(255, 255, 255, 0.2);
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  #loader .loader-bar-track {
    top: 4rem;
    width: 90.67%;
  }
}
#loader .loader-bar-fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0%;
  background: #ffffff;
  transition: width 0.08s linear;
}

/*======================================
    TOP contents
======================================*/
.t-fv_button {
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  .t-fv_button {
    margin-top: 3rem;
  }
}

.t-fv_button_text {
  text-align: center;
  font-size: 2rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 700;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .t-fv_button_text {
    font-size: 1.2rem;
  }
}

.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: 19.5rem;
  padding-right: 12.5rem;
  white-space: nowrap;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .loop_title {
    font-size: 10rem;
  }
}

.loop_swiper_wrap {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  width: 100%;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .loop_swiper_wrap {
    row-gap: 1rem;
  }
}

.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: 20rem;
  margin-right: 2rem;
}
.loop_img img {
  height: 100%;
  object-fit: cover;
}
.loop_img:hover {
  opacity: 1;
}
@media screen and (max-width: 767px) {
  .loop_img {
    width: 10rem;
    margin-right: 1rem;
  }
}

/*======================================
    button
======================================*/
.button_liner_square {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 10rem;
  font-size: 2rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  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: 56rem;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
  color: inherit;
}
.button_liner_square:link {
  color: inherit !important;
}
@media screen and (max-width: 767px) {
  .button_liner_square {
    min-height: 5rem;
    font-size: 1.3rem;
    max-width: 28rem;
  }
}
.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;
  opacity: 0;
}
.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%;
  opacity: 1;
}
.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 var(--line-duration, 1.2s) linear 1s forwards;
}
.button_liner_square.trigger .button_liner_arrow .arrow-head path {
  animation: drawHead var(--head-duration, 1.2s) linear forwards;
  animation-delay: calc(var(--line-duration, 1.2s) * 0.5 + 1s);
}
.button_liner_square:hover .button_liner_arrow .arrow-line line {
  animation: drawLineLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.button_liner_square:hover .button_liner_arrow .arrow-head path {
  animation: drawHeadLoop var(--line-loop-duration, 2.5s) linear infinite;
}

.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-horizontal.white {
  color: #fff;
}
.button_liner_arrow .arrow-wrap {
  display: flex;
  align-items: center;
  width: 100%;
}
.button_liner_arrow {
  /* 線＝可変 / 矢＝固定 */
}
.button_liner_arrow .arrow-line {
  width: calc(100% - 2rem);
  height: 1rem;
  overflow: visible;
  transform: translateX(1px);
}
@media screen and (max-width: 767px) {
  .button_liner_arrow .arrow-line {
    width: calc(100% - 1rem);
    height: 0.5rem;
  }
}
.button_liner_arrow .arrow-head {
  width: 2rem;
  height: 1rem;
  flex-shrink: 0;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .button_liner_arrow .arrow-head {
    width: 1rem;
    height: 0.5rem;
  }
}
.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, .button_liner_arrow.show .arrow-line line {
  animation: drawLine var(--line-duration, 1.2s) linear forwards;
}
.button_liner_arrow.trigger .arrow-head path, .button_liner_arrow.show .arrow-head path {
  animation: drawHead var(--head-duration, 1.2s) linear forwards;
  animation-delay: calc(var(--line-duration, 1.2s) * 0.5);
}
.button_liner_arrow:hover .arrow-line line {
  animation: drawLineLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.button_liner_arrow:hover .arrow-head path {
  animation: drawHeadLoop var(--line-loop-duration, 2.5s) linear infinite;
}

.button_more {
  font-size: 1.5rem;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  width: fit-content;
  margin: 7.6rem auto 0;
  display: block;
  text-align: center;
  letter-spacing: normal;
  letter-spacing: normal;
}
.button_more:link {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .button_more {
    font-size: 1rem;
    margin-top: 4rem;
  }
}

.button_space {
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .button_space {
    margin-top: 4rem;
  }
}

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

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

.t-fv_logo_wrap {
  height: 100svh;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-bottom: 20rem;
}
.t-fv_logo_wrap.hide {
  display: none;
}

.fv_scroll_line {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  transform-origin: right center;
}
.fv_scroll_line.trigger .line {
  animation: scroll_line 2s infinite;
}
.fv_scroll_line .line {
  display: block;
  width: 1px;
  height: 10rem;
  background-color: #000;
  transform: scale(1, 0);
  transform-origin: 0 0;
}

@keyframes scroll_line {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
.t-fv_logo {
  width: 100%;
  max-width: 28.75rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .t-fv_logo {
    max-width: 23rem;
  }
}

.intro {
  position: relative;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.intro img,
.intro svg {
  width: 100%;
}

.intro-logo {
  mask-image: linear-gradient(to right, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0) 0%);
  mask-position: center center;
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}

.intro-line1,
.intro-line2 {
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
}

.t-fv_eng {
  grid-column: 1/2;
  grid-row: 1/2;
  position: relative;
  z-index: 1;
  width: 100%;
  height: calc(100vh - 8rem);
  display: flex;
  align-items: center;
  background: transparent;
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .t-fv_eng {
    margin-top: 4rem;
    height: calc(100vh - 4rem);
  }
}

/* SVGマスク：全面黒背景 */
.t-fv_mask_global {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

/* テキストラッパー */
.t-fv_texts {
  position: relative;
  z-index: 2;
  color: transparent;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 8.5rem;
  font-weight: 400;
  line-height: 1.4;
  font-feature-settings: "palt";
  letter-spacing: normal;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-left: 10%;
}
@media screen and (max-width: 767px) {
  .t-fv_texts {
    font-size: 4.2rem;
  }
}
.t-fv_texts .line {
  overflow: hidden;
  display: block;
}
@media screen and (max-width: 767px) {
  .t-fv_texts .line.-pc {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .t-fv_texts .line.-sp {
    display: none;
  }
}
.t-fv_texts .line span {
  display: inline-block;
  transform: translateY(100%);
  /* 初期は下に隠す */
  transition: transform 1s cubic-bezier(0.54, 0.28, 0.29, 0.88);
}
.t-fv_texts .line.trigger span {
  transform: translateY(0);
}

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

.t-fv-message {
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 8rem 0;
}
@media screen and (max-width: 767px) {
  .t-fv-message {
    padding: 6rem 0;
  }
}

.t-fv-message_text {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 8.5rem;
  font-weight: 400;
  line-height: 1.4117647059;
  font-feature-settings: "palt";
  letter-spacing: normal;
  max-width: 84rem;
  margin-left: auto;
  margin-right: auto;
}
.t-fv-message_text span {
  display: block;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .t-fv-message_text span.-pc {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .t-fv-message_text span.-sp {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .t-fv-message_text {
    font-size: 4.2rem;
  }
}

.t-fv-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12rem 0;
  min-height: 100svh;
}
.t-fv-circle .inner {
  height: 100%;
}
@media screen and (max-width: 767px) {
  .t-fv-circle .inner {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 45rem;
    height: 100%;
    transform: translate(-50%, -50%);
    padding: 6rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120vw;
  }
}
@media screen and (max-width: 767px) {
  .t-fv-circle {
    padding: 6rem 0;
    position: relative;
  }
}

.t-fv-circle_wrap {
  max-width: 83rem;
  aspect-ratio: 1/1;
  width: 100%;
  height: 100%;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.t-fv-circle_text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
  object-fit: contain;
  width: 100%;
  height: 100%;
}
.t-fv-circle_text span.text {
  display: block;
  width: 100%;
  height: 100%;
}
.t-fv-circle_text img {
  height: 100%;
  object-fit: contain;
}

.t-fv-circle_text2 span {
  animation: rotateLeft 50s linear infinite;
}

.t-fv-circle_text1 span,
.t-fv-circle_text3 span {
  animation: rotateRight 50s linear infinite;
}

/*======================================
    message
======================================*/
.t-message {
  padding-bottom: 17.8rem;
  grid-column: 1/2;
  grid-row: 1/3;
  padding-top: max(25svh, 10rem);
}
@media screen and (max-width: 767px) {
  .t-message {
    padding-bottom: 9rem;
  }
}

.t-message_title {
  font-size: 2.5rem;
  font-feature-settings: "palt";
  text-align: center;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  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.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.t-message_title.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.t-message_title::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .t-message_title {
    font-size: 1.5rem;
  }
}

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

.t-message_lead {
  font-size: 5.5rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  margin-top: -0.5em;
}
@media screen and (max-width: 767px) {
  .t-message_lead {
    font-size: 3rem;
    line-height: 1.3333333333;
  }
}

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

.t-message_text {
  font-size: 2.3rem;
  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: 1.4rem;
    line-height: 1.7142857143;
  }
}

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

/*======================================
    works
======================================*/
.t-works {
  margin-bottom: 30rem;
  padding-top: 35rem;
  z-index: 3;
  position: relative;
}
.t-works.js-works-pinned {
  padding-bottom: min(23vh, 25rem);
}
@media screen and (max-width: 767px) {
  .t-works.js-works-pinned {
    padding-bottom: 15rem;
  }
}
@media screen and (max-width: 767px) {
  .t-works {
    margin-bottom: 15rem;
    padding-top: 18rem;
  }
}

.t-works_lists {
  margin-top: 11rem;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .t-works_lists {
    margin-top: 5rem;
  }
}
.t-works_lists.t-works_lists_height {
  height: min(100vh - 10rem, 57.6rem);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .t-works_lists.t-works_lists_height {
    height: min(100svh - 8rem, 37.2rem);
  }
}
.t-works_lists.t-works_lists_height .t-works_list:nth-child(n+2) {
  margin-top: 4rem;
}

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

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

.t-works_head_num {
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 1.5rem;
  position: relative;
  align-self: start;
  line-height: 1;
  letter-spacing: normal;
  font-feature-settings: "palt";
  position: relative;
  z-index: 1;
}
.t-works_head_num.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.t-works_head_num.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.t-works_head_num.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.t-works_head_num::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .t-works_head_num {
    font-size: 1rem;
    margin-left: 0;
  }
}
.t-works_head_num span.num {
  font-size: 5.5rem;
  font-feature-settings: "palt";
  display: block;
  line-height: 1;
  margin-top: 0.8rem;
}
@media screen and (max-width: 767px) {
  .t-works_head_num span.num {
    font-size: 3rem;
    margin-top: 0.4rem;
  }
}

.t-works_head_link {
  grid-column: 2/3;
  grid-row: 1/2;
}
.t-works_head_link:link {
  color: inherit;
}
.t-works_head_link:hover {
  opacity: 1;
}
.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: 2.3rem;
  font-weight: 700;
  line-height: 1.4347826087;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .t-works_head_title h3 {
    font-size: 1.5rem;
    line-height: 1.3333333333;
    letter-spacing: 0.05em;
    margin-top: 0.4rem;
  }
}
.t-works_head_title p {
  font-size: 1.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-feature-settings: "palt";
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .t-works_head_title p {
    font-size: 1rem;
  }
}
.t-works_head_title p span.lg {
  font-size: 5.5rem;
  display: block;
  line-height: 1;
  margin-top: 0.8rem;
}
@media screen and (max-width: 767px) {
  .t-works_head_title p span.lg {
    font-size: 3rem;
    margin-top: 0.4rem;
  }
}

/*======================================
    feature
======================================*/
.t-feature {
  z-index: 2;
  padding-top: 7rem;
  padding-bottom: 20rem;
}
@media screen and (max-width: 767px) {
  .t-feature {
    padding-bottom: 10rem;
  }
}

.t-feature_container {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 13.6rem;
}
@media screen and (max-width: 767px) {
  .t-feature_container {
    padding-top: 7rem;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}

.t-feature_wrap {
  width: 100%;
  position: relative;
}
.t-feature_wrap .t-feature_thumb_pagination {
  max-width: 57rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .t-feature_wrap .t-feature_thumb_pagination {
    max-width: 42.5rem;
  }
}
@media screen and (max-width: 767px) {
  .t-feature_wrap {
    margin: unset;
  }
}

.t-feature_eye {
  padding-bottom: 2rem;
  max-width: 57rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .t-feature_eye {
    max-width: 42.5rem;
    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.35s ease 0.3s;
  z-index: 2;
}
.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 .t-feature_eye_img {
  filter: grayscale(0.8);
}
.t-feature_eye .swiper-slide-active .t-feature_eye_img {
  filter: grayscale(0) !important;
}
.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: 2rem;
}
.t-feature_eye .swiper-pagination .swiper-pagination-bullet {
  width: 4rem;
  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: 3rem;
  }
}
.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 .t-feature_prev,
.t-feature_eye .t-feature_next {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 9rem;
  aspect-ratio: 16/9;
  cursor: pointer;
  background: url(../_assets/img/common/link-arrows.svg) no-repeat center/contain;
  z-index: 3;
}
.t-feature_eye .t-feature_prev.swiper-button-disabled,
.t-feature_eye .t-feature_next.swiper-button-disabled {
  opacity: 0;
  visibility: hidden;
}
@media screen and (max-width: 767px) {
  .t-feature_eye .t-feature_prev,
  .t-feature_eye .t-feature_next {
    width: 5.5rem;
  }
}
.t-feature_eye .t-feature_prev .arrow-horizontal,
.t-feature_eye .t-feature_next .arrow-horizontal {
  bottom: 50%;
}
.t-feature_eye .t-feature_prev {
  transform: translate(calc(-50% - 21rem), -50%) scale(-1, -1);
}
@media screen and (max-width: 767px) {
  .t-feature_eye .t-feature_prev {
    transform: translate(calc(-50% - 13rem), -50%) scale(-1, -1);
  }
}
.t-feature_eye .t-feature_next {
  transform: translate(calc(-50% + 21rem), -50%) scale(1, -1);
}
@media screen and (max-width: 767px) {
  .t-feature_eye .t-feature_next {
    transform: translate(calc(-50% + 13rem), -50%) scale(1, -1);
  }
}

.t-feature_eye_img {
  display: block;
  aspect-ratio: 280/420;
  overflow: hidden;
}
.t-feature_eye_img.coming {
  pointer-events: none;
  cursor: default;
}
.t-feature_eye_img:hover {
  opacity: 1;
}
.t-feature_eye_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.t-feature_eye_img .comingsoon {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #5a646e;
  mix-blend-mode: multiply;
  z-index: 1;
}
.t-feature_eye_img .comingsoon_text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-feature-settings: "palt";
  font-weight: 400;
  color: #fff;
  z-index: 2;
}

.t-feature_thumb {
  margin-top: 3.6rem;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb {
    margin-top: 1.6rem;
  }
}
.t-feature_thumb .swiper-slide-active .t-feature_thumb_contents .t-feature_thumb_contents_head,
.t-feature_thumb .swiper-slide-active .t-feature_thumb_contents .t-feature_thumb_contents_bottom {
  transform: translateY(0);
  opacity: 1;
}

.t-feature_thumb_contents {
  display: block;
  font-size: 1.5rem;
  text-align: center;
  padding-bottom: 2rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 600;
}
.t-feature_thumb_contents.coming {
  pointer-events: none;
  cursor: default;
}
.t-feature_thumb_contents.coming .p-feature_card_more {
  display: none;
}
.t-feature_thumb_contents:link {
  color: inherit;
}
.t-feature_thumb_contents:hover {
  opacity: 1;
}
.t-feature_thumb_contents .en {
  font-family: "Gothic725", "TsukuGoPro", sans-serif;
  font-feature-settings: "palt";
  line-height: 1.2;
  letter-spacing: normal;
  font-weight: 400 !important;
}
.t-feature_thumb_contents .en span {
  display: inline-block;
}
.t-feature_thumb_contents .sm {
  font-size: 2rem;
  margin-bottom: 1.2rem;
  font-weight: inherit;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .sm {
    font-size: 1.3rem;
    margin-bottom: 0.4rem;
  }
}
.t-feature_thumb_contents .lg {
  font-size: 7.5rem;
  font-weight: inherit;
  line-height: 1.1;
  margin-bottom: 1rem;
  display: block;
}
.t-feature_thumb_contents .lg.en {
  line-height: 1;
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .lg {
    font-size: 4rem;
  }
}
.t-feature_thumb_contents .md {
  font-size: 3.5rem;
  font-weight: inherit;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .md {
    font-size: 2rem;
    line-height: 1;
  }
  .t-feature_thumb_contents .md.en {
    margin-top: -0.6rem;
    display: block;
  }
}
.t-feature_thumb_contents .jp {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .t-feature_thumb_contents .jp {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .jp {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.t-feature_thumb_contents .jp {
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.2777777778;
  margin-top: 0.6rem;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_contents .jp {
    margin-top: 0.4rem;
  }
}
.t-feature_thumb_contents br.is_card {
  display: none;
}

.t-feature_thumb_contents_head {
  transform: translateY(-1rem);
  opacity: 0;
  transition: transform 1s ease 0.3s, opacity 1s ease 0.3s;
}

.t-feature_thumb_contents_bottom {
  transform: translateY(1rem);
  opacity: 0;
  transition: transform 1s ease 0.3s, opacity 1s ease 0.3s;
}
.t-feature_thumb_contents_bottom .button_more {
  font-weight: 400;
}

.t-feature_thumb_pagination {
  position: absolute;
  top: 0;
  left: 50% !important;
  width: 100%;
  bottom: unset !important;
  text-align: left;
  font-size: 3.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-feature-settings: "palt";
  line-height: 1;
  transform: translate(-50%, -100%);
  color: #c8c8c8;
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_pagination {
    left: 4rem !important;
    font-size: 2rem;
    transform: translate(0, -100%);
  }
}
.t-feature_thumb_pagination::before {
  content: "Feature";
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(calc(-100% - 0.6rem));
  font-size: 1.5rem;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_pagination::before {
    font-size: 1rem;
  }
}
.t-feature_thumb_pagination::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-90%, calc(100% + 1rem));
  width: 37.5rem;
  height: 37.5rem;
  background: url(../img/common/text_line_grad.svg) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .t-feature_thumb_pagination::after {
    width: 18.8rem;
    height: 18.8rem;
  }
}

.feature_button_more {
  margin-top: 4.2rem;
  min-width: 9rem;
}
@media screen and (max-width: 767px) {
  .feature_button_more {
    margin-top: 1.4rem;
    min-width: 5.5rem;
  }
}

/*======================================
    team
======================================*/
.t-team .sticky_contents {
  padding-top: 16rem;
  padding-bottom: 30rem;
}
@media screen and (max-width: 767px) {
  .t-team .sticky_contents {
    padding: 6rem 0 9rem;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}
.t-team .button_liner_arrow {
  position: relative;
  z-index: 3;
}

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

/*======================================
    news
======================================*/
.t-news {
  min-height: unset;
}
@media screen and (min-width: 768px) {
  .t-news {
    padding-bottom: 25rem;
  }
}
@media screen and (max-width: 767px) {
  .t-news {
    padding-bottom: 12rem;
  }
}

.news_cards {
  margin-top: 7rem;
}
@media screen and (max-width: 767px) {
  .news_cards {
    margin-top: 3rem;
    width: calc(100% - 2rem);
  }
}

.simple_card {
  border-top: 1px solid #000;
}

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

.news_card_link:link {
  color: inherit;
}
.news_card_link:hover {
  opacity: 1;
}

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

.news_card_cat {
  font-size: 1.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: 0.05em;
  font-feature-settings: "palt";
  height: 2rem;
  line-height: 1;
  background-color: #000;
  color: #fff;
  min-width: 10rem;
  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;
  text-transform: uppercase;
}
@media screen and (max-width: 767px) {
  .news_card_cat {
    font-size: 0.8rem;
    height: 1rem;
    min-width: 5rem;
    padding-bottom: 0;
  }
}

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

.news_card_title_wrap {
  line-height: 2;
  margin-top: -0.2rem;
  color: inherit !important;
}

.news_card_title {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .news_card_title {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .news_card_title {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.news_card_title {
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
.news_card_title:link {
  color: inherit;
}
.news_card_title {
  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 2s ease-in-out infinite;
}
@media screen and (max-width: 767px) {
  .news_card_title {
    line-height: 1.52;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
}

@media screen and (min-width: 768px) {
  .t-news_button {
    margin-top: 9rem;
  }
}
@media screen and (max-width: 767px) {
  .t-news_button {
    margin-top: 2.6rem;
  }
}

/*======================================
    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-weight: 400;
  font-size: 3.5rem;
  line-height: 1.7142857143;
  font-feature-settings: "palt";
  text-transform: uppercase;
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .p-section-ttl p {
    font-size: 2rem;
  }
}
.p-section-ttl h2 {
  font-size: 1.5rem;
  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: 1rem;
    line-height: 1;
  }
}

.p-section-ttl_type01 {
  font-size: 1.5rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  border-bottom: 1px solid #000;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .p-section-ttl_type01 {
    font-size: 1rem;
    margin-bottom: 1.4rem;
  }
}
.p-section-ttl_type01.en {
  letter-spacing: normal;
  font-weight: 400;
  font-family: "Gothic725", sans-serif;
}

/*======================================
    breadcrumb
======================================*/
.p-bread {
  position: fixed;
  top: 8.4rem;
  left: 0;
  width: 100%;
  z-index: 300;
}
.p-bread .inner {
  overflow: auto;
  padding-right: 1em;
}
.p-bread p {
  font-size: 1.5rem;
  text-transform: uppercase;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-bread p {
    font-size: 0.8rem;
  }
}
.p-bread p.-white {
  color: #fff;
}
@media screen and (max-width: 767px) {
  .p-bread {
    top: 4.2rem;
  }
}
.p-bread .tags {
  display: inline-block;
}

/*======================================
    business
======================================*/
.p-business-motto {
  padding: 20rem 0;
}
@media screen and (max-width: 767px) {
  .p-business-motto {
    padding: 10rem 0;
  }
}

.p-business-motto_ttl {
  text-align: center;
  font-size: 3rem;
  font-weight: 700;
  font-feature-settings: "palt";
  letter-spacing: normal;
  line-height: 1.5;
  font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho Pro", serif;
  position: relative;
  z-index: 1;
}
.p-business-motto_ttl.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-business-motto_ttl.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-business-motto_ttl.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-business-motto_ttl::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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: 18.8rem;
    height: 18.8rem;
  }
}
.p-business-motto_ttl span.sm {
  font-size: 0.5em;
  display: block;
}
@media screen and (max-width: 767px) {
  .p-business-motto_ttl {
    font-size: 1.5rem;
  }
}

.p-business-motto_lists {
  max-width: 68rem;
  margin-left: auto;
  margin-right: auto;
  margin-top: 10rem;
  margin-bottom: 15rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_lists {
    margin-top: 4rem;
    margin-bottom: 5rem;
  }
}

.p-business-motto_list {
  position: relative;
  z-index: 1;
  padding-top: 5rem;
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list {
    padding-top: 3rem;
    margin-top: 3rem;
  }
}
.p-business-motto_list:nth-child(n+2) {
  border-top: 1px solid #acb1b6;
}

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

.p-business-motto_list_text {
  font-size: 3.5rem;
  line-height: 1.7142857143;
  letter-spacing: 0.25em;
  font-feature-settings: "palt";
  font-weight: 600;
  font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho Pro", serif;
}
@media screen and (max-width: 767px) {
  .p-business-motto_list_text {
    font-size: 2rem;
    line-height: 1.5;
    letter-spacing: 0.2em;
  }
}

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

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

.p-business-policy_lead {
  font-size: 3.5rem;
  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: 2rem;
    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: 3rem;
  font-size: 1.5rem;
  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: 1rem;
    margin-bottom: 1.6rem;
  }
}

.p-business-policy_text {
  font-size: 1.8rem;
  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: 1.2rem;
    line-height: 1.8333333333;
    font-feature-settings: "palt";
  }
}

.p-business-policy_graph1 {
  max-width: 67.8rem;
  margin: 14rem auto 8rem;
}
@media screen and (max-width: 767px) {
  .p-business-policy_graph1 {
    margin: 2.4rem auto 3.5rem;
  }
}

.p-business-policy_graph2 {
  max-width: 53.2rem;
  margin: 9rem auto 7rem;
  transform: translateX(-14%);
}
@media screen and (max-width: 767px) {
  .p-business-policy_graph2 {
    max-width: 26.8rem;
    margin: 5.2rem auto 4rem;
  }
}

.p-business-policy_graph3 {
  max-width: 64rem;
  margin: 11rem auto 0;
}
@media screen and (max-width: 767px) {
  .p-business-policy_graph3 {
    margin-top: 5rem;
  }
  .p-business-policy_graph3 img {
    display: block;
    padding: 0 1rem;
  }
}

.p-business-policy_button {
  font-size: 1.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  max-width: 36rem;
  height: 6rem;
  margin: 6.4rem auto 0;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  letter-spacing: normal;
}
.p-business-policy_button:link {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .p-business-policy_button {
    font-size: 1rem;
    height: 3rem;
    max-width: 18rem;
    margin-top: 3.4rem;
  }
}

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

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

.p-story_bg_white {
  background-color: #fff;
}
.p-story_bg_white.page {
  padding-bottom: 0;
}

.p-story_section_sticky {
  padding: 12rem 0;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .p-story_section_sticky {
    padding: 6rem 0;
  }
}

.p-story_section {
  padding: 12rem 0;
}
.p-story_section.-nopt {
  padding-top: 0;
}
@media screen and (max-width: 767px) {
  .p-story_section {
    padding: 6rem 0;
  }
}

.p-story_section_ttl {
  font-size: 3.5rem;
  font-weight: 600;
  line-height: 1.5714285714;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  margin-bottom: 4rem;
  position: relative;
  z-index: 1;
}
.p-story_section_ttl.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-story_section_ttl.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-story_section_ttl.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-story_section_ttl::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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-story_section_ttl::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
.p-story_section_ttl::before {
  left: 0.5em;
}
@media screen and (max-width: 767px) {
  .p-story_section_ttl {
    font-size: 2rem;
    line-height: 1.5;
    margin-bottom: 2rem;
  }
}

.p-story_section_text {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-story_section_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-story_section_text {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-story_section_text {
  line-height: 1.8695652174;
  letter-spacing: normal;
}

.p-story_section_graph1 {
  margin: 3rem auto 0;
  max-width: 42.5rem;
}
@media screen and (max-width: 767px) {
  .p-story_section_graph1 {
    margin-top: 2rem;
    max-width: 29rem;
  }
}

.p-story_section_graph2 {
  max-width: 60rem;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .p-story_section_graph2 {
    max-width: 33rem;
  }
}

.p-story_section_head {
  display: inline-block;
  margin-bottom: 3rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3333333333;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  border-bottom: 1px solid #fff;
}
@media screen and (max-width: 767px) {
  .p-story_section_head {
    font-size: 1rem;
    margin-bottom: 1.6rem;
  }
}

.p-story_graph {
  max-width: 65rem;
  margin-left: auto;
  margin-right: auto;
}

.p-story_table {
  width: 100%;
  table-layout: fixed;
  border-spacing: 1.4rem 0;
  max-width: 65rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .p-story_table {
    border-spacing: 1rem 0;
  }
}
.p-story_table tr th:first-child {
  width: 8rem;
}
@media screen and (max-width: 767px) {
  .p-story_table tr th:first-child {
    width: 4rem;
  }
}
.p-story_table tr:nth-child(n+2) th,
.p-story_table tr:nth-child(n+2) td {
  border-top: 1px solid #fff;
}
.p-story_table th,
.p-story_table td {
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.5;
  vertical-align: top;
  padding: 1rem 0;
}
@media screen and (max-width: 767px) {
  .p-story_table th,
  .p-story_table td {
    font-size: 1rem;
    padding: 0.4rem 0;
  }
}
.p-story_table th {
  text-align: left;
}
.p-story_table th.lg {
  font-size: 2.4rem;
}
@media screen and (max-width: 767px) {
  .p-story_table th.lg {
    font-size: 1.5rem;
  }
}
.p-story_table td {
  padding-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .p-story_table td {
    padding-bottom: 2rem;
  }
}

/*======================================
    history
======================================*/
.p-history {
  position: relative;
  padding-bottom: 20rem;
}
@media screen and (max-width: 767px) {
  .p-history {
    padding-bottom: 7.5rem;
  }
}
.p-history .scroll_wrap {
  color: #fff;
  translate: 120% 0;
}
@media screen and (max-width: 767px) {
  .p-history .scroll_wrap {
    translate: 50% 0;
  }
}
.p-history .loop_title_section {
  color: #f6f5b3;
  margin-top: 4rem;
}
@media screen and (max-width: 767px) {
  .p-history .loop_title_section {
    margin-top: 2rem;
  }
}

.p-history_sticky_wrap {
  display: grid;
  grid-template-columns: 1fr;
  height: 100vh;
}

.p-history_sticky_space {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  width: 100%;
  height: 100vh;
}

.p-history_sticky {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  height: 100vh;
  padding-top: 18rem;
  width: 100%;
  background-color: #28283c;
}
.p-history_sticky.is-fixed {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  z-index: 100;
}
@media screen and (max-width: 767px) {
  .p-history_sticky {
    padding-top: 8rem;
  }
}

.p-history_wrapper {
  display: flex;
  column-gap: 5rem;
  align-items: start;
}
@media screen and (max-width: 767px) {
  .p-history_wrapper {
    flex-direction: column;
  }
}

.p-history-eye {
  width: 28rem;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .p-history-eye {
    width: 100%;
    max-width: 20rem;
    margin-left: auto;
    margin-right: auto;
  }
}
.p-history-eye .p-history-eye_img {
  aspect-ratio: 280/420;
}
.p-history-eye .p-history-eye_img img {
  height: calc(100% + 2px);
  width: 100%;
  object-fit: cover;
}
.p-history-eye .p-history-eye-pagination-wrap {
  width: 100%;
  margin-top: 2rem;
  position: relative;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .p-history-eye .p-history-eye-pagination-wrap {
    margin-top: 0.4rem;
    padding-bottom: 4rem;
  }
}
.p-history-eye .p-history-eye-pagination-wrap .p-history-eye-pagination_head {
  font-size: 1.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
  color: #f6f5b3;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-history-eye .p-history-eye-pagination-wrap .p-history-eye-pagination_head {
    font-size: 1rem;
  }
}
.p-history-eye .p-history-eye-pagination {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: flex-end;
  column-gap: 2rem;
}
.p-history-eye .p-history-eye-pagination .p-history-page {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  background-color: unset;
  color: #f6f5b3;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
  font-size: 4.9rem;
  line-height: 1;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border: none;
  box-shadow: none;
  border-radius: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.p-history-eye .p-history-eye-pagination .p-history-page.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-history-eye .p-history-eye-pagination .p-history-page.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-history-eye .p-history-eye-pagination .p-history-page.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-history-eye .p-history-eye-pagination .p-history-page::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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-eye .p-history-eye-pagination .p-history-page::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-history-eye .p-history-eye-pagination .p-history-page {
    font-size: 3rem;
  }
}
.p-history-eye .p-history-eye-pagination .p-history-page::before {
  background-image: url(../img/common/text_line_grad_yellow.svg);
}
.p-history-eye .p-history-eye-pagination .p-history-page.prev, .p-history-eye .p-history-eye-pagination .p-history-page.next {
  font-size: 2.5rem;
  opacity: 0.5;
}
@media screen and (max-width: 767px) {
  .p-history-eye .p-history-eye-pagination .p-history-page.prev, .p-history-eye .p-history-eye-pagination .p-history-page.next {
    font-size: 1.5rem;
  }
}
.p-history-eye .p-history-eye-pagination .p-history-page.prev {
  grid-column: 1/2;
  grid-row: 1/2;
}
.p-history-eye .p-history-eye-pagination .p-history-page.active {
  grid-column: 2/3;
  grid-row: 1/2;
  transform: translateY(0.15em);
}
.p-history-eye .p-history-eye-pagination .p-history-page.active::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-history-eye .p-history-eye-pagination .p-history-page.next {
  grid-column: 3/4;
  grid-row: 1/2;
}

.p-history-thumb {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .p-history-thumb {
    width: 100%;
  }
}
.p-history-thumb .p-history-thumb_texts {
  background-color: #28283c;
}
.p-history-thumb .p-history-thumb_texts.swiper-slide-active .p-history_item_texts,
.p-history-thumb .p-history-thumb_texts.swiper-slide-active .p-history_item_title {
  transform: translateY(0);
}

.p-history_item_body {
  position: relative;
  z-index: 2;
  flex: 1;
  height: 42rem;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 767px) {
  .p-history_item_body {
    height: calc(100vh - 50rem);
  }
}

.p-history_item_texts {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  padding-right: 3rem;
  flex: 1;
  transform: translateY(10px);
  transition: transform 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-history_item_texts {
    padding-right: 0.8rem;
    margin-right: 0.8rem;
  }
}

.p-history_item_title {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  color: #f6f5b3;
  margin-bottom: 2rem;
  transform: translateY(-10px);
  transition: transform 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-history_item_title {
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }
}

.p-history_item_text {
  font-size: 1.8rem;
  line-height: 2.1111111111;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: justify;
  margin-top: -0.5555555556em;
}
@media screen and (max-width: 767px) {
  .p-history_item_text {
    font-size: 1.2rem;
    line-height: 1.8695652174;
    margin-top: -0.4347826087em;
  }
}

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

.p-history_highlight {
  color: #f6f5b3;
  padding-top: 36rem;
  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: 22.5rem;
  }
}

.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: 15rem;
}
@media screen and (max-width: 767px) {
  .p-history_items {
    column-gap: 8rem;
  }
}

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

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

.p-history_item_img {
  aspect-ratio: 280/420;
  max-width: 28rem;
  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: 20rem;
    aspect-ratio: 200/300;
  }
}
.p-history_item_img img {
  height: 100%;
  object-fit: cover;
  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: 1rem;
  position: relative;
  letter-spacing: normal;
  line-height: 1;
  position: relative;
  z-index: 1;
}
.p-history_item_story.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-history_item_story.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-history_item_story.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-history_item_story::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-history_item_story {
    font-size: 1rem;
    margin-top: 1.8rem;
  }
}
.p-history_item_story::before {
  background-image: url(../img/common/text_line_grad_yellow.svg);
}
.p-history_item_story .year {
  display: block;
  font-size: 4.9rem;
  margin-top: 1.6rem;
}
@media screen and (max-width: 767px) {
  .p-history_item_story .year {
    font-size: 3rem;
    margin-top: 0.4rem;
  }
}

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

.p-history_container {
  display: flex;
  column-gap: 5rem;
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .p-history_container {
    flex-direction: column;
    margin-top: 3rem;
  }
}

.p-history-eye_wrap {
  width: 28rem;
}
@media screen and (max-width: 767px) {
  .p-history-eye_wrap {
    width: 100%;
    padding-right: 0.8rem;
    margin-right: 0.8rem;
    display: none;
  }
}

.p-history-eye-swiper {
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper {
    width: 100%;
    max-width: 33rem;
    margin-left: auto;
    margin-right: auto;
  }
}

.p-history-eye-swiper-slide {
  aspect-ratio: 280/420;
}
.p-history-eye-swiper-slide img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.p-history-eye-swiper-pagination_wrap {
  width: 100%;
  margin-top: 2rem;
  position: relative;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper-pagination_wrap {
    margin-top: 0.4rem;
    padding-bottom: 4rem;
    padding-right: 0.8rem;
    margin-right: 0.8rem;
  }
}

.p-history-eye-swiper-pagination {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: flex-end;
  column-gap: 2rem;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper-pagination {
    max-width: 20rem;
    margin-left: auto;
    margin-right: auto;
  }
}
.p-history-eye-swiper-pagination .p-history-page {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  background-color: unset;
  color: #f6f5b3;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
  font-size: 4.9rem;
  line-height: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  border: none;
  box-shadow: none;
  border-radius: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.p-history-eye-swiper-pagination .p-history-page.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-history-eye-swiper-pagination .p-history-page.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-history-eye-swiper-pagination .p-history-page.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-history-eye-swiper-pagination .p-history-page::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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-eye-swiper-pagination .p-history-page::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper-pagination .p-history-page {
    font-size: 3rem;
  }
}
.p-history-eye-swiper-pagination .p-history-page::before {
  background-image: url(../img/common/text_line_grad_yellow.svg);
}
.p-history-eye-swiper-pagination .p-history-page.prev, .p-history-eye-swiper-pagination .p-history-page.next {
  font-size: 2.5rem;
  opacity: 0.5;
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper-pagination .p-history-page.prev, .p-history-eye-swiper-pagination .p-history-page.next {
    font-size: 1.5rem;
  }
}
.p-history-eye-swiper-pagination .p-history-page.prev {
  grid-column: 1/2;
  grid-row: 1/2;
}
.p-history-eye-swiper-pagination .p-history-page.active {
  grid-column: 2/3;
  grid-row: 1/2;
  transform: translateY(0.15em);
}
.p-history-eye-swiper-pagination .p-history-page.active span.year {
  display: block;
}
.p-history-eye-swiper-pagination .p-history-page.active::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-history-eye-swiper-pagination .p-history-page.next {
  grid-column: 3/4;
  grid-row: 1/2;
}
.p-history-eye-swiper-pagination .p-history-page span.num {
  font-family: "Gothic725", sans-serif;
}
.p-history-eye-swiper-pagination .p-history-page span.year {
  display: none;
  font-size: 1.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
  color: #f6f5b3;
  text-align: center;
  margin-bottom: 0.2em;
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper-pagination .p-history-page span.year {
    font-size: 1rem;
  }
}

.p-history-eye-swiper-pagination_buttons {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper-pagination_buttons {
    padding-right: 0.8rem;
    margin-right: 0.8rem;
  }
}
.p-history-eye-swiper-pagination_buttons .p-history-eye-swiper-button {
  color: #f6f5b3;
  background-color: unset;
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border: none;
  box-shadow: none;
  border-radius: 0;
  width: 8rem;
  display: block;
  aspect-ratio: 4/3;
  position: relative;
  z-index: 2;
  transition: visibility 0.3s ease, opacity 0.3s ease;
  cursor: pointer;
}
.p-history-eye-swiper-pagination_buttons .p-history-eye-swiper-button:disabled {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}
@media screen and (max-width: 767px) {
  .p-history-eye-swiper-pagination_buttons .p-history-eye-swiper-button {
    width: 4rem;
  }
}
.p-history-eye-swiper-pagination_buttons .p-history-eye-swiper-button .arrow-horizontal {
  bottom: 50%;
  transform: translateY(50%);
}
.p-history-eye-swiper-pagination_buttons .p-history-eye-swiper-button .arrow-horizontal.reverse {
  transform: translateY(50%) scale(-1, 1);
}
.p-history-thumb_wrap {
  width: calc(100% - 33rem);
}
@media screen and (max-width: 767px) {
  .p-history-thumb_wrap {
    width: 100%;
  }
}

.p-history-thumb-swiper {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .p-history-thumb-swiper .swiper-wrapper {
    flex-direction: column;
    row-gap: 8rem;
  }
}

.p-history-thumb-swiper-slide {
  background-color: #28283c;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.p-history-thumb-swiper-slide.swiper-slide-active .p-history-thumb-swiper_texts,
.p-history-thumb-swiper-slide.swiper-slide-active .p-history-thumb-swiper_title {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}
@media screen and (max-width: 767px) {
  .p-history-thumb-swiper-slide {
    opacity: 0;
    transform: translateY(2rem);
    transition: opacity 1s ease, transform 1s ease;
  }
  .p-history-thumb-swiper-slide.trigger {
    transform: translateY(0);
    opacity: 1;
  }
  .p-history-thumb-swiper-slide.trigger .p-history_sp_head::before {
    animation: lineIn 0.5s ease 0.5s forwards;
  }
  .p-history-thumb-swiper-slide.trigger .p-history_sp_head_img {
    animation-name: imgIn;
    animation-duration: 0.25s;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
  }
}

@media screen and (min-width: 768px) {
  .p-history_sp_head {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .p-history_sp_head {
    position: relative;
    z-index: 1;
  }
  .p-history_sp_head.target.trigger::before {
    animation: lineIn 0.5s ease 0.5s forwards;
  }
  .p-history_sp_head.line_black::before {
    background-image: url(../img/common/text_line_black.svg);
  }
  .p-history_sp_head.line_white::before {
    background-image: url(../img/common/text_line_grad_white.svg);
  }
  .p-history_sp_head::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 37.5rem;
    height: 37.5rem;
    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);
  }
  .p-history_sp_head {
    margin-bottom: 5rem;
    position: relative;
    z-index: -1;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-history_sp_head::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-history_sp_head::before {
    background-image: url(../img/common/text_line_grad_yellow.svg);
  }
}

.p-history_sp_head_img {
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: 280/420;
  margin-bottom: 1rem;
  overflow: hidden;
  position: relative;
  clip-path: polygon(0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0);
}
.p-history_sp_head_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-history_sp_head_num {
  color: #f6f5b3;
  font-family: "Gothic725", sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 400;
}
.p-history_sp_head_num .year {
  font-size: 1rem;
}
.p-history_sp_head_num .num {
  font-size: 3rem;
  line-height: 1;
}

.p-history-thumb-swiper_texts {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  padding-right: 3rem;
  flex: 1;
  transform: translateY(10px);
  opacity: 0;
  visibility: hidden;
  transition: transform 1s ease, opacity 1s ease, visibility 1s ease;
}
@media screen and (max-width: 767px) {
  .p-history-thumb-swiper_texts {
    padding-right: 0.8rem;
    margin-right: 0.8rem;
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }
}

.p-history-thumb-swiper_title {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  color: #f6f5b3;
  margin-bottom: 2rem;
  transform: translateY(-10px);
  opacity: 0;
  visibility: hidden;
  transition: transform 1s ease, opacity 1s ease, visibility 1s ease;
}
@media screen and (max-width: 767px) {
  .p-history-thumb-swiper_title {
    margin-bottom: 1rem;
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }
}

.p-history-thumb-swiper_text {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-history-thumb-swiper_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-history-thumb-swiper_text {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-history-thumb-swiper_text {
  line-height: 2.1111111111;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: justify;
  margin-top: -0.5555555556em;
}
@media screen and (max-width: 767px) {
  .p-history-thumb-swiper_text {
    line-height: 1.8695652174;
    margin-top: -0.4347826087em;
  }
}

/*======================================
    single
======================================*/
.single {
  position: relative;
}
.single h2 {
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.5;
  font-feature-settings: "palt";
  margin-bottom: 4rem;
}
.single h2.lg {
  font-size: 4rem;
}
@media screen and (max-width: 767px) {
  .single h2.lg {
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 767px) {
  .single h2 {
    font-size: 2rem;
    line-height: 1.5;
    margin-bottom: 2.8rem;
  }
}
.single h3 {
  font-size: 2rem;
  font-feature-settings: "palt";
  line-height: 1.5;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .single h3 {
    font-size: 1rem;
    margin-bottom: 2rem;
  }
}
.single p {
  font-size: 1.8rem;
  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: 1.2rem;
    line-height: 1.8333333333;
    margin-bottom: 1.83em;
  }
}
.single img {
  height: auto;
}

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

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

.s_bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  transform: translateY(-55rem);
  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(-3rem);
  }
}

.s_head {
  display: grid;
  grid-template-columns: 11rem auto;
  column-gap: 1rem;
  position: relative;
  z-index: 2;
  margin-bottom: 7.2rem;
}
.s_head.-white {
  color: #fff;
}
.s_head.-white .s_head_num::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
@media screen and (max-width: 767px) {
  .s_head {
    grid-template-columns: 6rem auto;
    margin-bottom: 4rem;
  }
}

.s_head_num {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 4rem;
  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.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.s_head_num.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.s_head_num::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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: 18.8rem;
    height: 18.8rem;
  }
}
.s_head_num {
  transform: translateX(-1rem);
}
@media screen and (max-width: 767px) {
  .s_head_num {
    font-size: 2rem;
    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: 3.5rem;
  line-height: 1.2;
  font-feature-settings: "palt";
}
.s_head_ttl .en {
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .s_head_ttl {
    font-size: 1.7rem;
  }
}

.s_eye {
  margin: 1.4rem 0;
}
@media screen and (max-width: 767px) {
  .s_eye {
    margin: 1rem 2rem;
  }
}

.s_introduction {
  margin-top: 5rem;
}

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

.s_contents {
  margin-top: 13rem;
}
@media screen and (max-width: 767px) {
  .s_contents {
    margin-top: 9rem;
  }
}
.s_contents .en {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
}
.s_contents .center {
  text-align: center;
}
.s_contents .right {
  text-align: right;
}
.s_contents section {
  margin-top: 13rem;
}
.s_contents section:nth-child(n+2) {
  margin-top: 19rem;
}
@media screen and (max-width: 767px) {
  .s_contents section:nth-child(n+2) {
    margin-top: 12.6rem;
  }
}
@media screen and (max-width: 767px) {
  .s_contents section {
    margin-top: 5rem;
  }
}
.s_contents section.space_md {
  margin-top: 14rem;
}
.s_contents section.space_sm {
  margin-top: 9rem;
}
@media screen and (max-width: 767px) {
  .s_contents section.space_sm {
    margin-top: 6.6rem;
  }
}
.s_contents .img_md {
  width: 100%;
  max-width: 54.6rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .s_contents .img_md {
    max-width: 27.4rem;
  }
}
.s_contents .img_md img {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.s_contents img {
  display: block;
  margin-left: -4rem;
  margin-right: -4rem;
  width: calc(100% + 8rem);
  max-width: none;
  margin-top: 5rem;
  margin-bottom: 5rem;
}
.s_contents img.img_space_md {
  margin-top: 8rem;
  margin-bottom: 7rem;
}
@media screen and (max-width: 767px) {
  .s_contents img.img_space_md {
    margin-top: 4rem;
    margin-bottom: 3rem;
  }
}
@media screen and (max-width: 767px) {
  .s_contents img {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    margin-top: 1rem;
    margin-bottom: 1rem;
  }
}
.s_contents h2,
.s_contents h3 {
  border-bottom: 1px solid #599bdf;
}
.s_contents h2 {
  margin-top: 10rem;
}
@media screen and (max-width: 767px) {
  .s_contents h2 {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
}
.s_contents h3 {
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .s_contents h3 {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
}
.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;
}

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

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

.s_pagination {
  margin-top: 22rem;
  color: #000;
}
.s_pagination.-white {
  color: #fff;
}
@media screen and (max-width: 767px) {
  .s_pagination {
    margin-top: 7rem;
  }
}

.s_pagination_wrap {
  display: grid;
  grid-template-columns: 1fr 15rem 1fr;
  column-gap: 2rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .s_pagination_wrap {
    grid-template-columns: 1fr 7.5rem 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: 21.2rem;
  transform: translate(-50%, -50%) rotate(45deg);
  background-color: #000;
}
@media screen and (max-width: 767px) {
  .s_pagination_slash::before {
    height: 10.6rem;
  }
}

.s_pagination_prev,
.s_pagination_next {
  font-size: 2.3rem;
  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:link,
.s_pagination_next:link {
  color: inherit;
}
.s_pagination_prev span.text,
.s_pagination_next span.text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  max-width: 80%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (max-width: 767px) {
  .s_pagination_prev,
  .s_pagination_next {
    font-size: 1.1rem;
  }
}
.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-horizontal.white {
  color: #fff;
}
.s_pagination_en .arrow-wrap {
  display: flex;
  align-items: center;
  width: 100%;
}
.s_pagination_en {
  /* 線＝可変 / 矢＝固定 */
}
.s_pagination_en .arrow-line {
  width: calc(100% - 2rem);
  height: 1rem;
  overflow: visible;
  transform: translateX(1px);
}
@media screen and (max-width: 767px) {
  .s_pagination_en .arrow-line {
    width: calc(100% - 1rem);
    height: 0.5rem;
  }
}
.s_pagination_en .arrow-head {
  width: 2rem;
  height: 1rem;
  flex-shrink: 0;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .s_pagination_en .arrow-head {
    width: 1rem;
    height: 0.5rem;
  }
}
.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, .s_pagination_en.show .arrow-line line {
  animation: drawLine var(--line-duration, 1.2s) linear forwards;
}
.s_pagination_en.trigger .arrow-head path, .s_pagination_en.show .arrow-head path {
  animation: drawHead var(--head-duration, 1.2s) linear forwards;
  animation-delay: calc(var(--line-duration, 1.2s) * 0.5);
}
.s_pagination_en:hover .arrow-line line {
  animation: drawLineLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.s_pagination_en:hover .arrow-head path {
  animation: drawHeadLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.s_pagination_en {
  font-size: 2rem;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: normal;
  line-height: 1;
  margin-bottom: 2.4rem;
  font-weight: 400;
  min-width: 8rem;
}
@media screen and (max-width: 767px) {
  .s_pagination_en {
    font-size: 1rem;
    margin-bottom: 1.6rem;
    min-width: 4rem;
  }
}

.s_pagination_all {
  margin-top: 5rem;
  display: block;
  text-align: right;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 2rem;
  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-horizontal.white {
  color: #fff;
}
.s_pagination_all .arrow-wrap {
  display: flex;
  align-items: center;
  width: 100%;
}
.s_pagination_all {
  /* 線＝可変 / 矢＝固定 */
}
.s_pagination_all .arrow-line {
  width: calc(100% - 2rem);
  height: 1rem;
  overflow: visible;
  transform: translateX(1px);
}
@media screen and (max-width: 767px) {
  .s_pagination_all .arrow-line {
    width: calc(100% - 1rem);
    height: 0.5rem;
  }
}
.s_pagination_all .arrow-head {
  width: 2rem;
  height: 1rem;
  flex-shrink: 0;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .s_pagination_all .arrow-head {
    width: 1rem;
    height: 0.5rem;
  }
}
.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, .s_pagination_all.show .arrow-line line {
  animation: drawLine var(--line-duration, 1.2s) linear forwards;
}
.s_pagination_all.trigger .arrow-head path, .s_pagination_all.show .arrow-head path {
  animation: drawHead var(--head-duration, 1.2s) linear forwards;
  animation-delay: calc(var(--line-duration, 1.2s) * 0.5);
}
.s_pagination_all:hover .arrow-line line {
  animation: drawLineLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.s_pagination_all:hover .arrow-head path {
  animation: drawHeadLoop var(--line-loop-duration, 2.5s) linear infinite;
}
.s_pagination_all {
  grid-column: 1/4;
  grid-row: 2/3;
  letter-spacing: normal;
  position: relative;
}
.s_pagination_all:link {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .s_pagination_all {
    font-size: 1rem;
    margin-top: 2rem;
  }
}

.s_feature.-white {
  color: #fff;
}
.s_feature .p-photo-visual,
.s_feature .p-image-visual,
.s_feature .p-font-visual {
  margin-top: 0;
  padding-top: 0;
}
.s_feature .p-photo-visual__item {
  margin-top: 0 !important;
}
@media screen and (max-width: 999.98px) {
  .s_feature .p-photo-visual.-sp-contain {
    height: auto;
  }
  .s_feature .p-photo-visual.-sp-contain img {
    object-fit: contain;
    font-family: "object-fit: contain;";
  }
}

#realbullbuster .main_bg {
  top: 8rem;
}
@media screen and (max-width: 767px) {
  #realbullbuster .main_bg {
    top: 4rem;
  }
}

/*======================================
    works
======================================*/
.p-works .page {
  padding-top: 12rem;
}
@media screen and (max-width: 767px) {
  .p-works .page {
    padding-top: 5rem;
  }
}
@media screen and (max-width: 767px) {
  .p-works .p-works-fv .t-works_lists {
    padding-right: 2rem;
  }
}

.p-works_main {
  position: relative;
  padding-bottom: 40rem;
  padding-top: 20rem;
}
@media screen and (max-width: 767px) {
  .p-works_main {
    padding-top: 10rem;
    padding-bottom: 11rem;
  }
}
.p-works_main::before {
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .p-works_main::before {
    height: 40rem;
  }
}
.p-works_main::after {
  content: "Next";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 30%);
  padding-bottom: 2rem;
  width: 28rem;
  aspect-ratio: 280/122;
  background-color: #000;
  color: #fff;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  font-size: 1.5rem;
}
@media screen and (max-width: 767px) {
  .p-works_main::after {
    width: 18.8rem;
    font-size: 1.2rem;
    aspect-ratio: 188/75;
    transform: translate(-50%, 24%);
  }
}

.p-works-fv {
  position: relative;
  z-index: 4;
}
.p-works-fv .page {
  padding-bottom: 0;
}
.p-works-fv .t-works_lists {
  position: relative;
  z-index: 2;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .p-works-fv .t-works_lists {
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
    padding-right: 4rem;
  }
  .p-works-fv .t-works_lists .t-works_list {
    width: 100%;
  }
}
.p-works-fv .t-works_lists .t-works_head {
  grid-template-columns: 7rem auto;
  column-gap: 2.4rem;
  width: fit-content;
  max-width: 100%;
}
@media screen and (max-width: 767px) {
  .p-works-fv .t-works_lists .t-works_head {
    grid-template-columns: 2rem auto;
    padding-left: 0.6rem;
    width: 100%;
  }
  .p-works-fv .t-works_lists .t-works_head .p-works_head {
    row-gap: 1rem;
    width: 100%;
  }
}
.p-works-fv .t-works_head {
  margin: 0;
}

.p-works_eye {
  margin-bottom: 3rem;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .p-works_eye {
    max-width: 24rem;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.6rem;
    margin-top: 2rem;
  }
}

.p-works_head {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
}
@media screen and (min-width: 768px) {
  .p-works_head .t-works_head_title h3 {
    font-size: 2.5rem;
  }
}

.p-works_text {
  font-size: 2.2rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
.p-works_text .hide_sp {
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .p-works_text .hide_sp {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .p-works_text .hide_pc {
    display: inline-block;
  }
}
@media screen and (max-width: 767px) {
  .p-works_text {
    font-size: 1.3rem;
    line-height: 1.4;
    letter-spacing: 0.05em;
  }
}

.p-feature_wrap {
  margin-top: 2rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-feature_wrap {
    margin-top: 0.6rem;
    padding-top: 6rem;
  }
}
.p-feature_wrap.bg-hide::before {
  background-image: none !important;
}
.p-feature_wrap.bg-hide .p-feature_wrap_text {
  color: #000;
}
.p-feature_wrap.bg-hide .p-feature_wrap_text {
  display: none;
}
.p-feature_wrap.-green::before {
  background-image: linear-gradient(to right, #cdffaf, #5ac1b3);
}
.p-feature_wrap.-gray::before {
  background-image: linear-gradient(to bottom, #bdc7d1, #506478);
}
.p-feature_wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 86.5rem;
  aspect-ratio: 1/1;
  clip-path: polygon(0 0, 0% 100%, 100% 0);
  background-image: linear-gradient(to bottom, #64a0ff 0%, #fff 35%, #ff0050 100%);
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .p-feature_wrap::before {
    width: 100%;
    max-width: 37.5rem;
  }
}
.p-feature_wrap .t-feature_thumb_pagination {
  color: #fff;
}
.p-feature_wrap .t-feature_thumb_pagination::after {
  background-image: url(../img/common/text_line_grad_white.svg);
}
@media screen and (min-width: 768px) {
  .p-feature_wrap .t-feature_thumb_pagination {
    translate: 3% 23%;
  }
  .p-feature_wrap .t-feature_thumb_pagination::after {
    transform: translate(-90%, 100%);
  }
}

.p-feature_wrap_text {
  color: #fff;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-feature-settings: "palt";
  font-size: 2.5rem;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2rem;
  line-height: 1.2;
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .p-feature_wrap_text {
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }
}

.p-works-business {
  margin-top: 29.6rem;
}
@media screen and (max-width: 767px) {
  .p-works-business {
    margin-top: 12rem;
  }
}

.p-works-business_cards {
  margin-top: 6rem;
}
@media screen and (max-width: 767px) {
  .p-works-business_cards {
    margin-top: 5.6rem;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}

.p-works-business_card {
  color: #fff;
}
@media screen and (max-width: 767px) {
  .p-works-business_card {
    max-width: 45rem;
    margin-left: auto;
    margin-right: auto;
  }
}
.p-works-business_card:nth-child(n+2) {
  margin-top: 10rem;
  position: relative;
}
.p-works-business_card:nth-child(n+2)::before, .p-works-business_card:nth-child(n+2):after {
  content: "";
  position: absolute;
  top: -5rem;
  left: 50%;
  width: 1px;
  height: 28rem;
  background-color: #c8c8c8;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-works-business_card:nth-child(n+2)::before, .p-works-business_card:nth-child(n+2):after {
    height: 21rem;
  }
}
.p-works-business_card:nth-child(n+2)::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.p-works-business_card:nth-child(n+2)::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.p-works-business_card_link {
  display: grid;
  grid-template-columns: 1fr;
  color: #fff !important;
}
.p-works-business_card_link:hover .p-works-business_card_img img {
  transform: scale(1.05);
}

.p-works-business_card_head {
  text-align: left;
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  position: relative;
  z-index: 2;
  width: 20rem;
  aspect-ratio: 1/1;
  padding: 2.4rem 3rem;
  font-size: 1.4rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  line-height: 1.3571428571;
  font-feature-settings: "palt";
  transform: translate(-3rem, -3rem);
  display: flex;
  flex-direction: column;
  align-items: start;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_head {
    font-size: 1rem;
    width: 12.5rem;
    padding: 1.8rem 1.6rem;
    transform: translateY(-40%);
  }
}
.p-works-business_card_head.-blue::after {
  background-image: linear-gradient(to bottom, #64a0ff, #616f95);
}
.p-works-business_card_head.-dep::after {
  background-image: linear-gradient(to bottom, #ffc864 50%, #ffff7d);
}
.p-works-business_card_head::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  clip-path: polygon(0 0, 0% 100%, 100% 0);
  background-image: linear-gradient(to bottom, #ff0050, #ffc7c7);
}
.p-works-business_card_head .num {
  display: inline-block;
  font-size: 5.5rem;
  line-height: 1;
  position: relative;
  z-index: 1;
}
.p-works-business_card_head .num.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-works-business_card_head .num.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-works-business_card_head .num.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-works-business_card_head .num::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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-works-business_card_head .num::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-works-business_card_head .num {
    font-size: 3rem;
  }
}

.p-works-business_card_body {
  display: grid;
  grid-template-columns: 1fr;
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
}

.p-works-business_card_contents {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  position: relative;
  z-index: 2;
  padding: 4rem;
  display: flex;
  flex-direction: column;
  row-gap: 4.6rem;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_contents {
    padding: 3.4rem 0.4rem 2.4rem;
    row-gap: 1rem;
  }
}

.p-works-business_card_img {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_img {
    aspect-ratio: 1/1;
  }
  .p-works-business_card_img img {
    height: calc(100% + 1px);
    object-fit: cover;
  }
}
.p-works-business_card_img img {
  transition: transform 0.3s ease;
}

.p-works-business_card_texts {
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.p-works-business_card_texts .p-works-business_text {
  margin-top: 4rem;
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_texts .p-works-business_text {
    margin-top: 1rem;
    padding: 0 0.5em;
    width: 94%;
  }
}

.p-works-business_card_ttl {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.p-works-business_card_ttl p {
  font-size: 7.5rem;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  line-height: 0.8666666667;
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_ttl p {
    font-size: 4rem;
    letter-spacing: 0.05em;
  }
}
.p-works-business_card_ttl p span.sm {
  font-size: 2rem;
  display: block;
  margin-top: 0.6rem;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_ttl p span.sm {
    font-size: 1.2rem;
  }
}
.p-works-business_card_ttl h3 {
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_ttl h3 {
    font-size: 2rem;
    line-height: 1.3333333333;
  }
}

.p-works-business_text {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-works-business_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-works-business_text {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-works-business_text {
  line-height: 1.5555555556;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .p-works-business_text.-sm {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) {
  .p-works-business_text {
    text-align: justify;
  }
}

.p-works-business_card_more {
  margin-top: auto;
  color: #fff;
}
@media screen and (min-width: 768px) {
  .p-works-business_card_more {
    font-size: 2rem;
    max-width: 11rem;
  }
}
@media screen and (max-width: 767px) {
  .p-works-business_card_more {
    font-size: 1rem;
  }
}

.p-works-department {
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-works-department {
    margin: 11rem -4rem 0;
    padding: 5rem 4rem 0;
    overflow: hidden;
  }
}
@media screen and (max-width: 767px) {
  .p-works-department {
    margin-top: 10rem;
  }
}
.p-works-department.-green::after {
  background-image: linear-gradient(to bottom, #64c7c7, #009ea7 30%);
}
.p-works-department.-green .p-works-department_ttl {
  color: #fff;
}
.p-works-department.-green .p-works-department_ttl .text::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-works-department::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 37.5rem;
  aspect-ratio: 1/1;
  z-index: -1;
  clip-path: polygon(0 0, 0% 100%, 100% 0);
  background-image: linear-gradient(to bottom, #ffff7d, #ffc764 30%);
}
@media screen and (max-width: 767px) {
  .p-works-department::after {
    width: 18.8rem;
    transform: translate(-4.665vw, -6%);
  }
}

.p-works-department_ttl {
  position: relative;
  z-index: 2;
}
.p-works-department_ttl .text {
  position: relative;
  z-index: 1;
}
.p-works-department_ttl .text.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-works-department_ttl .text.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-works-department_ttl .text.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-works-department_ttl .text::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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-works-department_ttl .text::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
.p-works-department_ttl .text {
  font-size: 2rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  display: inline-block;
  padding-bottom: 0.4rem;
  letter-spacing: normal;
  line-height: 1;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-works-department_ttl .text {
    font-size: 1rem;
  }
}

.p-works-department_wrap {
  margin-top: 1.4rem;
  display: grid;
  grid-template-columns: 46.94% auto;
  column-gap: 3rem;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-works-department_wrap {
    margin-top: 0;
    display: block;
  }
}

.p-works-department_head {
  display: grid;
  grid-template-columns: 1fr;
  color: #fff;
}
.p-works-department_head:link {
  color: #fff;
}
.p-works-department_head .p-works-business_card_ttl h3 {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .p-works-department_head .p-works-business_card_ttl h3 {
    margin-top: 0;
  }
}
.p-works-department_head:hover {
  opacity: 1;
}
.p-works-department_head:hover .p-works-department_img img {
  transform: scale(1.05);
}

.p-works-department_img {
  grid-column: 1/2;
  grid-row: 1/2;
  overflow: hidden;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 767px) {
  .p-works-department_img {
    aspect-ratio: 680/460;
  }
  .p-works-department_img .p-works-business_card_more {
    display: none;
  }
}
.p-works-department_img img {
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.p-works-department_head_texts {
  grid-column: 1/2;
  grid-row: 1/2;
  position: relative;
  z-index: 2;
  padding: 6rem 1rem 4rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

@media screen and (max-width: 767px) {
  .p-works-department_contents {
    margin-top: 2.8rem;
    text-align: center;
  }
}

.p-works-department_text {
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-works-department_text {
    line-height: 1.8695652174;
  }
}

.p-works-business_card_more_sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-works-business_card_more_sp {
    display: block;
    margin-top: 2rem;
  }
}

.p-works-business_section .p-works-business_text {
  line-height: 2.1111111111;
}
@media screen and (max-width: 767px) {
  .p-works-business_section .p-works-business_text {
    line-height: 1.8695652174;
    text-align: justify;
  }
}

.p-works-related {
  margin-top: 17rem;
}
@media screen and (max-width: 767px) {
  .p-works-related {
    margin-top: 8rem;
  }
}

.p-works-related_img {
  display: block;
  max-width: 68rem;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  margin-bottom: 2rem;
}
@media screen and (max-width: 767px) {
  .p-works-related_img {
    margin-bottom: 1rem;
  }
}
.p-works-related_img .imgIn {
  width: 100%;
}
.p-works-related_img .logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80.88%;
}

.p-works-legacy {
  margin-top: 4.2rem;
}
@media screen and (max-width: 767px) {
  .p-works-legacy {
    margin-top: 1.6rem;
    margin-bottom: 10rem;
  }
}

.p-works-legacy_links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 2rem;
  margin-bottom: 2rem;
}
@media screen and (max-width: 767px) {
  .p-works-legacy_links {
    column-gap: 1.4rem;
    margin-bottom: 1rem;
  }
}

.p-works-legacy_link {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr 1fr;
  background-image: linear-gradient(135deg, #ff9fb3, #ffdb64);
  text-align: center;
  height: 9rem;
}
.p-works-legacy_link:link {
  color: #000;
}
@media screen and (max-width: 767px) {
  .p-works-legacy_link {
    height: 4.6rem;
  }
}

.p-works-legacy_link_text_en {
  font-size: 2rem;
  letter-spacing: normal;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .p-works-legacy_link_text_en {
    font-size: 1.2rem;
  }
}
.p-works-legacy_link_text_en .arrow-horizontal {
  transform: translateY(50%);
}
.p-works-legacy_link_text_jp {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .p-works-legacy_link_text_jp {
    font-size: 1rem;
  }
}

.p-works-movie {
  margin-top: 9rem;
}
@media screen and (max-width: 767px) {
  .p-works-movie {
    margin-top: 4rem;
  }
}

.p-works-movie_wrap {
  background-color: #000;
}
.p-works-movie_wrap .youtube {
  max-width: 86rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .p-works-movie_wrap .youtube {
    max-width: 86.76%;
  }
}

.youtube {
  aspect-ratio: 16/9;
}
.youtube iframe {
  width: 100%;
  height: 100%;
}

.p-works-next {
  padding: 15rem 0 11rem;
  display: block;
}
.p-works-next:link {
  color: inherit;
}
.p-works-next:hover {
  opacity: 1;
}
@media screen and (max-width: 767px) {
  .p-works-next {
    padding: 7rem 0 6rem;
  }
}

.p-works-next_head {
  font-size: 1.5rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
  line-height: 1;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-works-next_head {
    font-size: 1rem;
  }
}
.p-works-next_head .num {
  display: block;
  font-size: 5.5rem;
  margin-top: 0.8rem;
  position: relative;
  z-index: 1;
}
.p-works-next_head .num.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-works-next_head .num.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-works-next_head .num.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-works-next_head .num::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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-works-next_head .num::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-works-next_head .num {
    font-size: 3rem;
  }
}

.p-works-next_ttl {
  text-align: center;
  margin-top: 8rem;
  display: flex;
  flex-direction: column;
  row-gap: 3rem;
}
@media screen and (max-width: 767px) {
  .p-works-next_ttl {
    font-size: 4rem;
    row-gap: 1.8rem;
    margin-top: 3.6rem;
  }
}
.p-works-next_ttl p {
  font-size: 5.5rem;
  font-feature-settings: "palt";
  letter-spacing: normal;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .p-works-next_ttl p {
    font-size: 3rem;
  }
}
.p-works-next_ttl p .sm {
  display: block;
  font-size: 1.5rem;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .p-works-next_ttl p .sm {
    font-size: 1rem;
  }
}
.p-works-next_ttl h2 {
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-works-next_ttl h2 {
    font-size: 2rem;
    letter-spacing: 0.05em;
  }
}

.p-works-next_text {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-works-next_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-works-next_text {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-works-next_text {
  font-family: "TsukuGoPro", sans-serif;
  font-weight: 600;
  text-align: center;
  line-height: 1.5555555556;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .p-works-next_text {
    margin-top: 0.6rem;
  }
}

.p-works-next_more {
  margin-top: 11rem;
}
@media screen and (max-width: 767px) {
  .p-works-next_more {
    margin-top: 1rem;
  }
}

.p-innovator-feature2 {
  margin-top: 10rem;
}

/*======================================
    Feature
======================================*/
.p-feature {
  margin-top: 4rem;
}
@media screen and (max-width: 767px) {
  .p-feature {
    margin-top: 0rem;
  }
}

.p-feature_columns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 7rem;
  align-items: start;
}

.p-works-feature_cards {
  margin-top: 14rem;
}
@media screen and (max-width: 767px) {
  .p-works-feature_cards {
    margin-top: 7rem;
  }
}

.p-feature_cards {
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 7rem;
  row-gap: 10rem;
}
@media screen and (max-width: 767px) {
  .p-feature_cards {
    grid-template-columns: 1fr;
    padding-right: 1rem;
    row-gap: 4rem;
    max-width: 50rem;
    margin-left: auto;
    margin-right: auto;
  }
}

.p-feature_card {
  overflow: hidden;
  padding-top: 1.5rem;
  padding-left: 2.4rem;
  position: relative;
}
.p-feature_card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 26.2rem;
  aspect-ratio: 1/1;
  clip-path: polygon(100% 0, 0 0, 0 100%);
  background: #000;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .p-feature_card::before {
    max-width: 18.8rem;
  }
}
.p-feature_card.-no001::before {
  background-image: linear-gradient(to bottom, #3a7175, #78c8ff);
}
.p-feature_card.-no002::before {
  background-image: linear-gradient(to bottom, #ff6482, #ffa078);
}
.p-feature_card.-no003::before {
  background-image: linear-gradient(to bottom, #5ac1b3, #cdffaf);
}
.p-feature_card.-no004::before {
  background-image: linear-gradient(to bottom, #dc968c, #96c8ff);
}
.p-feature_card.-no005::before {
  background-image: linear-gradient(to bottom, #5a646e, #110b0f);
}
.p-feature_card.-no006::before {
  background-image: linear-gradient(to bottom, #c8dc32, #788d96);
}
.p-feature_card.-no007::before {
  background-image: linear-gradient(to bottom, #39445b, #17273a);
}
.p-feature_card.-no008::before {
  background-image: linear-gradient(to bottom, #64ffff, #00c8a0);
}
.p-feature_card.-no009::before {
  background-image: linear-gradient(to bottom, #00dcd2, #00b4aa);
}
.p-feature_card.-no010::before {
  background-image: linear-gradient(to bottom, #bdc7d1, #a0d2f0);
}
.p-feature_card.-no011::before {
  background-image: linear-gradient(to bottom, #ff0050, #ffc7c7);
}
.p-feature_card.-no012::before {
  background-image: linear-gradient(to bottom, #00a0e8, #59bfd6);
}
.p-feature_card.-no013::before {
  background-image: linear-gradient(to bottom, #3c82b4, #ffff97);
}
.p-feature_card.-no014::before {
  background-image: linear-gradient(to bottom, #ffdc00, #c8ff64);
}
.p-feature_card.-no015::before {
  background-image: linear-gradient(to bottom, #6475d4, #6475d4, #7c6bd6);
}
.p-feature_card.-no016::before {
  background-image: linear-gradient(to bottom, #bdc7d1, #506478);
}

.p-feature_card_link {
  display: block;
}
.p-feature_card_link.coming {
  pointer-events: none;
  cursor: default;
}
.p-feature_card_link.coming .p-feature_card_img {
  position: relative;
}
.p-feature_card_link.coming .p-feature_card_img::before, .p-feature_card_link.coming .p-feature_card_img::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.p-feature_card_link.coming .p-feature_card_img::before {
  background-color: #5a646e;
  mix-blend-mode: multiply;
  z-index: 1;
}
.p-feature_card_link.coming .p-feature_card_img::after {
  content: "Coming soon";
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-feature-settings: "palt";
  color: #fff;
  font-weight: 400;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-feature_card_link.coming .p-feature_card_img::after {
    font-size: 1.2rem;
  }
}
.p-feature_card_link.coming .p-feature_card_more {
  display: none;
}
.p-feature_card_link:link {
  color: inherit;
}
.p-feature_card_link:hover {
  opacity: 1;
}

.p-feature_card_head {
  color: #fff;
  position: relative;
  z-index: 1;
}
.p-feature_card_head.target.trigger::before {
  animation: lineIn 0.5s ease 0.5s forwards;
}
.p-feature_card_head.line_black::before {
  background-image: url(../img/common/text_line_black.svg);
}
.p-feature_card_head.line_white::before {
  background-image: url(../img/common/text_line_grad_white.svg);
}
.p-feature_card_head::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 37.5rem;
  height: 37.5rem;
  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-feature_card_head::before {
    width: 18.8rem;
    height: 18.8rem;
  }
}
.p-feature_card_head {
  position: relative;
  z-index: 2;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 1.5rem;
  font-feature-settings: "palt";
  line-height: 0.8666666667;
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .p-feature_card_head {
    font-size: 1rem;
  }
}
.p-feature_card_head::before {
  background-image: url(../img/common/text_line_grad_white.svg);
  left: 4rem;
  z-index: 2;
}
.p-feature_card_head .num {
  display: block;
  font-size: 3.5rem;
  font-feature-settings: "palt";
  margin-top: 0.6rem;
}
@media screen and (max-width: 767px) {
  .p-feature_card_head .num {
    font-size: 2rem;
    margin-top: 0.4rem;
  }
}

.p-feature_card_img {
  aspect-ratio: 420/280;
  overflow: hidden;
  width: 100%;
  margin-top: 0.6rem;
}
.p-feature_card_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background-color: gray;
}

.p-feature_card_body {
  padding: 2rem 0;
}
@media screen and (max-width: 767px) {
  .p-feature_card_body {
    padding: 1.6rem 0;
  }
}
.p-feature_card_body.trigger .p-feature_card_title,
.p-feature_card_body.trigger .p-feature_card_texts {
  transform: translateY(0);
  opacity: 1;
}

.p-feature_card_title {
  text-align: center;
  font-size: 2rem;
  font-feature-settings: "palt";
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: normal;
  transform: translateY(-1rem);
  opacity: 0;
  transition: transform 0.3s ease 0.5s, opacity 0.3s ease 0.5s;
}
@media screen and (max-width: 767px) {
  .p-feature_card_title {
    font-size: 1.3rem;
  }
}
.p-feature_card_title.en,
.p-feature_card_title .en {
  font-weight: 400;
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-weight: 400;
}
.p-feature_card_title.en .lg, .p-feature_card_title.en.lg,
.p-feature_card_title .en .lg,
.p-feature_card_title .en.lg {
  font-weight: 400;
}
.p-feature_card_title .lg {
  display: block;
  font-size: 5.5rem;
  line-height: 1.1454545455;
  font-weight: 600;
  margin-top: 1.4rem;
}
@media screen and (max-width: 767px) {
  .p-feature_card_title .lg {
    font-size: 4rem;
    margin-top: 0.6rem;
  }
}

.p-feature_card_texts {
  margin-top: 1rem;
  transform: translateY(1rem);
  opacity: 0;
  transition: transform 0.3s ease 0.5s, opacity 0.3s ease 0.5s;
}

.p-feature_card_text {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-feature_card_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-feature_card_text {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-feature_card_text {
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.2777777778;
  text-align: center;
}

.p-feature_card_more {
  margin-top: 4.6rem;
}
@media screen and (max-width: 767px) {
  .p-feature_card_more {
    margin-top: 3rem;
  }
}

.p-feature_buttons {
  width: max-content;
  display: flex;
  column-gap: 2rem;
}
@media screen and (max-width: 767px) {
  .p-feature_buttons {
    column-gap: 1rem;
  }
}

.tab-button-swiper {
  overflow: visible;
}

.tab-button {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.65;
  font-feature-settings: "palt";
  letter-spacing: normal;
  width: fit-content;
  cursor: pointer;
  padding: 2em 0;
}
.tab-button::before {
  content: "";
  position: absolute;
  bottom: 2em;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform var(--underline-duration, 0.5s) ease;
}
.tab-button.swiper-slide-thumb-active::before {
  transform-origin: left top;
  transform: scale(1, 1);
}
@media screen and (max-width: 767px) {
  .tab-button {
    font-size: 1rem;
  }
}

.tab-area-swiper {
  overflow: visible;
}
.tab-area-swiper .tab-area {
  background-color: #fff;
}

.p-feature-tab-area {
  margin-top: 5rem;
}
.p-feature-tab-area .swiper-slide {
  opacity: 0;
  visibility: hidden;
}
.p-feature-tab-area .swiper-slide-active {
  opacity: 1;
  visibility: visible;
}
@media screen and (min-width: 768px) {
  .p-feature-tab-area {
    padding-bottom: 15rem;
  }
}
@media screen and (max-width: 767px) {
  .p-feature-tab-area {
    margin-top: 1rem;
  }
}

/*======================================
    News / IR
======================================*/
.a-head {
  margin-bottom: 10rem;
}
@media screen and (max-width: 767px) {
  .a-head {
    margin-bottom: 6rem;
  }
}

.a-head_ttl {
  font-size: 3rem;
  font-feature-settings: "palt";
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  text-align: center;
  font-weight: 400;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .a-head_ttl {
    font-size: 1.5rem;
  }
}
.a-head_ttl span.sm {
  display: block;
  font-family: "TsukuGoPro", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  font-size: 2.3rem;
  font-weight: 600;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .a-head_ttl span.sm {
    font-size: 1.2rem;
  }
}

.a-nav_lists {
  display: flex;
  flex-wrap: wrap;
}

.a-nav_list {
  flex: 1;
}

.a-nav_list_link {
  display: block;
  text-align: center;
  position: relative;
  font-family: "Gothic725", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  font-feature-settings: "palt";
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .a-nav_list_link {
    font-size: 0.9rem;
  }
}
.a-nav_list_link::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #d9d9d9;
}
.a-nav_list_link:link {
  color: #000;
}
.a-nav_list_link.-current::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #000;
  transform: translateY(25%);
}

.a-pagination {
  margin-top: 10rem;
  padding: 0 4rem;
}
@media screen and (max-width: 767px) {
  .a-pagination {
    padding: 0 3rem;
  }
}
.a-pagination .wp-pagenavi {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: 2.8rem;
}
@media screen and (max-width: 767px) {
  .a-pagination .wp-pagenavi {
    column-gap: 1.4rem;
  }
}
.a-pagination .paginationjs-prev,
.a-pagination .paginationjs-next {
  width: 4rem;
}
.a-pagination .paginationjs-prev .arrow-horizontal,
.a-pagination .paginationjs-next .arrow-horizontal {
  position: static;
  transform: translateY(0);
}
@media screen and (max-width: 767px) {
  .a-pagination .paginationjs-prev .arrow-horizontal,
  .a-pagination .paginationjs-next .arrow-horizontal {
    transform: translateY(-50%);
  }
}
.a-pagination .paginationjs-prev .arrow-horizontal.reverse,
.a-pagination .paginationjs-next .arrow-horizontal.reverse {
  transform: translateY(0) scale(-1, 1);
}
.a-pagination .paginationjs-prev a,
.a-pagination .paginationjs-next a {
  color: inherit;
}
.a-pagination .paginationjs-prev {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
}
.a-pagination .paginationjs-next {
  grid-column: 3/4;
  grid-row: 1/2;
  min-width: 0;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .a-pagination {
    margin-top: 3rem;
  }
}
.a-pagination .pagination {
  grid-column: 2/3;
  grid-row: 1/2;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  column-gap: 2.8rem;
}
@media screen and (max-width: 767px) {
  .a-pagination .pagination {
    column-gap: 1.4rem;
  }
}
.a-pagination .pagination li {
  font-size: 1.8rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-feature-settings: "palt";
  letter-spacing: normal;
}
.a-pagination .pagination li a {
  color: #d9d9d9;
}
@media screen and (max-width: 767px) {
  .a-pagination .pagination li {
    font-size: 1.2rem;
  }
}

.s-ttl {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.3333333333;
  font-feature-settings: "palt";
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .s-ttl {
    font-size: 1.5rem;
  }
}

.s-head {
  margin-top: 10rem;
}
@media screen and (max-width: 767px) {
  .s-head {
    margin-top: 5rem;
  }
}

.s-contents * {
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: justify;
}
.s-contents p {
  font-weight: 600;
}

.p-banner_items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 4rem;
  row-gap: 4rem;
  margin-top: 10rem;
}
@media screen and (max-width: 767px) {
  .p-banner_items {
    grid-template-columns: 1fr;
    row-gap: 2rem;
    margin-top: 6rem;
    padding: 0 3rem;
  }
}

.p-banner_item {
  border: 1px solid #000;
}

.p-banner_item_link {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 12rem;
  padding: 1.6rem 1rem;
}
.p-banner_item_link:link {
  color: inherit;
}
@media screen and (max-width: 767px) {
  .p-banner_item_link {
    padding: 0.8rem 1rem;
    min-height: 6rem;
  }
}

.p-banner_item_texts {
  text-align: center;
}
.p-banner_item_texts dt {
  font-size: 2.3rem;
  font-weight: 700;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-banner_item_texts dt {
    font-size: 1.2rem;
  }
}
.p-banner_item_texts dd {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2777777778;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .p-banner_item_texts dd {
    font-size: 0.9rem;
    margin-top: 0.4rem;
  }
}

.p-ir .p-table-box__item:nth-child(n+2) {
  margin-top: 10rem !important;
}
@media screen and (max-width: 767px) {
  .p-ir .p-table-box__item:nth-child(n+2) {
    margin-top: 6rem !important;
  }
}
.p-ir .c-light-title,
.p-ir .c-normal-title,
.p-ir .c-option-table01 table tr th span.lg {
  font-size: 2rem;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin-bottom: 1rem;
  text-align: left;
}
.p-ir .c-light-title.-hide,
.p-ir .c-normal-title.-hide,
.p-ir .c-option-table01 table tr th span.lg.-hide {
  display: none;
}
@media screen and (max-width: 767px) {
  .p-ir .c-light-title,
  .p-ir .c-normal-title,
  .p-ir .c-option-table01 table tr th span.lg {
    font-size: 1.5rem;
  }
}
.p-ir .c-light-title span.num,
.p-ir .c-normal-title span.num,
.p-ir .c-option-table01 table tr th span.lg span.num {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
}
.p-ir .c-dl,
.p-ir .c-option-table01 {
  border-color: #000;
}
.p-ir .c-dl.-w178 dl,
.p-ir .c-option-table01.-w178 dl {
  display: flex;
  flex-direction: column;
}
.p-ir .c-dl.-w178 dl dt,
.p-ir .c-option-table01.-w178 dl dt {
  padding-bottom: 0;
}
.p-ir .c-dl.-w178 dl dd,
.p-ir .c-option-table01.-w178 dl dd {
  padding-top: 1rem;
  padding-left: 0;
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl.-w178 dl dd,
  .p-ir .c-option-table01.-w178 dl dd {
    padding-top: 0.6rem;
  }
}
.p-ir .c-dl dl,
.p-ir .c-option-table01 dl {
  border-bottom: 1px solid #000;
  position: relative;
}
.p-ir .c-dl dl.border::before,
.p-ir .c-option-table01 dl.border::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 25rem;
  height: 2px;
  background-color: #000;
  transform: translateY(75%);
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl dl.border::before,
  .p-ir .c-option-table01 dl.border::before {
    width: 12.5rem;
  }
}
.p-ir .c-dl dl.border:first-child,
.p-ir .c-option-table01 dl.border:first-child {
  border-top: 1px solid #000;
}
.p-ir .c-dl dl.border:first-child::after,
.p-ir .c-option-table01 dl.border:first-child::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 25rem;
  height: 2px;
  background-color: #000;
  transform: translateY(-75%);
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl dl.border:first-child::after,
  .p-ir .c-option-table01 dl.border:first-child::after {
    width: 12.5rem;
  }
}
.p-ir .c-dl dl.-row,
.p-ir .c-option-table01 dl.-row {
  display: flex;
  flex-direction: column;
}
.p-ir .c-dl dl.-row dt,
.p-ir .c-option-table01 dl.-row dt {
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl dl.-row dt,
  .p-ir .c-option-table01 dl.-row dt {
    padding-top: 0.4rem;
  }
}
.p-ir .c-dl dl.-row dd,
.p-ir .c-option-table01 dl.-row dd {
  padding-left: 0;
  padding-top: 0;
}
.p-ir .c-dl th,
.p-ir .c-dl td,
.p-ir .c-dl dt,
.p-ir .c-dl dd,
.p-ir .c-option-table01 th,
.p-ir .c-option-table01 td,
.p-ir .c-option-table01 dt,
.p-ir .c-option-table01 dd {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-ir .c-dl th,
  .p-ir .c-dl td,
  .p-ir .c-dl dt,
  .p-ir .c-dl dd,
  .p-ir .c-option-table01 th,
  .p-ir .c-option-table01 td,
  .p-ir .c-option-table01 dt,
  .p-ir .c-option-table01 dd {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl th,
  .p-ir .c-dl td,
  .p-ir .c-dl dt,
  .p-ir .c-dl dd,
  .p-ir .c-option-table01 th,
  .p-ir .c-option-table01 td,
  .p-ir .c-option-table01 dt,
  .p-ir .c-option-table01 dd {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-ir .c-dl th,
.p-ir .c-dl td,
.p-ir .c-dl dt,
.p-ir .c-dl dd,
.p-ir .c-option-table01 th,
.p-ir .c-option-table01 td,
.p-ir .c-option-table01 dt,
.p-ir .c-option-table01 dd {
  line-height: 1.652173913;
  background-color: unset;
  color: inherit;
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
  border-color: #000;
  word-break: break-all;
  width: auto;
}
.p-ir .c-dl th span.sm,
.p-ir .c-dl td span.sm,
.p-ir .c-dl dt span.sm,
.p-ir .c-dl dd span.sm,
.p-ir .c-option-table01 th span.sm,
.p-ir .c-option-table01 td span.sm,
.p-ir .c-option-table01 dt span.sm,
.p-ir .c-option-table01 dd span.sm {
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl th span.sm,
  .p-ir .c-dl td span.sm,
  .p-ir .c-dl dt span.sm,
  .p-ir .c-dl dd span.sm,
  .p-ir .c-option-table01 th span.sm,
  .p-ir .c-option-table01 td span.sm,
  .p-ir .c-option-table01 dt span.sm,
  .p-ir .c-option-table01 dd span.sm {
    font-size: 1rem;
  }
}
.p-ir .c-dl th span.md,
.p-ir .c-dl td span.md,
.p-ir .c-dl dt span.md,
.p-ir .c-dl dd span.md,
.p-ir .c-option-table01 th span.md,
.p-ir .c-option-table01 td span.md,
.p-ir .c-option-table01 dt span.md,
.p-ir .c-option-table01 dd span.md {
  font-size: 0.6em;
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl th span.md.-pc,
  .p-ir .c-dl td span.md.-pc,
  .p-ir .c-dl dt span.md.-pc,
  .p-ir .c-dl dd span.md.-pc,
  .p-ir .c-option-table01 th span.md.-pc,
  .p-ir .c-option-table01 td span.md.-pc,
  .p-ir .c-option-table01 dt span.md.-pc,
  .p-ir .c-option-table01 dd span.md.-pc {
    font-size: inherit;
  }
}
.p-ir .c-dl table,
.p-ir .c-option-table01 table {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
}
.p-ir .c-dl table tr:first-child th,
.p-ir .c-option-table01 table tr:first-child th {
  position: relative;
}
.p-ir .c-dl table tr:first-child th::before,
.p-ir .c-option-table01 table tr:first-child th::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 25rem;
  height: 2px;
  background-color: #000;
  transform: translateY(75%);
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl table tr:first-child th::before,
  .p-ir .c-option-table01 table tr:first-child th::before {
    width: 12.5rem;
  }
}
.p-ir .c-dl table td,
.p-ir .c-option-table01 table td {
  padding-left: 2rem;
}
.p-ir .c-dl dt,
.p-ir .c-dl th,
.p-ir .c-option-table01 dt,
.p-ir .c-option-table01 th {
  width: 25rem;
  padding-left: 0;
}
@media screen and (max-width: 767px) {
  .p-ir .c-dl dt,
  .p-ir .c-dl th,
  .p-ir .c-option-table01 dt,
  .p-ir .c-option-table01 th {
    width: 16rem;
  }
}
.p-ir .p-caution {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .p-ir .p-caution {
    margin-top: 1rem;
  }
}
.p-ir .p-caution .p-caution__contents {
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .p-ir .p-caution .p-caution__contents {
    margin-top: 0.6rem;
  }
}
.p-ir .p-caution .p-caution__title,
.p-ir .p-caution .p-caution__contents p {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.9;
}
@media screen and (max-width: 767px) {
  .p-ir .p-caution .p-caution__title,
  .p-ir .p-caution .p-caution__contents p {
    font-size: 1rem;
  }
}
.p-ir .c-schedule-table table {
  border-color: #000;
}
.p-ir .c-schedule-table table tr th:first-child {
  padding-left: 0;
}
.p-ir .c-schedule-table table tr th,
.p-ir .c-schedule-table table tr td {
  background-color: unset;
  font-weight: 600;
  border-color: #000;
}
.p-ir .c-schedule-table__option p {
  justify-content: start;
}
.p-ir .p-ir_button {
  margin-top: 4rem;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .p-ir .p-ir_button {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
}
.p-ir .c-normal-title.-border {
  border-bottom: 1px solid #000;
  padding-bottom: 1rem;
}
.p-ir .text-left {
  text-align: left;
}
.p-ir .ir_text,
.p-ir .p-box01__text .ir_text,
.p-ir .p-box01__text.-tac p {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-ir .ir_text,
  .p-ir .p-box01__text .ir_text,
  .p-ir .p-box01__text.-tac p {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-ir .ir_text,
  .p-ir .p-box01__text .ir_text,
  .p-ir .p-box01__text.-tac p {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-ir .ir_text,
.p-ir .p-box01__text .ir_text,
.p-ir .p-box01__text.-tac p {
  line-height: 1.652173913;
  margin-bottom: 1.5em;
  color: inherit;
}

.ir-bottom {
  margin-top: 10rem;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .ir-bottom {
    margin-top: 6rem;
  }
}

/*======================================
    Recruit
======================================*/
.page .p-recruit {
  padding-bottom: 0;
}
.page .p-recruit .p-recruit__text {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .page .p-recruit .p-recruit__text {
    margin-top: 1rem;
  }
}
.page .p-recruit .p-recruit__text,
.page .p-recruit .p-recruit__text p {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-recruit .p-recruit__text,
  .page .p-recruit .p-recruit__text p {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-recruit .p-recruit__text,
  .page .p-recruit .p-recruit__text p {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.page .p-recruit .p-recruit__text,
.page .p-recruit .p-recruit__text p {
  line-height: 1.652173913;
}
.page .p-recruit .c-mid-title {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .page .p-recruit .c-mid-title {
    font-size: 1.5rem;
  }
}
.page .p-recruit .recruitForm-tab .p-recruit__form__tab_label {
  background-color: unset;
  border-bottom: 1px solid #d9d9d9;
  position: relative;
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-recruit .recruitForm-tab .p-recruit__form__tab_label {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-recruit .recruitForm-tab .p-recruit__form__tab_label {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
@media screen and (max-width: 767px) {
  .page .p-recruit .recruitForm-tab .p-recruit__form__tab_label {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
}
.page .p-recruit .recruitForm-tab .p-recruit__form__tab_label::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  transform: translateY(75%);
  visibility: hidden;
  background-color: #000;
  z-index: 2;
}
.page .p-recruit .recruitForm-tab .p-recruit__form__tab_label:has(:checked) {
  color: #000;
  background-color: unset;
}
.page .p-recruit .recruitForm-tab .p-recruit__form__tab_label:has(:checked)::after {
  visibility: visible;
}

/*======================================
    contact
======================================*/
.page .p-contact {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
}
.page .p-contact .c-contact-dl {
  border: none;
}
.page .p-contact .c-contact-dl dl {
  border: none;
  display: block;
}
@media screen and (min-width: 768px) {
  .page .p-contact .c-contact-dl dl:nth-child(n+2) {
    margin-top: 2rem;
  }
}
.page .p-contact .c-contact-dl dl dt {
  background-color: unset;
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-contact .c-contact-dl dl dt {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dt {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.page .p-contact .c-contact-dl dl dt {
  font-weight: 700;
  border-bottom: 1px solid #000;
  width: 100%;
  padding-left: 0;
}
.page .p-contact .c-contact-dl dl dt.need-dt {
  padding-left: 0;
  display: flex;
  flex-direction: row-reverse;
  justify-content: start;
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dt.need-dt {
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
  }
}
.page .p-contact .c-contact-dl dl dt.need-dt span.c-icon-need {
  margin-left: 0.2rem;
  position: relative;
  background-color: unset;
  color: rgba(255, 255, 255, 0);
  display: inline-block;
  aspect-ratio: 1/1;
  width: 1rem;
  background: url(../img/pages/icon_contact_required.svg) no-repeat center/contain;
  transform: translateY(-25%);
  top: unset;
  left: unset;
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dt.need-dt span.c-icon-need {
    width: 0.6rem;
  }
}
.page .p-contact .c-contact-dl dl dd {
  padding-left: 0;
  padding-right: 0;
  width: 100%;
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-contact .c-contact-dl dl dd {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.page .p-contact .c-contact-dl dl dd input,
.page .p-contact .c-contact-dl dl dd select,
.page .p-contact .c-contact-dl dl dd textarea {
  border: none;
  border-bottom: 1px solid #d9d9d9;
  font-family: "TsukuGoPro", sans-serif;
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-contact .c-contact-dl dl dd input,
  .page .p-contact .c-contact-dl dl dd select,
  .page .p-contact .c-contact-dl dl dd textarea {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd input,
  .page .p-contact .c-contact-dl dl dd select,
  .page .p-contact .c-contact-dl dl dd textarea {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.page .p-contact .c-contact-dl dl dd input,
.page .p-contact .c-contact-dl dl dd select,
.page .p-contact .c-contact-dl dl dd textarea {
  padding-left: 0;
  width: 100%;
  flex: 1;
}
.page .p-contact .c-contact-dl dl dd .dd-input,
.page .p-contact .c-contact-dl dl dd .dd-input-half {
  border: none;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-contact .c-contact-dl dl dd .dd-input,
  .page .p-contact .c-contact-dl dl dd .dd-input-half {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd .dd-input,
  .page .p-contact .c-contact-dl dl dd .dd-input-half {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.page .p-contact .c-contact-dl dl dd .dd-input .mwform-file-delete,
.page .p-contact .c-contact-dl dl dd .dd-input-half .mwform-file-delete {
  display: flex;
  align-items: center;
}
.page .p-contact .c-contact-dl dl dd .dd-input .error,
.page .p-contact .c-contact-dl dl dd .dd-input-half .error {
  width: 100%;
}
.page .p-contact .c-contact-dl dl dd .dd-input-half {
  width: 50%;
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd .dd-input-half {
    width: 100%;
  }
}
.page .p-contact .c-contact-dl dl dd input[type=file] {
  background-color: unset;
  border: none;
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd .dd-check {
    padding-left: 1.6rem;
  }
}
.page .p-contact .c-contact-dl dl dd .dd-check input[type=checkbox] + .mwform-checkbox-field-text {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-contact .c-contact-dl dl dd .dd-check input[type=checkbox] + .mwform-checkbox-field-text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd .dd-check input[type=checkbox] + .mwform-checkbox-field-text {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd .dd-check input[type=checkbox] + .mwform-checkbox-field-text::before {
    top: 0.4em;
    width: 1rem;
    height: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .c-contact-dl dl dd .dd-check input[type=checkbox] + .mwform-checkbox-field-text::after {
    top: 0.2em;
    left: 0;
  }
}
.page .p-contact .c-contact-dl dl dd .c-place-input .c-place-input__item {
  align-items: center;
}
.page .p-contact .c-contact-dl dl dd .c-place-input .c-place-input__name {
  font-weight: 600;
}
.page .p-contact .p-contact__input {
  width: 100%;
  max-width: 56rem;
  border: 1px solid #000;
  color: #000;
  display: grid;
  grid-template-columns: 1fr;
  height: 10rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .page .p-contact .p-contact__input {
    max-width: 28rem;
    height: 5rem;
  }
}
.page .p-contact .p-contact__input .c-primary-btn {
  background-color: unset;
  color: inherit;
  width: 100%;
  border: none;
  font-family: "TsukuGoPro", sans-serif;
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-contact .p-contact__input .c-primary-btn {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .p-contact__input .c-primary-btn {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.page .p-contact .p-contact__input .c-primary-btn {
  font-weight: 700;
  height: 100%;
  grid-column: 1/2;
  grid-row: 1/2;
  padding-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .page .p-contact .p-contact__input .c-primary-btn {
    padding-bottom: 0.4rem;
  }
}
.page .p-contact .p-contact__input .arrow-horizontal {
  grid-column: 1/2;
  grid-row: 1/2;
  width: 8rem;
  margin-left: auto;
  margin-right: auto;
  transform: translateY(0);
  position: static;
  height: 80%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .page .p-contact .p-contact__input .arrow-horizontal {
    width: 6rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page .p-contact .p-contact__input .arrow-horizontal {
    padding-bottom: 0.4rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .p-contact-info {
    margin-top: 3rem;
  }
}
.page .p-contact .p-contact-info .p-contact-info__link a,
.page .p-contact .p-contact-info .c-border-box {
  border: none;
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .page .p-contact .p-contact-info .p-contact-info__link a,
  .page .p-contact .p-contact-info .c-border-box {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .page .p-contact .p-contact-info .p-contact-info__link a,
  .page .p-contact .p-contact-info .c-border-box {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.page .p-contact .p-contact-info .p-contact-info__link a,
.page .p-contact .p-contact-info .c-border-box {
  font-weight: 700;
  text-decoration: none;
  padding: 0;
  line-height: 2.1739130435;
}
.page .p-contact .p-contact-info .p-contact-info__link {
  padding: 0;
}
.page .p-contact .p-contact-info .p-contact-info__link a {
  position: relative;
  cursor: pointer;
}
.page .p-contact .p-contact-info .p-contact-info__link a::before {
  content: "";
  position: absolute;
  bottom: 0.25em;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transition: transform 0.5s ease;
  transform-origin: right top;
  transform: scale(0, 1);
}
.page .p-contact .p-contact-info .p-contact-info__link a:hover::before {
  animation: line_flow 2.5s ease infinite;
}
.page .p-contact .p-contact-info .contact-tel {
  text-decoration: none;
  font-size: 0.87em;
  cursor: pointer;
}
.page .p-contact .p-contact-info__bottom {
  margin-top: 4rem;
}
@media screen and (max-width: 767px) {
  .page .p-contact .p-contact-info__bottom {
    margin-top: 2rem;
  }
}
.page .p-contact ul.option li {
  letter-spacing: normal;
  font-feature-settings: "palt";
  line-height: 1.5555555556;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .page .p-contact ul.option li {
    font-size: 0.9rem;
  }
}
.page .p-contact ul.option li::before {
  top: 0;
  transform: translateY(0);
  font-size: inherit;
}
@media screen and (max-width: 767px) {
  .page .p-contact ul.option li::before {
    left: -16px;
  }
}
.page .p-contact .c-border-completion * {
  font-weight: 600;
}

/*======================================
    overview
======================================*/
.p-team .c-title01 {
  margin-bottom: 30px;
  letter-spacing: normal;
}
.p-team .swiper-collaborators1 .c-name-meta .c-name-meta__work,
.p-team .swiper-collaborators2 .c-name-meta .c-name-meta__work,
.p-team .c-name-meta .c-name-meta__en {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
}
.p-team .p-one-profile {
  margin-top: 10rem;
}
@media screen and (max-width: 767px) {
  .p-team .p-one-profile {
    margin-top: 4rem;
  }
}

.p-outline_lists {
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .p-outline_lists {
    margin-top: 4rem;
  }
}

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

@media screen and (min-width: 768px) {
  .p-outline_dl {
    display: grid;
    grid-template-columns: 15rem auto;
    column-gap: 4rem;
  }
}
.p-outline_dl dt,
.p-outline_dl dd {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-outline_dl dt,
  .p-outline_dl dd {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-outline_dl dt,
  .p-outline_dl dd {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-outline_dl dt,
.p-outline_dl dd {
  line-height: 1.5652173913;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  padding: 1rem 0;
}
@media screen and (min-width: 768px) {
  .p-outline_dl dt {
    border-right: 1px solid #000;
    display: flex;
    align-items: center;
    flex: 1;
  }
}
@media screen and (max-width: 767px) {
  .p-outline_dl dt {
    border-bottom: 1px solid #000;
    padding-bottom: 0.6rem;
    margin-bottom: 1.2rem;
  }
}
.p-outline_dl a:link {
  color: inherit;
}

.list-executive li:nth-child(n+2) {
  margin-top: 1rem;
}

.p-outline_items {
  margin-top: 12rem;
}
@media screen and (max-width: 767px) {
  .p-outline_items {
    margin-top: 6rem;
  }
}

.p-outline_item {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-outline_item {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-outline_item {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-outline_item dt {
  font-weight: 700;
}

.p-locations {
  padding-top: 12rem;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .p-locations {
    padding-top: 8rem;
  }
}
.p-locations.sticky_normal {
  position: relative;
  padding-bottom: 20rem;
}
@media screen and (max-width: 767px) {
  .p-locations.sticky_normal {
    padding-bottom: 20rem;
  }
}
.p-locations.sticky_normal::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30rem;
  transform: translateY(calc(100% - 1px));
  background-image: linear-gradient(to top, rgba(255, 255, 255, 0) 0%, #fff 100%);
}
@media screen and (max-width: 767px) {
  .p-locations.sticky_normal::before {
    height: 15rem;
  }
}
.p-locations.sticky_normal::after {
  content: "Related\a Contents";
  white-space: pre;
  position: absolute;
  text-align: center;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 30%);
  padding-bottom: 2rem;
  width: 28rem;
  aspect-ratio: 280/122;
  background-color: #000;
  color: #fff;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  font-size: 1.5rem;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .p-locations.sticky_normal::after {
    width: 18.8rem;
    font-size: 1.2rem;
    aspect-ratio: 188/75;
    transform: translate(-50%, 24%);
  }
}
.p-locations .p-section-ttl {
  margin-bottom: 6rem;
}
@media screen and (max-width: 767px) {
  .p-locations .p-section-ttl {
    margin-bottom: 4rem;
  }
}

.p-location_img {
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .p-location_img {
    margin-bottom: 2rem;
  }
}

.p-location_detail:nth-child(n+2) {
  margin-top: 6rem;
}
@media screen and (max-width: 767px) {
  .p-location_detail:nth-child(n+2) {
    margin-top: 4rem;
  }
}
.p-location_detail.trigger .p-location_detail_head::before {
  transform: scale(1, 1);
}

.p-location_detail_head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  column-gap: 1rem;
  line-height: 1.5;
  padding-bottom: 0.6rem;
  margin-bottom: 1rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-location_detail_head {
    margin-bottom: 1rem;
  }
}
.p-location_detail_head::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transform: scale(0, 1);
  transition: transform 0.5s ease 0.3s;
  transform-origin: left top;
}

.p-location_detail_name {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-location_detail_name {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-location_detail_name {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-location_detail_name {
  font-weight: 700;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
.p-location_detail_name .en {
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  letter-spacing: normal;
}
@media screen and (min-width: 768px) {
  .p-location_detail_name .en {
    font-size: 1.7rem;
  }
}
.p-location_detail_name .lg {
  font-size: 3rem;
}
@media screen and (max-width: 767px) {
  .p-location_detail_name .lg {
    font-size: 1.5rem;
  }
}

.p-location_detail_map {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 9rem;
  height: 2rem;
  font-family: "Gothic725", sans-serif;
  font-weight: 400;
  font-size: 1.5rem;
  background-color: #000;
  color: #fff;
  letter-spacing: normal;
  font-feature-settings: "palt";
  padding-top: 0.2em;
}
.p-location_detail_map:link {
  color: #fff;
}
@media screen and (max-width: 767px) {
  .p-location_detail_map {
    font-size: 0.8rem;
    width: 4.5rem;
    height: 1rem;
  }
}

.p-location_detail_text {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-location_detail_text {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-location_detail_text {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}
.p-location_detail_text {
  line-height: 1.652173913;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}
.p-location_detail_text a:link {
  color: inherit;
  font-weight: inherit;
}

.p-location_departments {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 4rem;
  row-gap: 2rem;
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  .p-location_departments {
    column-gap: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-location_departments {
    margin-top: 2rem;
  }
}

.p-location_department:nth-child(n+2) {
  margin-top: 0;
}
.p-location_department .p-location_detail_head {
  margin-bottom: 0.6rem;
}

.p-overview > .page {
  background-color: #fff;
}

.p-overview-works .loop_title_section {
  position: relative;
  z-index: 3;
}
.p-overview-works .sticky_contents {
  padding: 20rem 0 20rem;
}
@media screen and (max-width: 767px) {
  .p-overview-works .sticky_contents {
    padding: 9rem 0;
  }
}
@media screen and (max-width: 767px) {
  .p-overview-works .t-works_lists {
    margin-top: 2.8rem;
  }
}

/*======================================
    既存打ち消し
======================================*/
.p-detail .p-detail__contents p,
.p-rich-text p,
.p-index-block-lists,
.c-modal-card .c-modal-card__text p,
.c-modal-card .c-modal-card__comment dl dt,
.c-modal-card .c-modal-card__comment dl dd,
.c-modal-card .c-modal-card__dl dl dt,
.c-modal-card .c-modal-card__dl dl dd,
.p-rich-panel .p-rich-panel__contents .p-rich-panel__main {
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  font-weight: 400;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-detail .p-detail__contents p,
  .p-rich-text p,
  .p-index-block-lists,
  .c-modal-card .c-modal-card__text p,
  .c-modal-card .c-modal-card__comment dl dt,
  .c-modal-card .c-modal-card__comment dl dd,
  .c-modal-card .c-modal-card__dl dl dt,
  .c-modal-card .c-modal-card__dl dl dd,
  .p-rich-panel .p-rich-panel__contents .p-rich-panel__main {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-detail .p-detail__contents p,
  .p-rich-text p,
  .p-index-block-lists,
  .c-modal-card .c-modal-card__text p,
  .c-modal-card .c-modal-card__comment dl dt,
  .c-modal-card .c-modal-card__comment dl dd,
  .c-modal-card .c-modal-card__dl dl dt,
  .c-modal-card .c-modal-card__dl dl dd,
  .p-rich-panel .p-rich-panel__contents .p-rich-panel__main {
    font-size: 1.5rem;
    letter-spacing: normal;
  }
}

.c-modal-card .c-modal-card__dl dl {
  display: block;
}
.c-modal-card .c-modal-card__dl dl dt {
  width: 100%;
  text-align: left;
}

.font-lato {
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-feature-settings: "palt";
  font-weight: 400;
}

/*======================================
    feature 個別記事
======================================*/
/* ーーーーーーーーーーーーーーーーーーー
  2025.11.13 追加
  CONTENTS（OKANOのトリクミ）
  「人文知」を経営に生かす人文地研究所
  COTEN
ーーーーーーーーーーーーーーーーーーー*/
#coten article.content {
  position: relative;
}

#coten article.content:before {
  content: "";
  position: absolute;
  height: 100%;
  width: 100%;
  top: -33.77vw;
  left: 50%;
  transform: translateX(-50%);
  background-image: url(../img/page/coten/fv_bk.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

@media screen and (min-width: 1920px) {
  #coten article.content:before {
    top: -42.5vw;
  }
}
@media screen and (max-width: 1200px) {
  #coten article.content:before {
    top: -26vw;
  }
}
@media screen and (max-width: 999.98px) {
  #coten article.content:before {
    top: -21vw;
  }
}
@media screen and (max-width: 650px) {
  #coten article.content:before {
    top: -19vw;
  }
}
@media screen and (max-width: 500px) {
  #coten article.content:before {
    top: -12vw;
  }
}
/*fv*/
#coten .p-photo-visual.-iom {
  position: relative;
  background-image: unset;
}

#coten .p-photo-visual {
  height: fit-content;
}

#coten .p-photo-visual.-iom .p-photo-visual__item {
  /* margin-top: 100px; */
  height: fit-content;
  margin-top: 10rem;
  width: 85.5rem;
}

@media screen and (max-width: 999.98px) {
  #coten .p-photo-visual.-iom .p-photo-visual__item {
    margin-top: 7rem;
  }
  #coten .p-photo-visual img {
    object-fit: contain;
    padding: 0 20px;
  }
}
ul.p-index-block-lists {
  margin-top: 3.2rem;
  margin-bottom: 110px;
}

ul.p-index-block-lists li {
  margin-bottom: 12px;
}

ul.p-index-block-lists li a {
  color: #000;
  font-feature-settings: "palt";
}

#coten .bg-rich-type01 {
  background-color: #fff;
}

#coten .c-rh-mid-title {
  font-size: 22.5px;
  text-align: left;
  border-bottom: 1px solid #5a9ee2;
  padding-bottom: 10px;
  font-feature-settings: "palt";
}

#coten h4.p-index-block-title {
  border-bottom: 1px solid #000;
  font-family: lato, sans-serif;
  font-weight: 600;
  line-height: 3rem;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0;
}

#coten h4.c-rh-mid-title.style02 {
  border-bottom: 1px solid #000;
  font-family: lato, sans-serif;
  font-weight: 600;
  font-size: 24px;
  letter-spacing: 0;
}

#coten .p-image.about-image {
  max-width: 500px;
  margin-right: auto;
  margin-left: auto;
}

#coten .link-center-style {
  text-align: center;
}

#coten .link-center-style a {
  color: #000;
  font-family: lato, sans-serif;
  font-weight: 600;
  font-size: 19px;
  letter-spacing: 0;
  padding-bottom: 5px;
  border-bottom: 1px solid #5a9ee2;
}

#coten h5.c-rh-mid-title.style03 {
  border-bottom: 1px solid #000;
  font-family: lato, sans-serif;
  font-weight: 600;
  font-size: 19px;
  letter-spacing: 0;
  padding-bottom: 5px;
}

#coten .related-contents a {
  max-width: 500px;
  display: block;
  margin: 0 auto;
}

#coten .p-index-block {
  padding: 0 32px;
}

@media screen and (max-width: 999.98px) {
  #coten .p-image.-slidein {
    width: 100vw;
    margin: 60px calc(50% - 50vw) 0;
  }
  #coten .c-rh-mid-title {
    text-indent: -1.1em;
    padding-left: 1.1em;
    line-height: 1.3em;
    font-size: 22px;
    padding-bottom: 10px;
  }
  #coten #intro .c-rh-mid-title {
    text-indent: unset;
    padding-left: unset;
  }
  #coten h4.p-index-block-title {
    font-size: 15px;
    line-height: 2.8rem;
  }
  #coten .p-rh-block.-pt-03 {
    padding-top: 0;
  }
  #coten .p-rich-text p + p {
    margin-top: 25px;
  }
  #coten .p-rich-text.midashi {
    margin-top: 25px;
  }
  #coten .p-image.-slidein.about-image {
    width: 100%;
    margin: 40px auto 0;
    max-width: 75vw;
  }
  #coten h4.c-rh-mid-title.style02 {
    padding-bottom: 7px;
  }
  #coten .link-center-style {
    margin-top: 15px;
    margin-bottom: 50px;
  }
  #coten .link-center-style a {
    font-size: 15px;
    padding-bottom: 2px;
  }
  #coten h5.c-rh-mid-title.style03 {
    font-size: 15px;
    padding-bottom: 2.5px;
  }
  #coten .related-contents .p-rich-text {
    margin-top: 20px;
  }
  #coten a.c-link-arrows {
    text-align: center;
    line-height: 22px;
  }
  #coten .p-index-block {
    padding: 30px 0 0;
  }
}
/*======================================
    core business 01
======================================*/
.p-core {
  margin-top: 4rem;
}
.p-core .p-works-fv {
  margin-bottom: 20rem;
}
@media screen and (max-width: 767px) {
  .p-core .p-works-fv {
    margin-top: 5rem;
    margin-bottom: 6rem;
  }
  .p-core .p-works-fv .t-works_lists {
    padding-right: 0;
  }
  .p-core .p-works-fv .p-works_eye {
    margin-top: 0;
  }
  .p-core .p-works-fv .p-works-business_card_link {
    max-width: 24rem;
    margin-left: auto;
    margin-right: auto;
  }
  .p-core .p-works-fv .p-works-business_card_head {
    transform: translate(-1.8rem, -1.8rem);
  }
  .p-core .p-works-fv .t-works_head_title {
    text-align: center;
  }
  .p-core .p-works-fv .t-works_head_title p .lg {
    margin-top: 0;
  }
}

.p-core01 .loop_title_section {
  color: #ff0050;
}

.p-core01-brand_columns {
  display: grid;
  grid-template-columns: auto 34rem;
  column-gap: 4rem;
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_columns {
    display: flex;
    flex-direction: column;
    row-gap: 3rem;
    margin-top: 3rem;
  }
}

@media screen and (max-width: 767px) {
  .p-core01-brand_column:nth-child(n+2) {
    margin-top: 1.6rem;
  }
}

.p-core_section_title {
  font-size: 2rem;
  font-feature-settings: "palt";
  letter-spacing: normal;
  font-weight: 300;
  line-height: 1.75;
  border-bottom: 1px solid #000;
  padding-bottom: 0.4rem;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .p-core_section_title {
    font-size: 1rem;
    margin-bottom: 2rem;
  }
}
.p-core_section_title.en {
  font-family: "Gothic725", sans-serif;
}

.p-core01-brand_icon_wrap {
  margin-top: 4rem;
  display: flex;
  align-items: flex-end;
  column-gap: 2rem;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_icon_wrap {
    margin-top: 1.6rem;
  }
}
.p-core01-brand_icon_wrap .icon_wrap {
  display: flex;
  align-items: center;
  column-gap: 2rem;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_icon_wrap .icon_wrap {
    column-gap: 1.4rem;
  }
}
.p-core01-brand_icon_wrap .icon {
  width: 6.6rem;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_icon_wrap .icon {
    width: 3.3rem;
  }
}
.p-core01-brand_icon_wrap .icon img {
  height: 100%;
  object-fit: contain;
}
.p-core01-brand_icon_wrap .times {
  width: 3.8rem;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_icon_wrap .times {
    width: 1.9rem;
  }
}
.p-core01-brand_icon_wrap .times img {
  height: 100%;
  object-fit: contain;
}

.p-core01-brand_icon_texts {
  flex: 1;
}
.p-core01-brand_icon_texts dt,
.p-core01-brand_icon_texts dd {
  font-size: 2rem;
  font-feature-settings: "palt";
  letter-spacing: normal;
  font-weight: 300;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_icon_texts dt,
  .p-core01-brand_icon_texts dd {
    font-size: 1rem;
  }
}
.p-core01-brand_icon_texts dt {
  line-height: 1.75;
}
.p-core01-brand_icon_texts dd {
  line-height: 1;
  display: flex;
  column-gap: 1em;
  align-items: flex-end;
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_icon_texts dd {
    margin-top: 1rem;
  }
}
.p-core01-brand_icon_texts .num {
  color: #ff0050;
  font-size: 4em;
  font-family: "Gothic725", sans-serif;
  line-height: 0.5em;
}

@media screen and (max-width: 767px) {
  .p-core01-brand_shares {
    display: flex;
    align-items: flex-end;
  }
}

@media screen and (min-width: 768px) {
  .p-core01-brand_share:nth-child(n+2) {
    margin-top: 6rem;
  }
}
@media screen and (max-width: 767px) {
  .p-core01-brand_share {
    flex: 1;
  }
}

.p-core01-brand_share_graph_wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.p-core01-brand_share_graph {
  aspect-ratio: 1/1;
  width: 18rem;
  position: relative;
}
.p-core01-brand_share_graph .p-core01-brand_share_svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_share_graph {
    width: 9rem;
  }
}

@keyframes border_show {
  0% {
    transform: translateY(50%) scale(0, 1);
  }
  100% {
    transform: translateY(50%) scale(1, 1);
  }
}
.p-core01-brand_share_graph_text {
  position: absolute;
  bottom: 5rem;
  right: 0;
  transform: translateX(calc(100% - 2rem));
  min-width: 9rem;
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-feature-settings: "palt";
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  line-height: 1;
  padding-left: 3.2rem;
  position: absolute;
  opacity: 0;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_share_graph_text {
    bottom: 2.6rem;
    padding-left: 1.4rem;
    min-width: 4.6rem;
    transform: translateX(calc(100% - 1rem));
  }
}
.p-core01-brand_share_graph_text.show {
  opacity: 1;
}
.p-core01-brand_share_graph_text.show::after {
  animation: border_show 0.5s ease-in 0.3s forwards;
}
.p-core01-brand_share_graph_text::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transform: translateY(50%) scale(0, 1);
  transform-origin: left center;
}
.p-core01-brand_share_graph_text::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 50%);
  width: 0.2rem;
  aspect-ratio: 1/1;
  background-color: #000;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_share_graph_text .sm {
    font-size: 0.8rem;
  }
}
.p-core01-brand_share_graph_text .num_wrap {
  font-family: "Gothic725", sans-serif;
  letter-spacing: normal;
  font-feature-settings: "palt";
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_share_graph_text .num_wrap {
    font-size: 1rem;
  }
}
.p-core01-brand_share_graph_text .num {
  font-size: 2em;
  display: inline-block;
  margin-right: 0.1em;
}

.p-core01-brand_share_graph_title {
  font-size: 2rem;
  font-weight: 300;
  font-feature-settings: "palt";
  letter-spacing: normal;
}
@media screen and (max-width: 767px) {
  .p-core01-brand_share_graph_title {
    font-size: 1rem;
  }
}

.p-core_section_title_lg {
  text-align: center;
  font-size: 7rem;
  font-weight: 600;
  line-height: 1.1428571429;
  font-feature-settings: "palt";
  letter-spacing: normal;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .p-core_section_title_lg {
    font-size: 3.8rem;
    margin-bottom: 2rem;
    margin-left: -0.5em;
    margin-right: -0.5em;
  }
}

.p-core_section_text {
  font-size: 2rem;
  font-weight: 300;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.75;
  text-align: justify;
}
@media screen and (max-width: 767px) {
  .p-core_section_text {
    font-size: 1.3rem;
    letter-spacing: 0.075em;
  }
}

.p-core-leading_section {
  margin-top: 8rem;
}
@media screen and (max-width: 767px) {
  .p-core-leading_section {
    margin-top: 3rem;
  }
}

.p-core-leading {
  margin-top: 12rem;
}
@media screen and (max-width: 767px) {
  .p-core-leading {
    margin-top: 3rem;
  }
}

.p-core-leading_map {
  aspect-ratio: 1480/780;
  max-width: 148rem;
  margin: 4rem auto 0;
  width: 90%;
}
@media screen and (max-width: 767px) {
  .p-core-leading_map {
    margin-top: 2rem;
  }
}

.p-core01-engineering {
  margin-top: 20rem;
}
@media screen and (max-width: 767px) {
  .p-core01-engineering {
    margin-top: 12rem;
  }
}
.p-core01-engineering .loop_title_section {
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .p-core01-engineering .loop_title_section {
    margin-bottom: 1rem;
  }
}

.p-core_img_full {
  margin-top: 4rem;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .p-core_img_full {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
}

.p-core01-craft {
  margin-top: 18rem;
}
@media screen and (max-width: 767px) {
  .p-core01-craft {
    margin-top: 9rem;
  }
}

.p-core01-craft_video_wrapper {
  margin-top: 4rem;
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (max-width: 767px) {
  .p-core01-craft_video_wrapper {
    margin-top: 2.4rem;
  }
}

.p-core01-craft_video_wrap {
  position: relative;
  grid-column: 1/2;
  grid-row: 1/2;
  z-index: 1;
  height: 100vh;
}
.p-core01-craft_video_wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  opacity: 0.6;
}
.p-core01-craft_video_wrap video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-core01-craft_contents {
  grid-column: 1/2;
  grid-row: 1/2;
  position: relative;
  z-index: 2;
  color: #fff;
}

.p-core01-craft_video_section {
  min-height: 100vh;
  padding: 20rem 0;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-core01-craft_video_section {
    padding: 10rem 0;
  }
}

.p-core01-craft_play {
  text-align: center;
  max-width: 14.8rem;
  margin-left: auto;
  margin-right: auto;
  color: #fff;
  font-family: "Gothic725", sans-serif;
  font-size: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 3rem;
  margin-bottom: 9rem;
}
@media screen and (max-width: 767px) {
  .p-core01-craft_play {
    font-size: 1rem;
    row-gap: 1.4rem;
  }
}

.button_play {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border-radius: none;
  background-color: unset;
  border: none;
  cursor: pointer;
}
.button_play span.icon {
  display: block;
  width: 6rem;
  margin-left: auto;
  margin-right: auto;
}

.p-core01-craft_gallery {
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  .p-core01-craft_gallery {
    margin-top: 2.4rem;
  }
}

.c-gallery-swiper_slide {
  aspect-ratio: 630/420;
  width: 63rem;
  background-color: gray;
  position: relative;
  cursor: pointer;
}
.c-gallery-swiper_slide::before, .c-gallery-swiper_slide::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8rem;
  height: 1px;
  background-color: #fff;
  z-index: 2;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_slide::before, .c-gallery-swiper_slide::after {
    width: 4rem;
  }
}
.c-gallery-swiper_slide::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_slide {
    width: 31.6rem;
  }
}
.c-gallery-swiper_slide img {
  height: 100%;
  object-fit: cover;
}

.c-gallery-swiper_scrollbar {
  width: 90%;
  max-width: 63rem;
  margin: 5rem auto 2rem;
  position: relative;
  background-color: unset;
  height: 3px;
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_scrollbar {
    max-width: 31.4rem;
    margin-top: 2.4rem;
    margin-bottom: 0.8rem;
  }
}
.c-gallery-swiper_scrollbar::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: #000;
  transform: translateY(-100%);
}
.c-gallery-swiper_scrollbar .swiper-scrollbar-drag {
  height: 3px;
  opacity: 1;
  background: #000;
  border-radius: 0;
}

.c-gallery-swiper_pagination_bullets {
  width: 90%;
  max-width: 63rem;
  margin: 5rem auto 2rem;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_pagination_bullets {
    max-width: 31.4rem;
    margin-top: 2.4rem;
    margin-bottom: 0.8rem;
  }
}
.c-gallery-swiper_pagination_bullets .swiper-pagination-bullet {
  margin: 0 !important;
  border-radius: 0;
  opacity: 1;
  display: block;
  height: 1px;
  background-color: #000;
  flex: 1;
}
.c-gallery-swiper_pagination_bullets .swiper-pagination-bullet-active {
  height: 3px;
}

.c-gallery-swiper_pagination_fraction {
  text-align: center;
  font-size: 2rem;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_pagination_fraction {
    font-size: 1rem;
  }
}

.c-gallery-swiper-thumb_slide {
  aspect-ratio: 980/654;
  background-color: gray;
  width: 100%;
}
.c-gallery-swiper-thumb_slide img {
  height: calc(100% + 1px);
  object-fit: cover;
}

.c-gallery-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.78);
  z-index: 500;
  padding: 6rem 0;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  overflow: auto;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.c-gallery-modal.active {
  opacity: 1;
  visibility: visible;
}
.c-gallery-modal::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}

.c-gallery-modal_body {
  width: 90%;
  max-width: 108rem;
  display: inline-block;
  vertical-align: middle;
  border-radius: 1rem;
  padding: 4rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .c-gallery-modal_body {
    padding: 2rem 0 4rem;
    width: 98%;
  }
}

.c-gallery-modal_tools_wrap {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .c-gallery-modal_tools_wrap {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    margin-top: 1.4rem;
    padding-bottom: 6rem;
    flex: 1;
    row-gap: 8rem;
  }
}

.c-gallery-modal_tools {
  display: flex;
  column-gap: 9rem;
  align-items: flex-end;
  justify-content: center;
  grid-column: 2/3;
  grid-row: 1/2;
}
@media screen and (max-width: 767px) {
  .c-gallery-modal_tools {
    column-gap: 5rem;
  }
}

.c-gallery-swiper_prev,
.c-gallery-swiper_next,
.c-gallery-modal_close {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  background-color: unset;
  box-shadow: none;
  border-radius: 0;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  font-family: "Gothic725", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_prev,
  .c-gallery-swiper_next,
  .c-gallery-modal_close {
    font-size: 0.8rem;
  }
}

.c-gallery-swiper_prev,
.c-gallery-swiper_next {
  position: relative;
  padding-top: 5.8rem;
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_prev,
  .c-gallery-swiper_next {
    padding-top: 2.6rem;
  }
}
.c-gallery-swiper_prev .arrow-horizontal,
.c-gallery-swiper_next .arrow-horizontal {
  bottom: unset;
  top: 2.15rem;
  transform: translateY(-100%);
}
@media screen and (max-width: 767px) {
  .c-gallery-swiper_prev .arrow-horizontal,
  .c-gallery-swiper_next .arrow-horizontal {
    top: 0.9rem;
  }
}
.c-gallery-swiper_prev .arrow-horizontal.-reverse,
.c-gallery-swiper_next .arrow-horizontal.-reverse {
  transform: translateY(-100%) scale(-1, 1);
}

.c-gallery-modal_close .icon {
  display: block;
  width: 4rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 767px) {
  .c-gallery-modal_close .icon {
    width: 2rem;
    margin-bottom: 0.8rem;
  }
}

.c-gallery-modal_pagination {
  grid-column: 3/4;
  grid-row: 1/2;
  font-size: 2rem;
  font-family: "Gothic725", sans-serif;
  text-align: right;
}
@media screen and (max-width: 767px) {
  .c-gallery-modal_pagination {
    font-size: 1rem;
    text-align: center;
  }
}

.p-core-related {
  margin-top: 13rem;
}
@media screen and (max-width: 767px) {
  .p-core-related {
    margin-top: 8rem;
  }
}

.p-core-related_card {
  display: block;
  max-width: 64rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 9rem;
}
@media screen and (max-width: 767px) {
  .p-core-related_card {
    margin-bottom: 8rem;
  }
}
.p-core-related_card .p-feature_columns {
  grid-template-columns: 1fr;
}

.p-core_next .p-works-business_card_head {
  transform: translate(0);
}
.p-core_next .p-works-business_card_body {
  height: 75rem;
}
@media screen and (max-width: 767px) {
  .p-core_next .p-works-business_card_body {
    height: 37.6rem;
  }
}
.p-core_next .p-works-business_card_body .p-works-business_card_img img {
  height: calc(100% + 1px);
}
.p-core_next .p-works-business_card_ttl h3 {
  font-size: 3.5rem;
  line-height: 1.2857142857;
}
@media screen and (max-width: 767px) {
  .p-core_next .p-works-business_card_ttl h3 {
    font-size: 1.8rem;
  }
}
.p-core_next .p-works-business_text {
  max-width: 100%;
  padding: 0;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .p-core_next .p-works-business_text {
    font-size: 1.2rem;
  }
}

.p-core_next_triangle {
  color: #fff;
  background-color: #000;
  max-width: 28rem;
  aspect-ratio: 280/142;
  margin: 20rem auto 5rem;
  font-family: "Gothic725", sans-serif;
  font-size: 1.5rem;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  padding-bottom: 2.6rem;
}
@media screen and (max-width: 767px) {
  .p-core_next_triangle {
    max-width: 18.8rem;
    font-size: 1.3rem;
    padding-bottom: 2rem;
    margin-top: 10rem;
    margin-bottom: 8rem;
  }
}

/*======================================
    Core business 02
======================================*/
#core02 .container,
#core02 .main {
  overflow: unset;
}

.p-core02_bg {
  background-color: #fff;
  position: relative;
  z-index: 2;
}

.p-core02 .loop_title_section {
  color: #64a0ff;
}
.p-core02 .count-up.num {
  color: #64a0ff;
}
.p-core02 .p-core01-brand_icon_wrap {
  padding-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .p-core02 .t-works_head_title p .lg {
    margin-left: -0.5em;
    margin-right: -0.5em;
  }
}

.p-core02-works .loop_title_section {
  margin-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .p-core02-works .loop_title_section {
    margin-bottom: 2.4rem;
  }
}

.js-core02-scale_wrap {
  margin-top: 6rem;
  overflow-x: clip;
  position: relative;
}

.p-core02-scale_target {
  position: sticky;
  top: 50%;
  width: 100%;
  max-width: 82rem;
  margin-left: auto;
  margin-right: auto;
  z-index: -1;
  margin-bottom: 10rem;
  aspect-ratio: 10355/5457;
}
@media screen and (max-width: 767px) {
  .p-core02-scale_target {
    width: 55%;
    margin-left: 0;
    margin-bottom: 10rem;
  }
}
.p-core02-scale_target svg {
  width: 100%;
  height: 100%;
  display: block;
}

.p-core02-scale_contents {
  position: relative;
  z-index: 2;
  margin: 0 calc(50% - 50vw);
  padding: 4rem 0;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-core02-scale_contents {
    margin-top: -8rem;
  }
}

.p-core02-scale_end {
  height: 82rem;
  position: relative;
  margin: 0 calc(50% - 50vw);
}
@media screen and (max-width: 767px) {
  .p-core02-scale_end {
    height: 40rem;
  }
}
.p-core02-scale_end::before, .p-core02-scale_end::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 18rem;
  background-image: linear-gradient(to bottom, #fff, rgba(255, 255, 255, 0));
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .p-core02-scale_end::before, .p-core02-scale_end::after {
    height: 8rem;
  }
}
.p-core02-scale_end::before {
  top: 0;
  display: none;
}
.p-core02-scale_end::after {
  bottom: 0;
  transform: scale(1, -1);
}

.p-core02-scale_office {
  font-size: 2.5rem;
  font-family: "Gothic725", sans-serif;
  line-height: 1.2;
  font-feature-settings: "palt";
  position: absolute;
  top: 57%;
  left: 49%;
  transform: translate(65%, 75%);
}
@media screen and (max-width: 767px) {
  .p-core02-scale_office {
    font-size: 1rem;
    top: 60%;
  }
}

.p-core02-scale_countries {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, calc(-100% - 20rem));
  z-index: 3;
}
@media screen and (max-width: 767px) {
  .p-core02-scale_countries {
    left: 60%;
    width: 40%;
    transform: translate(0, calc(-100% - 5rem));
  }
}
.p-core02-scale_countries .p-core_section_title {
  margin-bottom: 1rem;
  padding-bottom: 0;
  border-bottom: none;
}
@media screen and (max-width: 767px) {
  .p-core02-scale_countries .p-core_section_title {
    margin-bottom: 0.4rem;
  }
}

.p-core02-scale_countries_text {
  font-size: 2rem;
  font-weight: 300;
  font-feature-settings: "palt";
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .p-core02-scale_countries_text {
    font-size: 1rem;
  }
}
.p-core02-scale_countries_text .num {
  font-family: "Gothic725", sans-serif;
  font-size: 4em;
  display: inline-block;
  margin-right: 0.1em;
}

.p-core02-leading_graph {
  max-width: 60rem;
  margin: 0 auto 4rem;
}
@media screen and (max-width: 767px) {
  .p-core02-leading_graph {
    max-width: 30rem;
    margin-bottom: 2rem;
  }
}

.p-core02_bg_gray {
  background-color: #5a646e;
  color: #fff;
  margin-top: 18rem;
}
@media screen and (max-width: 767px) {
  .p-core02_bg_gray {
    margin-top: 10rem;
  }
}
.p-core02_bg_gray .loop_title_section {
  color: #a59682;
  margin-bottom: 6rem;
}
@media screen and (max-width: 767px) {
  .p-core02_bg_gray .loop_title_section {
    margin-bottom: 4rem;
  }
}

.p-core02-dark_section {
  padding: 9rem 0;
}
@media screen and (max-width: 767px) {
  .p-core02-dark_section {
    padding: 4rem 0;
  }
  .p-core02-dark_section .p-core_section_title_lg {
    margin-left: -0.5em;
    margin-right: -0.5em;
  }
}

.p-core02-dark_section_img {
  margin: 4rem auto;
}
.p-core02-dark_section_img.-full {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
@media screen and (min-width: 1025px) {
  .p-core02-dark_section_img.-full {
    height: 80rem;
  }
  .p-core02-dark_section_img.-full img {
    height: 100%;
    object-fit: cover;
  }
}
@media screen and (max-width: 767px) {
  .p-core02-dark_section_img {
    margin: 2rem calc(50% - 50vw);
  }
}

/*======================================
    department 01
======================================*/
.p-dep01 .loop_title_section {
  color: #ffc864;
}

.p-dep01-proactive {
  position: relative;
  overflow: hidden;
  z-index: 1;
  color: #fff;
  padding: 4rem 0 6rem;
  margin-bottom: 10rem;
}
.p-dep01-proactive::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to bottom, #ffa050, #ff5050);
  mix-blend-mode: multiply;
  z-index: -1;
}
.p-dep01-proactive .loop_title_section {
  color: #fff;
}

.p-dep01-proactive_gallery_wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 143rem;
  height: 100%;
  z-index: -2;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-dep01-proactive_gallery_wrapper {
    width: 71.6rem;
  }
}

.p-dep01-proactive_gallery_wrap {
  display: flex;
  column-gap: 1.2rem;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .p-dep01-proactive_gallery_wrap {
    column-gap: 0.6rem;
  }
}

.p-dep01-proactive_gallery_col {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex: 1;
}
.p-dep01-proactive_gallery_col:nth-child(even) .p-dep01-proactive_gallery {
  animation-direction: reverse;
}

.p-dep01-proactive_gallery {
  display: flex;
  flex-direction: column;
  animation: scrollUp 20s linear infinite;
}

.p-dep01-proactive_gallery_item {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  aspect-ratio: 468/312;
  display: block;
  margin-bottom: 1.2rem;
}
@media screen and (max-width: 767px) {
  .p-dep01-proactive_gallery_item {
    margin-bottom: 0.6rem;
  }
}
.p-dep01-proactive_gallery_item.-row1-1 {
  background-image: url(../img/pages/erd_gallery1-1.jpg);
}
.p-dep01-proactive_gallery_item.-row1-2 {
  background-image: url(../img/pages/erd_gallery1-2.jpg);
}
.p-dep01-proactive_gallery_item.-row1-3 {
  background-image: url(../img/pages/erd_gallery1-3.jpg);
}
.p-dep01-proactive_gallery_item.-row2-1 {
  background-image: url(../img/pages/erd_gallery2-1.jpg);
}
.p-dep01-proactive_gallery_item.-row2-2 {
  background-image: url(../img/pages/erd_gallery2-2.jpg);
}
.p-dep01-proactive_gallery_item.-row2-3 {
  background-image: url(../img/pages/erd_gallery2-3.jpg);
}
.p-dep01-proactive_gallery_item.-row3-1 {
  background-image: url(../img/pages/erd_gallery3-1.jpg);
}
.p-dep01-proactive_gallery_item.-row3-2 {
  background-image: url(../img/pages/erd_gallery3-2.jpg);
}
.p-dep01-proactive_gallery_item.-row3-3 {
  background-image: url(../img/pages/erd_gallery3-3.jpg);
}

@keyframes scrollUp {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-100%);
  }
}
.p-dep01-proactive_section {
  margin-top: 6rem;
}
.p-dep01-proactive_section .p-core_section_title_lg {
  margin-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .p-dep01-proactive_section {
    margin-top: 3rem;
  }
}

.p-dep01-trust {
  margin-top: 20rem;
}
@media screen and (max-width: 767px) {
  .p-dep01-trust {
    margin-top: 7rem;
  }
}

.p-dep01-direction_wrap {
  margin-top: 5rem;
  max-width: 98rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .p-dep01-direction_wrap {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
  }
}

@media screen and (max-width: 767px) {
  .p-dep01-direction_img {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    order: 2;
  }
}

@media screen and (min-width: 768px) {
  .p-dep01-direction_texts {
    margin-top: 5rem;
  }
}
@media screen and (max-width: 767px) {
  .p-dep01-direction_texts {
    display: contents;
  }
}
@media screen and (max-width: 767px) {
  .p-dep01-direction_texts .p-core_section_title_lg {
    order: 1;
  }
}
@media screen and (max-width: 767px) {
  .p-dep01-direction_texts .p-core_section_text {
    order: 3;
    margin-top: 2rem;
  }
}

.p-dep01-trust_section:nth-child(n+2) {
  margin-top: 17rem;
}
@media screen and (max-width: 767px) {
  .p-dep01-trust_section:nth-child(n+2) {
    margin-top: 4rem;
  }
}

.p-core-trust_gallery {
  margin-top: 9rem;
  margin-bottom: 4rem;
}
@media screen and (min-width: 768px) {
  .p-core-trust_gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 767px) {
  .p-core-trust_gallery {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-core-trust_gallery_img {
    height: 100rem;
  }
  .p-core-trust_gallery_img img {
    height: 100%;
    object-fit: cover;
  }
  .p-core-trust_gallery_img:nth-child(2) img {
    object-position: 27% center;
  }
}
@media screen and (max-width: 767px) {
  .p-core-trust_gallery_img {
    position: sticky;
    top: 0;
    left: 0;
  }
}

/*# sourceMappingURL=new-theme.css.map */
