@charset "UTF-8";

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

a {
  text-decoration: none;
  color: initial;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  cursor: default;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
  object-fit: cover;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
   scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* inter-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/inter-v18-latin-regular.woff2') format('woff2'),
  url('../fonts/inter-v18-latin-regular.woff') format('woff');
}
/* inter-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/inter-v18-latin-600.woff2') format('woff2'),
  url('../fonts/inter-v18-latin-600.woff') format('woff');
}
/* inter-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/inter-v18-latin-700.woff2') format('woff2'),
  url('../fonts/inter-v18-latin-700.woff') format('woff');
}
/* inter-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/inter-v18-latin-800.woff2') format('woff2'),
  url('../fonts/inter-v18-latin-800.woff') format('woff');
}
/* inter-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  src: url('../fonts/inter-v18-latin-900.woff2') format('woff2'),
  url('../fonts/inter-v18-latin-900.woff') format('woff');
}
@font-face {
  font-display: swap;
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/NotoSansJP-Medium.woff2') format('woff2'),
  url('../fonts/NotoSansJP-Medium.woff') format('woff');
}
@font-face {
  font-display: swap;
  font-family: 'Didact Gothic';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/didact-gothic-v20-latin-regular.woff2') format('woff2'),
  url('../fonts/didact-gothic-v20-latin-regular.woff') format('woff');
}
body{
  font-size: calc(16/var(--view-size)*100vw);
  line-height: calc(34/18);
  font-family: "Noto Sans JP";
  font-weight: 500;
  color: #3A3A3A;
}
body:lang(zh-Hant-TW) {
  font-family: "Noto Sans TC", serif;
}
/* :rootのCSS変数の宣言 */
:root {
  /* view size PC */
  --view-size: 1440;
}
@media(max-width: 840px){
  :root {
    /* view size PC */
    --head-size: 602;
  }
}
@media(max-width: 540px){
  body{
    overflow-x: hidden;
    font-size: calc(14/var(--view-size)*100vw);
  }
  :root {
    /* view size PC */
    --view-size: 402;
  }
  .common_inner {
    padding: 0 calc(18/var(--view-size)*100vw);
  }
}

/* ヘッダーここから */
header {
  display: flex;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: center;
  align-items: center;
  -webkit-background: #000;
  background: #000;
  bottom: auto;
  flex: none;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  left: 0px;
  margin: 0 0 0 0;
  padding: calc(9/var(--view-size)*100vw) calc(29.2/var(--view-size)*100vw) calc(9/var(--view-size)*100vw) calc(42/var(--view-size)*100vw);
  position: fixed;
  right: 0px;
  top: 0px;
  width: 100%;
  z-index: 2;
  max-width: 100%;
}
header.load {
  animation-name: fadeDownAnime;
  -webkit-animation-name: fadeDownAnime;
  animation-duration: 0.6s;
  -webkit-animation-duration: 0.6s;
  animation-delay: 4.68s;
  -webkit-animation-delay: 4.68s;
  animation-fill-mode: forwards;
  -webkit-animation-fill-mode: forwards;
  opacity: 0;
}
@keyframes fadeDownAnime {
  0%{
    opacity: 0;
    transform: translateY(-30px);
  }
  100%{
    opacity: 1;
    transform: translateY(0);
  }
}
@-webkit-keyframes fadeDownAnime {
  0%{
    opacity: 0;
    -webkit-transform: translateY(-30px);
  }
  100%{
    opacity: 1;
    -webkit-transform: translateY(0);
  }
}
.common_header_logo {
  position: relative;
  height: calc(63/var(--view-size)*100vw);
  max-width: 100%;
}
.common_header_logo img {
  width: auto;
  height: 100%;
  opacity: 1;
}
.common_header_logo a:hover img {
  opacity: .8;
  -webkit-transition: opacity .3s ease;
  transition: opacity .3s ease;
}
.common_header_nav {
  display: flex;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  column-gap: calc(28/var(--view-size)*100vw);
}
.common_header_menu_list {
  display: flex;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  gap: calc(10/var(--view-size)*100vw);
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}
.common_header_menu_item {
  position: relative;
}
.common_header_menu_item::before {
  content: "";
  position: absolute;
  top: calc(20/var(--view-size)*100vw);
  left: calc(-17/var(--view-size)*100vw);
  width: calc(23.6/var(--view-size)*100vw);
  height: calc(1/var(--view-size)*100vw);
  transform: rotate(111.88deg);
  -webkit-transform: rotate(111.88deg);
  background-color: #fff;
}
.common_header_menu_item:first-child::before {
  display: none;
}
.common_header_menu_link {
  position: relative;
  display: inline-block;
  font-family: 'Inter', serif;
  font-weight: 400;
  line-height: calc(21.78/18);
  font-size: calc(18/var(--view-size)*100vw);
  padding: calc(10/var(--view-size)*100vw);
  color: #fff;
  text-transform:capitalize;
}
.common_header_menu_link::before {
  position: absolute;
  left: calc(10 / var(--view-size)* 100vw);
  bottom: calc(10 / var(--view-size)* 100vw);
  width: calc(100% - calc(20 / var(--view-size)* 100vw));
  height: calc(1 / var(--view-size)* 100vw);
  background: #fff;
  content: "";
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
  -webkit-transform: scale(0, 1);
  transform: scale(0, 1);
  -webkit-transform-origin: right top;
  transform-origin: right top;
}
.common_header_menu_link:hover::before {
  -webkit-transform: scale(1, 1);
  transform: scale(1, 1);
  -webkit-transform-origin: left top;
  transform-origin: left top;
}
.common_header_menu_link span {
  text-transform:uppercase;
}
.common_header_btn {
  padding: 0 0 0 calc(0.41/var(--view-size)*100vw);
}
.common_header_btn_link {
  position: relative;
  padding: calc(7/var(--view-size)*100vw) calc(35/var(--view-size)*100vw) calc(7/var(--view-size)*100vw) calc(66/var(--view-size)*100vw);
  background-color: #fff;
  font-family: 'Inter', serif;
  font-weight: 400;
  line-height: calc(21.78/18);
  font-size: calc(18/var(--view-size)*100vw);
  color: #000;
  border-radius: calc(36/var(--view-size)*100vw);
  border: solid calc(1/var(--view-size)*100vw) #fff;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  text-transform:uppercase;
}
.common_header_btn_link:hover {
  color: #fff;
  background-color: #000;
}
.common_header_btn_link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(35/var(--view-size)*100vw);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: calc(24/var(--view-size)*100vw);
  height: calc(24/var(--view-size)*100vw);
  background-image: url(../img/common/header-icon-mail.png);
  background-size: cover;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.common_header_btn_link:hover::before {
  background-image: url(../img/common/header-icon-mail-white.png);
}
.common_header_lang {
  padding: calc(10/var(--view-size)*100vw);
}
.common_header_lang_list {
  display: flex;
  -webkit-align-content: center;
  align-content: center;
  -webkit-align-items: center;
  align-items: center;
  column-gap: calc(28.8/var(--view-size)*100vw);
}
.common_header_lang_item {
  position: relative;
  width: calc(30/var(--view-size)*100vw);
  height: calc(30/var(--view-size)*100vw);
}
.common_header_lang_item::before {
  content: "";
  position: absolute;
  top: calc(15/var(--view-size)*100vw);
  left: calc(-25/var(--view-size)*100vw);
  width: calc(23.6/var(--view-size)*100vw);
  height: calc(1/var(--view-size)*100vw);
  transform: rotate(111.88deg);
  -webkit-transform: rotate(111.88deg);
  background-color: #fff;
}
.common_header_lang_item:first-child:before {
  display: none;
}
.common_header_lang_link {
  width: 100%;
  height: 100%;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  width: calc(30/var(--view-size)*100vw);
  height: calc(30/var(--view-size)*100vw);
  border: solid calc(1/var(--view-size)*100vw) #fff;
  border-radius: 50%;
  background-color: #000;
  color: #fff;
  font-size: calc(15/var(--view-size)*100vw);
  line-height: 1;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.common_header_lang_link:hover {
  background-color: #fff;
  color: #000;
}
.lang_on .common_header_lang_link {
  background-color: #fff;
  color: #000;
}
.lang_on .common_header_lang_link:hover {
  background-color: #000;
  color: #fff;
}
.common_header_ham_wrapper, .common_header_contact, .common_header_nav_bottom {
  display: none;
}
/* ヘッダーここまで */

/* フッターここから */
footer {
  background-color: #000;
  padding: calc(49.74/var(--view-size)*100vw) 0 calc(69.7/var(--view-size)*100vw);
}
.common_footer_inner {
  padding: 0 calc(59/var(--view-size)*100vw)0 calc(49/var(--view-size)*100vw);
}
.common_footer_logo {
  display: inline-block;
  height: calc(73/var(--view-size)*100vw);
  padding-left: calc(10/var(--view-size)*100vw);
  max-width: 100%;
}
.common_footer_logo img {
  width: auto;
  height: 100%;
}
.common_footer_content {
  margin-top: calc(10.55/var(--view-size)*100vw);
  padding-left: calc(21/var(--view-size)*100vw);
}
.common_footer_address, .common_footer_mail {
  position: relative;
  padding-left: calc(36/var(--view-size)*100vw);
}
.common_footer_address::before, .common_footer_mail::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-40%);
  left: 0;
  width: calc(24/var(--view-size)*100vw);
  height: calc(24.3/var(--view-size)*100vw);
  background-size: cover;
}
.common_footer_address::before {
  background-image: url(../img/common/footer-icon-home.png);
}
.common_footer_mail::before {
  background-image: url(../img/common/footer-icon-mail.png);
}
.common_footer_address span, .common_footer_mail a {
  font-family: 'Inter', serif;
  font-weight: 400;
  line-height: calc(16.9/14);
  font-size: calc(14/var(--view-size)*100vw);
  color: #707070;
}
.common_footer_address span span {
  text-transform:uppercase;
}
.common_footer_mail a {
  text-decoration: underline;
  -webkit-transition: opacity .3s ease;
  -moz-transition: opacity .3s ease;
  transition: opacity .3s ease;
}
.common_footer_mail a:hover {
  opacity: 0.8;
}
.common_footer_copy {
  text-align: right;
  margin-top: calc(-11/var(--view-size)*100vw);
}
.common_footer_copy small {
  font-family: 'Inter', serif;
  font-weight: 400;
  line-height: 1;
  font-size: calc(10/var(--view-size)*100vw);
  color: #707070;
}
.common_footer_copy small span {
  text-transform:uppercase;
}
/* フッターここまで */

/* アニメーションここから */
.fadeUpScrollTrigger, .fadeBeforeScrollTrigger::before {
  opacity: 0;
}
.fadeUp, .fadeUpBefore::before {
  -webkit-animation-name: fadeUpAnime;
  -moz-animation-name: fadeUpAnime;
  -ms-animation-name: fadeUpAnime;
  animation-name: fadeUpAnime;
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  -ms-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-delay: 0.4s;
  -moz-animation-delay: 0.4s;
  -ms-animation-delay: 0.4s;
  animation-delay: 0.4s;
  -webkit-animation-fill-mode: forwards;
  -moz-animation-fill-mode: forwards;
  -ms-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  opacity: 0;
  transition-timing-function: ease-out;
}
@-webkit-keyframes fadeUpAnime {
  0%{
    opacity: 0;
    -webkit-transform: translateY(30px);
  }
  100%{
    opacity: 1;
    -webkit-transform: translateY(0);
  }
}
@-moz-keyframes fadeUpAnime {
  0%{
    opacity: 0;
    -moz-transform: translateY(30px);
  }
  100%{
    opacity: 1;
    -moz-transform: translateY(0);
  }
}
@keyframes fadeUpAnime {
  0%{
    opacity: 0;
    transform: translateY(30px);
  }
  100%{
    opacity: 1;
    transform: translateY(0);
  }
}
.fadeDown {
  -webkit-animation-name: fadeDownAnime;
  -moz-animation-name: fadeDownAnime;
  -ms-animation-name: fadeDownAnime;
  animation-name: fadeDownAnime;
  -webkit-animation-duration: 0.2s;
  -moz-animation-duration: 0.2s;
  -ms-animation-duration: 0.2s;
  animation-duration: 0.2s;
  -webkit-animation-delay: 0.4s;
  -moz-animation-delay: 0.4s;
  -ms-animation-delay: 0.4s;
  animation-delay: 0.4s;
  -webkit-animation-fill-mode: forwards;
  -moz-animation-fill-mode: forwards;
  -ms-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  opacity: 0;
}
@-webkit-keyframes fadeDownAnime {
  0%{
    opacity: 0;
    -webkit-transform: translateY(-30px);
  }
  100%{
    opacity: 1;
    -webkit-transform: translateY(0);
  }
}
@-moz-keyframes fadeDownAnime {
  0%{
    opacity: 0;
    -moz-transform: translateY(-30px);
  }
  100%{
    opacity: 1;
    -moz-transform: translateY(0);
  }
}
@keyframes fadeDownAnime {
  0%{
    opacity: 0;
    transform: translateY(-30px);
  }
  100%{
    opacity: 1;
    transform: translateY(0);
  }
}
.delay_time1 {
  -webkit-animation-delay: 1s;
  -moz-animation-delay: 1s;
  -ms-animation-delay: 1s;
  animation-delay: 1s;
}
.delay_time2 {
  -webkit-animation-delay: 1.6s;
  -moz-animation-delay: 1.6s;
  -ms-animation-delay: 1.6s;
  animation-delay: 1.6s;
}
.delay_time3 {
  -webkit-animation-delay: 2.4s;
  -moz-animation-delay: 2.4s;
  -ms-animation-delay: 2.4s;
  animation-delay: 2.4s;
}
/* アニメーションここまで */

/* FVここから */
.top_fv_main {
  padding: calc(331/var(--view-size)*100vw) calc(64/var(--view-size)*100vw) calc(115/var(--view-size)*100vw) calc(231/var(--view-size)*100vw);
  background-color: #E4E4E4;
}
.top_fv_main_content {
  position: relative;
  display: inline-block;
  line-height: 1;
}
.top_fv_main_content.load {
  opacity: 1;
  animation: slide-box 0.6s linear forwards; /* アニメーション適用 */
  -webkit-animation: slide-box 0.6s linear forwards; /* プレフィックス */
  animation-delay: 2.8s;
  -webkit-animation-delay: 2.8s; /* プレフィックス */
}
@-webkit-keyframes slide-box {
  0% {
    left: 0;
  }
  100% {
    left: calc(-83/var(--view-size)*100vw);
  }
}
@keyframes slide-box {
  0% {
    left: 0;
  }
  100% {
    left: calc(-83/var(--view-size)*100vw);
  }
}
.top_fv_main_content::before {
  content: "";
  position: absolute;
  top: calc(-3.5/var(--view-size)*100vw);
  left: 0;
  width: calc(3.5/var(--view-size)*100vw);
  height: 0;
  background-color: #000;
}
/* 左上→左下の線　on */
.top_fv_main_content.load::before {
  animation: slide-bottom 0.2s linear forwards; /* アニメーション適用 */
  -webkit-animation: slide-bottom 0.2s linear forwards;
  -moz-animation: slide-bottom 0.2s linear forwards;
  -o-animation: slide-bottom 0.2s linear forwards;
  -ms-animation: slide-bottom 0.2s linear forwards;
  animation-delay: 2s;
  -webkit-animation-delay: 2s; /* プレフィックス */
}
@-webkit-keyframes slide-bottom {
  0% {
    height: 0;
  }
  100% {
    height: calc(100% + (3.5/var(--view-size)*100vw));
  }
}
@keyframes slide-bottom {
  0% {
    height: 0;
  }
  100% {
    height: calc(100% + (3.5/var(--view-size)*100vw));
  }
}
.top_fv_main_content::after {
  content: "";
  position: absolute;
  top: 0;
  left: calc(114/var(--view-size)*100vw);
  width: calc(384/var(--view-size)*100vw);
  height: calc(58.52/var(--view-size)*100vw);
  background-color: #E4E4E4;
}
/* テキストアニメーション　on */
.top_fv_main_content.load::after {
  animation: slide-text 0.6s linear forwards; /* アニメーション適用 */
  -webkit-animation: slide-text 0.6s linear forwards; /* プレフィックス */
  animation-delay: 2.8s;
  -webkit-animation-delay: 2.8s; /* プレフィックス */
}
@-webkit-keyframes slide-text {
  0% {
    left: calc(114/var(--view-size)*100vw);
  }
  100% {
    left: 100%;
  }
}
@keyframes slide-text {
  0% {
    left: calc(114/var(--view-size)*100vw);
  }
  100% {
    left: 100%;
  }
}
.top_fv_main_content span {
  position: relative;
  display: inline-block;
  line-height: 1;
}
.top_fv_main_content > span::before,
.top_fv_main_content > span::after,
.top_fv_main_content > span > span::before,
.top_fv_main_content > span > span::after {
  content: "";
  position: absolute;
  width: calc(8/var(--view-size)*100vw);
  height: calc(8/var(--view-size)*100vw);
  border-radius: 50%;
  background-color: #000;
  opacity: 0;
}
.top_fv_main_content.load > span::before,
.top_fv_main_content.load > span::after,
.top_fv_main_content.load > span > span::before,
.top_fv_main_content.load > span > span::after {
  opacity: 1;
  transition-property: opacity;
  transition-duration: 0.8s;
  transition-timing-function: cubic-bezier(.4,.4,0,1);
  z-index: 2;
}
@-webkit-keyframes opa {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes opa {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
/* 右上の点　on */
.top_fv_main_content > span::before {
  top: calc(-5.5/var(--view-size)*100vw);
  left: calc(405/var(--view-size)*100vw);
}
/* 右上の点　off */
.top_fv_main_content.load > span::before {
  animation: opa .2s linear forwards;
  -webkit-animation: opa .2s linear forwards; /* プレフィックス */
  animation-delay: 2s;
  -webkit-animation-delay: 2s; /* プレフィックス */
}
/* 左上の点　on */
.top_fv_main_content > span::after {
  top: calc(-5.5/var(--view-size)*100vw);
  left: calc(-1.5/var(--view-size)*100vw);
  transition-delay: 0.4s;
}
/* 左上の点　off */
.top_fv_main_content.load > span::after {
  animation: opa .2s linear forwards;
  -webkit-animation: opa .2s linear forwards; /* プレフィックス */
  animation-delay: 2s;
  -webkit-animation-delay: 2s; /* プレフィックス */
}
/* 左下の点　on */
.top_fv_main_content > span > span::before {
  bottom: calc(-4/var(--view-size)*100vw);
  left: calc(-1.5/var(--view-size)*100vw);
  transition-delay: 0.8s;
}
/* 左下の点　off */
.top_fv_main_content.load > span > span::before {
  animation: opa .2s linear forwards; /* アニメーション適用 */
  -webkit-animation: opa .2s linear forwards; /* プレフィックス */
  animation-delay: 2.2s;
  -webkit-animation-delay: 2.2s; /* プレフィックス */
}
/* 右下の点　on */
.top_fv_main_content > span > span::after {
  bottom: calc(-4/var(--view-size)*100vw);
  left: calc(405/var(--view-size)*100vw);
  transition-delay: 1.2s;
}
/* 右下の点　off */
.top_fv_main_content.load > span > span::after {
  animation: opa .2s linear forwards; /* アニメーション適用 */
  -webkit-animation: opa .2s linear forwards; /* プレフィックス */
  animation-delay: 2.8s;
  -webkit-animation-delay: 2.8s; /* プレフィックス */
}
.top_fv_main_content > span > span > span {
  display: inline-block;
  padding-left: calc(114/var(--view-size)*100vw);
  width: calc(498/var(--view-size)*100vw);
  height: calc(58.52/var(--view-size)*100vw);
}
.top_fv_main_content.load > span > span > span {
  animation: padding-left .6s linear forwards;
  -webkit-animation: padding-left .6s linear forwards; /* プレフィックス */
  animation-delay: 2.8s;
  -webkit-animation-delay: 2.8s; /* プレフィックス */
}
.top_fv_main_content > span > span > span img {
  display: block;
  width: calc(384/var(--view-size)*100vw);
  height: calc(58.52/var(--view-size)*100vw);
}
@-webkit-keyframes padding-left {
  0% {
    width: calc(498/var(--view-size)*100vw);
    padding-left: calc(114/var(--view-size)*100vw);
  }
  100% {
    width: calc(581/var(--view-size)*100vw);
    padding-left: calc(197/var(--view-size)*100vw);
  }
}
@keyframes padding-left {
  0% {
    width: calc(498/var(--view-size)*100vw);
    padding-left: calc(114/var(--view-size)*100vw);
  }
  100% {
    width: calc(581/var(--view-size)*100vw);
    padding-left: calc(197/var(--view-size)*100vw);
  }
}
.top_fv_main_content > span > span > span::before,
.top_fv_main_content > span > span > span::after {
  content: "";
  position: absolute;
  width: 0;
  height: calc(3.5/var(--view-size)*100vw);
  background-color: #000;
}
.top_fv_main_content > span > span > span::before {
  top: calc(-3.5/var(--view-size)*100vw);
  left: calc(409/var(--view-size)*100vw);
}
/* 右上→左上の線　on */
.top_fv_main_content.load > span > span > span::before {
  animation: slide-left .6s linear forwards;
  -webkit-animation: slide-left .6s linear forwards; /* プレフィックス */
  animation-delay: 1.4s;
  -webkit-animation-delay: 1.4s; /* プレフィックス */
}
@-webkit-keyframes slide-left {
  0% {
    width: 0%; /* スタート時の幅 */
    left: calc(409/var(--view-size)*100vw); /* 線の位置を右端から開始 */
  }
  100% {
    width: calc(409/var(--view-size)*100vw); /* 最終的に全幅 */
    left: 0%; /* 左端に向かってスライド */
  }
}
@keyframes slide-left {
  0% {
    width: 0%; /* スタート時の幅 */
    left: calc(409/var(--view-size)*100vw); /* 線の位置を右端から開始 */
  }
  100% {
    width: calc(409/var(--view-size)*100vw); /* 最終的に全幅 */
    left: 0%; /* 左端に向かってスライド */
  }
}
.top_fv_main_content > span > span > span::after {
  bottom: calc(-3.5/var(--view-size)*100vw);
  left: 0;
}
/* 左下→右下の線　on */
.top_fv_main_content.load > span > span > span::after {
  animation: slide-right .6s linear forwards;
  -webkit-animation: slide-right .6s linear forwards; /* プレフィックス */
  animation-delay: 2.2s;
  -webkit-animation-delay: 2.2s; /* プレフィックス */
}
@-webkit-keyframes slide-right {
  0% {
    width: 0%; /* スタート時の幅 */
  }
  100% {
    width: calc(409/var(--view-size)*100vw); /* 最終的に全幅 */
  }
}
@keyframes slide-right {
  0% {
    width: 0%; /* スタート時の幅 */
  }
  100% {
    width: calc(409/var(--view-size)*100vw); /* 最終的に全幅 */
  }
}

.top_fv_main_content.end-state {
  opacity: 1;
  left: calc(-83/var(--view-size)*100vw);
}
.top_fv_main_content.end-state::before {
  height: calc(100% + (3.5/var(--view-size)*100vw));
}
.top_fv_main_content.end-state::after {
  display: none;
}
.top_fv_main_content.end-state > span::before,
.top_fv_main_content.end-state > span::after,
.top_fv_main_content.end-state > span > span::before,
.top_fv_main_content.end-state > span > span::after {
  opacity: 0;
}
.top_fv_main_content.end-state > span > span > span::before,
.top_fv_main_content.end-state > span > span > span::after {
  width: calc(409/var(--view-size)*100vw);
}
.top_fv_main_content.end-state > span > span > span {
  padding-left: calc(197/var(--view-size)*100vw);
  width: calc(581/var(--view-size)*100vw);
}
.top_fv_main_content.end-state > span > span > span::before {
  left: 0;
}

.top_fv_main_copy {
  margin-top: calc(168/var(--view-size)*100vw);
}
.top_fv_main_copy p {
  font-family: 'Inter', serif;
  font-weight: 800;
  line-height: calc(120/100);
  font-size: calc(100/var(--view-size)*100vw);
  text-align: right;
  color: #000;
}
.top_fv_main_copy p > span {
  opacity: 0;
}
.top_fv_main_copy.load p > span, .top_fv_main_copy.end-state p > span {
  opacity: 1;
}
.top_fv_main_copy.load p > span > span {
  animation: text_anime_on 1s ease-out forwards;
  -webkit-animation: text_anime_on 1s ease-out forwards; /* プレフィックス */
  opacity: 0;
}
@-webkit-keyframes text_anime_on {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes text_anime_on {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* FVここまで */

/* ABOUTセクションここから */
.top_about_section {
  position: relative;
  padding: calc(142/var(--view-size)*100vw) 0 calc(118/var(--view-size)*100vw);
}
.top_about_section_line {
  position: absolute;
}
.top_about_section_line:nth-child(1) {
  top: calc(264.76/var(--view-size)*100vw);
  right: calc(268.05/var(--view-size)*100vw);
  width: calc(247.67/var(--view-size)*100vw);
  height: calc(2/var(--view-size)*100vw);
  transform: rotate(127.28deg);
  -webkit-transform: rotate(127.28deg);
}
.top_about_section_line::before {
  content: "";
  position: absolute;
  width: 0;
  height: 100%;
}
.top_about_section.active .top_about_section_line::before {
  background-color: #E4E4E4;
  width: 100%;
}
.top_about_section.active .top_about_section_line:nth-child(1)::before {
  transition: width 1s ease-out 1.2s;
  -webkit-transition: width 1s ease-out 1.2s;
}
.top_about_section_line:nth-child(2) {
  top: calc(145.76/var(--view-size)*100vw);
  right: calc(314.05/var(--view-size)*100vw);
  width: calc(165.91/var(--view-size)*100vw);
  height: calc(2/var(--view-size)*100vw);
  transform: rotate(198.26deg);
  -webkit-transform: rotate(198.26deg);
}
.top_about_section.active .top_about_section_line:nth-child(2)::before,
.top_about_section.active .top_about_section_line:nth-child(3)::before {
  transition: width 1s ease-out 2.2s;
  -webkit-transition: width 1s ease-out 2.2s;
}
.top_about_section_line:nth-child(3) {
  top: calc(224.76/var(--view-size)*100vw);
  right: calc(240.05/var(--view-size)*100vw);
  width: calc(120.91/var(--view-size)*100vw);
  height: calc(2/var(--view-size)*100vw);
  transform: rotate(-288.26deg);
  -webkit-transform: rotate(-288.26deg);
}
.top_about_section_dots {
  position: absolute;
  top: calc(162.9/var(--view-size)*100vw);
  right: calc(312.89/var(--view-size)*100vw);
  background-color: #E4E4E4;
  width: calc(14.31/var(--view-size)*100vw);
  height: calc(14.31/var(--view-size)*100vw);
  border-radius: 50%;
  opacity: 0;
}
.top_about_section.active .top_about_section_dots {
  animation: dot-circle 0.2s linear forwards;
  -webkit-animation: dot-circle 0.2s linear forwards;
}
@keyframes dot-circle {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes dot-circle {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.top_about_section_dots::before, .top_about_section_dots::after {
  content: "";
  position: absolute;
  background-color: #E4E4E4;
  width: calc(8.37/var(--view-size)*100vw);
  height: calc(8.37/var(--view-size)*100vw);
  border-radius: 50%;
  opacity: 0;
}
.top_about_section_dots::before {
  top: calc(-46.37/var(--view-size)*100vw);
  left: calc(-153.54/var(--view-size)*100vw);
}
.top_about_section.active .top_about_section_dots::before {
  animation: dot-circle 0.2s linear forwards;
  animation-delay: 0.4s;
  -webkit-animation: dot-circle 0.2s linear forwards;
  -webkit-animation-delay: 0.4s;
}
.top_about_section_dots::after {
  bottom: calc(-109.6/var(--view-size)*100vw);
  right: calc(-34.97/var(--view-size)*100vw);
}
.top_about_section.active .top_about_section_dots::after {
  animation: dot-circle 0.2s linear forwards;
  animation-delay: 1.2s;
  -webkit-animation: dot-circle 0.2s linear forwards;
  -webkit-animation-delay: 1.2s;
}
.top_about_section.active .top_about_section_dot {
  animation: dot-circle 0.2s linear forwards;
  animation-delay: 0.8s;
  -webkit-animation: dot-circle 0.2s linear forwards;
  -webkit-animation-delay: 0.8s;
}
.top_about_section_dot {
  position: absolute;
  top: calc(360.51/var(--view-size)*100vw);
  right: calc(463.24/var(--view-size)*100vw);
  background-color: #E4E4E4;
  width: calc(8.37/var(--view-size)*100vw);
  height: calc(8.37/var(--view-size)*100vw);
  border-radius: 50%;
  opacity: 0;
}
.top_about_list {
  display: flex;
  flex-direction: row;
  position: relative;
  z-index: 1;
}
.top_about_item_wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
}
.top_about_list:first-child .top_about_item_wrapper {
  margin-left: calc(-31/var(--view-size)*100vw);
  width: calc(891/var(--view-size)*100vw);
  height: calc(891/var(--view-size)*100vw);
}
.top_about_item_wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: solid calc(1/var(--view-size)*100vw) #D9D9D9;
}
.top_about_list:last-child .top_about_item_wrapper {
  margin-top: calc(-321/var(--view-size)*100vw);
  margin-left: auto;
  margin-right: calc(16/var(--view-size)*100vw);
  width: calc(894/var(--view-size)*100vw);
  height: calc(894/var(--view-size)*100vw);
}
.top_about_list:first-child .top_about_item {
  margin-top: calc(19/var(--view-size)*100vw);
  margin-left: calc(45/var(--view-size)*100vw);
  width: calc(754/var(--view-size)*100vw);
}
.top_about_list:last-child .top_about_item {
  margin-top: calc(39/var(--view-size)*100vw);
  margin-left: calc(54/var(--view-size)*100vw);
  width: calc(614/var(--view-size)*100vw);
}
.top_about_title {
  position: relative;
  font-family: 'Inter', serif;
  font-weight: 700;
  line-height: calc(64/44);
  font-size: calc(44/var(--view-size)*100vw);
  color: #000;
  padding-bottom: calc(8/var(--view-size)*100vw);
}
.top_about_title::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: calc(2/var(--view-size)*100vw);
  background-color: #000;
  transition: width 4s ease-out 2.4s;
  -webkit-transition: width 4s ease-out 2.4s;
}
.top_about_title.fadeBeforeLine::before {
  width: 100%;
}
.top_about_title span {
  display: inline-block;
}
.top_about_text {
  margin-top: calc(15/var(--view-size)*100vw);
  line-height: calc(53/22);
  font-size: calc(22/var(--view-size)*100vw);
  transition-timing-function: ease-in;
}
.top_about_list:first-child .top_about_text {
  padding-right: calc(74/var(--view-size)*100vw);
}
.top_about_video {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(720/var(--view-size)*100vw);
  opacity: 0.5;
  z-index: 0;
}
.top_about_video video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* ABOUTセクションここまで */

/* ABOUTセクション→Our Servicesセクション間アニメーションここから */
.scroll_bg {
  transition: background-color 0.5s ease;
  -webkit-transition: background-color 0.5s ease;
}
.scroll_bg section {
  opacity: 1;
  transition: opacity 0.5s ease;
  -webkit-transition: opacity 0.5s ease;
}
.scroll_bg.scrolled_about {
  background-color: #fff;
}
.scroll_bg.scrolled_about .top_services_section {
  opacity: 0;
}
.scroll_bg.scrolled_services {
  background-color: #141414;
}
.scroll_bg.scrolled_services .top_about_section {
  opacity: 0;
}
/* ABOUTセクション→Our Servicesセクション間アニメーションここまで */

/* Our Servicesセクションここから */
.top_services_section {
  background-color: #141414;
  padding: calc(121/var(--view-size)*100vw) 0 calc(122/var(--view-size)*100vw) calc(60/var(--view-size)*100vw);
}
.top_services_title {
  font-family: 'Inter', serif;
  font-weight: 800;
  line-height: 1;
  font-size: calc(80/var(--view-size)*100vw);
  color: #fff;
  text-transform:capitalize;
}
.top_services_title span {
  text-transform:uppercase;
}
.top_services_content {
  position: relative;
  margin-top: calc(57/var(--view-size)*100vw);
  padding-top: calc(12/var(--view-size)*100vw);
}
.top_services_content .slick-list {
  overflow-x: auto;
  overflow-y: hidden;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.top_services_content .slick-list::-webkit-scrollbar {
  display: none;
}
.top_services_content .slick-track {
  display: flex;
}
.slide_arrow.prev_arrow {
  display: none !important;
}
.next_arrow {
  position: absolute;
  bottom: calc(100% + (68 / var(--view-size)* 100vw));
  right: calc(60 / var(--view-size)* 100vw);
  width: calc(198 / var(--view-size)* 100vw);
  height: calc(53 / var(--view-size)* 100vw);
  transition: 0.2s;
  cursor: initial;
  pointer-events: none;
  font-family: 'Inter', serif;
  line-height: calc(53/22);
  font-size: calc(22/var(--view-size)*100vw);
  color: #D9D9D9;
  text-align: left;
  background-color: transparent;
  padding: 0;
  border: none;
}
.slide_arrow.next_arrow:hover {
  opacity: 0.8;
}
.slide_arrow.next_arrow::before, .slide_arrow.next_arrow::after {
  position: absolute;
  background: #D9D9D9;
  content: "";
}
.slide_arrow.next_arrow::before {
  bottom: calc(9 / var(--view-size)* 100vw);
  left: 0;
  width: 100%;
  height: calc(2 / var(--view-size)* 100vw);
}
.slide_arrow.next_arrow::after {
  bottom: calc(26 / var(--view-size)* 100vw);
  right: calc(-6 / var(--view-size)* 100vw);
  width: calc(46.67 / var(--view-size)* 100vw);
  height: calc(2 / var(--view-size)* 100vw);
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
}
.top_services_card {
  overflow: hidden;
  border-radius: calc(29/var(--view-size)*100vw);
  margin-left: calc(51/var(--view-size)*100vw);
  position: relative;
  width: calc(603/var(--view-size)*100vw);
  height: calc(787/var(--view-size)*100vw);
  padding: calc(441/var(--view-size)*100vw) calc(40/var(--view-size)*100vw) calc(60/var(--view-size)*100vw);
}
.top_services_card:first-child {
  margin-left: 0;
}
.top_services_card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, 1) 100%);
}
.top_services_card_img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  -webkit-transition: -webkit-transform 600ms;
  transition: -webkit-transform 600ms;
  transition: transform 600ms;
  transition: transform 600ms, -webkit-transform 600ms;
}
.top_services_card:hover .top_services_card_img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.top_services_card_body {
  -webkit-transition: -webkit-transform 450ms;
  transition: -webkit-transform 450ms;
  transition: transform 450ms;
  transition: transform 450ms, -webkit-transform 450ms;
  will-change: transform;
  transform: translate(0px, calc(250/var(--view-size)*100vw));
}
.top_services_card:hover .top_services_card_body {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}
.top_services_card_title {
  position: relative;
  font-family: 'Inter', serif;
  font-weight: 700;
  line-height: calc(42/40);
  font-size: calc(40/var(--view-size)*100vw);
  color: #fff;
  height: calc(87/var(--view-size)*100vw);
  z-index: 1;
  text-transform:capitalize;
  transition: padding 250ms;
  padding-bottom: calc(50/var(--view-size)*100vw);
}
.top_services_card:hover .top_services_card_title {
  padding-bottom: 0;
}
.top_services_card_title span {
  text-transform:uppercase;
}
.top_services_card_text {
  position: relative;
  margin-top: calc(9.78/var(--view-size)*100vw);
  line-height: calc(34/18);
  font-size: calc(18/var(--view-size)*100vw);
  color: #fff;
  z-index: 1;
}
/* Our Servicesセクションここまで */

/* Case Studiesセクションここから */
.top_case_section {
  margin-top: calc(-2/var(--view-size)*100vw);
  background: linear-gradient(180deg, rgba(20, 20, 20, 1) 0%, rgba(102, 102, 102, 1) 100%);
  padding: calc(147/var(--view-size)*100vw) calc(60/var(--view-size)*100vw) calc(162/var(--view-size)*100vw);
}
.top_case_title {
  font-family: 'Inter', serif;
  font-weight: 900;
  line-height: 1;
  font-size: calc(80/var(--view-size)*100vw);
  color: #fff;
  text-transform:capitalize;
}
.top_case_title span {
  text-transform:uppercase;
}
.top_case_content {
  margin-top: calc(166/var(--view-size)*100vw);
}
.top_case_btn {
  padding: 0 calc(290/var(--view-size)*100vw);
}
.top_case_link_wrapper {
  position: relative;
}
.top_case_link_wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: solid calc(1/var(--view-size)*100vw) #E4E4E4;
}
.top_case_link {
  padding: calc(331/var(--view-size)*100vw) 0 calc(344/var(--view-size)*100vw);
  display: flex;
  justify-content: center;
  font-family: 'Inter', serif;
  font-weight: 400;
  line-height: calc(64/40);
  font-size: calc(40/var(--view-size)*100vw);
  color: #707070;
}
/* Case Studiesセクションここまで */

@media(max-width: 840px){
/* ヘッダーここから */
header {
  justify-content: flex-start;
  padding: calc(11/var(--head-size)*100vw) calc(16/var(--head-size)*100vw) calc(12/var(--head-size)*100vw) calc(11/var(--head-size)*100vw);
}
.common_header_logo {
  height: calc(27/var(--head-size)*100vw);
}
.common_header_nav {
  width: 100vw;
  height: 100vh;
  background-color: #000;
  position: fixed;
  top: calc(11/var(--head-size)*100vw);
  left: 200%;
  display: block;
  padding: calc(77/var(--head-size)*100vw) calc(18/var(--head-size)*100vw) 0 calc(19/var(--head-size)*100vw);
  -webkit-transition: 0.2s;
  -moz-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
}
.common_header_nav.nav_open {
  left: 0;
}
.common_header_menu_list {
  display: block;
}
.common_header_menu_item {
  position: relative;
  border-bottom: solid calc(1/var(--head-size)*100vw) #fff;
}
.common_header_menu_item::before {
  display: none;
}
.common_header_menu_link {
  display: block;
  text-align: center;
  font-weight: 900;
  line-height: calc(64/26);
  font-size: calc(26/var(--head-size)*100vw);
  padding: calc(3/var(--head-size)*100vw) 0;
}
.common_header_menu_link::before {
  display: none;
}
.common_header_btn {
  display: none;
}
.common_header_lang {
  margin-top: calc(13/var(--head-size)*100vw);
  padding: 0;
}
.common_header_lang_list {
  column-gap: calc(23/var(--head-size)*100vw);
  justify-content: center;
}
.common_header_lang_item::before {
  display: none;
}
.common_header_nav_bottom {
  display: block;
  margin-top: calc(70/var(--head-size)*100vw);
  text-align: center;
  line-height: 1;
}
.common_header_nav_bottom_address, .common_header_nav_bottom_mail {
  position: relative;
  display: inline-block;
  line-height: 1;
  padding-left: calc(28/var(--head-size)*100vw);
}
.common_header_nav_bottom_mail {
  margin-top: calc(3/var(--head-size)*100vw);
}
.common_header_nav_bottom_address::before, .common_header_nav_bottom_mail::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: calc(9/var(--head-size)*100vw);
  width: calc(18/var(--head-size)*100vw);
  height: calc(18.23/var(--head-size)*100vw);
  background-size: cover;
}
.common_header_nav_bottom_address::before {
  background-image: url(../img/common/footer-icon-home.png);
}
.common_header_nav_bottom_mail::before {
  background-image: url(../img/common/footer-icon-mail.png);
  transform: translateY(-35%);
}
.common_header_nav_bottom_address span, .common_header_nav_bottom_mail a {
  font-family: 'Inter', serif;
  font-weight: 500;
  line-height: calc(12.1/10);
  font-size: calc(10/var(--head-size)*100vw);
  color: #707070;
}
.common_header_nav_bottom_mail a {
  text-decoration: underline;
}
.common_header_nav_bottom_address span span {
  text-transform:uppercase;
}
.common_header_contact {
  display: block;
  margin-left: auto;
  margin-right: calc(16/var(--head-size)*100vw);
  position: relative;
}
.common_header_contact_link {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  border-radius: 50%;
  width: calc(23/var(--head-size)*100vw);
  height: calc(23/var(--head-size)*100vw);
}
.common_header_contact_link img {
  display: inline-block;
  width: calc(14.92/var(--head-size)*100vw);
  height: calc(14.92/var(--head-size)*100vw);
}
.common_header_ham_wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
}
.common_header_ham {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  width: calc(13/var(--head-size)*100vw);
  height: calc(10/var(--head-size)*100vw);
  background: none;
  border: none;
  outline: none;
  padding: 0;
}
.common_header_ham::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(-5 / var(--head-size)* 100vw);
  left: calc(-3.33 / var(--head-size)* 100vw);
  right: calc(-3.33 / var(--head-size)* 100vw);
  bottom: calc(-5 / var(--head-size)* 100vw);
}
.common_header_ham_line {
  background: #fff;
  height: calc(1 / var(--head-size)* 100vw);
  width: 100%;
  position: relative;
  left: 0;
  top: 0;
  -webkit-transition: 0.2s;
  -moz-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
}
.ham_close .common_header_ham_line:first-child {
  position: absolute;
  transform: rotate(-45deg);
  top: calc(4/var(--head-size)*100vw);
  left: calc(-6/var(--head-size)*100vw);
  width: 200%;
}
.ham_close .common_header_ham_line:nth-child(2) {
  display: none;
}
.ham_close .common_header_ham_line:last-child {
  position: absolute;
  transform: rotate(45deg);
  top: calc(4/var(--head-size)*100vw);
  left: calc(-6/var(--head-size)*100vw);
  width: 200%;
}
/* ヘッダーここまで */

/* Our Servicesセクションここから */
.top_services_card_body {
  transform: initial;
  -webkit-transform: initial;
  -moz-transform: initial;
  -ms-transform: initial;
  transition: transform 0s;
}
.next_arrow {
  pointer-events: initial;
  cursor: pointer;
  z-index: 2;
}
.top_services_card:hover .top_services_card_img {
  -webkit-transform: scale(1);
  transform: scale(1);
}
.top_services_card:hover .top_services_card_body {
  -webkit-transform: initial;
  transform: initial;
}
.top_services_card:hover .top_services_card_title {
  padding-bottom: calc(50 / var(--view-size)* 100vw);
}
/* Our Servicesセクションここまで */
}

@media(max-width: 540px){
/* ヘッダーここから */
header {
  padding: calc(11/var(--view-size)*100vw) calc(16/var(--view-size)*100vw) calc(12/var(--view-size)*100vw) calc(11/var(--view-size)*100vw);
}
.common_header_logo {
  height: calc(27/var(--view-size)*100vw);
}
.common_header_nav {
  top: calc(11/var(--view-size)*100vw);
  padding: calc(77/var(--view-size)*100vw) calc(18/var(--view-size)*100vw) 0 calc(19/var(--view-size)*100vw);
}
.common_header_menu_link {
  font-size: calc(26/var(--view-size)*100vw);
  padding: calc(3/var(--view-size)*100vw) 0;
}
.common_header_lang {
  margin-top: calc(13/var(--view-size)*100vw);
}
.common_header_lang_list {
  column-gap: calc(23/var(--view-size)*100vw);
}
.common_header_nav_bottom {
  margin-top: calc(70/var(--view-size)*100vw);
}
.common_header_nav_bottom_address, .common_header_nav_bottom_mail {
  padding-left: calc(28/var(--view-size)*100vw);
}
.common_header_nav_bottom_mail {
  margin-top: calc(3/var(--view-size)*100vw);
}
.common_header_nav_bottom_address::before, .common_header_nav_bottom_mail::before {
  left: calc(9/var(--view-size)*100vw);
  width: calc(18/var(--view-size)*100vw);
  height: calc(18.23/var(--view-size)*100vw);
}
.common_header_nav_bottom_address span, .common_header_nav_bottom_mail a {
  font-size: calc(10/var(--view-size)*100vw);
}
.common_header_contact {
  margin-right: calc(16/var(--view-size)*100vw);
}
.common_header_contact_link {
  width: calc(23/var(--view-size)*100vw);
  height: calc(23/var(--view-size)*100vw);
}
.common_header_contact_link img {
  width: calc(14.92/var(--view-size)*100vw);
  height: calc(14.92/var(--view-size)*100vw);
}
.common_header_ham {
  width: calc(13/var(--view-size)*100vw);
  height: calc(10/var(--view-size)*100vw);
}
.common_header_ham::before {
  top: calc(-5 / var(--view-size)* 100vw);
  left: calc(-3.33 / var(--view-size)* 100vw);
  right: calc(-3.33 / var(--view-size)* 100vw);
  bottom: calc(-5 / var(--view-size)* 100vw);
}
.common_header_ham_line {
  height: calc(1 / var(--view-size)* 100vw);
  -webkit-transition: 0.2s;
  -moz-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
}
.ham_close .common_header_ham_line:first-child {
  top: calc(4/var(--view-size)*100vw);
  left: calc(-6/var(--view-size)*100vw);
}
.ham_close .common_header_ham_line:last-child {
  top: calc(4/var(--view-size)*100vw);
  left: calc(-6/var(--view-size)*100vw);
}
/* ヘッダーここまで */

/* フッターここから */
footer {
  padding: calc(14/var(--view-size)*100vw) 0 calc(10/var(--view-size)*100vw);
  text-align: center;
}
.common_footer_inner {
  padding: 0 calc(20/var(--view-size)*100vw);
}
.common_footer_logo {
  height: calc(27/var(--view-size)*100vw);
  padding-left: 0;
}
.common_footer_content {
  margin-top: calc(6/var(--view-size)*100vw);
  padding-left: 0;
  line-height: 1;
}
.common_footer_address, .common_footer_mail {
  display: inline-block;
  line-height: 1;
  padding-left: calc(28/var(--view-size)*100vw);
}
.common_footer_mail {
  margin-top: calc(3/var(--view-size)*100vw);
}
.common_footer_address::before, .common_footer_mail::before {
  width: calc(18/var(--view-size)*100vw);
  height: calc(18.23/var(--view-size)*100vw);
  transform: translateY(-50%);
  left: calc(9/var(--view-size)*100vw);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}
.common_footer_mail::before {
  transform: translateY(-35%);
}
.common_footer_address span, .common_footer_mail a {
  font-weight: 500;
  line-height: calc(12.1/10);
  font-size: calc(10/var(--view-size)*100vw);
}
.common_footer_copy {
  margin-top: calc(26.54/var(--view-size)*100vw);
  font-size: calc(8.33/var(--view-size)*100vw);
  text-align: center;
}
/* フッターここまで */

/* FVここから */
.top_fv {
  overflow: hidden;
}
.top_fv_main {
  position: relative;
  padding: calc(277/var(--view-size)*100vw) calc(38/var(--view-size)*100vw) calc(369/var(--view-size)*100vw) calc(75/var(--view-size)*100vw);
  background: linear-gradient(180deg, rgba(228, 228, 228, 1) 0%, rgba(228, 228, 228, 1) 73%, rgba(255, 255, 255, 1) 100%);
}
@-webkit-keyframes slide-box {
  0% {
    left: 0;
  }
  100% {
    left: calc(-49/var(--view-size)*100vw);
  }
}
@keyframes slide-box {
  0% {
    left: 0;
  }
  100% {
    left: calc(-49/var(--view-size)*100vw);
  }
}
.top_fv_main_content::before {
  top: calc(-2.04/var(--view-size)*100vw);
  width: calc(2.08/var(--view-size)*100vw);
}
/* 左上→左下の線　on */
.top_fv_main_content.load::before {
  top: calc(-2.04/var(--view-size)*100vw);
}
@-webkit-keyframes slide-bottom {
  0% {
    height: 0;
  }
  100% {
    height: calc(100% + (2.04/var(--view-size)*100vw));
  }
}
@keyframes slide-bottom {
  0% {
    height: 0;
  }
  100% {
    height: calc(100% + (2.04/var(--view-size)*100vw));
  }
}
.top_fv_main_content::after {
  left: calc(68.31/var(--view-size)*100vw);
  width: calc(228.61/var(--view-size)*100vw);
  height: calc(34.85/var(--view-size)*100vw);
}
@-webkit-keyframes slide-text {
  0% {
    left: calc(68.31/var(--view-size)*100vw);
  }
  100% {
    left: 100%;
  }
}
@keyframes slide-text {
  0% {
    left: calc(68.31/var(--view-size)*100vw);
  }
  100% {
    left: 100%;
  }
}
.top_fv_main_content > span::before,
.top_fv_main_content > span::after,
.top_fv_main_content > span > span::before,
.top_fv_main_content > span > span::after {
  width: calc(5/var(--view-size)*100vw);
  height: calc(5/var(--view-size)*100vw);
}
.top_fv_main_content > span::before {
  left: calc(241.04/var(--view-size)*100vw);
  top: calc(-3.28/var(--view-size)*100vw);
}
.top_fv_main_content > span > span::after {
  left: calc(241.04/var(--view-size)*100vw);
  bottom: calc(-1.38/var(--view-size)*100vw);
}
.top_fv_main_content > span::after {
  top: calc(-3.28/var(--view-size)*100vw);
  left: calc(-1.04/var(--view-size)*100vw);
}
.top_fv_main_content > span > span::before {
  bottom: calc(-1.38/var(--view-size)*100vw);
  left: calc(-1.04/var(--view-size)*100vw);
}
.top_fv_main_content > span > span > span {
  padding-left: calc(68.31/var(--view-size)*100vw);
  width: calc(346/var(--view-size)*100vw);
  height: calc(34.85/var(--view-size)*100vw);
}
.top_fv_main_content > span > span > span img {
  width: calc(228.69/var(--view-size)*100vw);
  height: calc(34.85/var(--view-size)*100vw);
}
@-webkit-keyframes padding-left {
  0% {
    width: calc(297/var(--view-size)*100vw);
    padding-left: calc(68.31/var(--view-size)*100vw);
  }
  100% {
    width: calc(346/var(--view-size)*100vw);
    padding-left: calc(117.31/var(--view-size)*100vw);
  }
}
@keyframes padding-left {
  0% {
    width: calc(297/var(--view-size)*100vw);
    padding-left: calc(68.31/var(--view-size)*100vw);
  }
  100% {
    width: calc(346/var(--view-size)*100vw);
    padding-left: calc(117.31/var(--view-size)*100vw);
  }
}
.top_fv_main_content > span > span > span::before,
.top_fv_main_content > span > span > span::after {
  height: calc(2.08/var(--view-size)*100vw);
}
.top_fv_main_content > span > span > span::before {
  top: calc(-2.08/var(--view-size)*100vw);
  left: calc(243.54/var(--view-size)*100vw);
}
@-webkit-keyframes slide-left {
  0% {
    width: 0%; /* スタート時の幅 */
    left: calc(243.54/var(--view-size)*100vw); /* 線の位置を右端から開始 */
  }
  100% {
    width: calc(243.54/var(--view-size)*100vw); /* 最終的に全幅 */
    left: 0%; /* 左端に向かってスライド */
  }
}
@keyframes slide-left {
  0% {
    width: 0%; /* スタート時の幅 */
    left: calc(243.54/var(--view-size)*100vw); /* 線の位置を右端から開始 */
  }
  100% {
    width: calc(243.54/var(--view-size)*100vw); /* 最終的に全幅 */
    left: 0%; /* 左端に向かってスライド */
  }
}
.top_fv_main_content > span > span > span::after {
  bottom: calc(-2.08/var(--view-size)*100vw);
}
@-webkit-keyframes slide-right {
  0% {
    width: 0%; /* スタート時の幅 */
  }
  100% {
    width: calc(243.54/var(--view-size)*100vw); /* 最終的に全幅 */
  }
}
@keyframes slide-right {
  0% {
    width: 0%; /* スタート時の幅 */
  }
  100% {
    width: calc(243.54/var(--view-size)*100vw); /* 最終的に全幅 */
  }
}

.top_fv_main_content.end-state {
  left: calc(-49 / var(--view-size)* 100vw);
}
.top_fv_main_content.end-state::before {
  top: calc(-2.04/var(--view-size)*100vw);
  height: calc(100% + (2.04/var(--view-size)*100vw));
}
.top_fv_main_content.end-state > span > span > span {
  padding-left: calc(117.31/var(--view-size)*100vw);
  width: calc(346/var(--view-size)*100vw);
}
.top_fv_main_content.end-state > span > span > span::before {
  width: calc(243.54/var(--view-size)*100vw);
}
.top_fv_main_content.end-state > span > span > span::after {
  width: calc(243.54/var(--view-size)*100vw);
}

.top_fv_main_copy {
  margin: calc(95.36/var(--view-size)*100vw) calc(-38/var(--view-size)*100vw) 0 calc(-75/var(--view-size)*100vw);
  width: 100vw;
}
.top_fv_main_copy p {
  line-height: calc(39/36);
  font-size: calc(36/var(--view-size)*100vw);
  text-align: center;
}
.top_fv_main_copy.load p > span {
  animation-duration: .4s;
  -webkit-animation-duration: .4s;
  -moz-animation-duration: .4s;
  -o-animation-duration: .4s;
  -ms-animation-duration: .4s;
}
.top_fv_main_copy.load p > span:first-child {
  animation-delay: 2.2s;
  -webkit-animation-delay: 2.2s;
  -moz-animation-delay: 2.2s;
  -o-animation-delay: 2.2s;
  -ms-animation-delay: 2.2s;
}
.top_fv_main_copy.load p > span:last-child {
  animation-delay: 2.4s;
  -webkit-animation-delay: 2.4s;
  -moz-animation-delay: 2.4s;
  -o-animation-delay: 2.4s;
  -ms-animation-delay: 2.4s;
}
/* FVここまで */

.top_scroll {
  display: block;
  position: absolute;
  top: calc(594/var(--view-size)*100vw);
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  width: 0;
  height: calc(315/var(--view-size)*100vw);
}
.top_scroll::before, .top_scroll::after {
  content: "";
  position: absolute;
  left: 0;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  width: calc(5/var(--view-size)*100vw);
  height: calc(5/var(--view-size)*100vw);
  background-color: #000;
  border-radius: 50%;
  opacity: 0;
  z-index: 1;
}
.top_scroll::before {
  top: 0;
}
.top_scroll::after {
  bottom: 0;
}
.top_scroll.scrolled_past::before, .top_scroll.scrolled_past::after {
  opacity: 1;
}
.top_scroll.scrolled_past::before {
  transition: opacity 0.2s linear 0.4s;
  -webkit-transition: opacity 0.2s linear 0.4s;
  -moz-transition: opacity 0.2s linear 0.4s;
  -o-transition: opacity 0.2s linear 0.4s;
  -ms-transition: opacity 0.2s linear 0.4s;
}
.top_scroll.scrolled_past::after {
  transition: opacity 0.2s linear 1.8s;
  -webkit-transition: opacity 0.2s linear 1.8s;
  -moz-transition: opacity 0.2s linear 1.8s;
  -o-transition: opacity 0.2s linear 1.8s;
  -ms-transition: opacity 0.2s linear 1.8s;
}
.top_scroll > span {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  width: calc(1/var(--view-size)*100vw);
  height: 0;
  background-color: #000;
}
.top_scroll.scrolled_past > span {
  height: calc(315/var(--view-size)*100vw);
  transition: height 1.2s linear 0.6s;
  -webkit-transition: height 1.2s linear 0.6s;
  -moz-transition: height 1.2s linear 0.6s;
  -o-transition: height 1.2s linear 0.6s;
  -ms-transition: height 1.2s linear 0.6s;
}

/* ABOUTセクションここから */
.top_about_section {
  padding: calc(140/var(--view-size)*100vw) 0 calc(176/var(--view-size)*100vw);
}
.top_about_section_line,
.top_about_section_dots,
.top_about_section_dot {
  display: none;
}
.top_about_item_wrapper {
  border-radius: initial;
  display: block;
}
.top_about_list:first-child .top_about_item_wrapper {
  margin-left: 0;
  width: 100%;
  height: initial;
}
.top_about_list:last-child .top_about_item_wrapper {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  height: initial;
}
.top_about_item_wrapper::before {
  left: calc(28/var(--view-size)*100vw);
  width: calc(310/var(--view-size)*100vw);
  height: calc(310/var(--view-size)*100vw);
}
.top_about_list:first-child .top_about_item_wrapper::before {
  top: calc(-57/var(--view-size)*100vw);
}
.top_about_list:last-child .top_about_item_wrapper::before {
  top: calc(11/var(--view-size)*100vw);
}
.top_about_list:first-child .top_about_item {
  margin-top: 0;
  margin-left: 0;
  width: 100%;
}
.top_about_list:last-child .top_about_item {
  margin-top: calc(81/var(--view-size)*100vw);
  margin-left: 0;
  width: 100%;
}
.top_about_title {
  font-weight: 600;
  line-height: calc(23/19);
  font-size: calc(19/var(--view-size)*100vw);
  padding-bottom: calc(1/var(--view-size)*100vw);
}
.top_about_title::before {
  height: calc(1/var(--view-size)*100vw);
}
.top_about_text {
  margin-top: calc(9/var(--view-size)*100vw);
  line-height: calc(28/14);
  font-size: calc(14/var(--view-size)*100vw);
}
.top_about_list:first-child .top_about_text {
  padding-right: 0;
}
.top_about_video {
  display: none;
}
/* ABOUTセクションここまで */

/* Our Servicesセクションここから */
.top_services_section {
  padding: calc(44/var(--view-size)*100vw) 0 calc(82.53/var(--view-size)*100vw) calc(18/var(--view-size)*100vw);
}
.top_services_title {
  font-size: calc(26/var(--view-size)*100vw);
  letter-spacing: 0.05em;
}
.top_services_content {
  margin-top: calc(49/var(--view-size)*100vw);
  padding-top: calc(5.53/var(--view-size)*100vw);
}
.next_arrow {
  bottom: calc(100% + (54 / var(--view-size)* 100vw));
  right: calc(18 / var(--view-size)* 100vw);
  width: calc(79 / var(--view-size)* 100vw);
  height: calc(28 / var(--view-size)* 100vw);
  line-height: calc(28/14);
  font-size: calc(14/var(--view-size)*100vw);
}
.slide_arrow.next_arrow::before {
  bottom: calc(5 / var(--view-size)* 100vw);
  height: calc(1 / var(--view-size)* 100vw);
}
.slide_arrow.next_arrow::after {
  bottom: calc(12 / var(--view-size)* 100vw);
  right: calc(-3 / var(--view-size)* 100vw);
  width: calc(19 / var(--view-size)* 100vw);
  height: calc(1 / var(--view-size)* 100vw);
  transform: rotate(-134.1deg);
}
.top_services_card {
  border-radius: calc(15.69/var(--view-size)*100vw);
  margin-left: calc(20/var(--view-size)*100vw);
  width: calc(326/var(--view-size)*100vw);
  height: calc(426/var(--view-size)*100vw);
  padding: calc(238.62/var(--view-size)*100vw) calc(21/var(--view-size)*100vw) calc(32.62/var(--view-size)*100vw);
}
.top_services_card_title {
  font-weight: 700;
  line-height: calc(22.7/21.64);
  font-size: calc(21.64/var(--view-size)*100vw);
  height: calc(47/var(--view-size)*100vw);
}
.top_services_card_text {
  margin-top: calc(5.11/var(--view-size)*100vw);
  line-height: calc(18.4/9.74);
  font-size: calc(9.74/var(--view-size)*100vw);
}
/* Our Servicesセクションここまで */

/* Case Studiesセクションここから */
.top_case_section {
  padding: calc(24/var(--view-size)*100vw) calc(2/var(--view-size)*100vw) calc(87/var(--view-size)*100vw);
}
.top_case_title {
  line-height: 1;
  font-size: calc(26/var(--view-size)*100vw);
  letter-spacing: 0.05em;
}
.top_case_content {
  margin-top: calc(91/var(--view-size)*100vw);
}
.top_case_btn {
  padding: 0 calc(68/var(--view-size)*100vw);
}
.top_case_link {
  padding: calc(99/var(--view-size)*100vw) 0 calc(98/var(--view-size)*100vw);
  line-height: calc(30/18.73);
  font-size: calc(18.73/var(--view-size)*100vw);
}
/* Case Studiesセクションここまで */
}