/*
Theme Name: Genova Template
File: top.css
Theme Author: Genova Design
Author URI: https://genova.co.jp/
Description: Description: This file is reserved for the top-page css
Version: 1.0
*/
@media screen and (min-width: 1201px) {
   #content .container {
      padding: 0;
   }
}

/*--------------------------------------
   mainimage
--------------------------------------*/
#mainimage {
   width: 100%;
   height: 100vh;
   position: relative;
}

#mainimage .slick-slider,
#mainimage .slick-list,
#mainimage .slick-track,
#mainimage .slick-slide {
   width: 100%;
   height: 100%;
}

#mainimage .slick-slide img {
   width: 100%;
   max-width: inherit;
   height: 100%;
   object-fit: cover;
   object-position: center;
}

#mainimage .slider {
   overflow: hidden;
}

#mainimage .slider .img-1 {
   width: 58.5%;
   height: 100%;
}

#mainimage .slider .img-2 {
   width: 41.5%;
   height: 50%;
   position: absolute;
   top: 0;
   right: 0;
}

#mainimage .slider .img-3 {
   width: 41.5%;
   height: 50%;
   position: absolute;
   bottom: 0;
   right: 0;
}

#mainimage .slider .slick-slide .in {
   width: 100%;
   height: 100%;
   position: relative;
   -webkit-transform: scale(1.2) translateX(30px);
   transform: scale(1.2) translateX(30px);
   -webkit-transition: opacity 1.5s linear, -webkit-transform 7.5s linear;
   transition: opacity 1.5s linear, -webkit-transform 7.5s linear;
   transition: opacity 1.5s linear, transform 7.5s linear;
   transition: opacity 1.5s linear, transform 7.5s linear, -webkit-transform 7.5s linear;
}

#mainimage .slider .slick-current .in {
   -webkit-transform: scale(1.2) translateX(0px);
   transform: scale(1.2) translateX(0px);
}

#mainimage .catch {
   width: 95%;
   max-width: 1047px;
   position: absolute;
   top: 42%;
   left: 50%;
   transform: translateX(-50%);
}

#mainimage h3 {
   width: 90%;
   max-width: 909px;
   margin: 0 auto;
   padding-top: 72px;
}

@media screen and (max-width: 1023px) {
   #mainimage .slider .img-1 {
      width: 100%;
      height: 64.4%;
   }

   #mainimage .slider .img-2 {
      width: 50%;
      height: 35.6%;
      position: absolute;
      top: auto;
      right: auto;
      bottom: 0;
      left: 0;
   }

   #mainimage .slider .img-3 {
      width: 50%;
      height: 35.6%;
   }

   #mainimage .catch {
      width: auto;
      max-width: inherit;
      position: absolute;
      top: 28%;
      right: 10px;
      bottom: 20px;
      left: 10px;
      transform: translateX(0);
   }

   #mainimage h3 {
      position: absolute;
      right: 10px;
      bottom: 0;
      left: 10px;
   }
}

/*--------------------------------------
   news-blog
--------------------------------------*/
#news-blog {
   background-image: linear-gradient(to right, #F5F3EA 0%, #F5F3EA 32%, #FDF9E7 32%, #FDF9E7 77%, #FFF1DD 77%, #FFF1DD 100%);
   padding: 92px 30px 96px;
}

#news-blog .container {
   max-width: 1200px;
}

#news-blog .box .elementor-row {
   flex-wrap: nowrap;
   gap: 45px;
}

#news-blog .box .elementor-widget-wrap {
   display: grid;
   grid-template-columns: auto 1fr;
   gap: 50px;
}

#news-blog .box h2 {
   font-weight: 700;
   font-size: 18px;
   line-height: 1;
   letter-spacing: 0.08em;
}

#news-blog .box h2 span {
   display: block;
   font-size: 32px;
   padding-bottom: 16px;
}

#news-blog .box h2 span:first-letter {
   color: #E8A965;
}

#news-blog .box h2 a {
   display: flex;
   align-items: center;
   gap: 7px;
   font-weight: 700;
   font-size: 14px;
   line-height: 24px;
   position: absolute;
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
}

#news-blog .box h2 a:after {
   content: '';
   width: 24px;
   height: 24px;
   background: url("../img/btn-arrow.png") no-repeat center top/cover;
   display: block;
   position: relative;
   top: -1px;
}

#news-blog .post-box__content {
   background-color: #fff;
   min-height: 120px;
   padding: 32px 24px;
}

#news-blog .post-box__content:after {
   content: '';
   width: 0;
   height: 0;
   border-width: 0 16px 16px 0;
   border-color: transparent #E8A965 transparent transparent;
   border-style: solid;
   position: absolute;
   top: -4px;
   right: -4px;
}

#news-blog .post-box__content dl {
   font-size: 15px;
   letter-spacing: 0.04em;
   line-height: 1.6;
}

#news-blog .post-box__content dl+dl {
   padding-top: 24px;
}

#news-blog .post-box__content dl dt {
   color: #E8A965;
}

#news-blog .post-box__content dl dt .new-label {
   display: inline-block;
   width: 51px;
   background-color: #C0AC8D;
   color: #fff;
   font-family: "Josefin Sans", sans-serif;
   font-weight: 700;
   font-size: 12px;
   line-height: 20px;
   border-radius: 5px;
   text-align: center;
   margin-left: 10px;
   padding-top: 2px;
}

#news-blog .post-box__content dl dd {
   padding-top: 6px;
}

#news-blog .post-box__content dl dd a {
   border-bottom: 1px solid;
}

#news-blog .post-box__content dl dd a:hover {
   border-bottom-color: transparent;
}

@media screen and (max-width: 1023px) {
   #news-blog .box .elementor-row {
      flex-direction: column;
      gap: 40px;
   }

   #news-blog .box .elementor-column {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #news-blog {
      background-image: linear-gradient(to bottom, #F5F3EA 0%, #F5F3EA 32%, #FDF9E7 32%, #FDF9E7 77%, #FFF1DD 77%, #FFF1DD 100%);
      padding: 64px 0;
   }

   #news-blog .box .elementor-widget-wrap {
      grid-template-columns: 1fr;
      gap: 36px;
   }

   #news-blog .box h2 a {
      top: 50%;
      right: 0;
      bottom: auto;
      left: auto;
      transform: translateY(-50%);
   }

   #news-blog .post-box__content {
      padding: 32px 20px;
   }
}

/*--------------------------------------
   concept
--------------------------------------*/
#concept {
   padding: 83px 0 48px;
   position: relative;
}

#concept:before {
   content: '';
   width: 48px;
   height: auto;
   background-color: #F3E0C7;
   position: absolute;
   top: 0;
   bottom: 96px;
   left: 0;
}

#concept:after {
   content: '';
   width: 36%;
   height: auto;
   background-color: #F3E0C7;
   position: absolute;
   top: 48px;
   right: 0;
   bottom: 0;
}

#concept>.elementor-container {
   position: relative;
}

#concept>.elementor-container:before {
   content: '';
   width: calc(50% - 428px);
   height: 350px;
   background-color: #E2CEB3;
   position: absolute;
   bottom: -48px;
   right: 0;
   z-index: 1;
}

#concept .container {
   z-index: 1;
}

#concept .container:before {
   content: '';
   width: 823px;
   height: auto;
   background-color: #fff;
   position: absolute;
   top: 137px;
   bottom: 0;
   left: 35px;
}

#concept .ttl-sub {
   width: auto;
   font-weight: 700;
   font-size: 240px;
   line-height: 1;
   letter-spacing: 0;
   color: #fff;
   position: absolute;
   top: -83px;
   right: 0;
}

#concept h2 {
   font-weight: 700;
   font-size: 32px;
   line-height: 2;
   letter-spacing: 0.08em;
   padding-top: 24px;
}

#concept h2 span {
   font-size: 40px;
   background: url('../img/index/title-line.png') repeat-x bottom left / auto 4px;
}

#concept .elementor-widget-text-editor {
   width: 694px;
   color: #5B5B5B;
   font-size: 18px;
   letter-spacing: 0.04em;
   line-height: 2;
   padding-top: 48px;
}

#concept .btn {
   padding: 48px 0;
}

#concept .photo-1 {
   width: 477px;
   position: absolute;
   top: 0;
   right: 0;
}

#concept .photo-1 figcaption {
   display: none;
}

#concept .photo-2 {
   width: 477px;
   position: absolute;
   top: 350px;
   right: 0;
}

@media screen and (max-width: 1270px) {
   #concept .container {
      padding-left: 30px;
   }

   #concept .container:before {
      left: -32px;
   }

   #concept .ttl-sub {
      font-size: 220px;
   }

   #concept .photo-1 {
      width: calc(100% - 720px);
   }

   #concept .photo-2 {
      width: calc(100% - 720px);
      top: 310px;
   }
}

@media screen and (max-width: 1200px) {
   #concept .ttl-sub {
      font-size: 195px;
   }

   #concept .photo-2 {
      top: 295px;
   }
}

@media screen and (max-width: 1150px) {
   #concept .container {
      padding-right: 30px;
   }

   #concept .photo-1 {
      width: 245px;
   }

   #concept .photo-2 {
      width: 245px;
      top: 180px;
   }
}

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

   #concept:before {
      width: 20px;
      height: 100vw;
      bottom: auto;
   }

   #concept:after {
      display: none;
   }

   #concept>.elementor-container:before {
      display: none;
   }

   #concept .container:before {
      display: none;
   }

   #concept .ttl-sub {
      font-size: 18vw;
      top: 0;
      left: 0;
      z-index: 1;
      overflow: hidden;
   }

   #concept .ttl-sub .elementor-heading-title {
      position: relative;
      top: -3.5vw;
   }

   #concept .photo-1 {
      width: auto;
      margin: 0 -30px;
      position: static;
   }

   #concept h2 {
      font-size: 24px;
      padding: 40px 0 0 20px;
   }

   #concept h2 span {
      font-size: 30px;
   }

   #concept .elementor-widget-text-editor {
      width: auto;
      font-size: 16px;
      padding: 32px 0 0 20px;
   }

   #concept .btn {
      padding: 4px 0 0 20px;
      position: relative;
      top: 28px;
      z-index: 1;
   }

   #concept .photo-2 {
      width: auto;
      background-color: #F3E0C7;
      margin: 0 -30px;
      padding: 60px 10px 32px;
      position: relative;
      top: 0;
   }

   #concept .photo-2:before {
      content: '';
      width: 69.2vw;
      height: 32.5vw;
      background-color: #E2CEB3;
      position: absolute;
      bottom: 0;
      right: 0;
   }

   #concept .photo-2 .elementor-image {
      position: relative;
   }
}

@media screen and (max-width: 767px) {
   #concept:before {
      height: 140vw;
   }

   #concept .container {
      padding: 0 20px;
   }

   #concept .photo-1,
   #concept .photo-2 {
      margin: 0 -20px;
   }
}

@media screen and (min-width: 1199px) {
   #concept .container {
      max-width: 1140px;
   }
}

@media screen and (min-width: 1271px) {
   #concept .container {
      max-width: 1270px;
      padding-left: 67px;
   }
}

/*--------------------------------------
   feature
--------------------------------------*/
#feature {
   background-image: linear-gradient(to right, #fff 0%, #fff 24px, #FBFAF5 24px, #FBFAF5 64%, #fff 64%, #fff 100%);
}

#feature h2 {
   width: 96%;
   max-width: 972px;
   margin: 0 auto;
   padding: 96px 0;
}

#feature [class*="row-"] .elementor-container {
   width: 100%;
   max-width: 1270px;
   margin: 0 auto;
}

#feature .row-1,
#feature .row-2 {
   padding-bottom: 48px;
}

#feature .row-1 .elementor-row,
#feature .row-2 .elementor-row {
   align-items: center;
   flex-wrap: nowrap;
   gap: 48px;
   padding: 48px 0;
}

#feature .row-1 .photo,
#feature .row-2 .photo {
   width: 535px;
   z-index: 1;
}

#feature .row-1 .col,
#feature .row-2 .col {
   width: 640px;
   padding: 0 48px;
   position: static;
}

#feature .row-1 .col .elementor-column-wrap,
#feature .row-1 .col .elementor-widget-wrap,
#feature .row-2 .col .elementor-column-wrap,
#feature .row-2 .col .elementor-widget-wrap {
   position: static;
}

#feature .row-1 .no,
#feature .row-2 .no {
   width: auto;
   position: absolute;
   top: 0;
}

#feature .row-1 .no img,
#feature .row-2 .no img {
   max-width: inherit;
   max-height: 128px;
}

#feature .row-1 .sub,
#feature .row-2 .sub {
   font-family: "Josefin Sans", sans-serif;
   font-weight: 700;
   line-height: 1;
   text-transform: uppercase;
}

#feature .row-1 .sub span,
#feature .row-2 .sub span {
   display: inline-block;
   border-bottom: 2px solid #E8A965;
   padding-bottom: 8px;
}

#feature .row-1 .sub span:first-letter,
#feature .row-2 .sub span:first-letter {
   color: #E8A965;
}

#feature .row-1 .elementor-widget-heading,
#feature .row-2 .elementor-widget-heading {
   z-index: 1;
}

#feature .row-1 h3,
#feature .row-2 h3 {
   font-weight: 700;
   font-size: 26px;
   letter-spacing: 0.04em;
   line-height: 2;
   padding-top: 24px;
}

#feature .row-1 h3:first-letter,
#feature .row-2 h3:first-letter {
   color: #E8A965;
}

#feature .row-1 .elementor-widget-text-editor,
#feature .row-2 .elementor-widget-text-editor {
   color: #5B5B5B;
   font-size: 17px;
   line-height: 2;
   letter-spacing: 0.04em;
   padding: 32px 0 40px;
}

#feature .row-1 .elementor-widget-text-editor:before,
#feature .row-2 .elementor-widget-text-editor:before {
   content: '';
   width: auto;
   height: auto;
   background-color: #fff;
   position: absolute;
   top: -25px;
   right: -48px;
   bottom: -30px;
   left: -48px;
}

#feature .row-1 .elementor-widget-text-editor .elementor-text-editor,
#feature .row-2 .elementor-widget-text-editor .elementor-text-editor {
   position: relative;
}

#feature .row-1 .elementor-container:before {
   content: '';
   width: 24px;
   height: 24px;
   background: url("../img/heading-icon-1.png") no-repeat center top/cover;
   position: absolute;
   top: 15px;
   right: calc(87% + 15px);
}

#feature .row-1 .elementor-container:after {
   content: '';
   width: 0;
   height: 0;
   border-width: 0 0 32px 32px;
   border-color: transparent transparent #E8A965 transparent;
   border-style: solid;
   position: absolute;
   bottom: 8px;
   right: 8px;
}

#feature .row-1 .elementor-row:before {
   content: '';
   width: 64%;
   height: 100%;
   background: url("../img/index/feature-bg-1.webp") no-repeat center/cover;
   position: absolute;
   top: 0;
   right: 0;
}

#feature .row-1 .elementor-row:after {
   content: '';
   background-color: #F9F0E6;
   width: 23%;
   height: auto;
   position: absolute;
   top: 15px;
   right: 64%;
   bottom: 15px;
}

#feature .row-1 .no {
   right: 0;
}

#feature .row-2 .elementor-container:before {
   content: '';
   width: 24px;
   height: 24px;
   background: url("../img/heading-icon-1.png") no-repeat center top/cover;
   position: absolute;
   top: 15px;
   left: calc(87% + 15px);
   transform: rotate(90deg);
}

#feature .row-2 .elementor-container:after {
   content: '';
   width: 0;
   height: 0;
   border-width: 0 32px 32px 0;
   border-color: transparent transparent #E8A965 transparent;
   border-style: solid;
   position: absolute;
   bottom: 8px;
   left: 8px;
}

#feature .row-2 .elementor-row {
   flex-direction: row-reverse;
}

#feature .row-2 .elementor-row:before {
   content: '';
   width: 64%;
   height: 100%;
   background: url("../img/index/feature-bg-2.webp") no-repeat center/cover;
   position: absolute;
   top: 0;
   left: 0;
}

#feature .row-2 .elementor-row:after {
   content: '';
   background-color: #F6EED4;
   width: 23%;
   height: auto;
   position: absolute;
   top: 15px;
   bottom: 15px;
   left: 64%;
}

#feature .row-2 .no {
   left: calc(50% - 353px);
}

#feature .row-3 {
   background-image: linear-gradient(to right, #FBF8EF 0%, #FBF8EF 24px, #fff 24px, #fff 64%, #FBFAF5 64%, #FBFAF5 100%);
   padding: 57px 0 96px;
}

#feature .row-3 .elementor-row {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 48px;
}

#feature .row-3 .elementor-column {
   width: auto;
   padding: 0 35px 35px;
}

#feature .row-3 .elementor-column:before {
   content: '';
   width: auto;
   height: auto;
   position: absolute;
   top: 48px;
   right: 0;
   bottom: 0px;
   left: 0;
}

#feature .row-3 .elementor-column:nth-child(1):before,
#feature .row-3 .elementor-column:nth-child(4):before {
   background-color: #F4EED5;
}

#feature .row-3 .elementor-column:nth-child(1) .elementor-widget-heading:before,
#feature .row-3 .elementor-column:nth-child(1) .elementor-widget-heading:after,
#feature .row-3 .elementor-column:nth-child(4) .elementor-widget-heading:before,
#feature .row-3 .elementor-column:nth-child(4) .elementor-widget-heading:after {
   background-color: #F2DBBE;
}

#feature .row-3 .elementor-column:nth-child(2):before,
#feature .row-3 .elementor-column:nth-child(3):before {
   background-color: #F2DBBE;
}

#feature .row-3 .elementor-column:nth-child(2) .elementor-widget-heading:before,
#feature .row-3 .elementor-column:nth-child(2) .elementor-widget-heading:after,
#feature .row-3 .elementor-column:nth-child(3) .elementor-widget-heading:before,
#feature .row-3 .elementor-column:nth-child(3) .elementor-widget-heading:after {
   background-color: #F4EED5;
}

#feature .row-3 .elementor-column-wrap {
   padding: 0 50px !important;
}

#feature .row-3 .elementor-column-wrap:before {
   content: '';
   width: auto;
   height: auto;
   background-color: #fff;
   position: absolute;
   top: 140px;
   right: 0;
   bottom: 30px;
   left: 0;
}

#feature .row-3 .elementor-widget-heading:before,
#feature .row-3 .elementor-widget-heading:after {
   content: '';
   width: 30px;
   height: 30px;
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
}

#feature .row-3 .elementor-widget-heading:before {
   left: -65px;
}

#feature .row-3 .elementor-widget-heading:after {
   right: -65px;
}

#feature .row-3 .elementor-widget-image {
   width: auto;
   margin: 0 -14px;
   padding-bottom: 33px;
}

#feature .row-3 h3 {
   font-weight: 700;
   font-size: 23px;
   line-height: 1.6;
   letter-spacing: 0.04em;
}

#feature .row-3 h3:first-letter {
   color: #E8A965;
}

#feature .row-3 .elementor-widget-text-editor {
   color: #5B5B5B;
   letter-spacing: 0.04em;
   padding-top: 25px;
}

#feature .row-3 .btn {
   padding-top: 32px;
}

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

   #feature .row-1,
   #feature .row-2 {
      padding-bottom: 64px;
   }

   #feature .row-1 .elementor-container:before,
   #feature .row-2 .elementor-container:before {
      top: 0;
   }

   #feature .row-1 .elementor-container:after,
   #feature .row-2 .elementor-container:after {
      border-width: 0 0 16px 16px;
   }

   #feature .row-1 .elementor-row,
   #feature .row-2 .elementor-row {
      flex-direction: column;
      gap: 0px;
      padding: 32px 0 0;
   }

   #feature .row-1 .elementor-row:before,
   #feature .row-1 .elementor-row:after,
   #feature .row-2 .elementor-row:before,
   #feature .row-2 .elementor-row:after {
      display: none;
   }

   #feature .row-1 .photo,
   #feature .row-1 .col,
   #feature .row-2 .photo,
   #feature .row-2 .col {
      width: 100%;
   }

   #feature .row-1 .photo:before,
   #feature .row-2 .photo:before {
      content: '';
      width: auto;
      height: auto;
      position: absolute;
      top: -32px;
      right: 52px;
      bottom: 0;
      left: 52px;
   }

   #feature .row-1 .photo .elementor-image,
   #feature .row-2 .photo .elementor-image {
      position: relative;
      z-index: 1;
   }

   #feature .row-1 .col,
   #feature .row-2 .col {
      padding: 48px 30px 32px;
      position: relative;
   }

   #feature .row-1 .no,
   #feature .row-2 .no {
      display: none;
      width: 100%;
      max-width: 382px;
      height: auto;
   }

   #feature .row-1 .no.sp,
   #feature .row-2 .no.sp {
      display: block;
   }

   #feature .row-1 .no img,
   #feature .row-2 .no img {
      max-width: 100%;
      max-height: inherit;
   }

   #feature .row-1 .sub,
   #feature .row-2 .sub {
      font-size: 16px;
   }

   #feature .row-1 h3,
   #feature .row-2 h3 {
      font-size: 24px;
      line-height: 1.6;
   }

   #feature .row-1 .elementor-widget-text-editor,
   #feature .row-2 .elementor-widget-text-editor {
      font-size: 16px;
      padding: 24px 0;
   }

   #feature .row-1 .elementor-widget-text-editor:before,
   #feature .row-2 .elementor-widget-text-editor:before {
      top: -20px;
      right: -20px;
      left: -20px;
   }

   #feature .row-1 .elementor-container:before {
      right: auto;
      left: 20px;
   }

   #feature .row-1 .elementor-container:after {
      right: 20px;
      bottom: 20px;
   }

   #feature .row-1 .photo:before {
      background-color: #F9F0E6;
   }

   #feature .row-1 .col {
      background: url("../img/index/feature-bg-1_sp.webp") no-repeat center/cover;
   }

   #feature .row-2 {
      padding-bottom: 20px;
   }

   #feature .row-2 .elementor-container:before {
      right: auto;
      left: 20px;
      transform: rotate(0);
   }

   #feature .row-2 .elementor-container:after {
      right: 20px;
      bottom: 20px;
      left: auto;
   }

   #feature .row-2 .photo:before {
      background-color: #F6EED4;
   }

   #feature .row-2 .col {
      background: url("../img/index/feature-bg-2_sp.webp") no-repeat center/cover;
   }

   #feature .row-2 .no {
      right: 0;
      left: auto;
   }

   #feature .row-3 .elementor-row {
      grid-template-columns: 1fr;
   }

   #feature .row-3 .elementor-column:nth-child(odd):before {
      background-color: #F4EED5;
   }

   #feature .row-3 .elementor-column:nth-child(odd) .elementor-widget-heading:before,
   #feature .row-3 .elementor-column:nth-child(odd) .elementor-widget-heading:after {
      background-color: #F2DBBE;
   }

   #feature .row-3 .elementor-column:nth-child(even):before {
      background-color: #F2DBBE;
   }

   #feature .row-3 .elementor-column:nth-child(even) .elementor-widget-heading:before,
   #feature .row-3 .elementor-column:nth-child(even) .elementor-widget-heading:after {
      background-color: #F4EED5;
   }
}

@media screen and (max-width: 767px) {
   #feature {
      background-image: linear-gradient(to right, #fff 0%, #fff 50%, #FBFAF5 50%, #FBFAF5 100%);
      margin-top: 54px;
   }

   #feature h2 {
      width: calc(100% - 20px);
      padding: 14px 0 80px;
   }

   #feature #feature .row-1 .col,
   #feature #feature .row-2 .col {
      padding: 48px 30px 32px;
   }

   #feature .row-3 {
      background-image: linear-gradient(to right, #FBFAF5 0%, #FBFAF5 50%, #fff 50%, #fff 100%);
      padding: 20px 0 56px;
   }

   #feature .row-3 .elementor-row {
      grid-template-columns: 1fr;
   }

   #feature .row-3 .elementor-column {
      padding: 0 20px 32px;
   }

   #feature .row-3 .elementor-column:before {
      top: 40px;
   }

   #feature .row-3 .elementor-column-wrap {
      padding: 0 20px !important;
   }

   #feature .row-3 .elementor-column-wrap:before {
      top: 107px;
   }

   #feature .row-3 .elementor-widget-image {
      margin: 0;
      padding-bottom: 24px;
   }

   #feature .row-3 .elementor-widget-heading:before,
   #feature .row-3 .elementor-widget-heading:after {
      width: 20px;
      height: 20px;
   }

   #feature .row-3 .elementor-widget-heading:before {
      left: -30px;
   }

   #feature .row-3 .elementor-widget-heading:after {
      right: -30px;
   }

   #feature .row-3 .elementor-widget-text-editor {
      padding-top: 16px;
   }
}

/*--------------------------------------
   consult
--------------------------------------*/
#consult {
   position: relative;
   padding: 96px 20px;
}

#consult:before {
   content: '';
   width: 100%;
   height: 100%;
   background: url("../img/index/consult-bg.webp") no-repeat center top/cover;
   background-attachment: fixed;
   position: absolute;
   top: 0;
   left: 0;
}

#consult .elementor-container {
   position: static;
}

#consult .container {
   width: 100%;
   max-width: 1270px;
}

#consult .container .elementor-widget-wrap {
   width: 900px;
   background-color: rgba(255, 255, 255, 0.9);
   padding: 64px 40px !important;
}

#consult .container .elementor-widget-wrap:before {
   content: '';
   width: 32px;
   height: 32px;
   background-color: #E8A965;
   position: absolute;
   top: -12px;
   left: -12px;
   opacity: 0.64;
}

#consult .container .elementor-widget-wrap:after {
   content: '';
   width: 32px;
   height: 32px;
   background-color: #E8A965;
   position: absolute;
   top: -12px;
   right: -12px;
   opacity: 0.64;
}

#consult h2 {
   font-weight: 700;
   font-size: 32px;
   line-height: 1;
   letter-spacing: 0.04em;
}

#consult h2>span {
   display: inline-block;
   background: url('../img/index/title-line.png') repeat-x bottom left / auto 4px;
   padding-bottom: 16px;
}

#consult .txt {
   color: #5B5B5B;
   padding-top: 48px;
}

#consult .txt p:not(:last-child) {
   margin-bottom: 48px;
}

#consult .txt-1 {
   color: #5B5B5B;
   margin-top: 48px;
   padding: 0 32px 32px;
}

#consult .txt-1:before {
   content: '';
   width: 100%;
   height: auto;
   background-color: rgba(239, 232, 223, 0.8);
   position: absolute;
   top: 24px;
   bottom: 0;
   left: 0;
}

#consult .txt-1 h3 {
   display: inline-block;
   background-color: #C0AC8D;
   color: #fff;
   font-weight: 700;
   font-size: 24px;
   letter-spacing: 0.04em;
   padding: 8px 32px;
   position: relative;
   left: -32px;
}

#consult .txt-1 p {
   padding-top: 24px;
   position: relative;
}

#consult .img-parallax {
   display: none;
   clip: rect(0, auto, auto, 0);
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   z-index: 0;
}

#consult .img-parallax img {
   width: 100% !important;
   height: 100vh !important;
   position: fixed;
   top: 0;
   left: 0;
   padding: 0;
   margin: 0;
   object-fit: cover;
   z-index: 0;
   transform: translateZ(0) !important;
}

@media screen and (max-width: 1200px) {
  #consult .img-parallax {
      display: block;
   }
}

@media screen and (max-width: 1023px) {
   #consult {
      padding-right: 30px;
      padding-left: 30px;
   }

   #consult:before {
      display: none;
   }

   #consult .elementor-widget-wrap {
      width: 100%;
      max-width: 900px;
   }
}

@media screen and (max-width: 767px) {
   #consult {
      margin-bottom: 0;
      padding: 74px 0 64px;
   }

   #consult .container .elementor-widget-wrap {
      width: 100%;
      padding: 40px 30px !important;
   }

   #consult .container .elementor-widget-wrap:before {
      width: 20px;
      height: 20px;
      top: -10px;
      left: -10px;
   }

   #consult .container .elementor-widget-wrap:after {
      width: 20px;
      height: 20px;
      top: -10px;
      right: -10px;
   }

   #consult h2 {
      font-size: 24px;
      line-height: 1.6;
   }

   #consult .txt {
      padding-top: 24px;
   }

   #consult .txt p:not(:last-child) {
      margin-bottom: 0;
   }

   #consult .txt-1 {
      font-size: 15px;
      line-height: 2;
      margin-top: 32px;
      padding: 0;
   }

   #consult .txt-1 h3 {
      display: block;
      font-size: 22px;
      line-height: 1.6;
      padding: 12px 20px;
      left: 0;
   }

   #consult .txt-1 p {
      padding: 20px 20px;
   }
}

/*--------------------------------------
   menu
--------------------------------------*/
#menu {
   padding: 96px 0 48px;
}

#menu:before {
   content: '';
   width: calc(50% + 300px);
   height: 100%;
   background-color: #EFE8DF;
   position: absolute;
   top: 0;
   right: 24px;
}

#menu:after {
   content: '';
   width: 150px;
   height: 576px;
   background-color: #F3E0C7;
   position: absolute;
   bottom: 90px;
   right: calc(50% + 324px);
}

#menu>.elementor-container:before {
   content: '';
   width: 192px;
   height: 276px;
   background: url("../img/index/menu-deco.png") no-repeat center top/cover;
   position: absolute;
   top: -96px;
   right: 130px;
}

#menu .container {
   max-width: 1294px;
   z-index: 1;
}

#menu h2 {
   font-weight: 700;
   font-size: 48px;
   line-height: 1;
   letter-spacing: 0.08em;
}

#menu h2>span {
   display: block;
}

#menu h2>span:first-letter {
   color: #E8A965;
}

#menu h2 .fnt-josefin-sans {
   display: block;
   font-size: 18px;
   padding-bottom: 32px;
}

#menu .ttl-sub {
   width: auto;
   position: absolute;
   top: 64px;
   right: 0;
}

#menu h3 {
   font-weight: 700;
   font-size: 20px;
   letter-spacing: 0.08em;
   line-height: 30px;
}

#menu h3 .cl-orange {
   color: #FA9C5D;
}

#menu .box {
   width: 728px;
   margin-left: auto;
   padding-top: 64px;
}

#menu .box .elementor-row {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 24px 16px;
}

#menu .box .elementor-column {
   width: auto;
}

#menu .box .elementor-widget-image {
   width: 80px;
   position: absolute;
   top: 50%;
   left: 0px;
   transform: translateY(-50%);
   z-index: 1;
}

#menu .box .elementor-heading-title {
   color: #5B5B5B;
   font-weight: 700;
   font-size: 15px;
   line-height: 32px;
   padding-left: 40px;
}

#menu .box .elementor-heading-title a {
   display: block;
   background-color: #fff;
   border-radius: 5px;
   padding: 12px 0 20px 64px;
   position: relative;
   -moz-transition: all 0.3s;
   -o-transition: all 0.3s;
   -webkit-transition: all 0.3s;
   transition: all 0.3s;
}

#menu .box .elementor-heading-title a:after {
   content: '';
   width: 0;
   height: 0;
   border-width: 0 0 8px 8px;
   border-color: transparent transparent #E8A965 transparent;
   border-style: solid;
   position: absolute;
   bottom: 6px;
   right: 6px;
}

#menu .box .elementor-heading-title a span {
   display: block;
   color: #FA9C5D;
   font-size: 25px;
}

#menu .box .elementor-heading-title a:hover {
   background-color: #FA9C5D;
   color: #fff;
   opacity: 1;
}

#menu .box .elementor-heading-title a:hover span {
   color: #fff;
}

#menu .box .elementor-heading-title a:hover:after {
   border-bottom-color: #fff;
}

#menu .photo {
   width: 460px;
   position: absolute;
   bottom: 90px;
   left: 0;
}

#menu .btn {
   padding-left: 35px;
}

@media screen and (max-width: 1440px) {
   #menu .container {
      padding: 0 30px;
   }

   #menu .photo {
      width: calc(100% - 750px);
   }
}

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

   #menu:before {
      width: 72%;
      height: auto;
      top: 135px;
      right: 0;
      bottom: 0;
   }

   #menu:after {
      display: none;
   }

   #menu>.elementor-container:before {
      width: 96px;
      top: 71px;
      right: 0;
   }

   #menu .ttl-sub {
      position: static;
      padding-top: 40px;
   }

   #menu h3 {
      font-size: 18px;
      line-height: 1.6;
   }

   #menu .box {
      padding-top: 40px;
   }

   #menu .btn {
      text-align: center;
      padding: 32px 0 0;
   }

   #menu .photo {
      width: 100%;
      padding-top: 48px;
      position: relative;
      bottom: auto;
      left: 30px;
   }

   #menu .photo .elementor-image {
      height: 77vw;
      position: relative;
   }

   #menu .photo .elementor-image:before {
      content: '';
      width: 60px;
      height: 80%;
      background-color: #F3E0C7;
      position: absolute;
      top: 10%;
      right: 100%;
   }

   #menu .photo .elementor-image img {
      width: 100%;
      max-width: inherit;
      height: 100%;
      object-fit: cover;
   }
}

@media screen and (max-width: 767px) {
   #menu .box .elementor-row {
      grid-template-columns: 1fr;
      gap: 24px;
   }

   #menu .photo {
      left: 20px;
   }

   #menu .photo .elementor-image:before {
      width: 40px;
   }
	
	#menu .box .elementor-heading-title a span {
		font-size: 22px;
	}
}

/*--------------------------------------
   greeting
--------------------------------------*/
#greeting .container {
   max-width: 1294px;
   padding: 96px 60px 96px 40px;
}

#greeting .container:before {
   content: '';
   width: 303px;
   height: 100%;
   background-color: #F7F4E8;
   position: absolute;
   top: 0;
   left: 0;
}

#greeting .container:after {
   content: '';
   width: auto;
   height: auto;
   background: url("../img/index/greeting-deco-1.png") no-repeat top left/24px auto, url("../img/index/greeting-deco-2.png") no-repeat top right/24px auto, url("../img/index/greeting-deco-3.png") no-repeat bottom right/24px auto, url("../img/index/greeting-deco-4.png") no-repeat bottom left/24px auto;
   position: absolute;
   top: 80px;
   right: 45px;
   bottom: 80px;
   left: -12px;
}

#greeting .elementor-widget-wrap {
   align-items: center;
   gap: 36px;
   z-index: 1;
}

#greeting .elementor-widget-heading {
   width: auto;
   height: 520px;
}

#greeting h2 {
   width: 18px;
   padding-top: 105px;
}

#greeting h2:after {
   content: '';
   width: 0;
   height: 48px;
   border-left: 1px solid #5B5B5B;
   display: block;
   margin: 48px auto 0;
}

#greeting h2 span {
   display: block;
}

#greeting h2 span:first-letter {
   color: #E8A965;
}

#greeting h2 .fnt-josefin-sans {
   width: 24px;
   font-weight: 700;
   font-size: 24px;
   letter-spacing: 0;
   line-height: 1;
   transform: rotate(-90deg);
}

#greeting h2 .ja {
   width: 18px;
   font-weight: 700;
   font-size: 18px;
   letter-spacing: 0;
   line-height: 1.2;
   padding-top: 48px;
}

#greeting .elementor-widget-image {
   flex: 1 0 0;
}

#greeting .elementor-widget-image .elementor-widget-container {
   width: 413px;
   position: relative;
}

#greeting .elementor-widget-image figcaption {
   background-color: #fff;
   position: absolute;
   bottom: 0;
   right: 40px;
   font-weight: 700;
   font-size: 20px;
   line-height: 35px;
   letter-spacing: 0.08em;
   padding-left: 8px;
   position: absolute;
   bottom: -22px;
   right: 30px;
}

#greeting .elementor-widget-image figcaption span {
   display: inline-block;
   font-size: 24px;
   padding: 5px 12px;
}

#greeting .text {
   background-color: #fff;
   width: calc(100% - 503px);
   max-width: 660px;
   padding: 64px 45px;
}

#greeting .text:before {
   content: '';
   width: 60px;
   height: auto;
   background-color: #F3E0C7;
   position: absolute;
   top: 96px;
   bottom: 96px;
   left: 100%;
}

#greeting .text h3 {
   display: inline-block;
   background: url('../img/index/title-line.png') repeat-x bottom left / auto 4px;
   margin-bottom: 48px;
   padding-bottom: 12px;
   font-weight: 700;
   font-size: 32px;
   line-height: 1.6;
   letter-spacing: 0.04em;
}

#greeting .text p:not(:last-child) {
   color: #5B5B5B;
   margin-bottom: 48px;
}

@media screen and (max-width: 1320px) {
   #greeting {
      padding-left: 12px;
   }
}

@media screen and (max-width: 1023px) {
   #greeting .container {
      padding: 84px 20px 64px 40px;
   }

   #greeting .container:before {
      width: calc(28% - 20px);
      left: 20px;
   }

   #greeting .container:after {
      content: '';
      width: auto;
      height: auto;
      background: url("../img/index/greeting-deco-1.png") no-repeat top left/20px auto, url("../img/index/greeting-deco-3.png") no-repeat bottom right/20px auto;
      position: absolute;
      top: 32px;
      right: 10px;
      bottom: 54px;
      left: 10px;
   }

   #greeting .elementor-widget-wrap {
      flex-direction: row;
      flex-wrap: wrap;
      gap: 38px 20px;
   }

   #greeting .elementor-widget-heading {
      height: 92vw;
   }

   #greeting h2:before {
      content: '';
      width: 20px;
      height: 20px;
      background: url("../img/index/greeting-deco-4.png") no-repeat center top/cover;
      position: absolute;
      bottom: -30px;
      left: -30px;
   }

   #greeting h2:after {
      margin-top: 36px;
   }

   #greeting h2 .ja {
      padding-top: 36px;
   }

   #greeting .elementor-widget-image {
      width: calc(100% - 38px);
      flex: inherit;
   }

   #greeting .elementor-widget-image .elementor-widget-container {
      width: auto;
   }

   #greeting .elementor-widget-image figcaption {
      right: 0;
   }

   #greeting .elementor-widget-image figure {
      height: 92vw;
   }

   #greeting .elementor-widget-image figure img {
      width: 100%;
      max-width: inherit;
      height: 100%;
      object-fit: cover;
   }

   #greeting .text {
      width: 100%;
      max-width: 100%;
      padding: 40px 20px;
   }

   #greeting .text:before {
      width: 20px;
      top: 60px;
      bottom: 60px;
   }

   #greeting .text h3 {
      font-size: 24px;
      line-height: 1.6;
      margin-bottom: 32px;
   }

   #greeting .text p:not(:last-child) {
      margin-bottom: 0px;
   }

   #greeting .text .btn {
      padding-top: 32px;
   }
}

/*--------------------------------------
   recruit
--------------------------------------*/
#recruit {
   padding-top: 96px;
}

#recruit:before {
   content: '';
   width: calc(50% + 320px);
   height: 100%;
   background-color: #F9F0E6;
   position: absolute;
   top: 0;
   right: 24px;
}

#recruit:after {
   content: '';
   width: calc(50% - 160px);
   height: 100%;
   background-color: #F7F0DE;
   position: absolute;
   top: 0;
   right: 24px;
}

#recruit .container {
   max-width: 1294px;
   z-index: 1;
}

#recruit .ttl-sub {
   font-weight: 700;
   font-size: 200px;
   line-height: 1;
   letter-spacing: 0;
   color: rgba(255, 255, 255, 0.64);
   position: absolute;
   top: -98px;
   right: 0;
   text-align: right;
}

#recruit .box .col {
   width: 621px;
   padding: 64px 20px 64px 48px;
}

#recruit .box .col:before {
   content: '';
   height: auto;
   height: 100%;
   background-color: #fff;
   position: absolute;
   top: 0;
   right: -82px;
   left: 0;
}

#recruit h2 {
   display: inline-block;
   font-weight: 700;
   font-size: 32px;
   line-height: 1;
   letter-spacing: 0.04em;
   background: url('../img/index/title-line.png') repeat-x bottom left / auto 4px;
   padding-bottom: 16px;
}

#recruit .elementor-widget-text-editor {
   color: #5B5B5B;
   max-width: 470px;
   padding-top: 48px;
}

#recruit .btn {
   padding-top: 48px;
}

#recruit .btn a:after {
   transform: rotate(90deg);
}

#recruit .photo {
   width: 656px;
   padding: 64px 0;
}

#recruit .photo .elementor-widget-wrap {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 24px;
   width: 656px;
}

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

   #recruit:before,
   #recruit:after {
      right: 0;
   }

   #recruit .photo {
      width: calc(100% - 577px);
   }
}

@media screen and (max-width: 1023px) {
   #recruit {
      padding: 86px 20px 0;
   }

   #recruit:before {
      background-image: linear-gradient(to right, #F9F0E6 0%, #F9F0E6 65%, #F7F0DE 65%, #F7F0DE 100%);
      width: 72%;
      height: auto;
      right: 0;
      bottom: 32px;
      left: auto;
   }

   #recruit:after {
      display: none;
   }

   #recruit .ttl-sub {
      font-size: 100px;
      top: -86px;
   }

   #recruit .box .elementor-row {
      flex-direction: column-reverse;
   }

   #recruit .box .col {
      width: 100%;
      padding: 32px 10px 0;
   }

   #recruit .box .col:before {
      top: -32px;
      right: -10px;
      bottom: 28px;
      left: -10px;
   }

   #recruit h2 {
      font-size: 22px;
      line-height: 1.6;
   }

   #recruit .elementor-widget-text-editor {
      padding-top: 32px;
   }

   #recruit .btn {
      padding-top: 32px;
   }

   #recruit .photo {
      width: 100%;
      padding: 0;
   }

   #recruit .photo .elementor-widget-wrap {
      width: 100%;
      gap: 20px;
   }
}

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

   #recruit .ttl-sub {
      font-size: 16.5vw;
      right: -20px;
   }
}

/*--------------------------------------
   information
--------------------------------------*/
#information {
   padding: 96px 0;
   position: relative;
}

#information:before {
   content: '';
   width: calc(50% + 219px);
   height: 468px;
   background-color: #F7F4E8;
   position: absolute;
   top: 162px;
   right: 24px;
}

#information:after {
   content: '';
   width: calc(50% - 240px);
   height: 413px;
   background-color: #F7F4E8;
   position: absolute;
   top: 630px;
   left: 0;
}

#information .container {
   max-width: 1200px;
   z-index: 1;
}

#information h2 {
   line-height: 1;
}

#information h2>span {
   display: block;
}

#information h2>span:first-letter {
   color: #E8A965;
}

#information h2 .fnt-josefin-sans {
   font-weight: 700;
   font-size: 18px;
   letter-spacing: 0;
   padding-bottom: 32px;
}

#information h2 .ja {
   font-weight: 700;
   font-size: 32px;
   letter-spacing: 0.08em;
}

#information .box {
   color: #5B5B5B;
   padding-top: 32px;
}

#information .box .elementor-row {
   align-items: center;
}

#information .box .col-l table {
   width: 100%;
}

#information .box .col-l table th,
#information .box .col-l table td {
   vertical-align: middle;
   font-weight: 700;
   line-height: 1.4;
   border-bottom: 1px solid #5B5B5B;
   padding: 40px 0 12px;
}

#information .box .col-l table th {
   width: 100px;
   text-align: center;
   color: #3B3B3B;
}

#information .box .col-l table td {
   padding-left: 48px;
}

#information .box .col-l table td h1 {
   font-weight: inherit;
}

#information .box .col-l table td small {
   font-size: 14px;
}

#information .box .col-r {
   padding-left: 64px;
}

#information .box .col-r .time th,
#information .box .col-r .time td {
   color: #3B3B3B;
   font-weight: 700;
   line-height: 1;
   text-align: center;
}

#information .box .col-r .time thead th {
   border-bottom: 1px solid;
   padding-bottom: 12px;
}

#information .box .col-r .time thead th:first-child {
   width: 110px;
   font-size: 18px;
}

#information .box .col-r .time thead th:first-child:first-letter {
   color: #E8A965;
}

#information .box .col-r .time tbody th,
#information .box .col-r .time tbody td {
   padding: 12px 0;
}

#information .box .col-r .time tbody th {
   text-align: left;
   padding-left: 12px;
}

#information .box .col-r .time tbody td {
   color: #5B5B5B;
}

#information .box .col-r .time tbody tr:last-child th,
#information .box .col-r .time tbody tr:last-child td {
   border-bottom: 1px solid;
}

#information .box .col-r .elementor-text-editor {
   font-size: 15px;
   line-height: 1.6;
   letter-spacing: 0;
}

#information .box .col-r .elementor-text-editor p {
   padding: 12px 12px 0;
}

#information .gmap {
   margin-top: 64px;
}

#information .gmap .elementor-widget-container {
   width: 100%;
   height: 400px;
}

#information .gmap .elementor-widget-container iframe {
   display: block;
   width: 100%;
   height: 100%;
}

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

   #information:before,
   #information:after {
      display: none;
   }

   #information .container {
      padding: 0;
   }

   #information .elementor-widget-heading {
      padding: 0 20px;
   }

   #information .box {
      padding-top: 0;
   }

   #information .box .elementor-row {
      flex-direction: column;
   }

   #information .box .col-l,
   #information .box .col-r {
      width: 100%;
   }

   #information .box .col-l {
      padding: 48px 20px;
   }

   #information .box .col-r {
      background-color: #F7F4E8;
      padding: 48px 20px;
   }

   #information .gmap {
      background-color: #F6F5EE;
      margin-top: 0;
      padding: 20px 20px 64px;
   }
}

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

   #information .box .col-l table th,
   #information .box .col-l table td {
      font-size: 15px;
      padding: 16px 0 12px;
   }

   #information .box .col-l table th {
      width: 70px;
   }

   #information .box .col-l table td {
      padding-left: 12px;
   }

   #information .box .col-l table td small {
      font-size: 13px;
   }

   #information .box .col-l table tr:first-child th,
   #information .box .col-l table tr:first-child td {
      padding-top: 0;
   }

   #information .box .col-r .elementor-text-editor {
      font-size: 14px;
   }

   #information .box .col-r .elementor-text-editor p {
      padding: 12px 0 0;
   }

   #information .box .col-r .time th,
   #information .box .col-r .time td {
      font-size: 16px;
      line-height: 1.2;
   }

   #information .box .col-r .time thead th:first-child {
      width: 80px;
      font-size: 16px;
   }

   #information .box .col-r .time tbody th {
      text-align: center;
      padding-left: 0;
   }

   #information .gmap .elementor-widget-container {
      height: 200px;
   }
}