@charset "UTF-8";

/* 全体
---------------------------------------------------------------- */
body{background-color: #000;}
.cl-white{color:#fff;}
.cl-blue{color:#3878D7;}
.cl-navy{color:#003782;}
.cl-red{color:#BD000D;}

/* 追加：LP共通の“ネイビー×ゴールド”寄せ（フォームだけで使用） */
:root{
  --lp-navy:#141617;
  --lp-navy-2:#414d5a;

  /* ゴールドは“主張しすぎない”方向に少し落ち着かせる */
  --lp-gold:#c9a24a;
  --lp-gold-2:#b88f35;

  /* フォームの背景用 */
  --lp-ivory:#f7f4ee;
  --lp-field:#fafafa;             /* 入力欄の薄グレー */
  --lp-field-2:#ffffff;           /* 予備（白） */

  --lp-line:rgba(20,22,23,.16);   /* 枠線ちょい薄く */
  --lp-line-gold:rgba(200,162,74,.55);
  --lp-focus:rgba(200,162,74,.16);
  --lp-shadow:0 10px 24px rgba(0,0,0,.18);
  --lp-softshadow:0 8px 22px rgba(0,0,0,.10);
}

main{
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
}
section .content-wrap{
    width: 75%;
    margin: 0 auto;
}
section .section-ttl{
    width: 50%;
    margin: 0 auto;
}
@media (max-width: 768px) {
    section .section-ttl{
        width: 60%;
    }
}
@media (max-width: 480px) {
    section .content-wrap{
        width: 95%;
    }
    section .section-ttl{
        width: 65%;
    }
}

.hero { position: relative; overflow: hidden; }
.hero .hero-bg {
  width: 100%;
  height: auto;
 display: block;
 object-fit: cover;
}
.hero picture{
    display: block;
    line-height: 0;
    font-size: 0;
}
.hero__content { position: absolute; inset: 0; }
.hero h2{
    width: 70%;
    margin: 0 auto;
    margin-top: 6%;
    margin-bottom: 4%;
    filter: drop-shadow(0px 4px 6px rgba(0,0,0,0.83));
}

.hero .achievements{
    margin-left: 15%;
    width: 40%;
    margin-bottom: 5%;
}
.hero .achievements img{
    filter: drop-shadow(0px 5px 7px rgba(0,0,0,0.83));
}
.hero .entry{
    margin-left: 20%;
    width: 30%;
    text-align: center;
    color: #fff;
    text-shadow: 0px 2px 7px rgba(0, 0, 0, 1);
    filter: drop-shadow(0px 4px 6px rgba(0,0,0,0.83));
}
.hero .entry p {
    font-size: 18px;
}
@supports (font-size: clamp(1px, 2px, 3px)) {
  .hero .entry p{
    font-size: clamp(
      10px,
      calc(10px + (18 - 10) * ((100vw - 375px) / (1024 - 375))),
      18px
    );
    line-height: 1.5;
  }
}
.hero-men{
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 38%;
}

@media (min-width: 768px){
  .hero{
      min-height: 420px;
    }
}
@media (max-width: 768px) {
    .hero h2{
        width: 80%;
        margin-bottom: 3%;
    }
    .hero .achievements{
        margin-left: 10%;
        width: 45%;
        margin-bottom: 3%;
    }
    .hero .entry{
        margin-left: 15%;
        width: 35%;
    }
}
@media (max-width: 480px) {
    .hero h2{
        width: 88%;
        margin-top: 5%;
    }
    .hero .achievements {
        margin-left: 6%;
        width: 46%;
        margin-bottom: 1.5%;
    }
    .hero .entry{
        width: 39%;
        margin-left: 9%;
    }
    .hero-men{
        bottom: 0;
        left: 52%;
        width: 38%;
    }
}

/* CTA
---------------------------------------------------------------- */
.CTA{
     background: linear-gradient(90deg, #414d5a, #141617);
    padding-top: 3%;
    padding-bottom: 4%;
}
.CTA .entry{
    width: 30%;
    text-align: center;
    margin: 0 auto;
    color: #fff;
    filter: drop-shadow(0px 4px 6px rgba(0,0,0,0.83));
}
.CTA .entry p { font-size: 18px;text-shadow:0px 4px 6px rgba(0,0,0,0.83); }
@supports (font-size: clamp(1px, 2px, 3px)) {
.CTA .entry p{
    font-size: clamp(
      10px,
      calc(10px + (18 - 10) * ((100vw - 375px) / (1024 - 375))),
      18px
    );
    line-height: 1.5;
  }
}
@media (max-width: 768px) {
    .CTA .entry{
        width: 40%;
    }
}

/* section
---------------------------------------------------------------- */

/* ------ section--01 ------ */
.section--01{
    background-image: url(../img/charm-bg.png);
    background-position: bottom;
    background-size: cover;
    background-repeat: no-repeat;
    padding-top: 10%;
    padding-bottom: 14%;
}
.charm .content-wrap{
    width: 60%;
}
.charm .box{
    margin-bottom: 2%;
}
@media (max-width: 480px) {
    .charm .content-wrap{
        width: 95%;
    }
    .section--01 .section-ttl{
        width: 52%;
    }
}

/* ------ section--02 ------ */
.section--02{
    background-image: url(../img/reason-bg.png);
    background-position: top;
    background-size: cover;
    background-repeat: no-repeat;
    padding-top: 10%;
    padding-bottom: 6%;
}
.reason .box-wrap{
    display: flex;
    flex-wrap: wrap;
    margin-top: 2%;
    margin-left: -0.5%;
    margin-bottom: 5%;
}
.reason .box{
    width: 50%;
}
.reason p{
    font-size: 26px;
    text-align: center;
}
@supports (font-size: clamp(1px, 2px, 3px)) {
.reason p{
    font-size: clamp(
      13px,
      calc(13px + (26 - 13) * ((100vw - 375px) / (1024 - 375))),
      26px
    );
    line-height: 1.5;
  }
}

/* ------ section--03 ------ */
.section--03{
    background-image: url(../img/flow-bg.png);
    background-position: top;
    background-size: cover;
    background-repeat: no-repeat;
    padding-top: 10%;
    padding-bottom: 10%;
}
.flow .step-wrap{
    width: 90%;
    margin: 0 auto;
    margin-top: 2%;
    margin-bottom: 5%;
    padding-right: 3%;
}
.flow p{
    font-size: 26px;
    text-align: center;
}
@supports (font-size: clamp(1px, 2px, 3px)) {
.flow p{
    font-size: clamp(
      13px,
      calc(13px + (26 - 13) * ((100vw - 375px) / (1024 - 375))),
      26px
    );
    line-height: 1.5;
  }
}
@media (max-width: 768px) {
    .flow .step-wrap{
        width: 100%;
    }
}

/* ------ section--04 ------ */
.section--04{
    background-image: url(../img/case-bg.png);
    background-position: top;
    background-size: cover;
    background-repeat: no-repeat;
    padding-top: 10%;
    padding-bottom: 6%;
}
.case h2{
    width: 30%;
}
.case .box-wrap{
    width: 80%;
    margin: 0 auto;
}
.case .box{
    margin: 4%;
}
.case p{
    font-size: 18px;
    text-align: center;
}
@supports (font-size: clamp(1px, 2px, 3px)) {
.case p{
    font-size: clamp(
      11px,
      calc(11px + (18 - 11) * ((100vw - 375px) / (1024 - 375))),
      18px
    );
    line-height: 1.5;
  }
}
@media (max-width: 768px) {
    .case h2{
        width: 40%;
    }
    .case .box-wrap{
        width: 90%;
    }
}
@media (max-width: 480px) {
 .case h2{
    width: 35%;
}
    .case .box-wrap{
        width: 100%;
    }
}

/* ------ section--05 ------ */
.section--05{
    background-image: url(../img/tsj-bg.png);
    background-position: bottom;
    background-size: cover;
    background-repeat: no-repeat;
    padding-top: 6%;
    padding-bottom: 7%;
    text-align: center;
}
.tsj .detail{
    margin-bottom: 6%;
}
.tsj .logo{
    margin-bottom: 8%;
}
.tsj .logo img{
    width: 90%;
}
.tsj .tel{
    display: flex;
}
.tsj .tel .text{
    width: 50%;
}
.tsj .tel .number{
    width: 50%;
}
.tsj p{
    font-size: 26px;
    text-align: right;
    padding-right: 3%;
}
@supports (font-size: clamp(1px, 2px, 3px)) {
.tsj p{
    font-size: clamp(
      11px,
      calc(11px + (26 - 11) * ((100vw - 375px) / (1024 - 375))),
      26px
    );
    line-height: 1.5;
  }
}
@media (max-width: 480px) {
    .tsj .tel .text{
        width: 45%;
    }
}

/* ------ section--10 ------ */
.section--10{
    padding:80px 0;
    background-image: url(../img/form-bg.png);
    background-position: bottom;
    background-size: cover;
    background-repeat: no-repeat;

    /* フォームセクションは“アイボリー”で馴染ませる */
    background-color: var(--lp-ivory);
}

/* フォームの白箱：影を少し柔らかくして「怖さ」を減らす */
.section--10 .b--contents{
    background: rgba(255,255,255,.94);
    border: 1px solid var(--lp-line);
    border-radius: 16px;
    box-shadow: var(--lp-softshadow);
    padding: clamp(14px, 2.5vw, 28px);
}

/* Step6 備考欄：スマホで広げる（inline style height:90px を潰す） */
@media (max-width: 599px){
  #contact_time_note{
    height: 180px !important;
    min-height: 180px !important;
    font-size: 16px; /* iOSの勝手なズーム回避にも効く */
  }
}
@media (max-width: 420px){
  #contact_time_note{
    height: 220px !important;
    min-height: 220px !important;
  }
}

/* ★SP：フォーム下部ボタンの並びを改善（次へ/送信を上、戻るを下） */
@media (max-width: 599px){
  #contactForm > .text--center.mt--lm{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  /* 主導線を上に */
  #contactForm > .text--center.mt--lm .next{ order: 1; }
  #contactForm > .text--center.mt--lm .submit{ order: 1; }
  /* 戻るは下へ */
  #contactForm > .text--center.mt--lm .previous{ order: 2; }

  /* ついでにタップしやすさ */
  #contactForm > .text--center.mt--lm input[type="button"],
  #contactForm > .text--center.mt--lm input[type="submit"]{
    width: min(92%, 360px);
  }
}

/* 見出し下線：ゴールド薄め */
.se10-ttl-area{
    padding-bottom:5px;
    border-bottom:1px solid var(--lp-line-gold);
}
.section--10 h2{
    font-size:2.4rem;
    color: var(--lp-navy);
}

/* ステップ数字：通常＝薄グレー、active＝ゴールド */
.step-numbers span{
    display:inline-block;
    padding:0 5px;
    font-size:2rem;
    background: rgba(20,22,23,.08);
    width:30px;
    text-align:center;
    color: var(--lp-navy);
    border-radius: 6px;
}
.step-numbers span.active{
    background: linear-gradient(180deg, var(--lp-gold) 0%, var(--lp-gold-2) 100%);
    color:#fff;
}

/* h3 */
.section--10 h3{
    font-size:1.8rem;
    color: var(--lp-navy);
}

/* 必須バッジ：ゴールド（小さめ） */
.section--10 h3 span{
    background: linear-gradient(180deg, var(--lp-gold) 0%, var(--lp-gold-2) 100%);
    padding:2px 6px;
    font-size:1.3rem;
    display:inline-block;
    margin-right:10px;
    vertical-align: bottom;
    border-radius: 4px;
}

/* ラジオ */
.radio_btn_common-03 input[type="radio"] {
    position: absolute;
    opacity: 0;
}

/* 非選択：白＋薄枠（面積のゴールドを減らす） */
.radio_btn_common-03 input[type="radio"] + .radio-label{
    white-space: nowrap;
    cursor: pointer;
    width:115px;
    height:115px;
    display:flex;
    align-items: center;
    justify-content: center;
    position:relative;
    background: #fff;
    border:1px solid rgba(20,22,23,.14);
    color: var(--lp-navy);
    border-radius:12px;
    font-weight:bold;
    transition: 0.22s ease-in-out;
    margin:0 1.83rem 1.83rem 0;
    box-shadow: 0 6px 16px rgba(0,0,0,.06);
}

/* hover：浮かせるだけ（派手にしない） */
.radio_btn_common-03 input[type="radio"] + .radio-label:hover{
    transform: translateY(-1px);
}

/* 選択時だけ：薄ゴールド面＋枠ゴールド */
.radio_btn_common-03 input[type="radio"]:checked + .radio-label{
    color: var(--lp-navy);
    background: rgba(200,162,74,.10);
    border:1px solid rgba(200,162,74,.75);
    box-shadow: 0 10px 22px rgba(200,162,74,.13);
}

.radio_btn_common-03 input[type="radio"] + .radio-label.label-last{
    border:1px solid rgba(20,22,23,.16);
    color: rgba(20,22,23,.55);
}

/* select / input：入力欄を薄グレーにして“触りやすさ”を上げる */
.section--10 select {
	display: block;
	color: #222;
    width:100%;
	line-height: 1.3;
	padding: 1em 40px 1em 1em;
	box-sizing: border-box;
	border: 1px solid rgba(20,22,23,.16);
    font-size:1.6rem;
    position:relative;
    appearance: none;
    cursor:pointer;
    background: var(--lp-field);
    z-index:1;
    border-radius:10px;
}
.section--10 .select-wrap{
    position:relative;
}
.section--10 .select-wrap:after{
    content:'▼';
    font-size:1rem;
    display:flex;
    background: linear-gradient(180deg, var(--lp-gold) 0%, var(--lp-gold-2) 100%);
    width:34px;
    color:#fff;
    position:absolute;
    top:0;
    right:0;
    height:100%;
    max-height:54px;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    z-index:0;
    border-radius: 0 10px 10px 0;
}

.section--10 .w100{ width:100%; }
.section--10 .w20{ width:20%; margin-right:20px; }
.section--10 .w10{ width:10%; margin-right:20px; }

_::-webkit-full-page-media, _:future, :root .section--10 .w20.select-wrap:after { top:2px; }
_::-webkit-full-page-media, _:future, :root .section--10 .w10.select-wrap:after { top:2px; }

.section--10 .w20 select, .section--10 .w10 select{ text-align:right; }
.section--10 select::-ms-expand { display: none; }
.section--10 select:focus {
  outline: none;
  border-color: rgba(200,162,74,.70);
  box-shadow: 0 0 0 3px var(--lp-focus);
}
.section--10 select option { font-weight:normal; }

.section--10 input[type="text"],
.section--10 input[type="email"],
.section--10 input[type="tel"]{
	width : 100%;
	padding: 1em;
	border : 1px solid rgba(20,22,23,.16);
    font-size: 1.6rem;
    border-radius:10px;
    background: var(--lp-field);
    box-sizing: border-box;
}
.section--10 input[type="text"]:focus,
.section--10 input[type="email"]:focus,
.section--10 input[type="tel"]:focus{
  outline: none;
  border-color: rgba(200,162,74,.70);
  box-shadow: 0 0 0 3px var(--lp-focus);
  background: var(--lp-field-2);
}

/* checkbox縦並び */
.checkbox-column {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* 既存中央寄せ */
#step1 .radio-inner,
#step2 .radio-inner,
#step3 .radio-inner {
  justify-content: center;
  text-align: center;
}

/* textarea（Step10だけじゃなく、Step6の備考欄も統一） */
.section--10 textarea,
#step10 textarea,
#contact_time_note{
  width: 100%;
  max-width: 100%;
  min-height: 120px;
  padding: 12px;
  font-size: 1.6rem;
  line-height: 1.6;
  border: 1px solid rgba(20,22,23,.16);
  border-radius: 10px;
  box-sizing: border-box;
  background: var(--lp-field);
  resize: vertical;
}
.section--10 textarea:focus,
#step10 textarea:focus,
#contact_time_note:focus{
  outline: none;
  border-color: rgba(200,162,74,.70);
  box-shadow: 0 0 0 3px var(--lp-focus);
  background: var(--lp-field-2);
}

/* Step6の注意文を“浮かない”トーンに */
.section--10 p{
  color: rgba(20,22,23,.85);
}
#contact-time-note-alert{
  border: 1px solid rgba(200,162,74,.45) !important;
  background: rgba(200,162,74,.08) !important;
  border-radius: 10px !important;
}

/* フォームボタン：次へ（中間）と送信（最終）で役割を分ける */
input[type="submit"], input[type="button"], input[type="reset"] {
  -webkit-appearance: none;
}

/* 次へ：控えめ（CVの圧を下げる） */
.section--10 .btn-orange.next{
    background: rgba(20,22,23,.10);
    color: var(--lp-navy);
    border: 1px solid rgba(20,22,23,.14);
    box-shadow: none;
}
.section--10 .btn-orange.next:hover{
    transform: translateY(-1px);
    filter: none;
}

/* 送信：強め（ここだけゴールド） */
.section--10 .btn-orange.submit{
    background: linear-gradient(180deg, var(--lp-gold) 0%, var(--lp-gold-2) 100%);
    font-size:2rem;
    color:#fff;
    padding:20px 40px;
    border:0;
    border-radius:10px;
    min-width:300px;
    cursor:pointer;
    display:inline-block;
    box-shadow: 0 12px 22px rgba(200,162,74,.20);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.section--10 .btn-orange.submit:hover{
    transform: translateY(-1px);
    box-shadow: 0 16px 28px rgba(200,162,74,.24);
    filter: brightness(1.02);
}

/* 戻る：そのまま（視認性だけ確保） */
.section--10 .btn-gray{
    background: rgba(20,22,23,.22);
    font-size:2rem;
    color:#fff;
    padding:20px 40px;
    border:0;
    border-radius:10px;
    min-width:140px;
    cursor:pointer;
    display:inline-block;
}

/* エラー：赤を“柔らかく”して不安を煽らない */
.section--10 .form-error{
  margin-top: 8px;
  font-size: 1.3rem;
  line-height: 1.5;
  color: #b85c5c;
  font-weight: 600;
}

/* privacy（小さすぎ/薄すぎを調整） */
#privacy-check-wrap{
  color: rgba(20,22,23,.80);
}
#privacy-check-wrap a{
  color: rgba(20,22,23,.90);
  text-decoration: underline;
}

/* チェックボックス周りの見た目を少し整える（任意） */
#privacy-check-wrap input[type="checkbox"]{
  transform: translateY(1px);
}

@media only screen and (max-width: 599px){
    .radio_btn_common-03 {
        margin: 0.8rem 0;
        display:block;
    }
    .radio_btn_common-03 input[type="radio"] + .radio-label{
        white-space: normal;
        margin:0 1rem 1rem 0;
    }
    .section--10 .w20{
        width:40%;
        margin-right:20px;
    }
    .section--10 .w10{
        width:30%;
        margin-right:20px;
    }
}

@media only screen and (max-width: 420px){
    .se10-ttl-area{
        display:block;
    }
    .step-numbers{
        text-align:center;
        margin:5px 0;
    }
    .section--10 h2{
        font-size:2.2rem;
    }
    .radio_btn_common-03 input[type="radio"] + .radio-label{
        width:95px;
        height:95px;
    }
}

/* 固定バナー
---------------------------------------------------------------- */
/* 固定バナー */
.floating-banner-sp{display:none;}
.floating-banner{
    position: fixed;
    background-color: #fff;
    bottom: 50px;
    right: 20px;
    padding: 1em;
    border-radius: 4px;
    box-shadow: 0 5px 11px -1px rgb(0 0 0 / 23%);
    z-index: 9999;
    transition: all 0.6s;
    max-width:350px;
}
.floating-banner .banner-txt1{font-size:20px;line-height:1.5;}
.floating-banner .banner-txt2{font-size:24px;line-height:1.3;}

#banner-pc.close{display: none;}

/* closeボタン */
.dli-close{
    position: absolute;
    display: inline-block;
    top: .5em;
    right: .7em;
    width: 1.5em;
    text-align: center;
}
.dli-close:hover{cursor: pointer;}
.dli-close span{
    display: inline-block;
    vertical-align: middle;
    color: #333;
    line-height: 1;
    width: 1em;
    height: 0.1em;
    background: currentColor;
    border-radius: 0.1em;
    transform: rotate(45deg);
    margin-left: auto;
}
.dli-close span::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: inherit;
    border-radius: inherit;
    transform: rotate(90deg);
}

@media only screen and (max-width: 1024px){
.floating-banner{display:none;}
.floating-banner-sp{
    position: fixed;
    display:inline-block;
    bottom: 10px;
    left: 0;
    right:0;
    padding: 1em;
    z-index: 9999;
    box-shadow: 0 5px 11px -1px rgb(0 0 0 / 23%);
    margin-left:auto;
    margin-right:auto;
    padding:20px 10px;
    background:#fff;
    width:75%;
}
.floating-banner-sp .banner-txt1{font-size:20px;line-height:1.5;}
.floating-banner-sp .banner-txt2{font-size:24px;line-height:1.3;}
.floating-banner-sp br{display:none;}
.floating-banner-sp a:hover{opacity: 1;}
.floating-banner-sp a img{width: 90%;}
#banner-sp.close{display: none;}
.dli-close{
    position: absolute;
    display: inline-block;
    top: 10px;
    right: -5px;
    width: 12%;
    min-width: 30px;
    text-align: center;
}
}

@media only screen and (max-width: 599px){
 .floating-banner-sp{width:100%;}
 .floating-banner-sp br{display:none;}
 .floating-banner-sp .banner-txt1{font-size:18px;line-height:1.5;}
.floating-banner-sp .banner-txt2{font-size:20px;line-height:1.3;}
}

@media only screen and (max-width: 420px){
    .floating-banner-sp br{display:block;}
    .floating-banner-sp .banner-txt1{font-size:18px;line-height:1.5;}
   .floating-banner-sp .banner-txt2{font-size:20px;line-height:1.3;}
   }

/* title
---------------------------------------------------------------- */
.ttl--01{ border-bottom: 1px solid #333;}
.ttl--02{ background: #DDD; padding: 5px; font-size: 18px;}

.ttl--underline{
    display:inline-block;
    background:linear-gradient(transparent 60%, #FFFA00 60%);
}

/* btn
---------------------------------------------------------------- */
.btn{ margin-top: 40px; text-align: center;}

/* btn-03-c */
.btn-03-c a{
    padding: 20px 100px;
    display: inline-block;
    font-size:28px;
    text-decoration: none;
    position:relative;
    transition: all 0.3s;
    background: rgb(255,155,50);
    background: linear-gradient(90deg, rgba(255,155,50,1) 0%, rgba(255,105,100,1) 100%);
    color:#FFFFFF;
    box-shadow: 0px 0px 15px -5px #777777;
    text-align:center;
    transition: 0.3s ease-out;
    border-radius:50px;
    }
    .btn-03-c a:before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 1px;
        margin: auto;
        right: 30px;
        width: 10%;
        height: 1px;
        background: #fff;
        transition: all .3s;
    }
    .btn-03-c a:after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 9px;
        margin: auto;
        right: 30px;
        width: 11px;
        height: 1px;
        background: #fff;
        transform: rotate(40deg);
        transition: all .3s;
    }
    .btn-03-c a:hover{
    opacity:.8;
    }
    .btn-03-c a:hover:before, .btn-03-c a:hover:after {
     right: 10px;
    }
    @media only screen and (max-width: 599px){
    .btn-03-c a{
    font-size:16px;padding: 20px 80px;
    }
    }

/* btn-03-c-small */
.btn-03-c-small a{
    padding: 10px 40px;
    display: inline-block;
    font-size:20px;
    text-decoration: none;
    position:relative;
    transition: all 0.3s;
    background: rgb(255,155,50);
    background: linear-gradient(90deg, rgba(255,155,50,1) 0%, rgba(255,105,100,1) 100%);
    color:#FFFFFF;
    box-shadow: 0px 0px 15px -5px #777777;
    text-align:center;
    transition: 0.3s ease-out;
    border-radius:50px;
    margin-right:5px;
}
.btn-03-c-small a:hover{
    opacity:1;
}
@media only screen and (max-width: 599px){
    .btn-03-c-small a{
        padding: 10px 30px;
        font-size:16px;
    }
}
@media only screen and (max-width: 420px){
    .btn-03-c-small a{
        padding: 10px 40px;
        font-size:16px;
    }
}

/* btn-03-c-small2 */
.btn-03-c-small2 a{
    padding: 10px 40px;
    display: inline-block;
    font-size:20px;
    text-decoration: none;
    position:relative;
    transition: all 0.3s;
    background: #fff;
    color:#FF5500;
    box-shadow: 0px 0px 15px -5px #777777;
    text-align:center;
    transition: 0.3s ease-out;
    border-radius:50px;
    margin-left:5px;
}
.btn-03-c-small2 a:hover{
    opacity:1;
}
@media only screen and (max-width: 599px){
    .btn-03-c-small2 a{
        padding: 10px 30px;
        font-size:16px;
    }
}
@media only screen and (max-width: 420px){
    .btn-03-c-small2 a{
        padding: 10px 40px;
        font-size:16px;
    }
}

/* 既存ボタン（他所で使ってる可能性があるので触らない） */
.btn-orange{
    background:#FF8700;
    font-size:2rem;
    color:#fff;
    padding:20px 40px;
    border:0;
    border-radius:6px;
    min-width:300px;
    cursor:pointer;
    display:inline-block;
    border-radius:5px;
}
.btn-gray{
    background:#CDCDCD;
    font-size:2rem;
    color:#fff;
    padding:20px 40px;
    border:0;
    border-radius:6px;
    min-width:140px;
    cursor:pointer;
    display:inline-block;
    border-radius:5px;
}

@media only screen and (max-width: 420px){
    .btn-orange{
        padding:15px 20px;
        min-width:200px;
    }
    .btn-gray{
        padding:15px 20px;
        min-width:100px;
    }
}

/* single
---------------------------------------------------------------- */
.single-img{ margin-top: 20px;}
.single-txt{ margin-top: 20px;}
.single-navi{ margin-top: 30px;}
.single-navi-btn {
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
.single-navi-btn:first-child {

border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
width: 33.3333%;
text-align: center;
}
.single-navi-btn {

border-right: 1px solid #ccc;
width: 33.3333%;
text-align: center;
}
.single-navi-btn a{
display: block;
padding: 10px;
}

/* スライドアイテム
---------------------------------------------------------------- */
.sp-slides-container {
position: relative;
width: 100%;
}

/* Form Step
---------------------------------------------------------------- */
.tab{
  display: none;
}
.tab.current{
  display: block;
}
#banner-sp{
  visibility: hidden;
  opacity: 0;
  transition: all .2s
}
#banner-sp.active{
  visibility:visible;
  opacity: 1;
}
#line .pc{
  display: none;
}
@media only screen and (min-width: 600px){
  #line .sp{
    display: none;
  }
  #line .pc{
    display: block;
  }
}

/* thanks page
---------------------------------------------------------------- */
#pagethanks{
    background-color: #fff;
}
#pagethanks section{
    padding-top: 10%;
    padding-bottom: 10%;
}

#pagethanks h2 p{
    font-size: 45px;
    text-align: center;
    margin-bottom: 8%;
}
@supports (font-size: clamp(1px, 2px, 3px)) {
#pagethanks h2 p{
    font-size: clamp(
      26px,
      calc(26px + (45 - 26) * ((100vw - 375px) / (1024 - 375))),
      45px
    );
    line-height: 1.5;
  }
}
#pagethanks .text p{
    font-size: 21px;
    text-align: center;
}
@supports (font-size: clamp(1px, 2px, 3px)) {
#pagethanks .text p{
    font-size: clamp(
      11px,
      calc(11px + (21 - 11) * ((100vw - 375px) / (1024 - 375))),
      21px
    );
    line-height: 1.5;
  }
}
#pagethanks .text{
    margin-bottom: 5%;
}
/* =========================
   PCでのエラー表示の崩れ対策
   ========================= */

/* validateのエラーは必ず1行ぶん確保して下に出す */
.js-validate-error{
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin-top: 10px !important;
  text-align: center;          /* ラジオ/チェックのとき “横” に出さない */
  white-space: normal;
}

/* ラジオのボタン群（.radio-inner）が横並びflexなので、
   エラーを「最終行」として下に落とす */
.radio_btn_common-03 .radio-inner{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
}

/* エラーが割り込んだ時に右側へ伸びないようにする */
.radio_btn_common-03 .radio-inner .js-validate-error{
  flex: 0 0 100%;
  order: 999;                 /* 最後に回す */
}

/* ついで：フォーム全体のエラーボックスも見た目を馴染ませる */
#stepErrorBox{
  box-sizing: border-box;
  width: 100%;
}

/* PCで見た時に「右側に空間ができる」違和感がある場合の予防 */
#step1 .form-wrap,
#step2 .form-wrap,
#step3 .form-wrap{
  width: 100%;
}
