/*======================================
    Font size
======================================*/
/*======================================
    color
======================================*/
/*======================================
    font
======================================*/
@font-face {
  font-family: "Helvetica Neue";
  src: url(../fonts/HelveticaNeue.ttf) format("truetype");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "Helvetica Neue";
  src: url(../fonts/HelveticaNeue-Medium.ttf) format("truetype");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: "Helvetica Neue";
  src: url(../fonts/HelveticaNeue-Bold.ttf) format("truetype");
  font-weight: 700;
  font-style: normal;
}
/*======================================
    common
======================================*/
html {
  font-size: 100%;
  font-family: "Noto Sans KR", sans-serif;
  color: #000;
}
@media screen and (max-width: 768px) {
  html {
    font-size: 2.1333333333vw;
  }
}

body {
  background-color: #fff;
}

img {
  width: 100%;
}

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

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

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

/*======================================
    layout
======================================*/
.container {
  position: relative;
}

.inner {
  width: 96%;
  margin-left: auto;
  margin-right: auto;
}

/*======================================
    location line
======================================*/
.c_location_line {
  position: fixed;
  top: 0;
  height: 100vh;
  width: 1px;
  background-color: #d0d0d0;
  opacity: 0.7;
  z-index: 200;
  transform: translateX(-50%);
}
.c_location_line.-hongkong {
  left: 16.6666666667%;
}
.c_location_line.-shanghai {
  left: 33.3333333333%;
}
.c_location_line.-fukuoka {
  left: 50%;
}
.c_location_line.-hiroshima {
  left: 66.6666666667%;
}
.c_location_line.-tokyo {
  left: 83.3333333333%;
}

.c_location_num {
  position: absolute;
  bottom: 1rem;
  left: 0.25rem;
  font-size: 0.5625rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  color: #cacaca;
}

/*======================================
    tab
======================================*/
.c_tab_buttons {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
@media screen and (max-width: 768px) {
  .c_tab_buttons {
    display: flex;
  }
}

.c_tab_button {
  cursor: pointer;
}

.c_tab_area {
  display: none;
}
.c_tab_area.active {
  display: block;
}

/*======================================
    lang
======================================*/
.lang-switch {
  display: grid;
  grid-template-columns: 1fr;
}
.lang-switch .jp,
.lang-switch .en,
.lang-switch .cn {
  grid-column: 1/2;
  grid-row: 1/2;
  visibility: hidden;
  opacity: 0;
}
.lang-switch .jp.show,
.lang-switch .en.show,
.lang-switch .cn.show {
  visibility: visible;
  opacity: 1;
}

.header {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 500;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  transition: transform 0.3s ease;
  will-change: transform;
}
.header.hide {
  transform: translateY(-100%);
}
.header.h_bg_black {
  position: fixed;
  color: #fff;
}
.header.h_bg_black .h_contact {
  background-color: #fff;
  color: #000;
}
.header.h_bg_black .h_icon .h_icon_bar {
  background-color: #fff;
}
.header.h_bg_black.active .h_logo {
  background: url(../img/logo_white.svg) no-repeat center/contain;
  visibility: visible !important;
}
.header.h_bg_black.active .h_logo img {
  opacity: 0;
}
.header.h_bg_black.active .h_private {
  background: url(../img/icon_privacy_white.svg) no-repeat center/contain;
}
.header.h_bg_black.active .h_private img {
  opacity: 0;
}
.header.h_bg_black .h_link.active {
  color: #fff;
}
@media screen and (min-width: 769px) {
  .header {
    padding: 1.25rem 0;
  }
}
@media screen and (max-width: 768px) {
  .header {
    display: flex;
    height: 7.5rem;
    padding-right: 2.5rem;
    padding-left: 1.875rem;
  }
}

.h_logo {
  width: 5.5rem;
  margin-left: 1.5rem;
  display: block;
}
@media screen and (max-width: 768px) {
  .h_logo {
    width: 8.125rem;
    order: 1;
    margin-left: 0;
    align-self: center;
  }
  .h_logo.is_top {
    visibility: hidden;
  }
}

.h_sp_nav {
  display: contents;
}
@media screen and (max-width: 768px) {
  .h_sp_nav {
    display: none;
  }
}

.d_contents {
  display: none;
}
@media screen and (max-width: 768px) {
  .d_contents {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    color: #fff;
    z-index: 300;
    text-align: center;
    padding: 12.5rem 0;
    display: none;
  }
  .d_contents .h_link {
    display: block;
    margin-top: 1.875rem;
  }
}

.h_link {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  font-family: "Helvetica Neue", sans-serif;
  line-height: 1.8461538462;
  transition: color 0.3s ease;
}
.h_link.active {
  color: #000;
  text-decoration: underline;
}
@media screen and (max-width: 768px) {
  .h_link {
    font-size: 1.5rem;
  }
}

.h_contact {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  font-family: "Helvetica Neue", sans-serif;
  color: #fff;
  background-color: #000;
  border-radius: 5em;
  line-height: 2;
  padding: 0 1.05em;
  align-self: start;
  justify-content: start;
  width: fit-content;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 768px) {
  .h_contact {
    order: 3;
    align-self: center;
    margin-left: 2rem;
    font-size: 1.0625rem;
  }
}
.h_contact:hover {
  opacity: 0.7;
}

.h_links {
  display: flex;
  justify-content: space-between;
  padding-right: 1.25rem;
  align-items: start;
}
@media screen and (max-width: 768px) {
  .h_links {
    display: contents;
  }
}

.h_private {
  display: block;
  max-width: 1.5rem;
}
@media screen and (max-width: 768px) {
  .h_private {
    order: 4;
    align-self: center;
    margin-left: 1.25rem;
    max-width: 2.1875rem;
  }
}

.h_langs {
  display: flex;
  color: #d7d7d7;
}
@media screen and (max-width: 768px) {
  .h_langs {
    order: 2;
    align-self: center;
    margin-left: auto;
  }
}

.h_lang:nth-child(n+2) {
  margin-left: 1em;
  position: relative;
}
.h_lang:nth-child(n+2)::before {
  content: "/";
  position: absolute;
  top: 50%;
  left: -0.5em;
  transform: translate(-75%, -50%);
  font-size: 0.75em;
}

.h_icon {
  display: none;
}
@media screen and (max-width: 768px) {
  .h_icon {
    align-self: center;
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    padding: 0;
    border: none;
    box-shadow: none;
    width: 2.125rem;
    height: 2.125rem;
    background-color: unset;
    display: flex;
    align-items: center;
    order: 5;
    margin-left: 1.25rem;
  }
  .h_icon.active .h_icon_bar.bar1, .h_icon.active .h_icon_bar.bar2 {
    top: 50%;
    transform: translate(-50%, -50%) rotate(30deg);
  }
  .h_icon.active .h_icon_bar.bar3 {
    top: 50%;
    transform: translate(-50%, -50%) rotate(-30deg);
  }
}

.h_icon_bars {
  position: relative;
  width: 2.125rem;
  height: 1.25rem;
}

.h_icon_bar {
  position: absolute;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 1px;
  background-color: #000;
  transition: transform 0.3s ease, top 0.3s ease;
}
.h_icon_bar.bar1 {
  top: 0;
}
.h_icon_bar.bar2 {
  top: 50%;
}
.h_icon_bar.bar3 {
  top: 100%;
}

.footer {
  padding: 3.75rem 1.25rem;
}
.footer.f_bg_black {
  color: #fff;
}

.f_logo {
  display: block;
  max-width: 5.5rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .f_logo {
    max-width: 7.75rem;
  }
}

.f_copyright {
  text-align: center;
  font-weight: 500;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  font-size: 0.75rem;
  font-family: "Helvetica Neue", sans-serif;
  margin-top: 1.875rem;
}
@media screen and (max-width: 768px) {
  .f_copyright {
    font-size: 1.0625rem;
  }
}

/*======================================
    TOP
======================================*/
.t_inner {
  width: 96.7%;
  margin-left: auto;
  margin-right: auto;
}

.t_section_ttl {
  font-size: 4.375rem;
  font-weight: 700;
  letter-spacing: -0.055em;
  font-feature-settings: "palt";
  font-family: "Helvetica Neue", sans-serif;
}
.js_text_color span.char {
  color: #d7d7d7;
  display: inline-block;
}

.t-sp_logo_wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(68.52vh - 7.5rem);
}
@media screen and (min-width: 769px) {
  .t-sp_logo_wrap {
    display: none;
  }
}

.t-sp_logo {
  position: fixed;
  top: calc(34.26vh + 3.75rem);
  left: 50%;
  transform: translate(-50%, -50%);
  width: 19.75rem;
  margin-left: auto;
  margin-right: auto;
  transform-origin: top left;
  z-index: 100;
}

.t-works {
  position: relative;
  z-index: 1;
}

.t-works_head {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}

.t-works_section_ttl {
  grid-column: 1/7;
  grid-row: 2/3;
  align-self: flex-end;
  padding-bottom: 1.875rem;
  border-bottom: 1px solid #000;
  position: relative;
  z-index: 3;
}

.t-works_head_contents {
  grid-column: 2/7;
  grid-row: 1/3;
  height: 98.2142857143vw;
  padding-bottom: 1.875rem;
}
@media screen and (max-width: 768px) {
  .t-works_head_contents {
    grid-column: 1/7;
    height: 198.4vw;
  }
}

.t-works_video_wrap {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  transform-origin: 8% 100%;
}
@media screen and (max-width: 768px) {
  .t-works_video_wrap {
    transform-origin: 26.875rem 100%;
  }
}
.t-works_video_wrap video {
  width: 100%;
  height: auto;
}

.t-works_fv {
  width: 100%;
}
.t-works_fv .swiper-slide {
  aspect-ratio: 1164/654;
}
.t-works_fv .swiper-slide img {
  height: 100%;
  object-fit: cover;
}

.t-works_head_texts {
  grid-column: 1/7;
  grid-row: 1/3;
  min-width: 0;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 20rem;
}
@media screen and (max-width: 768px) {
  .t-works_head_texts {
    padding-bottom: 26.875rem;
  }
}

.t-works_head_en {
  font-size: 2.625rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  line-height: 1.0714285714;
  font-family: "Helvetica Neue", sans-serif;
  width: 96.7%;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .t-works_head_en {
    font-size: 3.5rem;
    line-height: 1.0714285714;
  }
}

.t-works_head_text {
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.6923076923;
  font-feature-settings: "palt";
  width: 66.6666666667%;
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .t-works_head_text {
    width: 83.33%;
    margin-top: 5.625rem;
    font-size: 1.25rem;
    line-height: 1.75;
  }
}

.t-works_body_wrap {
  overflow: hidden;
  position: relative;
  margin-bottom: 0.25rem;
}

.t-works_body {
  transform-origin: right bottom;
  transform-origin: center center;
}

.t-works_lists {
  display: flex;
  column-gap: 0.25rem;
}

.t-works_list {
  display: grid;
  grid-template-columns: 1fr;
  flex-shrink: 0;
  border-radius: 0.3125rem;
  overflow: hidden;
}
.t-works_list:hover .t-works_list_contents {
  opacity: 1;
  visibility: visible;
}

.t-works_list_img {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
}
.t-works_list_img img {
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100);
  width: auto;
  object-fit: contain;
}
@media screen and (max-width: 768px) {
  .t-works_list_img img {
    max-height: 39.75rem;
  }
}

.t-works_list_contents {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background-color: rgba(0, 0, 0, 0.82);
  color: #fff;
  padding: 2.875rem 1.625rem;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.t-works_list_ttl {
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  line-height: 1.0666666667;
  font-family: "Helvetica Neue", sans-serif;
}

.t-works_list_texts {
  margin-top: 1.25rem;
}

.t-works_list_text {
  font-size: 0.4375rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  line-height: 1.1428571429;
}
.t-works_list_text dt, .t-works_list_text dd {
  display: inline-block;
}
.t-works_list_text dd {
  margin-left: 0.5em;
}

.t-partner {
  margin-top: 9.375rem;
}

.t-partner_wrap {
  border-radius: 1.25rem;
  background-color: #000;
  margin-top: 1.25rem;
  background-image: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.3), rgba(0, 0, 0, 0) 40%), radial-gradient(circle at 60% 60%, #0f0f0f, rgba(0, 0, 0, 0) 40%);
  background-size: 300% 300%;
  background-repeat: no-repeat;
  animation: moveBlob 15s linear infinite;
}

@keyframes moveBlob {
  0% {
    background-position: 0% 0%;
  }
  20% {
    background-position: 30% 10%;
  }
  40% {
    background-position: 20% 80%;
  }
  60% {
    background-position: 0% 30%;
  }
  80% {
    background-position: 0% 70%;
  }
  100% {
    background-position: 0% 0%;
  }
}
.t-partner_lists {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  column-gap: 5rem;
  row-gap: 3.125rem;
  padding: 4.375rem 5rem;
}
@media screen and (max-width: 768px) {
  .t-partner_lists {
    column-gap: 2.5rem;
    row-gap: 1rem;
    padding: 3.75rem;
  }
}

.t-location {
  margin-top: 8.75rem;
  display: grid;
  grid-template-columns: 1fr;
  position: relative;
  z-index: 300;
}
@media screen and (max-width: 768px) {
  .t-location {
    display: block;
  }
}

.t-location_texts {
  grid-column: 1/2;
  grid-row: 1/2;
  position: relative;
  z-index: 2;
}

.t-location_ttl {
  font-size: 2.625rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  line-height: 1.0714285714;
  letter-spacing: -0.025em;
  max-width: 35.625rem;
}

.t-location_link {
  display: inline-block;
  font-size: 1.375rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  line-height: 1.1363636364;
  padding-bottom: 0.1em;
  border-bottom: 1px solid #000;
  margin-top: 1.25rem;
}

.t-location_contents {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  aspect-ratio: 1400/600;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .t-location_contents {
    aspect-ratio: 750/590;
  }
}

.t-location_lists {
  display: flex;
  height: 100%;
  position: relative;
}

.t-location_list {
  position: absolute;
}
.t-location_list.-hongkong {
  bottom: 3%;
  left: 13%;
}
@media screen and (max-width: 768px) {
  .t-location_list.-hongkong {
    bottom: 3.75%;
    left: 13.75%;
    display: flex;
    flex-direction: column;
  }
  .t-location_list.-hongkong .t-location_list_target {
    order: 1;
  }
  .t-location_list.-hongkong .t-location_list_name {
    order: 2;
  }
  .t-location_list.-hongkong .t-location_list_text {
    order: 3;
  }
  .t-location_list.-hongkong .js_location_target {
    margin-left: 1rem;
  }
}
.t-location_list.-shanghai {
  bottom: 36%;
  left: 35%;
}
@media screen and (max-width: 768px) {
  .t-location_list.-shanghai {
    bottom: 53.25%;
    left: 14%;
    display: flex;
    flex-direction: column;
  }
  .t-location_list.-shanghai .t-location_list_target {
    order: 3;
  }
  .t-location_list.-shanghai .t-location_list_name {
    order: 1;
  }
  .t-location_list.-shanghai .t-location_list_text {
    order: 2;
  }
  .t-location_list.-shanghai .t-location_list_target {
    margin-left: auto;
    width: 100%;
  }
  .t-location_list.-shanghai .js_location_target {
    margin-left: 0.875rem;
  }
}
.t-location_list.-fukuoka {
  top: 26%;
  left: 59%;
}
@media screen and (max-width: 768px) {
  .t-location_list.-fukuoka {
    top: 35%;
    left: 45%;
    display: grid;
    grid-template-columns: auto 1fr;
  }
  .t-location_list.-fukuoka .t-location_list_target {
    grid-column: 2/3;
    grid-row: 1/2;
    margin-left: 0;
  }
  .t-location_list.-fukuoka .t-location_list_name {
    grid-column: 1/2;
    grid-row: 1/2;
    width: fit-content;
  }
  .t-location_list.-fukuoka .t-location_list_text {
    grid-column: 1/3;
    grid-row: 2/3;
  }
  .t-location_list.-fukuoka .js_location_target {
    margin-left: 0.75rem;
    margin-top: 0.5rem;
  }
}
.t-location_list.-hiroshima {
  top: -5%;
  left: 64.25%;
}
@media screen and (max-width: 768px) {
  .t-location_list.-hiroshima {
    top: 6%;
    left: 50%;
  }
  .t-location_list.-hiroshima .t-location_list_target {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .t-location_list.-hiroshima .js_location_target {
    margin-left: 1.25rem;
    margin-top: 1.125rem;
  }
}
.t-location_list.-tokyo {
  top: 12%;
  left: 79%;
}
@media screen and (max-width: 768px) {
  .t-location_list.-tokyo {
    top: 27%;
    left: 75%;
  }
  .t-location_list.-tokyo .js_location_target {
    margin-left: 0.625rem;
  }
}

.t-location_list_name {
  font-size: 1.25rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  line-height: 1.25;
}
@media screen and (max-width: 768px) {
  .t-location_list_name {
    font-size: 1.1875rem;
  }
}

.t-location_list_text {
  font-size: 0.875rem;
  font-weight: 500;
  font-feature-settings: "palt";
  line-height: 1.5;
  letter-spacing: -0.02em;
}
@media screen and (max-width: 768px) {
  .t-location_list_text {
    font-size: 1rem;
    line-height: 1.375;
  }
}
.t-location_list_text a {
  font-weight: inherit;
}

.t-location_list_target {
  max-width: 6.25rem;
}

.js_location_target {
  display: block;
  width: 0.625rem;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background-color: #000;
  margin: 0.625rem auto;
}
@media screen and (max-width: 768px) {
  .js_location_target {
    width: 0.3125rem;
    margin: 0.875rem auto;
  }
}

/*======================================
    works
======================================*/
.s-works {
  padding: 1.25rem 0;
}
@media screen and (max-width: 768px) {
  .s-works {
    padding: 4.375rem 0;
  }
}

.p_inner {
  width: 97.5%;
  max-width: 84rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .p_inner {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
    width: 100%;
  }
}

.s-works_head {
  font-size: 2.625rem;
  line-height: 1.0714285714;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  font-weight: 500;
}

.s-works_ttl {
  font-size: 1.25rem;
  font-family: "Helvetica Neue", sans-serif;
  line-height: 1.0666666667;
  font-weight: 500;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  margin-top: 1.875rem;
  word-break: break-all;
}
@media screen and (max-width: 768px) {
  .s-works_ttl {
    font-size: 1.9375rem;
    line-height: 1.0689655172;
  }
}

.s-works_credits {
  font-size: 0.875rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  line-height: 1.1428571429;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  margin-top: 1.25rem;
}
@media screen and (max-width: 768px) {
  .s-works_credits {
    font-size: 1.125rem;
    line-height: 1.2142857143;
  }
}

.s-works_contents {
  margin-top: 1.875rem;
  display: flex;
  flex-direction: column;
  row-gap: 7.5rem;
  font-size: 0.875rem;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
}
.s-works_contents .wp-video {
  width: 100% !important;
}
@media screen and (max-width: 768px) {
  .s-works_contents {
    font-size: 1.125rem;
  }
}
.s-works_contents * {
  font-weight: 500;
  line-height: 1.3;
}
@media screen and (max-width: 768px) {
  .s-works_contents * {
    line-height: 1.2142857143;
  }
}
.s-works_contents img {
  height: auto;
  display: block;
}
.s-works_contents .lg,
.s-works_contents .md {
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .s-works_contents .lg,
  .s-works_contents .md {
    width: 94.5%;
  }
}
.s-works_contents .full {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
@media screen and (min-width: 769px) {
  .s-works_contents .lg {
    width: 100%;
  }
  .s-works_contents .md {
    max-width: 60rem;
    width: 80%;
  }
}
.s-works_contents .bg {
  background-color: #000;
  padding: 9.375rem 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.s-works_contents .swiper .swiper-slide {
  height: 27.125rem;
  width: fit-content;
}
@media screen and (max-width: 768px) {
  .s-works_contents .swiper .swiper-slide {
    width: auto;
    height: 42.125rem;
  }
}
.s-works_contents .swiper .swiper-slide img {
  height: 100%;
  object-fit: contain;
}

.s-pagination {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 1.25rem;
  max-width: 9.375rem;
  width: 100%;
  margin: 18.75rem auto 0;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .s-pagination {
    max-width: 16.25rem;
    margin-top: 12.5rem;
  }
}

.s-page_button {
  grid-row: 1/2;
  color: rgba(255, 255, 255, 0);
  display: block;
  border-bottom: 1px solid #000;
  border-right: 1px solid #000;
  width: 0.875rem;
  height: 0.875rem;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 768px) {
  .s-page_button {
    width: 1.5rem;
    height: 1.5rem;
  }
}
.s-page_button:hover {
  opacity: 0.7;
}
.s-page_button.-prev {
  grid-column: 1/2;
  transform: rotate(-225deg);
}
.s-page_button.-next {
  grid-column: 3/4;
  transform: rotate(-45deg);
}

.s-page_all {
  grid-column: 2/3;
  grid-row: 1/2;
  display: block;
  font-size: 0.9375rem;
  font-weight: 500;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 768px) {
  .s-page_all {
    font-size: 1.5rem;
  }
}
.s-page_all:hover {
  opacity: 0.7;
}

/*======================================
    about
======================================*/
.p-about_inner {
  width: 96%;
  margin-left: auto;
  margin-right: auto;
  max-width: 120rem;
}
@media screen and (max-width: 768px) {
  .p-about_inner {
    width: 100%;
  }
}

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

.p-about_map_area {
  grid-column: 1/2;
  grid-row: 1/2;
  min-width: 0;
  height: 100%;
  position: relative;
}

.p-about_map_location {
  position: absolute;
  font-size: 0.75rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  color: #fff;
  line-height: 1.25;
}
.p-about_map_location .js_location_target {
  display: block;
  aspect-ratio: 1/1;
  width: 0.5rem;
  border-radius: 50%;
  background-color: #fff;
  line-height: 1;
  margin: 0.25rem auto;
}
.p-about_map_location.-hongkong {
  bottom: 9%;
  left: 22%;
}
.p-about_map_location.-shanghai {
  top: 35%;
  left: 41.25%;
}
.p-about_map_location.-fukuoka {
  top: 24%;
  left: 62.5%;
}
.p-about_map_location.-hiroshima {
  top: 14.5%;
  left: 67.5%;
}
.p-about_map_location.-tokyo {
  top: 9.25%;
  left: 79.75%;
}

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

.p-about {
  margin-top: 3.125rem;
}

.p-about_section_title {
  font-size: 2.625rem;
  line-height: 1.0714285714;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
  margin-bottom: 3.75rem;
}
@media screen and (max-width: 768px) {
  .p-about_section_title {
    margin-bottom: 5.625rem;
  }
}

.p-about_container {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}
@media screen and (max-width: 768px) {
  .p-about_container {
    grid-template-columns: 0.35fr 0.65fr repeat(4, 1fr) 0.65fr 0.35fr;
  }
}

.p-about_contents {
  grid-column: 2/7;
  grid-row: 1/1;
  min-width: 0;
}
@media screen and (max-width: 768px) {
  .p-about_contents {
    grid-column: 2/8;
  }
}

.p-about_section_text {
  font-size: 0.8125rem;
  line-height: 1.6923076923;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .p-about_section_text {
    font-size: 1.4375rem;
    line-height: 1.75;
  }
}
.p-about_section_text p {
  font-feature-settings: "palt";
}
@media screen and (min-width: 769px) {
  .p-about_section_text p {
    letter-spacing: -0.075em;
  }
}

.p-member {
  margin-top: 6.25rem;
}
@media screen and (max-width: 768px) {
  .p-member {
    margin-top: 5.625rem;
  }
}
@media screen and (min-width: 769px) {
  .p-member .p-about_section_text {
    max-width: 33.625rem;
  }
}

.p-about_detail:first-child dl dt, .p-about_detail:first-child dl dd {
  border-top: 1px solid rgba(0, 0, 0, 0.5);
}
.p-about_detail dl {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.p-about_detail dl dt, .p-about_detail dl dd {
  font-size: 0.8125rem;
  font-feature-settings: "palt";
  line-height: 1.75;
  grid-row: 1/2;
  border-bottom: 1px solid rgba(0, 0, 0, 0.5);
  min-height: 2.875rem;
  padding: 0.625rem 0;
}
@media screen and (max-width: 768px) {
  .p-about_detail dl dt, .p-about_detail dl dd {
    font-size: 1.125rem;
    min-height: 4.125rem;
    line-height: 1.6666666667;
    padding: 1.125rem 0;
  }
}
.p-about_detail dl dt {
  grid-column: 1/2;
}
.p-about_detail dl dd {
  grid-column: 2/6;
  width: 96%;
}
@media screen and (max-width: 768px) {
  .p-about_detail dl dd {
    width: 100%;
  }
}

.p-about_tab_buttons {
  margin-bottom: 1rem;
  margin-top: 7.5rem;
}
@media screen and (max-width: 768px) {
  .p-about_tab_buttons {
    margin: 6.25rem calc(50% - 50vw) 1rem;
    display: grid;
    grid-template-columns: 0.35fr 0.65fr repeat(4, 1fr) 0.65fr 0.35fr;
  }
}

.p-about_tab_button {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.1666666667;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  font-family: "Helvetica Neue", sans-serif;
  color: #d7d7d7;
}
@media screen and (max-width: 768px) {
  .p-about_tab_button:nth-child(1) {
    grid-column: span 1;
    grid-column: 2/3;
  }
}
.p-about_tab_button span {
  display: inline-block;
  padding-bottom: 2.25rem;
  position: relative;
}
.p-about_tab_button span::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 1.5625rem;
  background-color: #000;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  opacity: 0;
  visibility: hidden;
}
.p-about_tab_button.active {
  color: #000;
}
.p-about_tab_button.active span::before {
  opacity: 1;
  visibility: visible;
}

.p-about_gallery {
  background-color: #000;
  padding: 3.75rem 0 1.875rem;
  margin-top: 11.875rem;
}
@media screen and (max-width: 768px) {
  .p-about_gallery {
    margin-top: 7.5rem;
  }
}

.p-about_swiper {
  padding-bottom: 1.875rem;
}
.p-about_swiper .swiper-slide {
  width: fit-content;
  height: 29.625rem;
}
@media screen and (max-width: 768px) {
  .p-about_swiper .swiper-slide {
    height: 24.125rem;
    width: auto;
  }
}
.p-about_swiper .swiper-slide img {
  height: 100%;
  object-fit: contain;
}
.p-about_swiper .swiper-pagination {
  bottom: 0 !important;
}
.p-about_swiper .swiper-pagination .swiper-pagination-bullet {
  background-color: #5e5e5e;
  opacity: 1;
  border-radius: 0;
  width: 1.375rem;
  margin: 0 0.125rem !important;
  height: 1px;
}
.p-about_swiper .swiper-pagination .swiper-pagination-bullet-active {
  background-color: #f2f2f2;
}

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

.p-member_list_img {
  aspect-ratio: 1/1;
  margin-bottom: 0.625rem;
}
@media screen and (min-width: 769px) {
  .p-member_list_img {
    max-width: 9.375rem;
    width: 90%;
  }
}
.p-member_list_img img {
  height: 100%;
  object-fit: cover;
}

.p-member_list_text {
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: -0.02em;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .p-member_list_text {
    font-size: 1.25rem;
    line-height: 1.45;
  }
}

.p-about_contact {
  margin-top: 5.625rem;
  padding-bottom: 5.625rem;
}

.p-about_contact_text {
  font-size: min(9.6428571429vw, 8.4375rem);
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  letter-spacing: -0.03em;
  font-feature-settings: "palt";
  text-align: center;
}

.p-about_contact_button {
  font-size: 1.5625rem;
  font-family: "Helvetica Neue", sans-serif;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 29.0625rem;
  height: 9.3125rem;
  color: #fff;
  background-color: #000;
  transition: opacity 0.3s ease;
  margin: 6.875rem auto 0;
  border-radius: 1.25rem;
}
@media screen and (max-width: 768px) {
  .p-about_contact_button {
    max-width: 87%;
    margin-top: 3.125rem;
  }
}
.p-about_contact_button:hover {
  opacity: 0.7;
}

/*======================================
    contact
======================================*/
.p-contact {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (max-width: 768px) {
  .p-contact .p-about_section_title {
    margin-bottom: 1.875rem;
  }
}

.p-contact_bg {
  grid-column: 1/2;
  grid-row: 1/2;
  position: sticky;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
  background-color: #000;
}
.p-contact_bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-contact_contents {
  grid-column: 1/2;
  grid-row: 1/2;
  position: relative;
  z-index: 2;
  color: #fff;
  padding-top: 6.25rem;
}
@media screen and (max-width: 768px) {
  .p-contact_contents {
    padding-top: 10rem;
  }
}

.p-contact_form {
  width: 90%;
  max-width: 37.5rem;
  margin: 3.125rem auto 0;
}
@media screen and (max-width: 768px) {
  .p-contact_form {
    width: 86.7%;
    max-width: 40.625rem;
    margin-top: 4.375rem;
  }
}

.p-contact_list {
  margin: 3.125rem 0;
}
@media screen and (max-width: 768px) {
  .p-contact_list {
    margin: 3.75rem 0;
  }
}
.p-contact_list dt {
  font-size: 0.8125rem;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .p-contact_list dt {
    font-size: 1.25rem;
  }
}
.p-contact_list dt .form_en {
  display: inline-block;
  font-size: 1.0625rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
  margin-right: 1em;
}
@media screen and (max-width: 768px) {
  .p-contact_list dt .form_en {
    font-size: 1.625rem;
  }
}
.p-contact_list dd {
  margin-top: 0.625rem;
}
@media screen and (max-width: 768px) {
  .p-contact_list dd {
    margin-top: 1.875rem;
  }
}

.form_checks input,
.form_privacy input {
  display: none;
}
.form_checks input:checked + span.wpcf7-list-item-label::after,
.form_privacy input:checked + span.wpcf7-list-item-label::after {
  opacity: 1;
}
.form_checks .wpcf7-list-item,
.form_privacy .wpcf7-list-item {
  margin: 0 !important;
}
.form_checks .wpcf7-list-item-label,
.form_privacy .wpcf7-list-item-label {
  display: block;
  padding-left: 1.5rem;
  position: relative;
  font-family: "Helvetica Neue", sans-serif;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .form_checks .wpcf7-list-item-label,
  .form_privacy .wpcf7-list-item-label {
    font-size: 1.25rem;
    padding-left: 2.25rem;
  }
}
.form_checks .wpcf7-list-item-label::before, .form_checks .wpcf7-list-item-label::after,
.form_privacy .wpcf7-list-item-label::before,
.form_privacy .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  aspect-ratio: 1/1;
  width: 0.75rem;
  border: 1px solid #fff;
}
@media screen and (max-width: 768px) {
  .form_checks .wpcf7-list-item-label::before, .form_checks .wpcf7-list-item-label::after,
  .form_privacy .wpcf7-list-item-label::before,
  .form_privacy .wpcf7-list-item-label::after {
    width: 1.1875rem;
  }
}
.form_checks .wpcf7-list-item-label::after,
.form_privacy .wpcf7-list-item-label::after {
  background-color: #fff;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.form_input input,
.form_input textarea {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  font-family: "Noto Sans KR", sans-serif;
  color: #000;
  font-size: 0.8125rem;
  line-height: 1.5;
  font-feature-settings: "palt";
  font-weight: 400;
  border: none;
  background-color: #fff;
  box-shadow: none;
  border-radius: 0;
  width: 100%;
  display: flex;
  align-items: center;
  min-height: 3.625rem;
  padding: 0.625rem 1.25rem;
}
@media screen and (max-width: 768px) {
  .form_input input,
  .form_input textarea {
    font-size: 1.25rem;
    min-height: 5.375rem;
  }
}
.form_input input::placeholder,
.form_input textarea::placeholder {
  color: #c7c7c7;
}
.form_input input:focus,
.form_input textarea:focus {
  outline: none;
}
.form_input textarea {
  height: 10rem;
  resize: vertical;
}
@media screen and (max-width: 768px) {
  .form_input textarea {
    height: 18.375rem;
  }
}

.form_privacy {
  font-size: 0.9375rem;
  font-feature-settings: "palt";
}

.form_submit {
  margin-top: 6.25rem;
}
.form_submit input {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  font-family: "Helvetica Neue", sans-serif;
  color: #000;
  font-size: 1.3125rem;
  font-weight: 500;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  width: 100%;
  height: 5.5rem;
  max-width: 22.5rem;
  margin: 0 auto;
  border-radius: 0.5625rem;
  box-shadow: none;
  cursor: pointer;
  border: 1px solid #fff;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.form_submit input:hover {
  background-color: #000;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .form_submit input {
    font-size: 1.625rem;
    max-width: 23.125rem;
    height: 6.625rem;
    border-radius: 1.25rem;
  }
}

.form_checks {
  margin-top: 1.875rem;
}
@media screen and (max-width: 768px) {
  .form_checks {
    margin: 3.75rem 0;
  }
}
.form_checks .wpcf7-checkbox {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 1.25rem;
  row-gap: 1.875rem;
}
@media screen and (max-width: 768px) {
  .form_checks .wpcf7-checkbox {
    grid-template-columns: auto auto auto;
    row-gap: 2.875rem;
    column-gap: 0.625rem;
  }
}

/*======================================
    archive
======================================*/
.works-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 2.625rem;
  row-gap: 2.125rem;
}
@media screen and (max-width: 768px) {
  .works-cards {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 2.125rem;
    row-gap: 1.875rem;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}

.works-card {
  min-width: 0;
  width: 100%;
}

.works-card_link {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  min-width: 0;
}
.works-card_link:hover .works-card_img::before {
  opacity: 0.1;
}

.works-card_img {
  grid-column: 1/2;
  grid-row: 1/2;
  aspect-ratio: 1/1;
  position: relative;
  min-width: 0;
  width: 100%;
}
.works-card_img::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  opacity: 0.65;
  mix-blend-mode: multiply;
  transition: opacity 0.3s ease;
}
.works-card_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.works-card_contents {
  grid-column: 1/2;
  grid-row: 1/2;
  z-index: 2;
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
}

.works-card_key {
  width: 1.5rem;
  margin: 0.75rem 0.75rem 0.75rem auto;
}
@media screen and (max-width: 768px) {
  .works-card_key {
    width: 2.125rem;
    margin: 0.625rem 0.625rem 0.625rem auto;
  }
}

.works-card_texts {
  color: #fff;
  padding: 0.875rem;
  margin-top: auto;
}
@media screen and (max-width: 768px) {
  .works-card_texts {
    padding: 1.375rem 1.25rem;
  }
}

.works-card_title {
  font-size: 1.125rem;
  font-feature-settings: "palt";
  line-height: 1.3;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  word-break: break-all;
}
@media screen and (max-width: 768px) {
  .works-card_title {
    font-size: 1.625rem;
  }
}

.works-card_description {
  font-size: 0.625rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  line-height: 1.1428571429;
  margin-top: 1rem;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}
@media screen and (max-width: 768px) {
  .works-card_description {
    font-size: 0.9375rem;
    line-height: 1.1666666667;
    display: none;
  }
}

.a_pagination {
  margin-top: 6.875rem;
  margin-bottom: 3.125rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  column-gap: 0.875rem;
}
@media screen and (max-width: 768px) {
  .a_pagination {
    margin-top: 10rem;
    margin-bottom: 2.5rem;
  }
}
.a_pagination .prev,
.a_pagination .next {
  display: block;
  color: rgba(255, 255, 255, 0);
  width: 0.875rem;
  height: 0.875rem;
  border-bottom: 1px solid #000;
}
.a_pagination .prev.is-disabled,
.a_pagination .next.is-disabled {
  opacity: 0.3;
}
.a_pagination .prev {
  grid-column: 1/2;
  grid-row: 1/2;
  border-left: 1px solid #000;
  transform: rotate(45deg);
}
.a_pagination .next {
  grid-column: 3/4;
  grid-row: 1/2;
  border-right: 1px solid #000;
  transform: rotate(-45deg);
}
.a_pagination .page_numbers_wrap {
  grid-column: 2/3;
  grid-row: 1/2;
  display: flex;
  column-gap: 0.625rem;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .a_pagination .page_numbers_wrap {
    column-gap: 1.25rem;
  }
}
.a_pagination .page-numbers {
  font-size: 0.5625rem;
  font-weight: 500;
  font-family: "Helvetica Neue", sans-serif;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  width: 1.125rem;
  border-radius: 50%;
  border: 1px solid #000;
}
@media screen and (max-width: 768px) {
  .a_pagination .page-numbers {
    font-size: 1rem;
    width: 2rem;
  }
}
.a_pagination .page-numbers.current {
  background-color: #000;
  color: #fff;
}
.a_pagination .page-numbers.dots {
  border: none;
  color: rgba(255, 255, 255, 0);
  position: relative;
}
.a_pagination .page-numbers.dots::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 140%;
  height: 1.25rem;
  background-image: radial-gradient(circle, #000000 1px, transparent 1px);
  background-position: 0 0;
  background-size: 0.375rem 1.375rem;
}
@media screen and (max-width: 768px) {
  .a_pagination {
    margin-top: 10rem;
  }
}

.a-cats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 1.25rem;
  row-gap: 0.625rem;
  margin-bottom: 3.75rem;
}
@media screen and (max-width: 768px) {
  .a-cats {
    column-gap: 0;
  }
}
.a-cats li a {
  display: block;
  padding: 0.25em 1em;
  font-size: 1rem;
  font-family: "Helvetica Neue", sans-serif;
  font-weight: 500;
  border-radius: 62.5rem;
}
@media screen and (max-width: 768px) {
  .a-cats li a {
    font-size: 1.25rem;
  }
}
.a-cats li.current-cat a {
  background-color: #000;
  color: #fff;
}

/*======================================
    key
======================================*/
.p-key_form {
  margin-top: 14.25rem;
}
@media screen and (max-width: 768px) {
  .p-key_form {
    margin-top: 16.875rem;
  }
}

.p-key_form_input input,
.p-key_form_button input {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border: none;
  box-shadow: none;
  background-color: unset;
  border-radius: 0;
  font-size: 1rem;
  font-family: "Helvetica Neue", sans-serif;
  font-weight: 500;
  width: 100%;
}

.p-key_form_input {
  max-width: 37.5rem;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 768px) {
  .p-key_form_input {
    max-width: 40.625rem;
  }
}
.p-key_form_input input {
  border: 1px solid #000;
  background-color: #fff;
  padding: 0.875rem 2.5rem;
  font-size: 1.5rem;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-key_form_input input {
    font-size: 2rem;
    padding: 1.375rem 2.5rem;
  }
}

.p-key_form_button {
  margin: 2.5rem auto 0;
  max-width: 12.875rem;
}
@media screen and (max-width: 768px) {
  .p-key_form_button {
    margin-top: 6.25rem;
    max-width: 23.125rem;
  }
}
.p-key_form_button input {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background-color: #000;
  border-radius: 0.3125rem;
  height: 3.125rem;
  font-size: 0.75rem;
  font-feature-settings: "palt";
  text-align: center;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 768px) {
  .p-key_form_button input {
    height: 6.625rem;
    border-radius: 1.25rem;
    font-size: 1.625rem;
  }
}
.p-key_form_button input:hover {
  opacity: 0.8;
}

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