/* ===============================
   汎用固定ページスタイル page.css
   （レスポンシブ対応付き）
=============================== */

h2 {
  border-left: none !important;
  padding-left: 0 !important;
}

/* === 共通設定（Gutenberg内でも有効化）=== */
.editor-styles-wrapper {
  font-family: "Noto Sans JP", "Roboto", sans-serif;
  color: #333;
  line-height: 1.6;
}

/* 全幅・幅広ブロックにも対応 */
.editor-styles-wrapper .wp-block[data-align="wide"] {
  max-width: 3000px;
}
.editor-styles-wrapper .wp-block[data-align="full"] {
  max-width: 100%;
}


/* 全体レイアウト */
.page-generic {
  margin: 0 auto;
  background: #fff;
  font-family: "Noto Sans JP", "Roboto", sans-serif;
  color: #333;
  padding-top: 80px; 
  line-height: 1.6;
}

/* 各パーツ */
.page-content-wrapper {
  width: 100%;
}

.page-title-area {
  margin-bottom: 2rem;
  border-bottom: 2px solid #0077A9;
  padding-bottom: 0.3em;
}

.page-title {
  color: #0077A9;
  font-size: 2rem;
  font-weight: 700;
  margin: 0;
  text-align: center;
}

/* Gutenbergブロックの基本整形 */
.page-body p {
  margin-bottom: 0.8em;
}

.page-body h2 {
  color: #222;
  font-size: 1.4rem;
  margin-top: 2.0em;
  margin-bottom: 0.6em;
  border-left: 4px solid #0077A9;
  padding-left: .5em;
}

.page-body h3 {
  font-size: 1.2rem;
  margin-top: 1.4em;
  margin-bottom: 0.5em;
}

.page-body h4 {
  font-size: 1.1rem;
  margin-top: 1.2em;
  margin-bottom: 0.4em;
  color: #444;
}

.page-body ol,
.page-body ul {
  margin-left: 1.5em;
  margin-bottom: 1em;
}

.page-body li {
  margin-bottom: 0.4em;
}

.page-body strong {
  color: #000;
}

/* 引用 */
.page-body blockquote {
  border-left: 3px solid #ccc;
  padding-left: 1em;
  color: #666;
  font-style: italic;
}

/* テーブル */
.page-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.page-body th,
.page-body td {
  border: 1px solid #ddd;
  padding: 8px 10px;
}
.page-body th {
  background: #f0f6fa;
}

/* 画像 */
.page-body img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1rem auto;
}

/* リンク */
.page-body a {
  color: #0077A9;
  text-decoration: underline;
}
.page-body a:hover {
  color: #005f86;
}

/* ===============================
      レスポンシブ対応（スマホ）
=============================== */
@media screen and (max-width: 768px) {

  .page-generic {
    padding: 60px 15px;
  }

  .page-title {
    font-size: 1.6rem;
    line-height: 1.3;
  }

  .page-body h2 {
    font-size: 1.2rem;
    border-left-width: 3px;
    margin-top: 1.6em;
    padding-left: .4em;
  }

  .page-body h3 {
    font-size: 1.05rem;
  }

  .page-body p,
  .page-body li {
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .page-body table,
  .page-body th,
  .page-body td {
    font-size: 0.85rem;
  }

  .page-body {
    word-break: break-word;
  }
}

/* 超小型端末（iPhone SEなど） */
@media screen and (max-width: 480px) {
  .page-generic {
    padding: 40px 10px;
  }

  .page-title {
    font-size: 1.4rem;
  }

  .page-body h2 {
    font-size: 1.1rem;
  }

  .page-body p {
    font-size: 0.9rem;
  }
}

.wpcf7 form {
  max-width: 700px;
  margin: 0 auto;
  background: #fff;
  padding: 0px 40px;
  border: 1px solid #eee;
  border-radius: 8px;
}

.wpcf7 form h2 {
  color: #0077A9;
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 1em;
}

.wpcf7 .lead {
  color: #666;
  margin-bottom: 20px; /* ← 下の余白を大きくした */
}
.wpcf7 form p {
  margin-bottom: 0.4em;  /* ←18〜20pxくらいあるのを約10px程度に */
}

.wpcf7-form-control {
  width: 100%;
  box-sizing: border-box;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 textarea {
  width: 100%;
  padding: 10px;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-bottom: 14px; /* ← 下の余白を大きくした */
}

.wpcf7-form-control-wrap[data-name="inquiry-type"] {
  display: block;          /* ブロック要素化（横並び防止） */
  margin-bottom: 1.4em;      /* 下余白 */
}

.wpcf7 textarea {
  min-height: 150px;
}

.btn-primary {
  display: inline-block;
  background: #0077A9;
  color: #fff;
  font-weight: bold;
  padding: 12px 40px;
  border: none;
  border-radius: 50px;
  cursor: pointer;
}

.btn-primary:hover {
  background: #005f86;
}



/* ---------- 修正版：usecase-links-split（カード内ボタン対応） ---------- */
.usecase-links-split {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;             /* ✅ 折り返し許可（狭いカード内でも潰れない） */
  margin-top: 18px;
}

/* 左側リンク */
.usecase-links-split .back-link {
  font-size: 0.9em;
  color: #0077A9;
  text-decoration: none;
  white-space: nowrap;
  flex: 1 1 auto;
}
.usecase-links-split .back-link:hover {
  text-decoration: underline;
}

/* 右側ボタン */
.usecase-links-split .btn-primary {
  background: #0077A9;
  color: #fff;
  padding: 8px 18px;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  transition: 0.3s;
  white-space: nowrap;        /* ✅ テキスト折り返し禁止 */
  flex: 0 0 auto;             /* ✅ ボタン幅を固定扱い */
}
.usecase-links-split .btn-primary:hover {
  background: #005f86;
}

/* 狭い画面では縦積み中央 */
@media (max-width: 768px) {
  .usecase-links-split {
    flex-direction: column;
    align-items: center;
  }
}


/* ストアバッジ並び */
.store-badges {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 15px;
}
.store-badges img {
  height: 40px;
  display: block;
}

.page-id-521 .page-title-area {
  display: none !important;
}


/* 固定ページのコンテンツエリアに左右余白を追加 */
.page-generic .page-content-wrapper {
    max-width: 1000px;    /* 読みやすい最大幅 */
    margin-left: auto;    /* 中央寄せ */
    margin-right: auto;   /* 中央寄せ */
    padding-left: 5%;     /* PC時の左余白 */
    padding-right: 5%;    /* PC時の右余白 */
    box-sizing: border-box;
}

/* スマホ閲覧時の余白設定（より狭い画面向け） */
@media (max-width: 768px) {
    .page-generic .page-content-wrapper {
        padding-left: 20px;  /* スマホ時の左余白 */
        padding-right: 20px; /* スマホ時の右余白 */
    }
}

/* 本文テキストの行間と余白を微調整 */
.entry-content {
    margin-top: 40px;
    margin-bottom: 40px;
}