@charset "UTF-8";
/* ==========================================================================
   固定ページ専用スタイル（会社案内、料金、お問い合わせ、こだわり、プライバシー等）
   Theme: アドフロンティア (ad frontier) - page.css
   WordPress標準エディタ（Gutenberg / クラシック）完全対応・高可読性デザイン
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. レイアウト & 記事コンテナ (フラット・余白設計)
   -------------------------------------------------------------------------- */
.subpage-main {
  background-color: #ffffff;
  min-height: 60vh;
}

.page-section,
.subpage-section {
  width: 100%;
  background-color: #ffffff;
  padding-block: clamp(72px, 7vw, 100px) clamp(64px, 6vw, 96px);
  position: relative;
  box-sizing: border-box;
}

@media (max-width: 768px) {

  .page-section,
  .subpage-section {
    padding-block: clamp(48px, 6vw, 64px) clamp(48px, 6vw, 64px);
  }
}

.page-container,
.subpage-container {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

@media (max-width: 1320px) {

  .page-container,
  .subpage-container {
    padding-left: clamp(16px, 3vw, 24px);
    padding-right: clamp(16px, 3vw, 24px);
  }
}

@media (max-width: 768px) {

  .page-container,
  .subpage-container {
    padding-left: 16px;
    padding-right: 16px;
  }
}

.subpage-content-wrapper {
  max-width: 100%;
  margin: 0 auto;
  width: 100%;
}

.page-article {
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  border: none;
  margin-bottom: 48px;
}

/* アイキャッチ画像 */
.page-thumbnail-wrap {
  margin-bottom: clamp(24px, 4vw, 40px);
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
}

.page-thumbnail {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* --------------------------------------------------------------------------
   2. タイポグラフィ & 本文装飾 (黄金比・モジュラースケール・垂直リズム設計)
   -------------------------------------------------------------------------- */
.entry-content {
  color: var(--color-text, #334155);
  font-size: 1rem;
  line-height: 1.9;
  letter-spacing: 0.03em;
  word-break: break-word;
}

/* ==========================================================================
   大見出し (H2) - 【ユーザー承認済】グラデーション左バー & フェードアンダーライン
   ========================================================================== */
.entry-content h2 {
  font-size: clamp(1.25rem, 2.5vw, 1.85rem);
  font-weight: 800;
  color: #0F172A;
  letter-spacing: -0.015em;
  line-height: 1.4;
  margin: clamp(48px, 6vw, 80px) 0 30px;
  padding: 0 0 14px 0;
  position: relative;
  background: none;
  border: none;
  border-radius: 0;
  word-break: break-word;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

/* 左アクセントバー（文字の高さに完全同期） */
.entry-content h2::before {
  content: "";
  display: block;
  width: 4px;
  height: 0.95em;
  margin-top: 0.2em;
  background: linear-gradient(180deg, var(--color-main, #15308F) 0%, var(--color-sub, #2E8FD5) 100%);
  border-radius: 0;
  flex-shrink: 0;
}

/* 下部ヘアライン（右に柔らかく溶け込むグラデーション） */
.entry-content h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(21, 48, 143, 0.25) 0%, rgba(226, 232, 240, 0.8) 40%, rgba(226, 232, 240, 0) 100%);
}

.entry-content h2:first-child {
  margin-top: 0;
}

/* ==========================================================================
   中見出し (H3) - 下線・斜線を排した、シャープ左ボーダー＆フェードハイライト
   ========================================================================== */
.entry-content h3 {
  font-size: clamp(1.18rem, 1.8vw, 1.36rem);
  font-weight: 750;
  color: #0F172A;
  letter-spacing: -0.015em;
  line-height: 1.45;
  margin: clamp(44px, 5vw, 60px) 0 20px;
  padding: 8px 18px;
  background: linear-gradient(90deg, #F0F4FA 0%, rgba(240, 244, 250, 0.4) 70%, transparent 100%);
  border-radius: 0;
  border: none;
  border-left: 3px solid var(--color-main, #15308F);
  position: relative;
  display: block;
}

.entry-content h3::before,
.entry-content h3::after {
  display: none;
}

/* ==========================================================================
   小見出し (H4) - 控えめでスマートなサブタイトル
   ========================================================================== */
.entry-content h4 {
  font-size: 1.08rem;
  font-weight: 700;
  color: #1E293B;
  letter-spacing: -0.01em;
  margin: clamp(28px, 3vw, 36px) 0 10px;
  padding: 0;
  border: none;
  line-height: 1.55;
}

.entry-content h4::before,
.entry-content h4::after {
  display: none;
}

/* ==========================================================================
   スマホ表示時の見出し & 垂直スペース最適化 (黄金比リズム)
   ========================================================================== */
@media (max-width: 640px) {

  /* H2 大見出し */
  .entry-content h2 {
    font-size: clamp(1.18rem, 5.2vw, 1.38rem);
    line-height: 1.42;
    padding: 0 0 10px 0;
    margin: 44px 0 16px;
    gap: 10px;
  }

  .entry-content h2::before {
    width: 3.5px;
    height: 0.95em;
    margin-top: 0.2em;
  }

  /* H3 中見出し */
  .entry-content h3 {
    font-size: clamp(1.08rem, 4.4vw, 1.22rem);
    line-height: 1.45;
    padding: 7px 14px;
    margin: 34px 0 14px;
    border-radius: 0;
  }

  /* H4 小見出し */
  .entry-content h4 {
    font-size: 1.02rem;
    line-height: 1.5;
    margin: 26px 0 10px;
  }
}

/* 小見出し (H5, H6) */
.entry-content h5,
.entry-content h6 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #475569;
  margin: 24px 0 8px;
  padding: 0;
  border: none;
  line-height: 1.5;
}

/* ==========================================================================
   本文段落 (P) - 黄金比の行間とスペース設計
   ========================================================================== */
.entry-content p {
  margin-bottom: clamp(24px, 2.8vw, 32px);
  line-height: 1.95;
  color: var(--color-text, #334155);
}

.entry-content p:last-child {
  margin-bottom: 0;
}

/* リード文 (リードクラス) - 脱箱型・シャープ・エディトリアル */
.entry-content .lead,
.entry-content p.lead {
  position: relative;
  font-size: 1rem;
  font-weight: 500;
  line-height: 2.1;
  color: #0F172A;
  letter-spacing: 0.025em;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(239, 246, 255, 0.88) 100%);
  border: none;
  border-radius: 0;
  padding: clamp(28px, 4vw, 38px) clamp(24px, 4vw, 40px) clamp(56px, 7vw, 76px) clamp(24px, 4vw, 40px);
  margin-top: 0;
  margin-bottom: clamp(44px, 6vw, 64px);
  box-shadow: none;
  overflow: hidden;
  z-index: 1;
}

/* 上部ライン・擬似要素テキストは不要なため非表示 */
.entry-content .lead::before,
.entry-content p.lead::before,
.entry-content .lead::after,
.entry-content p.lead::after {
  content: none !important;
  display: none !important;
}

.entry-content .lead strong,
.entry-content p.lead strong {
  color: var(--color-main, #15308F);
  font-weight: 700;
  background: linear-gradient(transparent 65%, rgba(46, 143, 213, 0.22) 65%);
}

@media (max-width: 768px) {

  .entry-content .lead,
  .entry-content p.lead {
    padding: 24px 18px 46px 18px;
    margin-bottom: 36px;
    font-size: 0.9375rem;
    line-height: 1.95;
    border-radius: 0;
  }

  .entry-content .lead::after,
  .entry-content p.lead::after {
    font-size: clamp(1.6rem, 7vw, 2.4rem);
    bottom: 22px;
    right: 12px;
    left: auto;
    top: auto;
  }
}

.entry-content .lead strong,
.entry-content p.lead strong {
  color: #0F172A;
  font-weight: 750;
  background: linear-gradient(transparent 60%, rgba(46, 143, 213, 0.15) 60%);
  padding: 0 2px;
  position: relative;
  z-index: 1;
}

/* 強調文字 (strong, b) */
.entry-content strong,
.entry-content b {
  font-weight: 700;
  color: #0F172A;
}

/* イタリック (em) */
.entry-content em {
  font-style: italic;
}

/* マーカー強調 (mark) - テーマアクセントオレンジの繊細なアンダーハイライト */
.entry-content mark {
  background: linear-gradient(transparent 65%, rgba(244, 125, 32, 0.22) 65%);
  padding: 0 4px;
  font-weight: 700;
  border-radius: 2px;
}

/* リンク */
.entry-content a {
  color: var(--color-sub, #2E8FD5);
  text-decoration: underline;
  text-underline-offset: 4px;
  font-weight: 600;
  transition: color var(--transition-fast, 0.2s), text-decoration-color var(--transition-fast, 0.2s);
}

.entry-content a:hover {
  color: var(--color-main, #15308F);
  text-decoration-color: var(--color-main, #15308F);
}

/* ==========================================================================
   リスト (UL, OL) - 幾何学的インジケーター & 均整の取れたインデント
   ========================================================================== */
.entry-content ul,
.entry-content ol {
  margin: 0 0 32px 0;
  padding-left: 0;
  list-style: none;
}

.entry-content ul li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 12px;
  line-height: 1.85;
}

.entry-content ul li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-sub, #2E8FD5);
  border-radius: 0;
  box-shadow: none;
}

.entry-content ol {
  counter-reset: custom-ol-counter;
}

.entry-content ol li {
  counter-increment: custom-ol-counter;
  position: relative;
  padding-left: 32px;
  margin-bottom: 12px;
  line-height: 1.85;
}

.entry-content ol li::before {
  content: counter(custom-ol-counter);
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 22px;
  height: 22px;
  background-color: var(--color-main, #15308F);
  border: none;
  border-radius: 0;
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.entry-content li>ul,
.entry-content li>ol {
  margin-top: 10px;
  margin-bottom: 10px;
  margin-left: 8px;
}

/* ==========================================================================
   定義リスト (DL, DT, DD) - プライバシーポリシー・利用規約・各種条項
   ========================================================================== */
.entry-content dl {
  margin: 36px 0;
  display: block;
}

.entry-content dt {
  font-size: 0.975rem;
  font-weight: 700;
  color: var(--color-main, #15308F);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 16px;
  background: #F0F4FA;
  border: none;
  border-radius: 0;
  margin: 0 0 14px 0;
  line-height: 1.4;
  width: fit-content;
  letter-spacing: 0.02em;
}

.entry-content dt:not(:first-child) {
  margin-top: 32px;
}

.entry-content dt::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  background: linear-gradient(135deg, var(--color-main, #15308F), var(--color-sub, #2E8FD5));
  border-radius: 0;
  flex-shrink: 0;
}

.entry-content dd {
  margin: 0 0 28px 0;
  padding: 0 4px 0 8px;
  font-size: 0.95rem;
  line-height: 1.85;
  color: var(--color-text, #334155);
}

.entry-content dd:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   引用 (Blockquote) - エディトリアル・クォートデザイン
   ========================================================================== */
.entry-content blockquote {
  position: relative;
  background: #F8FAFC;
  border-left: 4px solid var(--color-main, #15308F);
  padding: 24px 28px;
  margin: 36px 0;
  border-radius: 0;
  color: #475569;
  font-style: normal;
  box-shadow: none;
}

.entry-content blockquote::before {
  content: "“";
  position: absolute;
  right: 20px;
  bottom: -15px;
  font-size: 4.5rem;
  line-height: 1;
  font-family: Georgia, serif;
  color: rgba(21, 48, 143, 0.06);
  pointer-events: none;
}

.entry-content blockquote p {
  margin-bottom: 12px;
  line-height: 1.85;
}

.entry-content blockquote p:last-child {
  margin-bottom: 0;
}

/* 区切り線 (HR) */
.entry-content hr {
  border: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--color-border, #E2E8F0) 15%, var(--color-border, #E2E8F0) 85%, transparent 100%);
  margin: clamp(48px, 5vw, 64px) 0;
}

/* 画像 */
.entry-content img {
  max-width: 100%;
  height: auto;
  border-radius: 0;
  margin: 28px auto;
  display: block;
}

/* --------------------------------------------------------------------------
   3. Google Map & 埋め込みコンテンツ (100%幅レスポンシブ)
   -------------------------------------------------------------------------- */
.entry-content iframe,
.entry-content iframe[src*="google.com/maps"],
.entry-content .wp-block-embed,
.entry-content .wp-block-embed__wrapper {
  width: 100% !important;
  max-width: 100% !important;
  display: block;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 28px 0;
}

.entry-content iframe[src*="google.com/maps"],
.entry-content iframe {
  min-height: 400px;
  height: clamp(360px, 40vw, 480px);
}

@media (max-width: 768px) {

  .entry-content iframe[src*="google.com/maps"],
  .entry-content iframe {
    min-height: 280px;
    height: 300px;
    border-radius: 0;
  }
}

/* --------------------------------------------------------------------------
   4. WordPress標準ブロック & テーブル (プロフェッショナル・デザイン)
   -------------------------------------------------------------------------- */

/* テーブル (wp-block-table / table) - 脱箱型・控えめな水平ライン設計 */
.entry-content table {
  width: 100% !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  margin: 24px 0 36px;
  font-size: 0.95rem;
  background: #ffffff;
  border: none !important;
  border-top: 1px solid #E2E8F0 !important;
  border-bottom: 1px solid #E2E8F0 !important;
  border-radius: 0 !important;
  overflow: hidden;
  box-shadow: none;
}

.wp-block-table {
  width: 100%;
  overflow-x: auto;
  margin: 24px 0 36px;
  -webkit-overflow-scrolling: touch;
}

/* ラッパー内のtableはマージン0にして二重余白を完全防止 */
.wp-block-table table {
  margin: 0 !important;
}

/* 見出しの直後にテーブルやブロックが来た際の上質でゆとりのあるスペーシング */
.entry-content h2+table,
.entry-content h2+.wp-block-table,
.entry-content h3+table,
.entry-content h3+.wp-block-table,
.entry-content h4+table,
.entry-content h4+.wp-block-table {
  margin-top: 20px !important;
}

.entry-content h2+.wp-block-media-text,
.entry-content h3+.wp-block-media-text,
.entry-content h4+.wp-block-media-text {
  margin-top: 24px !important;
}

.entry-content thead,
.wp-block-table thead,
.entry-content .wp-block-table thead {
  border-bottom: 1px solid #CBD5E1 !important;
  border-bottom-width: 1px !important;
}

.entry-content thead th,
.wp-block-table thead th {
  background: #E5EEF9 !important;
  color: #0F172A !important;
  font-weight: 800;
  padding: 15px 22px !important;
  text-align: left;
  border-bottom: 1px solid #CBD5E1 !important;
  letter-spacing: 0.02em;
  font-size: 0.95rem;
}

.entry-content tr,
.wp-block-table tr {
  transition: background-color var(--transition-fast, 0.2s);
}

.entry-content tr:hover,
.wp-block-table tr:hover {
  background-color: #FAFCFE;
}

.entry-content th,
.entry-content td,
.wp-block-table th,
.wp-block-table td {
  padding: 15px 20px !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: 1px solid var(--color-border, #E2E8F0) !important;
  text-align: left;
  line-height: 1.75;
  vertical-align: top;
}

/* 1列目（見出し・項目名）のスマートなスタイリング */
.entry-content th,
.wp-block-table th,
.entry-content tbody tr>td:first-child:not(:last-child),
.wp-block-table tbody tr>td:first-child:not(:last-child) {
  background: #FAFCFE;
  color: #1E293B !important;
  font-weight: 700;
  width: 28%;
  min-width: 140px;
  letter-spacing: 0.02em;
  border-right: 1px solid #EEF2F6 !important;
}

.entry-content td,
.wp-block-table td {
  color: var(--color-text, #2D3748);
}

.entry-content tr:last-child th,
.entry-content tr:last-child td,
.wp-block-table tr:last-child th,
.wp-block-table tr:last-child td {
  border-bottom: none !important;
}

.table-responsive {
  width: 100%;
  overflow-x: auto;
  margin: 24px 0 32px;
  -webkit-overflow-scrolling: touch;
}

/* ==========================================================================
   スマホ表示時のテーブル最適化（案1：縦積みカードレイアウト）
   横幅の圧迫を完全解消し、1行ごとに「項目（上）」「内容（下）」のカードに自動変換
   ========================================================================== */
@media (max-width: 768px) {

  /* ヘッダー行（項目/内容の見出し）は不要になるため非表示 */
  .entry-content thead,
  .wp-block-table thead {
    display: none !important;
  }

  .entry-content table,
  .wp-block-table table,
  .entry-content tbody,
  .wp-block-table tbody {
    display: block !important;
    width: 100% !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* 各行（tr）を独立したブロック化（太い上部ボーダーは廃止） */
  .entry-content tbody tr,
  .wp-block-table tbody tr {
    display: block !important;
    background: #FFFFFF !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 0 !important;
    margin-bottom: 14px !important;
    overflow: hidden !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease !important;
  }

  .entry-content tbody tr:last-child,
  .wp-block-table tbody tr:last-child {
    margin-bottom: 0 !important;
  }

  /* 1列目（項目名）：上部の帯ラベルとして全幅表示 */
  .entry-content tbody tr>th,
  .wp-block-table tbody tr>th,
  .entry-content tbody tr>td:first-child:not(:last-child),
  .wp-block-table tbody tr>td:first-child:not(:last-child) {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    box-sizing: border-box !important;
    background: #F8FAFD !important;
    color: var(--color-main, #15308F) !important;
    font-weight: 800 !important;
    font-size: 0.95rem !important;
    padding: 11px 16px !important;
    border-right: none !important;
    border-bottom: 1px solid #E2E8F0 !important;
    letter-spacing: 0.02em !important;
  }

  /* 2列目以降（内容・本文）：下部のメインエリアとして全幅表示 */
  .entry-content tbody tr>td:last-child,
  .wp-block-table tbody tr>td:last-child {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 14px 16px !important;
    font-size: 0.94rem !important;
    line-height: 1.8 !important;
    color: var(--color-text, #334155) !important;
    border-bottom: none !important;
    background: #FFFFFF !important;
  }
}

/* メディアとテキスト (wp-block-media-text) - プロフェッショナルな余白と整列 */
.entry-content .wp-block-media-text {
  display: grid;
  grid-template-columns: 50% 1fr;
  grid-template-rows: auto;
  align-items: center;
  gap: clamp(24px, 4vw, 44px);
  margin: clamp(36px, 4.5vw, 56px) 0;
}

.entry-content .wp-block-media-text.has-media-on-the-right {
  grid-template-columns: 1fr 50%;
}

.entry-content .wp-block-media-text__media {
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
}

.entry-content .wp-block-media-text__media img,
.entry-content .wp-block-media-text__media video {
  width: 100%;
  height: 100%;
  max-width: unset;
  vertical-align: middle;
  object-fit: cover;
  display: block;
}

.entry-content .wp-block-media-text__content {
  padding: 0;
  word-break: break-word;
}

.entry-content .wp-block-media-text__content p:last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .entry-content .wp-block-media-text.is-stacked-on-mobile {
    grid-template-columns: 100% !important;
    gap: 20px;
  }
}

/* カラム (wp-block-columns) */
.entry-content .wp-block-columns {
  display: flex;
  box-sizing: border-box;
  flex-wrap: wrap;
  gap: clamp(20px, 3.5vw, 36px);
  margin: clamp(36px, 4.5vw, 56px) 0;
}

.entry-content .wp-block-column {
  flex-grow: 1;
  min-width: 0;
  word-break: break-word;
  overflow-wrap: break-word;
}

@media (max-width: 781px) {
  .entry-content .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
    flex-basis: 100% !important;
    margin-bottom: 16px;
  }
}

/* 画像 & キャプション (wp-block-image / figcaption) */
.entry-content .wp-block-image {
  margin: clamp(28px, 3.5vw, 44px) 0;
}

.entry-content .wp-block-image img {
  border-radius: 0;
  box-shadow: none;
}

.entry-content figcaption {
  font-size: 0.85rem;
  color: var(--color-text-muted, #64748B);
  text-align: center;
  margin-top: 10px;
  line-height: 1.6;
}

/* ボタン (wp-block-button / wp-block-button__link) */
.entry-content .wp-block-buttons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin: clamp(32px, 4vw, 48px) 0;
}

.entry-content .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff !important;
  background: linear-gradient(135deg, var(--color-main, #15308F) 0%, var(--color-sub, #2E8FD5) 100%);
  border-radius: 0;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(21, 48, 143, 0.25);
  transition: all var(--transition-fast, 0.25s) ease;
  letter-spacing: 0.03em;
}

.entry-content .wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(21, 48, 143, 0.35);
  color: #ffffff !important;
}

.entry-content .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  border: 2px solid var(--color-main, #15308F);
  color: var(--color-main, #15308F) !important;
  box-shadow: none;
}

.entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--color-main, #15308F);
  color: #ffffff !important;
}

/* プルクォート (wp-block-pullquote) */
.entry-content .wp-block-pullquote {
  padding: clamp(28px, 4vw, 44px);
  margin: clamp(36px, 4.5vw, 56px) 0;
  border-top: 2px solid var(--color-main, #15308F);
  border-bottom: 2px solid var(--color-main, #15308F);
  background: #F8FAFD;
  border-radius: 0;
  text-align: center;
}

.entry-content .wp-block-pullquote blockquote p {
  font-size: clamp(1.15rem, 1.8vw, 1.35rem);
  line-height: 1.8;
  font-weight: 600;
  color: #0F172A;
  margin-bottom: 12px;
}

.entry-content .wp-block-pullquote cite {
  font-size: 0.875rem;
  color: var(--color-text-muted, #64748B);
  font-style: normal;
}

/* 料金詳細テーブル (price-detail-table) */
.price-detail-table {
  width: 100%;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  text-align: left;
  min-width: 600px;
  background: #ffffff;
  border: none !important;
  border-top: 1px solid #E2E8F0 !important;
  border-bottom: 1px solid #E2E8F0 !important;
  border-radius: 0 !important;
  overflow: hidden;
  box-shadow: none;
}

.price-detail-table th,
.price-detail-table td {
  padding: 18px 24px;
  border-bottom: 1px solid var(--color-border, #E2E8F0);
  vertical-align: top;
}

.price-detail-table th {
  background: var(--color-bg-sub, #F8FAFC);
  color: var(--color-main, #15308F);
  font-weight: 700;
  width: 28%;
  border-right: 1px solid var(--color-border, #E2E8F0);
}

.price-detail-table tr:last-child th,
.price-detail-table tr:last-child td {
  border-bottom: none;
}

/* スマホ用テーブル最適化 */
@media (max-width: 640px) {

  .entry-content table,
  .wp-block-table table {
    font-size: 0.9rem;
  }

  .entry-content th,
  .entry-content td,
  .wp-block-table th,
  .wp-block-table td {
    padding: 14px 16px !important;
  }

  .entry-content th,
  .wp-block-table th,
  .entry-content tbody tr>td:first-child:not(:last-child),
  .wp-block-table tbody tr>td:first-child:not(:last-child) {
    width: 34%;
    min-width: 110px;
  }
}

/* --------------------------------------------------------------------------
   5. 情報ボックス & コールアウト (脱箱型・左アクセントバー設計)
   -------------------------------------------------------------------------- */
.info-box,
.point-box {
  background: var(--color-sub-light, #EBF4FC);
  border: none;
  border-left: 4px solid var(--color-main, #15308F);
  border-radius: 0;
  padding: 24px;
  margin: 32px 0;
}

.info-box-title,
.point-box-title {
  font-weight: 700;
  color: var(--color-main, #15308F);
  font-size: 1.1rem;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ==========================================================================
   目次プラグイン（Easy Table of Contents / TOC+ 等）専用スタイル
   ========================================================================== */
#ez-toc-container,
.ez-toc-v2_0_88,
.ez-toc-widget-container,
.toc_container,
.rtoc-wrapper {
  background: var(--color-bg-sub, #F8FAFC) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: clamp(20px, 3.5vw, 28px) !important;
  margin: clamp(28px, 4vw, 40px) 0 !important;
  width: auto !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* 目次タイトルヘッダー */
#ez-toc-container .ez-toc-title-container,
.toc_container .toc_title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-bottom: 1px solid var(--color-border, #E2E8F0) !important;
  padding-bottom: 12px !important;
  margin-bottom: 16px !important;
  gap: 12px !important;
}

#ez-toc-container .ez-toc-title,
.toc_container .toc_title {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: var(--color-main, #15308F) !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  line-height: 1.4 !important;
}

#ez-toc-container .ez-toc-title::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 1em;
  background: linear-gradient(180deg, var(--color-main, #15308F) 0%, var(--color-sub, #2E8FD5) 100%);
  border-radius: 2px;
}

#ez-toc-container .ez-toc-title-toggle a {
  color: var(--color-text-muted, #64748B) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  transition: color var(--transition-fast, 0.2s) !important;
}

#ez-toc-container .ez-toc-title-toggle a:hover {
  color: var(--color-main, #15308F) !important;
}

/* 目次内部リストの装飾リセット（本文リストマーク ● の二重被りを完全解消） */
#ez-toc-container ul,
#ez-toc-container ol,
.ez-toc-widget-container ul,
.ez-toc-widget-container ol,
.toc_container ul,
.toc_container ol,
.rtoc-wrapper ul,
.rtoc-wrapper ol,
.entry-content #ez-toc-container ul,
.entry-content #ez-toc-container ol {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#ez-toc-container ul li,
#ez-toc-container ol li,
.ez-toc-widget-container ul li,
.ez-toc-widget-container ol li,
.toc_container ul li,
.toc_container ol li,
.rtoc-wrapper ul li,
.rtoc-wrapper ol li,
.entry-content #ez-toc-container li {
  padding-left: 0 !important;
  margin-bottom: 8px !important;
  line-height: 1.7 !important;
  position: static !important;
}

/* 本文用疑似要素（::before の ● やカウンターバッジ）を完全に非表示化 */
#ez-toc-container li::before,
#ez-toc-container ul li::before,
#ez-toc-container ol li::before,
.ez-toc-widget-container li::before,
.toc_container li::before,
.rtoc-wrapper li::before,
.entry-content #ez-toc-container li::before {
  content: none !important;
  display: none !important;
}

#ez-toc-container li::after,
#ez-toc-container ul li::after,
#ez-toc-container ol li::after,
.entry-content #ez-toc-container li::after {
  content: none !important;
  display: none !important;
}

/* 目次リンクテキスト */
#ez-toc-container a,
.toc_container a,
.rtoc-wrapper a {
  color: var(--color-text, #334155) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  transition: all var(--transition-fast, 0.2s) !important;
  display: inline !important;
}

#ez-toc-container a:hover,
.toc_container a:hover,
.rtoc-wrapper a:hover {
  color: var(--color-sub, #2E8FD5) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* カウンター・数字（プラグイン標準の番号） */
#ez-toc-container .ez-toc-counter {
  color: var(--color-main, #15308F) !important;
  font-weight: 700 !important;
  margin-right: 6px !important;
}

/* 下位階層（H3, H4）のインデント */
#ez-toc-container ul.ez-toc-list-level-3,
#ez-toc-container ul.ez-toc-list-level-4,
#ez-toc-container ul.ez-toc-list-level-5,
#ez-toc-container ul.ez-toc-list-level-6,
.toc_container ul ul {
  margin: 6px 0 6px 18px !important;
  padding-left: 0 !important;
}

#ez-toc-container ul.ez-toc-list-level-3 li a,
#ez-toc-container ul.ez-toc-list-level-4 li a,
.toc_container ul ul li a {
  font-size: 0.9rem !important;
  color: var(--color-text-muted, #475569) !important;
  font-weight: 500 !important;
}

/* --------------------------------------------------------------------------
   6. ページネーション (wp_link_pages)
   -------------------------------------------------------------------------- */
.page-links {
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid var(--color-border, #E2E8F0);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.page-links-title {
  font-weight: 700;
  color: var(--color-text-muted, #64748B);
  font-size: 0.9rem;
  margin-right: 8px;
}

.page-links a,
.page-links>.page-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 12px;
  border-radius: 0;
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
}

.page-links a {
  background: var(--color-bg-sub, #F8FAFC);
  color: var(--color-text, #2D3748);
  border: 1px solid var(--color-border, #E2E8F0);
  transition: all var(--transition-fast, 0.2s);
}

.page-links a:hover {
  background: var(--color-main, #15308F);
  color: #ffffff;
  border-color: var(--color-main, #15308F);
}

.page-links>.page-number {
  background: var(--color-main, #15308F);
  color: #ffffff;
}

/* --------------------------------------------------------------------------
   7. お問い合わせフォーム (Contact Form 7 / カスタムフォーム)
   -------------------------------------------------------------------------- */
.contact-form-box {
  max-width: 800px;
  margin: 0 auto;
  background: #ffffff;
  padding: clamp(24px, 4vw, 48px);
  border-radius: 0;
  border: none;
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.05);
}

.form-row {
  margin-bottom: 24px;
}

.form-row label {
  display: block;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--color-text, #2D3748);
  font-size: 0.95rem;
}

.form-req {
  display: inline-block;
  background: #EF4444;
  color: #ffffff;
  font-size: 0.725rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 0;
  margin-left: 8px;
  vertical-align: middle;
}

.form-opt {
  display: inline-block;
  background: #94A3B8;
  color: #ffffff;
  font-size: 0.725rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 0;
  margin-left: 8px;
  vertical-align: middle;
}

.form-input,
.form-textarea,
.entry-content input[type="text"],
.entry-content input[type="email"],
.entry-content input[type="tel"],
.entry-content input[type="url"],
.entry-content textarea,
.entry-content select,
.wpcf7-form-control-wrap input[type="text"],
.wpcf7-form-control-wrap input[type="email"],
.wpcf7-form-control-wrap input[type="tel"],
.wpcf7-form-control-wrap input[type="url"],
.wpcf7-form-control-wrap textarea,
.wpcf7-form-control-wrap select {
  width: 100%;
  padding: 13px 16px;
  border: 1.5px solid var(--color-border, #E2E8F0);
  border-radius: 0;
  font-size: 1rem;
  font-family: inherit;
  color: var(--color-text, #2D3748);
  background-color: #ffffff;
  box-sizing: border-box;
  transition: border-color var(--transition-fast, 0.2s), box-shadow var(--transition-fast, 0.2s);
}

.form-input:focus,
.form-textarea:focus,
.entry-content input:focus,
.entry-content textarea:focus,
.entry-content select:focus,
.wpcf7-form-control-wrap input:focus,
.wpcf7-form-control-wrap textarea:focus,
.wpcf7-form-control-wrap select:focus {
  border-color: var(--color-sub, #2E8FD5);
  box-shadow: 0 0 0 3px rgba(46, 143, 213, 0.15);
  outline: none;
}

/* 送信ボタングループの親コンテナ（中央配置＆十分な上下マージン） */
.wpcf7 form p.submit,
.wpcf7 form .submit,
.wpcf7-form p.submit,
.wpcf7-form .submit,
.entry-content p.submit,
.entry-content .submit,
.wp-block-table p.submit,
.wp-block-table .submit {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  margin: 40px auto 20px auto !important;
  padding: 0 !important;
  width: 100% !important;
  clear: both !important;
  position: relative !important;
}

.wpcf7-submit,
.btn-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: var(--color-cta, #F47D20) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  letter-spacing: 0.05em !important;
  padding: 16px 56px !important;
  min-width: 280px !important;
  max-width: 100% !important;
  border-radius: 0 !important;
  border: none !important;
  border-bottom: 3px solid #9A3412 !important;
  cursor: pointer !important;
  box-shadow: var(--shadow-cta, 0 8px 20px rgba(244, 125, 32, 0.28)) !important;
  transition: all var(--transition-base, 0.3s) ease !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.wpcf7-submit:hover,
.btn-submit:hover {
  background-color: var(--color-cta-hover, #DF6C14) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 24px rgba(244, 125, 32, 0.38) !important;
}

/* Contact Form 7 のスピナー（送信中のローディング表示）の位置調整 */
.wpcf7-spinner {
  margin: 0 0 0 14px !important;
  position: absolute !important;
  right: calc(50% - 170px) !important;
}

@media (max-width: 640px) {

  .wpcf7 form p.submit,
  .wpcf7 form .submit,
  .wpcf7-form p.submit,
  .wpcf7-form .submit,
  .entry-content p.submit,
  .entry-content .submit,
  .wp-block-table p.submit,
  .wp-block-table .submit {
    margin: 28px auto 12px auto !important;
  }

  .wpcf7-submit,
  .btn-submit {
    width: 100% !important;
    max-width: 320px !important;
    min-width: auto !important;
    padding: 15px 32px !important;
    font-size: 1.05rem !important;
  }

  .wpcf7-spinner {
    position: static !important;
    margin: 12px auto 0 auto !important;
    display: block !important;
  }
}

.wpcf7-not-valid-tip {
  color: #EF4444;
  font-size: 0.85rem;
  margin-top: 6px;
  font-weight: 500;
}

.wpcf7-response-output {
  border-radius: 0 !important;
  padding: 16px 20px !important;
  margin: 24px 0 0 !important;
  font-size: 0.95rem;
}

/* フォーム内テーブルと送信ボタンの整流化 */
.wpcf7 .wp-block-table {
  overflow: visible !important;
  margin-bottom: 0 !important;
}

.wpcf7 .wp-block-table table {
  width: 100% !important;
  margin: 0 auto !important;
}

/* --------------------------------------------------------------------------
   8. サイトマップ専用スタイリング (page-sitemap.php) ※1000px固定
   -------------------------------------------------------------------------- */
.page-template-sitemap .subpage-container,
.page-template-page-sitemap .subpage-container,
.sitemap-container,
.page-template-sitemap .subpage-content-wrapper,
.page-template-page-sitemap .subpage-content-wrapper {
  max-width: 1000px;
}

.sitemap-article {
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  border: none;
}

.sitemap-intro {
  margin-bottom: 36px;
  color: var(--color-text-muted, #64748B);
  font-size: 0.95rem;
  line-height: 1.8;
  text-align: center;
}

.sitemap-nav-wrapper {
  width: 100%;
}

.sitemap-grid,
.sitemap-menu-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.sitemap-card,
.sitemap-menu-list>li {
  background: #FFFFFF;
  border: none;
  border-bottom: 1px solid #E2E8F0;
  border-radius: 0;
  overflow: hidden;
  list-style: none;
  margin: 0;
  padding: 0;
}

.sitemap-card-header,
.sitemap-menu-list>li>a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: var(--color-bg-sub, #F8FAFC);
  border: none;
  border-bottom: 1px solid var(--color-border, #E2E8F0);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--color-main, #15308F);
  text-decoration: none;
  margin: 0;
  transition: all var(--transition-fast, 0.2s);
}

.sitemap-menu-list>li>a::after,
.sitemap-card-header::after {
  content: "→";
  font-size: 0.95rem;
  color: var(--color-sub, #2E8FD5);
  font-weight: 700;
  transition: transform var(--transition-fast, 0.2s);
}

.sitemap-menu-list>li>a:hover,
.sitemap-card-header:hover {
  background: var(--color-sub-light, #EBF4FC);
  color: var(--color-sub, #2E8FD5);
  padding-left: 24px;
}

.sitemap-menu-list>li>a:hover::after,
.sitemap-card-header:hover::after {
  transform: translateX(4px);
}

.sitemap-menu-list>li:not(.menu-item-has-children)>a {
  border-bottom: none;
}

.sitemap-card-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--color-main, #15308F);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.sitemap-badge {
  display: inline-block;
  font-family: var(--font-accent, 'Montserrat', sans-serif);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--color-main, #15308F);
  background: #EFF4FF;
  border: none;
  padding: 2px 8px;
  border-radius: 0;
}

.sitemap-card-list,
.sitemap-menu-list .sub-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.sitemap-card-list li,
.sitemap-menu-list .sub-menu li {
  list-style: none;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--color-border, #E2E8F0);
}

.sitemap-card-list li:last-child,
.sitemap-menu-list .sub-menu li:last-child {
  border-bottom: none;
}

.sitemap-card-list a,
.sitemap-menu-list .sub-menu a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  padding: 13px 20px 13px 32px;
  color: var(--color-text, #2D3748);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.95rem;
  background: #FFFFFF;
  transition: all var(--transition-fast, 0.2s);
}

.sitemap-card-list a::before,
.sitemap-menu-list .sub-menu a::before {
  content: "›";
  color: var(--color-sub, #2E8FD5);
  font-weight: 800;
  font-size: 1.15rem;
  margin-right: 12px;
  transition: transform var(--transition-fast, 0.2s);
}

.sitemap-card-list a:hover,
.sitemap-menu-list .sub-menu a:hover {
  background: var(--color-bg-sub, #F8FAFC);
  color: var(--color-main, #15308F);
  padding-left: 38px;
}

.sitemap-card-list a:hover::before,
.sitemap-menu-list .sub-menu a:hover::before {
  transform: translateX(2px);
  color: var(--color-sub, #2E8FD5);
}

/* --------------------------------------------------------------------------
   9. レスポンシブ対応
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .page-article {
    padding: 0;
    margin-bottom: 32px;
  }

  .sitemap-grid,
  .sitemap-menu-list {
    gap: 16px;
  }

  .sitemap-card-header,
  .sitemap-menu-list>li>a {
    padding: 12px 16px;
    font-size: 1rem;
  }

  .sitemap-card-list a,
  .sitemap-menu-list .sub-menu a {
    padding: 12px 16px 12px 24px;
    font-size: 0.9rem;
  }

  .sitemap-card-list a:hover,
  .sitemap-menu-list .sub-menu a:hover {
    padding-left: 28px;
  }

  .entry-content dl {
    margin: 24px 0;
    display: block;
  }

  .entry-content dt {
    font-size: 0.925rem;
    padding: 4px 10px;
    margin-bottom: 9px;
  }

  .entry-content dt:not(:first-child) {
    margin-top: 24px;
  }

  .entry-content dd {
    margin: 0 0 24px 0;
    padding-left: 6px;
    font-size: 0.9rem;
  }

  .entry-content dd:last-child {
    margin-bottom: 0;
  }

  .entry-content dd table td:first-child {
    width: 90px;
    padding: 10px 12px !important;
  }

  .entry-content dd table td {
    padding: 10px 12px !important;
    font-size: 0.875rem;
  }
}

/* ==========================================================================
   お問い合わせ・各種窓口ハブ (Contact Hub Navigation Cards)
   【3項目（お問い合わせ / お見積もり / 更新サポート）最適化 3カラムグリッド】
   ========================================================================== */
.contact-hub-container {
  margin: clamp(24px, 3.5vw, 40px) 0 clamp(40px, 5vw, 60px);
  width: 100%;
}

.contact-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(18px, 2.2vw, 28px);
  align-items: stretch;
}

.contact-hub-card {
  background: #FFFFFF;
  border-radius: 0;
  border: none;
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.05);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  padding: clamp(26px, 2.5vw, 32px) clamp(20px, 2vw, 26px);
  height: 100%;
  box-sizing: border-box;
}

.contact-hub-card::before {
  display: none;
}

.contact-hub-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px -4px rgba(15, 23, 42, 0.1), 0 6px 14px -2px rgba(15, 23, 42, 0.04);
}

/* ヘッダー・バッジ・タイトル */
.contact-hub-header {
  margin-bottom: 16px;
}

.contact-hub-badge {
  display: inline-block;
  font-size: 0.725rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 4px 10px;
  border-radius: 0;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.card-inquiry .contact-hub-badge {
  background: #EFF6FF;
  color: #1D4ED8;
  border: none;
}

.card-estimate .contact-hub-badge {
  background: #FFF7ED;
  color: #C2410C;
  border: none;
}

.card-order .contact-hub-badge {
  background: #ECFDF5;
  color: #047857;
  border: none;
}

.card-support .contact-hub-badge {
  background: #F0F9FF;
  color: #0369A1;
  border: none;
}

.entry-content .contact-hub-card h2.contact-hub-title {
  font-size: clamp(1.15rem, 1.45vw, 1.32rem) !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  line-height: 1.4 !important;
  display: block !important;
  letter-spacing: -0.01em !important;
}

.entry-content .contact-hub-card h2.contact-hub-title::before,
.entry-content .contact-hub-card h2.contact-hub-title::after {
  display: none !important;
}

/* 本文エリア */
.contact-hub-body {
  flex: 1;
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}

.entry-content .contact-hub-card .contact-hub-text {
  font-size: 0.92rem;
  line-height: 1.8;
  color: #334155;
  margin: 0 0 12px 0;
}

.entry-content .contact-hub-card .contact-hub-text-sub {
  font-size: 0.85rem;
  line-height: 1.7;
  color: #64748B;
  margin: auto 0 0 0;
  padding-top: 6px;
}

.contact-hub-link {
  color: #15308F;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}

.contact-hub-link:hover {
  color: #2E8FD5;
  text-decoration: underline;
}

/* アクションボタン (CTA) */
.contact-hub-footer {
  margin-top: auto;
}

.contact-hub-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 13px 18px;
  border-radius: 0;
  font-size: 0.94rem;
  font-weight: 700;
  text-decoration: none !important;
  transition: all 0.25s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  box-sizing: border-box;
}

.contact-hub-btn svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.contact-hub-btn:hover svg {
  transform: translateX(4px);
}

/* ボタンバリエーション */
.btn-inquiry {
  background: #15308F;
  color: #FFFFFF !important;
}

.btn-inquiry:hover {
  background: #10246E;
  box-shadow: 0 6px 16px rgba(21, 48, 143, 0.3);
}

.btn-estimate {
  background: #EA580C;
  color: #FFFFFF !important;
}

.btn-estimate:hover {
  background: #C2410C;
  box-shadow: 0 6px 16px rgba(234, 88, 12, 0.3);
}

.btn-order {
  background: #059669;
  color: #FFFFFF !important;
}

.btn-order:hover {
  background: #047857;
  box-shadow: 0 6px 16px rgba(5, 150, 105, 0.3);
}

.btn-support {
  background: #0284C7;
  color: #FFFFFF !important;
}

.btn-support:hover {
  background: #0369A1;
  box-shadow: 0 6px 16px rgba(2, 132, 199, 0.3);
}

/* タブレット〜スマホ表示 (992px以下) */
@media (max-width: 992px) {
  .contact-hub-grid {
    grid-template-columns: 1fr;
    max-width: 620px;
    margin: 0 auto;
    gap: 20px;
  }

  .contact-hub-card {
    padding: 24px 20px;
  }
}

@media (max-width: 640px) {
  .contact-hub-grid {
    gap: 16px;
  }

  .contact-hub-card {
    padding: 20px 16px;
    border-radius: 0;
  }

  .entry-content .contact-hub-card .contact-hub-text {
    font-size: 0.9rem;
    line-height: 1.75;
  }

  .contact-hub-btn {
    padding: 12px 16px;
    font-size: 0.9rem;
  }
}

/* ==========================================================================
   更新サポートポータル (Support Portal: /contact/support_form/)
   ========================================================================== */
.support-portal-wrap {
  margin: 0 auto;
  padding: 10px 0 40px;
}

/* 1. ヒーローカード（枠線・左線を廃止したオープン＆フラット背景） */
.support-hero-card {
  background: #F8FAFC;
  border: none !important;
  padding: clamp(28px, 4vw, 40px) clamp(22px, 3.5vw, 36px);
  margin-bottom: 44px;
  border-radius: 0;
}

.support-eyebrow-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #E0F2FE;
  color: #0369A1;
  font-size: 0.78rem;
  font-weight: 800;
  padding: 4px 10px;
  border: none !important;
  border-radius: 0;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
}

.support-eyebrow-badge svg {
  flex-shrink: 0;
  color: #0284C7;
}

.entry-content .support-hero-title,
.support-hero-title {
  font-size: clamp(1.25rem, 2vw, 1.65rem) !important;
  font-weight: 900 !important;
  color: #0F172A !important;
  line-height: 1.4 !important;
  margin: 0 0 12px 0 !important;
  border: none !important;
}

.support-hero-desc {
  font-size: 0.94rem;
  line-height: 1.8;
  color: #475569;
  margin: 0;
}

/* 2. よくあるご相談内容（枠線を廃したソフトフラットカード） */
.support-trouble-section {
  margin-bottom: 48px;
}

.support-section-subhead {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1E293B;
  border: none !important;
  padding: 0 !important;
  margin-bottom: 16px;
  line-height: 1.35;
}

.support-trouble-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.support-trouble-item {
  background: #F8FAFC;
  border: none !important;
  padding: 20px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  border-radius: 0;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.support-trouble-item:hover {
  background: #EFF6FF;
  transform: translateY(-2px);
}

.support-trouble-icon {
  font-size: 1.5rem;
  line-height: 1;
}

.support-trouble-text {
  font-size: 0.86rem;
  font-weight: 700;
  color: #334155;
  line-height: 1.45;
}

/* 3. 選べる2つのサポートチャンネル（お電話・LINE / 外枠線を排し上部アクセントのみ） */
.support-channels-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}

.support-channel-card {
  background: #FFFFFF;
  border: none !important;
  border-top: 3px solid #0284C7 !important;
  padding: clamp(24px, 3vw, 32px);
  display: flex;
  flex-direction: column;
  border-radius: 0;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.support-channel-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.support-channel-card.channel-tel {
  border-top-color: #15308F !important;
}

.support-channel-card.channel-line {
  border-top-color: #06C755 !important;
}

.support-channel-header {
  margin-bottom: 8px;
}

.support-channel-tag {
  display: inline-block;
  font-size: 0.74rem;
  font-weight: 800;
  padding: 3px 8px;
  border: none !important;
  border-radius: 0;
  margin-bottom: 8px;
}

.channel-tel .support-channel-tag {
  background: #EFF6FF;
  color: #1D4ED8;
}

.channel-line .support-channel-tag {
  background: #F0FDF4;
  color: #15803D;
}

.entry-content .support-channel-title,
.support-channel-title {
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  line-height: 1.35 !important;
}

.support-channel-desc {
  font-size: 0.92rem;
  line-height: 1.75;
  color: #475569;
  margin: 10px 0 24px 0;
  flex-grow: 1;
}

.support-channel-action {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
}

.support-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 20px;
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none !important;
  border: none !important;
  border-radius: 0;
  transition: all 0.25s ease;
}

.support-btn svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.support-btn-tel {
  background: #15308F;
  color: #FFFFFF !important;
}

.support-btn-tel:hover {
  background: #10246E;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(21, 48, 143, 0.3);
}

.support-btn-line {
  background: #06C755;
  color: #FFFFFF !important;
}

.support-btn-line:hover {
  background: #05B34C;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(6, 199, 85, 0.3);
}

.support-hours-note {
  font-size: 0.8rem;
  font-weight: 600;
  color: #64748B;
  text-align: center;
}

/* 4. サポート対応の流れ（外枠・囲み線を全廃したクリーンなステップ構成） */
.support-steps-box {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin-bottom: 48px;
  border-radius: 0;
}

.support-steps-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 16px;
}

.support-step-item {
  background: #F8FAFC;
  border: none !important;
  padding: 22px 20px;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.support-step-item:hover {
  background: #EFF6FF;
  transform: translateY(-2px);
}

/* ステップ番号（枠線・背景を排し、純粋なタイポグラフィとして洗練） */
.support-step-num {
  font-family: 'Oswald', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0284C7;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  display: block;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
  line-height: 1;
}

.support-step-title {
  font-size: 1rem;
  font-weight: 800;
  color: #0F172A;
  margin-bottom: 8px;
  line-height: 1.4;
  border: none !important;
}

.support-step-desc {
  font-size: 0.88rem;
  line-height: 1.65;
  color: #475569;
  margin: 0;
}

/* 5. 未契約・他社サイトの方へのコールアウト（二重枠線を排したフラット背景） */
.support-callout-box {
  background: #FFF7ED;
  border: none !important;
  padding: 24px 28px;
  border-radius: 0;
  margin-top: 36px;
}

.support-callout-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #9A3412;
  margin-bottom: 8px;
  line-height: 1.4;
  border: none !important;
}

.support-callout-text {
  font-size: 0.92rem;
  line-height: 1.8;
  color: #475569;
  margin: 0;
}

.support-callout-link {
  color: #C2410C;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}

.support-callout-link:hover {
  color: #EA580C;
}

/* レスポンシブ表示 */
@media (max-width: 768px) {
  .support-trouble-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .support-channels-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .support-steps-list {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

@media (max-width: 480px) {
  .support-trouble-grid {
    grid-template-columns: 1fr;
  }

  .support-callout-box {
    padding: 18px 16px;
  }
}

/* ==========================================================================
   固定ページ グループ化セクション (wp-block-group) - フラット・自然な余白設計
   ========================================================================== */

.entry-content .wp-block-group {
  margin-bottom: clamp(64px, 8vw, 96px);
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.entry-content .wp-block-group::before,
.entry-content .wp-block-group::after {
  display: none !important;
}

/* --------------------------------------------------------------------------
   1. お悩み共感グループ (.sec-trouble) - 大文字＆直感チェックリスト（青系統一）
   -------------------------------------------------------------------------- */
.entry-content .wp-block-group.sec-trouble h2::before {
  background: linear-gradient(180deg, var(--color-main, #15308F) 0%, var(--color-sub, #2E8FD5) 100%);
}

.entry-content .wp-block-group.sec-trouble h2::after {
  background: linear-gradient(90deg, rgba(21, 48, 143, 0.25) 0%, rgba(226, 232, 240, 0.8) 40%, rgba(226, 232, 240, 0) 100%);
}

.entry-content .wp-block-group.sec-trouble ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 24px;
  margin: 28px 0 0 0 !important;
}

.entry-content .wp-block-group.sec-trouble ul li {
  position: relative;
  padding: 16px 20px 16px 48px;
  background: #F8FAFC;
  border: none;
  border-radius: 0;
  margin-bottom: 0;
  line-height: 1.65;
  font-weight: 700;
  color: #1E293B;
  font-size: clamp(1.02rem, 1.25vw, 1.12rem);
  box-shadow: none;
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.entry-content .wp-block-group.sec-trouble ul li:hover {
  transform: translateY(-2px);
  background: #EFF4FF;
}

.entry-content .wp-block-group.sec-trouble ul li::before {
  content: "✓";
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  background: var(--color-main, #15308F);
  color: #FFFFFF;
  border-radius: 0;
  box-shadow: none;
  font-size: 0.78rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

@media (max-width: 768px) {
  .entry-content .wp-block-group.sec-trouble ul {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .entry-content .wp-block-group.sec-trouble ul li {
    padding: 14px 16px 14px 42px;
    font-size: 0.98rem;
  }
}

/* --------------------------------------------------------------------------
   2. 料金プラングループ (.sec-pricing) - スマート・タイポグラフィ見出し
   H2のバー・下線や余計な箱囲みを排し、直下の本文・テーブルと美しく流れる洗練デザイン
   -------------------------------------------------------------------------- */
.entry-content .wp-block-group.sec-pricing h3 {
  all: unset;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px 14px !important;
  font-size: clamp(1.22rem, 1.8vw, 1.45rem) !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  margin: clamp(40px, 5vw, 56px) 0 14px !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  line-height: 1.4 !important;
  letter-spacing: -0.01em !important;
}

/* 先頭の洗練されたミニマムインジケーター（幾何学スクエア） */
.entry-content .wp-block-group.sec-pricing h3::before {
  content: "" !important;
  display: inline-block !important;
  width: 8px !important;
  height: 8px !important;
  background: var(--color-main, #15308F) !important;
  border-radius: 0 !important;
  flex-shrink: 0 !important;
}

/* プラン名ラベル */
.entry-content .wp-block-group.sec-pricing h3>span:first-child {
  font-size: 1.05em;
  font-weight: 800;
  color: #0F172A;
  display: inline-flex;
  align-items: center;
}

/* 金額表示バッジ */
.entry-content .wp-block-group.sec-pricing h3 .plan-price {
  font-size: 0.95em;
  font-weight: 800;
  color: var(--color-main, #15308F);
  background: #EFF4FF;
  padding: 4px 12px;
  border-radius: 0;
  border: none;
  white-space: nowrap;
  display: inline-block;
}

.entry-content .wp-block-group.sec-pricing h3:nth-of-type(2) .plan-price {
  color: #EA580C;
  background: #FFF7ED;
}

/* おすすめバッジ */
.entry-content .wp-block-group.sec-pricing h3 .plan-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #EA580C;
  color: #FFFFFF !important;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 0;
  letter-spacing: 0.05em;
  white-space: nowrap;
  box-shadow: none;
}

.entry-content .wp-block-group.sec-pricing table strong {
  color: var(--color-cta, #EA580C);
  font-size: 1.05em;
}

/* --------------------------------------------------------------------------
   2.5 保守サポートでお任せいただけること (.sec-included) - 2列カードグリッド
   -------------------------------------------------------------------------- */
.entry-content .wp-block-group.sec-included ul {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 18px 24px !important;
  margin: 32px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.entry-content .wp-block-group.sec-included ul li {
  position: relative !important;
  background: #F8FAFC !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 20px 22px 20px 58px !important;
  margin: 0 !important;
  font-size: 0.94rem !important;
  color: #475569 !important;
  line-height: 1.75 !important;
  box-shadow: none !important;
  transition: all 0.25s ease !important;
}

.entry-content .wp-block-group.sec-included ul li:hover {
  transform: translateY(-2px);
  background: #EFF4FF !important;
  box-shadow: none !important;
}

/* 左側のアイコンバッジ（青スクエアにチェック） */
.entry-content .wp-block-group.sec-included ul li::before {
  content: "✓" !important;
  position: absolute !important;
  left: 18px !important;
  top: 20px !important;
  width: 26px !important;
  height: 26px !important;
  background: var(--color-main, #15308F) !important;
  color: #FFFFFF !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

/* タイトル部分（太字ブロック） */
.entry-content .wp-block-group.sec-included ul li strong {
  display: block !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  line-height: 1.4 !important;
  margin-bottom: 4px !important;
}

@media (max-width: 768px) {
  .entry-content .wp-block-group.sec-included ul {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .entry-content .wp-block-group.sec-included ul li {
    padding: 16px 18px 16px 52px !important;
    font-size: 0.9rem !important;
  }

  .entry-content .wp-block-group.sec-included ul li::before {
    left: 14px !important;
    top: 16px !important;
    width: 24px !important;
    height: 24px !important;
    font-size: 0.75rem !important;
  }
}

/* --------------------------------------------------------------------------
   3. 進行ステップグループ (.sec-flow) - トップページ・/price/完全準拠フロー行
   -------------------------------------------------------------------------- */
.entry-content .wp-block-group.sec-flow ol {
  counter-reset: top-flow-counter !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 36px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  border-top: 1px solid #E2E8F0 !important;
  border-bottom: 1px solid #E2E8F0 !important;
}

.entry-content .wp-block-group.sec-flow ol li {
  counter-increment: top-flow-counter !important;
  position: relative !important;
  background-color: #FFFFFF !important;
  border: none !important;
  border-bottom: 1px solid #E2E8F0 !important;
  border-radius: 0 !important;
  padding: 22px 28px 22px 118px !important;
  min-height: 90px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  margin-bottom: 0 !important;
  box-shadow: none !important;
  transition: all 0.25s ease !important;
}

.entry-content .wp-block-group.sec-flow ol li:hover {
  background-color: #F8FAFC !important;
  transform: none !important;
  box-shadow: none !important;
}

.entry-content .wp-block-group.sec-flow ol li:last-child {
  margin-bottom: 0 !important;
  border-bottom: none !important;
}

/* 左側：STEP + 大数字ボックス（ソリッドシャープボックス） */
.entry-content .wp-block-group.sec-flow ol li::before {
  content: "STEP\A 0" counter(top-flow-counter) !important;
  white-space: pre !important;
  text-align: center !important;
  position: absolute !important;
  left: 20px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 72px !important;
  height: 64px !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: var(--color-main, #15308F) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 6px 4px !important;
  font-family: var(--font-accent, 'Montserrat', sans-serif) !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  line-height: 1.15 !important;
  letter-spacing: 0.04em !important;
  box-shadow: none !important;
  margin: 0 !important;
  transition: all 0.25s ease !important;
}

.entry-content .wp-block-group.sec-flow ol li:hover::before {
  background-color: #0F236B !important;
}

/* 右側タイトル */
.entry-content .wp-block-group.sec-flow ol li strong {
  display: block !important;
  font-size: clamp(1.05rem, 1.3vw, 1.16rem) !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  line-height: 1.4 !important;
  margin: 0 0 6px 0 !important;
}

/* 右側本文テキスト */
.entry-content .wp-block-group.sec-flow ol li {
  font-size: 0.94rem !important;
  color: #475569 !important;
  line-height: 1.75 !important;
}

/* ステップ間の矢印（上下ボーダー行化に伴い非表示） */
.entry-content .wp-block-group.sec-flow ol li:not(:last-child)::after {
  display: none !important;
}

/* 2パターン横並びラッパー（PC 2カラム / スマホ 1カラム） */
.entry-content .wp-block-group.sec-flow .sec-flow-grid,
.entry-content .wp-block-group.sec-flow .wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px 40px !important;
  margin-top: 28px !important;
}

.entry-content .wp-block-group.sec-flow .sec-flow-col,
.entry-content .wp-block-group.sec-flow .wp-block-column {
  margin: 0 !important;
  width: 100% !important;
}

.entry-content .wp-block-group.sec-flow .sec-flow-col h3,
.entry-content .wp-block-group.sec-flow .wp-block-column h3 {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

.entry-content .wp-block-group.sec-flow .sec-flow-col ol,
.entry-content .wp-block-group.sec-flow .wp-block-column ol {
  margin: 0 !important;
}

@media (max-width: 900px) {

  .entry-content .wp-block-group.sec-flow .sec-flow-grid,
  .entry-content .wp-block-group.sec-flow .wp-block-columns {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
}

@media (max-width: 768px) {
  .entry-content .wp-block-group.sec-flow ol li {
    padding: 16px 16px 16px 90px !important;
    min-height: 76px !important;
    margin-bottom: 0 !important;
  }

  .entry-content .wp-block-group.sec-flow ol li::before {
    left: 12px !important;
    width: 64px !important;
    height: 58px !important;
    font-size: 1.15rem !important;
    padding: 6px 4px !important;
    border-radius: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   4. よくある質問グループ (.sec-faq) - /price/ 完全準拠アコーディオン
   -------------------------------------------------------------------------- */
.entry-content .wp-block-group.sec-faq details,
.entry-content details.wp-block-details {
  background-color: #FFFFFF;
  border-radius: 0;
  border: none;
  border-top: 1px solid #E2E8F0;
  border-bottom: 1px solid #E2E8F0;
  box-shadow: none;
  margin-bottom: -1px;
  overflow: hidden;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.entry-content .wp-block-group.sec-faq details:hover,
.entry-content details.wp-block-details:hover {
  background-color: #F8FAFC;
  box-shadow: none;
}

.entry-content .wp-block-group.sec-faq details[open],
.entry-content details.wp-block-details[open] {
  border-left: none;
  box-shadow: none;
}

.entry-content .wp-block-group.sec-faq summary,
.entry-content details.wp-block-details summary,
details.wp-block-details summary,
.sec-faq summary {
  padding: clamp(18px, 2.5vw, 24px) clamp(20px, 3vw, 28px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  /* 二重gapを解消して正確な位置合わせを行う */
  text-align: left !important;
  font-size: clamp(0.96875rem, 1.2vw, 1.0625rem) !important;
  font-weight: 700 !important;
  color: #0F172A !important;
  background: transparent !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
  transition: color 0.2s ease !important;
  position: relative !important;
}

.entry-content .wp-block-group.sec-faq summary::-webkit-details-marker,
.entry-content details.wp-block-details summary::-webkit-details-marker,
details.wp-block-details summary::-webkit-details-marker,
.sec-faq summary::-webkit-details-marker {
  display: none !important;
}

.entry-content .wp-block-group.sec-faq summary:hover,
.entry-content details.wp-block-details summary:hover,
details.wp-block-details summary:hover,
.sec-faq summary:hover {
  color: #15308F !important;
}

.entry-content .wp-block-group.sec-faq summary::before,
.entry-content details.wp-block-details summary::before,
details.wp-block-details summary::before,
.sec-faq summary::before {
  content: "Q";
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 0 !important;
  background: #15308F !important;
  font-family: var(--font-accent, 'Montserrat', sans-serif) !important;
  font-size: 1.1875rem !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  flex-shrink: 0 !important;
  margin-right: 16px !important;
  /* Qの右スペース: 16px */
  line-height: 1 !important;
}

.entry-content .wp-block-group.sec-faq summary::after,
.entry-content details.wp-block-details summary::after,
details.wp-block-details summary::after,
.sec-faq summary::after {
  content: "";
  display: inline-block !important;
  width: 10px !important;
  height: 10px !important;
  border-right: 2.5px solid #94A3B8 !important;
  border-bottom: 2.5px solid #94A3B8 !important;
  transform: rotate(45deg) !important;
  margin-left: auto !important;
  flex-shrink: 0 !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease !important;
}

.entry-content .wp-block-group.sec-faq details[open] summary::after,
.entry-content details.wp-block-details[open] summary::after,
details.wp-block-details[open] summary::after,
.sec-faq details[open] summary::after {
  transform: rotate(-135deg) !important;
  border-color: #15308F !important;
}

.entry-content .wp-block-group.sec-faq details p,
.entry-content details.wp-block-details p,
details.wp-block-details p,
.sec-faq details p {
  padding: 20px clamp(20px, 3vw, 28px) clamp(20px, 3vw, 28px) !important;
  padding-left: calc(clamp(20px, 3vw, 28px) + 32px + 16px) !important;
  /* Qと完全同一の開始位置: 32px + 16px */
  margin: 0 !important;
  border-top: 1px solid #F1F5F9 !important;
  font-size: clamp(0.90625rem, 1.1vw, 0.96875rem) !important;
  color: #334155 !important;
  line-height: 1.85 !important;
  position: relative !important;
  min-height: calc(32px + 40px) !important;
}

.entry-content .wp-block-group.sec-faq details p::before,
.entry-content details.wp-block-details p::before,
details.wp-block-details p::before,
.sec-faq details p::before {
  content: "A";
  position: absolute !important;
  left: clamp(20px, 3vw, 28px) !important;
  top: 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 0 !important;
  background: #EA580C !important;
  font-family: var(--font-accent, 'Montserrat', sans-serif) !important;
  font-size: 1.1875rem !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  line-height: 1 !important;
  margin: 0 !important;
}

@media (max-width: 680px) {

  .entry-content .wp-block-group.sec-faq summary,
  .entry-content details.wp-block-details summary,
  details.wp-block-details summary,
  .sec-faq summary {
    padding: 16px 14px !important;
    gap: 0 !important;
    font-size: 0.9375rem !important;
  }

  .entry-content .wp-block-group.sec-faq summary::before,
  .entry-content details.wp-block-details summary::before,
  details.wp-block-details summary::before,
  .sec-faq summary::before {
    width: 26px !important;
    height: 26px !important;
    font-size: 0.9375rem !important;
    border-radius: 0 !important;
    margin-right: 12px !important;
  }

  .entry-content .wp-block-group.sec-faq details p,
  .entry-content details.wp-block-details p,
  details.wp-block-details p,
  .sec-faq details p {
    padding: 14px 14px 16px !important;
    padding-left: calc(14px + 26px + 12px) !important;
    /* スマホ時もQと完全一致: 26px + 12px */
    font-size: 0.875rem !important;
    min-height: calc(26px + 30px);
  }

  .entry-content .wp-block-group.sec-faq details p::before,
  .entry-content details.wp-block-details p::before,
  details.wp-block-details p::before,
  .sec-faq details p::before {
    left: 14px !important;
    top: 14px !important;
    width: 26px !important;
    height: 26px !important;
    font-size: 0.9375rem !important;
    border-radius: 0 !important;
  }
}

/* ==========================================================================
   5. 保守・更新管理のご相談はこちら (.sec-cta) - finalCta 誘導ブリッジ
   囲み箱を排し、端正なタイポグラフィと下部窓口へ吸い込まれるような自然な視線誘導
   ========================================================================== */
.entry-content .wp-block-group.sec-cta,
.wp-block-group.sec-cta {
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
  padding: 0 !important;
  margin: clamp(56px, 7vw, 84px) auto clamp(20px, 3vw, 32px) auto !important;
  position: relative !important;
  max-width: 960px !important;
  width: 100% !important;
  clear: both !important;
}

/* 上部：前セクションとの境界を美しく分けるフェードヘアライン */
.entry-content .wp-block-group.sec-cta::before,
.wp-block-group.sec-cta::before {
  content: "" !important;
  display: block !important;
  width: 100% !important;
  max-width: 480px !important;
  height: 1px !important;
  margin: 0 auto clamp(28px, 4vw, 40px) auto !important;
  background: linear-gradient(90deg, transparent 0%, rgba(21, 48, 143, 0.25) 50%, transparent 100%) !important;
  position: static !important;
  transform: none !important;
  border-radius: 0 !important;
}

/* メイン見出し：「保守・更新管理のご相談はこちら」 */
.entry-content .wp-block-group.sec-cta h2,
.entry-content .sec-cta h2,
.wp-block-group.sec-cta h2,
.sec-cta h2 {
  all: unset !important;
  display: block !important;
  font-family: inherit !important;
  font-size: clamp(1.4rem, 2.5vw, 1.95rem) !important;
  font-weight: 800 !important;
  color: var(--color-main, #15308F) !important;
  letter-spacing: -0.015em !important;
  line-height: 1.4 !important;
  text-align: center !important;
  margin: 0 auto 18px auto !important;
  padding: 0 !important;
  position: relative !important;
  background: none !important;
  border: none !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}

/* H2の擬似要素（左バー・下横線・::before / ::after）を完全消去 */
.entry-content .wp-block-group.sec-cta h2::before,
.entry-content .sec-cta h2::before,
.wp-block-group.sec-cta h2::before,
.sec-cta h2::before,
.entry-content .wp-block-group.sec-cta h2::after,
.entry-content .sec-cta h2::after,
.wp-block-group.sec-cta h2::after,
.sec-cta h2::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  border: none !important;
  background: none !important;
}

/* 案内文：PCで美しい2行に収まるよう幅を最適化 */
.entry-content .wp-block-group.sec-cta p:not(.sec-cta-guide),
.wp-block-group.sec-cta p:not(.sec-cta-guide),
.sec-cta p:not(.sec-cta-guide) {
  color: #475569 !important;
  font-size: clamp(0.95rem, 1.1vw, 1.05rem) !important;
  line-height: 1.8 !important;
  max-width: 900px !important;
  margin: 0 auto !important;
  text-align: center !important;
  white-space: normal !important;
  word-break: normal !important;
}

/* 下部 #finalCta へ視線を流す誘導リンク・矢印（一回り大きく、左右バランスを最適化） */
.entry-content .wp-block-group.sec-cta p.sec-cta-guide,
.wp-block-group.sec-cta p.sec-cta-guide,
.sec-cta .sec-cta-guide,
.sec-cta-guide {
  margin-top: 24px !important;
  margin-bottom: 0 !important;
}

.entry-content .wp-block-group.sec-cta .sec-cta-guide a,
.wp-block-group.sec-cta .sec-cta-guide a,
.sec-cta .sec-cta-guide a,
.sec-cta-guide a,
.entry-content .wp-block-group.sec-cta a[href*="finalCta"],
.wp-block-group.sec-cta a[href*="finalCta"],
.sec-cta a[href*="finalCta"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  color: var(--color-cta, #EA580C) !important;
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
  letter-spacing: 0.04em !important;
  transition: all 0.25s ease !important;
  cursor: pointer !important;
  padding: 14px 38px !important;
  border-radius: 0 !important;
  background: rgba(234, 88, 12, 0.08) !important;
  border: none !important;
  border-bottom: 2px solid #EA580C !important;
  box-shadow: none !important;
}

.entry-content .wp-block-group.sec-cta .sec-cta-guide a::after,
.wp-block-group.sec-cta .sec-cta-guide a::after,
.sec-cta .sec-cta-guide a::after,
.sec-cta-guide a::after,
.entry-content .wp-block-group.sec-cta a[href*="finalCta"]::after,
.wp-block-group.sec-cta a[href*="finalCta"]::after,
.sec-cta a[href*="finalCta"]::after {
  content: "↓" !important;
  font-size: 1.25rem !important;
  font-weight: 900 !important;
  display: inline-block !important;
  line-height: 1 !important;
  margin-left: 2px !important;
  position: relative !important;
  top: -2px !important;
  animation: guideBounceDown 1.8s infinite ease-in-out !important;
}

.entry-content .wp-block-group.sec-cta .sec-cta-guide a:hover,
.wp-block-group.sec-cta .sec-cta-guide a:hover,
.sec-cta .sec-cta-guide a:hover,
.sec-cta-guide a:hover,
.entry-content .wp-block-group.sec-cta a[href*="finalCta"]:hover,
.wp-block-group.sec-cta a[href*="finalCta"]:hover,
.sec-cta a[href*="finalCta"]:hover {
  background: rgba(234, 88, 12, 0.14) !important;
  border-color: rgba(234, 88, 12, 0.55) !important;
  transform: translateY(2px) !important;
  box-shadow: 0 4px 14px rgba(234, 88, 12, 0.15) !important;
}

@keyframes guideBounceDown {

  0%,
  100% {
    transform: translateY(0);
    opacity: 0.75;
  }

  50% {
    transform: translateY(3px);
    opacity: 1;
  }
}

/* 下へ続くことを示すライン（不要な場合は非表示） */
.entry-content .wp-block-group.sec-cta::after,
.wp-block-group.sec-cta::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 768px) {

  .entry-content .wp-block-group.sec-cta,
  .wp-block-group.sec-cta {
    margin-top: 44px !important;
    margin-bottom: 16px !important;
  }
}

/* ==========================================================================
   サッカーチーム専用プラン：機能紹介・ページ構成・制作実績リッチスタイル
   ========================================================================== */

/* メインビジュアルショーケース（soccer_web_templates.jpg等） */
.soccer-showcase-box {
  background: linear-gradient(145deg, #0f172a 0%, #1e293b 100%);
  border-radius: 0;
  padding: 32px 24px 28px;
  margin: 28px 0 40px;
  box-shadow: none;
  border: none;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.soccer-showcase-box::before {
  display: none;
}

.soccer-showcase-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(16, 185, 129, 0.15);
  border: none;
  color: #34d399;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 6px 16px;
  border-radius: 0;
  margin-bottom: 16px;
  letter-spacing: 0.04em;
}

.soccer-showcase-title {
  color: #ffffff !important;
  font-size: clamp(1.2rem, 2.5vw, 1.55rem) !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  margin: 0 0 12px 0 !important;
  border: none !important;
  padding: 0 !important;
}

.soccer-showcase-title::before,
.soccer-showcase-title::after {
  display: none !important;
}

.soccer-showcase-desc {
  color: #cbd5e1 !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  max-width: 680px;
  margin: 0 auto 24px auto !important;
}

.soccer-showcase-img-wrap {
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.4);
  border: none;
  background: #000;
  transition: transform 0.3s ease;
}

.soccer-showcase-img-wrap img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 !important;
}

/* 8大ページ構成グリッド */
.soccer-pages-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin: 28px 0 44px;
}

@media (max-width: 768px) {
  .soccer-pages-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.soccer-page-card {
  background: #ffffff;
  border: none;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
  transition: all 0.25s ease;
  position: relative;
  display: flex;
  flex-direction: column;
}

.soccer-page-card:hover {
  transform: translateY(-2px);
  background: #F8FAFC;
}

.soccer-page-card-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #F8FAFC;
  overflow: hidden;
  border-bottom: 1px solid #E2E8F0;
}

.soccer-page-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0 !important;
  border-radius: 0 !important;
  transition: transform 0.3s ease;
}

.soccer-page-card:hover .soccer-page-card-img img {
  transform: scale(1.03);
}

.soccer-page-card-body {
  padding: 18px 20px 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.soccer-page-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #E2E8F0;
}

.soccer-page-card-icon {
  font-size: 1.5rem;
  line-height: 1;
  width: 44px;
  height: 44px;
  background: #EFF4FF;
  border: none;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.soccer-page-card-title-wrap {
  flex: 1;
}

.soccer-page-card-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--color-main, #15308F);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.soccer-page-card-title {
  font-size: 1.08rem !important;
  font-weight: 800 !important;
  color: #1e293b !important;
  margin: 2px 0 0 0 !important;
  line-height: 1.3 !important;
  border: none !important;
  padding: 0 !important;
}

.soccer-page-card-title::before,
.soccer-page-card-title::after {
  display: none !important;
}

.soccer-page-card-desc {
  font-size: 0.9rem !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* かんたん更新機能ボックス */
.soccer-easy-update-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center;
  background: #F8FAFC;
  border: none;
  border-radius: 0;
  padding: 24px;
  margin: 32px 0 40px;
}

@media (max-width: 768px) {
  .soccer-easy-update-box {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 18px;
  }
}

.soccer-easy-update-img {
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  border: none;
}

.soccer-easy-update-img img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 !important;
  border-radius: 0 !important;
}

.soccer-easy-update-content h4 {
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  color: var(--color-main, #15308F) !important;
  margin: 0 0 10px 0 !important;
  line-height: 1.4 !important;
  border: none !important;
  padding: 0 !important;
}

.soccer-easy-update-content h4::before,
.soccer-easy-update-content h4::after {
  display: none !important;
}

.soccer-easy-update-content p {
  font-size: 0.92rem !important;
  line-height: 1.7 !important;
  color: #475569 !important;
  margin: 0 0 12px 0 !important;
}

.soccer-easy-update-points {
  margin: 0 !important;
  padding: 0 0 0 18px !important;
}

.soccer-easy-update-points li {
  font-size: 0.88rem !important;
  color: #334155 !important;
  line-height: 1.6 !important;
  margin-bottom: 6px !important;
}

/* 専用機能ハイライトボックス */
.soccer-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 28px 0 44px;
}

@media (max-width: 900px) {
  .soccer-feature-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

.soccer-feature-item {
  background: #F8FAFC;
  border: none;
  border-radius: 0;
  padding: 24px 20px;
  text-align: center;
  position: relative;
}

.soccer-feature-item-icon {
  font-size: 2.2rem;
  line-height: 1;
  margin-bottom: 14px;
  display: inline-block;
}

.soccer-feature-item-title {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.4 !important;
  border: none !important;
  padding: 0 !important;
}

.soccer-feature-item-title::before,
.soccer-feature-item-title::after {
  display: none !important;
}

.soccer-feature-item-desc {
  font-size: 0.88rem !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin: 0 !important;
  text-align: left;
}

/* 制作実績カードグリッド（実在サイトスクリーンショット） */
.soccer-works-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin: 32px 0 48px;
}

@media (max-width: 768px) {
  .soccer-works-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.soccer-work-card {
  background: #ffffff;
  border-radius: 0;
  overflow: hidden;
  border: none;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
  display: flex;
  flex-direction: column;
  transition: all 0.25s ease;
}

.soccer-work-card:hover {
  transform: translateY(-2px);
  background: #F8FAFC;
}

.soccer-work-browser-bar {
  background: #F1F5F9;
  padding: 8px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid #E2E8F0;
}

.soccer-work-browser-dots {
  display: flex;
  gap: 5px;
}

.soccer-work-browser-dots span {
  width: 9px;
  height: 9px;
  border-radius: 0;
  display: inline-block;
}

.soccer-work-browser-dots span:nth-child(1) {
  background: #FF5F56;
}

.soccer-work-browser-dots span:nth-child(2) {
  background: #FFBD2E;
}

.soccer-work-browser-dots span:nth-child(3) {
  background: #27C93F;
}

.soccer-work-browser-url {
  font-size: 0.75rem;
  color: #64748B;
  background: #ffffff;
  padding: 2px 10px;
  border-radius: 0;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border: 1px solid #E2E8F0;
  display: flex;
  align-items: center;
  gap: 4px;
}

.soccer-work-img-wrap {
  width: 100%;
  background: #F8FAFC;
  overflow: hidden;
  border-bottom: 1px solid #F1F5F9;
}

.soccer-work-img-wrap img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 !important;
  border-radius: 0 !important;
  transition: transform 0.3s ease;
}

.soccer-work-card:hover .soccer-work-img-wrap img {
  transform: scale(1.02);
}

.soccer-work-body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.soccer-work-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.soccer-work-tag {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 0;
  background: #EFF4FF;
  border: none;
  color: var(--color-main, #15308F);
}

.soccer-work-tag--area {
  background: #F1F5F9;
  color: #475569;
}

.soccer-work-name {
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.35 !important;
  border: none !important;
  padding: 0 !important;
}

.soccer-work-name::before,
.soccer-work-name::after {
  display: none !important;
}

.soccer-work-desc {
  font-size: 0.88rem !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin: 0 0 16px 0 !important;
  flex: 1;
}

.soccer-work-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-main, #15308F);
  background: #EFF4FF;
  border: none;
  border-radius: 0;
  text-decoration: none;
  transition: all 0.2s ease;
  margin-top: auto;
}

.soccer-work-btn:hover {
  background: var(--color-main, #15308F);
  color: #ffffff;
}

/* ==========================================================================
   サッカーチーム専用プラン：リストマーク完全リセット ＆ 専用スタイル
   ========================================================================== */

/* 1. デフォルトリストマーク（::before 丸点・番号）の完全リセット */
.entry-content ul.sc_plan_price li,
.entry-content ul.soccer-teams-grid li,
.entry-content ul.soccer-works-list li,
.entry-content .soccer-teams-grid li,
.entry-content .soccer-works-list li,
.entry-content ol.stp_flow li {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.entry-content ul.sc_plan_price li::before,
.entry-content ul.soccer-teams-grid li::before,
.entry-content ul.soccer-works-list li::before,
.entry-content .soccer-teams-grid li::before,
.entry-content .soccer-works-list li::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* 2. 料金バッジ (ul.sc_plan_price) */
.entry-content ul.sc_plan_price,
ul.sc_plan_price {
  list-style: none !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
  padding: 0 !important;
  margin: 24px 0 36px 0 !important;
}

.entry-content ul.sc_plan_price li,
ul.sc_plan_price li {
  flex: 1 1 calc(50% - 10px) !important;
  min-width: 260px !important;
  background: #F8FAFC !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  box-shadow: none !important;
  position: relative !important;
}

ul.sc_plan_price li p {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: #475569 !important;
  margin: 0 0 8px 0 !important;
  letter-spacing: 0.04em !important;
}

ul.sc_plan_price li span {
  font-size: 2.2rem !important;
  font-weight: 900 !important;
  color: var(--color-main, #15308F) !important;
  line-height: 1.2 !important;
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 4px !important;
}

ul.sc_plan_price li span strong {
  font-size: 2.5rem !important;
  font-family: inherit !important;
  letter-spacing: -0.02em !important;
}

ul.sc_plan_price li span small {
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: #64748B !important;
}

/* 3. 実稼働サッカーチーム様の実績カードグリッド (ul.soccer-teams-grid) */
.entry-content ul.soccer-teams-grid,
ul.soccer-teams-grid {
  list-style: none !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  gap: 24px !important;
  margin: 28px 0 48px 0 !important;
}

@media (max-width: 680px) {

  .entry-content ul.soccer-teams-grid,
  ul.soccer-teams-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
}

/* ==========================================================================
   サッカーチーム専用プラン：インパクトヒーロー・コンパクト実績・2列カード・料金リッチ
   ========================================================================== */

/* ==========================================================================
   サッカーチーム専用プラン：画面幅100%ヒーロー・3列機能カード・スロット料金表・フロー完全対応
   ========================================================================== */

/* サッカーチーム専用プラン・AIシンプル・地域密着ホームページ：上部の巨大な空白スペース（72px〜100px）を完全ゼロ化 */
.page-id-2029 .page-section,
.page-id-2029 .subpage-section,
.page-id-1237 .page-section,
.page-id-1237 .subpage-section,
.page-id-530 .page-section,
.page-id-530 .subpage-section,
.subpage-main:has(.soccer-impact-hero) .page-section,
.subpage-main:has(.soccer-impact-hero) .subpage-section,
.subpage-main:has(.regional-impact-hero) .page-section,
.subpage-main:has(.regional-impact-hero) .subpage-section,
.subpage-main:has(.regional-creative-hero) .page-section,
.subpage-main:has(.regional-creative-hero) .subpage-section,
.subpage-main:has(.regional-plan-wrap) .page-section,
.subpage-main:has(.regional-plan-wrap) .subpage-section,
body:has(.soccer-impact-hero) .page-section,
body:has(.soccer-impact-hero) .subpage-section,
body:has(.regional-impact-hero) .page-section,
body:has(.regional-impact-hero) .subpage-section,
body:has(.regional-creative-hero) .page-section,
body:has(.regional-creative-hero) .subpage-section,
body:has(.regional-plan-wrap) .page-section,
body:has(.regional-plan-wrap) .subpage-section {
  padding-top: 0 !important;
}

.entry-content>p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ① /price/ 完全準拠 画面幅100%全幅ブレイクアウト・ダイナミックタイポグラフィヒーロー (.soccer-impact-hero) */
.entry-content .soccer-impact-hero,
.soccer-impact-hero {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  background-color: #FFFFFF !important;
  border: none !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin-top: 0 !important;
  margin-bottom: clamp(56px, 7vw, 88px) !important;
  box-shadow: none !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* /price/ 準拠の建築グリッド模様（96px × 96px）& オーラ背景 */
.soccer-impact-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(16, 185, 129, 0.08) 0%, transparent 55%),
    linear-gradient(90deg, rgba(5, 150, 105, 0.04) 1px, transparent 1px),
    linear-gradient(rgba(5, 150, 105, 0.04) 1px, transparent 1px);
  background-size: 100% 100%, 96px 96px, 96px 96px;
  pointer-events: none;
  z-index: 0;
}

/* 背後の超巨大ストローク・タイポグラフィ（HTML要素 .soccer-hero-bg-typo で表示） */
.soccer-impact-hero::after {
  content: none !important;
  display: none !important;
}

.soccer-hero-bg-typo {
  position: absolute !important;
  top: 4px !important;
  right: -10px !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(5.5rem, 15vw, 13.5rem) !important;
  font-weight: 900 !important;
  line-height: 0.85 !important;
  letter-spacing: 0.04em !important;
  color: transparent !important;
  -webkit-text-stroke: 1.5px rgba(5, 150, 105, 0.075) !important;
  pointer-events: none !important;
  user-select: none !important;
  z-index: 0 !important;
}

/* ヒーローメインステージ（/price/ の .regional-hero-stage 準拠） */
.soccer-hero-inner {
  position: relative;
  z-index: 2;
  width: calc(100% - clamp(32px, 8vw, 112px)) !important;
  max-width: 1420px !important;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 68px) 0 clamp(52px, 6.5vw, 88px) !important;
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  align-items: center;
  gap: clamp(36px, 5vw, 72px);
  box-sizing: border-box;
}

@media (max-width: 980px) {
  .soccer-hero-inner {
    grid-template-columns: 1fr !important;
    gap: 44px !important;
  }

  .soccer-hero-content {
    order: 1 !important;
    align-items: flex-start !important;
    text-align: left !important;
    margin: 0 !important;
  }

  .soccer-hero-mockup-wrap {
    order: 2 !important;
  }

  .soccer-hero-eyebrow,
  .soccer-hero-main-title,
  .soccer-hero-title-main,
  .soccer-hero-title-sub,
  .soccer-hero-lead,
  .soccer-hero-trust-list,
  .soccer-hero-cta-group {
    justify-content: flex-start !important;
    align-items: flex-start !important;
    text-align: left !important;
  }
}

/* 左側：ダイナミック・タイポグラフィ・コンポジション */
.soccer-hero-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  width: 100% !important;
  max-width: 880px !important;
  min-width: 0 !important;
}

/* 1. キッカーライン（/price/ の .regional-hero-kicker-line 準拠：箱を廃したシャープ構成） */
.soccer-hero-eyebrow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 18px;
  width: 100%;
}

.soccer-hero-capsule {
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px 10px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  max-width: 100%;
  box-sizing: border-box;
}

/* 先頭の PLAN 番号ソリッドブロック（HTML要素 .soccer-hero-kicker-num で表示） */
.soccer-hero-capsule::before {
  content: none !important;
  display: none !important;
}

.soccer-hero-kicker-num {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  background: #059669 !important;
  padding: 3px 10px !important;
  letter-spacing: 0.12em !important;
  line-height: 1.3 !important;
  display: inline-block !important;
}

.soccer-hero-capsule-meta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  color: #047857 !important;
  font-size: clamp(0.76rem, 0.92vw, 0.84rem) !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em !important;
  white-space: normal !important;
  word-break: auto-phrase !important;
  text-wrap: pretty !important;
}

/* 水平ルール（/price/ の .kicker-rule 準拠） */
.soccer-hero-capsule-meta::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 2px;
  background: #10B981;
  flex-shrink: 0;
}

.soccer-hero-capsule-sparkle {
  display: none !important;
}

.soccer-hero-capsule-badge {
  display: inline-flex !important;
  align-items: center !important;
  background: #ECFDF5 !important;
  color: #047857 !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  padding: 3px 10px !important;
  border-radius: 0 !important;
  letter-spacing: 0.04em !important;
  white-space: nowrap !important;
}

/* 2. ダイナミック・タイポグラフィ H1（/price/ の .regional-hero-h1 準拠：明朝体キッカー × 超特大ゴシック × 左ボーダースラブ） */
.soccer-hero-main-title {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 4px !important;
  width: 100% !important;
  margin: 0 0 24px 0 !important;
  border: none !important;
  padding: 0 !important;
  letter-spacing: -0.02em !important;
}

/* 1段目：明朝体アクセントフレーズ（HTML要素 .soccer-hero-title-serif で表示） */
.soccer-hero-main-title::before,
.soccer-hero-main-title::after {
  content: none !important;
  display: none !important;
}

.soccer-hero-title-serif {
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 2px 0 !important;
  background: none !important;
  font-family: "Noto Serif JP", "游明朝", YuMincho, serif !important;
  font-size: clamp(1.18rem, 2vw, 1.68rem) !important;
  font-weight: 700 !important;
  color: #10B981 !important;
  letter-spacing: 0.06em !important;
  line-height: 1.35 !important;
}

/* 2段目：超特大メインタイトル（14〜15文字でも不自然な末尾1文字落ち・途中改行を防ぐサイズ設計） */
.soccer-hero-title-main {
  font-size: clamp(1.85rem, 3.05vw, 3.05rem) !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.03em !important;
  color: #047857 !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  -webkit-text-fill-color: initial !important;
  display: block !important;
  margin: 2px 0 10px 0 !important;
  white-space: nowrap !important;
}

/* PCでは改行せず1行表示 */
.soccer-title-br {
  display: none;
}

@media (max-width: 640px) {
  .soccer-title-br {
    display: block !important;
    content: "";
  }

  .soccer-hero-title-main {
    font-size: clamp(1.48rem, 6.2vw, 2.15rem) !important;
    line-height: 1.22 !important;
    letter-spacing: -0.02em !important;
    white-space: normal !important;
    word-break: auto-phrase !important;
    text-wrap: balance !important;
  }
}

/* 3段目：左ボーダースラブ（.typo-line-slab 準拠） */
.soccer-hero-title-sub {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  margin-top: 2px !important;
  padding: 2px 0 2px 14px !important;
  border-left: 4px solid #059669 !important;
  background: transparent !important;
}

.soccer-hero-sub-line {
  display: none !important;
}

.soccer-hero-sub-text {
  font-size: clamp(0.88rem, 1.22vw, 1.08rem) !important;
  font-weight: 900 !important;
  color: #1E293B !important;
  letter-spacing: 0.02em !important;
  line-height: 1.45 !important;
  word-break: auto-phrase !important;
  text-wrap: pretty !important;
}

/* 3. リード文（/price/ の .regional-hero-lead-text 準拠） */
.soccer-hero-lead {
  color: #475569 !important;
  font-size: clamp(0.92rem, 1.1vw, 1rem) !important;
  line-height: 1.85 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 28px 0 !important;
}

/* 4. スペック・ストリップ（上下ヘアライン＋SVGアイコンで端正に構成、li左の不要なborderは廃止） */
.entry-content .soccer-hero-trust-list,
.soccer-hero-trust-list {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px 24px !important;
  width: 100% !important;
  margin: 0 0 32px 0 !important;
  padding: 18px 0 !important;
  border-top: 1px solid rgba(5, 150, 105, 0.22) !important;
  border-bottom: 1px solid rgba(5, 150, 105, 0.22) !important;
  list-style: none !important;
}

.entry-content .soccer-hero-trust-list li,
.soccer-hero-trust-item {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: auto !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  gap: 7px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 2px 0 !important;
  font-size: 0.88rem !important;
  font-weight: 800 !important;
  color: #065F46 !important;
  box-shadow: none !important;
  margin: 0 !important;
  white-space: nowrap !important;
  text-align: left !important;
}

.entry-content .soccer-hero-trust-list li::before,
.soccer-hero-trust-item::before {
  content: none !important;
  display: none !important;
}

.soccer-hero-trust-item svg {
  color: #059669;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

@media (max-width: 640px) {

  /* スマホ：1項目1行の縦リストにして、途中改行・左右ガタつきを防ぐ */
  .entry-content .soccer-hero-trust-list,
  .soccer-hero-trust-list {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 26px 0 !important;
    padding: 14px 0 !important;
    gap: 10px !important;
    box-sizing: border-box !important;
  }

  .entry-content .soccer-hero-trust-list li,
  .soccer-hero-trust-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    font-size: 0.88rem !important;
    gap: 8px !important;
    align-items: center !important;
    white-space: nowrap !important;
    line-height: 1.4 !important;
  }
}

/* 5. アクション誘導（/price/ の .regional-hero-solid-btn 準拠：直角ソリッド・高コントラスト） */
.soccer-hero-cta-group {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  width: 100%;
}

.soccer-hero-cta-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  background: #059669 !important;
  color: #FFFFFF !important;
  font-size: 0.98rem !important;
  font-weight: 800 !important;
  padding: 16px 36px !important;
  min-height: 54px !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
}

.soccer-hero-cta-btn:hover {
  background: #10B981 !important;
  transform: translateY(-2px) !important;
  box-shadow: none !important;
  color: #FFFFFF !important;
}

@media (max-width: 600px) {
  .soccer-hero-cta-btn {
    width: 100% !important;
  }
}

.soccer-hero-cta-note {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  font-size: 0.84rem !important;
  line-height: 1.35 !important;
  color: #64748B !important;
  font-weight: 700 !important;
  margin: 0 !important;
}

.soccer-hero-cta-note svg {
  color: #10B981 !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
  display: block !important;
  margin: 0 !important;
}

/* 右側：ビジュアル・モノリス ＆ 縦書きタイポグラフィ・スパイン（/price/ の .regional-hero-visual-zone 準拠） */
.soccer-hero-mockup-wrap {
  position: relative !important;
  width: 100% !important;
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  gap: 14px !important;
  align-items: stretch !important;
}

/* 左の縦書きタイポグラフィ・スパイン（HTML要素 .soccer-hero-vertical-spine で表示） */
.soccer-hero-mockup-wrap::before {
  content: none !important;
  display: none !important;
}

.soccer-hero-vertical-spine {
  writing-mode: vertical-rl !important;
  color: #047857 !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  border-left: 1px solid rgba(5, 150, 105, 0.35) !important;
  padding-left: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  user-select: none !important;
}

@media (max-width: 600px) {
  .soccer-hero-mockup-wrap {
    grid-template-columns: 1fr !important;
  }

  .soccer-hero-vertical-spine {
    display: none !important;
  }
}

.soccer-device-pc {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  border: none !important;
  box-shadow: none !important;
}

/* ビジュアル下部のフローティング・キャプション（HTML要素 .soccer-hero-floating-caption で表示） */
.soccer-device-pc::after {
  content: none !important;
  display: none !important;
}

.soccer-hero-floating-caption {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  margin-top: -28px !important;
  margin-left: 24px !important;
  background: #047857 !important;
  color: #FFFFFF !important;
  padding: 16px 22px !important;
  border-left: 4px solid #34D399 !important;
  z-index: 2 !important;
}

.soccer-floating-en {
  display: block !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  color: #A7F3D0 !important;
  margin-bottom: 0 !important;
}

.soccer-floating-ja {
  display: block !important;
  font-size: 0.88rem !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  line-height: 1.45 !important;
}

.soccer-device-screen {
  width: 100% !important;
  border-radius: 0 !important;
  overflow: visible !important;
  background-color: transparent !important;
  border: none !important;
}

/* ブラウザ風バーは非表示にし、/price/ と同じソリッドなビジュアルモノリスとして表示 */
.soccer-device-browser-bar {
  display: none !important;
}

.soccer-device-img-holder {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 4 / 3.2 !important;
  height: auto !important;
  overflow: hidden !important;
  background: #0F172A !important;
  display: block !important;
  border: none !important;
}

.soccer-device-img-holder img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 4 / 3.2 !important;
  max-width: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 0 !important;
  border: none !important;
}

/* ② コンパクト実績ギャラリー (.soccer-compact-gallery) - /price/ オープン・エディトリアル設計（箱枠なし） */
.entry-content .soccer-compact-gallery,
.soccer-compact-gallery {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 24px 20px !important;
  margin: 24px 0 48px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

@media (max-width: 1080px) {

  .entry-content .soccer-compact-gallery,
  .soccer-compact-gallery {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px 16px !important;
  }
}

@media (max-width: 640px) {

  .entry-content .soccer-compact-gallery,
  .soccer-compact-gallery {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 18px 12px !important;
  }
}

.entry-content .soccer-compact-gallery li,
.soccer-compact-item {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  transition: transform 0.25s ease !important;
  padding: 0 !important;
  margin: 0 !important;
}

.entry-content .soccer-compact-gallery li::before,
.soccer-compact-item::before {
  content: none !important;
  display: none !important;
}

.soccer-compact-item:hover {
  transform: translateY(-2px) !important;
  background: transparent !important;
}

.soccer-compact-thumb {
  width: 100%;
  aspect-ratio: auto !important;
  height: auto !important;
  background: #F1F5F9;
  overflow: hidden;
  border: 1px solid #E2E8F0;
  display: block;
  margin-bottom: 10px;
}

.soccer-compact-thumb img {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 0 !important;
  transition: transform 0.3s ease;
}

.soccer-compact-item:hover .soccer-compact-thumb img {
  transform: scale(1.03);
}

.soccer-compact-info {
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  flex: 1 !important;
  gap: 0 !important;
}

.soccer-compact-area {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  color: #64748B !important;
  margin: 0 0 2px 0 !important;
  padding: 0 !important;
  display: block !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.3 !important;
  border: none !important;
}

.soccer-compact-name {
  font-size: 0.98rem !important;
  font-weight: 900 !important;
  color: #047857 !important;
  line-height: 1.35 !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  border: none !important;
  flex: none !important;
  display: block !important;
}

.soccer-compact-name::before,
.soccer-compact-name::after {
  display: none !important;
}

.soccer-compact-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: 100% !important;
  padding: 8px 12px !important;
  background: #059669 !important;
  border: 1px solid #059669 !important;
  border-radius: 0 !important;
  color: #FFFFFF !important;
  font-size: 0.8rem !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
  margin-top: auto !important;
  box-sizing: border-box !important;
}

.soccer-compact-btn:hover {
  background: #047857 !important;
  border-color: #047857 !important;
  color: #FFFFFF !important;
}

/* ③ 機能・ページ紹介の3列グリッド (.soccer-pages-2col-grid / .soccer-pages-3col-grid) - /price/ の .regional-craft-item 準拠オープン設計 */
.entry-content .soccer-pages-2col-grid,
.entry-content .soccer-pages-3col-grid,
.soccer-pages-2col-grid,
.soccer-pages-3col-grid {
  counter-reset: feature-card-idx !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(36px, 4.5vw, 56px) clamp(24px, 3vw, 40px) !important;
  margin: 30px 0 64px 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  clear: both !important;
}

/* フェイルセーフ：万が一見出しがグリッド内に混入しても全幅にする */
.entry-content .soccer-pages-2col-grid>h2,
.entry-content .soccer-pages-2col-grid>h3,
.entry-content .soccer-pages-3col-grid>h2,
.entry-content .soccer-pages-3col-grid>h3,
.soccer-pages-2col-grid>h2,
.soccer-pages-3col-grid>h2 {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin-bottom: 20px !important;
}

@media (max-width: 1100px) {

  .entry-content .soccer-pages-2col-grid,
  .entry-content .soccer-pages-3col-grid,
  .soccer-pages-2col-grid,
  .soccer-pages-3col-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 36px 24px !important;
  }
}

@media (max-width: 680px) {

  .entry-content .soccer-pages-2col-grid,
  .entry-content .soccer-pages-3col-grid,
  .soccer-pages-2col-grid,
  .soccer-pages-3col-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
}

.entry-content .soccer-feature-2col-card,
.soccer-feature-2col-card {
  counter-increment: feature-card-idx !important;
  background: transparent !important;
  border: none !important;
  border-top: 2px solid #059669 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  transition: transform 0.25s ease !important;
  padding: 12px 0 0 0 !important;
  margin-bottom: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* 連番のみ表示（文章は入れない） */
.entry-content .soccer-feature-2col-card::before,
.soccer-feature-2col-card::before {
  content: counter(feature-card-idx, decimal-leading-zero) !important;
  display: block !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  color: #059669 !important;
  margin-bottom: 10px !important;
  line-height: 1 !important;
}

.soccer-feature-2col-card:hover {
  transform: none !important;
  background: transparent !important;
}

.soccer-feature-2col-img {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  background: #F8FAFC !important;
  overflow: hidden !important;
  border: none !important;
  margin-bottom: 16px !important;
}

.soccer-feature-2col-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 0 !important;
  transition: transform 0.35s ease !important;
}

.soccer-feature-2col-card:hover .soccer-feature-2col-img img {
  transform: scale(1.03) !important;
}

.soccer-feature-2col-body {
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

.soccer-feature-2col-title {
  font-size: clamp(1.12rem, 1.5vw, 1.28rem) !important;
  font-weight: 900 !important;
  color: #047857 !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.35 !important;
  border: none !important;
  padding: 0 !important;
}

.soccer-feature-2col-title::before,
.soccer-feature-2col-title::after {
  display: none !important;
}

.soccer-feature-2col-desc {
  font-size: 0.92rem !important;
  line-height: 1.75 !important;
  color: #475569 !important;
  margin: 0 0 12px 0 !important;
  flex: 1 !important;
}

.soccer-feature-2col-meta {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.soccer-feature-demo-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.84rem;
  font-weight: 800;
  color: #059669;
  text-decoration: none;
  transition: all 0.2s ease;
  word-break: break-all;
}

.soccer-feature-demo-link:hover {
  color: #047857;
  text-decoration: underline;
}

/* ④ 明朗な料金体系 (.soccer-rich-pricing) - /price/ の .regional-price-slab 準拠（箱を廃したタイポグラフィ・プライススラブ） */
.soccer-rich-pricing {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(32px, 5vw, 64px);
  margin: 28px 0 48px 0;
}

@media (max-width: 800px) {
  .soccer-rich-pricing {
    grid-template-columns: 1fr;
    gap: 36px;
  }
}

.soccer-pricing-card {
  background: transparent !important;
  border: none !important;
  border-top: 3px solid #059669 !important;
  border-radius: 0 !important;
  padding: 20px 0 0 0 !important;
  box-shadow: none !important;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: none;
}

.soccer-pricing-card--initial {
  background: transparent !important;
}

.soccer-pricing-card--monthly {
  background: transparent !important;
  border-top: 3px solid #334155 !important;
}

/* 料金ヘッダー行：囲み背景をなくし、/price/ のスラブヘッドと統一 */
.soccer-pricing-header-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  padding: 0 0 14px 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin-bottom: 12px !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

.soccer-pricing-card--monthly .soccer-pricing-header-row,
.soccer-pricing-header-row:has(.tag--green),
.soccer-pricing-header-row:has(.tag--slate) {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

@media (max-width: 580px) {
  .soccer-pricing-header-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 0 0 12px 0 !important;
  }

  .soccer-pricing-header-right {
    width: 100% !important;
    justify-content: flex-start !important;
  }
}

.soccer-pricing-header-left {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

.soccer-pricing-tag,
.soccer-pricing-card-badge {
  display: inline-block;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  padding: 3px 12px !important;
  border-radius: 0 !important;
  margin-bottom: 10px !important;
  letter-spacing: 0.12em !important;
  width: fit-content;
  background: #059669 !important;
  color: #FFFFFF !important;
  border: none !important;
  box-shadow: none !important;
}

.soccer-pricing-tag.tag--green,
.soccer-pricing-tag.tag--slate,
.soccer-pricing-card--monthly .soccer-pricing-tag,
.soccer-pricing-card--monthly .soccer-pricing-card-badge {
  background: #334155 !important;
  color: #FFFFFF !important;
  border: none !important;
  box-shadow: none !important;
}

.soccer-pricing-title,
.soccer-pricing-card-name {
  font-size: clamp(1.2rem, 1.8vw, 1.45rem) !important;
  font-weight: 900 !important;
  color: #0F172A !important;
  margin: 0 !important;
  border: none !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}

.soccer-pricing-title::before,
.soccer-pricing-title::after,
.soccer-pricing-card-name::before,
.soccer-pricing-card-name::after {
  display: none !important;
}

.soccer-pricing-header-right {
  display: flex !important;
  align-items: baseline !important;
}

.soccer-pricing-amount,
.soccer-pricing-card-cost {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(2.5rem, 3.6vw, 3.3rem) !important;
  /* 特大サイズで強調 */
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  color: var(--color-main, #15308F) !important;
  line-height: 1 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  white-space: nowrap !important;
}

.soccer-pricing-card--monthly .soccer-pricing-amount {
  color: #334155 !important;
  /* 濃すぎず品のあるスティールスレート */
}

.soccer-pricing-amount .unit,
.soccer-pricing-card-cost small {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: clamp(0.9rem, 1.1vw, 1.05rem) !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  color: #64748B !important;
}

.soccer-pricing-sub {
  font-size: 0.88rem !important;
  color: #64748B !important;
  margin: 0 0 20px 0 !important;
  padding-bottom: 16px !important;
  border-bottom: 1px solid #E2E8F0 !important;
  line-height: 1.6 !important;
}

/* 箇条書き：囲み箱を排し下線区切りで見やすさ大幅アップ */
.entry-content .soccer-pricing-features,
.soccer-pricing-features {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  border-top: 1px solid #E2E8F0 !important;
}

.entry-content .soccer-pricing-features li,
.soccer-pricing-features li {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #E2E8F0 !important;
  border-radius: 0 !important;
  padding: 12px 10px !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: #334155 !important;
  line-height: 1.5 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  box-shadow: none !important;
  transition: all 0.2s ease !important;
}

.entry-content .soccer-pricing-features li:hover,
.soccer-pricing-features li:hover {
  background: #F8FAFC !important;
  transform: none !important;
  box-shadow: none !important;
}

.entry-content .soccer-pricing-features li::before,
.soccer-pricing-features li::before {
  content: "✓" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  background: #15308F !important;
  color: #FFFFFF !important;
  border-radius: 0 !important;
  font-size: 0.75rem !important;
  font-weight: 900 !important;
  flex-shrink: 0 !important;
  position: static !important;
  box-shadow: none !important;
  margin: 0 !important;
}

.soccer-pricing-card--monthly .soccer-pricing-features li {
  background: transparent !important;
  border-color: #E2E8F0 !important;
}

.soccer-pricing-card--monthly .soccer-pricing-features li::before {
  background: #475569 !important;
  box-shadow: none !important;
}

/* ⑤ 制作の流れ：他ページと100%完全同一のデザイン（.sec-flow）に統一 */
.entry-content .wp-block-group.sec-flow .flow-step-num {
  display: none !important;
  /* 手動番号を消去し、他ページ共通の ::before 自動STEPボックスを表示 */
}

.entry-content .wp-block-group.sec-flow .flow-step-title,
.entry-content .wp-block-group.sec-flow h3.flow-step-title {
  display: block !important;
  font-size: clamp(1.05rem, 1.3vw, 1.16rem) !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  line-height: 1.4 !important;
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}

.entry-content .wp-block-group.sec-flow .flow-step-title::before,
.entry-content .wp-block-group.sec-flow .flow-step-title::after {
  display: none !important;
}

.entry-content .wp-block-group.sec-flow .flow-step-desc {
  font-size: 0.94rem !important;
  color: #475569 !important;
  line-height: 1.75 !important;
  margin: 0 !important;
}

/* ⑥ よくあるご質問 (FAQ) (.stp_faq_list) */
.stp_faq_list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 28px 0 44px 0;
  border-top: 1px solid #E2E8F0;
}

.stp_faq_item {
  background: transparent;
  border: none;
  border-bottom: 1px solid #E2E8F0;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  transition: all 0.25s ease;
}

.stp_faq_item:hover {
  background: #F8FAFC;
}

.stp_faq_q {
  padding: 18px 20px 18px 52px;
  position: relative;
  font-size: 1.02rem;
  font-weight: 800;
  color: #0F172A;
  line-height: 1.5;
  background: transparent;
  border-bottom: 1px dashed #E2E8F0;
}

.stp_faq_q::before {
  content: "Q";
  position: absolute;
  left: 16px;
  top: 16px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-main, #15308F);
  color: #FFFFFF;
  font-size: 0.85rem;
  font-weight: 900;
  line-height: 1;
}

.stp_faq_a {
  padding: 18px 20px 20px 52px;
  position: relative;
  font-size: 0.94rem;
  line-height: 1.8;
  color: #475569;
  background: transparent;
}

.stp_faq_a::before {
  content: "A";
  position: absolute;
  left: 16px;
  top: 18px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #EA580C;
  color: #FFFFFF;
  font-size: 0.85rem;
  font-weight: 900;
  line-height: 1;
}

/* ⑦ 下部CTAボックス (.page-cta-box) */
.entry-content .page-cta-box,
.page-cta-box {
  background: linear-gradient(135deg, #0f274a 0%, #15308F 100%) !important;
  border-radius: 0 !important;
  border: none !important;
  color: #FFFFFF !important;
  box-shadow: none !important;
  position: relative !important;
  overflow: hidden !important;
}

.page-cta-box .cta-title {
  color: #FFFFFF !important;
  font-size: clamp(1.35rem, 2.5vw, 1.85rem) !important;
  font-weight: 900 !important;
  line-height: 1.4 !important;
  border: none !important;
  padding: 0 !important;
}

.page-cta-box .cta-title::before,
.page-cta-box .cta-title::after {
  display: none !important;
}

.page-cta-box .cta-desc {
  color: #E2E8F0 !important;
  font-size: 0.96rem !important;
  max-width: 720px !important;
  margin: 0 auto 24px auto !important;
}

.page-cta-box .btn-cta {
  background: #EA580C !important;
  color: #FFFFFF !important;
  border-radius: 0 !important;
  border-bottom: 3px solid #9A3412 !important;
  box-shadow: 0 8px 24px rgba(234, 88, 12, 0.35) !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
  display: inline-block !important;
}

.page-cta-box .btn-cta:hover {
  background: #C2410C !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 28px rgba(234, 88, 12, 0.45) !important;
  color: #FFFFFF !important;
}

.soccer-teams-grid li {
  background: #FFFFFF !important;
  border: none !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
  display: flex !important;
  flex-direction: column !important;
  transition: all 0.25s ease !important;
}

.soccer-teams-grid li:hover {
  transform: translateY(-2px) !important;
  background: #F8FAFC !important;
}

.soccer-team-thumb {
  width: 100% !important;
  aspect-ratio: 16 / 10 !important;
  background: #F1F5F9 !important;
  overflow: hidden !important;
  border-bottom: 1px solid #E2E8F0 !important;
  position: relative !important;
}

.soccer-team-thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 0 !important;
  transition: transform 0.35s ease !important;
}

.soccer-teams-grid li:hover .soccer-team-thumb img {
  transform: scale(1.03) !important;
}

.soccer-team-body {
  padding: 18px 20px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

.soccer-team-area {
  display: inline-block !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  color: #475569 !important;
  background: #F1F5F9 !important;
  border-left: 3px solid #64748B !important;
  padding: 3px 10px !important;
  border-radius: 0 !important;
  margin-bottom: 8px !important;
  width: fit-content !important;
}

.soccer-team-name {
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  margin: 0 0 14px 0 !important;
  line-height: 1.35 !important;
}

.soccer-team-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 11px 18px !important;
  background: #EFF4FF !important;
  border: none !important;
  border-left: 3px solid #15308F !important;
  border-radius: 0 !important;
  color: var(--color-main, #15308F) !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  margin-top: auto !important;
}

.soccer-team-btn:hover {
  background: var(--color-main, #15308F) !important;
  color: #FFFFFF !important;
}

/* 4. 各機能紹介カード (wp-block-media-text のリッチ調整) */
.entry-content .wp-block-media-text {
  background: #FFFFFF !important;
  border: none !important;
  border-top: 2px solid #15308F !important;
  border-bottom: 1px solid #CBD5E1 !important;
  border-radius: 0 !important;
  padding: 24px 0 !important;
  margin: 0 0 28px 0 !important;
  box-shadow: none !important;
  gap: 24px !important;
}

@media (max-width: 768px) {
  .entry-content .wp-block-media-text {
    padding: 18px 0 !important;
    gap: 16px !important;
  }
}

.entry-content .wp-block-media-text__content {
  padding: 0 !important;
}

.entry-content .wp-block-media-text__content p {
  font-size: 0.95rem !important;
  line-height: 1.8 !important;
  color: #334155 !important;
  margin-bottom: 12px !important;
}

.entry-content .wp-block-media-text__content p:last-child {
  margin-bottom: 0 !important;
}

.entry-content .wp-block-media-text__media {
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  border: none !important;
  border-top: 2px solid #15308F !important;
  border-bottom: 1px solid #CBD5E1 !important;
  box-shadow: none !important;
  background: #F8FAFC !important;
}

.entry-content .wp-block-media-text__media img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0 !important;
}

/* 参考ページリンクボタン */
.media-ref-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  padding: 8px 16px !important;
  background: #EFF4FF !important;
  border: none !important;
  border-left: 3px solid #15308F !important;
  border-radius: 0 !important;
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  color: var(--color-main, #15308F) !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  margin-top: 8px !important;
}

.media-ref-btn:hover {
  background: var(--color-main, #15308F) !important;
  color: #FFFFFF !important;
}

/* 5. 制作の流れ (ol.stp_flow) - 二重数字を完全解消し上質なステップリストに */
.entry-content ol.stp_flow,
ol.stp_flow {
  list-style: none !important;
  counter-reset: stp-step !important;
  padding: 0 !important;
  margin: 28px 0 44px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  border-top: 2px solid #0F172A !important;
}

.entry-content ol.stp_flow>li,
ol.stp_flow>li {
  position: relative !important;
  counter-increment: stp-step !important;
  background: transparent !important;
  border: none !important;
  border-left: 4px solid var(--color-main, #15308F) !important;
  border-bottom: 1px solid #CBD5E1 !important;
  border-radius: 0 !important;
  padding: 20px 22px 20px 72px !important;
  box-shadow: none !important;
  font-size: 0.95rem !important;
  line-height: 1.75 !important;
  color: #334155 !important;
}

/* グローバルの ol li::before (丸カウンタ) を完全に上書き */
.entry-content ol.stp_flow>li::before,
ol.stp_flow>li::before {
  content: counter(stp-step, decimal-leading-zero) !important;
  position: absolute !important;
  top: 18px !important;
  left: 18px !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 1.45rem !important;
  font-weight: 900 !important;
  color: var(--color-main, #15308F) !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
}

.entry-content ol.stp_flow>li strong,
ol.stp_flow>li strong {
  display: block !important;
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  margin-bottom: 8px !important;
}

/* ==========================================================================
   /price02/（page-id-1237）& /soccer-team-plan/（page-id-2029）共通：
   /price/（.regional-plan-wrap）完全準拠の見出し（.regional-section-header-bar）＆ 構造デザイン
   ※擬似要素（::before / ::after）による文章挿入を全廃し、HTML要素を直接スタイリング
   ========================================================================== */

/* セクション見出しバー（.regional-section-header-bar）：
   右端英語ラベルを上段右端に配置し、長文H2見出しでも横幅100%を使って1文字落ちを防ぐ */
.entry-content .regional-section-header-bar,
.regional-section-header-bar {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  border-bottom: 1px solid rgba(21, 48, 143, 0.22) !important;
  padding-bottom: 16px !important;
  margin: clamp(64px, 8vw, 96px) 0 clamp(32px, 4.5vw, 48px) 0 !important;
}

/* sectionなどpaddingを持つ背景付きラッパーの直下・先頭にある場合は上部marginを0にして二重余白を防止 */
section .regional-section-header-bar:first-child,
.regional-standard-container>.regional-section-header-bar:first-child,
.regional-wide-container>.regional-section-header-bar:first-child,
[class*="-section"] .regional-section-header-bar:first-child {
  margin-top: 0 !important;
}

.entry-content .regional-section-header-bar .header-bar-left,
.regional-section-header-bar .header-bar-left {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: 100% !important;
}

.entry-content .regional-section-header-bar .header-bar-right,
.regional-section-header-bar .header-bar-right {
  position: absolute !important;
  top: 6px !important;
  right: 0 !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  line-height: 1 !important;
  color: rgba(21, 48, 143, 0.45) !important;
  white-space: nowrap !important;
}

.entry-content .regional-section-header-bar h2.regional-heading,
.regional-section-header-bar h2.regional-heading {
  font-size: clamp(1.38rem, 2.25vw, 1.95rem) !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.02em !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  width: 100% !important;
  word-break: auto-phrase !important;
  text-wrap: pretty !important;
}

.entry-content .regional-section-header-bar h2.regional-heading::before,
.entry-content .regional-section-header-bar h2.regional-heading::after,
.page-id-1237 .entry-content h2::before,
.page-id-1237 .entry-content h2::after,
.page-id-2029 .entry-content h2::before,
.page-id-2029 .entry-content h2::after {
  content: none !important;
  display: none !important;
}

/* 通常の h2 が残っている場合のフォールバック（擬似要素テキストなし） */
.page-id-1237 .entry-content h2:not(.soccer-hero-main-title):not(.regional-heading):not(.cta-title),
.page-id-2029 .entry-content h2:not(.soccer-hero-main-title):not(.regional-heading):not(.cta-title) {
  display: block !important;
  font-size: clamp(1.38rem, 2.25vw, 1.92rem) !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.02em !important;
  padding: 0 0 14px 0 !important;
  margin: clamp(64px, 8vw, 96px) 0 clamp(32px, 4.5vw, 48px) 0 !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  word-break: auto-phrase !important;
  text-wrap: pretty !important;
}

/* 下部誘導 (.sec-cta h2) は中央寄せ誘導スタイルを維持 */
.page-id-1237 .entry-content .wp-block-group.sec-cta h2,
.page-id-2029 .entry-content .wp-block-group.sec-cta h2 {
  display: block !important;
  text-align: center !important;
  padding: 0 !important;
  margin: 0 auto 18px auto !important;
  border: none !important;
}

@media (max-width: 768px) {

  .entry-content .regional-section-header-bar,
  .regional-section-header-bar {
    padding-bottom: 14px !important;
    margin: 48px 0 28px 0 !important;
  }

  .entry-content .regional-section-header-bar .header-bar-right,
  .regional-section-header-bar .header-bar-right {
    display: none !important;
  }
}

/* ==========================================================================
   AIで作るシンプルホームページ（/price02/ : page-id-1237 / .ai-simple-hero）
   ・/price/ 準拠のダイナミック・タイポグラフィ ＆ 見出し設計
   ・現在のオレンジ系テーマカラー（#EA580C / #C2410C / #9A3412）を維持
   ========================================================================== */

/* 1. ヒーロー背景グリッド & 巨大ストローク文字（HTML要素 .soccer-hero-bg-typo） */
.page-id-1237 .soccer-impact-hero::before,
.ai-simple-hero::before {
  background-image:
    radial-gradient(circle at 85% 20%, rgba(249, 115, 22, 0.08) 0%, transparent 55%),
    linear-gradient(90deg, rgba(234, 88, 12, 0.04) 1px, transparent 1px),
    linear-gradient(rgba(234, 88, 12, 0.04) 1px, transparent 1px) !important;
  background-size: 100% 100%, 96px 96px, 96px 96px !important;
}

.page-id-1237 .soccer-hero-bg-typo,
.ai-simple-hero .soccer-hero-bg-typo {
  -webkit-text-stroke: 1.5px rgba(234, 88, 12, 0.075) !important;
}

/* 2. ヒーローキッカーライン（HTML要素 .soccer-hero-kicker-num / オレンジ） */
.page-id-1237 .soccer-hero-kicker-num,
.ai-simple-hero .soccer-hero-kicker-num {
  background: #EA580C !important;
  color: #FFFFFF !important;
}

.page-id-1237 .soccer-hero-capsule-meta,
.ai-simple-hero .soccer-hero-capsule-meta {
  color: #C2410C !important;
}

.page-id-1237 .soccer-hero-capsule-meta::before,
.ai-simple-hero .soccer-hero-capsule-meta::before {
  background: #F97316 !important;
}

.page-id-1237 .soccer-hero-capsule-badge,
.ai-simple-hero .soccer-hero-capsule-badge {
  background: #FFF7ED !important;
  color: #C2410C !important;
}

/* 3. ダイナミック・タイポグラフィ H1（HTML要素 .soccer-hero-title-serif / オレンジ系） */
.page-id-1237 .soccer-hero-title-serif,
.ai-simple-hero .soccer-hero-title-serif {
  color: #EA580C !important;
}

.page-id-1237 .soccer-hero-title-main,
.ai-simple-hero .soccer-hero-title-main {
  color: #C2410C !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  -webkit-text-fill-color: initial !important;
}

.page-id-1237 .soccer-hero-title-sub,
.ai-simple-hero .soccer-hero-title-sub {
  border-left: 4px solid #EA580C !important;
}

/* 4. ヒーロースペック・ストリップ（上下オレンジヘアライン＋SVGアイコン、li左の不要なborderは廃止） */
.entry-content .ai-simple-hero .soccer-hero-trust-list,
.ai-simple-hero .soccer-hero-trust-list,
.page-id-1237 .entry-content .soccer-hero-trust-list,
.page-id-1237 .soccer-hero-trust-list {
  border-top: 1px solid rgba(234, 88, 12, 0.22) !important;
  border-bottom: 1px solid rgba(234, 88, 12, 0.22) !important;
}

.entry-content .ai-simple-hero .soccer-hero-trust-list li,
.ai-simple-hero .soccer-hero-trust-item,
.page-id-1237 .entry-content .soccer-hero-trust-list li,
.page-id-1237 .soccer-hero-trust-item {
  background: transparent !important;
  border: none !important;
  color: #9A3412 !important;
  padding: 2px 0 !important;
  width: auto !important;
  min-width: 0 !important;
}

.page-id-1237 .soccer-hero-trust-item svg,
.ai-simple-hero .soccer-hero-trust-item svg,
.page-id-1237 .soccer-hero-cta-note svg,
.ai-simple-hero .soccer-hero-cta-note svg {
  color: #EA580C !important;
}

/* 5. ヒーローCTAボタン（直角ソリッドオレンジ） */
.page-id-1237 .soccer-hero-cta-btn,
.ai-simple-hero .soccer-hero-cta-btn {
  background: #EA580C !important;
  border: none !important;
  box-shadow: none !important;
}

.page-id-1237 .soccer-hero-cta-btn:hover,
.ai-simple-hero .soccer-hero-cta-btn:hover {
  background: #C2410C !important;
  box-shadow: none !important;
}

/* 6. ヒーロー右側：縦書きスパイン ＆ フローティングキャプション（HTML要素 / オレンジ系） */
.page-id-1237 .soccer-hero-vertical-spine,
.ai-simple-hero .soccer-hero-vertical-spine {
  color: #C2410C !important;
  border-left: 1px solid rgba(234, 88, 12, 0.35) !important;
}

.page-id-1237 .soccer-hero-floating-caption,
.ai-simple-hero .soccer-hero-floating-caption {
  background: #C2410C !important;
  border-left: 4px solid #FDBA74 !important;
}

.page-id-1237 .soccer-floating-en,
.ai-simple-hero .soccer-floating-en {
  color: #FED7AA !important;
}

/* 7. /price02/ セクション見出し（.regional-section-header-bar / H2 / H3：オレンジ系統一） */
.page-id-1237 .entry-content .regional-section-header-bar {
  border-bottom: 1px solid rgba(234, 88, 12, 0.25) !important;
}

.page-id-1237 .entry-content .regional-chapter-meta {
  background: #C2410C !important;
  border-left: 4px solid #FDBA74 !important;
  color: #FFFFFF !important;
}

.page-id-1237 .entry-content h2.regional-heading,
.page-id-1237 .entry-content h2:not(.soccer-hero-main-title):not(.cta-title) {
  color: #C2410C !important;
}

.page-id-1237 .entry-content h2:not(.soccer-hero-main-title):not(.regional-heading):not(.cta-title) {
  border-bottom: 1px solid rgba(234, 88, 12, 0.25) !important;
}

.page-id-1237 .entry-content .header-bar-right {
  color: rgba(194, 65, 12, 0.45) !important;
}

.page-id-1237 .entry-content h3:not(.soccer-feature-2col-title):not(.soccer-pricing-title):not(.flow-step-title) {
  color: #9A3412 !important;
  border-left: 3px solid #EA580C !important;
  background: linear-gradient(90deg, #FFF7ED 0%, rgba(255, 247, 237, 0.3) 70%, transparent 100%) !important;
}

/* 8. /price02/ 実績ギャラリー・3列特徴アイテム・料金スラブ・フロー・FAQ（オレンジ系統一） */
.page-id-1237 .soccer-compact-item {
  border: none !important;
  padding: 0 !important;
}

.page-id-1237 .soccer-compact-name {
  color: #9A3412 !important;
}

.page-id-1237 .soccer-compact-btn {
  background: #EA580C !important;
  border: 1px solid #EA580C !important;
  color: #FFFFFF !important;
}

.page-id-1237 .soccer-compact-btn:hover {
  background: #C2410C !important;
  border-color: #C2410C !important;
  color: #FFFFFF !important;
}

.page-id-1237 .soccer-feature-2col-card {
  border-top-color: #EA580C !important;
}

.page-id-1237 .soccer-feature-2col-card::before {
  color: #EA580C !important;
}

.page-id-1237 .soccer-feature-2col-title {
  color: #9A3412 !important;
}

.page-id-1237 .soccer-feature-demo-link {
  color: #EA580C !important;
}

.page-id-1237 .soccer-pricing-card--initial,
.ai-simple-plan .soccer-pricing-card--initial {
  border-top: 3px solid #EA580C !important;
  background: transparent !important;
}

.page-id-1237 .soccer-pricing-card--initial .soccer-pricing-header-row,
.ai-simple-plan .soccer-pricing-card--initial .soccer-pricing-header-row {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.page-id-1237 .soccer-pricing-card--initial .soccer-pricing-title,
.ai-simple-plan .soccer-pricing-card--initial .soccer-pricing-title {
  color: #9A3412 !important;
}

.page-id-1237 .soccer-pricing-card--initial .soccer-pricing-tag,
.ai-simple-plan .soccer-pricing-card--initial .soccer-pricing-tag {
  background: #EA580C !important;
  color: #FFFFFF !important;
}

.page-id-1237 .soccer-pricing-card--initial .soccer-pricing-amount,
.ai-simple-plan .soccer-pricing-card--initial .soccer-pricing-amount {
  color: #EA580C !important;
}

.page-id-1237 .entry-content .wp-block-group.sec-flow ol li::before {
  background-color: #EA580C !important;
}

.page-id-1237 .entry-content .wp-block-group.sec-flow ol li:hover::before {
  background-color: #C2410C !important;
}

.page-id-1237 .entry-content .wp-block-group.sec-faq summary::before,
.page-id-1237 .stp_faq_q::before {
  background: #EA580C !important;
}

/* ③ 料金リストの見やすさ強化（太字タイトル ＋ 補足説明の構造化） */
.soccer-pricing-features li {
  align-items: flex-start !important;
  padding: 12px 10px !important;
  gap: 12px !important;
}

.soccer-pricing-features li::before {
  margin-top: 2px !important;
}

.soccer-pricing-features li .feature-content {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  text-align: left !important;
  flex: 1 1 auto !important;
}

.soccer-pricing-features li .feature-title {
  font-size: 0.94rem !important;
  font-weight: 800 !important;
  color: #0F172A !important;
  line-height: 1.4 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.soccer-pricing-features li .feature-desc {
  font-size: 0.81rem !important;
  font-weight: 500 !important;
  color: #64748B !important;
  line-height: 1.45 !important;
}

.soccer-pricing-card--monthly .soccer-pricing-features li .feature-title {
  color: #0F172A !important;
}

.soccer-pricing-card--monthly .soccer-pricing-features li .feature-desc {
  color: #475569 !important;
  opacity: 0.9 !important;
}

/* ④ 料金スラブ内の「表（スペック台帳）スタイル」 */
.soccer-pricing-features.pricing-table-style {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-top: 1px solid #E2E8F0 !important;
}

.soccer-pricing-features.pricing-table-style li {
  display: grid !important;
  grid-template-columns: 125px 1fr !important;
  align-items: center !important;
  padding: 12px 6px !important;
  gap: 14px !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #E2E8F0 !important;
  border-radius: 0 !important;
  line-height: 1.4 !important;
  transition: background-color 0.2s ease !important;
}

.soccer-pricing-features.pricing-table-style li:hover {
  background: #F8FAFC !important;
  transform: none !important;
}

.soccer-pricing-features.pricing-table-style li::before {
  display: none !important;
  content: none !important;
}

.soccer-pricing-features.pricing-table-style .spec-label,
.soccer-pricing-features.pricing-table-style .badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 800 !important;
  font-size: 0.78rem !important;
  border-radius: 0 !important;
  padding: 4px 8px !important;
  text-align: center !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

.soccer-pricing-card--initial .soccer-pricing-features.pricing-table-style .spec-label,
.soccer-pricing-card--initial .soccer-pricing-features.pricing-table-style .badge {
  background: #FFF7ED !important;
  color: #C2410C !important;
  border: none !important;
}

.soccer-pricing-card--monthly .soccer-pricing-features.pricing-table-style .spec-label,
.soccer-pricing-card--monthly .soccer-pricing-features.pricing-table-style .badge {
  background: #F1F5F9 !important;
  color: #334155 !important;
  border: none !important;
}

.soccer-pricing-features.pricing-table-style .spec-value,
.soccer-pricing-features.pricing-table-style .spec-desc {
  font-weight: 700 !important;
  color: #1E293B !important;
  font-size: 0.88rem !important;
}

@media (max-width: 640px) {
  .soccer-pricing-features.pricing-table-style li {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    padding: 8px 4px !important;
  }

  .soccer-pricing-features.pricing-table-style .spec-label,
  .soccer-pricing-features.pricing-table-style .badge {
    width: fit-content !important;
    font-size: 0.72rem !important;
    padding: 2px 6px !important;
  }

  .soccer-pricing-features.pricing-table-style .spec-value,
  .soccer-pricing-features.pricing-table-style .spec-desc {
    font-size: 0.82rem !important;
  }
}

/* ==========================================================================
   サッカーチーム専用ホームページ（/soccer-team-plan/ : page-id-2029）
   ・/price/ 準拠のダイナミック・タイポグラフィ ＆ 見出し設計
   ・現在のエメラルドグリーン系テーマカラー（#059669 / #047857 / #065F46）を維持
   ========================================================================== */

/* 1. セクション見出し（.regional-section-header-bar / H2 / H3：エメラルドグリーン系統一） */
.page-id-2029 .entry-content .regional-section-header-bar {
  border-bottom: 1px solid rgba(5, 150, 105, 0.25) !important;
}

.page-id-2029 .entry-content .regional-chapter-meta {
  background: #047857 !important;
  border-left: 4px solid #34D399 !important;
  color: #FFFFFF !important;
}

.page-id-2029 .entry-content h2.regional-heading,
.page-id-2029 .entry-content h2:not(.soccer-hero-main-title):not(.cta-title) {
  color: #047857 !important;
}

.page-id-2029 .entry-content h2:not(.soccer-hero-main-title):not(.regional-heading):not(.cta-title) {
  border-bottom: 1px solid rgba(5, 150, 105, 0.25) !important;
}

.page-id-2029 .entry-content .header-bar-right {
  color: rgba(4, 120, 87, 0.45) !important;
}

.page-id-2029 .entry-content h3:not(.soccer-feature-2col-title):not(.soccer-pricing-title):not(.flow-step-title) {
  color: #065F46 !important;
  border-left: 3px solid #059669 !important;
  background: linear-gradient(90deg, #ECFDF5 0%, rgba(236, 253, 245, 0.3) 70%, transparent 100%) !important;
}

/* 2. ヒーローメインタイトル・キッカー・スペックストリップ（エメラルドグリーン系） */
.page-id-2029 .soccer-hero-title-main {
  color: #047857 !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  -webkit-text-fill-color: initial !important;
}

.page-id-2029 .soccer-hero-capsule {
  background: transparent !important;
  border: none !important;
}

.page-id-2029 .soccer-hero-capsule-badge {
  background: #ECFDF5 !important;
  color: #047857 !important;
}

.page-id-2029 .soccer-hero-trust-list li,
.page-id-2029 .soccer-hero-trust-item {
  border: none !important;
  padding: 2px 0 !important;
  color: #065F46 !important;
}

.page-id-2029 .soccer-hero-trust-item svg {
  color: #059669 !important;
}

.page-id-2029 .soccer-feature-2col-card {
  border-top-color: #059669 !important;
}

/* 3. 初期制作費用スラブ・フロー・FAQ：エメラルドグリーン統一 */
.page-id-2029 .soccer-pricing-card--initial {
  border-top: 3px solid #059669 !important;
  background: transparent !important;
}

.page-id-2029 .soccer-pricing-card--initial .soccer-pricing-header-row {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.page-id-2029 .soccer-pricing-card--initial .soccer-pricing-title {
  color: #065F46 !important;
}

.page-id-2029 .soccer-pricing-card--initial .soccer-pricing-tag {
  background: #059669 !important;
  color: #FFFFFF !important;
}

.page-id-2029 .soccer-pricing-card--initial .soccer-pricing-amount {
  color: #059669 !important;
}

.page-id-2029 .soccer-pricing-card--initial .soccer-pricing-features li::before {
  background: #059669 !important;
  box-shadow: none !important;
}

.page-id-2029 .soccer-pricing-card--initial .soccer-pricing-features.pricing-table-style .spec-label,
.page-id-2029 .soccer-pricing-card--initial .soccer-pricing-features.pricing-table-style .spec-key {
  background: #ECFDF5 !important;
  color: #065F46 !important;
  border: none !important;
}

.page-id-2029 .entry-content .wp-block-group.sec-flow ol li::before {
  background-color: #059669 !important;
}

.page-id-2029 .entry-content .wp-block-group.sec-flow ol li:hover::before {
  background-color: #047857 !important;
}

.page-id-2029 .entry-content .wp-block-group.sec-faq summary::before,
.page-id-2029 .stp_faq_q::before {
  background: #059669 !important;
}

.page-id-2029 .entry-content .wp-block-group.sec-cta h2 {
  color: #047857 !important;
}

.page-id-2029 .entry-content .wp-block-group.sec-cta .sec-cta-guide a,
.page-id-2029 .entry-content .wp-block-group.sec-cta a[href*="finalCta"] {
  color: #047857 !important;
  background: rgba(5, 150, 105, 0.08) !important;
  border-bottom: 2px solid #059669 !important;
}

.page-id-2029 .entry-content .wp-block-group.sec-cta .sec-cta-guide a:hover,
.page-id-2029 .entry-content .wp-block-group.sec-cta a[href*="finalCta"]:hover {
  background: rgba(5, 150, 105, 0.14) !important;
}

/* ==========================================================================
   地域密着ホームページ制作プラン 専用スタイル (.regional-plan-wrap / .page-id-530)
   - テーマカラー #15308F を基調としたダイナミック・タイポグラフィ設計
   - 脱・四角い箱：4辺を囲むボーダーボックスや角丸カードを全廃し、余白と線・文字の強弱で構成
   - 画面幅100% (100vw) 全幅ブレイクアウト完全対応
   ========================================================================== */

/* 固定ページのコンテナ制約・下部余白を解除し、#finalCta まで隙間なくフルワイド展開（.subpage-main の padding-top はヘッダー高さを確保するため維持） */
.page-id-530 .subpage-main,
body:has(.regional-plan-wrap) .subpage-main {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.page-id-530 .page-section,
.page-id-530 .subpage-section,
body:has(.regional-plan-wrap) .page-section,
body:has(.regional-plan-wrap) .subpage-section,
.subpage-main:has(.regional-plan-wrap) .page-section,
.subpage-main:has(.regional-plan-wrap) .subpage-section {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.page-id-530 .subpage-container,
.page-id-530 .page-container,
.page-id-530 .subpage-content-wrapper,
.page-id-530 .page-article,
.page-id-530 .entry-content,
body:has(.regional-plan-wrap) .subpage-container,
body:has(.regional-plan-wrap) .page-container,
body:has(.regional-plan-wrap) .subpage-content-wrapper,
body:has(.regional-plan-wrap) .page-article,
body:has(.regional-plan-wrap) .entry-content,
.subpage-main:has(.regional-plan-wrap) .subpage-container,
.subpage-main:has(.regional-plan-wrap) .page-container,
.subpage-main:has(.regional-plan-wrap) .subpage-content-wrapper,
.subpage-main:has(.regional-plan-wrap) .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

.regional-plan-wrap {
  width: 100% !important;
  color: #1E293B !important;
  font-family: var(--font-body, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif) !important;
  line-height: 1.75 !important;
  box-sizing: border-box !important;
  background-color: #FFFFFF !important;
}

.regional-plan-wrap * {
  box-sizing: border-box !important;
  border-radius: 0 !important;
}

/* --------------------------------------------------------------------------
   徹底リセット: テーマの .entry-content スタイルを完全無力化
   -------------------------------------------------------------------------- */
:where(.regional-plan-wrap) :where(h1, h2, h3, h4, p) {
  display: block !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-indent: 0 !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  line-break: strict !important;
  position: static !important;
}

:where(.regional-plan-wrap) :where(ul, ol, li) {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

:where(.regional-plan-wrap) :where(h1, h2, h3, h4, p, ul, li)::before,
:where(.regional-plan-wrap) :where(h1, h2, h3, h4, p, ul, li)::after {
  content: none !important;
  display: none !important;
}

/* --------------------------------------------------------------------------
   0. 全幅ブレイクアウト基盤 ＆ エディトリアル・スプリットヘッダー
   -------------------------------------------------------------------------- */
.regional-fullbleed {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.regional-wide-container {
  width: 100% !important;
  max-width: 1380px !important;
  margin: 0 auto !important;
  padding: 0 clamp(20px, 4vw, 60px) !important;
}

.regional-standard-container {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 clamp(20px, 3.5vw, 44px) !important;
}

/* 四角い枠を廃した、1本の #15308F アンダーラインによる左右スプリット見出し */
.regional-section-header-bar {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 20px !important;
  border-bottom: 1px solid rgba(21, 48, 143, 0.22) !important;
  padding-bottom: 16px !important;
  margin-bottom: clamp(36px, 5vw, 56px) !important;
}

@media (max-width: 768px) {
  .regional-section-header-bar {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 6px !important;
  }
}

/* 大セクションの章番号タグ（#15308F ソリッド＋シアン左エッジで他の小ラベルと明確に区別） */
.regional-chapter-meta {
  display: inline-flex !important;
  align-items: center !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  color: #FFFFFF !important;
  background: #15308F !important;
  border-left: 4px solid #38BDF8 !important;
  padding: 4px 14px !important;
  margin-bottom: 10px !important;
  text-transform: uppercase !important;
}

.regional-chapter-meta::before {
  content: none !important;
  display: none !important;
}

.regional-chapter-meta.meta-dark {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #7DD3FC !important;
  border-left: 4px solid #38BDF8 !important;
}

.regional-plan-wrap h2.regional-heading {
  font-size: clamp(1.55rem, 2.8vw, 2.25rem) !important;
  font-weight: 900 !important;
  color: #15308F !important;
  line-height: 1.25 !important;
  letter-spacing: -0.02em !important;
  margin: 0 !important;
}

.header-bar-right {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  color: rgba(21, 48, 143, 0.45) !important;
  white-space: nowrap !important;
}

/* --------------------------------------------------------------------------
   1. ヒーローセクション（#15308F 基調・ダイナミックタイポグラフィ / 箱枠なし）
   -------------------------------------------------------------------------- */
.regional-creative-hero {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  background-color: #FFFFFF !important;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(46, 143, 213, 0.08) 0%, transparent 55%),
    linear-gradient(90deg, rgba(21, 48, 143, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(21, 48, 143, 0.035) 1px, transparent 1px) !important;
  background-size: 100% 100%, 96px 96px, 96px 96px !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
}

/* メインステージ */
.regional-hero-stage {
  position: relative !important;
  /* 左右paddingなし。ウィンドウ幅が狭い時は width 側で左右に余白を確保し端への密着を防ぐ */
  width: calc(100% - clamp(32px, 8vw, 112px)) !important;
  max-width: 1420px !important;
  margin: 0 auto !important;
  padding: clamp(36px, 5vw, 68px) 0 clamp(52px, 6.5vw, 88px) !important;
  display: grid !important;
  grid-template-columns: 1.18fr 0.82fr !important;
  gap: clamp(36px, 5vw, 72px) !important;
  align-items: center !important;
  box-sizing: border-box !important;
  z-index: 1 !important;
}

@media (max-width: 980px) {
  .regional-hero-stage {
    grid-template-columns: 1fr !important;
    gap: 44px !important;
  }
}

/* 背後の超巨大ストローク・タイポグラフィ */
.regional-hero-bg-typo {
  position: absolute !important;
  top: 0 !important;
  right: -10px !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(6rem, 16vw, 14.5rem) !important;
  font-weight: 900 !important;
  line-height: 0.85 !important;
  letter-spacing: 0.04em !important;
  color: transparent !important;
  -webkit-text-stroke: 1.5px rgba(21, 48, 143, 0.07) !important;
  pointer-events: none !important;
  user-select: none !important;
  z-index: -1 !important;
}

.regional-hero-typo-zone {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.regional-hero-kicker-line {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-bottom: 18px !important;
}

.regional-hero-kicker-line .kicker-num {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  background: #15308F !important;
  padding: 3px 10px !important;
  letter-spacing: 0.12em !important;
}

.regional-hero-kicker-line .kicker-rule {
  width: 28px !important;
  height: 2px !important;
  background: #2E8FD5 !important;
}

.regional-hero-kicker-line .kicker-text {
  font-size: 0.85rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  color: #15308F !important;
}

/* ダイナミック・タイポグラフィ H1（箱を使わず書体・サイズ・色調の対比で魅せる） */
.regional-plan-wrap .regional-hero-h1 {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 4px !important;
  margin: 0 0 24px 0 !important;
  width: 100% !important;
}

.regional-hero-h1 .typo-line-serif {
  font-family: "Noto Serif JP", "游明朝", YuMincho, serif !important;
  font-size: clamp(1.3rem, 2.3vw, 1.85rem) !important;
  font-weight: 700 !important;
  color: #2E8FD5 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.3 !important;
}

.regional-hero-h1 .typo-line-giant {
  font-size: clamp(2.35rem, 5vw, 4.3rem) !important;
  font-weight: 900 !important;
  color: #15308F !important;
  letter-spacing: -0.03em !important;
  line-height: 1.06 !important;
  margin: 2px 0 10px 0 !important;
}

.regional-hero-h1 .typo-line-slab {
  display: inline-block !important;
  background: transparent !important;
  color: #1E293B !important;
  font-size: clamp(1.05rem, 1.75vw, 1.42rem) !important;
  font-weight: 900 !important;
  letter-spacing: 0.06em !important;
  line-height: 1.4 !important;
  padding: 2px 0 2px 14px !important;
  border-left: 4px solid #15308F !important;
}

.regional-plan-wrap .regional-hero-lead-text {
  font-size: clamp(0.92rem, 1.1vw, 1rem) !important;
  line-height: 1.85 !important;
  color: #475569 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 28px 0 !important;
}

/* 特徴・標準仕様ストリップ（#15308F ネイビー系・ヒーローから価格表記を除外） */
.regional-plan-wrap .regional-hero-trust-list,
.entry-content .regional-plan-wrap .regional-hero-trust-list {
  border-top: 1px solid rgba(21, 48, 143, 0.2) !important;
  border-bottom: 1px solid rgba(21, 48, 143, 0.2) !important;
  margin: 0 0 32px 0 !important;
}

.regional-plan-wrap .regional-hero-trust-list li,
.regional-plan-wrap .regional-hero-trust-list .soccer-hero-trust-item {
  color: #15308F !important;
  background: transparent !important;
  border: none !important;
  padding: 2px 0 !important;
}

.regional-plan-wrap .regional-hero-trust-list .soccer-hero-trust-item svg {
  color: #2E8FD5 !important;
}

/* アクション誘導（#15308F ソリッド・黒い枠や黒影なし） */
.regional-hero-cta-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  flex-wrap: wrap !important;
  width: 100% !important;
}

.regional-hero-solid-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  background: #15308F !important;
  color: #FFFFFF !important;
  font-size: 0.98rem !important;
  font-weight: 800 !important;
  padding: 16px 36px !important;
  min-height: 54px !important;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
}

.regional-hero-solid-btn:hover {
  background: #2E8FD5 !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) !important;
}

@media (max-width: 600px) {
  .regional-hero-solid-btn {
    width: 100% !important;
  }
}

.regional-hero-cta-note {
  font-size: 0.84rem !important;
  color: #64748B !important;
  font-weight: 700 !important;
}

/* 右側：枠線を排したビジュアル ＆ 縦書きタイポグラフィ */
.regional-hero-visual-zone {
  position: relative !important;
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  gap: 14px !important;
  align-items: stretch !important;
}

.regional-hero-vertical-spine {
  writing-mode: vertical-rl !important;
  color: #15308F !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  border-left: 1px solid rgba(21, 48, 143, 0.3) !important;
  padding-left: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  user-select: none !important;
}

@media (max-width: 600px) {
  .regional-hero-visual-zone {
    grid-template-columns: 1fr !important;
  }

  .regional-hero-vertical-spine {
    display: none !important;
  }
}

.regional-hero-visual-frame {
  position: relative !important;
  width: 100% !important;
}

.regional-hero-main-img {
  width: 100% !important;
  aspect-ratio: 4 / 3.2 !important;
  object-fit: cover !important;
  display: block !important;
}

.regional-hero-floating-caption {
  position: relative !important;
  margin-top: -28px !important;
  margin-left: 24px !important;
  background: #15308F !important;
  color: #FFFFFF !important;
  padding: 16px 22px !important;
  border-left: 4px solid #38BDF8 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  z-index: 2 !important;
}

.regional-floating-en {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.72rem !important;
  color: #7DD3FC !important;
  letter-spacing: 0.16em !important;
}

.regional-floating-ja {
  font-size: 0.88rem !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
}

/* --------------------------------------------------------------------------
   2. フィロソフィー・マニフェスト（テーマカラー #15308F フルブリード）
   -------------------------------------------------------------------------- */
.regional-dark-manifesto {
  background-color: #15308F !important;
  background-image: linear-gradient(135deg, #102573 0%, #15308F 55%, #1D42B8 100%) !important;
  color: #FFFFFF !important;
  padding: clamp(56px, 7vw, 88px) 0 !important;
  margin-bottom: clamp(64px, 8vw, 96px) !important;
}

.regional-dark-manifesto * {
  color: #FFFFFF !important;
}

.regional-manifesto-grid {
  display: grid !important;
  grid-template-columns: 0.95fr 1.05fr !important;
  gap: clamp(36px, 5vw, 72px) !important;
  align-items: center !important;
}

@media (max-width: 880px) {
  .regional-manifesto-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
}

.regional-manifesto-left {
  display: flex !important;
  flex-direction: column !important;
}

.regional-plan-wrap .regional-manifesto-title {
  font-size: clamp(1.55rem, 2.55vw, 2.25rem) !important;
  font-weight: 900 !important;
  color: #FFFFFF !important;
  line-height: 1.35 !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 20px 0 !important;
}

.regional-plan-wrap .regional-manifesto-title br:not(:last-of-type) {
  display: none !important;
}

.regional-manifesto-title span.text-cyan {
  color: #7DD3FC !important;
  border-bottom: 2px solid #7DD3FC !important;
}

.regional-manifesto-body-text {
  font-size: 0.92rem !important;
  line-height: 1.85 !important;
  color: #E0EAFF !important;
  margin: 0 !important;
}

.regional-manifesto-list {
  display: flex !important;
  flex-direction: column !important;
}

.regional-manifesto-row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.22) !important;
  padding: 20px 0 !important;
  display: grid !important;
  grid-template-columns: 45px 1fr !important;
  gap: 14px !important;
  align-items: flex-start !important;
}

.regional-manifesto-row:last-child {
  border-bottom: none !important;
}

.regional-manifesto-num {
  font-family: 'Oswald', sans-serif !important;
  font-size: 1.9rem !important;
  font-weight: 700 !important;
  color: #7DD3FC !important;
  line-height: 1 !important;
}

.regional-manifesto-content h3 {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.35 !important;
}

.regional-manifesto-content p {
  font-size: 0.88rem !important;
  line-height: 1.75 !important;
  color: #DBEAFE !important;
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   3. 4つの約束（四角い外枠・カード枠を全廃したオープン・エディトリアル配置）
   -------------------------------------------------------------------------- */
.regional-craft-section {
  margin-bottom: clamp(64px, 8vw, 100px) !important;
}

.regional-craft-grid-4 {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  column-gap: clamp(32px, 4.5vw, 56px) !important;
  row-gap: clamp(44px, 5.5vw, 68px) !important;
}

@media (max-width: 820px) {
  .regional-craft-grid-4 {
    grid-template-columns: 1fr !important;
    row-gap: 44px !important;
  }
}

.regional-craft-item {
  background: transparent !important;
  border: none !important;
  display: flex !important;
  flex-direction: column !important;
}

.regional-craft-top-strip {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 0 10px 0 !important;
  border-bottom: 2px solid #15308F !important;
  margin-bottom: 14px !important;
}

.craft-giant-num {
  font-family: 'Oswald', sans-serif !important;
  font-size: 2.1rem !important;
  font-weight: 700 !important;
  color: #15308F !important;
  line-height: 0.9 !important;
}

.craft-cat-pair {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/* 4つの約束サブカテゴリ：英語はスレートグレー、日本語は淡いブルー背景タグで差別化 */
.regional-craft-cat-en {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  color: #64748B !important;
}

.regional-craft-cat-ja {
  font-size: 0.76rem !important;
  font-weight: 800 !important;
  color: #15308F !important;
  background: #EFF6FF !important;
  padding: 3px 10px !important;
}

.regional-craft-img-frame {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  margin-bottom: 18px !important;
}

.regional-craft-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.35s ease !important;
}

.regional-craft-item:hover .regional-craft-img {
  transform: scale(1.03) !important;
}

.regional-craft-body {
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
}

.regional-plan-wrap .regional-craft-title {
  font-size: clamp(1.18rem, 1.7vw, 1.36rem) !important;
  font-weight: 900 !important;
  color: #15308F !important;
  line-height: 1.35 !important;
  margin: 0 0 8px 0 !important;
}

.regional-plan-wrap .regional-craft-desc {
  font-size: 0.92rem !important;
  line-height: 1.75 !important;
  color: #475569 !important;
  margin: 0 0 12px 0 !important;
}

.regional-craft-spec-line {
  margin-top: auto !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  color: #2E8FD5 !important;
}

.regional-craft-spec-line i {
  font-style: normal !important;
  color: #CBD5E1 !important;
}

/* --------------------------------------------------------------------------
   4. 明朗料金・標準仕様（箱なし・巨大ナンバータイポグラフィ ＆ 水平ライン台帳）
   -------------------------------------------------------------------------- */
.regional-pricing-section {
  background: #F4F7FC !important;
  padding: clamp(56px, 7vw, 88px) 0 !important;
  margin-bottom: clamp(56px, 7vw, 88px) !important;
}

.regional-pricing-slabs-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: clamp(32px, 5vw, 64px) !important;
  margin-bottom: 48px !important;
}

@media (max-width: 768px) {
  .regional-pricing-slabs-row {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}

.regional-price-slab {
  background: transparent !important;
  border: none !important;
  border-top: 3px solid #15308F !important;
  padding: 20px 0 0 0 !important;
  position: relative !important;
}

.slab-head-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin-bottom: 8px !important;
}

/* 料金スラブタグ：初期費用はティールグリーン、月額保守はスレートネイビーで明確に区別 */
.regional-slab-tag-strip {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  color: #FFFFFF !important;
  background: #0D9488 !important;
  padding: 3px 12px !important;
}

.regional-price-slab:not(.is-featured) .regional-slab-tag-strip {
  background: #334155 !important;
}

.slab-badge-rect {
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  color: #15308F !important;
}

.regional-plan-wrap .regional-slab-name {
  font-size: 1.2rem !important;
  font-weight: 900 !important;
  color: #1E293B !important;
  margin: 0 0 8px 0 !important;
}

.regional-slab-num-wrap {
  display: flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  margin-bottom: 12px !important;
}

.regional-slab-price-val {
  font-family: 'Oswald', sans-serif !important;
  font-size: clamp(3rem, 5.2vw, 4.2rem) !important;
  font-weight: 700 !important;
  color: #15308F !important;
  line-height: 0.95 !important;
  letter-spacing: -0.02em !important;
}

.regional-slab-price-unit {
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  color: #15308F !important;
}

.regional-slab-price-tax {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: #64748B !important;
}

.regional-slab-caption {
  font-size: 0.9rem !important;
  line-height: 1.7 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* 外枠なしの水平ライン・スペック台帳 */
.regional-specs-table-container {
  background: transparent !important;
  border: none !important;
  border-top: 1px solid rgba(21, 48, 143, 0.25) !important;
  overflow-x: auto !important;
}

.regional-specs-sheet-table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 0.92rem !important;
}

.regional-specs-sheet-table th,
.regional-specs-sheet-table td {
  padding: 16px 12px !important;
  border-bottom: 1px solid rgba(21, 48, 143, 0.15) !important;
  vertical-align: middle !important;
  background: transparent !important;
}

.regional-specs-sheet-table th {
  font-size: 0.88rem !important;
  font-weight: 800 !important;
  color: #15308F !important;
  white-space: nowrap !important;
  width: 180px !important;
  text-align: left !important;
}

.sheet-title-strong {
  font-weight: 800 !important;
  color: #1E293B !important;
  margin-right: 12px !important;
}

.sheet-desc-sub {
  font-size: 0.86rem !important;
  color: #64748B !important;
}

.sheet-area-anchor {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-size: 0.85rem !important;
  font-weight: 800 !important;
  color: #2E8FD5 !important;
  text-decoration: none !important;
  border-bottom: 1px solid #2E8FD5 !important;
  padding-bottom: 1px !important;
  transition: color 0.2s ease, border-color 0.2s ease !important;
}

@media (max-width: 768px) {
  .regional-specs-sheet-table th {
    width: 110px !important;
    padding: 14px 8px !important;
    font-size: 0.82rem !important;
  }

  .regional-specs-sheet-table td {
    padding: 14px 8px !important;
  }

  .sheet-title-strong {
    display: block !important;
    margin-right: 0 !important;
    margin-bottom: 4px !important;
    line-height: 1.45 !important;
  }

  .sheet-desc-sub {
    display: block !important;
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
  }

  .sheet-area-anchor {
    display: inline-flex !important;
    margin-top: 2px !important;
  }
}

.sheet-area-anchor:hover {
  color: #15308F !important;
  border-bottom-color: #15308F !important;
}

/* --------------------------------------------------------------------------
   5. 標準5ページの基本構成（箱なし・オープンツリー構造）
   -------------------------------------------------------------------------- */
.regional-blueprint-section {
  margin-bottom: clamp(64px, 8vw, 96px) !important;
}

.regional-blueprint-hub {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

.regional-blueprint-root {
  background: #15308F !important;
  color: #FFFFFF !important;
  padding: 14px 28px !important;
  text-align: center !important;
  max-width: 380px !important;
  margin: 0 auto !important;
}

.regional-blueprint-root-en {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.16em !important;
  color: #7DD3FC !important;
  display: block !important;
}

.regional-blueprint-root-ja {
  font-size: 1.08rem !important;
  font-weight: 900 !important;
  color: #FFFFFF !important;
  margin-top: 2px !important;
}

.regional-blueprint-stem {
  width: 2px !important;
  height: 28px !important;
  background: #15308F !important;
  margin: 0 auto !important;
}

.regional-blueprint-branches {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 28px !important;
  border: none !important;
  border-top: 2px solid #15308F !important;
  padding-top: 24px !important;
}

@media (max-width: 960px) {
  .regional-blueprint-branches {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 540px) {
  .regional-blueprint-branches {
    grid-template-columns: 1fr !important;
  }
}

.regional-blueprint-cell {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* 5ページ構成のPAGE番号：スカイブルー背景＋左ラインで階層ノードとして識別 */
.regional-blueprint-cell-idx {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  color: #0369A1 !important;
  background: #E0F2FE !important;
  border-left: 3px solid #0284C7 !important;
  padding: 2px 10px !important;
  letter-spacing: 0.12em !important;
  align-self: flex-start !important;
  margin-bottom: 8px !important;
}

.regional-blueprint-cell-title {
  font-size: 1.05rem !important;
  font-weight: 900 !important;
  color: #15308F !important;
  margin-bottom: 6px !important;
}

.regional-blueprint-cell-desc {
  font-size: 0.85rem !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   6. 無料訪問・対面打ち合わせ対応エリア
   -------------------------------------------------------------------------- */
.regional-area-section {
  background: #F4F7FC !important;
  padding: clamp(56px, 7vw, 88px) 0 !important;
  margin-bottom: 0 !important;
}

.regional-area-grid-duo {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: clamp(36px, 5vw, 72px) !important;
  border: none !important;
  background: transparent !important;
}

@media (max-width: 860px) {
  .regional-area-grid-duo {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
}

.regional-area-block {
  background: transparent !important;
  border: none !important;
  border-top: 2px solid #15308F !important;
  padding: 20px 0 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* エリア区分キッカー：ダークスレート背景＋シアン文字で地域区分を明示 */
.area-block-kicker {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  color: #38BDF8 !important;
  background: #1E293B !important;
  padding: 4px 12px !important;
  align-self: flex-start !important;
  margin-bottom: 10px !important;
}

.regional-plan-wrap .regional-area-block h3 {
  font-size: 1.25rem !important;
  font-weight: 900 !important;
  color: #15308F !important;
  margin: 0 0 18px 0 !important;
}

.regional-area-chips-grid {
  display: flex !important;
  flex-wrap: wrap !important;
  column-gap: 18px !important;
  row-gap: 10px !important;
  margin: 0 0 18px 0 !important;
}

/* 四角い箱を廃止し、下線のみのタイポグラフィ・インデックスで表示 */
.regional-area-chip-item {
  font-size: 0.92rem !important;
  font-weight: 800 !important;
  color: #15308F !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid rgba(46, 143, 213, 0.45) !important;
  padding: 2px 0 !important;
}

.regional-area-chip-item.sub-item {
  color: #64748B !important;
  border-bottom-color: #CBD5E1 !important;
  font-weight: 700 !important;
}

.regional-plan-wrap .regional-area-note {
  font-size: 0.85rem !important;
  color: #475569 !important;
  margin: auto 0 0 0 !important;
}

/* --------------------------------------------------------------------------
   7. 制作の流れ（カード枠を廃したオープン・センタータイムライン）
   -------------------------------------------------------------------------- */
.regional-timeline-section {
  position: relative !important;
  background-color: #FFFFFF !important;
  background-image:
    linear-gradient(rgba(21, 48, 143, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(21, 48, 143, 0.04) 1px, transparent 1px) !important;
  background-size: 64px 64px !important;
  padding: clamp(56px, 7vw, 88px) 0 !important;
  margin-bottom: 0 !important;
}

.regional-center-timeline {
  position: relative !important;
  max-width: 960px !important;
  margin: 0 auto !important;
}

.regional-center-timeline::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 50% !important;
  width: 2px !important;
  background: rgba(21, 48, 143, 0.25) !important;
  transform: translateX(-50%) !important;
}

.regional-center-step {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  align-items: center !important;
  margin-bottom: 28px !important;
}

.regional-center-step:last-child {
  margin-bottom: 0 !important;
}

.regional-center-step:nth-child(odd) .center-step-card {
  grid-column: 1 / 2 !important;
  margin-right: 44px !important;
}

.regional-center-step:nth-child(even) .center-step-card {
  grid-column: 2 / 3 !important;
  margin-left: 44px !important;
}

.center-step-node {
  position: absolute !important;
  left: 50% !important;
  top: 24px !important;
  transform: translate(-50%, -50%) !important;
  width: 34px !important;
  height: 34px !important;
  background: #15308F !important;
  color: #FFFFFF !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 3 !important;
}

/* 四角いカード枠を廃止し、上部の #15308F ラインのみで支える */
.center-step-card {
  background: transparent !important;
  border: none !important;
  border-top: 2px solid #15308F !important;
  padding: 14px 0 0 0 !important;
}

.center-step-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin-bottom: 8px !important;
}

/* ステップ番号：インディゴ淡色背景＋下部ラインで工程タグとして識別 */
.center-step-idx {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  color: #15308F !important;
  background: #EEF2FF !important;
  border-bottom: 2px solid #15308F !important;
  padding: 2px 10px !important;
  letter-spacing: 0.12em !important;
}

.center-step-period {
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  color: #64748B !important;
}

.regional-plan-wrap .center-step-title {
  font-size: 1.08rem !important;
  font-weight: 900 !important;
  color: #15308F !important;
  margin: 0 0 6px 0 !important;
}

.regional-plan-wrap .center-step-desc {
  font-size: 0.88rem !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  .regional-center-timeline::before {
    left: 17px !important;
  }

  .regional-center-step {
    grid-template-columns: 1fr !important;
    padding-left: 48px !important;
    margin-bottom: 24px !important;
  }

  .regional-center-step:nth-child(odd) .center-step-card,
  .regional-center-step:nth-child(even) .center-step-card {
    grid-column: 1 / 2 !important;
    margin: 0 !important;
  }

  .center-step-node {
    left: 17px !important;
    top: 17px !important;
    transform: translate(-50%, 0) !important;
  }
}

/* --------------------------------------------------------------------------
   8. よくあるご質問（/price/ ・他プランと統一）
   -------------------------------------------------------------------------- */
.regional-faq-section {
  position: relative !important;
  background-color: #FFFFFF !important;
  padding: clamp(56px, 7vw, 88px) 0 !important;
  margin-bottom: 0 !important;
}

.regional-faq-section .regional-section-header-bar {
  margin-bottom: clamp(20px, 2.5vw, 28px) !important;
}

.regional-faq-section p.wp-block-paragraph,
.regional-faq-section .wp-block-paragraph,
.regional-plan-wrap p:has(+ .sec-faq),
.page-id-530 .regional-faq-section p {
  font-size: clamp(0.95rem, 1.1vw, 1.05rem) !important;
  line-height: 1.8 !important;
  color: #475569 !important;
  margin-top: 0 !important;
  margin-bottom: clamp(28px, 3.5vw, 40px) !important;
}
