@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c&display=swap");
/* ---------------------------------------------------------
  今回はスマホ基準のみ
--------------------------------------------------------- */
/* ---------------------------------------------------------
  fluid-root（SPのみで使用）
--------------------------------------------------------- */
/* ---------------------------------------------------------
  実行：スマホだけのfluid設定
--------------------------------------------------------- */
:root {
  font-size: clamp(8px, 10 * 100vw / 375, 10.6666666667px);
}

.pc {
  display: block;
}

.sp {
  display: none;
}

@media (max-width: 1024px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
@media (max-width: 734px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
html {
  scroll-behavior: smooth;
  font-size: 10px;
  background: #fff;
}
html body {
  font-family: "source-han-sans-japanese", sans-serif, "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
  color: black;
}
html body .red {
  color: #b4272d;
}
html body .under__line {
  background: linear-gradient(180deg, #fff 0%, #fff 30%, #fffae1 30%, #fffae1 100%);
}
html body section {
  max-width: 400px;
  width: 100%;
  margin: 0 auto;
}
html body .contents {
  max-width: 33.5rem;
  width: 100%;
  margin: 0 auto;
}
html body img {
  width: 100%;
  height: auto;
}
html body p {
  font-size: 1.2rem;
}
html body a {
  color: black;
  text-decoration: none;
}
html body li {
  list-style: none;
}
html body footer {
  width: 100%;
}

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
/* =========================================
   全消しリセットCSS（フォームUIは残す）
   ========================================= */
/* すべての要素の余白・枠線・フォントサイズをリセット */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5要素のデフォルト表示をブロックに */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

/* ボディ初期化 */
body {
  line-height: 1;
}

/* リストマーカー削除 */
ol, ul {
  list-style: none;
}

/* 引用符削除 */
blockquote, q {
  quotes: none;
}

blockquote::before, blockquote::after,
q::before, q::after {
  content: "";
  content: none;
}

/* テーブル初期化 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* ===== フォームUIは基本残すが最小限調整 ===== */
/* フォント継承（見た目の統一感を出す） */
input, select, textarea, button {
  font: inherit;
  color: inherit;
}

/* iOS Safariのズーム防止（必要な場合） */
input, textarea, select {
  font-size: 16px;
}

/* ボタンはポインター */
button {
  cursor: pointer;
}

/* Webkit系での余計なスタイル防止（外観は保持） */
input[type=search] {
  -webkit-appearance: textfield;
}

/* プレースホルダーの色だけ少し整える */
::-moz-placeholder {
  color: #999;
}
::placeholder {
  color: #999;
}

body {
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
  overflow-x: hidden;
  color: black;
  margin: 0 auto;
  font-family: "Noto Sans JP", sans-serif, "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
  color: black;
}

.header {
  justify-content: center;
  height: 54.5px;
  display: flex;
  align-items: center;
  text-align: center;
  color: #205084;
}

.footer {
  padding-top: 3rem;
  padding-bottom: 18rem;
  max-width: 400px;
  margin: 0 auto;
  height: 5.5rem;
  background-color: #205084;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
}
.footer__contents a {
  display: block;
  color: #fff;
  font-size: 1.4rem;
  padding-top: 2rem;
}
.footer__contents a:last-of-type {
  margin-bottom: 3rem;
}
.footer .copy {
  color: #fff;
  font-size: 1.1rem;
  display: block;
}

.button {
  display: inline-block;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  color: #fff;
  background-color: black;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  text-align: center;
  transition: background-color 0.3s;
}
.button--primary {
  background-color: black;
}
.button--primary:hover {
  background-color: black;
}
.button--secondary {
  background-color: black;
}
.button--secondary:hover {
  background-color: rgb(25.5, 25.5, 25.5);
}
.button--disabled {
  background-color: #666666;
  color: black;
  cursor: not-allowed;
}

.card {
  background: white;
  border: 1px solid black;
  border-radius: 0.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  padding: 1rem;
}
.card__header {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
}
.card__body {
  font-size: 1rem;
  color: black;
  line-height: 1.5;
}
.card__footer {
  margin-top: 1rem;
  text-align: right;
}

.fz10 {
  font-size: 1rem;
}

.fz11 {
  font-size: 1.1rem;
}

.fz12 {
  font-size: 1.2rem;
}

.fz13 {
  font-size: 1.3rem;
}

.fz14 {
  font-size: 1.4rem;
}

.fz145 {
  font-size: 1.459rem;
}

.fz16 {
  font-size: 1.6rem;
}

.fz17 {
  font-size: 1.7rem;
}

.fz166 {
  font-size: 1.66rem;
}

.fz227 {
  font-size: 2.27rem;
}

.fz19 {
  font-size: 1.88rem;
}

.fz25 {
  font-size: 2.5rem;
}

.fz289 {
  font-size: 2.89rem;
}

.fz30 {
  font-size: 3rem;
}

.cta-btn a {
  position: fixed;
  position: fixed;
  bottom: 0;
  right: 0;
  left: 0;
  z-index: 10;
  width: 37.5rem;
  margin: 0 auto;
}
.cta-btn__timer--box {
  position: absolute;
  right: 0;
  left: 0;
  margin: 0 auto;
  width: 22rem;
  height: 2.57rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.1rem;
  z-index: 10;
  top: -1.8rem;
}
.cta-btn__timer--box span {
  padding-bottom: 0.5rem;
  letter-spacing: 0.1rem;
}
.cta-btn__timer--box::after {
  position: absolute;
  content: "";
  background: url(../../../uploads/timer__bg.webp) no-repeat;
  background-size: cover;
  width: 22rem;
  height: 2.57rem;
  right: 0;
  left: 0;
  z-index: -1;
}

.cta__wrap {
  background: linear-gradient(180deg, #fff 0%, #fff 15%, #b4272d 15%, #b4272d 100%);
  padding: 1rem 0;
  position: relative;
}
.cta__wrap::after, .cta__wrap::before {
  position: absolute;
  content: "";
}
.cta__wrap::after {
  background: url(../../../uploads/point.webp) no-repeat;
  width: 4.36rem;
  height: 5.14em;
  background-size: contain;
  bottom: -1rem;
  right: 0.5rem;
}
.cta__wrap::before {
  background: url(../../../uploads/cta_wmon.webp) no-repeat;
  width: 9.93rem;
  height: 12rem;
  background-size: contain;
  bottom: -0.9rem;
  left: 1rem;
  z-index: 1;
}
.cta__txt {
  color: #fff;
  margin: 1.7rem 0rem 0rem 9.1rem;
}
.cta__txt p {
  margin-bottom: 0.9rem;
}
.cta__txt a {
  color: #fff;
  padding-left: 2.8rem;
  letter-spacing: 1.2px;
  display: block;
  margin-bottom: 1.2rem;
}
.cta__tel img {
  width: 2.7rem;
}
.cta__free {
  display: flex;
  gap: 0.5rem;
}
.cta__free--item {
  display: block;
  color: #000;
  width: 11.35rem;
  height: 2.12em;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  line-height: 0;
}
.cta__caution {
  width: 30rem;
  margin: 1rem auto;
}
.cta__caution p {
  line-height: 1.5rem;
}

.cost {
  position: relative;
}
.cost__ttl {
  top: 2.5rem;
  line-height: 2.5rem;
  right: 0;
  left: 0;
  position: absolute;
  color: #205084;
  text-align: center;
}

.load {
  text-align: center;
  padding: 3rem 0 4rem 0;
  position: relative;
}
.load::after {
  content: "";
  position: absolute;
  background: url(../../../uploads/syuchu.webp) no-repeat;
  background-size: contain;
  width: 37.6rem;
  height: 36.1rem;
  top: -3.5rem;
  right: 0;
  left: 0;
  z-index: -1;
}
.load__ttl {
  font-size: 2.16rem;
  line-height: 3.7rem;
  font-weight: 600;
}
.load__ttl--sub {
  font-size: 2.45rem;
}
.load__img {
  width: 13.57rem;
  margin: 1.9rem auto 3.4rem 3rem;
}
.load__txt {
  font-size: 1.7rem;
  line-height: 3rem;
}
.load__txt .red {
  font-weight: bold;
}
.load__txt--sub {
  line-height: 1.8rem;
  margin: 1.4rem auto 3.8rem auto;
}
.load__card {
  border: solid #cccccc 1px;
  width: 100%;
  position: relative;
}
.load__card::before {
  position: absolute;
  content: "";
  background: url(../../../uploads/if.webp) no-repeat;
  background-size: contain;
  width: 3.84rem;
  height: 3.9rem;
  top: -2.4rem;
  left: 1.7rem;
}
.load__card--txt {
  width: 100%;
  height: 5.63rem;
  background-color: #205084;
}
.load__card--txt p {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  line-height: 2rem;
  height: 100%;
}
.load__card--img {
  height: 5.63rem;
}
.load__card--img img {
  margin: 1rem auto 0 auto;
  width: 27.34rem;
}

.service {
  padding: 3rem 0;
  text-align: center;
  background-color: #205084;
  position: relative;
  /* 擬似要素を配置するため必須 */
}
.service ::after {
  content: "";
  position: absolute;
  bottom: -1.6rem;
  z-index: -1;
  /* 下にくっつける（高さ分だけ下げる） */
  left: 50%;
  transform: translateX(-50%);
  /* 真ん中に配置 */
  width: 0;
  height: 0;
  border-left: 2.25726rem solid transparent;
  /* 45.1452 ÷ 2 */
  border-right: 2.25726rem solid transparent;
  border-top: 1.76931rem solid #205084;
  /* 下向きの三角形 */
}
.service__ttl {
  color: #fff;
  line-height: 2.5rem;
  margin-bottom: 2.2rem;
}
.service__flex {
  display: flex;
  align-items: center;
  flex-flow: wrap;
  justify-content: space-between;
  gap: 0.9rem 1rem;
}
.service__flex img {
  width: 16.1rem;
}

.area {
  padding: 4rem 0 3.5rem 0;
  text-align: center;
}
.area__ttl {
  font-weight: bold;
  color: #205084;
  margin-bottom: 2rem;
}
.area__ttl--sub {
  font-size: 3.17rem;
}
.area__img {
  width: 30.2rem;
}
.area__time {
  font-size: 2.62rem;
  color: #205084;
  line-height: 3.5rem;
  margin-bottom: 1rem;
}
.area__time--sub {
  font-size: 2.75rem;
  font-weight: bold;
}
.area__flex {
  display: flex;
  justify-content: center;
  align-items: end;
  gap: 1rem;
  padding: 0 0 1rem 1rem;
  background: linear-gradient(180deg, #fff 0%, #fff 20%, #fffae1 20%, #fffae1 100%);
}
.area__flex--txt {
  text-align: center;
}
.area__flex--txt p {
  width: 17.9rem;
  line-height: 2.4rem;
}
.area__flex--img img {
  width: 10.5rem;
  margin-left: 1rem;
}

.flow {
  padding: 3.3rem 0 1.2rem 0;
  background-color: #f0f3f7;
  text-align: center;
}
.flow__ttl {
  font-size: 2.1rem;
  color: #205084;
}
.flow__step {
  margin-top: 4.2rem;
  position: relative;
}
.flow__txtarea {
  width: 24.25rem;
  margin: 0 0 0 auto;
  box-sizing: border-box;
  padding: 1.3rem 0.8rem 1rem 2.3rem;
  background-color: #fff;
  margin-bottom: 3.3rem;
}
.flow__step--contents {
  position: absolute;
  left: 0;
  text-align: left;
  transform: translateY(-2.2rem);
}
.flow__step--contents img {
  width: 10.3rem;
}
.flow__step--txt {
  color: #205084;
  font-size: 1.23rem;
  margin-bottom: 1rem;
}
.flow__num {
  font-size: 1.58rem;
}
.flow__subttl {
  margin-bottom: 1.2rem;
  color: #205084;
}
.flow__txt {
  line-height: 1.9rem;
  text-align: left;
}

.support {
  padding: 4rem 0 4.4rem 0;
  text-align: center;
}
.support__ttl {
  font-size: 2.1rem;
  color: #205084;
  margin-bottom: 3.22rem;
}
.support__card {
  background-color: #205084;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.2rem;
  height: 8.54rem;
  position: relative;
  border: 1px solid #cccccc;
}
.support__card::after {
  position: absolute;
  content: "";
}
.support__card:nth-of-type(1)::after {
  background: url(../../../uploads/support1.webp) no-repeat;
  background-size: contain;
  left: -1rem;
  top: -1.8rem;
  width: 4.63rem;
  height: 4.63rem;
}
.support__card:nth-of-type(1) .support__subttl {
  line-height: 3rem;
}
.support__card:nth-of-type(2)::after {
  background: url(../../../uploads/support2.webp) no-repeat;
  background-size: contain;
  left: -1rem;
  top: -1.8rem;
  width: 4.63rem;
  height: 4.63rem;
}
.support__card:nth-of-type(2) .support__subttl {
  line-height: 2.5rem;
}
.support__card:nth-of-type(3)::after {
  background: url(../../../uploads/support3.webp) no-repeat;
  background-size: contain;
  left: -1rem;
  top: -1.8rem;
  width: 4.63rem;
  height: 4.63rem;
}
.support__card:nth-of-type(3) .support__subttl {
  line-height: 3rem;
}
.support__subttl {
  color: #fff;
}
.support__gold {
  display: block;
  font-weight: bold;
  background: linear-gradient(90deg, #d2b408 4%, #f4df96 11%, #bea046 48%, #f4df96 83%, #d2b408 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.voice {
  text-align: center;
  background: url(../../../uploads/voice__bg.webp) no-repeat;
  background-size: cover;
  width: 100%;
  padding: 2rem 0 4rem 0;
  position: relative;
}
.voice__ttl {
  font-size: 2.1rem;
  color: #205084;
}
.voice__box {
  margin-top: 3rem;
}
.voice__box:first-of-type {
  margin-top: 4.3rem;
}
.voice__box:nth-of-type(odd) .voice__txt {
  margin: 0 0 0 auto;
}
.voice__box:nth-of-type(even) .voice__txt {
  margin: auto 0 0 0;
}
.voice__txt {
  text-align: left;
  width: 28.74rem;
  box-shadow: 1px 1px 0 #205084;
  box-sizing: border-box;
  padding: 1.9rem 3.43rem 1.6rem 3.43rem;
  background-color: #fff;
}
.voice__txt h3 {
  margin-bottom: 1.9rem;
  color: #205084;
}
.voice__txt p {
  line-height: 2.5rem;
}
.voice__img {
  position: absolute;
  transform: translateY(-2rem);
}
.voice__img img {
  width: 8.97rem;
}
.voice__img.left {
  left: 0;
}
.voice__img.right {
  right: 0;
}

.faq {
  padding: 5.5rem 0;
  text-align: center;
}
.faq__ttl {
  font-size: 2.1rem;
  color: #205084;
  margin-bottom: 3.6rem;
}
.faq__box {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 400;
  font-style: normal;
  margin-bottom: 1.5rem;
}
.faq__box--Q {
  padding-left: 1.8rem;
  background-color: #205084;
  height: 4rem;
  color: #fff;
  display: flex;
  align-items: center;
  letter-spacing: -1px;
  font-size: 1.45rem;
}
.faq__box--Q .Q {
  font-size: 1.7rem;
  padding-right: 1rem;
}
.faq__box--A {
  font-size: 1.3rem;
  box-sizing: border-box;
  padding: 1.2rem;
  text-align: left;
  background: #f0f3f7;
  line-height: 2rem;
}