/*=============================================
 * HOME
*=============================================*/
#mv {
   width: 100%;
   height: 100vh;
   min-height: 700px;
   position: relative;
}

#mv .bg {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

#mv .catch {
   gap: 20px;
   background: url("../img/index/mv-bg.png") no-repeat center top/cover;
   padding-top: 65px;
   position: absolute;
   bottom: 0;
   left: 0;
}

#mv .title-1 {
   max-width: 334px;
   margin: 0 auto;
   overflow: hidden;
   position: relative;
}

#mv .title-2 {
   max-width: 528px;
   margin: 0 auto;
   overflow: hidden;
   position: relative;
}

#mv .title-1>div,
#mv .title-2>div {
   transform: translateX(-101%);
   -webkit-transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
   -moz-transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
   -o-transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
   transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
}

#mv .title-1>div:after,
#mv .title-2>div:after {
   content: "";
   display: block;
   position: absolute;
   top: 0;
   left: 0;
   background-color: #000;
   width: 100%;
   height: 100%;
   transform: translateX(0);
   z-index: 1;
   -webkit-transition: transform 0.5s cubic-bezier(0.5, 0, 0, 1);
   -moz-transition: transform 0.5s cubic-bezier(0.5, 0, 0, 1);
   -o-transition: transform 0.5s cubic-bezier(0.5, 0, 0, 1);
   transition: transform 0.5s cubic-bezier(0.5, 0, 0, 1);
}

#mv .scrollIn .title-1>div,
#mv .scrollIn .title-2>div {
   transform: translateX(0);
   transition-delay: 0s;
}

#mv .scrollIn .title-1>div:after,
#mv .scrollIn .title-2>div:after {
   transform: translateX(101%);
   transition-delay: 0.5s;
}

#mv .scrollIn .title-2>div {
   transition-delay: 0.5s;
}

#mv .scrollIn .title-2>div:after {
   transition-delay: 1s;
}

.btn-scroll {
   cursor: pointer;
   padding-bottom: 305px;
   transition: all 0.3s;
   font-family: "Poppins", sans-serif;
   font-weight: 400;
   font-size: 12px;
   line-height: 14px;
   color: #C7C7C7;
   position: relative;
   margin: 0 auto;
   padding-top: 20px;
   padding-bottom: 70px;
}

.btn-scroll .txt-vertical {
   width: 12px;
   height: 65px;
   cursor: inherit;
}

.btn-scroll .txt-latin {
   cursor: inherit;
}

.btn-scroll .border {
   width: 1px;
   height: 62px;
   background-color: #C7C7C7;
   position: absolute;
   bottom: 0;
   left: 40%;
}

.btn-scroll .border:before {
   content: '';
   width: 100%;
   height: 100%;
   background-color: #000;
   position: absolute;
   top: 0;
   left: 0;
   animation: sdl01 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}

.btn-scroll:hover {
   opacity: 0.7;
}

@keyframes sdl01 {
   0% {
      transform: scale(1, 0);
      transform-origin: 0 0;
   }

   50% {
      transform: scale(1, 1);
      transform-origin: 0 0;
   }

   50.1% {
      transform: scale(1, 1);
      transform-origin: 0 100%;
   }

   100% {
      transform: scale(1, 0);
      transform-origin: 0 100%;
   }
}

@media screen and (max-width: 1023px) {
   #mv {
      background-position: center left 80%;
   }
}

@media screen and (max-width: 767px) {
   #mv {
      min-height: inherit;
   }

   #mv .bg,
   #mv .bg div {
      background-position: center left 78%;
   }

   #mv .catch {
      gap: 10px;
      padding: 30px 20px 0;
   }

   #mv .title-1 {
      max-width: 60%;
   }

   #mv .title-2 {
      max-width: 100%;
   }

   .btn-scroll {
      padding-bottom: 60px;
   }
}

/* -- --*/
#about {
   gap: 240px;
   position: relative;
   padding: 205px 0 0;
}

#about .wrap {
   gap: 30px;
}

#about .photo {
   width: 979px;
   position: absolute;
   top: 0;
   left: -130px;
}

#about .photo:after {
   content: '';
   width: 50%;
   height: 100%;
   background-image: linear-gradient(to right, transparent, #fff);
   position: absolute;
   top: 0;
   right: 0;
}

#about h2 {
   font-weight: 400;
   font-size: 85px;
   line-height: 120px;
   letter-spacing: 0;
   text-align: right;
   padding-top: 30px;
}

#about h3 {
   max-width: 610px;
   line-height: 42px;
   color: #fff;
   margin-left: auto;
}

#about h3>span {
   display: inline-block;
   overflow: hidden;
}

#about h3>span:not(:last-child) {
   margin-bottom: 10px;
}

#about h3>span>span {
   display: block;
   position: relative;
   background-image: linear-gradient(to right, #6EBFF2, #34C33A);
   background-size: 150% 100%;
   background-position: center;
   background-repeat: no-repeat;
   transform: translateX(-101%);
   -webkit-transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
   -moz-transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
   -o-transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
   transition: all 0.5s cubic-bezier(0.5, 0, 0, 1);
   padding: 0 12px;
}

#about h3>span>span:after {
   content: "";
   display: block;
   position: absolute;
   top: 0;
   left: 0;
   background-color: #000;
   width: 100%;
   height: 100%;
   transform: translateX(0);
   z-index: 1;
   -webkit-transition: transform 0.8s cubic-bezier(0.5, 0, 0, 1);
   -moz-transition: transform 0.8s cubic-bezier(0.5, 0, 0, 1);
   -o-transition: transform 0.8s cubic-bezier(0.5, 0, 0, 1);
   transition: transform 0.8s cubic-bezier(0.5, 0, 0, 1);
}

#about .scrollIn h3>span>span {
   transform: translateX(0);
   transition-delay: 0.3s;
}

#about .scrollIn h3>span>span:after {
   transform: translateX(101%);
   transition-delay: 0.8s;
}

#about .txt {
   display: grid;
   max-width: 610px;
   line-height: 35px;
   margin-left: auto;
   padding-bottom: 30px;
}

#about .txt p {
   grid-area: 1/1;
}

#about .txt p:first-child {
   opacity: 0.2;
}

#about .txt p:last-child {
   clip-path: inset(0 100% 0 0);
   transition-property: clip-path;
   transition-duration: 1s;
}

#about .scrollIn .txt p:last-child {
   clip-path: inset(0 0 0 0);
}

#about .photos {
   gap: 0px;
}

#about .photos .elementor-widget-image {
   width: 100%;
   padding-top: 68%;
}

#about .photos .elementor-widget-image img {
   width: 100%;
   max-width: inherit;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   object-fit: cover;
}

@media screen and (max-width: 1440px) {
   #about .photo:after {
      width: 80%;
   }
}

@media screen and (max-width: 1200px) {
   #about .photo:after {
      width: 100%;
   }
}

@media screen and (max-width: 1023px) {
   #about {
      gap: 100px;
   }

   #about .photo {
      position: relative;
      left: 0;
   }

   #about .photo:after {
      display: none;
   }

   #about h2 {
      font-size: 75px;
      text-align: left;
      padding-top: 0;
   }

   #about h3,
   #about .txt {
      margin-left: 0;
   }

   #about h3>span:not(:last-child) {
      margin-bottom: 0;
   }

   #about .txt {
      padding-bottom: 0;
   }
}

@media screen and (max-width: 767px) {
   #about {
      gap: 50px;
      padding: 100px 0 0;
   }

   #about .wrap {
      gap: 20px;
   }

   #about h2 {
      font-size: 36px;
      line-height: 48px;
   }

   #about .h-27 {
      font-size: 18px;
   }

   #about h3>span>span {
      padding-right: 0;
      padding-left: 5px;
   }

   #about .txt {
      line-height: 30px;
   }
}

/* -- --*/
#scene {
   display: block;
   background-size: 15px 15px;
   background-image: linear-gradient(to right, #FAFAFA 1px, transparent 1px), linear-gradient(to bottom, #FAFAFA 1px, transparent 1px);
   background-color: #fff;
   padding: 135px 0 230px;
   gap: 0;
}

#scene .h2 {
   display: flex;
   align-items: center;
   gap: 48px;
   text-align: center;
   position: relative;
   padding-bottom: 80px;
}

#scene .h2:before,
#scene .h2:after {
   content: '';
   border-top: 1px solid #465E68;
   flex: 1 0 0;
}

#scene .h2 h2 {
   font-weight: 500;
   font-size: 24px;
   line-height: 35px;
   letter-spacing: 0.02em;
}

#scene .h2 h2 .sub {
   display: block;
   color: rgba(0, 0, 0, 0.17);
   font-size: 13px;
   letter-spacing: 0.35em;
   line-height: 19px;
}

#scene .box-1 {
   flex-direction: row;
   flex-wrap: wrap;
   justify-content: space-between;
   gap: 0;
   position: relative;
   z-index: 1;
   padding-bottom: 100px;
}

#scene .box-1 .title {
   text-align: center;
   position: absolute;
   top: 220px;
   left: 50%;
   transform: translateX(-50%);
}

#scene .box-1 .title:before {
   content: '';
   border-top: 1px solid #707070;
   position: absolute;
   top: 50%;
   right: -50px;
   left: -50px;
}

#scene .box-1 .title:after {
   content: '';
   height: 175px;
   border-left: 1px solid #707070;
   position: absolute;
   top: 100%;
   left: 50%;
}

#scene .box-1 .title h3 {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 170px;
   height: 170px;
   background-image: linear-gradient(to right, #6EBFF2, #34C33A);
   background-size: 120% 100%;
   background-position: center;
   color: #fff;
   font-weight: 700;
   font-size: 20px;
   line-height: 30px;
   border-radius: 50%;
   position: relative;
}

#scene .box-1 [class*="col"] {
   justify-content: center;
   gap: 25px;
   width: 587px;
   height: 587px;
   position: relative;
   z-index: 1;
}

#scene .box-1 [class*="col"]:before {
   content: '';
   width: 100%;
   height: 100%;
   background-image: linear-gradient(to right, #6EBFF2, #34C33A);
   background-size: 120% 100%;
   background-position: center;
   position: absolute;
   top: 0;
   left: 0;
   filter: blur(50px);
   border-radius: 50%;
}

#scene .box-1 [class*="col"]:after {
   content: '';
   width: 100%;
   height: 100%;
   background-color: #fff;
   position: absolute;
   top: 0;
   left: 0;
   border-radius: 50%;
   box-shadow: 0 0 50px rgba(0, 134, 193, 0.16);
}

#scene .box-1 [class*="col"]>div {
   z-index: 1;
}

#scene .box-1 [class*="col"] .elementor-widget-image {
   margin: 0 auto;
}

#scene .box-1 [class*="col"] h4 {
   background-color: rgba(70, 94, 104, 0.06);
   width: 160px;
   font-weight: 500;
   font-size: 20px;
   letter-spacing: 0.05em;
   line-height: 30px;
   border-radius: 50px;
   text-align: center;
   margin: 0 auto;
   padding: 10px 0;
}

#scene .box-1 [class*="col"] .elementor-widget-text-editor {
   max-width: 302px;
   line-height: 30px;
   margin: 0 auto;
}

#scene .box-1 .col-1 {
   margin-left: -50px;
}

#scene .box-1 .col-1 .elementor-widget-image {
   max-width: 466px;
   margin-bottom: -60px;
}

#scene .box-1 .col-2 {
   margin-right: -50px;
}

#scene .box-1 .col-2 .elementor-widget-image {
   max-width: 104px;
}

#scene .box-1 .col-3 {
   margin: -120px auto 0;
}

#scene .box-1 .col-3 .elementor-widget-image {
   max-width: 192px;
}

#scene .photo-scale {
   display: block;
   padding-bottom: 215px;
}

#scene .photo-scale>div {
   height: 300vh;
}

#scene .photo-scale img {
   width: 100%;
   max-width: inherit;
   height: 100vh;
   object-fit: cover;
   position: sticky;
   top: 0;
}

#scene .box-2 {
   gap: 170px;
   padding-left: 125px;
}

#scene .box-2 .title {
   width: 120px;
   color: rgba(70, 94, 104, 0.05);
   font-weight: 400;
   font-size: 85px;
   line-height: 120px;
   position: absolute;
   top: 0;
   left: -17px;
}

#scene .box-2 .title .txt-latin {
   letter-spacing: inherit;
}

#scene .box-2 .item {
   flex-direction: row-reverse;
   align-items: flex-end;
   gap: 25px;
}

#scene .box-2 .item .elementor-widget-image {
   width: 620px;
}

#scene .box-2 .item .col {
   gap: 15px;
   width: 508px;
   padding: 20px 0;
}

#scene .box-2 .item h3 {
   font-weight: 700;
   font-size: 30px;
   letter-spacing: 0.05em;
   line-height: 44px;
}

#scene .box-2 .item .before {
   display: grid;
   grid-template-columns: 112px 1fr;
   gap: 15px;
   font-size: 13px;
   line-height: 22px;
}

#scene .box-2 .item .before h4 {
   display: flex;
   align-items: center;
   justify-content: center;
   background-color: #AEC1C9;
   color: #fff;
   border-radius: 5px;
   text-align: center;
   font-weight: 500;
   font-size: 16px;
}

#scene .box-2 .item .before strong {
   font-weight: 700;
}

#scene .box-2 .item .after {
   letter-spacing: 0;
   position: relative;
   padding: 0 20px 20px;
}

#scene .box-2 .item .after:before {
   content: '';
   background-color: #fff;
   border: 2px solid #465E68;
   border-radius: 10px;
   position: absolute;
   top: 15px;
   right: 0;
   bottom: 0;
   left: 0;
}

#scene .box-2 .item .after>* {
   position: relative;
}

#scene .box-2 .item .after h4 {
   display: inline-block;
   background-color: #fff;
   text-align: center;
   font-weight: 700;
   font-size: 18px;
   line-height: 26px;
   text-align: left;
   padding: 0 5px;
}

#scene .box-2 .item .after strong {
   font-weight: 700;
}

#scene .box-2 .item.img-l {
   flex-direction: row;
}

@media screen and (max-width: 1440px) {
   #scene .box-1 .title {
      top: 170px;
   }

   #scene .box-1 [class*="col"] {
      width: 485px;
      height: 485px;
   }

   #scene .box-1 .col-1 {
      margin-left: -20px;
   }

   #scene .box-1 .col-2 {
      margin-right: -20px;
   }
}

@media screen and (max-width: 1200px) {
   #scene .box-1 .title {
      top: 380px;
   }

   #scene .box-1 .title:before {
      top: 50px;
   }

   #scene .box-1 [class*="col"] {
      width: 485px;
      height: 485px;
   }

   #scene .box-1 .col-3 {
      margin-top: 80px;
   }
}

@media screen and (max-width: 1023px) {
   #scene .box-1 {
      justify-content: center;
      gap: 9vw;
   }

   #scene .box-1 .title {
      width: 100%;
      position: relative;
      top: auto;
      left: auto;
      transform: translateX(0);
      order: 2;
   }

   #scene .box-1 .title h3 {
      width: 40vw;
      height: 40vw;
      margin: 0 auto;
      font-size: 2.5vw;
      line-height: 2;
   }

   #scene .box-1 .title:before {
      width: 30vw;
      top: 100%;
      right: auto;
      left: 50%;
      transform: rotate(45deg);
   }

   #scene .box-1 .title:after {
      width: 30vw;
      height: auto;
      border-top: 1px solid #707070;
      border-left: 0;
      top: 100%;
      left: 20%;
      transform: rotate(-45deg);
      z-index: -1;
   }

   #scene .box-1 .title h3:before {
      content: '';
      width: auto;
      height: 9vw;
      border-left: 1px solid #707070;
      position: absolute;
      top: auto;
      bottom: 100%;
      left: 50%;
      z-index: -1;
   }

   #scene .box-1 [class*="col"] {
      width: 42vw;
      height: 42vw;
      gap: 2vw;
   }

   #scene .box-1 [class*="col"]:before {
      filter: blur(1px);
   }

   #scene .box-1 [class*="col"]:after {
      box-shadow: none;
   }

   #scene .box-1 [class*="col"] h4 {
      width: 20vw;
      font-size: 2.5vw;
      line-height: 2.5;
      padding: 0;
   }

   #scene .box-1 [class*="col"] .elementor-widget-text-editor {
      display: none;
   }

   #scene .box-1 .col-1 {
      margin: 0;
      order: 1;
      gap: 0;
   }

   #scene .box-1 .col-1 .elementor-widget-image {
      max-width: 80%;
      margin-bottom: 0;
   }

   #scene .box-1 .col-2 {
      margin: 0;
      order: 3;
   }

   #scene .box-1 .col-2 .elementor-widget-image {
      max-width: 25%;
   }

   #scene .box-1 .col-3 {
      margin: 0;
      order: 4;
   }

   #scene .box-1 .col-3 .elementor-widget-image {
      max-width: 40%;
   }

   #scene .box-2 {
      gap: 50px;
      padding-left: 50px;
   }

   #scene .box-2 .title {
      width: 50px;
      font-size: 50px;
      line-height: 50px;
      left: -7px;
   }

   #scene .box-2 .item {
      flex-direction: column;
      align-items: flex-start;
   }

   #scene .box-2 .item.img-l {
      flex-direction: column;
   }

   #scene .box-2 .item .elementor-widget-image {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #scene {
      padding: 50px 0 100px;
   }

   #scene .h2 {
      gap: 20px;
      padding-bottom: 30px;
   }

   #scene .box-1 {
      gap: 5vw;
   }

   #scene .box-1 [class*="col"] {
      gap: 3vw;
   }

   #scene .box-1 [class*="col"] h4 {
      width: 24vw;
      font-size: 3.5vw;
   }

   #scene .box-1 .title h3 {
      font-size: 3.5vw;
   }

   #scene .photo-scale {
      padding-bottom: 50px;
   }

   #scene .box-2 .item {
      flex-direction: column;
      align-items: flex-start;
   }

   #scene .box-2 .item .col {
      width: 100%;
   }

   #scene .box-2 .item .col {
      padding: 0;
   }

   #scene .box-2 .item h3 {
      font-size: 20px;
      line-height: 30px;
   }

   #scene .box-2 .item .before {
      grid-template-columns: 70px 1fr;
   }

   #scene .photo-scale>div {
      height: auto;
   }

   #scene .photo-scale img {
      height: 30vh;
   }
}

/* -- --*/
#flow {
   padding: 390px 0 0;
}

#flow:before {
   content: '';
   width: 100%;
   background: url('../img/index/flow-bg-img.webp') no-repeat center left 90% / cover;
   position: absolute;
   top: 0;
   bottom: 200px;
   left: 0;
}

#flow .photo-scale,
#flow .photo-scale div {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

#flow .photo-scale img {
   width: 100%;
   max-width: inherit;
   height: 100vh;
   position: sticky;
   top: 0;
   object-fit: cover;
}

#flow .wrap {
   gap: 30px;
}

#flow h2 {
   font-weight: 700;
   font-size: 39px;
   letter-spacing: 0.05em;
   line-height: 56px;
   color: #fff;
}

#flow .box {
   background-color: #fff;
   max-width: 908px;
   padding: 30px 30px 60px;
   box-sizing: border-box;
   gap: 52px;
   position: relative;
   z-index: 1;
}

#flow .list {
   flex-direction: row;
   flex-wrap: wrap;
   gap: 30px 10px;
   font-weight: 700;
   font-size: 14px;
   letter-spacing: 0;
   line-height: 20px;
}

#flow .list .elementor-widget-heading {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 180px;
   height: 88px;
   background-color: #fff;
   border: 2px solid #F5F5F5;
   border-radius: 5px;
   text-align: center;
   box-shadow: 0 0 15px rgba(60, 164, 219, 0.36);
}

#flow .list .elementor-widget-heading:not(:last-child):before {
   content: '';
   width: 12px;
   height: 19px;
   background: url("../img/index/flow-arrow.png") no-repeat center top/cover;
   position: absolute;
   top: 50%;
   left: calc(100% + 5px);
   transform: translateY(-50%);
   z-index: 1;
}

#flow .list .elementor-widget-heading:nth-child(5) {
   margin-left: 50px;
}

#flow .list .elementor-widget-heading:nth-child(9) {
   margin-left: 98px;
}

#flow .elementor-widget-text-editor {
   max-width: 571px;
}

@media screen and (max-width: 1023px) {
   #flow .list .elementor-widget-heading {
      width: 210px;
   }

   #flow .list .elementor-widget-heading:nth-child(5),
   #flow .list .elementor-widget-heading:nth-child(9) {
      margin-left: 0;
   }
}

@media screen and (max-width: 767px) {
   #flow {
      padding-top: 150px;
   }

   #flow:before {
      bottom: 100px;
   }

   #flow h2 {
      font-size: 24px;
      line-height: 36px;
   }

   #flow .box {
      gap: 30px;
      padding: 20px 20px 30px;
   }

   #flow .list {
      gap: 20px 10px;
      font-size: 12px;
   }

   #flow .list .elementor-widget-heading {
      width: calc(50% - 5px);
   }
}

/* -- --*/
#use {
   color: #fff;
   padding: 125px 0 145px;
}

#use:before {
   content: '';
   width: 100%;
   height: auto;
   background: url("../img/index/use-bg-img.jpg") no-repeat center top/cover;
   position: absolute;
   top: -200px;
   bottom: 0;
   left: 0;
}

#use .wrap {
   gap: 32px;
}

#use h2 {
   font-weight: 700;
   font-size: 39px;
   letter-spacing: 0.05em;
   line-height: 56px;
   color: #fff;
   padding-bottom: 8px;
}

#use .box {
   gap: 46px 67px;
}

#use .box .wp-caption-text {
   color: #fff;
   font-family: inherit;
   font-size: 14px;
   letter-spacing: 0.05em;
   line-height: 20px;
   padding-top: 12px;
}

#use .elementor-widget-image-carousel {
   overflow: hidden;
   padding-top: 190px;
}

#use .elementor-widget-image-carousel .swiper {
   max-width: 1041px;
   margin: 0 auto;
   overflow: visible;
}

#use .elementor-widget-image-carousel .swiper-slide {
   box-sizing: border-box;
   padding: 0 40px;
}

@media screen and (max-width: 1023px) {
   #use {
      padding: 50px 0;
   }

   #use:before {
      top: -100px;
   }

   #use .box {
      gap: 30px 10px;
   }

   #use .elementor-widget-image-carousel {
      padding-top: 100px;
   }
}

@media screen and (max-width: 767px) {
   #use .wrap {
      gap: 20px;
   }

   #use h2 {
      font-size: 24px;
      line-height: 36px;
   }

   #use .box {
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
   }

   #use .elementor-widget-image-carousel {
      padding: 30px 10px 0;
   }

   #use .elementor-widget-image-carousel .swiper-slide {
      padding: 0 10px;
   }
}

/* -- --*/
#faq {
   padding: 260px 0 90px;
}

#faq .wrap {
   flex-direction: row;
}

#faq .elementor-widget-heading {
   width: 465px;
}

#faq h2 {
   font-weight: 700;
}

#faq .elementor-widget-n-accordion {
   width: calc(100% - 485px);
}

#faq .elementor-widget-n-accordion details:not(:last-child) {
   margin-bottom: 2px;
}

#faq .elementor-widget-n-accordion .e-n-accordion-item-title {
   background-color: #fff;
   color: #383838;
   font-weight: 500;
   letter-spacing: 0.02em;
   line-height: 24px;
   box-shadow: 0 0 4px rgba(0, 0, 0, 0.16);
   border-radius: 5px;
   border: 0;
   padding: 13px 13px;
}

#faq .elementor-widget-n-accordion .e-n-accordion-item-title:before {
   content: '';
   width: 35px;
   height: 35px;
   background: url("../img/index/icon-q.png") no-repeat center top/cover;
   display: block;
}

#faq .elementor-widget-n-accordion .e-n-accordion-item-title-header {
   flex: 1 0 0;
   order: 1;
}

#faq .elementor-widget-n-accordion .e-n-accordion-item-title-icon {
   order: 2;
}

#faq .elementor-widget-n-accordion div[role="region"] {
   font-size: 14px;
   line-height: 26px;
   color: #383838;
   padding: 15px 0 28px 59px;
}

#faq .elementor-widget-n-accordion div[role="region"]:before {
   content: '';
   width: 35px;
   height: 35px;
   background: url("../img/index/icon-a.png") no-repeat center top/cover;
   position: absolute;
   top: 15px;
   left: 13px;
}

@media screen and (max-width: 1023px) {
   #faq .wrap {
      flex-direction: column;
   }

   #faq .elementor-widget-heading,
   #faq .elementor-widget-n-accordion {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #faq {
      padding: 50px 0;
   }
}

/* -- --*/
#information {
   padding: 90px 0 305px;
}

#information .wrap {
   flex-direction: row;
   gap: 55px;
}

#information .elementor-widget-image {
   width: 640px;
}

#information .elementor-widget-image img {
   border-radius: 10px;
}

#information .col {
   width: 585px;
   gap: 16px;
}

#information h2 {
   font-family: "Noto Serif JP", serif;
   font-weight: 400;
   font-size: 24px;
   letter-spacing: 0.05em;
   line-height: 35px;
}

#information .elementor-widget-text-editor {
   font-size: 14px;
   line-height: 26px;
   padding-bottom: 32px;
}

#information .e-grid {
   grid-template-columns: 120px 1fr;
   gap: 10px;
   color: #000;
   border-bottom: 1px solid #EDEDED;
   padding-bottom: 26px;
}

#information .e-grid:after {
   content: '';
   width: 20px;
   height: 1px;
   background-color: #2C64A0;
   position: absolute;
   bottom: -1px;
   left: 0;
}

#information .e-grid+.e-grid {
   padding-top: 11px;
}

#information .e-grid .elementor-widget-heading {
   font-size: 14px;
   line-height: 20px;
}

#information .e-grid .elementor-widget-heading:first-child {
   font-weight: 500;
}

@media screen and (max-width: 1023px) {
   #information .wrap {
      flex-direction: column;
      align-items: center;
   }

   #information .col {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #information {
      padding: 50px 0 100px;
   }

   #information .wrap {
      gap: 30px;
   }

   #information .elementor-widget-image {
      width: 100%;
      text-align: center;
   }

   #information h2 {
      font-size: 18px;
      line-height: 30px;
   }

   #information .txt {
      padding-bottom: 20px;
   }

   #information .e-grid {
      grid-template-columns: 80px 1fr;
      padding-bottom: 16px;
   }

   #information .e-grid+.e-grid {
      padding-top: 0;
   }
}

/* -- --*/
#contact {
   font-size: 14px;
   line-height: 20px;
   padding-bottom: 225px;
}

#contact .wrap {
   gap: 30px;
}

#contact h2 {
   font-weight: 700;
   font-size: 33px;
   letter-spacing: 0.05em;
   line-height: 48px;
   text-align: center;
}

#contact .desc {
   max-width: max-content;
   line-height: 26px;
   margin: 0 auto;
   padding-bottom: 10px;
}

#contact .elementor-widget-shortcode {
   width: 600px;
   margin: 0 auto;
}

#contact .form-row {
   display: grid;
   grid-template-columns: 190px 1fr;
   align-items: flex-start;
   gap: 20px;
}

#contact .form-row+.form-row {
   padding-top: 5px;
}

#contact .form-row .caption {
   display: flex;
   justify-content: space-between;
   align-items: center;
   position: relative;
   padding: 13px 0;
}

#contact .form-row .caption span {
   display: block;
   width: 28px;
   font-size: 11px;
   line-height: 14px;
   background-color: #465E68;
   color: #fff;
   text-align: center;
}

#contact .form-pp {
   padding-top: 20px !important;
}

#contact .form-pp .caption {
   padding: 0;
}

#contact .form-pp a {
   text-decoration: underline;
}

#contact .form-pp a:hover {
   text-decoration: none;
}

#contact .form-btn {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 5px;
   padding-top: 40px;
}

#contact .form-btn .wpcf7-spinner {
   display: none;
}

#contact .form-btn input,
#contact .form-btn a {
   display: block;
   width: 100%;
   height: 100%;
   opacity: 0;
   cursor: pointer;
   position: absolute;
   top: 0;
   left: 0;
}

#contact .form-btn p {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 390px;
   height: 71px;
   background-color: #465E68;
   border: 0;
   color: #fff;
   font-weight: 400;
   font-size: 14px;
   letter-spacing: 0.05em;
   line-height: 20px;
   box-sizing: border-box;
   padding: 0;
   position: relative;
   z-index: 1;
   border-radius: 5px;
   cursor: pointer;
   transition: all 0.3s;
}

#contact .form-btn p:hover {
   background-color: #000;
   opacity: 1;
}

#contact .form-btn .btn-back {
   background-color: #ccc;
   color: #000;
}

#contact .form-btn .btn-back:hover {
   color: #fff;
}

#contact .thanks .txt p+p {
   padding-top: 20px;
}

#contact .thanks .button {
   padding-top: 30px;
}

@media screen and (max-width: 767px) {
   #contact {
      padding-bottom: 100px;
   }

   #contact .wrap {
      gap: 20px;
   }

   #contact h2 {
      font-size: 24px;
      line-height: 36px;
   }

   #contact .form-row {
      grid-template-columns: 1fr;
      gap: 10px;
   }

   #contact .form-row+.form-row {
      padding-top: 20px;
   }

   #contact .form-row .caption {
      justify-content: flex-start;
      gap: 10px;
      padding: 0;
   }

   #contact .form-btn {
      flex-direction: column;
   }

   #contact .form-btn p {
      width: 100%;
      max-width: 390px;
   }

   #contact .thanks .txt {
      text-align: justify;
   }
}

/*=============================================
 * Privacy policy
*=============================================*/
#privacy-policy {
   font-size: 12px;
   line-height: 20px;
   padding-bottom: 100px;
}

#privacy-policy .wrap {
   max-width: 650px;
   gap: 50px;
}

#privacy-policy h2 {
   font-family: "Figtree", sans-serif;
   font-weight: 500;
   font-size: 54px;
   letter-spacing: 0;
   line-height: 65px;
}

#privacy-policy .elementor-widget-text-editor p+p {
   padding-top: 10px;
}

#privacy-policy .elementor-widget-text-editor ol {
   padding-left: 20px;
}

#privacy-policy .elementor-widget-text-editor ul {
   padding-left: 40px;
}

#privacy-policy .elementor-widget-text-editor a {
   text-decoration: underline;
}

#privacy-policy .elementor-widget-text-editor a:hover {
   text-decoration: none;
}

@media screen and (max-width: 767px) {
   #privacy-policy {
      padding-bottom: 50px;
   }

   #privacy-policy .wrap {
      gap: 30px;
   }

   #privacy-policy h2 {
      font-size: 30px;
      line-height: 40px;
   }

   #privacy-policy .elementor-widget-text-editor ol {
      padding-left: 10px;
   }

   #privacy-policy .elementor-widget-text-editor ul {
      padding-left: 20px;
   }
}