@charset "utf-8";

.pc-only {
  display: block;
}

@media screen and (max-width: 767px) {
  .pc-only {
    display: none;
  }
}

.sp-only {
  display: none;
}

@media screen and (max-width: 767px) {
  .sp-only {
    display: block;
  }
}

.det-freef {
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-weight: 400;
  font-style: normal;
  /* letter-spacing: 0.1em; */
}

.det-freef-container {
  max-width: 1400px;
  margin-inline: auto;
  padding-inline: min(3vw, 30px);
}

/* =========================================== */
/*    kv
/* =========================================== */
.det-freef .kv {
  text-align: center;
  background: url(../img/kv_bg.webp) no-repeat center center/cover;
  padding-top: min(80px, 5vw);
  padding-bottom: min(100px, 8vw);
  padding-inline: min(50px, 5vw);
}

@media screen and (max-width: 767px) {
  .det-freef .kv {
    background: url(../img/kv_bg_sp.webp) no-repeat center center/cover;
    padding-inline: 0;
    padding-block: 3vw;
  }
}

.det-freef .kv h2 {
  max-width: 1400px;
  margin-inline: auto;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

@media screen and (max-width: 767px) {
  .det-freef .kv h2 {
    display: block;
  }
}
.kv__text,
.kv__img {
  opacity: 0;
}


/* =========================================== */
/*    no1
/* =========================================== */
.det-freef .no1 {
  background: url(../img/no1_bg.webp) no-repeat center center/cover;
}

.det-freef .no1__inner {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.7) 50%, rgba(255, 255, 255, 0.7) 100%);
}

@media screen and (max-width: 767px) {
  .det-freef .no1__inner {
    display: none;
  }
}

.det-freef .no01__sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .det-freef .no01__sp {
    display: block;
    text-align: center;
    padding-block: min(10vw, 60px);
  }

  .det-freef .no01__sp img {
    max-width: 85vw;
  }
}

.det-freef .no1__main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  text-align: center;
  align-items: center;
  max-width: 1400px;
  margin-inline: auto;
  padding-top: min(8vw, 80px);
  padding-bottom: min(6vw, 60px);
}

.det-freef .no1__item img {
  max-width: 30%;

}

.det-freef .no1__title img {
  max-width: 60%;
}

/* =========================================== */
/*    lead
/* =========================================== */
.det-freef .lead {
  background-color: #F0F9FF;
  padding-top: min(13vw, 130px);
  padding-bottom: min(12vw, 80px);
}

.det-freef .lead__title {
  font-size: min(32px, 5vw);
  text-align: center;
  line-height: 1.6;
  margin-bottom: 20px;
}

.det-freef .lead__new {
  text-align: center;
  margin-bottom: min(8vw, 80px);
}

.det-freef .lead__up {
  max-width: 820px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: min(6vw, 40px);
  text-align: center;
}

@media screen and (max-width: 767px) {
  .det-freef .lead__up {
    grid-template-columns: 1fr;
    max-width: 60vw;
  }
}

/* =========================================== */
/*    recommend
/* =========================================== */
.det-freef .recommend {
  text-align: center;
  background: #F0F9FF url(../img/recommend_bg.webp) no-repeat bottom center;
  background-size: 100% auto;
  padding-bottom: min(10vw, 60px);
  margin-bottom: min(10vw, 100px);
}

.det-freef .recommend__title {
  font-size: min(36px, 5vw);
  line-height: 1.8;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  margin-bottom: min(4vw, 40px);
}

.det-freef .recommend__title span {
  font-size: 134%;
}

.det-freef .recommend__main {
  max-width: 720px;
  width: 80vw;
  margin-inline: auto;
  margin-bottom: min(6vw, 80px);
}

.det-freef .recommend__arrow {
  margin-bottom: min(4vw, 40px);
}

.det-freef .recommend__arrow img {
  max-width: 334px;
  width: 30vw;
  margin-inline: auto;
}

.det-freef .recommend__catch {
  font-size: min(40px, 5vw);
  letter-spacing: 0.15em;
  line-height: 1.6;
  margin-bottom: min(8vw, 100px);
}

.det-freef .recommend__catch span {
  color: #3D7EE2;
  font-size: 138%;
  background: linear-gradient(transparent 50%, #fff 50%);
}

/* =========================================== */
/*    point
/* =========================================== */
.point__title {
  text-align: center;
  margin-bottom: min(6vw, 40px);
}

.point__title--number {
  font-size: min(48px, 6vw);
  color: #5B8CD9;
}

.point__title--number span {
  font-size: 160%;
  padding-left: 0.1em;
}

.point__title--number:after {
  content: "";
  display: block;
  width: 2px;
  height: min(40px, 5vw);
  background: #3D7EE2;
  margin-inline: auto;
  margin-bottom: min(2vw, 20px);
}

.point__title--sub {
  display: inline-block;
  font-size: min(40px, 5vw);
  letter-spacing: 0.12em;
  border-top: 2px solid #3D7EE2;
  border-bottom: 2px solid #3D7EE2;
  padding-block: min(7px, 2vw);
  padding-inline: min(5px, 1vw);
  margin-bottom: min(3vw, 20px);
}

.point__title--sub span {
  color: #3D7EE2;
}

.point__title--catch {
  font-size: min(32px, 4vw);
}

.point__title--catch small {
  font-size: 60%;
}

.point__title--catch span {
  color: #3D7EE2;
}


/*---- point01 ----*/
.det-freef .point01 {
  margin-bottom: min(12vw, 100px);
}

@media screen and (max-width: 767px) {
  .det-freef .point01__inner {
    display: none;
  }
}

.det-freef .no01__sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .det-freef .no01__sp {
    display: block;
  }
}

.det-freef .point01__main {
  display: grid;
  gap: min(6vw, 60px);
  max-width: 1000px;
  margin-inline: auto;
}

.det-freef .point01__item {
  display: grid;
  grid-template-columns: 1fr 2.5fr;
  align-items: center;
  gap: min(4vw, 30px);
}

@media screen and (max-width: 767px) {
  .det-freef .point01__item {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 767px) {
  .det-freef .point01__item--img {
    width: min(280px, 40vw);
    margin-inline: auto;
  }
}

.det-freef .point01__item--content {
  position: relative;
  padding-top: min(30px, 3.5vw);
  padding-left: min(6vw, 40px);
}

@media screen and (max-width: 767px) {
  .det-freef .point01__item--content {
    padding-left: 0;
  }
}

.det-freef .point01__item--title {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 50px;
  font-size: min(36px, 4vw);
  letter-spacing: 0.15em;
  color: white;
  background: linear-gradient(180deg, rgba(130, 162, 212, 1) 0%, rgba(136, 207, 243, 1) 100%);
  padding-inline: min(30px, 6vw);
  padding-block: min(5px, 1vw);
  margin-bottom: min(2vw, 20px);
}

@media screen and (max-width: 767px) {
  .det-freef .point01__item--title {
    white-space: nowrap;
    left: 50%;
    transform: translateX(-50%);
  }
}

.det-freef .point01__item--title small {
  font-size: 30%;
}

.det-freef .point01__item--content-box {
  position: relative;
  background-color: #F0F9FF;
  padding-inline: min(50px, 6vw);
  padding-top: min(60px, 8vw);
  padding-bottom: min(40px, 5vw);
}

@media screen and (max-width: 767px) {
  .det-freef .point01__item--content-box {
    max-width: 620px;
    margin-inline: auto;
  }
}

.det-freef .point01__item--content-box:before {
  position: absolute;
  top: 50%;
  left: -38px;
  transform: translateY(-50%);
  content: "";
  display: block;
  width: 40px;
  height: 35px;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
  background-color: #F0F9FF;
}

@media screen and (max-width: 767px) {
  .det-freef .point01__item--content-box:before {
    display: none;
  }
}

.det-freef .point01__item--name {
  display: inline-block;
  font-size: min(32px, 4vw);
  letter-spacing: 0.15em;
  border-bottom: 1px solid currentColor;
  margin-bottom: min(3vw, 20px);
}

.det-freef .point01__item--text {
  font-size: min(20px, 3.4vw);
  letter-spacing: 0.1em;
  line-height: 1.6;
}

.det-freef .point01__item--note {
  font-size: min(16px, 3vw);
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin-top: min(2vw, 10px);
}

.det-freef .point01__other-item {
  position: relative;
  padding-top: min(30px, 4vw);
}

.det-freef .point01__other-item--title {
  position: absolute;
  white-space: nowrap;
  z-index: 1;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  font-size: min(36px, 4vw);
  letter-spacing: 0.15em;
  color: white;
  background: linear-gradient(180deg, rgba(130, 162, 212, 1) 0%, rgba(136, 207, 243, 1) 100%);
  padding-inline: min(30px, 6vw);
  padding-block: min(5px, 1vw);
  margin-bottom: min(2vw, 20px);
}

.det-freef .point01__other-item--title small {
  font-size: 60%;
}

.det-freef .point01__other-item--list {
  background-color: #F0F9FF;
  padding-inline: min(50px, 6vw);
  padding-top: min(80px, 10vw);
  padding-bottom: min(30px, 5vw);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: min(5vw, 20px);
}

@media screen and (max-width: 767px) {
  .det-freef .point01__other-item--list {
    max-width: 620px;
    margin-inline: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: min(2vw, 20px);
  }
}

.det-freef .point01__other-item--list li {
  text-align: center;
}

@media screen and (max-width: 767px) {
  .det-freef .point01__other-item--list li {
    max-width: 25%;
  }
}

.det-freef .point01__other-item--list li figure {
  margin-inline: auto;
  width: 100%;
}

.det-freef .point01__other-item--list li figure figcaption {
  font-size: min(16px, 3vw);
  font-weight: 600;
  line-height: 1.5;
  margin-top: min(2vw, 20px);
  padding-top: min(2vw, 12px);
}

.det-freef .point01__other-item--list li figure.point01__other-item--row2 figcaption {
  padding-top: 0;;
}

/*---- point02 ----*/
.det-freef .point02 {
  margin-bottom: min(12vw, 100px);
}

.det-freef .point02__main {
  display: flex;
  justify-content: center;
  column-gap: min(4vw, 40px);
  max-width: 1000px;
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .det-freef .point02__main {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .det-freef .point02__item {
    margin-top: min(6vw, 60px);
  }
}

.det-freef .point02__item--content {
  text-align: center;
  background-color: #F0F9FF;
  border-top-right-radius: 20px;
  border-bottom-left-radius: 20px;
  padding-inline: min(50px, 4vw);
  padding-block: min(30px, 6vw);
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .det-freef .point02__item--content {
    max-width: 420px;
    width: 80vw;
  }
}

.det-freef .point02__item--title {
  display: inline-block;
  font-size: min(24px, 4vw);
  letter-spacing: 0.15em;
  color: white;
  background: linear-gradient(180deg, rgba(130, 162, 212, 1) 0%, rgba(136, 207, 243, 1) 100%);
  border-radius: 50px;
  padding-inline: min(20px, 3vw);
  padding-block: min(5px, 1vw);
  margin-bottom: min(2vw, 20px);
}

.det-freef .point02__item--text {
  font-size: min(32px, 4.6vw);
}

.det-freef .point02__item--text small {
  font-size: 40%;
}

.det-freef .point02__item--note {
  font-size: min(16px, 3vw);
  text-align: center;
  margin-top: min(2vw, 10px);
}

/*---- point03 ----*/
.det-freef .point03 {
  margin-bottom: min(10vw, 100px);
}

.det-freef .point03__item {
  text-align: center;
  max-width: 50vw;
  margin-inline: auto;
}

/*---- point04 ----*/
.det-freef .point04 {
  margin-bottom: min(12vw, 100px);
}

.det-freef .point04__item {
  text-align: center;
  max-width: 70vw;
  margin-inline: auto;
}

/*---- point05 ----*/
.det-freef .point05 {
  margin-bottom: min(12vw, 100px);
}

.det-freef .point05__main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(4vw, 30px);
}

@media screen and (max-width: 767px) {
  .det-freef .point05__main {
    display: block;
  }
}

.det-freef .point05__img {
  max-width: 328px;
  width: 35vw;
}

@media screen and (max-width: 767px) {
  .det-freef .point05__img {
    width: 100vw;
    margin-inline: auto;
    margin-bottom: min(6vw, 60px);
  }
}

.det-freef .point05__content {
  position: relative;
  padding-left: 20px;
}

@media screen and (max-width: 767px) {
  .det-freef .point05__content {
    padding-left: 0;
    max-width: 380px;
    width: 85vw;
    margin-inline: auto;
  }
}

.point05__content--title {
  font-size: min(32px, 5vw);
  letter-spacing: 0.2rem;
  color: #E4007F;
  background-color: #EAEBEB;
  padding-inline: min(30px, 6vw);
  padding-block: min(15px, 3.2vw);
  border-top-right-radius: 20px;
  border-bottom-left-radius: 20px;
  margin-bottom: min(5vw, 30px);
}

@media screen and (max-width: 767px) {
  .point05__content--title {
    text-align: center;
  }
}

.point05__content--title span {
  font-size: 60%;
}

.point05__content--title:before {
  position: absolute;
  top: 40px;
  left: 0;
  transform: translateY(-50%);
  content: "";
  display: block;
  width: 24px;
  height: 18px;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
  background-color: #EAEBEB;
}

@media screen and (max-width: 767px) {
  .point05__content--title:before {
    display: none;
  }
}

.point05__content--title small {
  font-size: 70%;
}

.point05__content--text-box {
  font-size: min(20px, 3.6vw);
  line-height: 1.8;
  margin-bottom: min(2vw, 20px);
}

.det-freef .point05__content--text-box--tag {
  display: inline-block;
  border: 1px solid currentColor;
  padding-inline: min(20px, 6vw);
  padding-block: min(5px, 1vw);
  margin-bottom: min(2vw, 20px);
}

.det-freef .point05__content--note {
  font-size: min(15px, 3.6vw);
  text-align: right;
}

/*---- point06 ----*/
.det-freef .point06 {
  margin-bottom: min(14vw, 160px);
}

.det-freef .point06__list {
  display: flex;
  justify-content: center;
  gap: min(2vw, 20px);
}

@media screen and (max-width: 767px) {
  .det-freef .point06__list {
    flex-wrap: wrap;
  }
}

.det-freef .point06__list li {
  max-width: 30%;
}

/* =========================================== */
/*    product
/* =========================================== */
.det-freef .product {
  background: url(../img/product_bg.webp) no-repeat center center/cover;
  padding-bottom: min(10vw, 100px);
}

.det-freef .product__inner {
  background: url(../img/product_mask.webp) no-repeat center top;
  background-size: 100% auto;
}

.det-freef .product__main {
  max-width: 940px;
  margin-inline: auto;
  padding-inline: min(5vw, 30px);
  padding-top: min(150px, 15vw);
  display: grid;
  grid-template-columns: 3fr 5fr;
  gap: min(4vw, 40px);
}

@media screen and (max-width: 767px) {
  .det-freef .product__main {
    grid-template-columns: 1fr;
  }
}

.det-freef .product__img {
  text-align: center;
  max-width: 55vw;
  margin-inline: auto;
}

.det-freef .product__content--title {
  font-size: min(32px, 5vw);
  margin-bottom: min(5vw, 20px);
}

.det-freef .product__content--jan {
  font-size: min(24px, 4.6vw);
  margin-bottom: min(5vw, 20px);
}

.det-freef .product__content-howto {
  margin-bottom: min(4vw, 20px);
}

.det-freef .product__content-howto--title {
  text-align: center;
  font-size: min(24px, 4.6vw);
  border-top: 1px solid #4A4A4A;
  border-bottom: 1px solid #4A4A4A;
  padding-block: min(3vw, 7px);
}

.det-freef .product__content-howto--title-note {
  text-align: center;
  font-size: min(16px, 3vw);
  margin-top: min(2vw, 10px);
  color: #E4007F;
}

.det-freef .product__content-howto--step {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: min(2vw, 10px);
  padding-block: min(7vw, 25px);
}

.product__content-howto--step.howtostep-arrow {
  border-bottom: 1px dashed #3D7EE2;
  position: relative;
}
.product__content-howto--step.howtostep-arrow:before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 900;
  content: "\f107";
  display: block;
  width: min(37px, 10vw);
  height: min(37px, 10vw);
  color: #fff;
  background: linear-gradient(180deg,rgba(130, 162, 212, 1) 0%, rgba(136, 207, 243, 1) 100%);
  position: absolute;
  bottom: min(-18px, 1vw);
  left: 50%;
  transform: translateX(-50%);
  border-radius: 50%;
  text-align: center;
  font-size: min(22px, 5vw);
  line-height: min(40px, 10vw);
}

.det-freef .product__content-howto--step-img {
  order: 2;
}

.det-freef .product__content-howto--step-text {
  font-size: min(20px, 3.6vw);
  letter-spacing: 0.2em;
  order: 1;
}

.det-freef .product__content-howto--step-text span {
  color: #E4007F;
}

.det-freef .product__content-howto--step-note {
  font-size: min(14px, 3vw);
  letter-spacing: 0.1em;
  text-indent: -1.1em;
  padding-left: 1.1em;
  margin-top: min(1vw, 2px);
}

@media screen and (max-width: 767px) {
  .det-freef .product__content-howto--btn .btn-gray {
    margin-inline: auto;
  }
}
