:root {
  --lp-bg-blue: #eff6ff;
  --lp-shadow: 0px 4px 32px 0px rgba(0, 0, 0, 0.04);
}
main {
  font-family: 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', 'メイリオ', Meiryo, Verdana, Helvetica, 'ＭＳ Ｐゴシック', sans-serif;
  font-size: var(--fs-base);
  line-height: 2;
}
@media (max-width: 767px) {
  main {
    font-size: var(--fs-s);
    line-height: 1.8;
  }
}
/* レイアウト */
.inner {
  max-width: 1200px;
  margin: 0 auto;
}

.inner--l2 {
  max-width: 1100px;
}

.section-head {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
  text-align: center;
}
@media (max-width: 767px) {
  .inner {
    margin: 0 16px;
  }
  .section-head {
    gap: 16px;
    text-align: left;
  }
  .s-footer-rs {
    padding-top: 0;
  }
  .s-footer-rs__head {
    display: none;
  }
}

/* 見出し */
.headline {
  font-size: 2.5rem;
  line-height: 1.5;
  text-align: center;
}

.headline span {
  color: #f95271;
}

@media (max-width: 767px) {
  .headline {
    font-size: var(--fs-l);
  }
}


/* ボタン */
.button {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--base-color);
  border-radius: 5px;
  color: #fff;
  font-weight: 700;
  transition: opacity 0.3s;
}

.button--secondary {
  background: #fff;
  border: solid 1px var(--base-color);
  color: var(--base-color);
  transition: background 0.3s;
}

.button--cta {
  width: 480px;
  height: 80px;
  font-size: var(--fs-xl);
  margin: 0 auto;
}

@media (min-width: 768px) {
  .button:hover {
    opacity: .7;
  }
  .button--secondary:hover {
    opacity: 1;
    background: #f1f4fc;
  }
}

@media (max-width: 767px) {
  .button--cta {
    width: 100%;
    height: 60px;
    font-size: var(--fs-m);
  }
}

/* 箱 */
.attention-box {
  padding: 20px 40px;
  background: #fef0f3;
  color: #333;
}

.attention-box p + p {
  margin-top: 10px;
}

@media (max-width: 767px) {
  .attention-box {
    padding: 20px 16px;
  }
}

/* コメリスト */
.note-list {
  list-style-type: none;
}

.note-list li {
  display: flex;
  gap: 4px;
}

.note-list li::before {
  content: "※";
}

@media (max-width: 767px) {
  .note-list li {
    font-size: var(--fs-xxs);
  }
}

/* ヘッダー */
.header {
  padding: 22px 0;
}
.header__inner {
  display: flex;
  justify-content: space-between;
}

.header__logo {
  display: flex;
  align-items: flex-end;
  gap: 20px;
}
.header__logo a {
  line-height: 0;
}

.header__logo img {
  width: 270px;
}

.header__logo span {
  font-size: var(--fs-base);
  line-height: 1.2;
  color: #8B8B8B;
  padding: 0 0 4px;
}

.header__btns {
  display: flex;
  gap: 10px;
  list-style-type: none;
}

.header__btns a {
  font-size: var(--fs-m);
  line-height: 1.8;
  padding: 6px 20px;
}

@media (max-width: 960px) {
  /* ヘッダー */
  .header {
    padding: 7px 16px 11px;
  }
  .header__inner {
    align-items: center;
  }

  .header__logo {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .header__logo a {
    line-height: 0;
  }

  .header__logo img {
    width: 173px;
  }

  .header__logo span {
    font-size: .75rem;
    line-height: 1;
    padding: 0;
  }
  .header__btns {
    flex-shrink: 0;
  }
  .header__btns a {
    font-size: var(--fs-xxs);
    line-height: 1;
    padding: 8.5px 10px;
  }
}

@media (max-width: 767px) {
    .header {
      padding: 7px 0 11px;
    }
}

/* ヒーロー */
.hero {
  background: url(../images/bg_hero_pc.png) no-repeat center center;
  background-size: cover;
  padding: 0 min(5.88232941%, 80px);
}
.hero__column {
  display: flex;
  justify-content: space-between;
  gap: 0 20px;
}

.hero__text {
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 100px 0 97px;
}

.hero__headline {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 2.5rem;
  line-height: 1.5;
  color: #0071FF;
}

.hero__headline span {
  background: #fff;
  padding: 0 10px;
  width: fit-content;
}

.hero__lead {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: var(--fs-base);
  font-weight: 700;
  line-height: 2;
  color: #fff;
}

.hero__note {
  display: block;
  font-size: var(--fs-xs);
  font-weight: 400;
  line-height: 1.5;
}

.hero__list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  list-style-type: none;
}

.hero__list li {
  font-size: var(--fs-base);
  font-weight: 600;
  line-height: 1.5;
  width: 198px;
  background: #F95271;
  border: solid 2px #fff;
  color: #fff;
  padding: 10px 0;
  text-align: center;
}

.hero__illust {
  width: 524px;
  padding: 80px 0 0;
  margin: 0 0 -48.8px;
}

.hero__balloon {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 4.347826086%;
  padding: 16px 5.725190839% 28px;
  background: #0071FF;
  border: solid 2px #fff;
  border-radius: 12px;
  margin: 0 0 20.5px;
  position: relative;
}

.hero__balloon::after {
  content: "";
  display: block;
  width: 23px;
  height: 23px;
  background: #0071FF;
  border-bottom: solid 2px #fff;
  border-left: solid 2px #fff;
  position: absolute;
  bottom: -13px;
  left: 166px;
  transform: rotate(-45deg)
}

.hero__balloon-title {
  font-size: var(--fs-2m);
  font-weight: 700;
  color: #fff;
  text-align: center;
  width: 100%;
}

.hero__balloon-title span {
  background: #F95271;
  padding: 4px 8px;
  margin: 0 8px;
}

.hero__balloon dl {
  flex: 1;
  padding: 9px 0;
  background: #fff;
  text-align: center;
}

.hero__balloon dl dt {
  font-size: var(--fs-base);
  line-height: 1.6;
  color: #0071FF;
}

.hero__balloon dl dd {
  font-size: var(--fs-2m);
  color: #0071FF;
}

.hero__balloon dl dd span {
  font-family: 'Futura', sans-serif;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 8px 0 0;
}

@media (min-width: 961px) {
  .hero__headline {
    font-size: min(2.94117647vw,2.5rem);
  }
  .hero__balloon dl dd span {
    font-size: min(2.94117647vw,2.5rem);
  }
}

@media (max-width: 960px) {
  .hero__column {
    flex-direction: column;
    gap: 40px;
  }
  .hero__text {
    padding: 60px 0 0;
  }
  .hero__illust {
    padding: 0;
    margin: 0 auto -48.8px;
  }
}

@media (max-width: 767px) {
  .hero {
    background-image: url(../images/bg_hero_sp.png);
    padding: 0;
  }

  .hero__text {
    gap: 16px;
    padding: 40px 0 0;
  }

  .hero__headline {
    gap: 9px;
    font-size: min(5.641025641vw,var(--fs-l));
  }

  .hero__headline span {
    background: #fff;
    padding: 0 6px;
  }

  .hero__lead {
    gap: 6px;
    font-size: var(--fs-s);
  }

  .hero__note {
    font-size: var(--fs-xxs);
  }

  .hero__list {
    gap: 4px;
  }

  .hero__list li {
    font-size: 0.6875rem;
    width: 32.402234636%;
    border: solid 1px #fff;
  }

  .hero__illust {
    width: 100%;
    padding: 0;
    margin: 0 0 -33px;
  }

  .hero__balloon {
    gap: 8px 14px;
    padding: 11px 21px 19px;
    border-radius: 8px;
    margin: 0 0 12px;
  }

  .hero__balloon::after {
    content: "";
    display: block;
    width: 23px;
    height: 23px;
    background: #0071FF;
    border-bottom: solid 2px #fff;
    border-left: solid 2px #fff;
    position: absolute;
    bottom: -13px;
    left: 166px;
    transform: rotate(-45deg)
  }

  .hero__balloon-title {
    font-size: var(--fs-xs);
  }

  .hero__balloon-title span {
    background: #F95271;
    padding: 4px 5px;
    margin: 0 5px;
  }


  .hero__balloon dl {
    padding: 5px 0;
  }

  .hero__balloon dl dt {
    font-size: 0.75rem;
  }

  .hero__balloon dl dd {
    font-size: 0.75rem;
  }

  .hero__balloon dl dd span {
    font-size: var(--fs-xxl);
    margin: 0 5px 0 0;
  }
}

/* about */
.about {
  padding: 100px min(5.88232941%, 80px) 120px;
}

.about__head {
  margin: 0 0 60px;
}

.about figure {
  line-height: 0;
}

.example {
  padding: 120px 0 0;
}

.example__headline {
  margin: 0 0 60px;
}

.example__list {
  display: flex;
  list-style-type: none;
  gap: 25px;
  margin: 0 0 80px;
}

.example__list li {
  width: 350px;
}

.example__title {
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  margin: 0 0 12px;
}

.example__image {
  line-height: 0;
  margin: 0 0 28px;
}

.example__copy {
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: #0071ff;
}

@media (max-width: 767px) {
  .about {
    padding: 70px 0 40px;
  }
  .about__head {
    margin: 0 0 28px;
  }
  .example {
    padding: 40px 0 0;
  }
  .example__headline {
    font-size: var(--fs-2m);
  }
  .example__list {
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px 0;
    margin: 0 0 32px;
  }
  .example__list li {
    width: 47.486033519%;
  }
  .example__title {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    font-size: var(--fs-base);
    line-height: 1.5;
    margin: 0 0 4px;
  }
  .example__image {
    margin: 0 0 8px;
  }
  .example__copy {
    font-size: var(--fs-2m);
  }
}

.register-step {
  background: var(--lp-bg-blue);
  padding: 120px min(5.88232941%, 80px);
  position: relative;
}

.register-step::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 100px solid transparent;
  border-left: 100px solid transparent;
  border-top: 80px solid var(--lp-bg-blue);
  border-bottom: 0;
  position: absolute;
  bottom: -80px;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.register-step__head {
  margin: 0 0 80px;
}

.register-step__list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin: 0 0 40px;
}

.register-step__list li {
  display: flex;
  gap: 40px 3.636363636%;
}

.register-step__icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 56px;
  font-family: 'Futura', sans-serif;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.66;
  text-align: center;
  color: #0071ff;
}

.register-step__icon::after {
  content: "";
  display: block;
  width: 4px;
  flex: 1;
  background: #0071ff;
  margin: 8px 0 12px;
}

.register-step__list li:last-child .register-step__icon::after {
  display: none;
}

.register-step__icon span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: #0071ff;
  border-radius: 50%;
  color: #fff;
  font-size: var(--fs-xxxl);
}

.register-step__text {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 524px;
  padding: 40px 0 0;
}

.register-step__title {
  font-size: var(--fs-xxl);
  line-height: 1.7;
}

.register-step__image {
  width: 400px;
  align-self: center;
  margin: 0 0 0 auto;
}

.register-step__button {
  width: 320px;
  height: 52px;
}

.register-step__note-list {
  list-style-type: none;
  margin: 0 0 80px;
}

.register-step__note-list li {
  display: flex;
  gap: 10px;
  counter-increment: number;
}

.register-step__note-list li::before {
  content: "※"counter(number)".";
  flex-shrink: 0;
  margin: 0 0 0 -20.5px;
}

@media (max-width: 767px) {
  .register-step {
    padding: 40px 0;
  }

  .register-step::after {
    border-right-width: 53px;
    border-left-width: 53px;
    border-top-width: 42px;
    bottom: -42px;
  }

  .register-step__head {
    margin: 0 0 32px;
    text-align: center;
  }

  .register-step__list {
    gap: 28px;
  }

  .register-step__list li {
    gap: 12px;
    position: relative;
  }

  .register-step__icon {
    gap: 4px;
    width: 32px;
  }

  .register-step__icon::after {
    margin: 8px 0 0;
  }


  .register-step__icon span {
    width: 32px;
    height: 32px;
    font-size: var(--fs-base);
  }

  .register-step__text {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    padding: 0;
    flex: 1;
  }

  .register-step__title {
    font-size: var(--fs-base);
    line-height: 1.5;
    padding: 28px 153px 0 0;
    margin: 0 0 4px;
    min-height: 87px;
  }

  .register-step__image {
    width: 145px;
    position: absolute;
    top: 0;
    right: 0;
  }

  .register-step__button {
    width: 100%;
    margin: 20px auto 0;
    font-size: var(--fs-base);
  }

  .register-step__note-list {
    margin: 0 0 32px;
  }

  .register-step__note-list li {
    gap: 4px;
    counter-increment: number;
    font-size: var(--fs-xxs);
  }

  .register-step__note-list li::before {
    margin: 0;
  }
}

.service {
  padding: 180px min(5.88232941%, 80px) 0;
}

.service__head {
  align-items: center;
  gap: 60px;
  margin: 0 0 80px;
}

.service__head img {
  width: 465px;
}

.service__item {
  padding: 60px 3.63636363636%;
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--lp-shadow);
}

.service__item + .service__item {
  margin-top: 60px;
}

.service__title {
  font-size: var(--fs-xxxl);
  text-align: center;
  margin: 0 0 40px;
}

.service__check-list {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin: 0 0 40px;
}

.service__check-list li {
  display: flex;
  align-items: center;
  gap: 12px;
}

.service__check-list li::before {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  background: url('data:image/svg+xml;charset=utf-8,<svg width="21" height="16" viewBox="0 0 21 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20.5606 0.93916C21.1465 1.52503 21.1465 2.47649 20.5606 3.06236L8.56193 15.061C7.97606 15.6469 7.02461 15.6469 6.43873 15.061L0.439404 9.06169C-0.146468 8.47582 -0.146468 7.52436 0.439404 6.93849C1.02528 6.35262 1.97673 6.35262 2.5626 6.93849L7.50268 11.8739L18.4421 0.93916C19.028 0.353288 19.9794 0.353288 20.5653 0.93916H20.5606Z" fill="%23f95271"/></svg>') no-repeat center center;
  background-size: 21px 16px;
  flex-shrink: 0;
}

.service__plans {
  display: flex;
  gap: 20px 1.960784313%;
}

.service__plans._row2 dl {
  padding: 24px 1.960784313%;
}

.service__plans dl {
  flex: 1;
  padding: 24px 3.137254901% 32px;
  background: var(--lp-bg-blue);
  border-radius: 8px;
}

.service__plans dl dt {
  font-size: var(--fs-base);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  margin: 0 0 20px;
}

.service__button-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style-type: none;
}

.service__button-list li {
  flex: 1;
  min-width: 140px;
}

.service__plan-button {
  display: flex;
  align-items: center;
  height: 66px;
  padding: 20px 36px 20px 20px;
  font-size: var(--fs-base);
  font-weight: 700;
  line-height: 1.6;
  background: #fff url('data:image/svg+xml;charset=utf-8,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 2C11.4469 2 11 2.44687 11 3C11 3.55313 11.4469 4 12 4H14.5844L8.29375 10.2937C7.90312 10.6844 7.90312 11.3188 8.29375 11.7094C8.68437 12.1 9.31875 12.1 9.70937 11.7094L16 5.41563V8C16 8.55312 16.4469 9 17 9C17.5531 9 18 8.55312 18 8V3C18 2.44687 17.5531 2 17 2H12ZM4.5 3C3.11875 3 2 4.11875 2 5.5V15.5C2 16.8813 3.11875 18 4.5 18H14.5C15.8813 18 17 16.8813 17 15.5V12C17 11.4469 16.5531 11 16 11C15.4469 11 15 11.4469 15 12V15.5C15 15.775 14.775 16 14.5 16H4.5C4.225 16 4 15.775 4 15.5V5.5C4 5.225 4.225 5 4.5 5H8C8.55312 5 9 4.55312 9 4C9 3.44687 8.55312 3 8 3H4.5Z" fill="%230f30df"/></svg>') no-repeat right 16px center;
  border: solid 1px #0f30df;
  border-radius: 4px;
  color: #0f30df;
  transition: background-color .3s;
}

.service__attention {
  margin: 80px 0 0;
}

@media (min-width: 768px) {
  .service__plan-button:hover {
    background-color: #f1f4fc;
  }
}

@media (max-width: 767px) {
  .service {
    padding: 82px 0 0;
  }

  .service__head {
    gap: 24px;
    margin: 0 0 60px;
  }

  .service__head img {
    width: 100%;
  }

  .service__item {
    padding: 32px 16px;
  }

  .service__item + .service__item {
    margin-top: 20px;
  }

  .service__title {
    font-size: var(--fs-m);
    margin: 0 0 24px;
  }

  .service__check-list {
    flex-direction: column;
    gap: 12px;
    margin: 0 0 40px;
  }

  .service__check-list li {
    gap: 8px;
  }

  .service__check-list li::before {
    background-size: 16px 12px;
  }

  .service__plans {
    flex-direction: column;
  }

  .service__plans._row2 dl {
    padding: 24px 16px;
  }

  .service__plans dl {
    padding: 24px 16px;
    border-radius: 8px;
  }

  .service__plans dl dt {
    font-size: var(--fs-base);
    margin: 0 0 12px;
  }

  .service__button-list {
    flex-direction: column;
  }

  .service__plan-button {
    height: 52px;
    padding: 12px 36px 12px 16px;
    font-size: var(--fs-base);
  }

  .service__attention {
    margin: 32px 0 0;
  }
}

.fee-pluns {
  padding: 120px min(5.88232941%, 80px);
  position: relative;
}

.fee-pluns::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 100px solid transparent;
  border-left: 100px solid transparent;
  border-top: 80px solid #fff;
  border-bottom: 0;
  position: absolute;
  bottom: -80px;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.fee-pluns__column {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.fee-pluns__wrap {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.fee-pluns__item {
  padding: 40px 5.454545454% 60px;
  box-shadow: var(--lp-shadow);
  border-radius: 20px;
}

.fee-pluns__item-head {
  font-size: var(--fs-2m);
  font-weight: 700;
  line-height: 1.6;
  margin: 0 0 32px;
}

.fee-pluns__item-head span {
  display: inline-block;
  padding: 3px 11px;
  border: solid 1px;
  border-radius: 4px;
}

.fee-pluns__item-head span._new {
  color: #f95271;
  border-color: #f95271;
  margin-right: 10px;
}

.fee-pluns__item-head span._plan {
  color: #f99704;
  border-color: #f99704;
  margin-left: 10px;
  margin-right: 10px;
}

.fee-pluns__item-body {
  display: flex;
}

.fee-pluns__item-body dl:not(._amount) {
  width: 25.510204081%;
  color: #fff;
  padding: 20px 2.040816326%;
  border-radius: 8px;
}

.fee-pluns__item-body dl._new {
  background: #f95271;
}
.fee-pluns__item-body dl._plan {
  background: #f99704;
  margin: 0 0 0 4.897959183%;
  position: relative;
}

.fee-pluns__item-body dl._plan::before {
  content: "+";
  font-size: min(2.5vw,2.125rem);
  line-height: 1.5;
  color: #333;
  position: absolute;
  left: -13.6%;
  top: 50%;
  transform: translateY(-50%);
}

.fee-pluns__item-body dl dt {
  font-size: min(1.323529411vw,var(--fs-m));
  line-height: 1.4;
  text-align: center;
}

.fee-pluns__item-body dl dd {
  font-size: min(2.058823529vw, var(--fs-xxl));
  text-align: center;
}

.fee-pluns__item-body dl dd span {
  font-family: 'Futura', sans-serif;
  font-size: min(4.117647058vw, 3.5rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 4px 0 0;
}

.fee-pluns__item-body dl._amount {
  margin: 0 0 0 auto;
  width: 40.204081632%;
}

.fee-pluns__item-body dl._amount dt {
  padding: 4px;
  background: #0071ff;
  border-radius: 4px;
  color: #fff;
}

.fee-pluns__item-body dl._amount dd {
  color: #0071ff;
  font-size: min(3.088235294vw,2.625rem);
  font-weight: 700;
  line-height: 1.2;
  position: relative;
}

.fee-pluns__item-body dl._amount dd span {
  font-size: min(5.882352941vw,5rem);
  line-height: 1.2;
}
.fee-pluns__item-body dl._amount dd sup {
  font-size: min(1.470588235vw,var(--fs-2m));
  line-height: 1.2;
  font-weight: 500;
  position: absolute;
  top: 10px;
  margin: 0 0 0 -10.40609137%;
}

.fee-list__headline {
  font-size: var(--fs-xxxl);
  margin: 0 0 40px;
}

.fee-list__table {
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0 0 40px;
}

.fee-list__table th {
  line-height: 1.5;
  width: 270px;
  padding: 14px 0;
}

.fee-list__table th:first-child {
  background: #f9f9f9;
  width: 292px;
}

.fee-list__table th:nth-child(2) {
  background: #f95271;
  color: #fff;
}

.fee-list__table th:nth-child(3) {
  background: #f99704;
  color: #fff;
}

.fee-list__table th:nth-child(4) {
  background: #0071ff;
  color: #fff;
}

.fee-list__table th,
.fee-list__table td {
  border: solid 1px #f0f0f0;
}

.fee-list__table td {
  padding: 16px 20px;
}

.fee-list__table td:not(:first-child) {
  font-size: var(--fs-xxs);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.fee-list__table td:not(:first-child) span {
  font-size: var(--fs-m);
  margin: 0 4px 0 0;
}

.fee-list__table td:nth-child(2) {
  background: #fff4f6;
}

.fee-list__table td:nth-child(3) {
  background: #FFF8ED;
}

.fee-list__table td:nth-child(4) {
  background: #F8FBFF;
}

.fee-list__note {
  list-style-type: none;
  padding: 0;
}

.fee-list__note li {
  display: flex;
}

.fee-list__note li::before {
  content: "・";
  margin: 0 3px;
}

@media (max-width: 767px) {

  .fee-pluns {
    padding: 60px 0;
  }
  .fee-pluns::after {
    border-right-width: 53px;
    border-left-width: 53px;
    border-top-width: 42px;
    bottom: -42px;
  }
  .fee-pluns__column {
    gap: 32px;
  }

  .fee-pluns__wrap {
    gap: 20px;
  }

  .fee-pluns__item {
    padding: 32px 16px;
  }

  .fee-pluns__item-head {
    font-size: var(--fs-xs);
    margin: 0 0 20px;
  }
  .fee-pluns__item-head span {
    margin-bottom: 10px;
  }

  .fee-pluns__item-body {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px 8.588957055%;
  }

  .fee-pluns__item-body dl:not(._amount) {
    width: auto;
    padding: 12px 0;
    flex: 1;
  }

  .fee-pluns__item-body dl._plan {
    margin: 0;
  }

  .fee-pluns__item-body dl._plan::before {
    font-size: var(--fs-2m);
    left: -21px;
  }

  .fee-pluns__item-body dl dt {
    font-size: var(--fs-xs);
  }

  .fee-pluns__item-body dl dd {
    font-size: min(5.128205128vw, var(--fs-2m));
  }

  .fee-pluns__item-body dl dd span {
    font-size: min(8.461538461vw, 2.0625rem);
  }

  .fee-pluns__item-body dl._amount {
    margin: 0;
    width: 100%;
  }

  .fee-pluns__item-body dl._amount dd {
    font-size: 2.1875rem;
  }

  .fee-pluns__item-body dl._amount dd span {
    font-size: 4.125rem;
  }

  .fee-pluns__item-body dl._amount dd sup {
    font-size: 1.0625rem;
    top: 10px;
    margin: 0 0 0 -34px;
  }

  .fee-list__headline {
    font-size: var(--fs-l);
    margin: 0 0 32px;
  }

  .fee-list__wrap {
    width: 100%;
    overflow: auto;
  }

  .fee-list__table {
    width: 1000px;
    margin: 0 0 32px;
  }

  .fee-list__table th {
    width: 246px;
  }

  .fee-list__table th:first-child {
    width: 260px;
  }

  .fee-list__note li {
    font-size: var(--fs-xxs);
  }
}

.flow {
  background: var(--lp-bg-blue);
  padding: 180px min(5.88232941%, 80px) 120px;
  position: relative;
}

.flow::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 100px solid transparent;
  border-left: 100px solid transparent;
  border-top: 80px solid #fff;
  border-bottom: 0;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.flow::after {
  border: 1px solid red;
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 100px solid transparent;
  border-left: 100px solid transparent;
  border-top: 80px solid var(--lp-bg-blue);
  border-bottom: 0;
  position: absolute;
  bottom: -80px;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.flow__head {
  text-align: left;
  max-width: 900px;
  margin: 0 auto;
}

.flow__image {
  text-align: center;
  margin: 80px 0 0;
  line-height: 0;
}

.flow__push {
  padding: 120px 0 172px;
}

.flow__push-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  margin: 0 0 80px;
}

.flow__push-balloon {
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1.6;
  padding: 8px 20px;
  background: #0071ff;
  border-radius: 4px;
  color: #fff;
  position: relative;
}

.flow__push-balloon::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-top: 12px solid #0071ff;
  border-bottom: 0;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -12px;
  margin: 0 auto;
}

.flow__push-copy {
  font-size: 2.5rem;
  line-height: 1.5;
  display: flex;
  gap: 32px;
  align-items: center;
}

.flow__push-copy::before,
.flow__push-copy::after {
  content: "";
  display: block;
  width: 63px;
  height: 114px;
  background: url('data:image/svg+xml;charset=utf-8,<svg width="63" height="114" viewBox="0 0 63 114" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 55L40.5 112.5" stroke="%230071FF" stroke-width="4"/><path d="M28.5 1.5L61 112.5" stroke="%230071FF" stroke-width="4"/></svg>') no-repeat center center;
  background-size: 100% 100%;
}

.flow__push-copy::after {
  transform: scale(-1, 1);
}

.flow__push-copy em {
  display: inline-block;
  background: #F95271;
  color: #fff;
  font-style: normal;
  padding: 0 12px;
  margin: 0 8px;
}

.flow__push-lead {
  font-size: var(--fs-xl);
  font-weight: 700;
  margin: 0 0 20px;
}

.flow__push-attention {
  margin: 0 0 20px;
}


.case {
  padding: 100px min(6.25%, 80px);
}

.case + .case {
  margin-top: 60px;
}

.case--01 {
  background: #dfedff;
}

.case--02 {
  background: #fef0f3;
}

.case__column {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

.case__headline {
  font-size: 2.25rem;
}

.case__headline .label {
  display: inline-block;
  padding: 3px 17px;
  border: solid 1px #F95271;
  border-right: solid 6px #F95271;
  background: #fff;
  margin: 0 10px 0 0;
}

.case__list {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

.case__item {
  counter-increment: case_number;
}

.case__item > dt {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 20px 16px;
  font-size: var(--fs-xxl);
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 32px;
}

.case__item > dt span {
  width: 100%;
}

.case__item > dt small {
  display: block;
  text-indent: -1em;
  padding-left: 1em;
  font-size: var(--fs-base);
  font-weight: 400;
  line-height: 2;
}

.case__item > dt::before {
  content: "CASE " counter(case_number, decimal-leading-zero);
  font-family: 'Futura', sans-serif;
  font-size: var(--fs-base);
  font-weight: 700;
  line-height: 1.6;
  padding: 8px 12px;
  background: #0071ff;
  color: #fff;
}

.case__schedule {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0 0 32px;
}

.case__schedule-list {
  display: flex;
  justify-content: center;
  gap: 32px;
}

.case__schedule-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  line-height: 1.5;
  font-weight: 700;
}

.case__schedule-list li::before {
  content: "";
  display: block;
  width: 51px;
  height: 16px;
}

.case__schedule-list li._results {
  color: #f95271;
}

.case__schedule-list li._results::before {
  background: #f95271;
}

.case__schedule-list li._fee {
  color: #f99704;
}

.case__schedule-list li._fee::before {
  background: #f99704;
}

.case__schedule-list li._new {
  color: #00c75c;
}

.case__schedule-list li._new::before {
  background: #00c75c;
}

.case__fee {
  background: #fff;
  padding: 28px 3.636363636%;
}

.case__fee > dt {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.6;
  padding: 0 0 12px;
  border-bottom: solid 1px #f0f0f0;
  margin: 0 0 10px;
}

.case__fee > dd {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
}

.case__update {
  width: 480px;
}

.case__update > dt {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 0 10px;
}

.case__update > dt .label {
  font-size: var(--fs-2m);
  font-weight: 700;
  line-height: 1.6;
  border: solid 1px #f95271;
  border-right-width: 4px;
  color: #f95271;
  padding: 4px 14px 4px 12px;
}

.case__update > dt .label._new {
  border-right-width: 1px;
  border-left-width: 4px;
}

.case__update > dt .fee {
  font-family: 'Futura', sans-serif;
  font-size: var(--fs-xl);
  color: #0071ff;
  font-weight: 700;
  line-height: 1.2;
}

.case__update > dt .fee span {
  font-size: 3rem;
  margin: 0 8px 0 0;
}

.case__update-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.case__update-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.case__update-list li > *:not(.number) {
  background: #f9f9f9;
  font-size: var(--fs-s);
  line-height: 1.6;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
}

.case__update-list li .plan {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 164px;
}

.case__update-list li dl {
  display: flex;
  justify-content: space-between;
  width: 248px;
}

.case__update-list li dl dd {
  font-size: var(--fs-xxs);
  line-height: 1.2;
}

.case__update-list li dl dd span {
  font-family: 'Futura', sans-serif;
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1;
  margin: 0 4px 0 0;
}

.case__update-list li .number {
  font-size: var(--fs-s);
  line-height: 1.6;
  font-weight: 700;
  white-space: nowrap;
}

.case__update-list li .number span {
  font-family: 'Futura', sans-serif;
  font-size: var(--fs-xl);
  font-weight: 700;
  margin: 0 4px 0 0;
}

.flow__button {
  margin-top: 80px;
}

@media (max-width: 767px) {
  .flow {
    padding: 82px 0;
  }

  .flow::before {
    border-right-width: 53px;
    border-left-width: 53px;
    border-top-width: 42px;
  }

  .flow::after {
    border-right-width: 53px;
    border-left-width: 53px;
    border-top-width: 42px;
    bottom: -42px;
  }

  .flow__image {
    margin: 32px 0 0;
  }

  .flow__push {
    padding: 40px 0;
  }

  .flow__push-head {
    gap: 16px;
    margin: 0 0 32px;
  }

  .flow__push-balloon {
    font-size: var(--fs-xs);
    padding: 4px 9px;
    border-radius: 2px;
  }

  .flow__push-balloon::after {
    border-right-width: 6px;
    border-left-width: 6px;
    border-top-width: 8px;
    bottom: -8px;
  }

  .flow__push-copy {
    font-size: min(5.128205128vw,var(--fs-2m));
    gap: 5px;
  }

  .flow__push-copy::before,
  .flow__push-copy::after {
    width: 24px;
    height: 45px;
  }

  .flow__push-copy span {
    white-space: nowrap;
  }

  .flow__push-copy em {
    padding: 0 5px;
    margin: 0 4px;
  }

  .flow__push-lead {
    font-size: var(--fs-s);
    font-weight: 700;
    margin: 0 0 16px;
  }

  .flow__push-attention {
    margin: 0 0 16px;
  }

  .case {
    padding: 40px 0;
  }

  .case__column {
    gap: 32px;
  }

  .case__headline {
    font-size: var(--fs-l);
  }

  .case__headline .label {
    margin: 0 8px 8px 0;
  }

  .case__list {
    gap: 32px;
  }

  .case__item > dt {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    font-size: var(--fs-2m);
    margin: 0 0 16px;
  }

  .case__item > dt small {
    font-size: var(--fs-xxs);
    line-height: 1.8;
  }

  .case__item > dt::before {
    font-size: 0.75rem;
    padding: 4px 12px;
  }

  .case__schedule {
    gap: 12px;
    margin: 0 0 24px;
  }

  .case__schedule-list {
    gap: 20px;
  }

  .case__schedule-list li {
    gap: 8px;
    font-size: var(--fs-xxs);
  }

  .case__schedule-list li::before {
    width: 20px;
    height: 12px;
  }

  .case__fee {
    padding: 12px 16px;
  }

  .case__fee > dt {
    font-size: var(--fs-base);
  }

  .case__update {
    width: 100%;
  }

  .case__update > dt {
    margin: 0 0 8px;
  }

  .case__update > dt .label {
    font-size: var(--fs-base);
    padding: 2px 10px 2px 11px;
  }

  .case__update > dt .fee {
    font-size: var(--fs-xs);
  }

  .case__update > dt .fee span {
    font-size: var(--fs-xxl);
  }

  .case__fee > dd {
    flex-direction: column;
    gap: 20px;
  }

  .case__update-list {
    gap: 4px;
  }

  .case__update-list li {
    gap: 4px;
  }

  .case__update-list li > *:not(.number) {
    font-size: min(2.82051282vw,.6875rem);
    padding: 4px 6px;
  }

  .case__update-list li .plan {
    width: 110px;
    padding: 4px 5px;
  }

  .case__update-list li dl {
    width: 170px;
  }

  .case__update-list li dl dd {
    font-size: min(2.82051282vw,.6875rem);
  }

  .case__update-list li dl dd span {
    font-size: min(4.102564102vw,var(--fs-base));
    margin: 0 2px 0 0;
  }

  .case__update-list li .number {
    font-size: min(2.82051282vw,.6875rem);
    flex-shrink: 0;
  }

  .case__update-list li .number span {
    font-size: min(4.102564102vw,var(--fs-base));
  }

  .flow__button {
    width: auto;
    margin: 40px 16px 0;
  }
}

.agency-step {
  padding: 180px min(5.88232941%, 80px) 120px;
}

.agency-step__head {
  margin: 0 0 100px;
}

.agency-step__head .headline span {
  font-size: 3.25rem;
}

.agency-step__column {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

.agency-step__list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  list-style-type: none;
  gap: 80px 0;
}

.agency-step__list li {
  width: 30.9090909090%;
  min-width: 320px;
  counter-increment: step_number;
}

.agency-step__image {
  box-shadow: var(--lp-shadow);
  line-height: 0;
  margin: 0 0 32px;
  position: relative;
}

.agency-step__image span {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 56px;
  font-family: 'Futura', sans-serif;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.66;
  text-align: center;
  color: #0071ff;
  position: absolute;
  top: -58px;
  left: -22px;
}

.agency-step__image span::after {
  content: counter(step_number);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: #0071ff;
  border-radius: 50%;
  color: #fff;
  font-size: var(--fs-xxxl);
}

.agency-step__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.agency-step__text p + p {
  margin: 8px 0 0;
}

.agency-step__title {
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

.agency-step__button {
  width: 320px;
  height: 52px;
  margin: 0 auto;
}

@media (max-width: 767px) {
  .agency-step {
    padding: 82px 0 60px;
  }

  .agency-step__head {
    margin: 0 0 24px;
  }

  .agency-step__head .headline span {
    font-size: var(--fs-xxl);
  }

  .agency-step__column {
    gap: 32px;
  }

  .agency-step__list {
    flex-direction: column;
    gap: 68px;
    margin: 0 20px;
  }

  .agency-step__list li {
    width: 100%;
    min-width: inherit;
    position: relative;
  }

  .agency-step__list li + li::before {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 20px solid transparent;
    border-left: 20px solid transparent;
    border-top: 20px solid #0071ff;
    border-bottom: 0;
    position: absolute;
    left: 0;
    right: 0;
    top: -44px;
    margin: 0 auto;
  }

  .agency-step__image {
    margin: 0 0 12px;
  }

  .agency-step__image span {
    gap: 2px;
    width: 32px;
    top: -38px;
    left: -16px;
  }

  .agency-step__image span::after {
    width: 32px;
    height: 32px;
    font-size: var(--fs-base);
  }

  .agency-step__text {
    gap: 8px;
  }

  .agency-step__title {
    font-size: var(--fs-l);
  }

  .agency-step__button {
    width: 100%;
    margin: 4px auto 0;
    font-size: var(--fs-base);
  }

}

.faq {
  background: var(--lp-bg-blue);
  padding: 100px min(5.88232941%, 80px) 120px;
}

.faq__headline {
  margin: 0 0 80px;
}

.faq__list {
  padding: 40px;
  background: #fff;
}

.faq__list dl + dl {
  border-top: solid 1px #f0f0f0;
}

.faq__list dl dd {
  display: none;
}

.faq__button {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
  font-size: var(--fs-base);
  font-weight: 700;
  line-height: 1.6;
  text-align: left;
  padding: 20px 64px 20px 20px;
  background: none;
  border: none;
  cursor: pointer;
  position: relative;
}

.faq__button[aria-expanded="true"] .faq__button-icon::before {
  transform: rotate(180deg);
}

.faq__button[aria-expanded="true"] .faq__button-icon::after {
  opacity: 0;
}

.faq__button::before {
  content: "Q";
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: var(--fs-base);
  font-weight: 700;
  width: 40px;
  height: 40px;
  background: #f95271;
  border-radius: 50%;
  color: #fff;
}

.faq__button-icon {
  width: 24px;
  height: 24px;
  position: absolute;
  right: 20px;
  top: 0;
  bottom: 0;
  margin: auto;
}

.faq__button-icon::before,
.faq__button-icon::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background-color: #333;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transition: 0.3s;
}

.faq__button-icon::after {
  transform: rotate(90deg);
}

.faq__text {
  display: flex;
  gap: 20px;
  padding: 24px 20px 20px;
  background: #fff4f6;
}

.faq__text .link {
  text-decoration: underline;
  transition: opacity 300ms ease;
}

.faq__text .link:hover {
  opacity: 0.7;
}

.faq__text::before {
  content: "A";
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: var(--fs-base);
  font-weight: 700;
  width: 40px;
  height: 40px;
  background: #fff;
  border: solid 1px #f95271;
  border-radius: 50%;
  color: #f95271;
  margin-top: -4px;
}

@media (max-width: 767px) {
  .faq {
    padding: 40px 0;
  }

  .faq__headline {
    margin: 0 0 32px;
  }

  .faq__list {
    padding: 0 16px;
  }

  .faq__button {
    gap: 16px;
    padding: 20px 48px 20px 16px;
  }

  .faq__button::before {
    width: 32px;
    height: 32px;
    line-height: 2;
  }

  .faq__button-icon {
    width: 16px;
    height: 16px;
    right: 12px;
  }

  .faq__button-icon::before,
  .faq__button-icon::after {
    height: 1px;
  }

  .faq__button-icon::after {
    transform: rotate(90deg);
  }

  .faq__text {
    padding: 18px 16px 16px;
  }

  .faq__text::before {
    width: 32px;
    height: 32px;
    margin-top: -2px;
    font-size: var(--fs-xs);
  }
}