/**
 * くるめ産業医事務所
 * 地域個別ページ専用CSS（SWELL CHILD 独立管理）
 *
 * 対象ページ例:
 *   朝倉市 / 久留米市 / 鳥栖市 / 小郡市 など
 *
 * このファイルはトップページ用・対応エリア親ページ用
 * （kurume-front.css など）とは別系統です。
 * 既存CSSのコピー・上書き前提の修正は行いません。
 *
 * 読み込み先:
 *   swell_child/css/kurume-area-pages.css
 *   functions.php から wp_enqueue_style( 'kurume-area-pages' ) で読み込む
 *   ※ kurume-front.css には混ぜない
 *   ※ 追加CSSへ毎回コピーしない
 *
 * ------------------------------------------------------------
 * 構成
 *   0. 適用対象（セレクタのまとめ方）
 *   1. 地域ページ共通
 *   2. 各地域ページ固有
 * ------------------------------------------------------------
 */


/* ============================================================
   0. 適用対象
   ============================================================
   共通クラス: .ks-area-page
     将来、各地域ページの body（SWELLでは #body_wrap）へ
     カスタムクラス `ks-area-page` を付ければ、
     page-id の列挙なしで全地域ページへ共通CSSを適用できる。

   暫定: page-id で限定
     現時点では朝倉市（page-id-2674）のみ対象。
     地域ページを増やすときは、:is() 内へ page-id を追加する。

   例（久留米市などを足す場合）:
     :is(.ks-area-page, .page-id-2674, .page-id-XXXX)
   ============================================================ */


/* ============================================================
   1. 地域ページ共通
   ============================================================ */

/* 1-1. SWELL自動ページタイトルを非表示
 *
 * 対象:
 *   固定ページ上部の h1.c-pageTitle のみ
 *   （例: 「朝倉市で産業医をお探しの企業さまへ」）
 *
 * 対象外:
 *   ヘッダー
 *   パンくずリスト（.p-breadcrumb）
 *   本文内のヒーロー画像
 *   本文内の見出し（h1.wp-block-heading / h2 / h3 など）
 *
 * !important は使わない。
 * SWELL本体の .c-pageTitle より具体的なセレクタで上書きする。
 */
:is(.ks-area-page, .page-id-2674) h1.c-pageTitle {
  display: none;
  margin: 0;
  padding: 0;
  border: none;
}

/* 1-2. タイトル用の白い余白を撤去し、パンくず直下からヒーローを開始
 *
 * 実測（朝倉市ページ）:
 *   .l-content          … padding-top: 4em（パンくず直下の白帯）
 *   .l-mainContent__inner … 上下余白なし
 *   .post_content       … margin-top: 4em（タイトル下に残る白帯）
 *   先頭 cover          … margin-top は SWELL 側で 0。念のため明示
 *
 * cover 内部の padding（画像の中の文字余白）は触らない。
 */
:is(.ks-area-page, .page-id-2674) .l-content {
  padding-top: 0;
}

:is(.ks-area-page, .page-id-2674) .l-mainContent__inner {
  margin-top: 0;
  padding-top: 0;
}

:is(.ks-area-page, .page-id-2674) .l-mainContent__inner > .post_content {
  margin-top: 0;
}

:is(.ks-area-page, .page-id-2674) .post_content > .wp-block-cover:first-child {
  margin-top: 0;
}

/* 1-3. ヒーロー（地域ページ共通）
 *
 * WordPress側で付けるクラス:
 *   カバーブロック … area-hero
 *   1段落目（英字） … area-hero-en
 *   2段落目（日本語タイトル） … area-hero-title
 *   3段落目（説明文） … area-hero-lead
 *
 * page-id には依存しない。都市名と文言を変えれば他地域へ流用できる。
 * ヒーローはカバー背景（object-fit: cover）で全幅表示する。
 * 画像マスターは 1800×900（2:1）。固定min-heightはカバーの高さに合わせ、黒帯は出さない。
 * 右下オフィス窓の面積・境界は画像合成側で統一する。都市別の上書きCSSは使わない。
 * スマホの object-position: 58% 40% はシリーズ共通（鳥栖市基準）。
 */

.wp-block-cover.area-hero {
  justify-content: flex-start;
  align-items: center;
  box-sizing: border-box;
}

.wp-block-cover.area-hero .wp-block-cover__inner-container {
  width: 40%;
  max-width: 560px;
  margin-left: 7%;
  margin-right: auto;
  padding: 0;
  text-align: left;
  transform: translateY(-6%);
}

.wp-block-cover.area-hero .wp-block-cover__inner-container > * {
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.area-hero-en,
.area-hero-title,
.area-hero-lead {
  display: block;
  text-align: left;
  box-sizing: border-box;
}

/* 英字タイトル */
.area-hero-en {
  position: relative;
  margin: 0 0 28px;
  padding: 0 0 12px;
  color: #1e4f9e;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1.4;
  text-transform: uppercase;
  white-space: nowrap;
}

.area-hero-en::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin-top: 10px;
  background: #3d82e8;
  border-radius: 2px;
}

/* 日本語メインタイトル */
.area-hero-title {
  max-width: 10.2em;
  margin: 0 0 18px;
  color: #143d8d;
  font-size: clamp(36px, 2.4vw + 16px, 48px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  overflow-wrap: break-word;
  word-break: normal;
}

/* カバー内 p の margin-bottom:2em が見出し48px基準で約96pxになるため、
   リード直前の間隔だけ打ち消す。見出しの色・サイズは変えない。 */
.wp-block-cover.area-hero .wp-block-cover__inner-container > .area-hero-title {
  margin-bottom: 0;
}

/* 説明文
 * inner-container > * の max-width:100% より具体的なセレクタにする。
 * width を指定し、40%コンテナより少しだけ右へ伸ばして2行に収める。
 */
.wp-block-cover.area-hero .wp-block-cover__inner-container > .area-hero-lead {
  width: 32em;
  max-width: 32em;
  margin: 40px 0 0;
  color: #2b2b2b;
  font-size: clamp(16px, 1.05vw, 19px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

/* タブレット：右側の人物・ビルと重ならないよう幅と文字を縮小 */
@media (max-width: 959px) {
  .wp-block-cover.area-hero .wp-block-cover__inner-container {
    width: 48%;
    max-width: 460px;
    margin-left: 5%;
    transform: translateY(-4%);
  }

  .area-hero-en {
    font-size: 11px;
    letter-spacing: 0.14em;
    margin-bottom: 22px;
    white-space: normal;
  }

  .area-hero-en::after {
    width: 52px;
  }

  .area-hero-title {
    max-width: 11em;
    font-size: clamp(26px, 3.2vw, 36px);
    line-height: 1.45;
  }

  .wp-block-cover.area-hero .wp-block-cover__inner-container > .area-hero-lead {
    width: 32em;
    max-width: 100%;
    margin-top: 32px;
    font-size: 16px;
  }
}

/* スマートフォン：左上へまとめ、可読性優先 */
@media (max-width: 767px) {
  .wp-block-cover.area-hero {
    align-items: flex-start;
    justify-content: flex-start;
  }

  .wp-block-cover.area-hero .wp-block-cover__image-background,
  .wp-block-cover.area-hero img.wp-block-cover__image-background {
    object-fit: cover !important;
    object-position: 58% 40% !important;
  }

  .wp-block-cover.area-hero .wp-block-cover__inner-container {
    width: 100%;
    max-width: 100%;
    margin: 8px 0 0;
    padding: 4px 4px 0 0;
    transform: none;
  }

  .area-hero-en {
    margin-bottom: 16px;
    padding-bottom: 10px;
    font-size: 10px;
    letter-spacing: 0.12em;
    white-space: normal;
  }

  .area-hero-en::after {
    width: 48px;
    height: 2px;
    margin-top: 8px;
  }

  .area-hero-title {
    max-width: 12em;
    margin-bottom: 12px;
    font-size: clamp(22px, 6.4vw, 28px);
    line-height: 1.45;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.9);
  }

  .wp-block-cover.area-hero .wp-block-cover__inner-container > .area-hero-lead {
    width: auto;
    max-width: 100%;
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.75;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.88);
  }
}

/* 1-4. CTAカード（トップページ .contact-cta の実測値を地域ページへ再現）
 *
 * 基準（トップページ公開中の計算値）:
 *   カード   max-width:820px / padding:14px 24px / radius:28px
 *            border:1px solid #b7cff9
 *            shadow:0 10px 26px rgba(20,61,141,.05)
 *   アイコン 82×82 / 左グループ gap:22px
 *   1行目   14.5px / weight 500 / #333
 *   2行目   23px / weight 700 / #143d8d
 *   縦線    2×56 / #d7e4fb
 *   ボタン  280×56 / 白 / 1.5px #7fa2ee / 文字 #143d8d / radius 999px
 *
 * 地域ページのHTMLは .contact-cta ラッパーがなく、
 * .contact-cta-inner がCTAの最外周。カードスタイルはここに付ける。
 * トップページ用CSSは変更しない。
 *
 * HTMLの変更は不要。将来ラッパーを足す場合の任意クラス: ks-area-cta
 */

:is(.ks-area-page, .page-id-2674) .contact-cta-inner {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 34px;
  width: 100%;
  max-width: 820px;
  margin: 20px auto 32px;
  padding: 14px 24px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #b7cff9;
  border-radius: 28px;
  box-shadow: 0 10px 26px rgba(20, 61, 141, 0.05);
}

:is(.ks-area-page, .page-id-2674) .contact-cta-inner > .contact-cta-left {
  flex: 1 1 auto;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 22px;
  min-width: 0;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-left figure,
:is(.ks-area-page, .page-id-2674) .contact-cta-left .wp-block-image {
  width: 82px;
  flex: 0 0 82px;
  margin: 0;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-left img {
  display: block;
  max-width: 82px;
  height: auto;
  object-fit: contain;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-left > .is-layout-flex {
  flex: 1 1 auto;
  min-width: 0;
  gap: 0;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-inner p {
  margin: 0;
  text-align: left;
  writing-mode: horizontal-tb;
  white-space: normal;
  word-break: keep-all;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-sub {
  margin-bottom: -2px;
  font-size: 14.5px;
  line-height: 1.55;
  color: #333;
  font-weight: 500;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-main {
  font-size: 23px;
  line-height: 1.35;
  color: #143d8d;
  font-weight: 700;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-inner > .contact-cta-divider {
  flex: 0 0 2px;
  align-self: center;
  width: 2px;
  min-width: 2px;
  max-width: 2px;
  height: 56px;
  margin: 0;
  padding: 0;
  background: #d7e4fb;
  opacity: 0.85;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-inner > .contact-cta-divider > * {
  display: none;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-inner > .wp-block-buttons {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-button {
  margin: 0;
}

:is(.ks-area-page, .page-id-2674) .contact-cta-button .wp-block-button__link {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 280px;
  height: 56px;
  padding: 0 28px;
  border: 1.5px solid #7fa2ee;
  border-radius: 999px;
  background: #fff;
  color: #143d8d;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: 0 5px 14px rgba(37, 99, 235, 0.06);
}

:is(.ks-area-page, .page-id-2674) .contact-cta-button .wp-block-button__link:hover {
  background: #143d8d;
  border-color: #143d8d;
  color: #fff;
}

/* タブレット：横並びは維持しつつ余白とボタン幅を少し詰める */
@media (max-width: 1023px) {
  :is(.ks-area-page, .page-id-2674) .contact-cta-inner {
    gap: 20px;
    max-width: 100%;
    padding: 12px 18px;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-inner > .contact-cta-left {
    gap: 16px;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-main {
    font-size: 20px;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-button .wp-block-button__link {
    width: 240px;
  }
}

/* スマートフォン：アイコン → 文章 → ボタンの縦並び。縦線は非表示 */
@media (max-width: 767px) {
  :is(.ks-area-page, .page-id-2674) .contact-cta-inner {
    flex-direction: column;
    flex-wrap: wrap;
    gap: 12px;
    margin-left: auto;
    margin-right: auto;
    padding: 16px;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-inner > .contact-cta-left {
    flex-direction: column;
    gap: 8px;
    width: 100%;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-left figure,
  :is(.ks-area-page, .page-id-2674) .contact-cta-left .wp-block-image {
    width: 72px;
    flex-basis: 72px;
    margin: 0 auto;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-left img {
    max-width: 72px;
    margin: 0 auto;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-inner p,
  :is(.ks-area-page, .page-id-2674) .contact-cta-sub,
  :is(.ks-area-page, .page-id-2674) .contact-cta-main {
    text-align: center;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-sub {
    margin-bottom: 6px;
    font-size: 14.5px;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-main {
    font-size: 20px;
    line-height: 1.45;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-inner > .contact-cta-divider {
    display: none;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-inner > .wp-block-buttons {
    width: 100%;
    justify-content: center;
    margin-top: 2px;
  }

  :is(.ks-area-page, .page-id-2674) .contact-cta-button .wp-block-button__link {
    width: 100%;
    max-width: 240px;
    height: 46px;
    padding: 0 20px;
  }
}

/* 1-5. セクション見出し（英字＋日本語）
 *
 * 公開HTML（朝倉市）:
 *   <div class="wp-block-group area-industry"> など
 *     <p class="area-section-en">－INDUSTRY－</p>
 *     <p class="area-section-title">朝倉市の産業の特徴</p>
 *   </div>
 *
 * 見た目は共通クラスだけで揃える。
 *   .area-section-en
 *   .area-section-title
 *
 * area-industry / area-needs / area-support / area-access /
 * area-price / area-faq / area-contact への個別指定はしない。
 * これらの外側クラスは削除しない。
 *
 * .area-hero* には当てない。
 *
 * PC:
 *   英字 18px / 700 / letter-spacing 0.2em
 *   日本語 35px / 700 / line-height 1.5
 *   英字→日本語 26px
 *   日本語→本文 44px
 */

:is(.ks-area-page, .page-id-2674) .area-section-en,
:is(.ks-area-page, .page-id-2674) .area-section-title {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
  box-sizing: border-box;
}

:is(.ks-area-page, .page-id-2674) .area-section-en,
:is(.ks-area-page, .page-id-2674) .area-section-en span,
:is(.ks-area-page, .page-id-2674) .area-section-en strong,
:is(.ks-area-page, .page-id-2674) .area-section-en .swl-fz {
  color: #143d8d;
  font-size: 18px !important;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.6;
  text-transform: uppercase;
  text-align: center;
}

:is(.ks-area-page, .page-id-2674) .area-section-en {
  margin: 0 0 26px;
}

:is(.ks-area-page, .page-id-2674) .area-section-title,
:is(.ks-area-page, .page-id-2674) .area-section-title span,
:is(.ks-area-page, .page-id-2674) .area-section-title strong,
:is(.ks-area-page, .page-id-2674) .area-section-title .swl-fz {
  color: #143d8d;
  font-size: 35px !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-align: center;
}

:is(.ks-area-page, .page-id-2674) .area-section-title {
  margin: 0;
}

:is(.ks-area-page, .page-id-2674) .area-section-en + .area-section-title {
  margin-top: 0;
}

:is(.ks-area-page, .page-id-2674) .wp-block-group:has(.area-section-title) {
  margin-top: 0;
  margin-bottom: 44px;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  transform: none;
}

:is(.ks-area-page, .page-id-2674) .wp-block-group:has(.area-section-title) + * {
  margin-top: 0;
}

@media (max-width: 767px) {
  :is(.ks-area-page, .page-id-2674) .area-section-en,
  :is(.ks-area-page, .page-id-2674) .area-section-en span,
  :is(.ks-area-page, .page-id-2674) .area-section-en strong,
  :is(.ks-area-page, .page-id-2674) .area-section-en .swl-fz {
    font-size: 16px !important;
    letter-spacing: 0.16em;
    line-height: 1.55;
  }

  :is(.ks-area-page, .page-id-2674) .area-section-en {
    margin-bottom: 22px;
  }

  :is(.ks-area-page, .page-id-2674) .area-section-title,
  :is(.ks-area-page, .page-id-2674) .area-section-title span,
  :is(.ks-area-page, .page-id-2674) .area-section-title strong,
  :is(.ks-area-page, .page-id-2674) .area-section-title .swl-fz {
    font-size: 29px !important;
    line-height: 1.5;
  }

  :is(.ks-area-page, .page-id-2674) .wp-block-group:has(.area-section-title) {
    margin-bottom: 36px;
  }
}

/* ============================================================
   2. 各地域ページ固有
   ============================================================ */

/* 2-1. 朝倉市（page-id-2674）
 * この段階では固有スタイルなし。
 * 朝倉市だけ地図注釈を変える、などの差分が出たときにここに書く。
 */

/* 2-2. 久留米市（本拠地ページ。ks-hq-hero があるときだけ） */
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .wp-block-cover.area-hero {
  margin-bottom: 8px;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .area-hero-copy {
  max-width: 920px;
  margin-bottom: 40px;
  line-height: 1.9;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .wp-block-group:has(.area-section-title) {
  margin-bottom: 52px;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-strength-grid > .wp-block-group__inner-container,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-strength-grid:not(:has(> .wp-block-group__inner-container)),
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-strength-grid:has(> .service-card) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-flow-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 920px;
  margin: 0 auto 56px;
  overflow-x: clip;
}
/* HQ visit card: spacious portrait layout matching target mock */
@media (min-width: 960px) {
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .area-access-main:has(.hq-visit-card),
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .area-access-main.wp-block-group:has(.hq-visit-card) {
    --area-access-time-w: 300px;
  }
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card {
    flex: 0 0 300px !important;
    width: 300px !important;
    max-width: 300px !important;
  }
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .area-access-time-card.hq-visit-card,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card {
  padding: 36px 32px 32px !important;
  border: 1px solid #d5e4f4 !important;
  border-radius: 30px !important;
  background: #fff !important;
  box-shadow: 0 10px 28px rgba(20, 61, 141, 0.045) !important;
  align-self: flex-start !important;
  height: auto !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card > .wp-block-group__inner-container {
  gap: 40px;
  justify-content: flex-start;
  height: auto !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .area-access-time-title,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card p.area-access-time-title {
  font-size: 36px !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .area-access-time-title::after {
  width: 72px !important;
  height: 3px !important;
  margin-top: 10px !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-head,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-head.wp-block-group {
  gap: 32px;
  padding: 4px 0 0 !important;
  border-bottom: none !important;
  background: none !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-head > .wp-block-group__inner-container {
  gap: 32px;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card .access-time-icon,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card figure.access-time-icon,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card .access-time-icon.wp-block-image {
  display: block !important;
  width: 80px !important;
  height: auto !important;
  max-width: 80px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: none !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card .access-time-icon img {
  width: 80px !important;
  max-width: 80px !important;
  height: auto !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-route,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card p.access-time-route {
  margin: 0 !important;
  padding: 0 8px !important;
  color: #143d8d !important;
  font-size: 29px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.06em;
  text-align: center !important;
  border-bottom: none !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-route::after,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card p.access-time-route::after {
  content: "";
  display: block;
  width: 74%;
  height: 1px;
  margin: 24px auto 0;
  background: #d5e4f4;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-sub,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card p.access-time-sub {
  margin: 0 !important;
  padding: 0 4px !important;
  color: #3d82e8 !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.04em;
  text-align: center !important;
  background: none !important;
  border: none !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-note,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-note.wp-block-group {
  align-items: center;
  align-self: center;
  width: 85% !important;
  max-width: 85% !important;
  gap: 16px;
  padding: 22px 24px !important;
  background: #eef3f8 !important;
  border: none !important;
  border-radius: 20px !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-note > .wp-block-group__inner-container {
  align-items: center;
  gap: 16px;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-note-icon,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card figure.access-time-note-icon {
  position: relative;
  flex: 0 0 38px !important;
  width: 38px !important;
  min-width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-note-icon img {
  opacity: 0 !important;
  width: 38px !important;
  height: 38px !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-note-icon::before {
  content: "i";
  position: absolute;
  inset: 0;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #143d8d;
  color: #fff;
  font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 20px;
  font-weight: 700;
  font-style: italic;
  line-height: 1;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-note-text,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card p.access-time-note-text {
  color: #3d4f66 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.02em;
}
@media (max-width: 959px) {
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card {
    width: min(100%, 400px) !important;
    max-width: 400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
@media (max-width: 767px) {
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .area-access-time-card.hq-visit-card,
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card {
    width: min(100%, calc(100% - 32px)) !important;
    max-width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 28px 22px 24px !important;
    box-sizing: border-box;
  }
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card .access-time-icon,
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card figure.access-time-icon {
    width: 112px !important;
    height: 112px !important;
    max-width: 112px !important;
  }
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card.area-access-time-card .access-time-icon img {
    width: 62px !important;
    max-width: 62px !important;
  }
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-route,
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card p.access-time-route {
    font-size: 22px !important;
  }
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card .access-time-sub,
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-visit-card p.access-time-sub {
    font-size: 14.5px !important;
  }
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content .wp-block-button__link,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta .wp-block-button__link {
  min-height: 56px;
  font-size: 17px;
}
/* HQ CTA: remove SWELL h2 navy band / leftover STRENGTH */
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .area-strength,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-strength-grid {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  border: none !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content h2,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content h2.wp-block-heading,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-body > .wp-block-heading,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content .wp-block-heading {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  height: 0 !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content h2::before,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content h2::after,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content figure::before,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content figure::after,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content .wp-block-image::before,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content .wp-block-image::after,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-body::before,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-body::after {
  content: none !important;
  display: none !important;
  border: none !important;
  background: none !important;
  height: 0 !important;
  width: 0 !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content > .wp-block-image,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content figure {
  margin-bottom: 8px !important;
  border: none !important;
  box-shadow: none !important;
}
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-body,
:is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-text {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border: none !important;
  box-shadow: none !important;
}
@media (max-width: 767px) {
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-strength-grid > .wp-block-group__inner-container,
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-strength-grid:not(:has(> .wp-block-group__inner-container)),
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .hq-strength-grid:has(> .service-card) {
    grid-template-columns: 1fr !important;
  }
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .area-hero-copy,
  :is(.ks-area-page, .page-id-2674, .area-page):has(.ks-hq-hero) .faq-cta-content .wp-block-button__link {
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* 2-3. 鳥栖市（page-id 確定後に追加） */

/* 2-4. 小郡市（page-id 確定後に追加） */

/* 2-5. 福岡市中央区・博多区・福岡市・久留米市・嬉野市ヒーロー
 * 中央区の完成状態を共通化し、都市名と背景画像だけページ固有とする。
 * 各都市の固有classのみ対象。共通 .area-hero は他都市へ効かせたまま。
 */
.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) {
  isolation: isolate;
}

.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.80) 0%,
    rgba(252, 255, 255, 0.72) 12%,
    rgba(255, 255, 255, 0.52) 30%,
    rgba(248, 252, 255, 0.28) 48%,
    rgba(255, 255, 255, 0.10) 62%,
    rgba(255, 255, 255, 0.02) 74%,
    rgba(255, 255, 255, 0) 85%
  );
}

.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  width: 52% !important;
  max-width: 720px !important;
  margin-left: 4.5%;
  transform: translateY(-3%);
}

.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-en {
  margin: 0 0 42px;
  padding: 0 0 14px;
  color: #143d8d;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.28em;
  line-height: 1.4;
}

.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-en::after {
  width: 72px;
  height: 2px;
  margin-top: 12px;
  background: #3d82e8;
  border-radius: 1px;
}

.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-title {
  max-width: 100% !important;
  color: #0d2f6b;
  font-size: clamp(34px, 2.2vw + 14px, 46px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.02em;
  overflow-wrap: normal;
  word-break: keep-all;
}

.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-title {
  margin-bottom: 0;
}

.wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-lead {
  width: auto;
  max-width: 22em;
  margin-top: 0;
  padding-top: 48px;
  color: #333333 !important;
  font-size: 16px !important;
  font-weight: 600;
  line-height: 1.9;
  letter-spacing: 0.03em;
}

@media (max-width: 959px) {
  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino)::after {
    background: linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.94) 0%,
      rgba(255, 255, 255, 0.82) 32%,
      rgba(255, 255, 255, 0.42) 58%,
      rgba(255, 255, 255, 0.1) 74%,
      rgba(255, 255, 255, 0) 88%
    );
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container {
    width: 58% !important;
    max-width: 560px !important;
    margin-left: 5%;
    transform: translateY(-2%);
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-en {
    margin-bottom: 28px;
    font-size: 10px;
    letter-spacing: 0.2em;
    white-space: normal;
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-en::after {
    width: 56px;
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-lead {
    max-width: 100%;
    margin-top: 0;
    padding-top: 36px;
    font-size: 15px !important;
  }

  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-title,
  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-title {
    width: auto !important;
    max-width: 100% !important;
  }
}

@media (min-width: 960px) {
  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container {
    transform: translateY(-8%);
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-en {
    margin-bottom: 24px;
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-title,
  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-title,
  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-title,
  html body .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) p.area-hero-title {
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.42;
    width: auto !important;
    max-width: 100% !important;
  }

  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) p.area-hero-title .area-hero-title-line,
  html body .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) p.area-hero-title .area-hero-title-line,
  html body .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) p.area-hero-title span {
    white-space: nowrap;
  }

  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-lead {
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-top: 26px;
    padding-top: 0;
  }
}

@media (max-width: 767px) {
  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino)::after {
    background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.9) 0%,
      rgba(255, 255, 255, 0.72) 28%,
      rgba(255, 255, 255, 0.28) 52%,
      rgba(255, 255, 255, 0.06) 70%,
      rgba(255, 255, 255, 0) 86%
    );
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 8px 0 0;
    padding: 4px 4px 0 0;
    transform: none;
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-en {
    margin-bottom: 16px;
    padding-bottom: 10px;
    font-size: 10px;
    letter-spacing: 0.14em;
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-title {
    max-width: 100% !important;
    font-size: clamp(22px, 6.4vw, 28px);
    line-height: 1.45;
    overflow-wrap: break-word;
    word-break: normal;
  }

  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .area-hero-title,
  :is(.ks-area-page, .page-id-2674, .page-id-3766, .page-id-4180, .area-page) .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-title {
    width: auto !important;
    max-width: 100% !important;
    font-size: clamp(22px, 6.4vw, 28px);
  }

  .wp-block-cover.area-hero:is(.area-hero-chuo, .area-hero-hakata, .area-hero-fukuoka, .ks-hq-hero, .area-hero-ureshino) .wp-block-cover__inner-container > .area-hero-lead {
    max-width: 100%;
    margin-top: 0;
    padding-top: 22px;
    font-size: 15px !important;
    letter-spacing: 0.04em;
  }
}

/* 久留米本文のインライン幅指定より、共通ヒーロー幅を優先する */
html body .wp-block-cover.area-hero.ks-hq-hero .wp-block-cover__inner-container {
  width: 52% !important;
  max-width: 720px !important;
  margin-left: 4.5%;
}

@media (max-width: 959px) {
  html body .wp-block-cover.area-hero.ks-hq-hero .wp-block-cover__inner-container {
    width: 58% !important;
    max-width: 560px !important;
    margin-left: 5%;
  }

  html body .wp-block-cover.area-hero.ks-hq-hero .wp-block-cover__inner-container > .area-hero-lead {
    font-size: 15px !important;
    letter-spacing: 0.03em;
    width: auto !important;
    max-width: 100% !important;
  }
}

@media (max-width: 767px) {
  html body .wp-block-cover.area-hero.ks-hq-hero .wp-block-cover__inner-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 8px 0 0;
  }
}

/* 中央区・博多区 NEEDS見出し
 * PCは2行を優先:
 *   福岡市○○区の産業で考えられる
 *   産業保健ニーズ
 * 画像に重ならない範囲でサイズ・左カラム幅だけ微調整する。
 * フォント種類・太さ・配色・下線は変更しない。他都市・他セクションは触らない。
 */
html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small span:is(.asakura-city, .area-city),
html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small span:is(.asakura-city, .area-city) {
  display: inline !important;
  width: auto;
}

@media (min-width: 960px) {
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-left,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .wp-block-group.needs-left,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-left,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .wp-block-group.needs-left {
    flex: 0 1 56% !important;
    max-width: 56% !important;
    padding-right: 12px !important;
    box-sizing: border-box;
    min-width: 0;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-right,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .wp-block-group.needs-right,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-right,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .wp-block-group.needs-right {
    flex: 0 1 42% !important;
    max-width: 42% !important;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small span,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small strong,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small .swl-fz,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small span,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small strong,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small .swl-fz {
    font-size: 32px !important;
    letter-spacing: 0.015em;
    line-height: 1.35;
    white-space: nowrap !important;
    max-width: 100%;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small span:is(.asakura-city, .area-city),
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small span:is(.asakura-city, .area-city) {
    display: inline !important;
    font-size: 1.15em !important;
    letter-spacing: 0.015em;
    line-height: 1.35;
    white-space: nowrap !important;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main span,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main strong,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main .swl-fz,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main span,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main strong,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main .swl-fz {
    font-size: 32px !important;
    letter-spacing: 0.015em;
    line-height: 1.35;
  }
}

@media (min-width: 960px) and (max-width: 999px) {
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-left,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .wp-block-group.needs-left,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-left,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .wp-block-group.needs-left {
    flex: 0 1 58% !important;
    max-width: 58% !important;
    padding-right: 8px !important;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-right,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .wp-block-group.needs-right,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-right,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .wp-block-group.needs-right {
    flex: 0 1 40% !important;
    max-width: 40% !important;
  }
}

@media (min-width: 1120px) {
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-left,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .wp-block-group.needs-left,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-left,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .wp-block-group.needs-left {
    flex: 0 1 55% !important;
    max-width: 55% !important;
    padding-right: 16px !important;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-right,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .wp-block-group.needs-right,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-right,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .wp-block-group.needs-right {
    flex: 0 1 43% !important;
    max-width: 43% !important;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small span,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small strong,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small .swl-fz,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small span,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small strong,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small .swl-fz,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main span,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main strong,
  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-main .swl-fz,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main span,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main strong,
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-main .swl-fz {
    font-size: 35px !important;
    letter-spacing: 0.02em;
  }

  html body #body_wrap:has(.area-hero-chuo) .needs-section .needs-title-small span:is(.asakura-city, .area-city),
  html body #body_wrap:has(.area-hero-hakata) .needs-section .needs-title-small span:is(.asakura-city, .area-city) {
    font-size: 1.15em !important;
    letter-spacing: 0.02em;
  }
}


/* ============================================================
   PICK UP SERVICE（導線カード）
   ------------------------------------------------------------
   対応エリア親ページ掲載の市町村ページで同一クラスを共有。
   カード寸法は本拠地と同じ 1100px 中央寄せ。
   414px タブレット固定のみ本拠地（他セクションと揃えるため）。
   ============================================================ */

html body .ks-pickup-service,
html body .post_content .ks-pickup-service {
  display: block;
  box-sizing: border-box;
  width: min(1100px, calc(100vw - 80px));
  max-width: 1100px;
  margin: 56px auto 48px;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
}

html body #body_wrap .post_content:has(.ks-pickup-service),
html body #body_wrap .l-content:has(.ks-pickup-service) {
  overflow: visible;
}

html body .wp-block-html:has(.ks-pickup-service) {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
}

@media (min-width: 641px) {
  html body .ks-pickup-service br.sp-only {
    display: none !important;
  }
}

html body .ks-area-page:has(.ks-hq-hero) .ks-pickup-lead-break {
  display: none;
}

html body .ks-pickup-service *,
html body .ks-pickup-service *::before,
html body .ks-pickup-service *::after {
  box-sizing: border-box;
}

html body #body_wrap .ks-pickup-service,
html body #body_wrap .ks-pickup-service .ks-pickup-service__en,
html body #body_wrap .ks-pickup-service .ks-pickup-service__title,
html body #body_wrap .ks-pickup-service .ks-pickup-service__card-title,
html body #body_wrap .ks-pickup-service .ks-pickup-service__lead,
html body #body_wrap .ks-pickup-service .ks-pickup-service__btn {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
}

html body .ks-pickup-service__head {
  margin: 0 0 36px;
  padding: 0;
  text-align: center;
}

html body .ks-pickup-service__en {
  display: block;
  margin: 0 0 26px;
  padding: 0;
  color: #143d8d;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.6;
  text-align: center;
  text-transform: uppercase;
}

html body .ks-pickup-service__title {
  display: block;
  margin: 0;
  padding: 0;
  color: #143d8d;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-align: center;
}

html body .ks-pickup-service__title::after {
  content: "";
  display: block;
  width: 70px;
  height: 2px;
  margin: 18px auto 0;
  background: #3d82e8;
}

html body .ks-pickup-service__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: 0;
  align-items: stretch;
}

html body .post_content a.ks-pickup-service__card,
html body .ks-pickup-service a.ks-pickup-service__card {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  min-height: 176px;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  background: #fff;
  border: 1px solid #d7e6f5;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(18, 52, 86, 0.06);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

html body .post_content a.ks-pickup-service__card:hover,
html body .post_content a.ks-pickup-service__card:focus-visible,
html body .ks-pickup-service a.ks-pickup-service__card:hover,
html body .ks-pickup-service a.ks-pickup-service__card:focus-visible {
  color: inherit;
  text-decoration: none;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(18, 52, 86, 0.1);
}

html body .ks-pickup-service__body {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  column-gap: 14px;
  row-gap: 0;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  padding: 20px 16px 20px 22px;
}

html body .ks-pickup-service__icon {
  position: relative;
  display: grid;
  place-items: center;
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  justify-self: center;
  width: 64px;
  height: 64px;
  margin: 0;
  overflow: hidden;
  border-radius: 50%;
  background: #e8f2fb;
  color: #143d8d;
}

html body .ks-pickup-service__icon img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: contain;
  object-position: center;
  transform: scale(1.38);
}

html body .ks-pickup-service__icon--online::before {
  content: "";
  width: 22px;
  height: 14px;
  border: 1.8px solid currentColor;
  border-radius: 3px;
}

html body .ks-pickup-service__icon--online::after {
  content: "";
  position: absolute;
  bottom: 14px;
  left: 50%;
  width: 16px;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transform: translateX(-50%);
}

html body .ks-pickup-service__icon--judge::before {
  content: "";
  width: 16px;
  height: 20px;
  border: 1.8px solid currentColor;
  border-radius: 3px;
}

html body .ks-pickup-service__icon--judge::after {
  content: "";
  position: absolute;
  top: 20px;
  left: 50%;
  width: 6px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateX(-50%) rotate(40deg);
}

html body .ks-pickup-service__icon--online:has(img)::before,
html body .ks-pickup-service__icon--online:has(img)::after,
html body .ks-pickup-service__icon--judge:has(img)::before,
html body .ks-pickup-service__icon--judge:has(img)::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
}

html body .ks-pickup-service__copy {
  display: contents;
}

html body .ks-pickup-service__card-title {
  display: block;
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  align-self: end;
  margin: 0;
  color: #143d8d;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.4;
  white-space: nowrap;
}

html body .ks-pickup-service__lead {
  display: block;
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
  align-self: start;
  margin: 6px 0 0;
  color: #333;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.5;
}

html body .ks-pickup-service__btn {
  display: inline-flex;
  grid-column: 2;
  grid-row: 3;
  align-items: center;
  justify-content: center;
  justify-self: center;
  align-self: start;
  min-width: 172px;
  margin-top: 14px;
  padding: 9px 22px 9px 24px;
  color: #143d8d;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  background: #fff;
  border: 1px solid #3d82e8;
  border-radius: 999px;
}

html body .ks-pickup-service__btn::after {
  content: "→";
  margin-left: 10px;
  font-size: 14px;
  font-weight: 500;
  transition: transform 0.2s ease;
}

html body .ks-pickup-service a.ks-pickup-service__card:hover .ks-pickup-service__btn,
html body .ks-pickup-service a.ks-pickup-service__card:focus-visible .ks-pickup-service__btn {
  background: #eef5fc;
}

html body .ks-pickup-service a.ks-pickup-service__card:hover .ks-pickup-service__btn::after,
html body .ks-pickup-service a.ks-pickup-service__card:focus-visible .ks-pickup-service__btn::after {
  transform: translateX(3px);
}

html body .ks-pickup-service__visual {
  position: relative;
  flex: 0 0 36%;
  width: 36%;
  max-width: 36%;
  min-height: 176px;
  overflow: hidden;
  background: #eef5fc;
}

html body .ks-pickup-service__visual::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 36px;
  background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 100%);
  z-index: 1;
  pointer-events: none;
}

html body .ks-pickup-service__visual img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  padding: 0;
  object-fit: cover;
  object-position: center;
  background: none;
}

html body .ks-pickup-service + .contact-cta-inner,
html body .wp-block-html:has(.ks-pickup-service) + .contact-cta-inner {
  clear: both;
  margin-top: 8px;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
}

@media (max-width: 959px) {
  html body .ks-pickup-service__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

@media (max-width: 767px) {
  html body .post_content .ks-pickup-service,
  html body .ks-pickup-service {
    width: min(1100px, calc(100vw - 40px));
    margin-top: 44px;
    margin-bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
  }

  html body .ks-pickup-service__head {
    margin-bottom: 28px;
  }

  html body .ks-pickup-service__en {
    margin-bottom: 22px;
    font-size: 16px;
    letter-spacing: 0.16em;
  }

  html body .ks-pickup-service__title {
    font-size: 22px;
    letter-spacing: 0.02em;
  }

  html body .ks-pickup-service__title::after {
    margin-top: 14px;
  }
}

@media (min-width: 641px) and (max-width: 767px) {
  html body .post_content a.ks-pickup-service__card,
  html body .ks-pickup-service a.ks-pickup-service__card {
    min-height: 156px;
  }

  html body .ks-pickup-service__visual {
    min-height: 156px;
  }

  html body .ks-pickup-service__card-title {
    font-size: 16px;
    white-space: normal;
  }
}

@media (max-width: 640px) {
  html body .post_content a.ks-pickup-service__card,
  html body .ks-pickup-service a.ks-pickup-service__card {
    flex-direction: column;
    min-height: 0;
  }

  html body .ks-pickup-service__body {
    padding: 18px 18px 14px;
    column-gap: 12px;
  }

  html body .ks-pickup-service__card-title {
    white-space: normal;
  }

  html body .ks-pickup-service__visual {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    height: 140px;
  }

  html body .ks-pickup-service__visual::before {
    inset: auto 0 0 0;
    width: auto;
    height: 28px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 100%);
  }

  html body .ks-area-page:not(:has(.ks-hq-hero)) .post_content a.ks-pickup-service__card,
  html body .ks-area-page:not(:has(.ks-hq-hero)) .ks-pickup-service a.ks-pickup-service__card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    grid-template-areas:
      "icon title"
      "icon lead"
      "vis vis"
      "btn btn";
    column-gap: 12px;
    row-gap: 6px;
    padding: 18px 18px 16px;
    flex-direction: unset;
  }

  html body .ks-area-page:not(:has(.ks-hq-hero)) .ks-pickup-service__body {
    display: contents;
    padding: 0;
  }

  html body .ks-area-page:not(:has(.ks-hq-hero)) .ks-pickup-service__icon {
    grid-area: icon;
    align-self: center;
  }

  html body .ks-area-page:not(:has(.ks-hq-hero)) .ks-pickup-service__card-title {
    grid-area: title;
    align-self: end;
  }

  html body .ks-area-page:not(:has(.ks-hq-hero)) .ks-pickup-service__lead {
    grid-area: lead;
    align-self: start;
    margin-top: 0;
  }

  html body .ks-area-page:not(:has(.ks-hq-hero)) .ks-pickup-service__visual {
    grid-area: vis;
    width: 100%;
    max-width: 100%;
    height: 140px;
    min-height: 140px;
    margin: 8px 0 4px;
    border-radius: 12px;
  }

  html body .ks-area-page:not(:has(.ks-hq-hero)) .ks-pickup-service__btn {
    grid-area: btn;
    justify-self: center;
    margin-top: 4px;
  }
}

@media (min-width: 501px) and (max-width: 767px) {
  #body_wrap.ks-area-page:has(.ks-hq-hero) .ks-pickup-service,
  #body_wrap.ks-area-page:has(.ks-hq-hero) .wp-block-html:has(.ks-pickup-service) {
    width: 414px !important;
    max-width: 414px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    left: auto;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .post_content a.ks-pickup-service__card,
  html body .ks-pickup-service a.ks-pickup-service__card,
  html body .ks-pickup-service__btn::after {
    transition: none;
  }
}

/* ============================================================
   福岡市ページ：対応エリアを詳しく見る
   対象: .fukuoka-area-links-section
   他セクション・他都市ページには当てない。
   ============================================================ */

html body .wp-block-html:has(.fukuoka-area-links-section) {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow: visible;
  background: none;
  border: none;
  box-shadow: none;
  box-sizing: border-box;
}

html body .fukuoka-area-links-section,
html body #content .post_content > .fukuoka-area-links-section {
  display: block;
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: var(--area-section-gap, 88px) auto 32px;
  padding: 0 0 56px;
  overflow: visible;
  background: #fff;
  border: none;
  box-shadow: none;
}

html body .fukuoka-area-links-section::before,
html body #content .post_content > .fukuoka-area-links-section::before,
html body .fukuoka-area-links-section::after,
html body #content .post_content > .fukuoka-area-links-section::after {
  content: none;
  display: none;
}

html body .fukuoka-area-links-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  box-sizing: border-box;
}

html body .fukuoka-area-links-heading {
  margin: 0;
  padding: 0;
  text-align: center;
}

html body .fukuoka-area-links-section p {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
}

html body .fukuoka-area-links-section .fukuoka-area-links-en {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 26px;
  color: #143d8d;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.6;
  text-align: center;
  text-transform: uppercase;
}

html body .fukuoka-area-links-section .fukuoka-area-links-title {
  display: block;
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0;
  color: #143d8d;
  font-size: 35px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-align: center;
  border: none;
}

html body .fukuoka-area-links-section .fukuoka-area-links-title::before {
  content: none !important;
  display: none !important;
  border: none !important;
  background: none !important;
  width: 0 !important;
  height: 0 !important;
}

html body .fukuoka-area-links-section .fukuoka-area-links-title::after {
  content: "";
  display: block;
  width: 70px;
  height: 2px;
  margin: 18px auto 0;
  background: #3d82e8;
  border: none;
}

/* ACCESS .area-access-lead と同じ見出し直下リード */
html body .fukuoka-area-links-section .fukuoka-area-links-intro {
  display: block;
  box-sizing: border-box;
  width: min(720px, calc(100% - 32px));
  max-width: 720px;
  margin: 14px auto 36px;
  padding: 0 16px;
  color: #333333;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.8;
  text-align: center;
  white-space: normal;
  background: none;
  border: none;
  box-shadow: none;
}

html body .fukuoka-area-links-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.40fr) minmax(0, 0.60fr);
  gap: 20px 24px;
  align-items: center;
  width: min(1180px, calc(100vw - 48px));
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding: 52px 0 56px;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  overflow: visible;
}

html body .fukuoka-area-links-layout::before {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  top: -28px;
  left: -8%;
  width: 117%;
  height: calc(100% + 72px);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1000' preserveAspectRatio='none'%3E%3Cdefs%3E%3CradialGradient id='faBgA' cx='72%25' cy='46%25' r='74%25'%3E%3Cstop offset='0%25' stop-color='%23c5e4f6' stop-opacity='0.72'/%3E%3Cstop offset='38%25' stop-color='%23d7eefb' stop-opacity='0.46'/%3E%3Cstop offset='72%25' stop-color='%23eef7fd' stop-opacity='0.2'/%3E%3Cstop offset='100%25' stop-color='%23ffffff' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='faBgB' x1='12%25' y1='8%25' x2='88%25' y2='92%25'%3E%3Cstop offset='0%25' stop-color='%23ebf6fd' stop-opacity='0.82'/%3E%3Cstop offset='46%25' stop-color='%23d4ebf8' stop-opacity='0.44'/%3E%3Cstop offset='100%25' stop-color='%23f7fbfe' stop-opacity='0.1'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23faBgB)' d='M88 300C22 400 118 498 62 638C22 742 48 860 178 924C312 990 438 930 582 954C728 978 852 908 1000 936C1152 964 1308 900 1436 848C1572 792 1548 678 1566 530C1584 382 1540 268 1572 150C1600 48 1508 6 1368 18C1224 30 1108 118 968 50C828 -8 698 102 542 34C382 8 238 48 128 178C72 242 126 266 88 300Z'/%3E%3Cpath fill='url(%23faBgA)' d='M88 300C22 400 118 498 62 638C22 742 48 860 178 924C312 990 438 930 582 954C728 978 852 908 1000 936C1152 964 1308 900 1436 848C1572 792 1548 678 1566 530C1584 382 1540 268 1572 150C1600 48 1508 6 1368 18C1224 30 1108 118 968 50C828 -8 698 102 542 34C382 8 238 48 128 178C72 242 126 266 88 300Z'/%3E%3C/svg%3E");
  -webkit-mask-image: radial-gradient(ellipse 30% 28% at 5% 3%, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.36) 26%, rgba(0, 0, 0, 0.68) 50%, rgba(0, 0, 0, 0.9) 72%, #000 88%, #000 100%);
  mask-image: radial-gradient(ellipse 30% 28% at 5% 3%, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.36) 26%, rgba(0, 0, 0, 0.68) 50%, rgba(0, 0, 0, 0.9) 72%, #000 88%, #000 100%);
}

html body .fukuoka-area-links-layout::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  top: 6%;
  left: 4%;
  width: 93%;
  height: 88%;
  background:
    radial-gradient(ellipse 58% 62% at 74% 44%, rgba(197, 228, 246, 0.4) 0%, rgba(221, 238, 250, 0.16) 44%, rgba(255, 255, 255, 0) 76%),
    radial-gradient(ellipse 48% 56% at 22% 52%, rgba(232, 244, 252, 0.42) 0%, rgba(255, 255, 255, 0) 72%);
  border-radius: 63% 42% 58% 48% / 48% 62% 38% 55%;
}

html body .fukuoka-area-map,
html body .fukuoka-area-cards {
  position: relative;
  z-index: 1;
  min-width: 0;
  max-width: 100%;
}

html body .fukuoka-area-map {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

html body .fukuoka-area-map__figure {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  box-sizing: border-box;
}

html body .fukuoka-area-map__img,
html body .fukuoka-area-map__img[src]:not([src=""]) {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  vertical-align: middle;
  box-sizing: border-box;
  border: none;
  background: none;
}

html body .fukuoka-area-map:has(.fukuoka-area-map__img[src]:not([src=""])) .fukuoka-area-map__placeholder {
  display: none;
}

html body .fukuoka-area-map__placeholder {
  display: block;
  width: 100%;
}

html body .fukuoka-area-map__svg {
  display: block;
  width: 100%;
  height: auto;
}

html body .fukuoka-area-map__label {
  fill: #1a4a7a;
  font-size: 18px;
  font-weight: 700;
  text-anchor: middle;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
}

html body .fukuoka-area-map__label--light {
  fill: #fff;
}

html body .fukuoka-area-map__caption {
  margin: 4px 0 0;
  color: #6a8aaa;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-align: center;
}

html body .fukuoka-area-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

html body .fukuoka-area-card,
html body a.fukuoka-area-card {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  grid-template-areas:
    "thumb body"
    "link link";
  column-gap: 16px;
  row-gap: 12px;
  align-items: center;
  position: relative;
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  height: auto;
  margin: 0;
  padding: 16px 14px 14px;
  color: inherit;
  text-decoration: none;
  white-space: normal;
  background: #fff;
  border: none;
  border-radius: 20px;
  box-shadow: 0 8px 22px rgba(36, 86, 140, 0.08);
  transition: box-shadow 0.2s ease;
}

html body a.fukuoka-area-card[href]:hover,
html body a.fukuoka-area-card[href]:focus-visible {
  box-shadow: 0 12px 26px rgba(36, 86, 140, 0.12);
  text-decoration: none;
  color: inherit;
}

html body a.fukuoka-area-card[href]:focus-visible {
  outline: 2px solid #3d82e8;
  outline-offset: 3px;
}

html body .fukuoka-area-card.is-soon {
  cursor: default;
}

html body .fukuoka-area-card-thumb {
  grid-area: thumb;
  display: block;
  width: 88px;
  height: 88px;
  margin: 0;
  overflow: hidden;
  border-radius: 50%;
  background: #d7e8f5;
  box-shadow: none;
}

html body .fukuoka-area-card-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

html body .fukuoka-area-card-body {
  grid-area: body;
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 2px;
  padding: 0;
}

html body .fukuoka-area-card-en {
  color: #6ea8c8;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.3;
}

html body .fukuoka-area-card-name {
  color: #143d8d;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.35;
}

html body .fukuoka-area-card-en,
html body .fukuoka-area-card-name,
html body .fukuoka-area-card-text,
html body .fukuoka-area-card-link {
  min-width: 0;
  max-width: 100%;
}

html body .fukuoka-area-card-text {
  display: block;
  width: 100%;
  color: #4a6480;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
}

html body .fukuoka-area-card-link {
  grid-area: link;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  box-sizing: border-box;
  width: 88%;
  max-width: 360px;
  margin: 0 auto;
  padding: 7px 8px;
  color: #1a4a9c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: keep-all;
  background: #fff;
  border: 1.5px solid #3d82e8;
  border-radius: 999px;
  box-shadow: none;
}

html body .fukuoka-area-card-link::after {
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  margin: -1px 0 0 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
}

html body a.fukuoka-area-card[href]:hover .fukuoka-area-card-link,
html body a.fukuoka-area-card[href]:focus-visible .fukuoka-area-card-link {
  color: #143d8d;
  background: #f4f8fd;
  border-color: #2f6fd4;
  text-decoration: none;
}

html body .fukuoka-area-card-arrow {
  display: none !important;
}

@media (min-width: 960px) {
  html body .fukuoka-area-links-section .fukuoka-area-links-intro {
    width: min(720px, calc(100% - 32px)) !important;
    max-width: 720px;
    white-space: normal !important;
  }

  html body .fukuoka-area-card-link {
    min-width: min(100%, max-content);
    white-space: nowrap;
  }
}

@media (min-width: 1100px) {
  html body .fukuoka-area-card-link {
    font-size: 13px;
    padding: 8px 12px;
  }
}

@media (max-width: 959px) {
  html body .fukuoka-area-links-section,
  html body #content .post_content > .fukuoka-area-links-section {
    margin-top: var(--area-section-gap, 70px);
  }

  html body .fukuoka-area-links-layout {
    padding: 40px 0 44px;
  }

  html body .fukuoka-area-links-layout::before {
    top: -22px;
    left: -6%;
    width: 113%;
    height: calc(100% + 56px);
    opacity: 0.92;
  }

  html body .fukuoka-area-links-layout::after {
    opacity: 0.85;
  }

  html body .fukuoka-area-links-section .fukuoka-area-links-intro {
    width: min(100%, calc(100% - 28px));
    max-width: 100%;
    margin: 10px auto 28px;
    font-size: 17px;
  }

  html body .fukuoka-area-card,
  html body a.fukuoka-area-card {
    grid-template-columns: 76px minmax(0, 1fr);
    min-height: 0;
    padding: 14px 14px 12px;
    row-gap: 10px;
  }

  html body .fukuoka-area-card-thumb {
    width: 76px;
    height: 76px;
    margin: 0;
  }

  html body .fukuoka-area-card-name {
    font-size: 17px;
  }

  html body .fukuoka-area-card-link {
    font-size: 12px;
    padding: 7px 8px;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
  }
}

@media (max-width: 767px) {
  html body .fukuoka-area-links-section,
  html body #content .post_content > .fukuoka-area-links-section {
    margin-top: var(--area-section-gap, 56px);
    padding: 0 0 48px;
  }

  html body .fukuoka-area-links-layout::before {
    top: -16px;
    left: -4%;
    width: 109%;
    height: calc(100% + 44px);
    opacity: 0.82;
  }

  html body .fukuoka-area-links-layout::after {
    opacity: 0.7;
  }

  html body .fukuoka-area-links-heading {
    margin-bottom: 0;
  }

  html body .fukuoka-area-links-section .fukuoka-area-links-en {
    margin-bottom: 22px;
    font-size: 16px;
    letter-spacing: 0.16em;
  }

  html body .fukuoka-area-links-section .fukuoka-area-links-title {
    font-size: 29px;
  }

  html body .fukuoka-area-links-section .fukuoka-area-links-title::after {
    width: 60px;
    margin-top: 14px;
  }

  html body .fukuoka-area-links-section .fukuoka-area-links-intro {
    width: min(100%, calc(100% - 32px));
    max-width: 100%;
    margin: 8px auto 22px;
    padding: 0;
    font-size: 16px;
    line-height: 1.75;
  }

  html body .fukuoka-area-links-layout {
    grid-template-columns: 1fr;
    gap: 24px;
    width: 100%;
    max-width: 100%;
    left: auto;
    transform: none;
    padding: 32px 0 36px;
  }

  html body .fukuoka-area-map__figure {
    max-width: 100%;
    margin: 0 auto;
  }
}

@media (max-width: 640px) {
  html body .fukuoka-area-cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  html body .fukuoka-area-card,
  html body a.fukuoka-area-card {
    grid-template-columns: 80px minmax(0, 1fr);
    min-height: 0;
    padding: 14px 14px 12px;
    row-gap: 10px;
  }

  html body .fukuoka-area-card-thumb {
    width: 80px;
    height: 80px;
    margin: 0;
  }

  html body .fukuoka-area-card-name {
    font-size: 18px;
  }

  html body .fukuoka-area-card-text {
    font-size: 13px;
  }

  html body .fukuoka-area-card-link {
    font-size: 12.5px;
    padding: 8px 12px;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
  }
}

/* ============================================================
   都市ページ共通：セクション間の外側余白
   基準: ACCESS 英字見出し直前（CTA終端 → — ACCESS —）
   PC 88 / タブレット 70 / スマホ 56
   PICK UP SERVICE 周辺は変更しない。
   対象: #body_wrap.ks-area-page（複製都市ページに自動付与）
   今後のセクションは post_content 直下へ .area-section を付けても同じ余白になる。
   ============================================================ */

html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) {
  --area-section-gap: 88px;
}

@media (max-width: 959px) {
  html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) {
    --area-section-gap: 70px;
  }
}

@media (max-width: 767px) {
  html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) {
    --area-section-gap: 56px;
  }
}

html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .area-section,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-industry,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-needs,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-support,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-access,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-flow,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-price,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-faq,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group.area-contact,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content > .wp-block-group:has(.area-section-title):not(.ks-pickup-service),
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .fukuoka-area-links-section,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) #content .post_content > .fukuoka-area-links-section {
  margin-top: var(--area-section-gap);
}

html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .fukuoka-area-links-section,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) #content .post_content > .fukuoka-area-links-section {
  padding-top: 0;
}

html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content .ks-pickup-service,
html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .ks-pickup-service {
  margin-top: 56px;
}

@media (max-width: 767px) {
  html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .post_content .ks-pickup-service,
  html #body_wrap:is(.ks-area-page, .page-id-2674, .area-page) .ks-pickup-service {
    margin-top: 44px;
  }
}
