html {
  font-size: 10px;
}

body {
  background: #121212;
  color: #fff;
  font-weight: 300;
}

a {
  display: block;
  transition: 0.2s;
}

a:hover {
  opacity: 0.6;
  transition: 0.2s;
}

dt {
  font-weight: normal;
}

img {
  display: block;
  max-width: 100%;
  width: 100%;
}

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

/* Remove default padding */

ul,
ol {
  padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Set core root defaults */

/* Set core body defaults */

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
  list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
  -webkit-text-decoration-skip: ink;
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
  display: block;
  max-width: 100%;
  width: 100%;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
  font: inherit;
}

/* フォームリセット */

input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}

textarea {
  resize: vertical;
}

input[type=checkbox],
input[type=radio] {
  display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
  cursor: pointer;
}

select::-ms-expand {
  display: none;
}

/*
 * l-footer
 * -------------------------------------------------------------
 */

.l-footer {
  background: #191919;
  padding: 7rem 0;
}

.l-footer__inner {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
}

.l-footer__left {
  flex: 1;
}

.l-footer__logo {
  max-width: 42.3rem;
}

.l-footer__copyright {
  font-family: "arial", sans-serif;
  font-size: 2rem;
  font-weight: 300;
  margin-top: 2rem;
  text-transform: capitalize;
}

.l-footer__right {
  width: -moz-fit-content;
  width: fit-content;
}

.l-footer__link {
  -webkit-text-decoration: underline;
  font-family: "arial", sans-serif;
  font-size: 2rem;
  font-weight: 300;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-transform: capitalize;
  text-underline-offset: 3px;
}

/*
 * l-header
 * -------------------------------------------------------------
 */

.l-header {
  left: 0;
  padding-top: 5.2rem;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 10;
}

.l-header__inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 176rem;
  padding: 0 2rem;
}

.l-header__logo {
  max-width: 33.9rem;
}

.l-header__contact {
  align-items: center;
  display: flex;
  font-family: "degular", sans-serif;
  font-size: 2.5rem;
  font-weight: 600;
  gap: 1.8rem;
  margin-left: auto;
  text-transform: capitalize;
}

.l-header__contact::before {
  background: url(./../images/common/icon_mail.webp) no-repeat center/100%;
  content: "";
  display: block;
  height: 2.4rem;
  width: 2.5rem;
}

/*
 * l-inner
 * -------------------------------------------------------------
 */

.l-inner {
  margin: auto;
  max-width: 140rem;
  padding: 0 4rem;
}

/*
 * l-main
 * -------------------------------------------------------------
 */

.l-main {
  overflow: hidden;
}

/*
 * c-btn
 * -------------------------------------------------------------
 */

.c-btn {
  align-items: center;
  background: #24d5ff;
  border-radius: 4.7rem;
  display: flex;
  font-family: "arial", sans-serif;
  font-size: 3rem;
  font-weight: 700;
  height: 9rem;
  justify-content: center;
  line-height: 1;
  max-width: 40rem;
  text-transform: capitalize;
}

.c-btn:hover {
  background: #fff;
  color: #24D5FF;
  opacity: 1;
}

/*
 * c-grad-text
 * -------------------------------------------------------------
 */

.c-grad-text {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to right, #fff, #8ED0FF);
  background-clip: text;
  display: inline-block;
}

.c-grad-text.--pk {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to right, #fff, #FF60E1);
  background-clip: text;
  display: inline-block;
}

.c-grad-text.--reverse {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to left, #fff, #8ED0FF);
  background-clip: text;
  display: inline-block;
}

.c-grad-text.--pk.--reverse {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to left, #fff, #FF60E1);
  background-clip: text;
  display: inline-block;
}

/*
 * c-img
 * -------------------------------------------------------------
 */

.c-img {
  aspect-ratio: 530/700;
  max-width: 53rem;
}

.c-img img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
}

.c-img--lg {
  aspect-ratio: 540/710;
  max-width: 54rem;
}

/*
 * c-language-switch
 * -------------------------------------------------------------
 */

.c-language-switch {
  align-items: center;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 2.7rem;
  display: flex;
  flex: 1;
  gap: 0.7rem;
  margin-left: 3rem;
  max-width: 29rem;
  padding: 1.6rem 2.2rem;
}

.c-language-switch__btn {
  display: flex;
  font-family: "arial", sans-serif;
  font-size: 1.8rem;
  gap: 0.9rem;
  justify-content: center;
  line-height: 1;
  opacity: 0.5;
  text-transform: capitalize;
}

.c-language-switch__btn:hover {
  color: #24D5FF;
  filter: brightness(110%);
  opacity: 1;
}

.c-language-switch__btn:not(:last-child)::after {
  content: "/";
  display: inline-block;
}

.c-language-switch__btn--active {
  opacity: 1;
}

/*
 * c-page-header
 * -------------------------------------------------------------
 */

.c-page-header__ttl {
  font-family: "degular", sans-serif;
  font-size: 10rem;
  font-weight: 600;
  line-height: 1.1;
  text-transform: capitalize;
}

.c-page-header__lead {
  font-family: "arial", sans-serif;
  font-size: 2.5rem;
  font-weight: 300;
  line-height: 1.4;
  margin-top: 5rem;
}

.c-page-header__lead .bold {
  font-weight: 700;
}

/*
 * c-scroll-content
 * -------------------------------------------------------------
 */

.c-scroll-content {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: auto;
}

.c-scroll-content__item {
  display: block;
}

.c-scroll-content::-webkit-scrollbar {
  height: 0.8rem;
}

.c-scroll-content::-webkit-scrollbar-track {
  background: #191919;
}

.c-scroll-content::-webkit-scrollbar-thumb {
  background-clip: content-box;
  background-color: #414141;
  border-radius: 4rem;
}

/*
 * c-sec-ttl
 * -------------------------------------------------------------
 */

.c-sec-ttl__eng {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to right, #fff, #24D5FF);
  background-clip: text;
  display: inline-block;
  font-family: "degular", sans-serif;
  font-size: 10rem;
  font-weight: 600;
  line-height: 1.1;
  text-transform: capitalize;
}

.c-sec-ttl__eng.--pk {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to right, #fff, #FF60E1);
  background-clip: text;
}

.c-sec-ttl__eng.--grn {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to right, #fff, #91FF60);
  background-clip: text;
}

.c-sec-ttl__eng.--rd {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to right, #fff, #FF6060);
  background-clip: text;
}

.c-sec-ttl__ja,
.c-sec-ttl__zh {
  font-size: 2.2rem;
  font-weight: 400;
  margin-top: 3rem;
}

.c-sec-ttl__zh.--pk {
  color: #FF60E1;
}

.c-sec-ttl__zh.--grn {
  color: #91FF60;
}

.c-sec-ttl__zh.--rd {
  color: #FF6060;
}

.c-sec-ttl__lead {
  font-family: "arial", sans-serif;
  font-size: 2.5rem;
  font-weight: 300;
  line-height: 1.4;
  margin-top: 4rem;
}

.c-sec-ttl__lead .bold {
  font-weight: 700;
}

/*
 * c-text
 * -------------------------------------------------------------
 */

.c-text {
  font-size: 2.2rem;
  line-height: 1.72;
}

.c-text--g {
  font-size: 2.5rem;
  line-height: 1.4;
}

/*
 * business
 * -------------------------------------------------------------
 */

.business {
  padding-top: 32rem;
}

/*
 * contact
 * -------------------------------------------------------------
 */

.contact {
  background: url(./../images/common/contact_bg.webp) no-repeat center/cover;
  padding: 15rem 0 13rem;
}

.contact__ttl-eng {
  -webkit-text-fill-color: unset;
  background: none;
  background-clip: border-box;
  background-clip: initial;
}

.contact__body {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.contact__info {
  margin-top: 3.7rem;
}

.contact__address {
  font-weight: 400;
}

.contact__btn {
  max-width: 40rem;
  width: 100%;
}

/*
 * form
 * -------------------------------------------------------------
 */

.form__item {
  overflow: hidden;
  position: relative;
}

.form__item:not(:nth-child(1)) {
  margin-top: 1.5rem;
}

.form__item::before {
  background: #24D5FF 0% 0% no-repeat padding-box;
  content: "";
  display: block;
  filter: blur(3rem);
  height: 8rem;
  left: 0;
  max-width: 18.2rem;
  opacity: 0.3;
  position: absolute;
  top: -6rem;
  width: 100%;
}

.form__item input,
.form__item textarea {
  background: rgba(25, 25, 25, 0.5);
  box-shadow: inset 0px 0px 4px rgba(255, 255, 255, 0.1019607843);
  color: #fff;
  font-size: 2rem;
  padding: 2.3rem 4rem;
  width: 100%;
}

.form__item label {
  color: #aaa;
  color: #fff;
  font-size: 2rem;
  left: 4rem;
  opacity: 0.8;
  pointer-events: none;
  position: absolute;
  top: 2.3rem;
  transition: 0.3s ease all;
}

/* フォーカス or 入力済み のときラベルを上に */

.form__item input:not(:-moz-placeholder-shown)+label,
.form__item textarea:not(:-moz-placeholder-shown)+label {
  color: #24D5FF;
  font-size: 1.2rem;
  left: 0.6rem;
  top: 0.2rem;
}

.form__item input:focus+label,
.form__item input:not(:placeholder-shown)+label,
.form__item textarea:focus+label,
.form__item textarea:not(:placeholder-shown)+label {
  color: #24D5FF;
  font-size: 1.2rem;
  left: 0.6rem;
  top: 0.2rem;
}

/* ラベル内の「（確認用）」なども小さくする */

.form__item input:not(:-moz-placeholder-shown)+label .form__sub-label,
.form__item textarea:not(:-moz-placeholder-shown)+label .form__sub-label {
  font-size: 1.2rem;
}

.form__item input:focus+label .form__sub-label,
.form__item input:not(:placeholder-shown)+label .form__sub-label,
.form__item textarea:focus+label .form__sub-label,
.form__item textarea:not(:placeholder-shown)+label .form__sub-label {
  font-size: 1.2rem;
}

.form__optional {
  color: #24D5FF;
  font-size: 1.2rem;
  vertical-align: top;
}

.form__sub-label {
  font-size: 1.8rem;
}

.form__item textarea {
  aspect-ratio: 712/248;
  line-height: 1.4;
}

.form__btn-wrap {
  align-items: center;
  border-radius: 4.7rem;
  display: grid;
  height: 7rem;
  justify-items: center;
  margin-top: 7rem;
  max-width: 30rem;
  overflow: hidden;
  place-items: center;
  text-align: center;
}

.form__btn {
  background: #24d5ff;
  border-radius: 4.7rem;
  color: #fff;
  display: block;
  font-size: 2.5rem;
  font-weight: 700;
  height: 100%;
  transition: all 0.3s;
  width: 100%;
}

.form__btn:hover {
  background: #fff;
  color: #24d5ff;
}

.form__message {
  font-size: 2.2rem;
  font-weight: 500;
  margin-top: 4rem;
}

/*
 * global-contents
 * -------------------------------------------------------------
 */

.global-contents {
  display: flex;
  justify-content: space-between;
  margin-top: 8rem;
}

.global-contents.--reverse {
  flex-direction: row-reverse;
  text-align: right;
}

.global-contents__list {
  flex: 1;
  max-width: 63.2rem;
}

.global-contents__ttl {
  font-family: "degular", sans-serif;
  font-size: 3rem;
  font-weight: 400;
  text-transform: capitalize;
}

.global-contents__ttl--zh {
  font-size: 2.5rem;
}

.global-contents__items {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-top: 3rem;
}

.global-contents__item {
  background: #191919 0% 0% no-repeat padding-box;
  box-shadow: inset 0px 0px 4px rgba(255, 255, 255, 0.1019607843);
  font-weight: 700;
  line-height: 1;
  overflow: hidden;
  padding: 3rem 3.6rem;
  position: relative;
}

.global-contents__item--zh {
  font-weight: 500;
}

.global-contents__ttl.--pk {
  color: #FF60E1;
}

.global-contents__ttl.--grn {
  color: #91FF60;
}

.global-contents__ttl.--rd {
  color: #FF6060;
}

.global-contents__item::before {
  border-radius: 50%;
  content: "";
  display: block;
  filter: blur(3rem);
  height: 10.3rem;
  left: 0;
  max-width: 16.2rem;
  opacity: 0.2;
  position: absolute;
  top: -7rem;
  width: 100%;
}

.global-contents__item.--pk::before {
  background: #FF60E1;
}

.global-contents__item.--grn::before {
  background: #91FF60;
  left: auto;
  right: 0;
}

.global-contents__item.--rd::before {
  background: #FF6060;
}

.global-contents__img {
  margin-top: 13rem;
}

/*
 * en-service
 * -------------------------------------------------------------
 */

.global-service {
  padding: 26rem 0;
}

/*
 * mission
 * -------------------------------------------------------------
 */

.mission {
  padding-top: 27.5rem;
}

.mission__body {
  display: flex;
  flex-direction: column;
  gap: 20rem;
  margin-top: 14.6rem;
}

.mission__flex {
  align-items: center;
  display: flex;
  gap: 16rem;
}

.mission__detail {
  flex: 1;
}

.mission__lead {
  font-size: 3.3rem;
  font-weight: 500;
  line-height: 1.66;
}

.mission__text {
  margin-top: 7rem;
}

.mission__flex.--reverse {
  flex-direction: row-reverse;
}

/*
 * mv
 * -------------------------------------------------------------
 */

.mv__inner {
  background: url(./../images/common/mv_bg.webp) no-repeat center/cover;
  padding: 32rem 2rem 26rem;
  position: relative;
}

.mv__catch {
  text-align: center;
  text-align: center;
  text-transform: capitalize;
  width: 100%;
}

.mv__catch-ttl {
  align-items: center;
  display: block;
  display: flex;
  font-family: "degular", sans-serif;
  font-size: 11rem;
  font-weight: 600;
  gap: 7.2rem;
  justify-content: center;
  line-height: 1;
}

.mv__catch-ttl:nth-of-type(1) {
  position: relative;
  right: 0.7rem;
}

.mv__catch-ttl-first {
  display: inline-block;
  text-align: right;
  width: 28.2rem;
}

.mv__catch-ttl .color {
  color: #24D5FF;
}

.mv__catch-text {
  display: block;
  font-family: "arial", sans-serif;
  font-size: 2.7rem;
  font-weight: 400;
  line-height: 1.3;
  margin-top: 3rem;
}

.mv__img {
  aspect-ratio: 192/50;
}

.mv__img img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
}

.mv__scroll {
  bottom: -9.2rem;
  height: 25rem;
  left: 50%;
  overflow: hidden;
  position: absolute;
  transform: translateX(-50%);
}

.mv__scroll:after {
  animation: scroll 2s ease 0s infinite normal;
  background: transparent linear-gradient(180deg, #24D5FF 0%, #121212 100%) 0% 0% no-repeat padding-box;
  content: "";
  display: block;
  margin: 0 auto 0;
  width: 0.2rem;
}

/* -----------------------------------------
	* English
------------------------------------------ */

.mv__catch-text--en {
  font-size: 2.5rem;
  line-height: 1.4;
  text-transform: none;
}

/* -----------------------------------------
	* zh
------------------------------------------ */

.mv__catch-text--zh {
  font-size: 2.5rem;
  line-height: 1.4;
  margin-top: 4rem;
}

/*
 * page-contact
 * -------------------------------------------------------------
 */

.page-contact {
  background: url(./../images/page/contact_bg.webp) no-repeat center/cover;
  padding: 28.5rem 0 19.5rem;
}

.page-contact__inner {
  display: flex;
  gap: min(26.7rem, 13.9vw);
}

.page-contact__header {
  width: -moz-fit-content;
  width: fit-content;
}

.page-contact__form {
  flex: 1;
  max-width: 71.2rem;
  padding-top: 3rem;
}

/*
 * page
 * -------------------------------------------------------------
 */

.page-ja {
  font-family: "Noto Sans JP", sans-serif;
}

.page-en {
  font-family: "arial", sans-serif;
}

.page-zh {
  font-family: "Noto Sans SC", sans-serif;
}

/*
 * price
 * -------------------------------------------------------------
 */

.price {
  padding-top: 22rem;
}

.price__lists {
  margin-top: 7.6rem;
}

.price__list {
  display: flex;
  gap: 0.9rem;
}

.price__list-num {
  align-items: center;
  background: #191919;
  border-radius: 50%;
  display: inline-block;
  display: grid;
  font-family: "degular", sans-serif;
  font-size: 1.9rem;
  height: 3.2rem;
  justify-items: center;
  line-height: 1;
  min-width: 3.2rem;
  place-items: center;
  width: 3.2rem;
}

.price__table-wrap {
  display: flex;
  gap: 4rem;
  margin-top: 8.5rem;
}

.price__table-left {
  max-width: 61.8rem;
}

.price__table-ttl {
  color: #1FD1FB;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}

.price__table {
  border: 1px solid #fff;
  border-collapse: collapse;
  font-size: 1.9rem;
  margin-top: 3rem;
  width: 100%;
}

.price__table td,
.price__table th {
  border: 1px solid #fff;
  border-collapse: collapse;
  height: 5.5rem;
  vertical-align: middle;
}

.price__table th {
  font-weight: inherit;
  text-align: center;
}

.price__table-left .price__table th {
  background: #242424;
  box-shadow: inset 0px 0px 8px rgba(255, 255, 255, 0.7019607843), 0px 0px 10px #121212;
  width: 43rem;
}

.price__table-left .price__table th:nth-of-type(2) {
  width: 19rem;
}

.price__table-left .price__table td:nth-of-type(1) {
  padding-left: 4rem;
}

.price__table-left .price__table td:nth-of-type(2) {
  text-align: center;
}

/* 
	* right
-------------------------------------------- */

.price__table-right {
  flex: 1;
}

.price__table-right .price__table th:nth-child(2n-1) {
  background: #242424;
  box-shadow: inset 0px 0px 8px rgba(255, 255, 255, 0.7019607843), 0px 0px 10px #121212;
  width: 16rem;
}

.price__table-right .price__table th:nth-child(2n) {
  width: 17.2rem;
}

.price__table-right .price__table td {
  padding-left: 3rem;
}

.price__table-right .price__table td:first-child {
  background: #242424;
  box-shadow: inset 0px 0px 8px rgba(255, 255, 255, 0.7019607843), 0px 0px 10px #121212;
  padding: 12.6rem 0;
  text-align: center;
}

.price__table-dl-item {
  display: flex;
  gap: 2.5rem;
}

.price__table-dl {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.price__table-dl-item dt {
  font-weight: inherit;
  width: 23.2rem;
}

.price__note {
  display: block;
  font-size: 1.7rem;
  margin-top: 2rem;
  text-align: right;
}

/*
 * privacy
 * -------------------------------------------------------------
 */

.privacy {
  background: url(./../images/page/privacy_bg.webp) no-repeat top/192rem 108rem #121212;
  padding-bottom: 25rem;
  text-align: center;
}

.privacy__inner {
  max-width: 108rem;
}

.privacy__header {
  padding: 30.5rem 0 17.5rem;
}

.privacy__list {
  display: flex;
  flex-direction: column;
  gap: 5rem;
  margin-top: 12rem;
}

.privacy__list dt {
  font-family: "degular", sans-serif;
  font-size: 3.5rem;
  font-weight: 600;
}

.privacy__body {
  margin-top: -17rem;
}

.privacy__sublist {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  margin: 4rem auto 0;
  max-width: 90rem;
  text-align: left;
}

.privacy__sublist li {
  display: flex;
}

.privacy__sublist li.--noflex {
  display: block;
}

.privacy__sublist li::before {
  content: "・";
  display: inline-block;
}

.privacy__sublist--num {
  counter-reset: item;
}

.privacy__sublist--num li::before {
  content: counter(item) ". ";
  counter-increment: item;
  margin-right: 0.2em;
}

.privacy__sublist--num2 {
  counter-reset: num;
  gap: 2rem;
  margin-top: 2.5rem;
  padding-left: 4.5rem;
}

.privacy__sublist--num2 li::before {
  content: "("counter(num) ") ";
  counter-increment: num;
  margin-right: 0.5em;
}

/*
 * recruit
 * -------------------------------------------------------------
 */

.recruit {
  padding: 24.7rem 0 24rem;
}

.recruit__body {
  align-items: center;
  display: flex;
  gap: 13rem;
}

.recruit__details {
  flex: 1;
}

.recruit__text {
  margin-top: 8rem;
}

/*
 * research
 * -------------------------------------------------------------
 */

.research {
  padding-top: 26rem;
}

.research__sec-ttl {
  text-align: right;
}

/*
 * service-details
 * -------------------------------------------------------------
 */

.service-details {
  background: url(./../images/jp/top/service_bg4.webp) no-repeat center/cover;
  padding: 25.6rem 0;
}

.service-details__items {
  display: flex;
  flex-direction: column;
  gap: 25rem;
}

.details__ttl {
  font-size: 3.8rem;
  font-weight: 600;
}

.service-details__text {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin-top: 6rem;
}

.service-details__table {
  aspect-ratio: 950/625;
  background: rgba(25, 25, 25, 0.5);
  box-shadow: inset 0px 0px 2rem rgba(255, 255, 255, 0.2), 0px 0px 0px rgba(255, 255, 255, 0.5019607843);
  margin-left: auto;
  margin-top: 10rem;
  max-width: 95rem;
  padding: 4.6rem 10rem 4.6rem 11rem;
}

.service-details__lists-wrap {
  margin: 0 auto;
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
}

.service-details__lists-wrap::before {
  background: url(./../images/jp/top/service_arrow_sky.webp) no-repeat center/100%;
  content: "";
  display: block;
  height: 4.5rem;
  margin-bottom: 3.3rem;
  width: 100%;
}

.service-details__lists-wrap.--pk::before {
  background: url(./../images/jp/top/service_arrow_pk.webp) no-repeat center/100%;
}

.service-details__lists {
  display: flex;
  gap: 5.2rem;
  position: relative;
}

.service-details__lists::after {
  background: #1fd1fb;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  top: 1rem;
  width: 100%;
}

.service-details__lists.--pk::after {
  background: #ff60e1;
}

.service-details__list {
  display: flex;
  font-size: 2rem;
  gap: 2.5rem;
  letter-spacing: 0.1em;
  line-height: 1;
  text-orientation: mixed;
  writing-mode: vertical-rl;
}

.service-details__list::before {
  background: #001f26;
  border: 1px solid #1FD1FB;
  border-radius: 50%;
  content: "";
  display: block;
  height: 2rem;
  position: relative;
  width: 2rem;
  z-index: 1;
}

.service-details__list.--pk::before {
  background: #ff60e1;
}

.service-details__list:first-child::before,
.service-details__list:last-child::before {
  background: #1fd1fb;
}

.service-details__list.--pk:first-child::before,
.service-details__list.--pk:last-child::before {
  background: #FF60E1;
}

/*
 * service
 * -------------------------------------------------------------
 */

.service {
  padding: 28rem 0 25rem;
}

.service__body {
  margin-top: 9.6rem;
}

.service__flow {
  margin-top: 9.3rem;
  position: relative;
}

.service__flow-scroll {
  position: relative;
}

.service__flow-content {
  display: flex;
  justify-content: space-between;
  left: 50%;
  max-width: 74rem;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}

.service__flow-items {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 5.4rem;
}

.service__flow-item {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
}

.service__flow-item.--item02,
.service__flow-item.--item04 {
  display: flex;
  flex-direction: column-reverse;
}

.service__flow-text {
  font-size: 1.8rem;
}

.service__flow-arrow {
  background: linear-gradient(to right, #fff, #FF60E1);
  height: 1px;
  margin: 0 auto;
  max-width: 15.1rem;
  position: relative;
  width: 100%;
}

.service__flow-arrow::before {
  background: #ff60e1;
  bottom: 0;
  content: "";
  display: block;
  height: 1rem;
  position: absolute;
  right: 0.5rem;
  transform: rotate(-45deg);
  width: 1px;
}

.service__flow-arrow.--reverse::before {
  background: #24D5FF;
  left: 0.5rem;
  right: auto;
  transform: rotate(45deg);
}

.service__flow-item.--item02 .service__flow-arrow {
  background: linear-gradient(to left, #fff, #24D5FF);
}

.service__flow-item.--item02 .service__flow-arrow::before {
  background: #24D5FF;
}

.service__flow-item.--item03 .service__flow-arrow {
  background: linear-gradient(to left, #fff, #FF60E1);
}

.service__flow-item.--item03 .service__flow-arrow::before {
  background: #ff60e1;
}

.service__flow-item.--item04 .service__flow-arrow {
  background: linear-gradient(to right, #fff, #24D5FF);
}

.service__flow-item.--item04 .service__flow-arrow::before {
  background: #24D5FF;
}

.service__list {
  margin-top: 3rem;
}

.service__list-ttl {
  color: #24D5FF;
  font-size: 2.8rem;
  font-weight: 500;
  text-align: center;
}

.service__items {
  grid-gap: 4rem;
  display: grid;
  gap: 4rem;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 7rem;
}

.service__item {
  align-items: center;
  aspect-ratio: 30/27;
  background: #191919;
  display: flex;
  flex-direction: column;
  gap: 4.4rem;
  padding: 4rem 1rem 3.4rem;
}

.service__item:nth-child(1) .service__img {
  max-width: 9.3rem;
}

.service__item:nth-child(2) .service__img {
  max-width: 10.4rem;
}

.service__item:nth-child(3) .service__img {
  max-width: 9.7rem;
}

.service__item:nth-child(4) .service__img {
  max-width: 10.1rem;
}

.service__item:nth-child(5) .service__img {
  max-width: 10.6rem;
}

.service__item:nth-child(6) .service__img {
  max-width: 10.5rem;
}

.service__item:nth-child(7) .service__img {
  max-width: 11.4rem;
}

.service__ttl {
  font-size: 2rem;
  line-height: 1.5;
  text-align: center;
}

.service__ttl span {
  display: block;
  font-size: 1.6rem;
}

/*
 * start
 * -------------------------------------------------------------
 */

.start {
  padding-top: 30rem;
}

.start__body {
  align-items: center;
  display: flex;
  gap: 15.6rem;
}

.start__detail {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 4.8rem;
}

.start__text {
  font-weight: 400;
}

/* ---------------------------------------
	* En * Zh
-----------------------------------------*/

.start__inner--g {
  max-width: 160rem;
}

.start__text--g {
  font-size: 3rem;
  line-height: 1.5;
}

/*
 * u-pc
 * -------------------------------------------------------------
 */

.u-pc {
  display: block;
}

/*
 * u-sp
 * -------------------------------------------------------------
 */

.u-sp {
  display: none;
}

@media screen and (min-width: 1025px) {

  a[href^="tel:"] {
    pointer-events: none;
  }

}

@media screen and (max-width: 1440px) {

  html {
    font-size: 0.6944vw;
  }

}

@media screen and (max-width: 767px) {

  html {
    font-size: 10px;
  }

  .l-footer {
    padding: 6rem 0;
  }

  .l-footer__inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 5rem;
  }

  .l-footer__logo {
    max-width: 26.4rem;
  }

  .l-footer__copyright {
    font-size: 1.5rem;
    margin-top: 1.5rem;
  }

  .l-footer__link {
    font-size: 1.5rem;
  }

  .l-header {
    padding-top: 2.5rem;
  }

  .l-header__inner {
    max-width: 100%;
    position: relative;
  }

  .l-header__logo {
    left: 50%;
    max-width: 8rem;
    order: 2;
    position: absolute;
    top: 0;
    transform: translateX(-50%);
  }

  .l-header__contact {
    font-size: 1.8rem;
    gap: 0.8rem;
    margin-left: 0;
    order: 1;
  }

  .l-header__contact::before {
    height: 1.3rem;
    width: 1.4rem;
  }

  .l-inner {
    max-width: 100%;
    padding: 0 2rem;
  }

  .c-btn {
    font-size: 2rem;
    height: 6rem;
    max-width: 25rem;
  }

  .c-img {
    aspect-ratio: 340/450;
    margin-left: auto;
    margin-right: calc(50% - 50vw);
    max-width: calc(100vw - 3rem);
  }

  .c-img--reverse {
    margin-left: calc(50% - 50vw);
    margin-right: auto;
  }

  .c-img--lg {
    aspect-ratio: 350/450;
    max-width: 100%;
  }

  .c-language-switch {
    gap: 0.4rem;
    max-width: 9.5rem;
    order: 3;
    padding: 0.6rem 1.2rem;
  }

  .c-language-switch__btn {
    font-size: 1.2rem;
    gap: 0.4rem;
    text-transform: uppercase;
  }

  .c-page-header__ttl {
    font-size: 5rem;
  }

  .c-page-header__lead {
    font-size: 2rem;
    line-height: 1.5;
  }

  .c-scroll-content {
    margin-right: calc(50% - 50vw);
    overflow-x: scroll;
    padding-bottom: 3rem;
  }

  .c-sec-ttl__eng {
    font-size: 6.5rem;
    line-height: 1;
  }

  .c-sec-ttl__eng--g {
    font-size: 5rem;
  }

  .c-sec-ttl__eng--g span {
    display: block;
  }

  .c-sec-ttl__ja,
  .c-sec-ttl__zh {
    font-size: 2rem;
    margin-top: 2rem;
  }

  .c-sec-ttl__lead {
    font-size: 2rem;
    line-height: 1.5;
    margin-top: 2.5rem;
  }

  .c-text {
    font-size: 1.9rem;
    line-height: 1.75;
  }

  .c-text--g {
    font-size: 2rem;
    line-height: 1.5;
  }

  .business {
    padding-top: 20rem;
  }

  .contact {
    background: url(./../images/common/sp/contact_bg.webp) no-repeat center/cover;
    padding: 10rem 0;
  }

  .contact__body {
    flex-direction: column;
    gap: 5rem;
    text-align: center;
  }

  .contact__info {
    margin-top: 7rem;
  }

  .contact__btn {
    max-width: 25rem;
  }

  .form__item input,
  .form__item textarea {
    padding: 2.3rem 3rem;
  }

  .form__item label {
    left: 3rem;
  }

  .form__item textarea {
    aspect-ratio: 350/248;
  }

  .form__btn-wrap {
    margin: 9rem auto 0;
  }

  .form__message {
    font-size: 1.8rem;
    text-align: center;
  }

  .global-contents {
    flex-direction: column;
    gap: 10rem;
  }

  .global-contents.--reverse {
    flex-direction: column;
    gap: 10rem;
  }

  .global-contents__list {
    max-width: 100%;
  }

  .global-contents__ttl {
    font-size: 2.2rem;
  }

  .global-contents__ttl--zh {
    font-size: 2rem;
  }

  .global-contents__items {
    gap: 1.5rem;
    margin-top: 2rem;
  }

  .global-contents__item {
    line-height: 1.25;
    padding: 2.3rem 3rem;
  }

  .global-contents__item::before {
    height: 8rem;
    max-width: 9rem;
    top: -5rem;
  }

  .global-contents__img {
    margin-top: 0;
  }

  .global-service {
    padding: 15rem 0 20rem;
  }

  .mission {
    padding-top: 20rem;
  }

  .mission__body {
    gap: 12rem;
  }

  .mission__flex {
    flex-direction: column-reverse;
    gap: 8rem;
  }

  .mission__lead {
    font-size: 2.45rem;
  }

  .mission__text {
    margin-top: 5rem;
    text-align: justify;
  }

  .mission__flex.--reverse {
    flex-direction: column-reverse;
  }

  .mv__inner {
    aspect-ratio: unset;
    background: url(./../images/common/sp/mv_bg.webp) no-repeat center/cover;
    padding: 21.3rem 2rem 20rem;
  }

  .mv__catch-ttl {
    font-size: 5.7rem;
    gap: 1.7rem;
  }

  .mv__catch-ttl:nth-of-type(1) {
    right: 0.4rem;
  }

  .mv__catch-ttl-first {
    width: 14.7rem;
  }

  .mv__catch-text {
    font-size: 2rem;
    line-height: 1.5;
    margin-top: 4rem;
  }

  .mv__img {
    aspect-ratio: 39/20;
  }

  .mv__scroll {
    bottom: -6.5rem;
    height: 13rem;
  }

  .mv__scroll:after {
    animation: scroll-sp 2s ease 0s infinite normal;
  }

  .mv__catch-text--en {
    font-size: 2rem;
    line-height: 1.5;
  }

  .mv__catch-text--zh {
    font-size: 2rem;
    line-height: 1.5;
  }

  .page-contact {
    background: url(./../images/page/sp/contact_bg.webp) no-repeat top/100% 84.4rem;
    padding: 22rem 0 9rem;
  }

  .page-contact__inner {
    flex-direction: column;
    gap: 5rem;
  }

  .page-contact__header {
    margin: 0 auto;
  }

  .page-contact__form {
    max-width: 100%;
    padding-top: 0;
  }

  .price {
    padding-top: 13rem;
  }

  .price__list {
    gap: 1.4rem;
  }

  .price__list-num {
    font-size: 2.1rem;
    height: 3.7rem;
    min-width: 3.7rem;
    width: 3.7rem;
  }

  .price__table-wrap {
    flex-direction: column;
    gap: 6rem;
    margin-top: 8rem;
  }

  .price__table-left {
    max-width: 100%;
  }

  .price__table {
    font-size: 1.3rem;
  }

  .price__table td,
  .price__table th {
    height: 3.8rem;
  }

  .price__table-left .price__table th {
    width: 26.8rem;
  }

  .price__table-left .price__table th:nth-of-type(2) {
    width: 8.3rem;
  }

  .price__table-left .price__table td:nth-of-type(1) {
    padding-left: 1.3rem;
  }

  .price__table-right .price__table th:nth-child(2n-1) {
    width: 8.7rem;
  }

  .price__table-right .price__table th:nth-child(2n) {
    width: 9rem;
  }

  .price__table-right .price__table td {
    padding-left: 2.4rem;
  }

  .price__table-right .price__table td:first-child {
    padding: 7rem 0 10rem;
  }

  .price__table-dl-item {
    flex-direction: column;
    gap: 0;
  }

  .price__table-dl {
    gap: 1.3rem;
  }

  .price__table-dl-item dt {
    width: 100%;
  }

  .price__note {
    font-size: 1.2rem;
  }

  .privacy {
    background: url(./../images/page/sp/privacy_bg.webp) no-repeat top/100% 84.4rem #121212;
    padding-bottom: 15rem;
  }

  .privacy__inner {
    max-width: 100%;
  }

  .privacy__header {
    padding: 20rem 0 0;
  }

  .privacy__list {
    margin-top: 10rem;
  }

  .privacy__list dt {
    font-size: 2.5rem;
    line-height: 1.2;
  }

  .privacy__body {
    margin-top: 0;
  }

  .privacy__sublist {
    gap: 2rem;
    margin-top: 3rem;
    max-width: calc(100% - 5rem);
  }

  .privacy__sublist--num2 {
    gap: 1.5rem;
    margin-top: 2rem;
    padding-left: 0;
  }

  .recruit {
    padding: 17rem 0 10rem;
  }

  .recruit__body {
    flex-direction: column;
    gap: 8rem;
  }

  .research {
    padding-top: 15rem;
  }

  .service-details {
    background: url(./../images/jp/top/sp/service_bg.webp) no-repeat center/cover;
    padding: 14.5rem 0;
  }

  .service-details__items {
    gap: 18.5rem;
  }

  .details__ttl {
    font-size: 3rem;
    line-height: 1.5;
  }

  .service-details__text {
    gap: 4rem;
  }

  .service-details__table {
    aspect-ratio: unset;
    margin-top: 9rem;
    min-width: 88rem;
    padding: 1.7rem 5.4rem 4.3rem;
  }

  .service-details__table.--table02 {
    min-width: 82rem;
  }

  .service {
    padding: 17rem 0 10rem;
  }

  .service__body {
    margin-top: 8rem;
  }

  .service__flow {
    margin-top: 8rem;
    padding-bottom: 4rem;
  }

  .service__flow-scroll {
    min-width: 103.5rem;
  }

  .service__flow-content {
    max-width: 59.2rem;
  }

  .service__flow-items {
    gap: 4rem;
  }

  .service__flow-item {
    gap: 2.2rem;
  }

  .service__flow-text {
    font-size: 1.3rem;
  }

  .service__flow-arrow {
    max-width: 11.8rem;
  }

  .service__flow-arrow::before {
    height: 0.8rem;
    right: 0.3rem;
  }

  .service__flow-arrow.--reverse::before {
    left: 0.3rem;
  }

  .service__list {
    margin-top: 14rem;
  }

  .service__list-ttl {
    font-size: 2.5rem;
  }

  .service__items {
    gap: 0.8rem 1.1rem;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 5rem;
  }

  .service__item {
    aspect-ratio: unset;
    gap: 2.8rem;
    height: 19rem;
    justify-content: center;
    padding: 0 1rem;
  }

  .service__item:nth-child(1) .service__img {
    max-width: 6.8rem;
  }

  .service__item:nth-child(2) .service__img {
    max-width: 7.4rem;
  }

  .service__item:nth-child(3) .service__img {
    max-width: 6.6rem;
  }

  .service__item:nth-child(4) .service__img {
    max-width: 7.6rem;
  }

  .service__item:nth-child(5) .service__img {
    max-width: 7.5rem;
  }

  .service__item:nth-child(6) .service__img {
    max-width: 7.9rem;
  }

  .service__item:nth-child(7) .service__img {
    max-width: 8.9rem;
  }

  .service__ttl {
    font-size: 1.5rem;
    line-height: 1.33;
    margin: 0 calc(50% - 50vw);
  }

  .service__ttl span {
    font-size: 1.2rem;
  }

  .start {
    padding-top: 15rem;
  }

  .start__body {
    flex-direction: column-reverse;
    gap: 15rem;
  }

  .start__detail {
    gap: 4rem;
  }

  .u-pc {
    display: none;
  }

  .u-sp {
    display: block;
  }

}

@media screen and (max-width: 390px) {

  html {
    font-size: 2.564vw;
  }

}

@keyframes scroll {

  0% {
    height: 0;
  }

  50% {
    height: 25rem;
    margin-top: 0;
  }

  100% {
    height: 25rem;
    margin-top: 25rem;
  }

}

@keyframes scroll-sp {

  0% {
    height: 0;
  }

  50% {
    height: 13rem;
    margin-top: 0;
  }

  100% {
    height: 13rem;
    margin-top: 13rem;
  }

}


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