@charset "UTF-8";

.p-about {
  padding-bottom: clamp(80px, 12.5vw, 150px);
}

.p-concept {
  padding-top: clamp(60px, 8.30078125vw, 85px);
  padding-bottom: clamp(60px, 7.12890625vw, 73px);
}

.p-concept__head {
  aspect-ratio: 723/121;
  max-width: 723px;
  margin-inline: auto;
  position: relative;
}
.p-concept__head::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50%;
  width: 114.1078838174%;
  height: 1px;
  background: #f4f6f9;
}

.p-concept__title {
  margin-top: 8px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.p-concept__title .c-section__title-ja {
  text-align: center;
}

.p-concept__lead {
  margin-top: clamp(24px, 4.9479166667vw, 38px);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(18px, 2.8645833333vw, 22px);
  line-height: 1.5909090909;
  letter-spacing: 2.2px;
  font-weight: 700;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  text-align: center;
}

.p-concept__texts {
  margin-top: clamp(32px, 5.9895833333vw, 46px);
}

.p-concept__text {
  font-size: clamp(12px, 1.7391304348vw, 16px);
  line-height: 1.9375;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  text-align: center;
}
.p-concept__text + .p-concept__text {
  margin-top: clamp(20px, 4.1666666667vw, 32px);
}

.p-features {
  padding-bottom: clamp(60px, 8.1666666667vw, 98px);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
}
@media screen and (min-width:1024px) {
  .p-features {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

@media screen and (min-width:768px) {
  .p-features__items {
    margin-right: clamp(72px, 10.8333333333vw, 130px);
  }
}
@media screen and (min-width:1024px) {
  .p-features__items {
    margin-top: 45px;
  }
}

.p-features__item {
  max-width: 610px;
  position: relative;
}
.p-features__item + .p-features__item {
  margin-top: clamp(56px, 7.0833333333vw, 85px);
}

.p-features__item-num {
  font-family: "Quicksand", serif;
  color: #43c263;
  font-size: 14px;
  line-height: 1.2857142857;
  letter-spacing: 1.12px;
  font-weight: 500;
}

.p-features__item-title {
  margin-top: 12px;
  color: #393939;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.5;
  letter-spacing: 2.4px;
  font-weight: 500;
}

.p-features__item-texts {
  padding-top: clamp(20px, 3.90625vw, 40px);
  padding-left: clamp(20px, 3.90625vw, 40px);
  padding-right: clamp(24px, 4.39453125vw, 45px);
  padding-bottom: clamp(24px, 4.39453125vw, 45px);
  margin-top: clamp(16px, 2.83203125vw, 29px);
  background: transparent linear-gradient(110deg, #e0ffe9 0%, #ffffff 64%, #ffffff 100%) 0% 0% no-repeat padding-box;
  border-radius: 10px;
}

.p-features__item-text {
  font-size: clamp(12px, 1.3671875vw, 14px);
  line-height: 2;
}
.p-features__item-text + .p-features__item-text {
  margin-top: clamp(16px, 2.9296875vw, 30px);
}


.p-feature__bg-num {
  position: absolute;
  top: -40px;
  right: 0;
  font-family: "Noto Serif JP", serif;
  color: #F4F6F9;
  font-size: clamp(68px, 12.3718887262vw, 169px);
  line-height: 1.4378698225;
  letter-spacing: 8.45px;
  font-weight: 200;
}
@media screen and (min-width:768px) {
  .p-feature__bg-num {
    top: clamp(-91px, -7.5833333333vw, -60px);
    right: clamp(-130px, -10.8333333333vw, -72px);
  }
}

.p-products {
  padding-bottom: clamp(60px, 10.25vw, 123px);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
}
@media screen and (min-width:1024px) {
  .p-products {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.p-products__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -webkit-column-gap: 40px;
     -moz-column-gap: 40px;
          column-gap: 40px;
  row-gap: clamp(40px, 6.0833333333vw, 73px);
  max-width: 740px;
  margin-inline: auto;
}
@media screen and (min-width:1024px) {
  .p-products__items {
    margin-inline: 0;
    margin-top: 62px;
  }
}

.p-products__item {
  max-width: 350px;
}

.p-products__item-img {
  aspect-ratio: 7/6;
  max-width: 350px;
  border-radius: 5px;
}
.p-products__item-img img {
  border-radius: 5px;
}

.p-products__item-head {
  margin-top: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 14px;
}

.p-products__item-num {
  font-family: "Quicksand", serif;
  color: #43C263;
  font-size: clamp(16px, 2.34375vw, 18px);
  line-height: 1.2777777778;
  letter-spacing: 1.44px;
  font-weight: 500;
  padding-right: 12px;
  border-right: 1px solid #E7E6E6;
}

.p-products__item-title {
  color: #393939;
  font-size: clamp(14px, 2.0833333333vw, 16px);
  line-height: 1.5;
  letter-spacing: 1.6px;
  font-weight: 500;
}

.p-products__item-text {
  margin-top: 19px;
  font-size: 11px;
  line-height: 1.8181818182;
}

.p-flow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
}
@media screen and (min-width:1024px) {
  .p-flow {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.p-flow__items {
  max-width: 740px;
  margin-inline: auto;
}
@media screen and (min-width:1024px) {
  .p-flow__items {
    margin-inline: 0;
    margin-top: clamp(40px, 5.1666666667vw, 62px);
  }
}

.p-flow__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: clamp(24px, 7.8125vw, 60px);
  padding-bottom: 21px;
}
.p-flow__item + .p-flow__item {
  margin-top: 9px;
}
.p-flow__item:last-of-type .p-flow__item-body::after {
  content: none;
}

.p-flow__item-num {
  width: clamp(60px, 10.4166666667vw, 80px);
  height: 100%;
  aspect-ratio: 1/1;
  color: #ffffff;
  background: #45c263;
  border: 1px solid #43c263;
  border-radius: 50%;
  position: relative;
}
.p-flow__item-num .step {
  padding-top: clamp(12px, 2.34375vw, 18px);
  font-family: "Quicksand", serif;
  font-size: 12px;
  line-height: 1.25;
  letter-spacing: 1.8px;
  font-weight: 500;
  text-shadow: 0px 3px 6px rgba(106, 156, 222, 0.1215686275);
  text-align: center;
}
.p-flow__item-num .num {
  margin-top: -2px;
  font-family: "Quicksand", serif;
  font-size: clamp(22px, 3.90625vw, 30px);
  line-height: 1.2666666667;
  letter-spacing: 1.8px;
  text-shadow: 0px 3px 6px rgba(106, 156, 222, 0.1215686275);
  text-align: center;
}
.p-flow__item-num::after {
  content: "";
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: clamp(-80px, -10.4166666667vw, -60px);
  width: clamp(60px, 10.4166666667vw, 80px);
  height: 1px;
  background: #E7E6E6;
}

.p-flow__item-body {
  padding-block: clamp(30px, 4vw, 48px);
  padding-inline: clamp(20px, 4.1666666667vw, 50px);
  background: transparent -webkit-gradient(linear, left bottom, left top, from(#F4F6F9), to(#FFFFFF)) 0% 0% no-repeat padding-box;
  background: transparent linear-gradient(0deg, #F4F6F9 0%, #FFFFFF 100%) 0% 0% no-repeat padding-box;
  max-width: 600px;
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.p-flow__item-body::after {
  content: "";
  position: absolute;
  bottom: -20px;
  left: 50%;
  translate: -50%;
  width: 43px;
  height: 21px;
  background: url(../images/flow-arrow.svg) no-repeat center center/contain;
}

.p-flow__item-title {
  color: #393939;
  font-size: clamp(16px, 1.953125vw, 20px);
  line-height: 1.45;
  letter-spacing: 1.2px;
  font-weight: 600;
}

.p-flow__item-text {
  margin-top: clamp(24px, 3.02734375vw, 31px);
  font-size: clamp(13px, 1.953125vw, 15px);
  line-height: 1.9333333333;
}