/* ===== GLOBAL (必要最小限) ===== */
html, body { margin:0; padding:0; }
body {
  max-width: 750px; /* 厳密指定のみpx */
  width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
*, *::before, *::after { box-sizing: inherit; }
img { max-width: 100%; height: auto; display: block; }







/* 
----------------------------------------------
----------------------------------------------
　MV　
----------------------------------------------
----------------------------------------------
 */

/* ===== MV（メインビジュアル）だけ ===== */
.mv-wrap { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; width:100%; position:relative; }
.mv-img { display:block; width:100%; height:auto; }

.container.mv-subsidy { width:80%; max-width:750px; margin-bottom: clamp(0.2rem, 0.3vw, 1rem); }

.mv-subsidy-card {
  display:flex; flex-direction:column;
  height: 590px;
  overflow:hidden; background:#fff;
  border: 2px solid #002671; border-radius: 1rem;
}

/* タイトル帯 */
#mv-subsidy-title {
  flex: 0 0 clamp(3.5rem, 8.5vw, 5.125rem);
  display:flex; align-items:center; gap: clamp(0.5rem, 2vw, 1rem);
  background:#002671; color:#fff;
	display: flex;
	justify-content: center;
	align-items: center;
}

#mv-subsidy-title h2 {
  font-size: 30px; /* ≒35px基準 */
  line-height:1.2; margin:0;
}

#mv-subsidy-title img{
  width:82px;
  height:auto;
}

/* 本文（枠内だけでループ） */
.mv-subsidy-body { flex:1 1 auto; min-height:0; overflow:hidden; padding:0; }
.subsidy-viewport { height:100%; min-height:100%; position:relative; overflow:hidden; }
.subsidy-track { position:absolute; inset:0 auto auto 0; width:100%; will-change: transform; }

/* リスト（左テキスト／バッジ／金額） */
.subsidy-list { list-style:none; margin:0; padding:0; }
.subsidy-row {
  display:grid; grid-template-columns: 1fr auto auto;
  align-items:center;
  column-gap: clamp(0.5rem, 2.2vw, 1.25rem);
  padding-inline: clamp(0.75rem, 2.2vw, 1.5rem);
  min-height: clamp(3rem, 6vw, 4.5rem);
  border-top: 1px solid #ced6e3;
}
.subsidy-row:first-child { border-top: none; }
.subsidy-list + .subsidy-list .subsidy-row:first-child { border-top: none !important; } /* 継ぎ目消し */

.badge { background:#002671; color:#fff; border-radius:999em; padding:.35em .9em; font-weight:700; }
.subsidy-amount { color:#002671; font-weight:800; white-space:nowrap; }
.subsidy-amount strong{
  font-size: 35px;
}
/* === MV  === */
.section--mv .mv-wrap {
  background-image: url("../images/mv_pc_taiyoukou.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  aspect-ratio: 1501 / 2369;
  min-height: clamp(520px, 62vw, 980px);
}


/* ==== RING LOOP (FORCED, CSS‑ONLY) ==== */
.subsidy-viewport{ overflow:hidden; }
.subsidy-track{ display:flex; flex-direction:column; }

/* reset any previous animation on lists */
.subsidy-track > ul.subsidy-list{ animation:none !important; will-change:transform; list-style:none; margin:0; padding:0; }

/* class-based（本体） */
ul.subsidy-list.loopY1{ animation: loopY 24s linear infinite !important; animation-delay: -12s !important; }
ul.subsidy-list.loopY2{ animation: loopY2 24s linear infinite !important; }

/* fallback（クラスが外れても同じ動きにする保険） */
.subsidy-track > ul.subsidy-list:nth-child(1){ animation: loopY 24s linear infinite !important; animation-delay: -12s !important; }
.subsidy-track > ul.subsidy-list:nth-child(2){ animation: loopY2 24s linear infinite !important; }


@keyframes loopY  { 0%{ transform: translateY(100%);} 100%{ transform: translateY(-100%);} }
@keyframes loopY2 { 0%{ transform: translateY(0);}    100%{ transform: translateY(-200%);} }

/* seam kill */
.subsidy-list + .subsidy-list .subsidy-row:first-child{ border-top:none !important; }


/* 補助金下コメ印 */
.mv-caption{
  display: flex;
	justify-content: flex-end;
	align-items: flex-start;
  width:80%;

    /* フチどり */
  -webkit-text-stroke: 0.5vw rgb(255, 255, 255);
  paint-order: stroke;
  /* フチどり */
}

.mv-caption p{
  font-size:0.6vw;
  font-weight: 700 !important;
  line-height:0.85vw;
}







/* 
----------------------------------------------
----------------------------------------------
選ばれるポイント
----------------------------------------------
----------------------------------------------
 */


/* 見出し（このセクション用にスコープ） */
.points-band .section-title{
  display: flex;
  align-items: baseline;
  gap: 0.6em;
  font-size: clamp(1.2rem, 5.6vw, 1.6rem);
  line-height: 1.25;
  font-weight: 700;
  margin: 0 0 clamp(16px, 4.4vw, 24px) 0;
}
.points-band .section-title__en{
  font-size: 0.9em;
  letter-spacing: 0.08em;
  color: #002671;               /* 指定のブルー系 */
  border: 1px solid currentColor;
  border-radius: 9999px;        /* 流動角丸（pill） */
  padding: 0.15em 0.6em;
}

/* 画像帯（フレックス＋cover） */
.points-band .imageband-list{
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 2.4vw, 16px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.points-band .imageband-item{ overflow: hidden; }

.points-band .imageband-item.h-clamp{
  height: clamp(220px, 60vw, 420px);
}

/* 画像は幅100％・高さ100％でトリム */
.points-band .imageband-item > picture,
.points-band .imageband-item > img{
  display: block;
  width: 100%;
  height: 100%;
}
.points-band .imageband-item > picture > img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
/* ================================================ */






/* 
----------------------------------------------
----------------------------------------------
事例、お客様の声
----------------------------------------------
----------------------------------------------
 */

/* 見出し（このセクション用にスコープ） */
.voice-band .section-title{
  display: flex;
  align-items: baseline;
  gap: 0.6em;
  font-size: clamp(1.2rem, 5.6vw, 1.6rem);
  line-height: 1.25;
  font-weight: 700;
  margin: 0 0 clamp(16px, 4.4vw, 24px) 0;
}
.voice-band .section-title__en{
  font-size: 0.9em;
  letter-spacing: 0.08em;
  color: #002671;             
  border: 1px solid currentColor;
  border-radius: 9999px;
  padding: 0.15em 0.6em;
}

/* 画像帯（幅100%＋高さコントロール） */
.voice-band .voice-visual{
  display: block;
  overflow: hidden;
  height: clamp(220px, 60vw, 420px); 
}
.voice-band .voice-visual img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}





/* 
----------------------------------------------
----------------------------------------------
電気代の変化
----------------------------------------------
----------------------------------------------
 */

.electric-band .electric-visual{
  display: block;
  overflow: visible;   /* クロップ無効 */
  height: auto;        /* 固定高さを持たせない */
}

.electric-band .electric-visual img{
  display: block;
  width: 100%;
  height: auto;        /* 画像の縦横比を保持 */
  object-fit: contain; /* トリミングを行わない */
  object-position: center;
}







/* 
----------------------------------------------
----------------------------------------------
よくあるご質問セクション
----------------------------------------------
----------------------------------------------
 */

.faq-band{ background-color:#fef185; }


.faq-band .faq-title{
  display:flex; justify-content:center; align-items:center;
  padding-block:clamp(8px,3vw,16px);
  padding-top:2vw; padding-bottom:2vw;
}
.faq-band .faq-title img{
  width:29.2937vw; /* 1920px基準で562.439px */
  height:auto; display:block;
}

/* コンテンツ幅 */
.faq-band .faq-wrapper{
  width:90%;
  margin-inline:auto;
  padding-bottom:clamp(12px,4vw,24px);
}

/* ============ 単体Q&Aカード ============ */
/* カード（白フチ＋角丸＋影＋パディング） */
.qa-single{
   width:80%;
   margin:0 auto; 
   margin-bottom:3vw;
  }


.qa{
  display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start;
  width:100%;
  background:#fff;
  border-radius:2vw;
  padding:3%;
  box-shadow:0 2.4vw 6vw rgba(0,0,0,.12);
}

/* Q（画像ボタン） */
.qa__q{
  display:block; width:100%; margin:0; padding:0;
  background:none; border:0; cursor:pointer;
}
.qa__q img{ display:block; width:100%; height:auto; }

/* A（画像。Qの左面に合わせて右側は等幅に） */
.qa__a{
   width:95%;
  margin:1.5vw 0.52vw;
   }

.qa__a img{
  display:block;
  height:auto;
  margin-left:-0vw;
}

/* アクセシビリティ */
.qa__q:focus{ outline:none; }
.qa__q:focus-visible{ outline:3px solid rgba(0,38,113,.25); outline-offset:.6vw; }

@media (max-width:1200px){

  .qa__a{
   width:95%;
  margin:2vw 0.6vw;
   }

.qa__a img{
  margin-left:0.2vw;
}
}

@media (max-width:750px){
  .faq-band .faq-title img{ width:68vw; }
  .faq-band .faq-wrapper{ width:92%; }

  .qa-single{ width:90%; }
  .qa{
    border-radius:5vw;
    padding:3.5%;
    box-shadow:0 3vw 8vw rgba(0,0,0,.14);
    --qa-left-indent: 7%; /* 端末幅が狭いときは少しだけ増やす */
  }
  .qa__a{ margin:3.2vw 1.2vw; }
}




/* 
----------------------------------------------
----------------------------------------------
コンタクト
----------------------------------------------
----------------------------------------------
 */

.contact-band{
  width: 100%;
  background: #ecf3fe;
  padding-bottom: 1vw; 
}

/* タイトル画像：上下 2vw 余白・アスペクト維持 */
.contact-band .contact-title{
  padding: 2vw 0;
}
.contact-band .contact-title img{
  display: block;
  width: 100%;
  height: auto;
}

/* コンテンツ幅（フォーム 80%） */
.contact-band .container{
  display: flex;
  flex-direction: column;
  align-items: center;
  height:80%;
}
.contact-band .contact-form{
  width: 80%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.6vw, 28px);
  /* Noto Sans JP Medium / 26px（1920基準） */
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 1.3542vw, 26px); /* 26px @1920 */
  line-height: 1.6;
}

/* フォームリスト */
.contact-band .form-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 2.2vw, 20px);
}
.contact-band .form-item{
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 1.2vw, 10px);
}

/* ラベル＋必須バッジ */
.contact-band .form-item > label{
  display: inline-flex;
  align-items: center;
  gap: .6em;
  font-weight: 700;
}
.contact-band .req-badge{
  display: inline-block;
  padding: .1em .6em;
  border-radius: 9999px;
  background: #ff0000;
  color: #fff;
  font-weight: 700;
  font-size: .65em; /* 親文字 26px 基準で相対 */
  line-height: 1.2;
}

/* 説明ノート（携帯電話の下） */
.contact-band .note{
  margin: 0;
  font-weight: 500;
  color: #004bb1;
  font-size: clamp(12px, 0.78125vw, 15px); /* 15px @1920 */
}

/* 入力要素 */
.contact-band input[type="text"],
.contact-band input[type="email"],
.contact-band input[type="tel"],
.contact-band select{
  width: 100%;
  border: 1px solid #cfd6e4;
  border-radius: clamp(8px, 1.2vw, 12px);
  background: #fff;
  padding: clamp(10px, 1.4vw, 14px) clamp(12px, 1.6vw, 16px);
  font: inherit;
  line-height: 1.5;
}
.contact-band input::placeholder,
.contact-band textarea::placeholder{ color: #9aa4b2; }

/* アシストテキスト（郵便） */
.contact-band .assist{
  display: block;
  margin-top: .4em;
  font-size: .8em;
  color: #004bb1;
}

/* 住宅の種類 */
.contact-band .house-type{
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.8vw, 16px);
}
.contact-band .house-type__title{
  margin: 0;
  color: #004bb1;
  font-weight: 700;
  padding-bottom: .4em;
  border-bottom: 2px solid #004bb1; /* アンダーライン 2px */
  font-size: 1em; /* 親 26px 相当 */
}
.contact-band .house-type__group{
  display: flex;
  flex-direction: column;
  gap: .8em;
}
.contact-band .radio{
  display: inline-flex;
  align-items: center;
  gap: .6em;
  cursor: pointer;
}
.contact-band .radio input{ transform: translateY(0.05em); }

/* マンション選択時のエラー表示（CSSのみで制御） */
.contact-band .house-type__error{
  margin: 0;
  color: #ff0000;
  font-weight: 500;
  font-size: clamp(14px, 1.0417vw, 20px); /* 20px @1920 */
  display: none;
}
.contact-band .house-type__group:has(#house-mansion:checked) + .house-type__error{
  display: block;
}

/* 送信ボタンのラッパー（CTAは既存スタイル流用） */
.contact-band .form-actions{
  display: flex;
  justify-content: center;
}



/* フォーム本体：Noto Sans / Medium / 26px(1920基準) */
.lpform{
  width: 80%;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.6vw, 28px);
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 1.3542vw, 26px);
  line-height: 1.6;
}

/* リスト */
.lpform__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 2.2vw, 20px);
}
.lpform__item{
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 1.2vw, 10px);
}

/* ラベル＋必須バッジ */
.lpform__label{
  display: inline-flex;
  align-items: center;
  gap: .6em;
  font-weight: 700;
}
.lpform__req{
  display: inline-block;
  padding: .1em .6em;
  border-radius: 9999px;
  background: #ff0000;
  color: #fff;
  font-weight: 700;
  font-size: .65em;
  line-height: 1.2;
}

/* 注意書き（携帯電話の下） */
.lpform__note{
  margin: 0;
  font-weight: 500;
  color: #004bb1;
  font-size: clamp(12px, 0.78125vw, 15px);
}

/* 入力要素 */
.lpform input[type="text"],
.lpform input[type="email"],
.lpform input[type="tel"],
.lpform select{
  width: 100%;
  border: 1px solid #cfd6e4;
  border-radius: clamp(8px, 1.2vw, 12px);
  background: #fff;
  padding: clamp(10px, 1.4vw, 14px) clamp(12px, 1.6vw, 16px);
  font: inherit;
  line-height: 1.5;
  color: #111;
}
.lpform ::placeholder{ color: #9aa4b2; }



/* セレクトの初期カラー（郵便番号のプレースホルダー色に合わせる） */
.lpform select.is-empty{ color: #9aa4b2; }
.lpform select:not(.is-empty){ color: #111; }

/* 郵便の補助テキスト */
.lpform__assist{
  display: block;
  margin-top: .4em;
  font-size: .8em;
  color: #004bb1;
}

/* 住宅の種類 */
.lpform__ht{
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.8vw, 16px);
}
.lpform__htTitle{
  margin: 0;
  color: #004bb1;
  font-weight: 700;
  padding-bottom: .4em;
  border-bottom: 2px solid #004bb1;
  font-size: 1em;
}
.lpform__htGroup{
  display: flex;
  flex-direction: column;
  gap: .8em;
}
.lpform__radio{
  display: inline-flex;
  align-items: center;
  gap: .6em;
  cursor: pointer;
}
.lpform__radio input{ transform: translateY(0.05em); }

/* マンション選択時のエラー表示（CSSのみ） */
.lpform__htGroup:has(#house-mansion:checked) + .lpform__htError{
  display: block;
}
.lpform__htError{
  margin: 0;
  color: #ff0000;
  font-weight: 500;
  font-size: clamp(14px, 1.0417vw, 20px);
  display: none;
}

/* エラーメッセージ（汎用） */
.lpform__error{
  color: #b00020;
  font-size: .9em;
}

/* 送信ボタン */
.lpform__actions{
  display: flex;
  justify-content: center;
  padding-block-end: 2vw;
}

/* ② ボタン直下の帯（margin折り畳み対策もここで完結） */
#contact .lpform__actions{
  padding-bottom: 1vw;   /* ボタンすぐ下の青い帯 */
}
#contact .lpform__actions::after{
  content:""; display:block; height:1px; /* margin折り畳み防止の壁だけ作る */
}








/* 
----------------------------------------------
----------------------------------------------
フッター
----------------------------------------------
----------------------------------------------
 */

.site-footer{
  width: 100%;
  padding: clamp(16px, 3vw, 32px) 0;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 3vw, 24px);
}

/* 上段 */
.footertopcontainer{
  width: 80%;
  height: 80%;
  margin: 0 auto;
}
.footertopcontainer p{
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 400;
  font-size: 1.458vw;
  line-height: 1.7;
  color: #111;
  margin: 0;
}

/* 下段（左右配置） */
.footerbottomcontainer{
  width: 80%;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 3vw, 24px);
  padding-top: clamp(12px, 2.5vw, 20px);
  padding-bottom: 5vw;
}
.footerbottomcontainer__copy{
  margin: 0;
  color: #111;
  font: inherit;
}

/* 右側リンク群 */
.footerbottomcontainerright{
  display: flex;
  flex-direction: row;
  gap: clamp(12px, 3vw, 24px);
}
.footerlink{
  color: #111;
  text-decoration: none;
  font: inherit;
}
.footerlink:hover,
.footerlink:focus-visible{
  text-decoration: underline;
  outline: none;
}

/* ----------------------------------------------
   Modal (CSS only)
---------------------------------------------- */

/* モーダルが開いている間のスクロール抑止（:has 対応ブラウザで有効） */
body:has(.modal:target){
  overflow: hidden;
}

/* 土台 */
.modal{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
/* ハッシュ一致で表示 */
.modal:target{ display: flex; }

/* 背景オーバーレイ（クリックで閉じる） */
.modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  display: block;
}

/* ポップアップ本体（中身ラッパー：width/height と色・フォント指定） */
.modal__panel{
  position: relative;
  width: 80%;
  max-width: 860px;
  max-height: 80vh;
  overflow: auto;
  background: #ecf3fe;
  border-radius: 12px;
  padding: min(2rem, 4vw);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 500; /* Medium */
  font-size: clamp(14px, 1.302vw, 18px);
  color: #111;
}

/* ヘッダ行（右上に×） */
.modal__head{
  display: flex;
  justify-content: flex-end;
  margin: -0.5rem -0.5rem 0.5rem;
}
.modal__close{
  position: absolute;
  top: clamp(10px, 1.2vw, 14px);
  right: clamp(10px, 1.2vw, 14px);
  display: inline-grid;
  place-items: center;
  width: 2.25em;
  height: 2.25em;
  line-height: 1;
  border-radius: 50%;
  background: #fff;
  color: #111;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
  z-index: 2;
}
.modal__close:hover{ filter: brightness(0.95); }
.modal__close:focus-visible{
  outline: 2px solid #004bb1;
  outline-offset: 2px;
}

/* 本文 */
.modal__title{
  font-size: clamp(1.125rem, 2.2vw, 1.5rem);
  margin: 0 0 0.75em;
  font-weight: 700;
}
.modal__content p{ margin: 0 0 1em; line-height: 1.8; }
.modal__list{
  margin: 0;
  padding-left: 1.1em;
  line-height: 1.8;
}


/* 特商法リスト体裁 */
.legal-dl{
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 1.2em;
  row-gap: 1.1em;
  margin: 0;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 500;               /* ミディアム相当 */
  font-size: clamp(14px, 1.302vw, 18px);
  color: #0f172a;
}
.legal-dl dt{
  margin: 0;
  color: #0b1324;
  font-weight: 700;
}
.legal-dl dd{
  margin: 0;
  color: #4b5563;
  word-break: break-word;
}
.legal-dl a{
  color: inherit;
  text-decoration: underline;
}



/* ===== /Footer ===== */





/* ====== 補助金実績枠メディアクエリ ====== */
@media (max-width: 750px){
  .container.mv-subsidy{
    width: 92%;
    margin-bottom: 1vw;
  }

  .mv-subsidy-card{
    border-radius: 3.6vw;
  }

  #mv-subsidy-title{
    flex: 0 0 18vw;        
    gap: 2.8vw;
    padding: 0 3.6vw;
  }
  #mv-subsidy-title h2{
    font-size: 7vw;         
    line-height: 1.2;
    margin: 0;
  }
  #mv-subsidy-title .title-icon{
    width: 13vw;              
    height: auto;
  }

  .mv-subsidy-body{ padding: 0; }
  .subsidy-viewport{ height: 100%; }

  .subsidy-row{
    grid-template-columns: 1fr auto auto;
    column-gap: 3vw;
    padding-inline: 4vw;
    min-height: 12vw;            
    border-top-width: 0.25vw;    
  }

  .badge{
    font-size: 3.8vw;             
    padding: .35em .9em;
    border-radius: 999em;
  }
  .subsidy-amount{ white-space: nowrap; }
  .subsidy-amount strong{
    font-size: 6.8vw;           
    line-height: 1.1;
  }
}


/* メディアクエリ */
@media (max-width: 750px){

  /* 補助金下コメ印 */
  .mv-caption{
    width: 92%;
    margin-top: 2vw;
    justify-content: flex-end; 
  }
  .mv-caption p{
    font-size: 3.4vw;    
    line-height: 1.6;
    -webkit-text-stroke: 1.3vw #fff; 
    paint-order: stroke;
  }

  /* キャプション文言（単独） */
  .cta-block .cta-note1{
    margin: 3vw auto 0;
    font-size: 4vw;       
    text-align: center;
    display: block;
  }

  

  .cta-captionblock .cta-note2{
    width: 90%;
    margin: 2.4vw auto 0;
    font-size: 4vw;         
    text-align: center;
    font-weight: 700;
      white-space: nowrap;

  }

  /* FAQ タイトル画像を大きめに */
  .faq-band .faq-title{ padding-block: 4vw; }
  .faq-band .faq-title img{
    width: 68vw;              
    height: auto;
  }

  /* フッター上段 */
  .footertopcontainer{
    width: 92%;
    height: auto;            
    margin: 0 auto;
  }
  .footertopcontainer p{
    font-size: 3.8vw;         
    line-height: 1.8;
  }
}


/* === 390px準拠・モバイル（max-width:750px）=== */
@media (max-width: 750px){

  .container.mv-subsidy{
    width: 92%;
    margin-bottom: 3.2vw;   
  }

  .mv-subsidy-card{
    height: 55vw;                 
    border-radius: 3.2vw;
  }

  /* タイトル帯を薄く・低く */
  #mv-subsidy-title{
    flex: 0 0 12vw;               
    gap: 2.2vw;
    padding: 0 3.2vw;
  }
  #mv-subsidy-title h2{
    font-size: 4.1vw;          
    line-height: 1.2;
    margin: 0;
  }
  #mv-subsidy-title .title-icon{
    width: 11vw;                
    height: auto;
  }

  /* リスト行：高さ・文字を小さめに、詰める */
  .subsidy-row{
    grid-template-columns: 1fr auto auto;
    column-gap: 2.2vw;
    padding-inline: 3.2vw;
    min-height: 9.2vw;       
    border-top-width: .26vw;
    font-size: 2.5vw;            
  }
  .subsidy-left{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;    
  }

  .badge{
    font-size: 3.1vw;               /* ≒12–13px */
    padding: .25em .7em;
    border-radius: 999em;
  }

  .subsidy-amount{ white-space: nowrap; }
  .subsidy-amount strong{
    font-size: 6vw;          
    line-height: 1.1;
  }

  .mv-caption p{
    font-size:3vw;
  }


}


















/* 
----------------------------------------------
----------------------------------------------
固定バナー下部
----------------------------------------------
----------------------------------------------
 */
.footer-fixed{
  display: flex;
	justify-content: center;
	align-items: center;
  position: fixed;
  bottom:0;
  background-color: #ffffff;
  border-top: 3px solid #333;
  height:auto;
  max-width:750px;
  width:100%
}

.footer-fixed .cta-banner{
  width:8vw;
  height:auto;
  padding:1vw 0;
}

.footer-fixed .cta-banner img{
  width:100%
}



/* 
----------------------------------------------
----------------------------------------------
CTAボタン
----------------------------------------------
----------------------------------------------
 */
.cta-block{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 2.8vw, 16px);          /* 文言とボタンの間隔 */
  margin: clamp(12px, 3vw, 24px) auto;   /* ★ 余白はラッパーで管理 */
}

/* 文言。ボタン幅と揃える */
.cta-note{
  width: 80%;                             /* ← .cta と揃える */
  margin: 0;
  text-align: center;
  font-size: clamp(1rem, 4vw, 1.125rem);
  line-height: 1.5;
  color: #222;
}

/* ===== CTA: グリーンのベベルボタン ===== */
.cta{
  /* 矢印サイズを一元管理（子・疑似要素でも使う） */
  --arrow-size: clamp(18px, 3.6vw, 24px);
  --arrow-thickness: clamp(3px, 0.9vw, 5px);

  display: flex;
  align-items: center;
  justify-content: center;                /* 本体は中央寄せ */
  gap: clamp(12px, 3.5vw, 24px);
  width: 80%;
  text-decoration: none;
  border-radius: clamp(10px, 2vw, 16px);
  padding: clamp(12px, 3.2vw, 18px) clamp(16px, 4.2vw, 28px);
  color: #fff;
  margin: 0 auto;                         /* ★ ここは0。外側余白は .cta-block が握る */

  /* ベベル感（上ハイライト＆下シャドウ） */
  background: linear-gradient(180deg, #1ed24d 0%, #0fb93b 50%, #0aa232 100%);
  border: 1px solid #0a8e2c;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.35),
    inset 0 -5px 0 rgba(0,0,0,.25),
    0 3px 0 rgba(0,0,0,.20);
}

/* テキスト領域を伸ばして矢印を右端へ押し出す＋厳密センター */
.cta__text{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;                    /* テキスト自体は中央 */
  gap: clamp(4px, 1.2vw, 8px);
  line-height: 1.15;
}
/* 左に矢印と同幅のスペーサー → テキストが厳密センター */
.cta::before{
  content: "";
  flex: 0 0 var(--arrow-size);
}

/* 上の小見出し（白） */
.cta__sub{
  font-size: clamp(0.9rem, 3.6vw, 1.05rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-shadow: 0 1px 0 rgba(0,0,0,.25);
}

/* メイン（イエロー大） */
.cta__main{
  font-size: clamp(1.6rem, 8.2vw, 2.4rem);
  font-weight: 800;
  color: #ffe200;
  text-shadow:
    0 2px 0 rgba(0,0,0,.25),
    0 0 8px rgba(255,255,0,.12);
}

/* 右端：線だけの横三角（シェブロン） */
.cta__arrow{
  flex: 0 0 auto;
  width: auto; height: auto;             /* 旧 width:0/height:0 を上書き */
  inline-size: var(--arrow-size);        /* 大きさ */
  aspect-ratio: 1 / 1;
  position: relative;
  color: #fff;                            /* 線色（currentColor） */
  margin-left: auto;                      /* ★ 右端固定（押し出し） */
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.25));
}
.cta__arrow::before{
  content: "";
  position: absolute; inset: 0;
  box-sizing: border-box;
  border-style: solid;
  border-color: currentColor;
  /* 右＋下だけ線を出して -45deg 回転 → “>” 形状 */
  border-width: 0 var(--arrow-thickness) var(--arrow-thickness) 0; /* 太さ */
  transform: rotate(-45deg);
}

/* 操作時の手触り */
.cta:hover{ filter: brightness(1.2); }
.cta:active{
  transform: translateY(1px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    inset 0 -3px 0 rgba(0,0,0,.3),
    0 2px 0 rgba(0,0,0,.18);
}

/* キーボードフォーカス可視化 */
.cta:focus-visible{
  outline: 3px solid #fff;
  outline-offset: 3px;
  box-shadow:
    0 0 0 4px rgba(10,150,60,.45),
    inset 0 2px 0 rgba(255,255,255,.35),
    inset 0 -5px 0 rgba(0,0,0,.25);
}

.cta-note1{
  font-size:2vw;
  margin-bottom:0;
  font-weight: 700;
  background:linear-gradient(transparent 60%, rgb(255, 255, 0) 60%);
}

.cta-captionblock{
	display: flex;
	justify-content: center;
	align-items: center;
  gap:1vw;
}

.cta-captionblock img{
  width:1.771vw;
  height:auto;
  margin-bottom:-1.5vw;
}

.cta-note2{
  font-size:2vw;
  margin-bottom:0;
  font-weight: 700;
  color: #ff6098;
}

.privacyp{
  color: #76797f !important;
}



@media screen and (max-width:750px){

  .footer-fixed .cta-banner{
  width:30vw;
  height:auto;
  padding:2vw 0;  
}

.footer-fixed .cta-banner img{
  width:100%;
}

.footerbottomcontainer{
  padding-bottom:15vw;
}


}



.thankscontainer{
padding:10%;
}

.thankscontainer p{
font-size:1.3vw;
}

.thanksh2{
  color:#ff0000;
  font-size:1.5vw;

}

@media screen and (max-width:750px){

.thankscontainer{
padding:10%;
}

.thankscontainer p{
font-size:4vw;
}

.thanksh2{
  color:#ff0000;
  font-size:5.5vw;

}

}


@media (max-width: 750px){
  .subsidy-track > ul.subsidy-list{ animation: none !important; }
  ul.subsidy-list.loopY1,
  ul.subsidy-list.loopY2{ animation: none !important; }

  .subsidy-track{
    will-change: transform;
    animation: trackLoop 14s linear infinite;
    transform: translate3d(0,0,0);
  }
  @keyframes trackLoop{
    0%   { transform: translate3d(0,0,0); }
    100% { transform: translate3d(0,-50%,0); }
  }
}


@media (max-width: 750px){
  .section--mv .mv-subsidy .subsidy-track > ul.subsidy-list,
  .section--mv .mv-subsidy .subsidy-track > ul.subsidy-list.loopY1,
  .section--mv .mv-subsidy .subsidy-track > ul.subsidy-list.loopY2,
  .section--mv .mv-subsidy .subsidy-track > ul.subsidy-list:nth-child(1),
  .section--mv .mv-subsidy .subsidy-track > ul.subsidy-list:nth-child(2){
    animation: none !important;
    transform: none !important;
  }

  .section--mv .mv-subsidy .subsidy-track{
    will-change: transform;
    transform: translate3d(0,0,0);
    animation: subsidyTrackMobile 24s linear infinite;
  }

  @keyframes subsidyTrackMobile{
    0%   { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(0, -50%, 0); }
  }

  .section--mv .mv-subsidy .subsidy-track > ul + ul .subsidy-row:first-child{
    border-top: none !important;
    margin-top: -0.2px;
  }
}


/* SEO対策　非表示 */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}