@charset "UTF-8";
/* =========================================================
   青春号ふわふわドーム LP  ―  スタイルシート
   Design : Zeplin (seishungo_fuwafuwa_dome_lp_pc / _sp)
   Font   : Noto Sans JP
   Layout : コンテナ最大幅 1160px

   ── 目次 ────────────────────────────────
   01. 変数（カラー・サイズ）          :root
   02. ベース / リセット
   03. レイアウト & ユーティリティ      .container / .br-pc / .br-sp
   04. ボタン                          .btn
   05. 見出し                          .sec-head
   06. セクション（PC基準）
       - Hero      ヒーロー
       - Merit     導入メリットカード
       - Reasons   選ばれる理由
       - CtaBand   CTA帯
       - Scene     利用シーン
       - Spec      仕様・サイズ
       - Simulator 概算見積り
       - Flow      ご利用の流れ
       - Safety    安全への取り組み
       - FAQ       よくある質問
       - FinalCta  最終CTA
       - Contact   お問い合わせフォーム
       - Footer    フッター
       - SpCta     固定CTAバー（モバイル）
   07. レスポンシブ
       @media 1024 / 860 / 767 / 600 / 360
   ─────────────────────────────────────────
   ※ 編集時のメモ
     - 色・余白の共通値は 01.変数 をまず確認
     - スマホ調整は 07.レスポンシブ にまとめてあります
========================================================= */


/* =========================================================
   01. 変数
========================================================= */
:root{
  /* color */
  --blue:#015eae;
  --blue-dark:#014a89;
  --blue-deep:#013a6e;
  --hero1:#1577e6;
  --hero2:#4f9be9;
  --lightblue:#ecf7fd;
  --red:#e60012;
  --red-dark:#c10010;
  --gold:#ffd23c;
  --yellow:#f8c800;
  --ink:#15263a;
  --text:#46525e;
  --line:#e3e8ee;
  --white:#fff;
  /* layout */
  --container:1160px;
  --radius:14px;
  --shadow:0 6px 24px rgba(8,40,80,.08);
}


/* =========================================================
   02. ベース / リセット
========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--text);
  background:var(--white);
  line-height:1.8;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,p{margin:0;}


/* =========================================================
   03. レイアウト & ユーティリティ
========================================================= */
.container{width:100%;max-width:var(--container);margin:0 auto;}
.container--narrow{max-width:920px;}
.gold{color:var(--gold);}

/* 改行出し分け（PC / スマホ）※切替は 07.レスポンシブ @media767 */
.br-sp{display:none;}
.br-pc{display:inline;}


/* =========================================================
   04. ボタン
========================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  font-weight:700;font-size:18px;line-height:1.2;
  padding:21px 24px;border-radius:999px;border:none;cursor:pointer;
  position:relative;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
  text-align:center;
}
.btn__arrow{font-weight:700;transition:transform .2s ease;position: absolute;right: 30px;}
.btn:hover{transform:translateY(-2px);}
.btn:hover .btn__arrow{transform:translateX(4px);}
.btn--red{background:var(--red);color:#fff;}
.btn--red:hover{background:var(--red-dark);}
.btn--white{background:#fff;color:var(--blue-deep);box-shadow:0 8px 18px rgba(0,0,0,.12);}
.btn--white:hover{background:#f3f8ff;}
.btn--lg {font-size: 18px;padding: 21px 40px;max-width: 440px;width: 100%;position: relative;}


/* =========================================================
   05. 見出し（セクション共通）
========================================================= */
.sec-head{margin-bottom:46px;}
.sec-label{
  display:block;color:var(--blue);font-weight:700;font-size:18px;
  line-height:1;margin-bottom:10px;
}
.sec-bar{display:block;width:90px;height:6px;
  background:linear-gradient(to right,var(--red) 0 33.3%,var(--blue) 33.3% 66.6%,var(--yellow) 66.6% 100%);}
.sec-title{color:var(--blue-deep);font-weight:bold;font-size:36px;line-height:1.3;margin: 0 0 12px;}


/* =========================================================
   06. セクション（PC基準）
========================================================= */

/* ---- Hero ヒーロー ---- */
.hero{position:relative;overflow:hidden;color:#fff;
  height:1080px;display:flex;}
.hero__bg{position:absolute;inset:0;background:url("../images/top_image_pc.jpg") center/cover no-repeat;}
.hero__inner{position:relative;z-index:2;padding-top:90px;padding-bottom:90px;}
.hero__title{font-weight:700;font-size:84px;line-height:1.12;letter-spacing:.01em;
  text-shadow:0 3px 18px rgba(0,30,70,.35);margin-bottom:30px;}
.hero__sub{font-weight:700;font-size:37px;line-height:1.45;margin-bottom:22px;
  text-shadow:0 2px 12px rgba(0,30,70,.3);}
.hero__lead {font-size: 18px;font-weight: 500;line-height: 1.67;margin-bottom: 50px;text-shadow: 0 1px 8px rgba(0, 30, 70, .4);}
.hero__cta{display:flex;gap:22px;flex-wrap:wrap;}
.hero__cta .btn {font-size: 18px;max-width: 266px;width: 100%;position: relative;justify-content: left;padding: 21px 26px;}
.hero__cta .btn__arrow {font-weight: 700;transition: transform .2s ease;position: absolute;right: 20px;}

/* ---- Merit 導入メリットカード ---- */
.merit {position: relative;top: -70px;padding: 0;margin: 0 0 -50px;}
.merit__cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.mcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:25px 24px;box-shadow:0 0 8.5px 1.5px rgba(44, 48, 52, 0.15);max-width: 270px; max-height: 270px;}
.mcard__icon{width:222px;height:99px;object-fit:contain;margin-bottom:10px;}
.mcard__title{color:var(--ink);font-weight:700;font-size:22px;margin-bottom:6px;text-align: center;}
.mcard__text{font-size:15px;line-height:1.5;}
.merit__tagline{text-align:center;margin-top:45px;font-size:22px;line-height:1.7;}
.merit__tagline .kw{font-weight: bold;font-size: 37px;}
.merit__tagline .kw--red{color:var(--red);}
.merit__tagline .kw--blue{color:var(--blue);}
.merit__tagline .kw--yellow{color:var(--yellow);}
.merit__tagline .plus{color: #000;font-weight: 900;font-size: 27px;margin: 0 8px;}
.merit__tagline strong{color:var(--blue-deep);font-weight:bold;font-size:37px;display:inline-block;}

/* ---- Reasons 選ばれる理由 ---- */
.reasons{padding:70px 0 115px;}
.reasons__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px 40px;justify-content:center;}
.rcard{}
.rcard__img{overflow:hidden;aspect-ratio:1/1;box-shadow:var(--shadow);margin-bottom:20px;}
.rcard__img img{width:100%;height:100%;object-fit:cover;}
.rcard__title {color: var(--blue-deep);font-weight: bold;font-size: 24px;line-height: 1.42;margin-bottom: 13px;text-align: center;}
.rcard__text{font-size:16px;line-height:1.5;text-align: justify;}
.reasons__grid .rcard:nth-child(4){grid-column:auto;}
/* PC(>=861px)：6カラムグリッドで 3 + 2(中央寄せ) のレイアウト */
@media(min-width:861px){
  .reasons__grid{grid-template-columns:repeat(6,1fr);}
  .reasons__grid .rcard{grid-column:span 2;}
  .reasons__grid .rcard:nth-child(4){grid-column:2 / span 2;}
  .reasons__grid .rcard:nth-child(5){grid-column:4 / span 2;}
}

/* ---- CtaBand CTA帯 ---- */
.cta-band{background:var(--blue);color:#fff;padding:81px 0;text-align:center;}
.cta-band__note{font-size:20px;margin-bottom:6px;}
.cta-band__title {font-weight: bold;font-size: 40px;line-height: 1.35;margin-bottom: 27px;}

/* ---- Scene 利用シーン ---- */
.scene{padding:80px 0 90px;}
.scene__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px 40px;}
.scard__img{overflow:hidden;aspect-ratio:1/1;box-shadow:var(--shadow);margin-bottom:14px;}
.scard__img img{width:100%;height:100%;object-fit:cover;}
.scard__title{color:var(--blue-deep);font-weight:bold;font-size:24px;margin-bottom:10px;text-align: center;}
.scard__text{font-size:16px;line-height:1.5;}

/* ---- Spec 仕様・サイズ ---- */
.spec{padding:20px 0 120px;}
.spec__desc{font-size:16px;line-height:1.5;margin-bottom:34px;}
.spec__main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:center;margin-bottom:120px;}
.spec__table {width: 100%;max-width: 460px;border-collapse: collapse;font-size: 20px;}
.spec__table th,.spec__table td{padding:12px 20px;text-align:left;border-top: 2px solid var(--line);border-bottom:2px solid var(--line);vertical-align:middle;}
.spec__table th{color:var(--blue-dark);font-weight:700;width:38%;white-space:nowrap;border-color: var(--blue);}
.spec__table td{color:var(--ink);font-weight:500;border-color: #b5b5b5;}
.spec__figure{display:flex;justify-content:center;align-items:center;}
.spec__figure img {max-height: 445px;width: auto;margin-top: -40px;}
.spec__gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.spec__gallery-item{overflow:hidden;aspect-ratio:1/1;box-shadow:var(--shadow);}
.spec__gallery-item img{width:100%;height:100%;object-fit:cover;}

/* ---- Simulator 概算見積りシミュレーター ---- */
.sim{padding:120px 0 40px;}
.sim__all {background: var(--lightblue);border-radius: 24px;padding: 54px 56px;}
.sim__card{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:48px;align-items:center;}
.sec-head--sim{margin-bottom:22px;}
.sim__desc{font-size:16px;line-height:1.5;margin-bottom:30px;}
.sim__fields{display:flex;gap:26px;flex-wrap:wrap;}
.sim__field{background:#fff;border-radius:12px;padding:18px 20px;border:1px solid #dbe6f2;}
.sim__label{display:block;font-size:18px;font-weight:700;color:var(--blue-deep);margin-bottom:12px;}
.sim__opts{display:flex;gap:10px;flex-wrap:wrap;}
.sim__opt {font-family: inherit;font-weight: 500;font-size: 18px;color: var(--blue-deep);
    background: #fff;border: 1.5px solid var(--blue-deep);border-radius: 5px;padding: 7px 16px;
    cursor:pointer;transition: all .15s ease;min-width: 58px;}
.sim__opt:hover{background:#eef5fc;}
.sim__opt.is-active{background:var(--blue);color:#fff;border-color:var(--blue);}
.sim__result{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 0 8.5px 1.5px rgba(44, 48, 52, 0.15);}
.sim__result-head{background:var(--blue);color:#fff;text-align:center;font-weight:700;font-size:24px;padding:14px;}
.sim__result-body{padding:21px 50px 46px;text-align:center;}
.sim__price{color:var(--blue);font-weight:bold;margin-bottom:22px;display:flex;align-items:baseline;justify-content:center;}
.sim__price #sim-amount{font-size:56px;letter-spacing:.01em;}
.sim__tilde{font-size:30px;margin-left:2px;}
.sim__btn{max-width: 300px;width: 100%;font-size: 18px;padding: 21px 36px;justify-content: left;}
.sim__notes{margin-top:28px;}
.sim__notes p {font-size: 16px;line-height: 1.5;color: #000;margin-bottom: 6px;text-indent: -1em;padding-left: 1em;margin: 0;}
.sim-yen{font-size: 40px;}

/* ---- Flow ご利用の流れ ---- */
.flow{padding:78px 0 103px;}
.flow__steps {display: grid;grid-template-columns: repeat(5, 190px);gap: 52px;}
.fstep{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 16px 26px;text-align:center;box-shadow:0 0 8.5px 1.5px rgba(44, 48, 52, 0.15);}
.fstep:not(:last-child)::after{content:"";position:absolute;top:50%;right:-30px;width:15px;height:15px;
  border-top:4px solid #005ead;border-right:4px solid #005ead;transform:translateY(-50%) rotate(45deg);z-index:2;}
.fstep__num{position:absolute;top:-11px;left:25px;transform:translateX(-50%);
  width:34px;height:34px;border-radius:50%;background:var(--blue);color:#fff;
  font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;}
.fstep__icon{width:92px;height:76px;object-fit:contain;margin:6px auto 14px;}
.fstep__title{color:var(--ink);font-weight:bold;font-size:18px;margin-bottom:10px;}
.fstep__text{font-size:16px;line-height:1.5;text-align: justify;}

/* ---- Safety 安全への取り組み ---- */
.safety{padding:10px 0 90px;}
.safety__panel{background:var(--blue);border-radius:24px;padding:60px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:40px;color:#fff;}
.sitem{text-align:center;}
.sitem__box {background-color: var(--white);border-radius: 16px;padding:28px 20px 19px;margin: 0 0 21px;}
.sitem__icon{width:156px;height:135px;object-fit:contain;margin:0 auto 12px;}
.sitem__title {font-weight: bold;font-size: 20px;color: var(--blue-deep);}
.sitem__text {font-size: 16px;line-height: 1.5;text-align: justify;}

/* ---- FAQ よくあるご質問 ---- */
.faq{padding:20px 0 96px;}
.faq__list{border-top:1px solid #b5b5b6;}
.faq__item{border-bottom:1px solid #b5b5b6;}
.faq__q{width:100%;display:flex;align-items:center;gap:16px;background:none;border:none;cursor:pointer;
  font-family:inherit;text-align:left;padding:24px 4px;color:var(--ink);font-weight:500;font-size:20px;}
.faq__badge{flex:none;width:34px;height:34px;border-radius:50%;background:var(--blue-deep);color:#fff;
  font-weight:bold;font-size:18px;display:flex;align-items:center;justify-content:center;}
.faq__badge--a {background: var(--white);border: 1px solid var(--blue-deep);color: var(--blue-deep);}
.faq__q-text{flex:1;}
.faq__toggle{flex:none;position:relative;width:18px;height:18px;}
.faq__toggle::before,.faq__toggle::after{content:"";position:absolute;background:#015eae;border-radius:1px;}
.faq__toggle::before{top:8px;left:0;width:18px;height:1px;}
.faq__toggle::after{top:0;left:8px;width:1px;height:18px;transition:transform .25s ease,opacity .2s ease;}
.faq__item.is-open .faq__toggle::after{transform:rotate(90deg);opacity:0;}
.faq__a{display:flex;gap:16px;align-items:flex-start;padding:0 4px;
  max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;}
.faq__item.is-open .faq__a{max-height:400px;padding:0 4px 26px;}
.faq__a p{flex:1;font-size:20px;line-height:1.5;padding-top:3px;}

/* ---- FinalCta 最終CTA ---- */
.final-cta{padding:30px 0 80px;}
.final-cta__panel{background:var(--blue);border-radius:24px;color:#fff;padding:60px;
  display:grid;grid-template-columns:minmax(0,1fr) 500px;gap:48px;}
.final-cta__title{font-weight:bold;font-size:40px;line-height:1.35;margin-bottom:20px;}
.final-cta__lead {font-size: 20px;font-weight: 500;line-height: 1.5;margin-bottom: 45px;}
.final-cta__logo {max-width: 385px;width: 100%;height: auto;margin-bottom: 20px;}
.final-cta__addr{font-size:16px;line-height:1.5;}
.telcard{background:#fff;border-radius:16px;padding:30px 32px;text-align:center;color:var(--ink);}
.telcard__label{font-weight:bold;font-size:26px;color:var(--blue);margin-bottom:10px;}
.telcard__num{display:flex;align-items:center;justify-content:center;gap:12px;
  font-weight:bold;font-size:56px;color:var(--blue);letter-spacing:.01em;line-height:1.1;margin-bottom:8px;}
.telcard__num img{width:34px;height:34px;}
.telcard__hours{font-size:18px;font-weight: 500;color:var(--text);margin-bottom:22px;}
.telcard__btn{width:100%;}

/* ---- Contact お問い合わせフォーム ---- */
.contact{padding:20px 0 90px;}
.contact__lead{font-size:16px;line-height:1.5;margin-bottom:36px;}
.cform__alert{display:none;background:#fdecee;border:1px solid #f1b3ba;color:var(--red-dark);
  border-radius:10px;padding:15px 18px;font-size:14px;font-weight:700;line-height:1.7;margin-bottom:22px;}
.cform__alert.is-show{display:block;}
.cform{background:var(--lightblue);border-radius:16px;padding:48px 52px;}
.cform__row{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:center;margin-bottom:22px;}
.cform__label{font-weight:bold;font-size:16px;color:var(--ink);}
.req{color:var(--red);margin-left:3px;}
.cform input[type=text],.cform input[type=email],.cform input[type=tel],.cform textarea{
  width:100%;font-family:inherit;font-size:15px;color:var(--ink);
  background:#fff;border:1px solid #d3e0ec;padding:13px 16px;}
.cform textarea{resize:vertical;line-height:1.7;}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(1,94,174,.12);}
.cform__radios{display:flex;gap:26px;flex-wrap:wrap;}
.cform__radios label{display:flex;align-items:center;gap:7px;font-size:15px;cursor:pointer;}
.cform__row--top{align-items:start;}
.cform__agree{text-align:center;margin:30px 0 10px;}
.cform__agree>label{display:inline-flex;align-items:center;gap:8px;font-size:15px;cursor:pointer;}
.cform__policy{font-size:13px;margin-top:8px;}
.cform__policy a{color:var(--blue);text-decoration:underline;}
.cform__submit{text-align:center;margin-top:26px;}
.cform .err{border-color:var(--red)!important;}

/* ---- Footer フッター ---- */
.footer{background:var(--blue);color:#fff;padding:7px 0;}
.footer__inner{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:14px;}
.footer__copy{opacity:.92;}
.footer__nav{display:flex;align-items:center;gap:14px;opacity:.92;}
.footer__nav a:hover{text-decoration:underline;}
.footer__sep{opacity:.5;}

/* ---- SpCta 固定CTAバー（基本状態：PCでは非表示） ---- */
/* 表示スタイルは 07.レスポンシブ @media860 に記載 */
.sp-cta{display:none;}


/* =========================================================
   07. レスポンシブ
   ブレークポイント（max-width / デスクトップ優先）
     1024 … 小型PC・タブレット横
      860 … タブレット〜スマホ（主要なモバイル調整）
      767 … 改行出し分け切替
      600 … スマホ（SPデザイン準拠：1カラム）
      360 … 小型スマホ
========================================================= */

/* ---------- @media 1024px ---------- */
@media(max-width:1024px){
  .sec-title{font-size:30px;}
  .hero__title{font-size:60px;}
  .hero__sub{font-size:30px;}
  .merit__cards{gap:16px;}
  .mcard{padding:24px 18px;}
  .flow__steps{grid-template-columns:repeat(5,1fr);gap:12px;}
  .fstep{padding:30px 10px 22px;}
  .sim__card{grid-template-columns:1fr;}
  .final-cta__panel{grid-template-columns:1fr;}
}

/* ---------- @media 860px（主要なモバイル調整） ---------- */
@media(max-width:860px){
  body{font-size:15px;}
  .container{padding:0 24px;}
  .sec-title{font-size:36px;}
  .sec-head{margin-bottom:34px;}

  /* hero */
  .hero{height:auto;min-height:100vh;min-height:100svh;min-height:100dvh;}
  .hero__bg{background-image:url("../images/top_image_sp.jpg");background-position:center;background-size:cover;}
  .hero__inner{padding-top:64px;padding-bottom:64px;}
  .hero__title{font-size:47px;margin-bottom:22px;}
  .hero__sub{font-size:23px;margin-bottom:18px;}
  .hero__lead{font-size:15px;margin-bottom:30px;line-height: 1.6;}
  .hero__cta{display: none;}
  .hero__cta .btn{flex:1;min-width:0;padding:15px 8px;font-size:13.5px;gap:6px;line-height:1.35;}

  /* merit */
  .merit{padding:50px 0 44px;}
  .merit__cards{grid-template-columns:repeat(2,1fr);gap:14px;}
  .merit__tagline{font-size:17px;margin-top:38px;}
  .merit__tagline .kw{font-size:19px;display:inline-block;line-height: 1.3;}
  .merit__tagline .plus{font-size:17px;margin:0 4px;}
  .merit__tagline strong{font-size:21px;}

  /* reasons */
  .reasons{padding:46px 0 56px;}
  .reasons__grid,
  .reasons__grid.reasons__grid{grid-template-columns:repeat(2,1fr)!important;gap:26px 22px;}
  .reasons__grid .rcard{grid-column:auto!important;}
  .rcard__title{font-size:16px;}

  /* cta band */
  .cta-band{padding:46px 0;}
  .cta-band__title{font-size:36px;}
  .cta-band__note {font-size: 16px;}
  .btn--lg{font-size:18px;padding:18px 38px;}

  /* scene */
  .scene{padding:52px 0 56px;}
  .scene__grid{grid-template-columns:repeat(2,1fr);gap:26px 20px;}
  .scard__title{font-size:16px;}

  /* spec */
  .spec{padding:10px 0 56px;}
  .spec__main{grid-template-columns:1fr;gap:30px;}
  .spec__figure img{max-height:240px;margin: 0;}
  .spec__gallery{grid-template-columns:repeat(2,1fr);gap:16px;}

  /* simulator */
  .sim{padding:0;}
  .sim .container{padding: 0;}
  .sim__all{border-radius: 0;padding: 45px 24px 40px;}
  .sim__card{padding:0;gap: 27px;}
  .sim__fields{flex-direction:column;gap:16px;}
  .sim__result-body {padding: 2px 26px 33px;}
  .sim__price {margin-bottom: 11px;}

  /* flow */
  .flow{padding:50px 0 56px;}
  .flow__steps{grid-template-columns:1fr;gap:50px;}
  .fstep{position:relative;display:grid;grid-template-columns:50px 1fr;grid-template-rows:auto auto;
    text-align:left;padding:22px 20px;column-gap:16px;align-items:center;}
  .fstep__num{position:absolute;top:-14px;left:9px;transform:none;width:32px;height:32px;font-size:15px;}
  .fstep__icon{display:block;grid-column:1;grid-row:1 / span 2;width:48px;height:48px;margin:0;align-self:center;}
  .fstep__title{grid-column:2;grid-row:1;margin-bottom:4px;}
  .fstep__text{grid-column:2;grid-row:2;}
  .fstep:not(:last-child)::after{top:auto;bottom:-31px;left:50%;right:auto;
    transform:translateX(-50%) rotate(135deg);}

  /* safety */
  .safety{padding:6px 0 56px;}
  .safety__panel{grid-template-columns:repeat(2,1fr);gap:28px 20px;padding:36px 24px;}
  .sitem__icon {width: 61px;height: 61px;margin: 0 auto 7px;}
  .sitem__title {font-size: 16px;line-height: 1.3;}
  .sitem__box {padding: 10px;}

  /* faq */
  .faq{padding:10px 0 60px;}
  .faq__q{font-size:20px;padding:18px 2px;gap:12px;}
  .faq__a p{font-size:20px;}

  /* final cta */
  .final-cta {padding: 0 0 33px;}
  .final-cta .container{padding: 0;}
  .final-cta__panel{padding:38px 26px;border-radius: 0;}
  .final-cta__title{font-size:26px;}
  .final-cta__lead{font-size: 18px;}
  .telcard{padding:26px 22px;}
  .telcard__num{font-size:33px;margin-bottom: 13px;}
  .telcard__label {font-size: 20px;}
  .telcard__hours {font-size: 16px;margin-bottom: 16px;}

  /* contact */
  .contact{padding:10px 0 40px;}
  .cform{padding:30px 22px;}
  .cform__row{grid-template-columns:1fr;gap:8px;align-items:start;margin-bottom:18px;}
  .cform__radios{gap:14px 20px;}

  /* footer */
  .footer__inner{flex-direction:column-reverse;gap:10px;text-align:center;}

  /* 固定CTAバー（モバイル表示） */
  .sp-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:8px;
    padding:8px 10px;background:rgba(255,255,255,.96);
    box-shadow:0 -3px 14px rgba(0,30,70,.16);
    transform:translateY(110%);transition:transform .3s ease;
    padding-bottom:calc(8px + env(safe-area-inset-bottom));}
  .sp-cta.is-visible{transform:translateY(0);}
  .sp-cta__btn{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:13.5px;line-height:1.3;text-align:center;
    border-radius:9px;padding:13px 6px;}
  .sp-cta__btn--red{background:var(--red);color:#fff;box-shadow:0 4px 10px rgba(230,0,18,.25);}
  .sp-cta__btn--white{background:#fff;color:var(--blue);border:1.5px solid var(--blue);}
}

/* ---------- @media 767px（改行の出し分け） ---------- */
@media screen and (max-width: 767px){
  .br-sp{display:inline;}
  .br-pc{display:none;}
}

/* ---------- @media 600px（スマホ：1カラム） ---------- */
@media(max-width:600px){
  .hero__title{font-size:46px;}

  /* メリット：1カラム・横型（アイコン左） */
  .merit__cards{grid-template-columns:1fr;gap:14px;}
  .mcard{display:grid;grid-template-columns:70px 1fr;grid-template-rows:auto auto;
    column-gap:16px;align-items:center;padding:18px 20px;max-width: fit-content;}
  .mcard__icon{width:70px;height:70px;margin:0;grid-column:1;grid-row:1 / span 2;align-self:center;}
  .mcard__title{grid-column:2;grid-row:1;margin-bottom:4px;font-size:18px;text-align: left;}
  .mcard__text{grid-column:2;grid-row:2;}

  /* 理由・利用シーン：1カラム */
  .reasons__grid,.reasons__grid.reasons__grid,
  .scene__grid{grid-template-columns:1fr!important;gap:30px;}
  .rcard__img,.scard__img{max-width:440px;margin-left:auto;margin-right:auto;}
  .rcard__title,.scard__title{font-size:22px;}

  /* 仕様ギャラリー：2カラム維持 / 安全：2×2維持 */
  .spec__gallery{grid-template-columns:repeat(2,1fr);}
}

/* ---------- @media 360px（小型スマホ） ---------- */
@media(max-width:360px){
  .hero__title{font-size:30px;}
  .hero__cta .btn{font-size:12.5px;}
}
