@charset "utf-8";

/* ==========================================
   1. 共通・パーツ共通スタイル
   ========================================== */

/* bodyに「overflow-x: hidden;」を追加して、想定外の横はみ出しを強制カットします */
html, body {
  overflow-x: hidden;
}
body {
  padding-bottom: 60px;
  /* ★既存の余白に、フォーム用の基本フォント・文字色・背景色を合体させました */
  font-family: "Montserrat", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #333;
  background-color: #fff;
}
@media (min-width: 768px) {
  body {
    padding-bottom: 80px;
  }
}

/* スマホ用改行コントロール */
.br-sp {
  display: none;
}
@media screen and (max-width: 1080px) {
  .br-pc {
    display: none;
  }
  .br-sp {
    display: inline-block;
  }
}

/* 背景色設定 */
.top_bg2 {
  background: #fff7ee;
}

/* 追加背景色 */
.bg-white { background-color: #ffffff; }
.bg-beige { background-color: #f7efdc; }
.bg-blue2 { background-color: #ecf3fd; }

/* 共通調整 */
img {
  display: block;
  width: 100%;
  height: auto;
}
.lp-container {
  max-width: 1000px;
  margin: 0 auto;
  overflow: hidden; /* ★これを追加！中のrowのマージンによるはみ出しを一括カットします */
}

/* 文字の下にアンダーライン */
.solid {
  border-bottom: solid 2px #8C6239;
}


/* ==========================================
   2. コンテンツボックス・カード装飾
   ========================================== */

/* 紫枠の丸角ボックス */
.rounded-box {
  display: block;
  border: 4px solid #93278f;
  border-radius: 10px;
  background-color: #f3ebff;
  padding: 20px;
  margin-left: 5px;
  margin-right: 5px;
  box-sizing: border-box;
}

/* 4つの裏付け・居住支援セクションのカード */
.card-container {
  max-width: 100%;
  border: 2px solid #942d91;
  border-radius: 12px;
  overflow: hidden;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  background-color: #fff;
}
.card-header {
  background-color: #942d91;
  color: #ffffff;
  padding: 12px 20px;
  letter-spacing: 0.05em;
}
.card-body {
  padding: 25px 20px;
  color: #333;
}

/* 「不安」リストのチェックマーク装飾 */
.check-icon-text {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: sans-serif;
  font-weight: bold;
  color: #333;
}
.check-mark {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}
.check-mark::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 25px;
  height: 25px;
  border: 4px solid #e52520;
  box-sizing: border-box;
}
.check-mark::after {
  content: "";
  position: absolute;
  top: -9px;
  left: 8px;
  width: 15px;
  height: 25px;
  border-right: 5px solid #e52520;
  border-bottom: 4px solid #e52520;
  transform: rotate(45deg);
}


/* ==========================================
   3. QAアコーディオン
   ========================================== */
.qa-wrapper {
  padding: 12px 10px;
}
.qa-item {
  background-color: #ffffff;
  border: 2px solid #7cb1eb;
  border-radius: 8px;
  overflow: hidden;
}
.qa-question {
  color: #1f6aba;
  padding: 20px 24px;
  font-size: 25px;
  font-weight: bold;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  user-select: none;
  text-decoration: none;
  line-height: 1.4;
  transition: background-color 0.2s;
}
.qa-question:hover {
  background-color: #f4f8fc;
  color: #1f6aba;
}
.qa-question::after {
  content: '＋';
  font-size: 29px;
  color: #1f6aba;
  font-weight: bold;
  margin-left: 15px;
}
.qa-question:not(.collapsed)::after {
  content: '－';
}
.qa-answer {
  background-color: #ffffff;
  border-top: 2px dashed #7cb1eb;
  padding: 24px;
  font-size: 23px;
  line-height: 1.7;
  color: #333333;
}
.qa-answer-box {
  display: flex;
  align-items: flex-start;
}
.qa-answer .prefix-a {
  color: #d9333f;
  font-weight: bold;
  font-size: 33px;
  margin-right: 16px;
  line-height: 1.2;
}
.qa-answer-content {
  flex: 1;
  word-break: break-all;
}

/* ★ここから下を「3. QAアコーディオン」セクションの一番最後（「4. 実績〜」の手前）に追記してください */
@media (max-width: 767.98px) {
  /* 質問箱の文字サイズと余白をスマホ用に最適化 */
  .qa-question {
    font-size: 16px !important;  /* 25px から 16px に縮小して1行に収めます */
    padding: 16px 15px !important; /* 左右の余白を少し詰めて文字の入るスペースを広げます */
  }
  .qa-question::after {
    font-size: 20px !important; /* 「＋」マークのサイズも微調整 */
  }
  
  /* ついでに、スマホだと大きすぎる回答の文字も読みやすく調整 */
  .qa-answer {
    font-size: 15px !important;  /* 23px から 15px に縮小 */
    padding: 16px !important;
  }
  .qa-answer .prefix-a {
    font-size: 22px !important;  /* 「A.」のサイズを 33px から 22px に縮小 */
    margin-right: 10px !important;
  }
}

/* ==========================================
   4. 実績・指定一覧カード（自治体一覧）
   ========================================== */
.custom-grid-container {
  padding: 20px 0;
  margin-bottom: 90px !important;
}
.status-card {
  background-color: #ffffff;
  border: 1px solid #606060;
  display: flex;
  flex-direction: column;
  text-align: center;
  overflow: hidden;
  height: 100%;
}
.status-header {
  color: #ffffff;
  font-size: 26px;
  font-weight: bold;
  height: 130px;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 1px;
}
.status-body {
  padding: 15px 10px;
  color: #333333;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  line-height: 1.4;
  background-color: #ffffff;
}
.status-body .main-text {
  font-size: 20px;
  font-weight: bold;
  display: block;
}
.status-body .sub-text {
  font-size: 15px;
  font-weight: normal;
  margin: 4px 0;
  display: block;
  color: #444444;
}
.status-full-card {
  color: #ffffff;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  padding: 12px 10px;
  border: 1px solid #606060;
  line-height: 1.4;
}

/* 各種イメージカラー */
.bg-green { background-color: #00a651; }
.bg-blue { background-color: #0054a6; }
.bg-purple { background-color: #910782; }
.bg-light-blue { background-color: #0069d9; }
.bg-navy { background-color: #0b2f83; }
.bg-cyan { background-color: #00b7ce; }
.bg-gray-blue { background-color: #5887b2; }

@media (max-width: 767.98px) {
  .custom-grid-container {
    margin-bottom: 55px !important;
  }
  .status-header {
    font-size: 20px;
    height: 85px;
  }
  .status-body {
    padding: 8px 6px;
  }
  .status-body .main-text {
    font-size: 14px;
  }
  .status-body .sub-text {
    font-size: 11px;
  }
  .status-full-card {
    font-size: 13px;
    padding: 8px 4px;
  }
}


/* ==========================================
   5. 3連サービスカード
   ========================================== */
.service-card {
  background-color: #ffffff;
  border: 2px solid #cccccc;
  padding: 35px 20px;
  text-align: center;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
.service-icon {
  width: 125px;
  height: auto;
  margin-bottom: 25px;
}
.service-title {
  font-size: 25px;
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 20px;
}
.color-blue { color: #3c76a6; }
.color-green { color: #598245; }
.color-orange { color: #e68b35; }

.service-text {
  font-size: 18px;
  font-weight: bold;
  color: #444444;
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 767.98px) {
  .service-card {
    padding: 25px 15px;
  }
  .service-icon {
    width: 110px;
    margin-bottom: 15px;
  }
  .service-title {
    font-size: 25px;
    margin-bottom: 15px;
  }
  .service-text {
    font-size: 19px;
  }
}


/* ==========================================
   6. 4連特徴カード
   ========================================== */
.feature-card {
  background-color: #ffffff;
  border: 2px solid #cccccc;
  padding: 35px 6px; /* ★左右の余白を 15px から 6px に狭めて横幅を確保 */
  text-align: center;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
.feature-title {
  font-size: 23px; /* ★ご希望の 23px に設定 */
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 25px;
  color: #33665c;
}
.feature-icon {
  width: 115px;
  height: auto;
  margin-bottom: 25px;
}
.feature-text {
  font-size: 17px;
  font-weight: bold;
  color: #444444;
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 767.98px) {
  .feature-card {
    padding: 25px 10px;
  }
  .feature-title {
    font-size: 23px;
    margin-bottom: 15px;
  }
  .feature-icon {
    width: 95px;
    margin-bottom: 15px;
  }
  .feature-text {
    font-size: 15px;
  }
}


/* ==========================================
   7. 各セクション共通タイトル見出し
   ========================================== */
.section-title-block {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  margin-top: 90px !important;
  margin-bottom: 40px !important;
  padding: 10px 0 !important;
}

.section-title-block .section-sub-top-title {
  font-size: 50px !important;
  font-weight: bold !important;
  color: #534741 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  letter-spacing: 0.03em !important;
  display: block !important;
}

.section-title-block .section-common-title {
  font-size: 42px !important; /* ★ 56pxだと枠から溢れて「業」が落ちるため、綺麗に収まる42pxに修正 */
  font-weight: bold !important;
  color: #534741 !important;
  line-height: 1.4 !important;
  text-align: center !important;
  margin-top: 0 !important;
  margin-bottom: 25px !important;
  letter-spacing: 0.03em !important;
  overflow-wrap: break-word !important;
  word-break: normal !important; /* ★文字の途中での中途半端な改行をブロック */
  display: block !important;
}

.section-title-block .title-dots {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 15px !important;
  margin-top: 0 !important;
}
.section-title-block .title-dots span {
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  display: inline-block !important;
}
.section-title-block .title-dots .dot-blue   { background-color: #3c76a6 !important; }
.section-title-block .title-dots .dot-green  { background-color: #598245 !important; }
.section-title-block .title-dots .dot-orange { background-color: #e68b35 !important; }

.col-12.text-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

@media (max-width: 767.98px) {
  .section-title-block {
    margin-top: 55px !important;
    margin-bottom: 25px !important;
  }
  .section-title-block .section-sub-top-title {
    font-size: 30px !important;
    margin-bottom: 6px !important;
  }
  .section-title-block .section-common-title {
    font-size: 28px !important; /* ★ スマホでのハミ出し収まりを綺麗にするため縮小 */
    margin-bottom: 18px !important;
  }
  .section-title-block .title-dots {
    gap: 10px !important;
  }
  .section-title-block .title-dots span {
    width: 14px !important;
    height: 14px !important;
  }
}


/* ==========================================
   8. フッター固定ナビゲーション
   ========================================== */
.footer-fixed-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  z-index: 1000;
  height: 60px;
}
.footer-fixed-nav .nav-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
}
.footer-fixed-nav .material-icons {
  margin-right: 8px;
  font-size: 20px;
  font-family: 'Material Icons', "Font Awesome 5 Free";
}
.footer-fixed-nav .mail { background-color: #337ab7; }
.footer-fixed-nav .tel { background-color: #8cc63f; }

.text-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.2;
}
.footer-fixed-nav .main-text {
  font-size: 13px;
}
.footer-fixed-nav .sub-text {
  font-size: 10px;
  font-weight: normal;
  display: block;
  margin-top: 2px;
}

@media (min-width: 768px) {
  .footer-fixed-nav {
    height: 90px;
  }
  .footer-fixed-nav .nav-item {
    font-size: 22px;
  }
  .footer-fixed-nav .material-icons {
    font-size: 32px;
    margin-right: 12px;
  }
  .footer-fixed-nav .main-text {
    font-size: 20px;
  }
  .footer-fixed-nav .sub-text {
    font-size: 14px;
    margin-top: 4px;
  }
}


/* ==========================================
   9. 実績上の紹介文テキスト（ベースフォント）
   ========================================== */
.intro-section-text {
  font-size: 32px !important;
  font-weight: bold !important;
  color: #534741 !important;
  line-height: 1.6 !important;
  text-align: center !important;
  margin-top: 60px !important;
  margin-bottom: 40px !important;
  letter-spacing: 0.05em !important;
  padding: 0 15px !important;
  display: block !important;
}

@media (max-width: 767.98px) {
  .intro-section-text {
    font-size: 25px !important;
    margin-top: 40px !important;
    margin-bottom: 25px !important;
  }
}


/* ==========================================
   10. 部分強調付きの紹介文テキスト（pc_03・緑文字さらに拡大版）
   ========================================== */
.highlight-intro-text {
  font-size: 32px !important;
  font-weight: bold !important;
  color: #534741 !important;
  line-height: 1.7 !important;
  text-align: center !important;
  margin-top: 60px !important;
  margin-bottom: 40px !important;
  letter-spacing: 0.05em !important;
  padding: 0 15px !important;
  display: block !important;
}

.highlight-intro-text .text-green-large {
  color: #598245 !important;
  font-size: 44px !important;
  font-weight: 900 !important;
  display: inline-block !important;
}

@media (max-width: 767.98px) {
  .highlight-intro-text {
    font-size: 24px !important;
    margin-top: 40px !important;
    margin-bottom: 25px !important;
  }
  .highlight-intro-text .text-green-large {
    font-size: 32px !important;
  }
}


/* ==========================================
   11. 3色カラー構成の紹介文テキスト（pc_12再現）
   ========================================== */
.triple-color-text {
  font-size: 28px !important; /* ★ 32pxから28pxに微調整して枠内の収まりを良くします */
  font-weight: bold !important;
  color: #534741 !important;
  line-height: 1.7 !important;
  text-align: center !important;
  margin-top: 60px !important;
  margin-bottom: 40px !important;
  letter-spacing: 0.05em !important;
  padding: 0 15px !important;
  display: block !important;
}

.triple-color-text .color-blue-text {
  color: #3c76a6 !important;
}
.triple-color-text .color-green-text {
  color: #598245 !important;
}

/* ★「〜として、」などの単語が不自然にバラバラに改行されるのを防ぎます */
.triple-color-text span {
  display: inline-block !important;
}

@media (max-width: 767.98px) {
  .triple-color-text {
    font-size: 24px !important; /* スマホ用も27pxから24pxに微調整 */
    margin-top: 40px !important;
    margin-bottom: 25px !important;
  }
}


/* ==========================================
   12. 青色指定の紹介文テキスト（あべこべ完全解消版）
   ========================================== */

@media (max-width: 1024px) {
  .blue-title-text {
    font-size: 32px !important;
    margin-top: 50px !important;
    margin-bottom: 20px !important;
    font-weight: bold !important;
    color: #4484b4 !important;
    line-height: 1.7 !important;
    text-align: center !important;
    letter-spacing: 0.05em !important;
    padding: 0 15px !important;
    display: block !important;
  }
}

@media (min-width: 1025px) {
  .blue-title-text {
    font-size: 35px !important;
    margin-top: 45px !important;
    margin-bottom: 10px !important;
    font-weight: bold !important;
    color: #4484b4 !important;
    line-height: 1.7 !important;
    text-align: center !important;
    letter-spacing: 0.05em !important;
    padding: 0 15px !important;
    display: block !important;
  }
}


/* ==========================================
   12-2. 青色指定の紹介文テキスト（あべこべ完全解消版）会社部分
   ========================================== */

@media (max-width: 1024px) {
  .blue-title-text2 {
    font-size: 32px !important;
    margin-top: 15px !important; /* 【調整】3色の●との隙間を狭めるため、50pxから15pxに縮小 */
    margin-bottom: 20px !important;
    font-weight: bold !important;
    color: #4484b4 !important;
    line-height: 1.7 !important;
    text-align: center !important;
    letter-spacing: 0.05em !important;
    padding: 0 15px !important;
    display: block !important;
  }
}

@media (min-width: 1025px) {
  .blue-title-text2 {
    font-size: 35px !important;
    margin-top: 15px !important;
    margin-bottom: 10px !important;
    font-weight: bold !important;
    color: #4484b4 !important;
    line-height: 1.7 !important;
    text-align: center !important;
    letter-spacing: 0.05em !important;
    padding: 0 15px !important;
    display: block !important;
  }
}


/* ==========================================
   13. 強制スタイル上書き（lp-container内の色バグを完全解消）
   ========================================== */

.force-color-blue {
  color: #1a62b1 !important;
}
.force-color-pink {
  color: #d11c62 !important;
}
.force-color-green {
  color: #5e8749 !important;
}


/* ==========================================
   14. 住まい・生活・将来セクション専用の完全出し分けスイッチ
   ========================================== */

@media (max-width: 767.98px) {
  .only-for-pc-block {
    display: none !important;
  }
  .only-for-sp-block {
    display: block !important;
    width: 100% !important; /* ★これを追加！Flexboxによる横幅の縮みを強制的に防ぎます */
  }
}

@media (min-width: 768px) {
  .only-for-pc-block {
    display: block !important;
  }
  .only-for-sp-block {
    display: none !important;
  }
}


/* ==========================================
   15. 完全分離型カスタムヘッダー（ボタン画像＆スマホ中央寄せ決定版）
   ========================================== */

.custom-header-section {
  width: 100%;
  background-color: #ffffff !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  padding: 10px 20px;
}
.header-logo-img {
  max-height: 65px;
  width: auto !important;
  display: inline-block !important;
}
.header-right-box-pc {
  display: flex;
  align-items: center;
  gap: 20px;
}
.header-tel-img {
  max-height: 55px;
  width: auto !important;
}
.header-form-btn-img {
  max-height: 55px;
  width: auto !important;
  transition: transform 0.2s, opacity 0.2s;
}
.header-form-btn-img:hover {
  opacity: 0.9;
  transform: scale(1.02);
}

@media (max-width: 767.98px) {
  .header-pc-layout {
    display: none !important;
  }
  .header-sp-layout {
    display: block !important;
    text-align: center !important;
    width: 100%;
    padding: 5px 0;
  }
  .header-logo-img {
    max-height: 50px;
    margin: 0 auto !important;
    display: inline-block !important;
  }
}

@media (min-width: 768px) {
  .header-pc-layout {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto;
  }
  .header-sp-layout {
    display: none !important;
  }
}


/* ==========================================
   16. Pマーク・個人情報保護セクション（文字標準＆罫線最細版）
   ========================================== */

.pmark-box-pc {
  max-width: 1000px !important;
  margin: 50px auto !important;
  border: 1px solid #3c76a6 !important;
  padding: 40px !important;
  display: flex !important;
  align-items: center !important;
  gap: 45px !important;
  background-color: #ffffff !important;
  box-sizing: border-box !important;
}
.pmark-logo-zone-pc {
  flex-shrink: 0 !important;
}
.pmark-img-pc {
  width: 135px !important;
  height: auto !important;
  display: block !important;
}
.pmark-content-zone-pc {
  text-align: left !important;
  font-family: sans-serif !important;
}
.pmark-title-pc {
  font-size: 30px !important;
  color: #1a62b1 !important;
  font-weight: 900 !important;
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  letter-spacing: 0.02em !important;
}
.pmark-text-pc {
  font-size: 17px !important;
  color: #534741 !important;
  line-height: 1.7 !important;
  font-weight: normal !important;
  margin: 0 !important;
  letter-spacing: 0.02em !important;
}

.pmark-box-sp {
  margin: 40px 15px !important;
  border: 1px solid #3c76a6 !important;
  padding: 35px 20px !important;
  background-color: #ffffff !important;
  box-sizing: border-box !important;
  font-family: sans-serif !important;
}
.pmark-logo-zone-sp {
  margin-bottom: 25px !important;
  text-align: center !important;
}
.pmark-img-sp {
  width: 115px !important;
  height: auto !important;
  margin: 0 auto !important;
  display: block !important;
}
.pmark-title-sp {
  font-size: 24px !important;
  color: #1a62b1 !important;
  font-weight: 900 !important;
  text-align: center !important;
  margin-top: 0 !important;
  margin-bottom: 22px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.02em !important;
}
.pmark-text-sp {
  font-size: 16px !important;
  color: #534741 !important;
  line-height: 1.7 !important;
  font-weight: normal !important;
  margin: 0 !important;
  text-align: left !important;
  letter-spacing: 0.02em !important;
}


/* ==========================================
   17. サポート事例詳細ボタン（完全テキストボタン化版）
   ========================================== */

.btn-support-case-pc {
  display: inline-block !important;
  background-color: #3c76a6 !important;
  color: #ffffff !important;
  font-size: 24px !important;
  font-weight: bold !important;
  text-decoration: none !important;
  padding: 16px 80px !important;
  margin-top: 30px !important;
  margin-bottom: 50px !important;
  letter-spacing: 0.05em !important;
  transition: opacity 0.2s !important;
}
.btn-support-case-pc:hover {
  opacity: 0.85 !important;
  color: #ffffff !important;
}

.btn-support-case-sp {
  display: block !important;
  background-color: #3c76a6 !important;
  color: #ffffff !important;
  font-size: 20px !important;
  font-weight: bold !important;
  text-decoration: none !important;
  padding: 16px 0 !important;
  width: 90% !important;
  margin: 25px auto 40px auto !important;
  letter-spacing: 0.03em !important;
  text-align: center !important;
  transition: opacity 0.2s !important;
}
.btn-support-case-sp:hover {
  opacity: 0.85 !important;
  color: #ffffff !important;
}


/* ==========================================
   18. インラインスタイル移行用クラス
   ========================================== */

.problem-title-pc {
  font-size: 56px !important;
  font-weight: bold !important; /* ★ 900の極太から、通常のすっきりした太字(bold)に変更 */
  color: #f38a3b !important;
  line-height: 1.4 !important;
  text-align: center !important;
  margin-top: 90px !important;
  margin-bottom: 10px !important;
  letter-spacing: 0.03em !important;
  display: block !important;
}
/* スマホ用タイトルの文字サイズを適切な大きさに調整します */
.problem-title-sp {
  font-size: 32px !important; /* ★ 36pxからさらに読みやすい32pxに最適化 */
  font-weight: bold !important; /* ★ 600の極太から、通常のすっきりした太字(bold)に変更 */
  color: #f38a3b !important;
  line-height: 1.4 !important;
  text-align: center !important;
  margin-top: 60px !important;
  margin-bottom: 20px !important;
  letter-spacing: 0.03em !important;
  display: block !important;
}
.problem-intro-box {
  font-family: sans-serif !important;
  text-align: center !important;
  line-height: 1.8 !important;
  color: #534741 !important;
  font-weight: bold !important;
  letter-spacing: 0.03em !important;
  padding: 0 15px !important;
  margin-top: 45px !important;
  margin-bottom: 45px !important;
  width: 100% !important;
  display: block !important;
}
.problem-text-pc {
  font-size: 34px !important;
}
.problem-span-blue-pc {
  font-size: 39px !important;
  font-weight: bold !important;
}
.problem-span-pink-pc {
  font-size: 39px !important;
  font-weight: bold !important;
}
.problem-text-sp {
  font-size: 25px !important;
  line-height: 1.7 !important;
}
.problem-span-blue-sp {
  font-size: 32px !important;
  font-weight: bold !important;
}
.problem-span-pink-sp {
  font-size: 32px !important;
  font-weight: bold !important;
}

.solutions-text-pc {
  font-family: sans-serif !important;
  text-align: center !important;
  line-height: 1.8 !important;
  color: #534741 !important;
  font-weight: bold !important;
  letter-spacing: 0.03em !important;
  padding: 0 15px !important;
  margin-top: 50px !important;
  margin-bottom: 50px !important;
  width: 100% !important;
  font-size: 32px !important;
}
.solutions-span-blue-pc {
  font-size: 42px !important;
  color: #3c76a6 !important;
  font-weight: 900 !important;
}
.solutions-span-green-pc {
  font-size: 42px !important;
  color: #598245 !important;
  font-weight: 900 !important;
}
.solutions-span-orange-pc {
  font-size: 42px !important;
  color: #e68b35 !important;
  font-weight: 900 !important;
}
.solutions-text-sp {
  font-family: sans-serif !important;
  text-align: center !important;
  line-height: 1.7 !important;
  color: #534741 !important;
  font-weight: bold !important;
  letter-spacing: 0.03em !important;
  padding: 0 15px !important;
  margin-top: 50px !important;
  margin-bottom: 50px !important;
  width: 100% !important;
  font-size: 25px !important;
}
.solutions-span-blue-sp {
  font-size: 38px !important;
  color: #3c76a6 !important;
  font-weight: 900 !important;
}
.solutions-span-green-sp {
  font-size: 38px !important;
  color: #598245 !important;
  font-weight: 900 !important;
}
.solutions-span-orange-sp {
  font-size: 38px !important;
  color: #e68b35 !important;
  font-weight: 900 !important;
}

.custom-qa-padding {
  padding: 0 5px;
}
.qa-note-text {
  font-size: 20px;
  color: #666666;
}

.footer-consult-box-pc {
  max-width: 1050px !important;
  margin: 60px auto 40px auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 30px !important;
  padding: 0 20px !important;
}
.footer-consult-text-pc {
  font-family: sans-serif !important;
  font-size: 23px !important;
  color: #534741 !important;
  font-weight: 900 !important;
  line-height: 1.6 !important;
  text-align: left !important;
  letter-spacing: 0.02em !important;
}
.footer-tags-container-pc {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  flex-shrink: 0 !important;
  min-width: 160px !important;
}
.footer-tag-blue-pc {
  background-color: #dc6aa4 !important; /* ★ #3c76a6 から変更 */
  color: #ffffff !important;
  font-weight: bold !important;
  font-size: 16px !important;
  padding: 6px 15px !important;
  border-radius: 50px !important;
  white-space: nowrap !important;
  display: block !important;
  text-align: center !important;
}
.footer-tag-green-pc {
  background-color: #dc6aa4 !important; /* ★ #598245 から変更 */
  color: #ffffff !important;
  font-weight: bold !important;
  font-size: 16px !important;
  padding: 6px 15px !important;
  border-radius: 50px !important;
  white-space: nowrap !important;
  display: block !important;
  text-align: center !important;
}
.footer-divider-pc {
  max-width: 1000px !important;
  height: 1px !important;
  background-color: #ded6c9 !important;
  margin: 0 auto !important;
  width: 90% !important;
}
.footer-contact-box-pc {
  max-width: 1000px !important;
  margin: 45px auto 65px auto !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 40px !important;
}
.footer-tel-img-pc {
  max-height: 85px !important;
  width: auto !important;
}
.footer-form-link-pc {
  display: inline-block !important;
}
.footer-form-img-pc {
  max-height: 85px !important;
  width: auto !important;
  transition: opacity 0.2s !important;
}

.footer-consult-box-sp {
  margin: 40px auto 35px auto !important;
  padding: 0 20px !important;
  text-align: center !important;
}
.footer-consult-text-sp {
  font-family: sans-serif !important;
  font-size: 20px !important;
  color: #534741 !important;
  font-weight: 900 !important;
  line-height: 1.7 !important;
  text-align: center !important;
  letter-spacing: 0.02em !important;
  margin-bottom: 20px !important;
}
.footer-tags-container-sp {
  display: flex !important;
  flex-direction: row !important;       /* ★ column（縦）から row（横）に変更 */
  justify-content: center !important;  /* ★ 横並びにしたバッジを画面中央に寄せます */
  align-items: center !important;
  gap: 10px !important;
}
.footer-tag-blue-sp {
  background-color: #dc6aa4 !important; /* ★ #3c76a6 から変更 */
  color: #ffffff !important;
  font-weight: bold !important;
  font-size: 14px !important;           /* 横並び用に15pxから14pxにわずかに縮小 */
  padding: 6px 14px !important;         /* ★ 左右余白を22pxから14pxに詰めて横ハミ出しを防ぎます */
  border-radius: 50px !important;
  display: inline-block !important;
  text-align: center !important;
}
.footer-tag-green-sp {
  background-color: #dc6aa4 !important; /* ★ #598245 から変更 */
  color: #ffffff !important;
  font-weight: bold !important;
  font-size: 14px !important;           /* 横並び用に15pxから14pxにわずかに縮小 */
  padding: 6px 14px !important;         /* ★ 左右余白を22pxから14pxに詰めて横ハミ出しを防ぎます */
  border-radius: 50px !important;
  display: inline-block !important;
  text-align: center !important;
}
.footer-divider-sp {
  height: 1px !important;
  background-color: #ded6c9 !important;
  margin: 0 auto !important;
  width: 85% !important;
}
.footer-contact-box-sp {
  margin: 35px auto 50px auto !important;
  padding: 0 20px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 15px !important;
}
.footer-tel-link-sp {
  display: block !important;
  width: 100% !important;
  max-width: 360px !important;
}
.footer-tel-img-sp {
  width: 100% !important;
  height: auto !important;
}
.footer-form-link-sp {
  display: block !important;
  width: 100% !important;
  max-width: 360px !important;
}
.footer-form-img-sp {
  width: 100% !important;
  height: auto !important;
}

/* ==========================================================================
   【確定版】文字拡大（+2px）＆質問2行折り返し・入力欄最大化スタイル
   ========================================================================== */

/* 独自タグ <ptxt3> の調整 */
ptxt3 {
    display: block;
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

/* 文字サイズ指定クラスの集約 */
.font-30 { font-size: 30px; }
.font-20 { font-size: 20px; }
.font-16 { font-size: 18px; } /* フォーム全体のベースを16pxから18pxに底上げ */
.font-14 { font-size: 16px; }
.font-12 { font-size: 14px; }
.font-10 { font-size: 12px; }

/* ==========================================================================
   テーブル・フォームのデザイン修正（PC表示で質問を2行にして入力欄を広く）
   ========================================================================== */
.tableSample {
    width: 100% !important;
    margin-top: 30px !important;
    margin-bottom: 30px !important;
    border: 1px solid #cbd5e1 !important;
    border-collapse: collapse !important;
    font-size: 18px !important; /* テーブル全体の基本文字サイズを2pxアップ */
}

.tableSample th {
    background-color: #f8fafc !important;
    color: #1e293b !important;
    font-weight: bold !important;
    vertical-align: middle !important;
    padding: 20px 15px !important;
    border: 1px solid #cbd5e1 !important;
    
    /* ★質問を綺麗な2行にするための最重要設定 */
    width: 32% !important;           /* 左側の幅を32%に絞ることで、長い質問が自然に2行になります */
    white-space: normal !important;  /* 絶対改行しない設定を解除し、2行の折り返しを許可 */
    line-height: 1.5 !important;     /* 2行になったときの行間を読みやすく調整 */
    text-align: left !important;
    font-size: 18px !important;      /* 文字サイズを2pxアップ */
}

.tableSample td {
    padding: 20px 15px !important;
    border: 1px solid #cbd5e1 !important;
    vertical-align: middle !important;
    background-color: #fff !important;
    width: 68% !important;           /* ★右側の入力スペースを68%まで大きく広げて確保 */
    font-size: 18px !important;      /* 文字サイズを2pxアップ */
}

/* 共通スタイルの「img { width: 100%; }」を強制解除 */
.tableSample th img {
    display: inline-block !important;
    width: auto !important;
    max-width: 38px !important;
    height: auto !important;
    vertical-align: middle !important;
    margin-left: 8px !important;
}
.section-heading img {
    display: inline-block !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
}

/* 入力ボックス（input/textarea）の文字サイズを2pxアップ */
.tableSample input[type="text"],
.tableSample input[type="email"],
.tableSample input[type="tel"],
.tableSample textarea {
    width: 100% !important;
    max-width: 500px !important;     /* 文字が大きくなった分、ボックスの最大幅も少し拡大 */
    padding: 12px 10px !important;   /* ゆったりして打ちやすく調整 */
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    font-size: 17px !important;      /* 15px から 17px に2pxアップ */
    background-color: #fff !important;
    display: inline-block !important;
    box-sizing: border-box !important;
}
.tableSample textarea {
    max-width: 100% !important;
    height: auto !important;
}
.tableSample input:focus,
.tableSample textarea:focus {
    border-color: #3b82f6 !important;
    outline: none !important;
}

/* チェックボックス・ラジオボタンの文字サイズも2pxアップ */
.tableSample .form-check {
    margin-bottom: 10px !important;
    display: flex !important;
    align-items: center !important;
}
.tableSample .form-check:last-child {
    margin-bottom: 0 !important;
}
.tableSample .form-check-inline {
    display: inline-flex !important;
    align-items: center !important;
    margin-right: 24px !important;
    margin-bottom: 0 !important;
}
.tableSample .form-check-input {
    margin-top: 0 !important;
    position: relative !important;
    width: 16px !important;          /* ボタン自体も心もち大きく */
    height: 16px !important;
}
.tableSample .form-check-label {
    padding-left: 8px !important;
    cursor: pointer !important;
    line-height: 1.4 !important;
    font-size: 18px !important;      /* ラベル文字を2pxアップ */
}

/* プライバシーポリシー・ボタン周り */
.card.border-hs {
    border: 1px solid #cbd5e1 !important;
    background-color: #f8fafc !important;
    border-radius: 4px !important;
}
.button {
    background-color: #3b82f6 !important;
    color: #fff !important;
    border: none !important;
    padding: 14px 70px !important;
    font-size: 20px !important;      /* 18px から 20px に2pxアップ */
    font-weight: bold !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    display: inline-block !important;
}
.button:hover {
    background-color: #2563eb !important;
}

/* フッター背景調整 */
.bg-hs2 {
    background-color: #f1f5f9 !important;
    border-top: 1px solid #e2e8f0 !important;
}

/* ==========================================================================
   【スマホ用】縦並び（ブロック形式）の文字サイズも+2px調整
   ========================================================================== */
@media (max-width: 767.98px) {
    .tableSample,
    .tableSample tbody,
    .tableSample tr,
    .tableSample th,
    .tableSample td {
        display: block !important;
        width: 100% !important;
    }

    /* スマホ見出し（上の行） */
    .tableSample th {
        white-space: normal !important;
        padding: 12px 15px !important;
        border-bottom: 1px solid #cbd5e1 !important;
        background-color: #f8fafc !important;
        font-size: 15px !important;  /* 13px から 15px に2pxアップ */
    }

    /* スマホ入力欄（下の行） */
    .tableSample td {
        padding: 15px 15px 20px 15px !important;
        border-bottom: 1px solid #cbd5e1 !important;
        background-color: #fff !important;
        font-size: 15px !important;  /* 13px から 15px に2pxアップ */
    }

    .tableSample tr:last-child td {
        border-bottom: none !important;
    }

    /* スマホ用入力ボックス */
    .tableSample input[type="text"],
    .tableSample input[type="email"],
    .tableSample input[type="tel"],
    .tableSample textarea {
        max-width: 100% !important;
        width: 100% !important;
        font-size: 15px !important;  /* 13px から 15px に2pxアップ */
        padding: 10px !important;
    }

    /* スマホ用チェック・ラジオボタンのテキスト */
    .tableSample .form-check-label {
        font-size: 15px !important;  /* 13px から 15px に2pxアップ */
    }
    .tableSample .form-check-inline {
        margin-right: 12px !important;
    }
    
    .tableSample .either-mark,
    .tableSample .note-text {
        font-size: 13px !important;  /* 11px から 13px に2pxアップ */
    }
}

/* ==========================================================================
   Parsleyバリデーション エラーメッセージ共通装飾
   ========================================================================== */
.parsley-error-custom {
    color: #dc3545 !important;
    font-size: 15px !important;
    font-weight: bold !important;
    margin-top: 8px !important;
    display: block !important;
}

/* テキストボックス類がエラーの時の枠線赤化 */
input.parsley-error,
textarea.parsley-error {
    border-color: #dc3545 !important;
    background-color: #fdf2f2 !important;
}

/* Parsleyが自動生成するエラーリスト（箇条書き）のドットを消して赤文字化 */
.parsley-errors-list {
    margin: 5px 0 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
    color: #dc3545 !important;
    font-size: 15px !important;
    font-weight: bold !important;
}
.parsley-errors-list li {
    margin: 0 !important;
    padding: 0 !important;
}

/* ==========================================================================
   【Android（AQUOS wish3等）画面幅360px用の文字ズレ・文字溢れ完全修正】
   ※ユーザー様のご要望に基づき、文字サイズは小さくせず、文字間隔と改行位置の最適化で解決します
   ========================================================================== */

/* ① 大きな文字が途中で1文字だけハミ出て落ちるのを完全に防ぐ */
.problem-span-blue-sp,
.problem-span-pink-sp {
  display: inline-block !important;
  white-space: nowrap !important;     /* 単語の途中での自動改行を禁止 */
  letter-spacing: -0.04em !important; /* 文字サイズはそのまま、文字間を僅かに詰めて360px幅に収めます */
}

.solutions-span-blue-sp,
.solutions-span-green-sp,
.solutions-span-orange-sp {
  display: inline-block !important;
  white-space: nowrap !important;     /* 単語の途中での自動改行を禁止 */
  letter-spacing: -0.04em !important; /* 文字サイズはそのまま、文字間を僅かに詰めて360px幅に収めます */
}

/* ② 自治体一覧（実績カード）の文字の不自然な折れ返りを防止 */
@media (max-width: 767.98px) {
  .status-body .main-text {
    letter-spacing: -0.02em !important;
  }
  .status-full-card {
    letter-spacing: -0.03em !important;
    word-break: keep-all !important;  /* 単語の途中で変に改行されるのを防ぐ */
  }
}

/* ③ 4連特徴カードの文字サイズ23pxを維持するため、画面幅が狭いスマホでは縦1列にする */
@media (max-width: 575.98px) {
  /* 特徴カードが入っているrowの中のcol-6だけをピンポイントで100%幅（1列）に変形させます */
  .bg-beige .row.align-items-stretch:has(.feature-card) > .col-6 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding: 0 5px 15px 5px !important; /* 縦並びになったときのカード上下の隙間を確保 */
  }
}

/* ==========================================================================
   【ウルトラ新技術】文字サイズを落とさず「問題を整理、解決の道筋」を1行にする設定
   ※大画面スマホではそのまま1行、wish3（360px幅）では横幅だけを微圧縮して収めます
   ========================================================================== */
@media (max-width: 767.98px) {
  .highlight-intro-text .text-green-large {
    display: inline-block !important;
    white-space: nowrap !important;     /* 絶対に途中で改行させない指示 */
    letter-spacing: -0.05em !important; /* 文字の間隔を少し引き締める */
  }
}

@media (max-width: 360px) {
  /* AQUOS wish3（画面幅360px）専用の限界突破限界設定 */
  .highlight-intro-text .text-green-large {
    letter-spacing: -0.07em !important; /* 文字間をさらに引き締め */
    transform: scaleX(0.9) !important;   /* 文字の高さ（36pxの迫力）は1ミリも変えず、横幅だけを10%縮めて360pxの画面に美しく収めます */
    transform-origin: center !important;
  }
}


/* ==========================================================================
   フォーム内 Pマーク目立たせ用カスタムスタイル
   ========================================================================== */
.pmark-title-container {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}
.pmark-logo-wrapper {
    flex-shrink: 0;
    width: 75px; /* しっかり目立つ大きさ（フッターより少し小さめ、タイトルに合わせる最適サイズ） */
}
.pmark-form-img {
    width: 100%;
    height: auto;
    display: block;
}
.pmark-title-text-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.pmark-form-title {
    font-weight: bold;
    font-size: 19px; /* 他のstep-title（19px）とサイズを統一 */
    color: #007042;
    margin: 0;
    line-height: 1.4;
}

/* スマホ表示の調整（幅が狭い時に無理に横並びにせず、綺麗に中央寄せする） */
@media (max-width: 575.98px) {
    .pmark-title-container {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 10px;
    }
    .pmark-logo-wrapper {
        width: 80px; /* スマホではさらに少し大きくして視認性を確保 */
    }
    .pmark-form-title {
        font-size: 18px;
    }
}