@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .wp-container / --narrow     - 1120px（820px）＋ clamp 左右padding のコンテナ
 * .wp-section / --*            - clamp 指定のセクション上下余白（ページごとのバリエーション）
 * .wp-heading / __en / __ja    - 英字小見出し（左に黄緑バー）＋日本語見出し
 * .wp-lead / .wp-text          - 本文テキスト（16px / lh2・#33414f）
 * .wp-grid / --min*            - auto-fit + minmax(min(100%,Npx),1fr) の自動列グリッド
 * .wp-split                    - 画像＋テキストの自動2列グリッド
 * .wp-card / --p*              - 白背景・枠線・青系ソフトシャドウのカード
 * .wp-link-arrow               - 「一覧へ」等のテキストリンク＋黄緑丸矢印
 * .wp-btn-expand               - 黄緑の丸が横に広がるピル型ボタン
 * .wp-chip / .wp-tag           - ピル型タグ
 * .wp-watermark                - 青背景ボックス内のロゴ透かし
 * .wp-header / .wp-nav-toggle / .wp-sp-nav - ヘッダー・ハンバーガー・SPドロップダウンナビの見た目
 * .wp-footer                   - フッター
 * .wp-mv                       - TOPメインビュー
 * .wp-news-box / .wp-news-list - TOPお知らせ
 * .wp-head-visual              - 見出し左＋イラスト右の見出し行
 * .wp-stage / .wp-stage-card   - TOPステージ図
 * .wp-partner                  - 伴走支援ボックス
 * .wp-photo-card               - 写真＋テキストのカード
 * .wp-cta                      - お問い合わせCTA
 * .wp-page-hero                - 下層ページヒーロー（写真＋紺グラデーション）
 * .wp-breadcrumb               - ページヒーロー内パンくず
 * .wp-check-list               - チェックアイコン付きお悩みリスト
 * .wp-service-card             - 番号付きサービスカード
 * .wp-point-list / .wp-stat    - 経験ポイント行 / 数字ボックス
 * .wp-case                     - 支援事例カード
 * .wp-flow                     - ご支援の流れ（STEPカード）
 * .wp-smart                    - SMARTバナー
 * .wp-target-card / .wp-dot-list - 冷凍ワッフル対象カード / ドットリスト
 * .wp-message                  - 代表あいさつ
 * .wp-profile                  - 代表プロフィール
 * .wp-philosophy / .wp-num-list - 経営理念 / 番号付きリスト
 * .wp-origin                   - 社名の由来の英単語
 * .wp-dl-table / .wp-note-box  - 会社情報の定義リスト / 補足ボックス
 * .wp-map                      - Googleマップ枠
 * .form-contents.form-pattern-1 - CMSフォームのデザイン上書き
 * .wp-blog / .wp-entry-card / .wp-side-block / .wp-article / .wp-pagination - ブログ
 * .wp-objpos-*                 - object-position 調整
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - コンテナ幅 1120px（共通は 1200/1500/900）。clamp() による流動的な左右padding がない
 *  - セクション余白が clamp(72px,10vw,120px) 等の流動値（共通 .section は固定 120px / 60px）
 *  - gap 14/16/22/24/28/32px、margin 44px 等の刻みがない（utility は 40 以上が tablet で半減）
 *  - fz-15（15px）がない。本文 16px を全幅で維持したい（共通 body は tablet 14px / SP 12px に縮小）
 * 【構造不足】
 *  - grid auto-fit + minmax(min(100%,Npx),1fr) の自動列グリッド（共通は grid-2/3/4・grid-auto 250px 固定）
 *  - 英字小見出しの左に短いバーが付く見出し（heading 系に該当なし）
 *  - 丸が横に広がるボタンで、矢印アイコンが chevron → 長い矢印に切り替わるもの（btn-circle-arrow--expand は構造が異なる）
 *  - 見出し左＋イラスト右（右側が外にはみ出す）見出し行
 *  - 3ステージを1本のグラデーションラインでつなぐステージ図
 *  - SPナビのドロップダウン型（共通 sp-nav はフルスクリーン型のみ）
 * 【装飾パターン不足】
 *  - ロゴ画像の透かし（青ボックス右側に大きく薄く配置）
 *  - 写真の背後に薄色の板を右下にずらして敷くフレーム
 * 【状態不足】
 *  - リンク hover で opacity を変えず色だけ変える（共通 a:hover は opacity:.8）
 *
 */

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
  --wp-base: #0168b7;
  --wp-sub: #8fc320;
  --wp-accent: #30a1db;
  --wp-navy: #0b3f6b;
  --wp-txt: #1d2b3a;
  --wp-txt-body: #33414f;
  --wp-txt-muted: #4a5866;
  --wp-line: #e3edf5;
  --wp-line-blue: #d6e7f4;
  --wp-bg-pale: #f2f8fc;
  --wp-bg-green: #f6faef;
  --wp-bg-blue: #e6f1f9;
  --wp-green-dark: #4f7a0c;
  --wp-green-mid: #5d8a10;
  --wp-green-light: #c9ec84;
  --wp-shadow: 0 10px 28px rgba(1, 104, 183, .08);
  --wp-header-h: clamp(72px, 7vw, 96px);
}

/* ==========================================================================
   Base（共通 body の縮小・a:hover の opacity を本デザインに合わせる）
   ========================================================================== */
body {
  font-size: 1.6rem;
  line-height: 1.9;
  letter-spacing: .03em;
  color: var(--wp-txt);
}
a:hover {
  opacity: 1;
}
h1, h2, h3 {
  font-weight: 700;
}

/* ==========================================================================
   Layout
   ========================================================================== */
.wp-container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 40px);
}
/* 3列カードのタイトルを1行に収めるための広幅（TOP 地域課題解決） */
.wp-container--wide {
  max-width: 1300px;
}
.wp-container--narrow {
  max-width: 820px;
}

.wp-section { padding: clamp(72px, 10vw, 120px) 0; }
.wp-section--lg { padding: clamp(72px, 10vw, 128px) 0; }
.wp-section--news { padding: clamp(56px, 7vw, 88px) 0 clamp(64px, 8vw, 104px); }
.wp-section--stage { padding: clamp(56px, 8vw, 96px) 0 clamp(72px, 10vw, 128px); overflow: hidden; }
.wp-section--partner { padding: 0 0 clamp(72px, 10vw, 128px); }
.wp-section--intro { padding: clamp(64px, 9vw, 104px) 0 0; }
.wp-section--form { padding: clamp(64px, 9vw, 104px) 0 clamp(72px, 10vw, 120px); }
.wp-section--blog { padding: clamp(56px, 8vw, 96px) 0 clamp(72px, 10vw, 120px); }
.wp-section--pt0 { padding-top: 0; }
.wp-section--pb0 { padding-bottom: 0; }

.wp-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(56px, 8vw, 96px);
}
.wp-stack--lg {
  gap: clamp(64px, 9vw, 104px);
}

.wp-grid {
  display: grid;
  gap: 24px;
}
.wp-grid--gap16 { gap: 16px; }
.wp-grid--min190 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
.wp-grid--min280 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.wp-grid--min320 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.wp-grid--min420 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.wp-grid--min440 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); }

.wp-split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
}
.wp-split--wide-gap { gap: clamp(40px, 5vw, 72px); }
.wp-split--min360 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  gap: 32px;
}
.wp-split__body {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.wp-split__body--24 { gap: 24px; }
.wp-split__img {
  display: block;
  width: 100%;
  height: auto;
}
.wp-split__photo {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
}

/* ==========================================================================
   Heading
   ========================================================================== */
.wp-heading {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wp-heading--mb20 { margin-bottom: 20px; }
.wp-heading--mb32 { margin-bottom: 32px; }
.wp-heading--mb40 { margin-bottom: 40px; }
.wp-heading--mb44 { margin-bottom: 44px; }

.wp-heading__en {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "Karla", "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1.9;
  letter-spacing: .18em;
  color: var(--wp-base);
}
.wp-heading__en::before {
  content: "";
  flex-shrink: 0;
  width: 24px;
  height: 3px;
  border-radius: 2px;
  background: var(--wp-sub);
}
.wp-heading__ja {
  margin: 0;
  font-size: clamp(24px, 3.2vw, 34px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .05em;
  color: var(--wp-txt);
}
.wp-heading--sm .wp-heading__ja {
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.9;
  letter-spacing: .06em;
}
.wp-heading--md .wp-heading__ja {
  font-size: clamp(22px, 2.8vw, 30px);
}
.wp-heading--white .wp-heading__en,
.wp-heading--white .wp-heading__ja {
  color: #fff;
}
.wp-heading--sm {
  gap: 6px;
}

/* ==========================================================================
   Text
   ========================================================================== */
.wp-lead {
  margin: 0;
  font-size: 1.6rem;
  line-height: 2;
  color: var(--wp-txt-body);
  text-wrap: pretty;
}
.wp-lead--fluid {
  margin-bottom: 44px;
  font-size: clamp(14px, 1.45vw, 16px);
}
.wp-subcopy {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-subcopy--lg {
  margin-bottom: 44px;
  font-size: clamp(17px, 1.8vw, 20px);
}

/* ==========================================================================
   Card / Tag
   ========================================================================== */
.wp-card {
  background: #fff;
  border: 1px solid var(--wp-line-blue);
  border-radius: 12px;
  box-shadow: var(--wp-shadow);
}
.wp-card--p40 { padding: clamp(28px, 3vw, 40px); }
.wp-card--p44 { padding: clamp(28px, 3vw, 44px); }
.wp-card--p48 { padding: clamp(28px, 4vw, 48px); }
.wp-card--p56 { padding: clamp(28px, 4vw, 56px); }

.wp-chip {
  display: inline-block;
  font-size: 1.3rem;
  line-height: 1.9;
  padding: 4px 14px;
  border-radius: 999px;
  background: var(--wp-bg-blue);
  color: var(--wp-base);
}
.wp-chip--glass {
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 255, 255, .35);
  color: #fff;
}
.wp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.wp-tag {
  display: inline-block;
  font-size: 1.2rem;
  line-height: 1.9;
  padding: 2px 12px;
  border-radius: 999px;
  background: var(--wp-bg-blue);
  color: var(--wp-base);
}
.wp-tag--md {
  font-size: 1.3rem;
  padding: 3px 12px;
  white-space: nowrap;
}
.wp-tag--green {
  font-weight: 700;
  background: var(--wp-sub);
  color: #fff;
}

.wp-watermark {
  position: absolute;
  right: clamp(-120px, -4vw, -24px);
  top: 50%;
  transform: translateY(-50%);
  height: 150%;
  width: auto;
  max-width: none;
  opacity: .12;
  pointer-events: none;
}

/* ==========================================================================
   Link / Button
   ========================================================================== */
.wp-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
a.wp-link-arrow:hover {
  color: var(--wp-accent);
}
.wp-link-arrow__icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--wp-sub);
  display: grid;
  place-items: center;
}

.wp-btn-expand {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 320px);
  height: 68px;
  padding: 0 40px 0 96px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: var(--wp-txt);
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .08em;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .09);
  cursor: pointer;
  transition: box-shadow .45s;
}
.wp-btn-expand__fill {
  position: absolute;
  left: 4px;
  top: 4px;
  bottom: 4px;
  width: 60px;
  border-radius: 999px;
  background: var(--wp-sub);
  transition: width .5s cubic-bezier(.65, 0, .35, 1);
}
.wp-btn-expand__chevron {
  position: absolute;
  left: 30px;
  top: 50%;
  margin-top: -6.5px;
  opacity: 1;
  transition: opacity .25s;
}
.wp-btn-expand__arrow {
  position: absolute;
  left: 24px;
  top: 50%;
  margin-top: -6px;
  opacity: 0;
  transition: opacity .3s .15s;
}
.wp-btn-expand__label {
  position: relative;
  color: var(--wp-txt);
  transition: color .35s .1s;
}
.wp-btn-expand:hover {
  color: var(--wp-txt);
  box-shadow: 0 0 0 6px #fff, 0 12px 26px rgba(0, 0, 0, .12);
}
.wp-btn-expand:hover .wp-btn-expand__fill { width: calc(100% - 8px); }
.wp-btn-expand:hover .wp-btn-expand__chevron { opacity: 0; }
.wp-btn-expand:hover .wp-btn-expand__arrow { opacity: 1; }
.wp-btn-expand:hover .wp-btn-expand__label { color: #fff; }

/* ==========================================================================
   Header（共通 header / nav-toggle / sp-nav の見た目調整）
   ========================================================================== */
.wp-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .96);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--wp-line);
}
.wp-header .header__inner {
  max-width: none;
  height: var(--wp-header-h);
  padding: 0 clamp(16px, 2.5vw, 40px);
  gap: 24px;
}
.wp-header .header__logo {
  display: flex;
  align-items: center;
}
.wp-header .header__logo img {
  display: block;
  height: clamp(36px, 4vw, 52px);
  width: auto;
  max-width: 62vw;
  object-fit: contain;
}
.wp-header .header__nav {
  margin: 0;
  gap: clamp(16px, 2vw, 32px);
}
.wp-header .header__nav-item a {
  display: block;
  padding: 6px 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.9;
  color: var(--wp-txt);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
}
.wp-header .header__nav-item a::after {
  display: none;
}
.wp-header .header__nav-item a:hover {
  color: var(--wp-base);
}
.wp-header .header__nav-item--current a {
  border-bottom-color: var(--wp-sub);
}

.wp-nav-toggle {
  top: calc((var(--wp-header-h) - 48px) / 2);
  right: clamp(16px, 2.5vw, 40px);
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: var(--wp-base);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.wp-nav-toggle .nav-toggle__line {
  width: 20px;
  background: #fff;
  border-radius: 2px;
}
.wp-nav-toggle .nav-toggle__line:nth-child(1) { top: 16px; }
.wp-nav-toggle .nav-toggle__line:nth-child(2) { top: 23px; }
.wp-nav-toggle .nav-toggle__line:nth-child(3) { top: 30px; }
.wp-nav-toggle.is-active .nav-toggle__line:nth-child(1),
.wp-nav-toggle.is-active .nav-toggle__line:nth-child(3) { top: 23px; }

.wp-sp-nav {
  top: calc(var(--wp-header-h) + 1px);
  bottom: auto;
  max-height: calc(100vh - var(--wp-header-h) - 1px);
  align-items: stretch;
  justify-content: flex-start;
  padding: 8px clamp(20px, 4vw, 40px) 24px;
  background: #fff;
  border-top: 1px solid var(--wp-line);
  box-shadow: 0 12px 24px rgba(1, 104, 183, .08);
}
.wp-sp-nav .sp-nav__list {
  max-width: none;
  text-align: left;
}
.wp-sp-nav .sp-nav__item,
.wp-sp-nav .sp-nav__item:first-child {
  border-top: 0;
  border-bottom: 1px solid var(--wp-line);
}
.wp-sp-nav .sp-nav__link {
  padding: 16px 4px;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.9;
  color: var(--wp-txt);
}
.wp-sp-nav .sp-nav__link::after {
  content: "→";
  font-family: "Karla", sans-serif;
  font-weight: 400;
  font-size: 1em;
  color: var(--wp-sub);
  opacity: 1;
}
.wp-sp-nav .sp-nav__link:hover {
  background: none;
  color: var(--wp-base);
}

/* ==========================================================================
   Footer
   ========================================================================== */
.wp-footer {
  background: var(--wp-navy);
  color: #fff;
}
.wp-footer__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 80px) clamp(20px, 4vw, 40px) 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 36px;
  text-align: center;
}
.wp-footer__info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.wp-footer__logo {
  display: inline-flex;
}
.wp-footer__logo img {
  display: block;
  height: clamp(110px, 11vw, 140px);
  width: auto;
}
.wp-footer__address {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.9;
  color: #dbe8f3;
}
.wp-footer__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 36px;
  width: 100%;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, .18);
}
.wp-footer__nav a {
  font-size: 1.4rem;
  line-height: 1.9;
  color: #fff;
  white-space: nowrap;
}
.wp-footer__nav a:hover {
  color: var(--wp-green-light);
}
.wp-footer .footer-bottom {
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, .18);
  background: none;
}
.wp-footer .footer-bottom__copyright {
  max-width: 1120px;
  margin: 0 auto;
  padding: 20px clamp(20px, 4vw, 40px);
  font-family: "Karla", "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  line-height: 1.9;
  letter-spacing: .08em;
  color: #c3d6e6;
  text-align: center;
}

/* ==========================================================================
   TOP：メインビュー
   ========================================================================== */
.wp-mv {
  position: relative;
  overflow: hidden;
  background: var(--wp-navy);
}
.wp-mv #slideshow {
  position: relative;
  height: calc(100vh - var(--wp-header-h));
  height: calc(100svh - var(--wp-header-h));
  min-height: 520px;
  max-height: 960px;
}
/* CMSスライダー（内部Swiper・fade）は高さ100%で外枠に追従するため、
   表示エリアにも高さを渡す。.swiper-slide の位置はSwiperに任せる（absolute指定しない） */
#cms-slider-1-1-area {
  height: 100%;
}
.wp-mv #slideshow .swiper-slide,
.wp-mv #slideshow .main_slider__inner {
  height: 100%;
}
.wp-mv #slideshow .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}
.wp-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(6, 40, 72, .78) 0%, rgba(6, 40, 72, .55) 42%, rgba(6, 40, 72, .08) 75%),
    linear-gradient(0deg, rgba(6, 40, 72, .45) 0%, rgba(6, 40, 72, 0) 40%);
  pointer-events: none;
}
.wp-mv__content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 28px;
  padding: 0 clamp(16px, 2.5vw, 40px) clamp(56px, 8vw, 104px);
  pointer-events: none;
}
.wp-mv__label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1.9;
  letter-spacing: .2em;
  color: #fff;
}
.wp-mv__label::before {
  content: "";
  width: 28px;
  height: 3px;
  border-radius: 2px;
  background: var(--wp-sub);
}
.wp-mv__catch {
  margin: 0;
  font-size: clamp(19px, 4.2vw, 50px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .04em;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .25);
}
.wp-mv__line {
  display: inline-block;
}
.wp-mv__em {
  color: var(--wp-green-light);
}
.wp-mv__sub {
  margin: -12px 0 0;
  font-size: clamp(13px, 1.4vw, 16px);
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .06em;
  color: rgba(255, 255, 255, .92);
  text-shadow: 0 2px 12px rgba(0, 0, 0, .25);
}

/* ==========================================================================
   TOP：お知らせ
   ========================================================================== */
.wp-news-box {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 32px;
}
.wp-news-box__head {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  max-width: 280px;
}
.wp-news-box__body {
  grid-column: span 2;
  min-width: 0;
}
@media (max-width: 639px) {
  .wp-news-box__body { grid-column: auto; }
}

.wp-news-list.blog-list {
  border-top: 0;
}
.wp-news-list .blog-list__item {
  border-bottom: 1px solid var(--wp-line);
}
.wp-news-list .blog-list__link,
.wp-news-list .blog-list__link:hover {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
  padding: 18px 4px;
  background: none;
  color: var(--wp-txt);
}
.wp-news-list .blog-list__date {
  font-family: "Karla", sans-serif;
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.9;
  letter-spacing: .06em;
  color: var(--wp-txt-muted);
}
.wp-news-list .blog-list__title {
  flex: 1 1 280px;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.7;
}
.wp-news-list .blog-list__link:hover .blog-list__title {
  color: var(--wp-base);
}

/* ==========================================================================
   見出し左＋イラスト右の見出し行（TOP SUPPORT / 経営改善 WORRIES）
   ========================================================================== */
.wp-head-visual {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px 0;
  margin-bottom: 12px;
}
.wp-head-visual__head {
  flex: 0 0 auto;
  max-width: 100%; /* リード文の max-width:420px が狭い画面ではみ出さないように */
  position: relative;
  z-index: 1;
  padding-bottom: clamp(24px, 4vw, 56px);
}
.wp-head-visual__img {
  flex: 1 1 480px;
  min-width: 0;
  display: flex;
  justify-content: flex-end;
}
.wp-head-visual__img img {
  display: block;
  width: 100%;
  max-width: 640px;
  height: auto;
}
.wp-head-visual--stage {
  margin-bottom: 8px;
}
.wp-head-visual--stage .wp-head-visual__head {
  padding-bottom: clamp(24px, 4vw, 64px);
}
.wp-head-visual--stage .wp-head-visual__img {
  flex: 1 1 520px;
  margin-right: clamp(-120px, -8vw, 0px);
}
.wp-head-visual--stage .wp-head-visual__img img {
  max-width: 820px;
}
.wp-head-visual__lead {
  max-width: 420px;
  margin: 18px 0 0;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--wp-txt-body);
}

/* ==========================================================================
   TOP：ステージ図
   ========================================================================== */
.wp-stage {
  position: relative;
  display: flex;
  align-items: center;
  height: 56px;
  margin-bottom: 28px;
}
.wp-stage::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 6px;
  margin-top: -3px;
  border-radius: 6px;
  background: linear-gradient(90deg, #8fc320, #30a1db 55%, #0168b7);
}
.wp-stage__list {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  width: 100%;
}
.wp-stage__item {
  display: flex;
  justify-content: center;
}
.wp-stage__pill {
  padding: 6px 22px;
  border: 2px solid var(--wp-sub);
  border-radius: 999px;
  background: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-txt);
  white-space: nowrap;
}
.wp-stage__num {
  margin-right: 8px;
  font-family: "Karla", sans-serif;
  font-size: 1.2rem;
  color: var(--wp-green-mid);
}
.wp-stage__pill--sky { border-color: var(--wp-accent); }
.wp-stage__pill--sky .wp-stage__num { color: #1a7fb5; }
.wp-stage__pill--blue { border-color: var(--wp-base); }
.wp-stage__pill--blue .wp-stage__num { color: var(--wp-base); }
@media (max-width: 639px) {
  .wp-stage__pill { padding: 6px 14px; font-size: 1.4rem; }
  .wp-stage__num { margin-right: 4px; }
}

.wp-stage-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.wp-stage-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: clamp(28px, 3vw, 40px);
  border-radius: 12px;
  color: var(--wp-txt);
  transition: border-color .3s;
}
.wp-stage-card--growth {
  flex: 1 1 300px;
  background: var(--wp-bg-green);
  border: 1px solid #e1edc8;
}
.wp-stage-card--growth:hover {
  border-color: var(--wp-sub);
  color: var(--wp-txt);
}
.wp-stage-card--succession {
  flex: 2 1 520px;
  background: var(--wp-bg-pale);
  border: 1px solid var(--wp-line-blue);
}
.wp-stage-card--succession:hover {
  border-color: var(--wp-accent);
  color: var(--wp-txt);
}
.wp-stage-card__tag {
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-stage-card--growth .wp-stage-card__tag {
  color: var(--wp-green-dark);
}
.wp-stage-card__title {
  margin: 0;
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--wp-base);
}
.wp-stage-card__text {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--wp-txt-body);
}
.wp-stage-card__items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 16px;
}
.wp-stage-card__item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px 22px;
  border-radius: 8px;
  background: #fff;
}
.wp-stage-card__item-title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.9;
}
.wp-stage-card__item-text {
  font-size: 1.4rem;
  line-height: 1.85;
  color: var(--wp-txt-body);
}
.wp-stage-card__more {
  margin-top: auto;
}

/* ==========================================================================
   伴走支援ボックス（TOP：青 / 会社概要：枠線）
   ========================================================================== */
.wp-partner {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
  padding: clamp(36px, 5vw, 64px);
  border-radius: 16px;
  background: var(--wp-base);
  color: #fff;
}
.wp-partner__head {
  position: relative;
}
.wp-partner__body {
  position: relative;
  grid-column: span 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.wp-partner__text {
  margin: 0;
  font-size: 1.6rem;
  line-height: 2;
  text-wrap: pretty;
}
.wp-partner__note {
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, .25);
  font-size: 1.4rem;
  line-height: 1.85;
  color: rgba(255, 255, 255, .88);
}
.wp-partner--light {
  gap: clamp(24px, 4vw, 48px);
  padding: clamp(32px, 5vw, 56px);
  background: none;
  border: 1px solid var(--wp-line-blue);
  color: var(--wp-txt);
}
.wp-partner--light .wp-partner__body {
  gap: 16px;
}
.wp-partner--light .wp-partner__text {
  color: var(--wp-txt-body);
}
@media (max-width: 720px) {
  .wp-partner__body { grid-column: auto; }
}

/* ==========================================================================
   写真カード（TOP 地域課題解決）
   ========================================================================== */
.wp-photo-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--wp-shadow);
}
.wp-photo-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.wp-photo-card__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px 26px 28px;
}
.wp-photo-card__title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-photo-card__text {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.85;
  color: var(--wp-txt-body);
}
.wp-photo-cards {
  margin-bottom: 48px;
}

/* ==========================================================================
   お問い合わせCTA
   ========================================================================== */
.wp-cta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: 32px;
  align-items: center;
  padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 72px);
  border: 1px solid var(--wp-line-blue);
  border-radius: 16px;
  background: linear-gradient(120deg, #fff 0%, #fff 60%, #f2f8fc 100%);
  box-shadow: var(--wp-shadow);
}
.wp-cta__head {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.wp-cta__text {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--wp-txt-body);
}
.wp-cta__action {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* ==========================================================================
   下層ページヒーロー / パンくず
   ========================================================================== */
.wp-page-hero {
  background:
    linear-gradient(90deg, rgba(11, 63, 107, .92) 0%, rgba(11, 63, 107, .82) 45%, rgba(11, 63, 107, .6) 100%),
    url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28792/page-hero.jpg") center 35% / cover no-repeat;
  background-color: var(--wp-navy);
}
.wp-page-hero__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: clamp(48px, 7vw, 88px) clamp(20px, 4vw, 40px) clamp(40px, 6vw, 72px);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.wp-page-hero__en {
  margin-top: 12px;
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.4vw, 16px);
  line-height: 1.9;
  letter-spacing: .2em;
  color: var(--wp-green-light);
}
.wp-page-hero__title {
  margin: 0;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .05em;
  color: #fff;
}
.wp-page-hero__bar {
  width: 56px;
  height: 4px;
  margin-top: 8px;
  border-radius: 4px;
  background: linear-gradient(90deg, #8fc320, #0168b7);
}

.wp-breadcrumb.breadcrumb {
  padding: 0;
  font-size: 1.2rem;
  line-height: 1.9;
  color: #dbe8f3;
}
.wp-breadcrumb .breadcrumb__list {
  gap: 8px;
}
.wp-breadcrumb .breadcrumb__item {
  gap: 8px;
}
.wp-breadcrumb .breadcrumb__item:not(:last-child)::after {
  margin: 0;
  color: #dbe8f3;
}
.wp-breadcrumb .breadcrumb__link,
.wp-breadcrumb .breadcrumb__link:hover,
.wp-breadcrumb .breadcrumb__current {
  color: #dbe8f3;
}

/* ==========================================================================
   経営改善：お悩み / サービス / 経験 / 事例
   ========================================================================== */
.wp-check-list__item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 22px 24px;
  border-radius: 10px;
  background: var(--wp-bg-pale);
}
.wp-check-list__icon {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  margin-top: 2px;
  border-radius: 50%;
  background: var(--wp-base);
  display: grid;
  place-items: center;
}
.wp-check-list__text {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.75;
}

.wp-service-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 36px 30px;
  border: 1px solid #c9dbe9;
  border-radius: 12px;
  background: #fff;
}
.wp-service-card__head {
  display: flex;
  align-items: center;
  gap: 14px;
}
.wp-service-card__num {
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: 2.8rem;
  line-height: 1;
  color: var(--wp-accent);
}
.wp-service-card__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
}
.wp-service-card__text {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--wp-txt-body);
}

.wp-point-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.wp-point-list__row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--wp-line);
}
.wp-point-list__label {
  flex-shrink: 0;
  min-width: 7em;
  font-weight: 700;
  color: var(--wp-base);
}
.wp-point-list__text {
  font-size: 1.5rem;
  line-height: 1.8;
  color: var(--wp-txt-body);
}
/* スマホ：項目名の下に本文を置く1カラム */
@media (max-width: 699px) {
  .wp-point-list__row {
    flex-direction: column;
    gap: 4px;
  }
  .wp-point-list__label {
    min-width: 0;
  }
}

.wp-media {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.wp-stat {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 12px;
  padding: 20px;
  border-radius: 12px;
  background: var(--wp-bg-pale);
}
.wp-stat__label {
  font-size: 1.4rem;
  font-weight: 700;
}
.wp-stat__num {
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: 4.8rem;
  line-height: 1;
  color: var(--wp-base);
}
.wp-stat__unit {
  font-weight: 700;
  color: var(--wp-base);
}
.wp-stat__text {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--wp-base);
  text-align: center;
}

.wp-case {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.wp-case__head {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--wp-line);
}
.wp-case__no {
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 1.9;
  letter-spacing: .16em;
  color: var(--wp-accent);
}
.wp-case__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.9;
}
.wp-case__dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.wp-case__row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.wp-case__row dt {
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-case__row dd {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--wp-txt-body);
}
.wp-case__row--result {
  padding: 16px 18px;
  border-radius: 8px;
  background: var(--wp-bg-green);
}
.wp-case__row--result dt { color: var(--wp-green-dark); }
.wp-case__row--result dd { color: var(--wp-txt); }
.wp-case__note {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.9;
  color: var(--wp-txt-muted);
}

/* ==========================================================================
   事業承継・PMI：流れ / SMART
   ========================================================================== */
.wp-flow__item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px 22px;
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--wp-shadow);
}
.wp-flow__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.wp-flow__step {
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 1.9;
  letter-spacing: .14em;
  color: var(--wp-green-mid);
}
.wp-flow__icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--wp-bg-blue);
  display: grid;
  place-items: center;
}
.wp-flow__title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-flow__text {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.85;
  color: var(--wp-txt-body);
}
.wp-flow__item--last {
  background: var(--wp-base);
  color: #fff;
  box-shadow: 0 10px 28px rgba(1, 104, 183, .22);
}
.wp-flow__item--last .wp-flow__step { color: var(--wp-green-light); }
.wp-flow__item--last .wp-flow__icon { background: rgba(255, 255, 255, .16); }
.wp-flow__item--last .wp-flow__title,
.wp-flow__item--last .wp-flow__text { color: #fff; }

.wp-smart {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 28px;
  align-items: center;
  color: var(--wp-txt);
  transition: box-shadow .3s, border-color .3s;
}
.wp-smart:hover {
  border-color: var(--wp-accent);
  color: var(--wp-txt);
  box-shadow: 0 14px 34px rgba(1, 104, 183, .14);
}
.wp-smart__logo {
  display: grid;
  place-items: center;
}
.wp-smart__logo img {
  display: block;
  width: 203px;
  max-width: 100%;
  height: auto;
}
.wp-smart__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wp-smart__company {
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-smart__name {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  line-height: 1.9;
}
.wp-smart__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}

/* ==========================================================================
   地域課題解決：対象カード
   ========================================================================== */
.wp-split--mb48 {
  margin-bottom: 48px;
}
.wp-target-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wp-target-card__labels {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.wp-target-card__en {
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 1.9;
  letter-spacing: .16em;
  color: var(--wp-accent);
}
.wp-target-card__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.9;
}
.wp-target-card__text {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
  color: var(--wp-txt-body);
}
.wp-dot-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wp-dot-list__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 1.5rem;
  line-height: 1.7;
}
.wp-dot-list__item::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 9px;
  border-radius: 50%;
  background: var(--wp-sub);
}

/* ==========================================================================
   会社概要
   ========================================================================== */
.wp-message {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(40px, 5vw, 72px);
}
.wp-message__body {
  flex: 1 1 480px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.wp-message__catch {
  margin: 0;
  font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .06em;
  color: var(--wp-base);
}
.wp-message__text {
  display: flex;
  flex-direction: column;
  gap: 18px;
  font-size: 1.6rem;
  line-height: 2.05;
  color: var(--wp-txt-body);
}
.wp-message__sign {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--wp-txt-muted);
}
.wp-message__name {
  margin-left: 14px;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--wp-txt);
}
.wp-message__photo {
  position: relative;
  flex: 0 1 380px;
  min-width: 260px;
  max-width: 420px;
  margin: 0 16px 16px 0;
}
.wp-message__photo::before {
  content: "";
  position: absolute;
  inset: 16px -16px -16px 16px;
  border-radius: 12px;
  background: var(--wp-bg-pale);
}
.wp-message__photo img {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 20%;
  border-radius: 12px;
}

.wp-profile {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 3.5vw, 40px);
}
.wp-profile__top {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-bottom: clamp(24px, 3vw, 32px);
  border-bottom: 1px solid var(--wp-line);
}
.wp-profile__id {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 28px;
}
.wp-profile__name {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.wp-profile__name-ja {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: .12em;
}
.wp-profile__name-kana {
  font-size: 1.3rem;
  line-height: 1.9;
  color: var(--wp-txt-muted);
}
.wp-profile__meta {
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--wp-txt-body);
}
.wp-profile__qual {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
}
.wp-profile__qual-label {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--wp-base);
  white-space: nowrap;
}
.wp-profile__detail {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}
.wp-profile__text {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-size: 1.5rem;
  line-height: 2;
  color: var(--wp-txt-body);
}
.wp-history {
  margin: 0;
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--wp-line);
}
.wp-history__row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  padding: 16px 0;
  border-bottom: 1px solid var(--wp-line);
}
.wp-history__row dt {
  flex: 0 0 12.5em;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
  white-space: nowrap;
}
.wp-history__row dd {
  flex: 1 1 260px;
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.8;
}

.wp-block {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.wp-philosophy {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: clamp(32px, 4vw, 48px);
  border-radius: 12px;
  background: var(--wp-base);
  color: #fff;
}
.wp-philosophy__text {
  position: relative;
  margin: 0;
  font-size: clamp(17px, 1.9vw, 20px);
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: .06em;
}
.wp-num-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--wp-line);
}
.wp-num-list__item {
  display: flex;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--wp-line);
  font-size: 1.5rem;
  line-height: 1.85;
}
.wp-num-list__num {
  flex-shrink: 0;
  font-family: "Karla", sans-serif;
  font-weight: 700;
  color: var(--wp-accent);
}

.wp-origin {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wp-origin__word {
  font-family: "Karla", sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1;
  letter-spacing: .08em;
  color: var(--wp-base);
}
.wp-origin__word--green {
  color: var(--wp-green-mid);
}
.wp-origin__text {
  margin: 0;
  font-size: 1.5rem;
  line-height: 2;
  color: var(--wp-txt-body);
}

.wp-dl-table {
  margin: 0;
  border-top: 2px solid var(--wp-base);
}
.wp-dl-table__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 32px;
  padding: 22px 8px;
  border-bottom: 1px solid var(--wp-line);
}
.wp-dl-table__row dt {
  flex: 0 0 9em;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-dl-table__row dd {
  flex: 1 1 300px;
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
}
.wp-note-box {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 20px;
  margin-top: 20px;
  padding: 20px 24px;
  border-radius: 10px;
  background: var(--wp-bg-pale);
}
.wp-note-box__label {
  flex-shrink: 0;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.9;
  color: var(--wp-base);
}
.wp-note-box__text {
  flex: 1 1 300px;
  font-size: 1.4rem;
  line-height: 1.85;
  color: var(--wp-txt-body);
}

.wp-map.embed {
  aspect-ratio: 16 / 7;
  min-height: 320px;
  border-radius: 12px;
  background: var(--wp-bg-blue);
}
.wp-map-address {
  margin: 16px 0 0;
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--wp-txt-muted);
}

/* ==========================================================================
   お問い合わせフォーム
   ========================================================================== */
.wp-form-lead {
  margin: 0 0 16px;
  font-size: 1.5rem;
  line-height: 2;
  color: var(--wp-txt-body);
}
.wp-form-notice {
  margin: 0 0 40px;
  padding: 14px 18px;
  border-radius: 8px;
  background: var(--wp-bg-pale);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.9;
}
/* --------------------------------------------------------------------------
   CMSフォーム（mail-form.css .form-pattern-1）の上書き
   ※CMS側CSSがフォーム出力時に後から読み込まれるため !important で上書きする
   ※入力欄の background は !important にしない（未入力エラー時にCMSがインラインで色を付けるため）
   -------------------------------------------------------------------------- */
.form-contents.form-pattern-1 {
  padding: 0 !important;
  background: none !important;
}
.form-contents.form-pattern-1 form dl {
  margin: 0 !important;
  border-top: 1px solid var(--wp-line) !important;
}
/* 行・項目名 */
.form-contents.form-pattern-1 form dl dt:not(.pattern-exclusion) {
  width: 13em !important;
  padding-top: 36px !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  line-height: 1.9 !important;
  color: var(--wp-txt) !important;
}
.form-contents.form-pattern-1 form dl dd:not(.pattern-exclusion) {
  padding: 22px 0 22px 13em !important;
  border-bottom: 1px solid var(--wp-line) !important;
  font-size: 1.5rem !important;
  line-height: 1.9 !important;
}
.form-contents.form-pattern-1 form dl dt:not(.pattern-exclusion) span {
  display: inline-flex !important;
  align-items: center !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}
/* 必須・任意バッジ */
.form-contents.form-pattern-1 dl dt:not(.pattern-exclusion) span::before {
  top: 0 !important;
  margin-right: 10px !important;
  padding: 1px 8px !important;
  border-radius: 4px !important;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
  line-height: 1.9 !important;
}
.form-contents.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  background: var(--wp-base) !important;
  color: #fff !important;
}
.form-contents.form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before {
  content: "任意" !important;
  background: var(--wp-line) !important;
  color: var(--wp-txt-muted) !important;
}
/* 入力欄 */
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea,
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect,
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea-date,
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea-time,
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea-datetime,
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea-datetimepicker {
  height: auto !important;
  min-height: 58px !important;
  padding: 14px 16px !important;
  border: 1px solid #c9dbe9 !important;
  border-radius: 8px !important;
  background: #fbfdff;
  font-family: inherit !important;
  font-size: 1.6rem !important;
  line-height: 1.8 !important;
  outline: none !important;
  transition: border-color .2s, box-shadow .2s !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) textarea.textarea {
  min-height: 220px !important;
  resize: vertical !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea:focus,
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect:focus {
  border-color: var(--wp-base) !important;
  box-shadow: 0 0 0 3px rgba(1, 104, 183, .12) !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .textarea::placeholder {
  color: #9aa8b5 !important;
}
/* エラー表示 */
.form-contents.form-pattern-1 .form-err-msg {
  margin: 0 0 32px !important;
  padding: 16px 20px !important;
  border: 1px solid #e26d6d !important;
  border-radius: 8px !important;
  background: #fff5f5 !important;
  color: #c93a3a !important;
  font-size: 1.4rem !important;
  line-height: 1.9 !important;
}
/* ファイル添付欄 */
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .upload-area {
  border: 2px dashed #c9dbe9 !important;
  border-radius: 8px !important;
  background: var(--wp-bg-pale) !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .upload-area .upload-msg p {
  color: var(--wp-txt-muted) !important;
  font-size: 1.4rem !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button {
  width: min(100%, 260px) !important;
  padding: 10px 0 !important;
  border: 1px solid var(--wp-line-blue) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--wp-base) !important;
  font-size: 1.4rem !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button::before {
  background-color: var(--wp-base) !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button:hover {
  background: var(--wp-bg-blue) !important;
}
.form-contents.form-pattern-1 dd:not(.pattern-exclusion) .input-file-clear {
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--wp-txt-muted) !important;
  color: #fff !important;
}
/* 送信ボタン（.wp-btn-expand と同じデザイン。黄緑の丸＝::after、メールアイコン＝::before） */
.form-contents.form-pattern-1 .submit-btn {
  position: relative !important;
  z-index: 0 !important;
  isolation: isolate !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: min(100%, 320px) !important;
  height: 68px !important;
  margin: 44px auto 0 !important;
  padding: 0 40px 0 96px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--wp-txt) !important;
  font-family: inherit !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  white-space: nowrap !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .09) !important;
  transition: box-shadow .45s, color .35s .1s !important;
}
.form-contents.form-pattern-1 .submit-btn::after {
  content: "" !important;
  position: absolute !important;
  z-index: -1 !important;
  left: 4px !important;
  top: 4px !important;
  bottom: 4px !important;
  width: 60px !important;
  border-radius: 999px !important;
  background: var(--wp-sub) !important;
  transition: width .5s cubic-bezier(.65, 0, .35, 1) !important;
}
.form-contents.form-pattern-1 .submit-btn::before {
  position: absolute !important;
  left: 25px !important;
  top: 50% !important;
  width: 18px !important;
  height: 18px !important;
  margin: -9px 0 0 !important;
  background-color: #fff !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
}
.form-contents.form-pattern-1 .submit-btn:hover {
  background: #fff !important;
  color: #fff !important;
  box-shadow: 0 0 0 6px #fff, 0 12px 26px rgba(0, 0, 0, .12) !important;
}
.form-contents.form-pattern-1 .submit-btn:hover::after {
  width: calc(100% - 8px) !important;
}
/* 送信完了メッセージ（CMS標準の完了表示を使う場合） */
.form-contents.form-pattern-1 .form-thanks-msg {
  padding: clamp(32px, 5vw, 48px) !important;
  border: 1px solid var(--wp-line-blue) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: var(--wp-shadow) !important;
  font-size: 1.5rem !important;
  line-height: 2 !important;
}
.form-contents.form-pattern-1 .form-thanks-msg .back-home-btn a {
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--wp-base) !important;
  color: #fff !important;
}
.form-contents.form-pattern-1 .form-thanks-msg .back-home-btn a:hover {
  background: var(--wp-accent) !important;
}
@media (max-width: 1024px) {
  .form-contents.form-pattern-1 form dl dt:not(.pattern-exclusion) {
    width: 100% !important;
    margin-bottom: 0 !important;
    padding-top: 22px !important;
  }
  .form-contents.form-pattern-1 form dl dd:not(.pattern-exclusion) {
    padding: 8px 0 22px !important;
  }
}
@media (max-width: 699px) {
  .form-contents.form-pattern-1 .submit-btn {
    width: 100% !important;
    max-width: 360px !important;
    min-width: 0 !important;
    padding: 0 16px 0 80px !important;
    font-size: 1.4rem !important;
    letter-spacing: .04em !important;
  }
}

/* ==========================================================================
   ブログ（一覧・詳細）
   ========================================================================== */
.wp-blog {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(40px, 5vw, 64px);
}
.wp-blog__main {
  flex: 1 1 560px;
  min-width: 0;
}
.wp-blog__side {
  flex: 0 1 300px;
  min-width: 260px;
  display: flex;
  flex-direction: column;
  gap: 36px;
}
@media (max-width: 639px) {
  .wp-blog__side { min-width: 0; flex-basis: 100%; }
}

.wp-entry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  gap: 32px 24px;
}
.wp-entry-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  color: var(--wp-txt);
  transition: none;
}
.wp-entry-card:hover {
  color: var(--wp-base);
}
.wp-entry-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 10px;
}
.wp-entry-card__date,
.wp-article__date {
  font-family: "Karla", sans-serif;
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.9;
  color: var(--wp-txt-muted);
}
.wp-entry-card__title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.7;
}

.wp-pagination.pagination {
  margin: 56px 0 0;
}
.wp-pagination .pagination__link {
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--wp-line-blue);
  border-radius: 50%;
  font-family: "Karla", sans-serif;
  font-weight: 700;
  color: var(--wp-txt);
}
.wp-pagination .pagination__link:hover {
  border-color: var(--wp-base);
  color: var(--wp-base);
}
.wp-pagination .pagination__link.is-current {
  border-color: var(--wp-base);
  background: var(--wp-base);
  color: #fff;
}
.wp-pagination .pagination__link--next {
  color: var(--wp-base);
}

.wp-side-block {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.wp-side-block__title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--wp-base);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.9;
}
.wp-side-block__en {
  font-family: "Karla", sans-serif;
  font-size: 1.2rem;
  letter-spacing: .14em;
  color: var(--wp-accent);
}
.wp-side-block__item {
  border-bottom: 1px solid var(--wp-line);
}
.wp-side-block__link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 4px;
  color: var(--wp-txt);
  transition: none;
}
.wp-side-block__link:hover {
  color: var(--wp-base);
}
.wp-side-block__link--row {
  flex-direction: row;
  justify-content: space-between;
  font-size: 1.4rem;
  line-height: 1.9;
}
.wp-side-block__date,
.wp-side-block__count {
  font-family: "Karla", sans-serif;
  font-size: 1.2rem;
  line-height: 1.9;
  color: var(--wp-txt-muted);
}
.wp-side-block__count {
  font-size: 1.4rem;
}
.wp-side-block__name {
  font-size: 1.4rem;
  line-height: 1.7;
}

.wp-article {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.wp-article__title {
  margin: 0;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--wp-line);
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .04em;
}
.wp-article__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 12px;
}
.wp-article__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-size: 1.6rem;
  line-height: 2.05;
  color: var(--wp-txt-body);
}
.wp-article__body h2 {
  margin: 12px 0 0;
  padding-left: 14px;
  border-left: 4px solid var(--wp-base);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--wp-txt);
}
.wp-article__body img {
  border-radius: 12px;
}
.wp-article__back {
  display: flex;
  justify-content: center;
  margin-top: 24px;
  padding-top: 32px;
  border-top: 1px solid var(--wp-line);
}

/* ==========================================================================
   object-position
   ========================================================================== */
.wp-objpos-60-50 { object-position: 60% 50%; }
.wp-objpos-45-60 { object-position: 45% 60%; }

/* ==========================================================================
   ページトップボタン（アイコン）
   ========================================================================== */
.page-top__link::before {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f077";
  font-size: 18px;
  line-height: 1;
}

/* ==========================================================================
   リード文をPC時に指定位置で改行（regional.php ABOUT）
   本文列を文章幅（max-content）に合わせ、画像列が残りを使う
   ========================================================================== */
@media (min-width: 897px) {
  .wp-split--lead-pc {
    grid-template-columns: max-content minmax(0, 1fr);
  }
  .wp-lead--nowrap-pc {
    white-space: nowrap;
  }
}

/* ==========================================================================
   TOP：ステージ見出しのリード文をPC時に指定位置で改行
   ========================================================================== */
@media (min-width: 897px) {
  .wp-head-visual__lead--nowrap-pc {
    max-width: none;
    white-space: nowrap;
  }
}

/* ==========================================================================
   文字組み（1文字だけ次の行に落ちるのを防ぐ）
   ========================================================================== */
/* auto-phrase：日本語を文節単位で改行（「ます。」だけが次行に落ちるのを防ぐ。非対応ブラウザは通常の改行） */
body {
  text-wrap: pretty;
  word-break: auto-phrase;
}
h1, h2, h3,
.wp-heading__ja,
.wp-page-hero__title {
  text-wrap: balance;
}

/* ==========================================================================
   改行の切り替え（スマホ＝699px以下）
   .wp-br-sp：スマホのみ改行 / .wp-br-pc：PC・タブレットのみ改行
   ========================================================================== */
.wp-br-sp {
  display: none;
}
@media (max-width: 699px) {
  .wp-br-sp {
    display: inline;
  }
  .wp-br-pc {
    display: none;
  }
}

/* ==========================================================================
   ボタン：文字を改行させない／スマホ時は横幅をそろえる
   ========================================================================== */
.wp-btn-expand,
.wp-btn-expand__label {
  white-space: nowrap;
}
@media (max-width: 699px) {
  .wp-btn-expand {
    width: 100%;
    max-width: 360px;
    min-width: 0;
    padding: 0 16px 0 80px;
    font-size: 1.4rem;
    letter-spacing: .04em;
  }
}

/* ==========================================================================
   スマホ：フッターナビ非表示
   ========================================================================== */
@media (max-width: 699px) {
  .wp-footer__nav {
    display: none;
  }
}

/* ==========================================================================
   スマホ：MVを全画面に（100svh − ヘッダー高さ）。キャッチ・サブコピーのサイズ調整
   ========================================================================== */
@media (max-width: 699px) {
  .wp-mv #slideshow {
    height: calc(100vh - var(--wp-header-h));
    height: calc(100svh - var(--wp-header-h));
    min-height: 0;
    max-height: none;
  }
  .wp-mv__catch {
    font-size: min(2.2rem, calc((100vw - 32px) / 13.6));
  }
  .wp-mv__sub {
    font-size: 1.5rem;
    letter-spacing: .04em;
  }
}

/* ==========================================================================
   送信完了ページ（thanks.php）
   ========================================================================== */
.wp-thanks {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  text-align: center;
}
.wp-thanks__title {
  margin: 0;
  font-size: clamp(20px, 2.6vw, 26px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .05em;
  color: var(--wp-base);
}
.wp-thanks__text {
  margin: 0;
  font-size: 1.5rem;
  line-height: 2;
  color: var(--wp-txt-body);
}
.wp-thanks__info {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 16px;
  margin: 0;
  padding: 16px 28px;
  border-radius: 10px;
  background: var(--wp-bg-pale);
  font-size: 1.5rem;
  line-height: 1.9;
}
.wp-thanks__info dt {
  font-weight: 700;
  color: var(--wp-base);
}
.wp-thanks__info dd {
  margin: 0;
}
.wp-thanks .d-flex {
  width: 100%;
  margin-top: 8px;
}
