@font-face {
  font-family: 'Jeko';
  src: url('../font/EllenLuff - Jeko Medium.otf') format('opentype');
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: 'Jeko';
  src: url('../font/EllenLuff - Jeko Bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: 'Jeko';
  src: url('../font/EllenLuff\ -\ Jeko\ ExtraBold.otf') format('opentype');
  font-weight: 800;
  font-style: normal;
}
@font-face {
  font-family: 'Jeko';
  src: url('../font/EllenLuff - Jeko Black.otf') format('opentype');
  font-weight: 900;
  font-style: normal;
}

@font-face {
  font-family: 'Transforma Mix';
  src: url('../font/transformamix-regular-webfont.woff2') format('woff2'),
       url('../font/transformamix-regular-webfont.woff') format('woff'),
       url('../font/TransformaMix-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "icomoon";
  src: url("../font/iconFont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

html {
  scroll-behavior: smooth;
}

body {
  color: #414141;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  letter-spacing: 0.05em;
}
.c-bg-fixed{
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-image: url(../img/mv_bg.png);
  background-size: cover;
  background-position: center;
  z-index: -1;
}

main{
  overflow: hidden;
}
img {
  width: 100%;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}

.l-section-container {
  max-width: 100vw;
  padding: 0 17.39583333vw;
  margin: 0 auto;
}

@media screen and (max-width:768px) {
  .c-bg-fixed{
    background-image: url(../img/mv_bg_sp.svg);
  }

  .l-section-container {
    max-width: 100vw;
    padding: 0 20px;
  }
}

/* text */
p,
.c-text__base {
  line-height: 1.93;
  font-weight: 300;
  letter-spacing: 0.06em;
}

.c-text-link{
  text-decoration: underline;
  transition: 0.5s;
  &:hover{
    text-decoration: none;
    opacity: 0.6;
  }
}

.c-mask {
  background: #fff;
  position: fixed;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
}
.c-mask--gray{
  background: rgba(0, 0, 0, 0.3);
  position: fixed;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 80;
  visibility: hidden;
  opacity: 0;
  transition: 0.5s opacity;

  &.open{
    opacity: 1;
    visibility: visible;
  }
}

.c-btn {
  position: relative;
  display: inline-block;
  padding: 32px 2em;
  background: #1DAB8F;
  color: #fff;
  font-size: clamp(20px, 1.3vw, 26px);
  font-weight: 600;
  text-align: center;
  border-radius: 51px;
  z-index: 1;
  overflow: hidden;
  transition: 0.3s ease;
  width: clamp(320px, 22.86vw, 439px);
  line-height: 1;

  &::before {
    content: '';
    position: absolute;
    top: -7px;
    left: -7px;
    right: -7px;
    bottom: -7px;
    background: linear-gradient(130deg, #F7F257, #56D1BF);
    border-radius: 51px;
    /* border-radius + padding分 */
    z-index: -1;
  }

  &&::after {
    content: '';
    position: absolute;
    top: 7px;
    left: 7px;
    right: 7px;
    bottom: 7px;
    background: #1DAB8F;
    border-radius: 44px;
    z-index: -1;
    transition: 0.3s ease;
  }

  & .c-btn__icon {
    width: clamp(20px, 1.3vw, 25px);
    height: clamp(20px, 1.3vw, 25px);
    transition: 0.3s ease;
    position: absolute;
    top: 50%;
    right: 8%;
    transform: translateY(-50%);

    & svg {
      overflow: visible;
      display: block;
    }
  }

  &:hover {
    background: #FFFFFF;
    color: #1DAB8F;

    &&::after {
      content: '';
      background: #FFFFFF;
    }

    & .c-btn__icon svg circle {
      fill: #1DAB8F;
    }

    & .c-btn__icon svg path {
      stroke: #fff;
    }
  }
}

.c-btn--fixed{
  position: fixed;
  opacity: 0;
  pointer-events: none;
  bottom: 33px;
  left: 50%;
  transform: translateX(-50%);
  z-index:50;
  transition: 0.5s;

  &.fixed{
    opacity: 1;
    pointer-events: initial;
  }
}

@media screen and (max-width:768px) {
  .c-btn {
    width: 100%;
    max-width: 324px;
    padding: 26px 2em;
    font-size: 18px;

    & .c-btn__icon {
      width: 23px;
      height: 23px;
    }
  }
}

.c-marker {
  position: relative;
  z-index: 1;

  &::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0%;
    height: 10px;
    background-color: #F7F257;
    z-index: -1;
    transition: 0.5s;
  }
}
.c-marker.js-animeOn {
  &::after {
    width: 100%;
  }
}


.c-section__ttl--01 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.c-section__ttl--01_img {
  width: 43px;
}
.c-section__ttl--01_txt_en {
  /* font-family: 'Transforma Mix', sans-serif;
  font-weight: 400;
  font-size: 4.11vw; */
  line-height: 0;
  margin: 14px 0 30px;
  & img{
      height: clamp(45px, 2.94vw, 57.5px);
      width: auto;
    }
}
/* .c-section__ttl--01_txt_en_ja{
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 3.07vw;
}
.c-section__ttl--01_txt_en_num{
  font-size: 4.11vw;
} */
.c-section__ttl--01_txt_ja {
  font-weight: 600;
}
@media screen and (max-width:768px) {
  .c-section__ttl--01_img {
    width: 33px;
  }
  .c-section__ttl--01_txt_en {
    margin: 10px 0 15px;
    & img{
      height: 35px;
      width: auto;
    }
  }
  .c-section__ttl--01_txt_ja {
    font-size: 13px;
  }
  
  /* .c-section__ttl--01_txt_en_ja{
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 44px;
  }
  .c-section__ttl--01_txt_en_num{
    font-size: 50px;
  } */
}

/* Utility */
.u-only--pc {
  display: block;
}

.u-only--pc--inline {
  display: inline;
}

.u-only--sp {
  display: none;
}

.u-align-right {
  text-align: right;
}

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

  .u-only--pc,
  .u-only--pc--inline {
    display: none;
  }

  .u-only--sp {
    display: block;
  }
}

/* --------------------------------------------------- 
*
* ANIMATION
*
* --------------------------------------------------- */
/* フェードアウト */
.c-fade-out {
  opacity: 1;
}

.c-fade-out.js-animeOn {
  -webkit-transform: translate(0);
  transform: translate(0);
  opacity: 0;
  -webkit-transition: opacity 2s ease, -webkit-transform 2s ease;
  transition: opacity 2s ease, -webkit-transform 2s ease;
  pointer-events: none;
}

/* フェードイン（アップ） */
.c-fade-up {
  -webkit-transform: translateY(20px);
  transform: translateY(20px);
  opacity: 0;
}

.c-fade-up.js-animeOn {
  -webkit-transform: translate(0);
  transform: translate(0);
  opacity: 1;
  -webkit-transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.8s ease, -webkit-transform 0.8s ease;
  transition: transform 0.8s ease, opacity 0.8s ease;
  transition: transform 0.8s ease, opacity 0.8s ease, -webkit-transform 0.8s ease;
}

/* 線の描画（SVG） */
@keyframes draw {
  to {
    stroke-dashoffset: 0;
  }
}
/* 左から表示 */
@keyframes slideInFromLeft {
	0% {
		opacity: 0;
		clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
	}

	100% {
		opacity: 1;
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
}
.c-slide-in-left {
	opacity: 0;
}
.c-slide-in-left.js-animeOn {
	opacity: 1;
	animation: 2s ease-out 0s 1 slideInFromLeft;
}


/* アニメーションの遅延実行 */
.js-animeOn.-delay03 {
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s;
}

.js-animeOn.-delay05 {
  -webkit-transition-delay: 0.5s;
  transition-delay: 0.5s;
  
  &::after{
    -webkit-transition-delay: 0.5s;
    transition-delay: 0.5s;
  }
}

.js-animeOn.-delay10 {
  -webkit-transition-delay: 1s;
  transition-delay: 1s;

  &::after{
    -webkit-transition-delay: 1s;
    transition-delay: 1s;
  }
}

.js-animeOn.-delay15 {
  -webkit-transition-delay: 1.5s;
  transition-delay: 1.5s;
  
  &::after{
    -webkit-transition-delay: 1.5s;
    transition-delay: 1.5s;
  }
}

.js-animeOn.-delay20 {
  -webkit-transition-delay: 2.0s;
  transition-delay: 2.0s;
  
  &::after{
    -webkit-transition-delay: 2s;
    transition-delay: 2s;
  }
}

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

  .js-anime--scroll.js-animeOn.-delay03,
  .js-anime--scroll.js-animeOn.-delay05,
  .js-anime--scroll.js-animeOn.-delay10,
  .js-anime--scroll.js-animeOn.-delay15,
  .js-anime--scroll.js-animeOn.-delay20 {
    transition-delay: 0s;

    &::after{
      transition-delay: 0s;
    }
  }
}


/* --------------------------------------------------- 
*
* HEADER
*
* --------------------------------------------------- */
.l-header {
  position: fixed;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 98%;
  height: min(5.21vw, 100px);
  min-height: 90px;
  z-index: 100;
  padding: 0 1.56vw 0 2.6vw;
  margin: 15px 1% 0;
  background-color: #fff;
  border-radius: 50px;

  /* スクロール後に表示 */
  transform: translateY(-150px);
  transition: all 0.3s ease;

  &.fixed {
    transform: translateY(0);
  }
}

.c-humberger-menu {
  display: none;
}

.l-header-logo{
  width: 11.41vw;
}
.p-gnav__wraper {
  display: flex;
  align-items: center;
}

.p-gnav__list {
  display: flex;
}

.p-gnav__link {
  padding-left: 1.04vw;
  font-size: clamp(15px,0.83vw,16px);
  font-weight: 600;
  transition: 0.3s ease;

  &:hover {
    color: #1DAB8F;
  }
}

.p-header-btn__container {
  padding-left: 1.56vw;
}

.p-header-btn {
  width: clamp(190px, 11.33vw, 220px);
  font-size: clamp(15px,0.83vw,16px);
  transition: opacity 0.3s ease;
  padding: 1.4em 2em 1.5em 1.6em;

  & .c-btn__icon {
    width: 17px;
    height: 17px;
    right: 10%;
  }
}

/*ヘッダーは早めにスマホに切り替える*/
@media screen and (max-width:1240px) {
  .l-header {
    min-height: auto;
    height: 78px;
    width: 100%;
    border-radius: 0;
    transform: translateY(0);
    display: block;
    margin: 0;
    padding: 0;
    background-color: transparent;
  }

  .l-header-logo {
    display: none;
  }

  .c-humberger-menu {
    margin-top: 14px;
    margin-left: max(3.26vw, 14px);
    padding: 18.7px 28.8px;
    border-radius: 48px;
    background-color: #fff;
    width: auto;
    box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);
    display: inline-flex;
    flex-direction: column;
    gap: 3.3px;
    cursor: pointer;
    position: relative;
    z-index: 100;

    & span{
      display: block;
      width: 21.45px;
      height: 2px;
      background-color: #56D1BF;
      transition: 0.5s;
    }

    &.open{
      background-color: #fff;
      box-shadow: none;

      & span:nth-of-type(1){
        transform: translateY(6px) rotate(40deg);
        background-color: #D3D3D3;
      }
      & span:nth-of-type(2){
        opacity: 0;
      }
      & span:nth-of-type(3){
        transform: translateY(-5px) rotate(-40deg);
        background-color: #D3D3D3;
      }
    }
  }
  .p-gnav__wraper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    background-color: #F7F7F7;
    border-radius: 0 0 20px 20px;

    padding: 78px 6.98vw 0;
    position: absolute;
    top: 0;
    right: 0;
    width: 100vw;
    height: auto;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0s 0.5s;

    &.open{
      position: fixed;
      opacity: 1;
      visibility: visible;
      transition: opacity 0.5s ease;
    }
  }
  .p-gnav{
    width: 100%;
  }

  .p-gnav__list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin: 0;
    padding: 18px 0;
  }
  .p-gnav__item{
    border-bottom: 1px solid #EBEBEB;
    width: 100%;

    &:last-of-type{
      border: none;
    }
  }
  .p-gnav__link {
    width: 100%;
    height: 100%;
    font-size: max(0.83vw, 16px);
    padding: 20px 0;
    color: #414141;
    display: block;
    position: relative;
    &::after{
      content: '';
      width: 23px;
      height: 23px;
      background-image: url(../img/btn_arrow_green.svg);
      background-position: center;
      background-size: contain;
      background-repeat: no-repeat;
      position: absolute;
      top: 50%;
      right: 0;
      transform: translateY(-50%);
    }
  }

  .p-header-btn__container {
    display: none;
  }
}


/* --------------------------------------------------- 
*
* MAIN VISUAL
*
* --------------------------------------------------- */
.l-section-mainvisual {

  position: relative;

  & .p-mainvisual-bg-line--sp {
    display: none;
  } 
  & .p-mainvisual-bg-line--pc {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 8%;
    right: 19%;
    z-index: 0;

    & svg{
      width: 140%;
      height: 100%;
      object-fit: cover;
      object-position: top 0% right 10%;
    }

    & .c-draw.js-animeOn path{
      animation: draw 1.5s ease forwards;
      animation-timing-function: ease;
      animation-fill-mode: forwards;
      animation-delay: 0s; /* デフォルト */
    
      /* パスごとに少しずつ遅延を加える */
      &:nth-of-type(2) {
        animation-delay: 0s;
      }
      &:nth-of-type(3) {
        animation-delay: 0s;
      }
      &:nth-of-type(4) {
        animation-delay: 1.25s;
      }
      &:nth-of-type(5) {
        animation-delay: 0.7s;
      }
    }
  }

  & .l-mainvisual-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    
    width: 45%;
    margin-top: 1vw;
    margin-left: 5vw;
    padding-bottom: 3vw;
  }

  & .p-gnav__wraper {
    padding: 0 1.56vw;
    margin: 20px 0 0;
    justify-content: flex-end;
  }
}

.p-mainvisual-content {
  position: relative;
  overflow: hidden;
  /* height: 100vh; */
}

.p-mainvisual__logo-wrap {
  width: 25.36vw;
  margin-top: 2.5vw;
}

.p-mainvisual__tagline {
  margin: 1.56vw 0;
  font-size: max(1.04vw, 16px);
  line-height: 1.8;
  font-weight: 600;
  text-align: center;
}

.p-mainvisual__point-list {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1.3vw;
  margin-bottom: 40px;
}

.p-mainvisual__point-wrap {
  position: relative;
  background-color: #FFFFFF;
  box-shadow: 5px 5px 10px 0px rgba(0, 0, 0, 0.16);
  padding: 1.09vw;
  outline: 3px solid rgba(86, 209, 191, 0.3);
  outline-offset: -8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.94vw;
  height: 10.94vw;
  border-radius: 50%;
}

.p-mainvisual__point_num {
  position: absolute;
  width: 4.64vw;
  height: auto;
  top: 0;
  left: 0;
}

.p-mainvisual__point-text {
  font-size: max(0.83vw, 12px);
  font-weight: 600;
  line-height: 1.625;
  color: #414141;
  text-align: center;

  & .c-marker {
    font-size: max(1.35vw, 16px) ;
  }
}

.p-mainvisual-image {
  position: absolute;
  right: 7vw;
  bottom: 15%;
  width: 46vw;

  &.p-mainvisual-image--pc {
    display: block;
  }
  &.p-mainvisual-image--sp {
    display: none;
  }
}
@media screen and (max-width:1300px) {
  .p-mainvisual-image {
    bottom: 20%;
  } 
  .p-mainvisual__logo-wrap {
    width: 33vw;
    margin-top: 3vw;
  }
}
@media screen and (max-width:1024px) {
  .l-section-mainvisual {
    & .p-mainvisual-bg-line--pc {
      width: 100%;
      height: auto;
      position: absolute;
      top: auto;
      bottom: 6%;
      right: 40%;
      z-index: 0;

      & svg{
        width: 150%;
        height: 100%;
        object-fit: cover;
        object-position: top 0% right 10%;

        /* パスごとに少しずつ遅延を加える */
        & path:nth-of-type(2) {
          animation-delay: 1s;
        }
        & path:nth-of-type(3) {
          animation-delay: 0s;
        }
        & path:nth-of-type(4) {
          animation-delay: 0s;
        }
        & path:nth-of-type(5) {
          animation-delay: 0.7s;
        }
      }
      
    }

    & .l-mainvisual-content {
      width: 100%;
      margin: 0;
    }

    & .p-gnav__wraper {
      display: none;
    }
  }

  .p-mainvisual-content {
    padding: 80px 20px 80px;
    /* height: 100vh; */
  }

  .p-mainvisual__logo-wrap {
    width: 76%;
    max-width: 430px;
    margin-top: 2.5vw;
  }

  .p-mainvisual__tagline {
    margin: 30px 0 40px;
    font-size: clamp(13px, 3.5vw, 15px);
  }

  .p-mainvisual__point-list {
    justify-content: center;
    gap: min(1.8vw,12px);
    margin-bottom: 30px;
  }

  .p-mainvisual__point-wrap {
    position: relative;
    background-color: #FFFFFF;
    box-shadow: 5px 5px 10px 0px rgba(0, 0, 0, 0.16);
    padding: 1.09vw;
    outline: 3px solid rgba(86, 209, 191, 0.3);
    outline-offset: -8px;
    width: 28vw;
    height: 28vw;
    max-width: 125px;
    max-height: 125px;
  }

  .p-mainvisual__point_num {
    position: absolute;
    width: 57px;
    height: auto;
    top: -8px;
    left: 0;
  }

  .p-mainvisual__point-text {
    font-size: max(0.83vw, 11px);
    font-weight: 600;
    line-height: 1.625;
    color: #414141;
    text-align: center;

    & .c-marker {
      font-size: max(1.35vw, 15px) ;
    }
  }

  .p-mainvisual-image {
    position: static;
    width: 98%;
    max-width: 450px;
    margin-bottom: 23.4px;
    &.p-mainvisual-image--pc {
      display: none;
    }
    &.p-mainvisual-image--sp {
      display: block;
    }
  }
}

@media screen and (max-width:500px) {
  .l-section-mainvisual {
    & .p-mainvisual-bg-line--pc{
      display: none;
    }
    & .p-mainvisual-bg-line--sp {
      display: block;
      width: 152%;
      height: auto;
      position: absolute;
      top: auto;
      bottom: 6%;
      right: 78%;
      z-index: 0;

      & svg{
        width: 190%;
        height: 100%;
        object-fit: cover;
        object-position: top 0% right 10%;
      }
      & .c-draw.js-animeOn path{
        animation: draw 1.5s ease forwards;
        animation-timing-function: ease;
        animation-fill-mode: forwards;
        animation-delay: 0s; /* デフォルト */
      
        /* パスごとに少しずつ遅延を加える */
        &:nth-of-type(2) {
          animation-delay: 0.7s;
        }
        &:nth-of-type(3) {
          animation-delay: 0.7s;
        }
        &:nth-of-type(4) {
          animation-delay: 1.5s;
        }
        &:nth-of-type(5) {
          animation-delay: 1.5s;
        }
      }
    }
  }
  .p-mainvisual__point_num {
    position: absolute;
    width: max(13.95vw, 57px);
    height: auto;
    top: -8px;
    left: 0;
  }
}

/* --------------------------------------------------- 
*
* PROBLEM
*
* --------------------------------------------------- */
.l-section-problem {
  margin-top: 20.52vw;
  position: relative;
  background-color: #56D1BF;
  padding-bottom: calc(7.29vw + 5.21vw);

  &::before {
    position: absolute;
    content: '';
    width: 100%;
    height: 9.64vw;
    background-image: url(../img/problem_bg_before.svg);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    bottom: 100%;
    left: 0;
  }
}

.l-problem-content {
  & .l-section-container {
    max-width: 1140px;
    padding: 0 20px;
  }
}

.l-problem__ttl {
  font-size: 2.08vw;
  font-weight: 600;
  line-height: 1.625;
  text-align: center;
  color: #ffffff;
  margin-bottom: 4.53vw;
}

.l-problem__cards {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  column-gap: 40px;
  row-gap: 67px;
  flex-wrap: wrap;
  padding-bottom: 7.29vw;
}

.l-problem__card {
  background-color: #34B9A2;
  border-radius: 20px;
  padding: 65px 40px;
  min-height: 270px;
  min-width: 530px;
  margin: 0 auto;
  position: relative;
}

.l-problem__card-ttl {
  background-color: #ffffff;
  border-radius: 30px;
  color: #1DAB8F;
  font-weight: 600;
  padding: 12px 30px;
  /* line-height: 1; */
  position: absolute;
  top: -27px;
  left: 27px;

  & .l-problem__card-ttl--large {
    font-size: 1.25em;
  }
}
.l-problem__card-img {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 46%
}

.l-problem__item {
  color: #FFFFFF;
  font-weight: 600;
  line-height: 1.75;
  padding-left: 32px;
  position: relative;
  margin-bottom: 12px;

  &::before {
    position: absolute;
    content: '';
    width: 21px;
    height: 21px;
    background-image: url(../img/list_check.svg);
    background-position: top center;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: 0.3em;
    left: 0;
  }

}

.l-solution-content {
  & .l-section-container {
    padding: 0 20px;
    max-width: 1520px;
  }
}

.l-solution__wrap {
  background-color: #fff;
  border-radius: 289px;
  outline: 3px solid #56D1BF;
  outline-offset: -16px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 145px 0 200px;
  position: relative;
}

.l-solution__text p {
  font-size: max(1.15vw, 20px);
  font-weight: 600;
  text-align: center;
  line-height: 2.27;
}

.l-solution__img {
  position: absolute;
}

.l-solution__img--1 {
  width: 19.16%;
  top: 56px;
  left: 8.78%;
}

.l-solution__img--2 {
  width: 4.51%;
  top: 48.01%;
  left: 6.08%;
}

.l-solution__img--3 {
  width: 19.16%;
  top: auto;
  bottom: 15%;
  left: 8.78%;
}

.l-solution__img--4 {
  width: 4.39%;
  top: 13.17%;
  right: 22.03%;
}

.l-solution__img--5 {
  width: 3.18%;
  top: 29.46%;
  right: 16.89%;
}

.l-solution__img--6 {
  width: 6.05%;
  top: 23.74%;
  right: 6.82%;
}

.l-solution__img--7 {
  width: 25.44%;
  top: auto;
  bottom: 10%;
  right: 3.65%;
}

.l-solution__img--8 {
  width: 25.44%;
  bottom: 5.21vw;
  left: 50%;
  transform: translate(-50%, 20px);
  width: 27.71vw;

  &.js-animeOn {
    transform: translate(-50%, 0);
  }
}

@media screen and (max-width:1300px) {
  .l-solution__wrap {
    padding: 125px 0 165px;
  }
}

@media screen and (max-width:768px) {
  .l-section-problem {
    margin-top: 34px;
    padding-bottom: 180px;

    &::before {
      height: 9.3vw;
    }
  }

  .l-problem__ttl {
    font-size: 24px;
    padding-top: 65px;
    margin-bottom: 74px;
  }

  .l-problem__cards {
    display: flex;
    flex-direction: column;
    column-gap: 0;
    row-gap: 54px;
    padding-bottom: 99px;
  }

  .l-problem__card {
    padding: 50px 25px 30px;
    min-height: auto;
    min-width: auto;
    max-width: 550px;
    width: 100%;

    &:nth-of-type(1){
      & .l-problem__card-img {
        width: 47%;
      }
    }
    &:nth-of-type(2){
      & .l-problem__card-img {
        width: 44.91%;
      }
    }
    &:nth-of-type(3){
      & .l-problem__card-img {
        width: 44%;
      }
    }
    &:nth-of-type(4){
      & .l-problem__card-img {
        width: 40%;
      }
    }
  }
  .l-problem__card-ttl {    
    padding: 12px 20px;
    top: -24px;
    left: 20px;
    font-size: 14px;

    & .l-problem__card-ttl--large {
      font-size: 17px;
    }
  }
  .l-problem__item {
    line-height: 1.64;
    padding-left: 25px;
    position: relative;
    margin-bottom: 11px;
    font-size: 14px;

    &::before {
      position: absolute;
      content: '';
      width: 17px;
      height: 17px;
      top: 0.35em;
    }

    & .l-problem__card-img {
      position: absolute;
      right: 0;
      bottom: 0;
      width: 44%
    }
  }

  .l-solution__wrap {
    background-color: #fff;
    border-radius: 50px;
    outline: 2px solid #56D1BF;
    outline-offset: -8px;
    padding: 188px 15px 178px;
  }
  .l-solution__text p {
    font-size: 15px;
    line-height: 2.25;
  }

  .l-solution__img--1 {
    width: 37.31%;
    max-width: 190px;
    top: -8.37vw;
    left: 32px;
  }

  .l-solution__img--2 {
    width: 10.65%;
    max-width: 50px;
    top: min(31.43vw, 130px);
    left: 32px;
  }

  .l-solution__img--3 {
    width: 36.92%;
    max-width: 170px;
    top: auto;
    bottom: 68px;
    left: -14px;
    right: auto;
  }

  .l-solution__img--4 {
    width: 10.36%;
    max-width: 45px;
    top: auto;
    right: min(23.97%, 113px);
    bottom: 69px;
    left: auto;
  }

  .l-solution__img--5 {
    width: 7.49%;
    max-width: 30px;
    top: auto;
    right: min(37.18%, 180px);
    bottom: 104px;
    left: auto;
  }

  .l-solution__img--6 {
    width: 14.1%;
    max-width: 60px;
    top: auto;
    right: min(9.15%,37.18px);
    bottom: 112px;
    left: auto;
  }

  .l-solution__img--7 {
    width: 47.26%;
    max-width: 220px;
    top: 30px;
    right: -16px;
  }

  .l-solution__img--8 {
    bottom: 100px;
    width: 265px
  }

}

/* --------------------------------------------------- 
*
* ABOUT
*
* --------------------------------------------------- */
.l-section-about {
  margin-top: -5.21vw;
  position: relative;
  background-color: #fff;
  border-radius: 5.21vw;
  padding: 7.29vw 0 20.52vw;
  z-index: 1;

  & .c-section__ttl--01 {
    margin-bottom: 4.69vw;
  }
}

.l-about-content {
  background-image: url(../img/about_bg.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 5.21vw 0;

  & .l-section-container {
    padding: 0 6.77vw;
  }
}

.l-about-content-inner {
  background-color: #fff;
  border-radius: 5.21vw;
  padding: 6.15vw 15vw 6.41vw;
}

.l-about__ttl {
  font-size: max(1.82vw, 23px);
  font-weight: 700;
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0.075em;
  margin-bottom: 2.86vw;
}

.l-about__img-wrap {
  position: relative;
}

.l-about__img-fukidashi--left {
  position: absolute;
  width: 8.7vw;
  top: -1.15vw;
  left: -0.78vw;
  z-index: 1;
}

.l-about__img-fukidashi--right {
  position: absolute;
  width: 8.7vw;
  top: -1.15vw;
  right: -0.78vw;
  z-index: 1;
}

.l-about__text p {
  font-size: clamp(16px, 1vw, 18px);
  text-align: center;
  font-weight: 600;
  line-height: 2.22;
}
@media screen and (max-width:768px) {
  .l-section-about {
    margin-top: -100px;
  }
  .l-about__text p {
    font-size: 16px;
    text-align: center;
    font-weight: 600;
    line-height: 2.22;
  }
}
/*タブレッドを考慮しSPサイズを小さめで切り替え*/
@media screen and (max-width:600px) {
  .l-section-about {
    border-radius: 50px 50px 0 0;
    padding: 100px 0 20.52vw;
    
    & .c-section__ttl--01 {
      margin-bottom: 89px;
    }
  }
  .l-about-content {
    background-image: url(../img/about_bg_sp.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    padding: 50px 0 58px;

    & .l-section-container {
      padding: 0 20px;
    }
  }

  .l-about-content-inner {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    border-radius: 30px;
    padding: 73.5px 0 100px;
  }

  .l-about__ttl {
    padding: 0 20px;
    font-size: 23px;
    line-height: 1.65;
    margin-bottom: 49px;
  }

  .l-about__img-wrap {
    position: relative;
  }

  .l-about__img-fukidashi--left {
    position: absolute;
    width: 121.19px;
    top: -3.3%;
    left: auto;
    right: 20%;
    z-index: 1;
  }

  .l-about__img-fukidashi--right {
    position: absolute;
    width: 121.19px;
    top: auto;
    bottom: 27%;
    right: auto;
    left: 11%;
    z-index: 1;
  }
  .l-about__text{
    padding: 70px 20px 0;
  }
  .l-about__text p {
    font-size: 13px;
    line-height: 2.14;
  }
}

@media screen and (max-width:550px) {
  .l-section-about {
    padding: 100px 0 55.12vw;
  }
}

/* --------------------------------------------------- 
*
* CONTACT01
*
* --------------------------------------------------- */
.l-section-contact01 {
  margin-top: -11.67vw;
  position: relative;
  background-color: #56D1BF;
  padding: 29.53vw 0 6.25vw;

  & .c-btn {
    box-shadow: 7px 7px 10px 0px rgba(0, 95, 76, 0.3);
  }
}

.l-contact01__image {
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0;
  width: 88.54%;
}

.l-contact01-content {
  text-align: center;
  color: #fff;
  position: relative;
  z-index: 1;
}

.l-contact01__label {
  font-weight: 600;
  font-family: 'Jeko', sans-serif;
  font-size: 18px;
  position: relative;
  padding-left: 20px;
  line-height: 1;
  margin-bottom: 1.56vw;
  display: inline-block;

  &::before {
    content: '';
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }
}

.l-contact01__text {
  font-size: 1.72vw;
  font-weight: 600;
  line-height: 1.8;
  margin-bottom: 2.6vw;
}

.l-contact01__bg01 {
  position: absolute;
  left: 0;
  top: 22.5vw;
  z-index: 0;
  width: 25.68vw;
  &.c-draw.js-animeOn path{
    animation: draw 1.5s linear forwards;
    animation-timing-function: ease;
    animation-fill-mode: forwards;
    animation-delay: 0s; /* デフォルト */
  }
}

.l-contact01__bg02 {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 0;
  width: 25.68vw;

  &.c-draw.js-animeOn path{
    animation: draw 0.7s ease-out forwards;
    animation-timing-function: ease;
    animation-fill-mode: forwards;
    animation-delay: 0s; /* デフォルト */
  
    /* パスごとに少しずつ遅延を加える */
    &:nth-of-type(3) {
      animation-delay: 0.5s;
    }
    &:nth-of-type(4) {
      animation-delay: 1s;
    }
  }
}
@media screen and (max-width:550px) {
  .l-section-contact01 {
    margin-top: -41.16vw;
    background-color: #56D1BF;
    padding: 104.65vw 20px 126px;
  }
  .l-contact01__image {
    width: 95.35%;
  }

  .l-contact01__label {
    font-size: 14px;
    padding-left: 16px;
    margin-bottom: 31px;

    &::before {
      content: '';
      width: 8px;
      height: 8px;
    }
  }
  .l-contact01__text {
    font-size: 24px;
    line-height: 1.8;
    margin-bottom: 50px;
  }
  .l-contact01__bg01 {
    top: 73.5vw;
    width: 62.64vw;
  }
  .l-contact01__bg02 {
    width: 56.65vw;
  }
}

/* --------------------------------------------------- 
*
* FEATURE
*
* --------------------------------------------------- */
.l-section-feature {
  padding: 8.85vw 0 35.31vw;

  & .c-section__ttl--01 {
    align-items: flex-start;
    padding-left: 11.46vw;
  }

  & .l-section-container{
    padding: 0 11.46vw 0 6.77vw;
  }
}
.l-feature__ttl-num{
  font-weight: 400;
  font-family: 'Jeko', sans-serif;
  font-size: 4.17vw;
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 3.65vw;
  
  &::after{
    content: '';
    height: 0.47vw;
    width: 55%;
    background: linear-gradient(90deg, #F7F257, #56D1BF);
    align-self: flex-start;
    margin-top: 1.3vw;
  }
}
.l-feature__ttl-num_point{
  font-weight: 800;
  font-size: 1.35vw;
}
.l-feature__ttl-text{
  & h3{
    font-size: max(1.51vw, 20px);
    font-weight: 700;
    line-height: 1.7;
    margin-bottom: 1.56vw;
  }

  & p{
    font-weight: 500;
    line-height: 2;
  }
}
.l-feature-point01{
  padding-bottom: 6.25vw;
  margin: 4.69vw 0 2.08vw 11.46vw;
  border-radius: 50px 0 0 50px;
  background-color: #fff;
  
  & .l-feature__ttl-wrap{
    display: flex;
    gap: 5.99vw;
    padding-top: 6.25vw;
  }
  & .l-feature__ttl-num{
    margin-bottom: 0;
  }
}

.l-feature__line{
  display: block;
  margin: 5.21vw 0 5.21vw 0;
  height: 1px;
  width: 100%;
  background-color: #D8D8D8;
}
.l-feature-point01__service-index__ttl-wrap{
  display: flex;
  gap: 1.56vw;
  align-items: center;
  margin-bottom: 3.13vw;
}
.l-feature-point01__service-index__ttl{
  font-size: max(1.15vw, 18px);
  padding:1.04vw 2.08vw; 
  background-color: #56D1BF;
  color: #fff;
  font-weight: 600;
  border-radius: 36px;
}
.l-feature-point01__service-index__note{
  font-size: 14px;
  line-height: 1.5;
}
.l-feature-point01__service-index__logowrap{
  display: flex;
  align-items: center;
  column-gap: 2.86vw;
  row-gap: 1.23vw;
  flex-wrap: wrap;
}
.l-feature-point01__service-index__logowrap img{
  height: 3.07vw;
  width: auto;
}
.l-feature-point01__service-cards{
  margin-top: 3.65vw;
  display: flex;
  justify-content: space-between;
  row-gap: 2vw;
  flex-wrap: wrap;
}
.l-feature-point01__service-card{
  width: calc(33% - 1vw);
  background-color: #F7F7F8;
  border-radius: 30px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
}
.l-feature-point01__service-card-type{
  position: absolute;
  top:0;
  right: 0;
  border-radius: 0 30px 0 30px;
  padding: max(0.63vw, 8px) max(1.56vw, 20px);
  color: #fff;
  font-weight: 600;
  font-size: clamp(14px, 1vw, 16px);

  &.--yellow{
    background-color: #E8C328;
  }
  &.--green{
    background-color: #74D856;
  }
  &.--orange{
    background-color: #F89B56;
  }
  &.--purple{
    background-color: #A07BD3;
  }
}
.l-feature-point01__service-card-content{
  padding: 2.86vw 1.82vw 0;
}
.l-feature-point01__service-card__description{
  margin: 1.56vw 0 0.99vw;
  font-weight: 600;
  line-height: 1.625;
}
.l-feature-point01__service-card__list-item{
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  margin-bottom: 10px;
  padding-left: 1em;
  position: relative;
  &::before{
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #1DAB8F;
    position: absolute;
    top: 0.55em;
    left: 0;
  }
}
.l-feature-point01__service-card__img-wrap{
  display: flex;
  align-items: flex-end;
}
.l-feature-point01__service-card__img--left,
.l-feature-point01__service-card__img--right{
  max-height: 280px;
  width: auto;
}
.l-feature-point01__service-card__img--center
{
  max-height: 280px;
  width: auto;
  margin: 0 -16px;
}

.l-feature-point02{
  display: flex;  
  padding-top: 8.02vw!important;
  padding-bottom: 8.02vw!important;
  margin: 0 0 2.08vw 11.46vw;
  justify-content: space-between;
  background-color: #fff;
  border-radius: 50px 0 0 50px;

  & .l-feature__ttl-wrap{
    width: 51%;
  }
  & .l-feature__img-wrap{
    width: 48%;
    position: relative;
  }
  & .l-feature__img--large{
    position: absolute;
    top:50%;
    transform: translateY(-50%);
    left: 0;
    width: 26vw;
  }
  & .l-feature__img--small{
    position: absolute;
    top: 55%;
    right: -10%;
    width: 14.58vw;
  }
  & .l-feature-point02__note{
    font-size: 12px;
  }
}

.l-feature-point03{
  display: flex;  
  padding-bottom: 8.59vw!important;
  padding-top: 8.59vw!important;
  justify-content: space-between;
  background-color: #fff;
  margin: 0 0 2.08vw 11.46vw;
  border-radius: 50px 0 0 50px;

  & .l-feature__ttl-wrap{
    width: 51%;
  }
  & .l-feature__img-wrap{
    width: 48%;
    position: relative;
  }
  & .l-feature__img--large{
    position: absolute;
    top: 60%;
    transform: translateY(-50%);
    right: -10%;
    width: 26vw;
  }
  & .l-feature__img--small{
    position: absolute;
    top: 20%;
    transform: translateY(-50%);
    left: 0;
    width: 14.58vw;
  }
}

.l-feature-point04{
  display: flex;  
  padding-top: 7.19vw!important;
  padding-bottom: 7.19vw!important;
  justify-content: space-between;
  background-color: #fff;
  margin: 0 0 0 11.46vw;
  border-radius: 50px 0 0 50px;

  & .l-feature__ttl-wrap{
    width: 51%;
  }
  & .l-feature__img-wrap{
    width: 48%;
    position: relative;
  }
  & .l-feature__img--large{
    position: absolute;
    top:50%;
    transform: translateY(-50%);
    left: 0;
    width: 26vw;
  }
  & .l-feature__img--small{
    position: absolute;
    top: 55%;
    right: -10%;
    width: 14.58vw;
  }
}
@media screen and (max-width:1300px) {
  .l-feature-point01__service-card-content{
    padding: 2.86vw 12px 0;
  }
}

@media screen and (max-width:1024px) {
  .l-feature-point01__service-card{
    width: 48%;
  }
  .l-feature-point01__service-card-content{
    padding: 30px 1.82vw 0;
  }
}
@media screen and (max-width:768px) {
  .l-section-feature {
    padding: 89px 0 35.31vw;

    & .c-section__ttl--01 {
      padding-left: 20px;
    }

    & .l-section-container{
      padding: 0 24px;
    }
  }
  .l-feature__ttl-num{
    font-size: 49px;
    margin-bottom: 36.3px;
    
    &::after{
      content: '';
      height: 5.63px;
      width: 55%;
      margin-top: 9.4px;
    }
  }
  .l-feature__ttl-num_point{
    font-size: 16px;
  }
  .l-feature__ttl-text{
    & h3{
      font-size: 20px;
      line-height: 1.77;
      margin-bottom: 20px;
    }
  }
  .l-feature-point01{
    padding-bottom: 70px;
    margin: 85px 0 30px 20px;
    border-radius: 30px 0 0 30px;
    
    & .l-feature__ttl-wrap{
      display: block;
      padding-top: 72px;
    }
    & .l-feature__ttl-num{
      margin-bottom: 36.3px;
    }
  }
  .l-feature__line{
    margin: 60px 0 47.8px 0;
  }
  .l-feature-point01__service-index__ttl-wrap{
    display: flex;
    flex-direction: column;
    gap: 17px;
    align-items: flex-start;
    margin-bottom: 49px;
  }
  .l-feature-point01__service-index__ttl{
    font-size: 15px;
    padding:14.7px 29.4px 17.2px; 
  }
  .l-feature-point01__service-index__note{
    font-size: 12px;
  }
  .l-feature-point01__service-index__logowrap{
    display: flex;
    align-items: center;
    column-gap: min(4.3vw, 28px);
    row-gap: min(4.3vw, 28px);
    flex-wrap: wrap;
  }
  .l-feature-point01__service-index__logowrap img{
    height: min(8vw, 29px);
    width: auto;
  }
  .l-feature-point01__service-cards{
    margin-top: 70px;
    row-gap: 4vw;
  }
  .l-feature-point01__service-card{
    border-radius: 20px;
    gap: 0;
  }
  .l-feature-point01__service-card-type{
    font-size: 12px;
    border-radius: 0 20px 0 20px;
    padding: 9px 22px;
  }

  .l-feature-point01__service-card-content{
    padding: 45px 18px 0;
  }
  .l-feature-point01__service-card__description{
    margin: 30px 0 20px;
    line-height: 1.875;
    font-size: 15px;
  }
  .l-feature-point01__service-card__list-item{
    line-height: 1.6;
    margin-bottom: 8px;
  }
  .l-feature-point01__service-card__img-wrap{
    display: flex;
    align-items: flex-end;
  }
  .l-feature-point01__service-card__img--left,
  .l-feature-point01__service-card__img--right{
    max-height: none;
  }
  .l-feature-point01__service-card__img--center
  {
    max-height: none;
  }
}
@media screen and (max-width:650px) {
  .l-feature-point01__service-card{
    width: 100%;  
  }
  .l-feature-point01__service-cards{
    row-gap: 20px;
  }
}
@media screen and (max-width:550px) {
  .l-section-feature {
    padding: 89px 0 61.86vw;
  }
}

@media screen and (max-width:768px) {
  .l-feature-point02{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;     
    padding-top: 72px!important;
    padding-bottom: 190px!important;
    margin: 0 0 30px 20px;
    border-radius: 30px 0 0 30px;

    & .l-feature__ttl-wrap{
      width: 100%;
    }
    & .l-feature__img-wrap{
      width: 100%;
      max-width: 400px;
    }
    & .l-feature__img--large{
      position: relative;
      width: 83.94%;
      transform: none;
    }
    & .l-feature__img--small{
      position: absolute;
      top: auto;
      right: 0;
      bottom: -120px;
      width: 48.79%;
    }
  }

  .l-feature-point03{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 140px;     
    padding-top: 60px!important;
    padding-bottom: 60px!important;
    margin: 0 0 30px 20px;
    border-radius: 30px 0 0 30px;

    & .l-feature__ttl-wrap{
      width: 100%;
    }
    & .l-feature__img-wrap{
      width: 100%;
      max-width: 400px;
      text-align: right;
    }
    & .l-feature__img--large{
      position: relative;
      width: 83.94%;
      transform: none;
      right:0;
    }
    & .l-feature__img--small{
      position: absolute;
      top: -110px;
      left: 0;
      width: 48.79%;
      transform: none;
    }
  }

  .l-feature-point04{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;     
    padding-top: 60px!important;
    padding-bottom: 190px!important;
    margin: 0 0 0 20px;
    border-radius: 30px 0 0 30px;

    & .l-feature__ttl-wrap{
      width: 100%;
    }
    & .l-feature__img-wrap{
      width: 100%;
      max-width: 400px;
    }
    & .l-feature__img--large{
      position: relative;
      /* width: 64.42vw; */
      width: 83.94%;
      transform: none;
    }
    & .l-feature__img--small{
      position: absolute;
      top: auto;
      right: 0;
      bottom: -120px;
      /* width: 37.44vw; */
      width: 48.79%;
    }
  }
}


/* --------------------------------------------------- 
*
* CONTACT02
*
* --------------------------------------------------- */
.l-section-contact02 {
  margin-top: -8.02vw;
  position: relative;
  background-color: #56D1BF;
  padding: 14.27vw 0 3.13vw;
  border-radius: 0 5.21vw 0 0;

  & .c-btn {
    box-shadow: 7px 7px 10px 0px rgba(0, 95, 76, 0.3);
  }
}
.l-contact02__image {
  z-index: 2;
  position: absolute;
  top: -16.88vw;
  left: 0;
  width: 88.54%;
}
.l-contact02-content {
  text-align: center;
  color: #fff;
}
.l-contact02__label {
  font-weight: 600;
  font-family: 'Jeko', sans-serif;
  font-size: 18px;
  position: relative;
  padding-left: 20px;
  line-height: 1;
  margin-bottom: 1.61vw;
  display: inline-block;

  &::before {
    content: '';
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }
}

.l-contact02__text {
  font-size: 1.72vw;
  font-weight: 600;
  line-height: 1.8;
  margin-bottom: 2.6vw;
}
@media screen and (max-width:550px) {
  .l-section-contact02 {
    margin-top: 0px;
    background-color: #56D1BF;
    padding: 53.49vw 20px 70px;
  }
  .l-contact02__image {
    top: -37.21vw;
    width: 95.35%;
  }

  .l-contact02__label {
    font-size: 14px;
    padding-left: 16px;
    margin-bottom: 21px;

    &::before {
      content: '';
      width: 8px;
      height: 8px;
    }
  }
  .l-contact02__text {
    font-size: 21px;
    line-height: 1.8;
    margin-bottom: 40px;
  }
}


/* --------------------------------------------------- 
*
* MOVIE
*
* --------------------------------------------------- */
.l-section-movie{
  padding: 3.65vw 0 8.85vw;
  background-color: #56D1BF;

  & .c-section__ttl--01{
    color: #fff;
  }
}
.l-movie-content{
  background-color: #36C3AE;
  border-radius: 5.21vw;
  padding: 5.21vw 28px 7.29vw;
  margin: 0 3.65vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.13vw;
}
.l-movie__movie-wrap{
  max-width: 900px;
  width: 100%;

  & iframe{
    width: 100%;
    height: auto;
    aspect-ratio: 560 / 315;
    border-radius: 44px;
  }
}
@media screen and (max-width:768px) {
  .l-section-movie{
    padding: 20px 0px 80px;
  }
  .l-movie-content{
    border-radius: 40px;
    padding: 50px 28px 120px;
    margin: 0;
    gap: 40px;
  }
  .l-movie__movie-wrap{
    & iframe{
      aspect-ratio: 334 / 187.14;
      border-radius: 20px;
    }
  }
}

/* --------------------------------------------------- 
*
* Hearbit View
*
* --------------------------------------------------- */
.l-section-aboutview{
  background-color: #fff;
  margin-top: -5.21vw;
  padding: 6.25vw 0 12.5vw;
  border-radius: 5.21vw 5.21vw 0 0;

  & .l-section-container{
    max-width: 1140px;
    padding: 0 20px;
  }
}
.l-aboutview__ttl-wrap{
  display: flex;
  flex-direction: column;
  align-items: center;
}
.l-aboutview__ttl-label{
  font-size: max(0.94vw, 18px);
  color: #fff;
  font-weight: 600;
  background-color: #56D1BF;
  border-radius: 39px;
  padding: 0.89vw 1.56vw;
  margin-bottom: 3.13vw;
}
.l-aboutview__ttl{
  & .l-aboutview__ttl__discription{
    font-size: 1.3vw;
    font-weight: 600;
    margin-bottom: 1.04vw;
    text-align: center;
    display: block;
  }
  & .l-aboutview__ttl__name{
    font-size: 1.2vw;
    font-weight: 600;
    margin-top: 0.52svw;
    text-align: center;
    display: block;
  }
  & img{
    width: 36.2vw;
  }
}
.l-aboutview__img-wrap{
  position: relative;
  margin: 6.48vw 0 3.65vw;
}
.l-aboutview__img{
  position: relative;
  width: 48.44vw;
  margin: 0 auto;

  & img{
    position: relative;
    z-index: 2;
  }
}
.l-aboutview__img-circle{
  position: absolute;
  top: -5.73vw;
  left: -1.9vw;
  text-align: center;
  background-color: #F7F257;
  border-radius: 50%;
  box-sizing:content-box;
  width: 9.7vw;
  height: 9.7vw;
  display: flex;
  align-items: center;
  justify-content: center;
  &::after{
    background-color: rgba(247, 242, 87, 0.3);
    content: '';
    position: absolute;
    top: -0.52vw;
    left: -0.52vw;
    width: calc(100% + 1.04vw);
    height: calc(100% + 1.04vw);
    border-radius: 50%;
  }
  & p{
    color: #1DAB8F;
    font-size: 0.94vw;
    font-weight: 600;
    font-size: 0.94vw;
    line-height: 1.44;
    & .num{
      font-size: 1.3vw;
    }
  }
}
.l-aboutview__bg01{
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
}
.l-aboutview__text{
  text-align: center;
  font-weight: 600;
  font-size: 1.3vw;;
  line-height: 1.76;
}
.l-aboutview__note{
  font-size: 14px;
  margin-top: 1.56vw;
  margin-bottom: 3.13vw;
  text-align: center;
  display: block;
}
.l-aboutview__cards{
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;

  & li:nth-of-type(2){
    gap:43.9px;

    & .l-aboutview__card__img{
      width: 66.78px;
    }
  }
  & li:nth-of-type(3){
    & .l-aboutview__card__img{
      width: 75.32px;
    }
  }
  & li:nth-of-type(4){
    gap:44.1px;

    & .l-aboutview__card__img{
      width: 61.9px;
    }
  }
}
.l-aboutview__card{
  background-color: #F6F7F7;
  border-radius: 30px;
  padding: 31px 40px;
  min-height: 236px;
  max-width: 530px;
  margin: 0 auto;
  position: relative;
  display: flex;
  align-items: center;
  gap: 37px;

  & .l-aboutview__card__img{
    width: 82.98px;
    flex-shrink: 0;
  }
}
.l-aboutview__card__num{
  position: absolute;
  left:0;
  top: 0;
  background-color: #56D1BF;
  border-radius: 30px 0 30px 0;
  color: #fff;
  font-family: 'Jeko', sans-serif;
  font-weight: 700;
  padding: 1.04vw 1.09vw;
}
.l-aboutview__card__txt{
  display: flex;
  flex-direction: column;
  gap: 15px;
  & p{
    font-weight: 400;
    line-height: 1.75;
  }
}
.l-aboutview__card_note{
  font-size: 12px;
  margin-top: 10px;
  text-align: center;
}
.l-aboutview__card__ttl{
  font-weight: 600;
  font-size: max(1.04vw, 18px);
}
@media screen and (max-width:768px) {
  .l-section-aboutview{
    margin-top: -60px;
    padding: 60px 0 106px;
    border-radius: 50px 50px 0 0;
  }
  .l-aboutview__ttl-label{
    font-size: 14px;
    padding: 13px 20px;
    margin-bottom: 35px;
  }
  .l-aboutview__ttl{
    & .l-aboutview__ttl__discription{
      font-size: 17px;
      margin-bottom: 10px;
      line-height: 1.58;
    }
    & .l-aboutview__ttl__name{
      font-size: 15px;
      margin-top: 5px;
    }
    & img{
      width: 81.4vw;
      max-width: 350px;
    }
  }
  .l-aboutview__img-wrap{
    margin: 71.5px 0 50px;
  }
  .l-aboutview__img{
    position: relative;
    width: 84.19vw;
    max-width: 500px;
    margin: 0 auto;

    & img{
      position: relative;
      z-index: 2;
    }
  }
  .l-aboutview__img-circle{
    position: absolute;
    top: -65px;
    left: -20px;
    width: 93px;
    height: 93px;
    z-index: 2;
    &::after{
      content: '';
      top: -5px;
      left: -5px;
      width: calc(100% + 10px);
      height: calc(100% + 10px);
    }
    & p{
      color: #1DAB8F;
      font-size: 11px;
      line-height: 1.27;
      & .num{
        font-size: 14px;
      }
    }
  }
  .l-aboutview__bg01{
   bottom: 12%;
        left: -2%;
        width: 107%;
  }
  .l-aboutview__text{
    font-size: 17px;
    line-height: 1.88;
  }
  .l-aboutview__note{
    font-size: 12px;
    margin-top: 20px;
    margin-bottom: 40px;
  }
  .l-aboutview__cards{
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;

    & .l-aboutview__card__img{
      width: 64.29px;
    }

    & li:nth-of-type(2){
      gap:31.6px;

      & .l-aboutview__card__img{
        width: 56.78px;
      }
    }
    & li:nth-of-type(3){
      gap: 27.4px;

      & .l-aboutview__card__img{
        width: 62.63px;
      }
    }
    & li:nth-of-type(4){
      gap:36.8px;
      
      & .l-aboutview__card{
        min-height: 180px;
      }
      & .l-aboutview__card__img{
        width: 46.55px;
      }
    }
  }
  .l-aboutview__card{
    border-radius: 20px;
    padding: 30px 30px 30px 28px;
    width: 100%;
    gap: 28.2px;
    min-height: auto;
  }
  .l-aboutview__card__num{
    border-radius: 20px 0 20px 0;
    padding: 20px 17px;
  }
  .l-aboutview__card__txt{
    display: flex;
    flex-direction: column;
    gap: 15px;
    & p{
      font-size: 14px;
      line-height: 1.78;
    }
  }
  .l-aboutview__card_note{
    text-align: left;
  }
  .l-aboutview__card__ttl{
    font-size: 16px;
  }
}

/* --------------------------------------------------- 
*
* CONTACT03
*
* --------------------------------------------------- */
.l-section-contact03 {
  position: relative;
  background-color: #fff;

  & .c-btn {
    box-shadow: 7px 7px 10px 0px rgba(0, 95, 76, 0.3);
  }
}
.l-content03__text-wrap{
  color: #fff;
  background-color: #56D1BF;
  padding:7.29vw 0 7.29vw 11.46vw;
  width: 59.11vw;
  border-radius: 0 2.6vw 2.6vw 0;
}
.l-contact03__label {
  font-weight: 600;
  font-family: 'Jeko', sans-serif;
  font-size: 18px;
  position: relative;
  padding-left: 20px;
  line-height: 1;
  margin-bottom: 1.61vw;
  display: inline-block;

  &::before {
    content: '';
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }
}
.l-contact03__text {
  font-size: 1.41vw;
  font-weight: 600;
  line-height: 1.88;
  margin-bottom: 3.13vw;
}

.l-contact03__image-wrap{
  position: absolute;
  top: -2.45vw;
  right: -9.43vw;
}
.l-contact03__image-wrap_inner{
  display: flex;
  gap: 1.04vw;
  position: relative;
}
.l-contact03__image {
  width: 20.63vw;
}
.l-contact03__bg_line01{
  position: absolute;
  top: -5.89vw;
  right: 12.34vw;
  width: 16.56vw;
  height: auto;
  &.c-draw.js-animeOn path{
    animation: draw 1.3s linear forwards;
    animation-timing-function: ease;
    animation-fill-mode: forwards;
    animation-delay: 0s; /* デフォルト */
  }
}
.l-contact03__bg_line02--pc{
  position: absolute;
  /* bottom: -4.17vw; */
  top: 70%;
  left: -4.17vw;
  width: 19.94vw;
  height: auto;

  &.c-draw.js-animeOn path{
    animation: draw 0.5s ease-out forwards;
    animation-timing-function: ease;
    animation-fill-mode: forwards;
    animation-delay: 0s; /* デフォルト */

    /* パスごとに少しずつ遅延を加える */
    &:nth-of-type(2) {
      animation-delay: 0.3s;
    }
    &:nth-of-type(3) {
      animation-delay: 0.6s;
    }
    &:nth-of-type(4) {
      animation-delay: 0.9s;
    }
  }
}
.l-contact03__bg_line02--sp{
  display: none;
}
@media screen and (max-width:768px) {
  .l-content03__text-wrap{
    padding:80px 30px 36vw;
    width: calc(100% - 20px);
    border-radius: 0 30px 30px 0;
  }
  .l-contact03__label {
    font-size: 14px;
    padding-left: 16px;
    margin-bottom: 28px;

    &::before {
      content: '';
      width: 8px;
      height: 8px;
    }
  }
  .l-contact03__text {
    font-size: 17px;
    line-height: 1.83;
    margin-bottom: 50px;
  }

  .l-contact03__image-wrap{
    position: absolute;
    top: auto;
    bottom: -25.81vw;
    right: -72.6px;
  }
  .l-contact03__image-wrap_inner{
    gap: 8px;
  }
  .l-contact03__image {
    width: 33.95vw;
  }
  .l-contact03__bg_line01{
    position: absolute;
    top: -12vw;
    right: 80px;
    width: 29.68vw;
    height: auto;
  }
  .l-contact03__bg_line02--pc{
    display: none;
  }
  .l-contact03__bg_line02--sp{
    display: block;
    position: absolute;
    bottom: -35px;
    left: -40px;
    width: 36vw;
    height: auto;

    &.c-draw.js-animeOn path{
    animation: draw 0.5s ease-out forwards;
    animation-timing-function: ease;
    animation-fill-mode: forwards;
    animation-delay: 0s; /* デフォルト */

    /* パスごとに少しずつ遅延を加える */
    &:nth-of-type(2) {
      animation-delay: 0.3s;
    }
    &:nth-of-type(3) {
      animation-delay: 0.6s;
    }
    &:nth-of-type(4) {
      animation-delay: 0.9s;
    }
  }
  }
}
/* --------------------------------------------------- 
*
* FAQ
*
* --------------------------------------------------- */
.l-section-faq{
  background-color: #fff;
  border-radius: 0 0 5.21vw 5.21vw;
  padding-top:4.27vw;
  padding-bottom: 8.85vw;

  & .l-section-container{
    padding: 0 19.79vw;
  }

  & .c-section__ttl--01{
    align-items: flex-end;
  }
}
.l-faq-content{
  margin-top: 1.56vw;
}
.l-faq__section{
  margin-bottom: 3.13vw;

  &:nth-last-of-type(1){
    margin-bottom: 0;
  }
}
.l-faq__section_ttl{
  font-size: max(1.25vw, 20px);
  font-weight: 600;
  padding-left: 1em;
  position: relative;
  margin-bottom: 1.3vw;

  &::before{
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #56D1BF;
    position: absolute;
    left: 0;
    top: 0.5em;
  }
}
.l-faq__item{
  padding: 0 1.56vw;
  background-color: #F7F7F8;
  border-radius: 1.15vw;
  margin-bottom: 10px;

  &:nth-last-of-type(1){
    margin-bottom: 0;;
  }
}
.l-faq__question-wrap{
  border-radius: 0 0 1.15vw 1.15vw;
  padding-top:1.56vw;
  padding-bottom: 1.56vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}
.l-faq__plus{
  position: relative;
  width: 16px;
  height: 16px;;

  & .l-faq__plus-line{
    display: block;
    width: 16px;
    height: 3px;
    background-color: #56D1BF;
    border-radius: 3px;
    position: absolute;
    transition: all 0.3s;

    &:nth-of-type(1){
      top: 50%;
      right: 0;
      transform: translateY(-50%);
    }
    &:nth-of-type(2){
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(90deg);
      opacity: 1;
    }
  }

  &.open{
    & .l-faq__plus-line:nth-of-type(2){
      opacity: 0;
    }
  }
}
.l-faq__question{
  font-size: max(0.94vw, 16px);
  font-weight: 600;
}

.l-faq__answer-wrap{
  padding-bottom: 1.56vw;
  display: none;

  & h5{
    font-weight: 600;
    margin-bottom: 15px;
    padding-left: 1em;
    position: relative;
    &::before{
      content: '';
      width: 13px;
      height: 13px;
      border-radius: 50%;
      background-color: #56D1BF;
      position: absolute;
      left: 0;
      top: 0.25em;
    }
  }
  & p{
    font-size: 16px;
    font-weight: 400;
  }
}
.l-faq__text{
  & p{
    font-size: max(0.94vw, 16px);
    font-weight: 600;
  }
}
@media screen and (max-width:1300px) {
  .l-section-faq{
    & .l-section-container{
      padding: 0 10vw;
    }
  }
}
@media screen and (max-width:768px) {
  .l-section-faq{
    padding-top:48.84vw;
    padding-bottom: 80px;

    & .l-section-container{
      padding: 0 20px;
    }

    & .c-section__ttl--01{
      align-items: flex-start;
    }
  }
  .l-faq-content{
    margin-top: 50px;
  }
  .l-faq__section{
    margin-bottom: 40px;

    &:nth-last-of-type(1){
      margin-bottom: 0;
    }
  }
  .l-faq__section_ttl{
    font-size: 21px;
    margin-bottom: 20px;

    &::before{
      content: '';
      width: 8px;
      height: 8px;
    }
  }
  .l-faq__item{
    padding: 0 20px;
    border-radius: 15px;
  }
  .l-faq__question-wrap{
    border-radius: 0 0 15px 15px;
    padding-top: 25px;
    padding-bottom: 25px;
    gap: 10px;
  }
  .l-faq__plus{
    width: 12.28px;
    height: 12.28px;
    flex-shrink: 0;

    & .l-faq__plus-line{
      width: 12.28px;
    }
  }
  .l-faq__question{
    font-size: 14px;
    line-height: 1.5;
  }

  .l-faq__answer-wrap{
    padding-bottom: 25px;
    display: none;

    & h5{
      font-size: 14px;
      margin-bottom: 10px;
      line-height: 1.78;
      &::before{
        content: '';
        width: 11px;
        height: 11px;
        top: 0.5em;
      }
    }
    & p{
      font-size: 14px;
    }
  }
  .l-faq__text{
    & p{
      font-size: 14px;
    }
  }
}

/* --------------------------------------------------- 
*
* VISION
*
* --------------------------------------------------- */
.l-section-vision{
  padding: 8.33vw 0 9.38vw;

  & .l-section-container{
    padding: 0 0 0 11.46vw;
  }
  & .c-section__ttl--01{
    align-items: flex-start;
    margin-bottom: 6.77vw;
  }
}
.l-vision-content{
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 6.77vw;
}
.l-vision__text-wrap{
  width: 46.51vw;
  max-width: 800px;
}
.l-vision__ttl{
  font-size: 1.98vw;
  font-weight: 600;
  line-height: 1.78;
  letter-spacing: 0.075em;
  margin-bottom: 3.65vw;
}
.l-vision__txt{
  font-weight: 600;
  line-height: 2.5;
  margin-bottom: 24px;

  & span{
    font-size: 0.8em;
    font-weight: 300;
    vertical-align: top;
  }
}
.l-vision__txt_note{
  font-size: 12px;
  line-height: 1.5;
}
.l-vision__img-wrap{
  width: 46.72vw;
  & img{
    height: 100%;
    width: 100%;
    object-fit: contain;
    object-position: center left;
  }
}
.l-vision__img-wrap--sp-up,.l-vision__img-wrap--sp-down{
  display: none;
}

@media screen and (max-width:1600px) {
  .l-vision-content{
    align-items: flex-end;
    gap: 4vw;
  }
  .l-vision__text-wrap{
    width: 100%;
  }
  .l-vision__txt{
    line-height: 2;
  }
  .l-vision__img-wrap{
    width: 60vw;
  }
}
@media screen and (max-width:1024px) {
  .l-section-vision{
    padding: 60px 0 70px;

    & .l-section-container{
      padding: 0 20px;
    }
    & .c-section__ttl--01{
      align-items: flex-start;
      margin-bottom: 80px;
    }
  }
  .l-vision-content{
    flex-direction: column;
    align-items: center;
    gap: 70px;
  }
  .l-vision__ttl{
    font-size: 22px;
    margin-bottom: 40px;
  }
  .l-vision__txt{
    font-size: 14px;
    line-height: 2.1;
  }
  .l-vision__txt_note{
    font-size: 12px;
  }
  .l-vision__img-wrap{
    display: none;
  }
  .l-vision__img-wrap--sp-up{
    display: block;
    width: 100%;
    margin-right: calc(50% - 50vw);
    margin-left: auto;
    margin-bottom: 70px;
  }

  .l-vision__img-wrap--sp-down{
    display: block;
    width: 100%;
    margin-left: calc(50% - 50vw);
    margin-right: auto;
  }
}


/* --------------------------------------------------- 
*
* CONTACT04
*
* --------------------------------------------------- */
.l-section-contact04 {
  position: relative;
  padding: 0 3.65vw 3.65vw;

  & .c-btn {
    box-shadow: 7px 7px 10px 0px rgba(0, 95, 76, 0.3);
  }
}
.l-contact04-content{
  padding: 7.5vw 28px;
  border-radius: 2.6vw;
  background-image: url(../img/contact04-bg.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.l-content04__text-wrap{
  color: #fff;
  text-align: center;
}
.l-contact04__label {
  font-weight: 600;
  font-family: 'Jeko', sans-serif;
  font-size: 18px;
  position: relative;
  padding-left: 20px;
  line-height: 1;
  margin-bottom: 1.61vw;
  display: inline-block;

  &::before {
    content: '';
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }
}
.l-contact04__text {
  font-size: 1.41vw;
  font-weight: 600;
  line-height: 1.88;
  margin-bottom: 3.13vw;
}
@media screen and (max-width:768px) {
  .l-section-contact04 {
    padding: 0 20px 60px;
  }
  .l-contact04-content{
    padding: 108px 25px 86.5px;
    border-radius: 20px;
    background-image: url(../img/contact04-bg_sp.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }
  .l-contact04__label {
    font-size: 14px;
    padding-left: 16px;
    margin-bottom: 21px;

    &::before {
      content: '';
      width: 8px;
      height: 8px;
    }
  }
  .l-contact04__text {
    font-size: 17px;
    line-height: 1.8;
    margin-bottom: 40px;
  }
}

/* --------------------------------------------------- 
*
* footer
*
* --------------------------------------------------- */
.t-footer {
  position: relative;
  background-color: #1b4888;
  color: #fff;
  font-weight: 300;
}

.t-footer a {
  text-decoration: none;
}

.t-footer a:hover {
  text-decoration: underline;
}

.t-footer a:active,
.t-footer a:focus {
  color: #fff !important;
}

.t-footer ul,
.t-footer ol {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.t-footer .btn-pagetop {
  position: absolute;
  top: 83px;
  right: 80px;
  width: 55px;
  height: 55px;
  border-radius: 50%;
  background: #1b4888;
  color: #fff;
  font-size: 14px;
  z-index: 9;
  border: 1px solid #fff;
  cursor: pointer;
  transition: color 0.3s cubic-bezier(0.23, 1, 0.32, 1), background-color 0.3s cubic-bezier(0.23, 1, 0.32, 1);
  transform: rotate(-90deg);
}

.t-footer .btn-pagetop::before {
  content: "";
  font-family: "icomoon";
  width: 10px;
  height: 10px;
  position: relative;
  left: 38%;
}

.t-footer .btn-pagetop:hover {
  background: #fff;
  color: #1b4888;
}

.t-footer .footer-inner {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  text-align: center;
  padding-top: 48px;
  padding-bottom: 30px;
}

.t-footer .footer-logo {
  width: 160px;
  margin: 0 auto;
}

.t-footer .footer-logo .img {
  width: 100%;
}

.t-footer .footer-links {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 33px;
}

.t-footer .footer-links.-bottom {
  margin-top: 0;
}

.t-footer .footer-links.-bottom .footer-link::before {
  content: none;
}

.t-footer .footer-link {
  position: relative;
  color: #fff;
  font-size: 13px;
}

.t-footer .footer-link:hover {
  color: #fff;
}

.t-footer .footer-link::before {
  content: "";
  position: absolute;
  top: 50%;
  right: -16px;
  transform: translateY(-50%);
  width: 1px;
  height: 100%;
  background-color: #fff;
}

.t-footer .footer-link.-blank-icon {
  padding-right: 16px;
}

.t-footer .footer-link.-blank-icon::after {
  content: "";
  font-family: "icomoon";
  position: absolute;
  top: 0;
  right: -2px;
}

.t-footer .footer-link:last-child::before {
  content: none;
}

.t-footer .footer-link:hover {
  text-decoration: underline;
}

.t-footer .footer-bottom {
  margin-top: 48px;
  padding-top: 30px;
  border-top: 1px solid #d2dae6;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.t-footer .footer-bottom-left .copyright {
  font-size: 13px;
}
@media screen and (min-width: 768px) {
  .t-footer .footer-inner {
    max-width: 1145px;
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media screen and (max-width:767px) {
  .t-footer .btn-pagetop {
    width: 30px;
    height: 30px;
    top: 30px;
    right: 25px;
    bottom: 0;
  }

  .t-footer .footer-inner {
    max-width: none;
    padding-left: 5.3%;
    padding-right: 5.3%;
  }

  .t-footer .footer-inner {
    padding-top: 25px;
    padding-bottom: 25px;
  }

  .t-footer .footer-links {
    row-gap: 11px;
  }

  .t-footer .footer-links.-bottom {
    column-gap: 24px;
  }

  .t-footer .footer-link:nth-last-child(2)::before {
    content: none;
  }

  .t-footer .footer-bottom {
    margin-top: 26px;
    padding-top: 22px;
    flex-direction: column;
  }

  .t-footer .footer-bottom-left {
    order: 2;
  }

  .t-footer .footer-bottom-right {
    margin-top: 16px;
    order: 1;
  }

  .t-footer .btn-pagetop::before{
    left: 25%;
  }
}