/*
 * WARNING: このファイルは SWELL 親テーマのクラス名に依存しています
 * 最終確認バージョン: SWELL 2.x
 */

/* SWELL のページタイトル枠を非表示(固定ページのみ) */
.page .p-pageTitle,
.page .c-pageTitle {
  display: none !important;
}

/* ヒーローセクションを全幅に強制 (SWELL のコンテンツ幅制限を打ち破る) */
.kc-hero {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: none !important;
  position: relative;
  overflow: hidden;
}

/* 他の主要セクションも全幅化(必要に応じて) */
.kc-section--full-bleed,
.kc-fullwidth-photo,
.kc-footer-skyline {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: none !important;
}

/* WordPress 管理バーがあるときの上部オフセット調整 */
.admin-bar .kc-hero {
  /* 必要なら追加 */
}

/* ヒーロー直前のSWELLコンテンツ余白を打ち消す(フロントページ限定) */
.home .l-mainContent,
.home .l-content,
.home .post_content,
.home article {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* SWELL のページタイトル領域があれば固定ページのときは非表示 */
.page .l-mainContent > .p-pageTitle,
.page .l-mainContent > .c-pageTitle,
.page .l-pageTitle {
  display: none !important;
}

/* article 内の最初の要素の上余白を打ち消す */
.home .post_content > *:first-child {
  margin-top: 0 !important;
}

/* ポートレート枠を取り去って写真だけ表示 */
.kc-hero__portrait {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.kc-hero__portrait img {
  border-radius: 0 !important;
}

/* ポートレートを大きく(intro-areaのバランスを保ちつつ) */
.kc-hero__portrait {
  max-width: 560px !important;  /* 元の420px から拡大 */
  width: 100% !important;
}

@media (max-width: 1023px) {
  .kc-hero__portrait {
    max-width: 380px !important;  /* タブレットでは少し抑える */
  }
}

@media (max-width: 767px) {
  .kc-hero__portrait {
    max-width: 280px !important;  /* スマホではさらに抑える */
  }
}

/* About セクションを全幅に */
.kc-section,
section.kc-section {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: none !important;
  position: relative;
  overflow: hidden;
}



/* About セクション: split レイアウトの右カラムを広げる */
.kc-section--split .kc-section__split-layout {
  grid-template-columns: 200px 5fr !important;
  gap: var(--kc-space-2xl) !important;
}

/* About セクション: 縦書き見出しを大きく */
.kc-section--split .kc-section__title-main,
.kc-section--split .kc-section__title-vertical .kc-section__title-main {
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  line-height: 1.4 !important;
}

/* サブタイトル「保育の現場から、まちづくりへ」も少し大きく */
.kc-section--split .kc-section__title-sub {
  font-size: clamp(1rem, 1.4vw, 1.25rem) !important;
}

/* About セクション全体を白基調に */
.kc-section--subtle#about,
section#about.kc-section,
section#about {
  background: #FFFFFF !important;
}

/* ========================================
 * スマホ表示の修正
 * ======================================== */

/* 1. ポートレートに blob が被るのを防ぐ */
@media (max-width: 767px) {
  .kc-hero__portrait {
    position: relative;
    z-index: 2;
  }

  .kc-hero__portrait img {
    position: relative;
    z-index: 2;
  }

  .kc-blob {
    z-index: 0;
  }
}

/* 2. kc-hero__lead の不自然な改行を無効化 + 両端揃え */
@media (max-width: 767px) {
  .kc-hero__lead {
    text-align: justify;
    text-justify: inter-character;
  }

  .kc-hero__lead br {
    display: none;
  }
}

/* スマホでintro-areaに左右余白を確保(画面端への張り付き解消・.l-article基準17pxに揃える) */
@media (max-width: 767px) {
  .kc-hero__intro-area {
    padding-inline: 17px;
    box-sizing: border-box;
  }
}

/* 3. タブレット以下で split レイアウトを1カラムに */
@media (max-width: 1023px) {
  .kc-section--split .kc-section__split-layout {
    grid-template-columns: 1fr !important;
    gap: var(--kc-space-2xl) !important;
  }
}



/* スマホでコラージュを均等な2列グリッドに(1番目と3番目の span 2 を打ち消し) */
@media (max-width: 767px) {
  .kc-collage-item:nth-child(1),
  .kc-collage-item:nth-child(3) {
    grid-column: span 1 !important;
  }
}

/* スマホで歩みコラージュを1列に縦積み(片寄り解消・語彙集 Part 2-4 モバイル解除) */
@media (max-width: 767px) {
  .kc-story__collage {
    grid-template-columns: 1fr;
  }
}

/* 歩みと政策のカードリスト左パディングを除去(SWELL親の .post_content ol/ul が
   var(--swl-list-padding--left)≈23px を当ててカードが右寄りになる問題の解消)
   セレクタは .post_content を含めて SWELL のルールと specificity を揃え、後発で勝たせる。
   案件依存のため overrides.css 内に置く。!important 不使用 */
.post_content .kc-story__list,
.post_content .kc-policy-grid {
  padding-left: 0;
}

/* 政策カードの中央強調(グラデーション)を無効化 */
.kc-policy-card--center {
  background: var(--kc-color-bg-card) !important;
  background-image: none !important;
  border-color: var(--kc-color-border-subtle) !important;
}

/* ========================================
 * 重点政策セクション: 見出し折り返し&余白の追加調整
 * ======================================== */

/* 政策カードの見出しを1行に収める(より強力な指定) */
.kc-policy-card h3,
.kc-policy-card__title,
.kc-policy-card__heading,
.kc-policy-card .kc-policy-card__title,
.kc-policy-grid .kc-policy-card h3 {
  font-size: 0.95rem !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  letter-spacing: 0 !important;
}

/* タブレット以下では折り返しを許可(画面幅に応じて) */
@media (max-width: 1023px) {
  .kc-policy-card h3,
  .kc-policy-card__title,
  .kc-policy-card__heading,
  .kc-policy-card .kc-policy-card__title {
    white-space: normal !important;
    font-size: 1rem !important;
  }
}

/* セクション余白をさらに引き締める */
#policies.kc-section,
section#policies.kc-section,
section#policies {
  padding-top: var(--kc-space-2xl) !important;
  padding-bottom: var(--kc-space-2xl) !important;
}

/* セクション見出し「これからの武蔵村山へ」周辺の余白 */
#policies .kc-section__header,
#policies .kc-section__header--featured {
  margin-bottom: var(--kc-space-lg) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#policies .kc-section__title-large {
  margin-top: 0 !important;
  margin-bottom: var(--kc-space-sm) !important;
}

/* 政策カードグリッド下の余白 */
#policies .kc-policy-grid {
  margin-bottom: 0 !important;
}

/* SWELL投稿リスト: タイトルのみ明朝体化 */
.p-postList__title {
  font-family: var(--kc-font-serif) !important;
  font-weight: 600 !important;
}

/* SWELL投稿リスト: カテゴリラベルをピンクトーンに */
.c-postThumb__cat {
  background: var(--kc-color-pink-50) !important;
  color: var(--kc-color-pink-600) !important;
}

/* SWELL投稿リスト: カードに上品な影と角丸を追加 */
.p-postList.-type-card .p-postList__item {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border-radius: var(--kc-radius-lg);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.p-postList.-type-card .p-postList__item:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

/* SWELL投稿リスト: シンプルな影と角丸(高さに影響しない) */
.p-postList.-type-card .p-postList__item {
  border-radius: var(--kc-radius-lg);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.p-postList.-type-card .p-postList__link {
  border-radius: var(--kc-radius-lg);
  overflow: hidden;
}

/* フルワイド写真バンドの上下paddingを広げる */
.swell-block-fullWide.has-bg-img {
  padding-top: 200px !important;
  padding-bottom: 200px !important;
}

@media (max-width: 767px) {
  .swell-block-fullWide.has-bg-img {
    padding-top: 120px !important;
    padding-bottom: 120px !important;
  }
}

/* SWELL自動の「©」アイコンを非表示(自分でコピーライト表示を制御するため) */
.l-footer__foot .copyright > span[lang="en"]:first-child {
  display: none;
}


/* ========================================
 * フッターウィジェット(独自構築・カスタムHTML 1個用)
 * ======================================== */
.kc-footer-widgets {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 60px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 32px;
}

.kc-footer-widgets ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.kc-footer-widgets__title {
  font-family: var(--kc-font-serif);
  font-size: 0.875rem;
  color: var(--kc-color-pink-600);
  letter-spacing: 0.1em;
  margin: 0 0 16px 0;
  font-weight: 600;
}

.kc-footer-widgets__brand-name {
  font-family: var(--kc-font-serif);
  font-size: 1.75rem;
  margin: 0 0 8px 0;
  color: var(--kc-color-text-primary);
}

.kc-footer-widgets__brand-tagline {
  font-size: 0.875rem;
  color: var(--kc-color-text-secondary);
  margin: 0;
}

.kc-footer-widgets li {
  margin-bottom: 12px;
}

.kc-footer-widgets a {
  color: var(--kc-color-text-primary);
  text-decoration: none;
  font-size: 0.9375rem;
  transition: color 0.2s ease;
}

.kc-footer-widgets a:hover {
  color: var(--kc-color-pink-600);
}

@media (max-width: 767px) {
  .kc-footer-widgets {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 48px 24px;
  }
}

/* フッターウィジェットエリアの背景をフッター本体と統一 */
.l-footer__widgetArea {
  background: transparent !important;
}

.kc-footer-widgets {
  background: transparent;
}

/* フッター全体を #F7F3EE に統一 */
.l-footer,
.l-footer__inner,
.l-footer__foot {
  background: #F7F3EE !important;
}

/* フッター直前ウィジェット(.w-beforeFooter)の背景色をフッターと統一 */
.w-beforeFooter {
  background: #F7F3EE !important;
}

/* フッター直前ウィジェット背景を #F4ECE6 に */
.w-beforeFooter {
  background: #F4ECE6 !important;
}

/* フッター直前ウィジェット背景を #F4ECE6 に */
.w-beforeFooter {
  background: #F4ECE6 !important;
}

/* フッター直前ウィジェット背景を #FAF7F3 に */
body .w-beforeFooter,
body #before_footer_widget.w-beforeFooter {
  background: #FAF7F3 !important;
  background-color: #FAF7F3 !important;
}

/* フッター直前ウィジェットの上端に街並み画像を疑似要素で配置 */
.w-beforeFooter {
  position: relative;
  padding-top: 280px !important;
}

.w-beforeFooter::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 280px;
  background-image: url("https://shimizu-ayako.com/wp-content/uploads/2026/06/town2-scaled.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
  pointer-events: none;
}

/* スマホ */
@media (max-width: 767px) {
  .w-beforeFooter {
    padding-top: 140px !important;
  }
  .w-beforeFooter::before {
    height: 140px;
  }
}

/* 街並み画像の表示方法を横幅100%で固定 */
.w-beforeFooter::before {
  background-size: 100% auto !important;
  background-position: center bottom !important;
}

/* フッター直前ウィジェット本体: 3カラムエリアを街並みと同じ色に */
body .w-beforeFooter,
body #before_footer_widget.w-beforeFooter {
  background: #F4ECE6 !important;
  background-color: #F4ECE6 !important;
}

/* 街並みエリア(::before)の背景: 裏側の色 */
.w-beforeFooter::before {
  background-color: #FBF7F4 !important;
}

/* ウィジェットエリアの背景色を #F5F0EB に微調整 */
body .w-beforeFooter,
body #before_footer_widget.w-beforeFooter {
  background: #F5F0EB !important;
  background-color: #F5F0EB !important;
}

/* 街並みエリア(::before)の背景を白に変更 */
.w-beforeFooter::before {
  background-color: #ffffff !important;
}

/* フッター直前ウィジェットの上マージンを0に */
#before_footer_widget {
  margin-top: 0 !important;
}

/* トップページ(page-id-29)だけ #content の下マージンを0に */
.page-id-29 #content {
  margin-bottom: 0 !important;
}

/* スマホで街並みを適切なサイズで表示(左右見切れOK) */
@media (max-width: 767px) {
  .w-beforeFooter {
    padding-top: 140px !important;
    overflow: hidden;
  }
  .w-beforeFooter::before {
    height: 140px !important;
    background-size: auto 140px !important;
    background-position: center bottom !important;
    background-repeat: no-repeat !important;
  }
}

/* スマホ: フルワイド内側の .l-article に下パディングを追加 */
@media (max-width: 767px) {
  .page-id-29 .swell-block-fullWide__inner.l-article {
    padding-bottom: 80px !important;
  }
}

/* ヘッダーロゴのフォントを全ページで明朝体に統一 */
.c-headLogo,
.c-headLogo__link {
  font-family: var(--kc-font-serif) !important;
}

/* トップページのみ(page-id-29)タイトルを非表示、他ページは表示 */
.page-id-29 .p-pageTitle,
.page-id-29 .c-pageTitle,
.page-id-29 .l-pageTitle {
  display: none !important;
}

/* 他の固定ページではタイトルを表示する(以前の非表示指定を打ち消す) */
.page:not(.page-id-29) .p-pageTitle,
.page:not(.page-id-29) .c-pageTitle,
.page:not(.page-id-29) .l-pageTitle {
  display: block !important;
}

/* ========================================
 * 政策ページ: カテゴリ帯とアコーディオンの装飾
 * ======================================== */

/* カテゴリ帯: 白⇄薄ベージュの交互リズム */
.kc-shimizu-policy-cat {
  background-color: #FFFFFF !important;
}

.kc-shimizu-policy-cat.kc-shimizu-policy-cat--alt {
  background-color: var(--kc-color-bg-subtle, #FAF7F2) !important;
}

/* eyebrow(英字小ラベル): トップページと同じ型 */
.kc-policy-eyebrow {
  font-size: 0.8125rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--kc-color-pink-600, #993556);
  margin-bottom: 4px !important;
}

/* カテゴリ見出し: 明朝体・大きめ */
.kc-policy-cat-title {
  font-family: var(--kc-font-serif) !important;
  font-weight: 600 !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  letter-spacing: 0.06em;
  margin-top: 0 !important;
}

/* リード文 */
.kc-policy-cat-lead {
  color: var(--kc-color-text-secondary);
  margin-bottom: var(--kc-space-xl) !important;
}

/* アコーディオン: 全体を上品に(無装飾寄り) */
.kc-shimizu-policy-cat .swell-block-accordion__item {
  background: #FFFFFF;
  border: 1px solid var(--kc-color-border-subtle);
  border-radius: var(--kc-radius-lg, 12px);
  margin-bottom: var(--kc-space-md, 16px);
  overflow: hidden;
}

.kc-shimizu-policy-cat .swell-block-accordion__title {
  font-family: var(--kc-font-serif);
  font-weight: 600;
  padding: 18px 20px;
}

/* ラベル内のサマリー(br後のテキスト)を小さく薄く */
.kc-shimizu-policy-cat .swell-block-accordion__label {
  font-size: 1.0625rem;
  line-height: 1.6;
}

/* 行長制限: 本文の可読性のため、政策アコーディオン本文を約40全角字で折り返す（軸7）
   margin-inline: auto で左右余白を均等にして中央寄せ（揃えの規律・軸4） */
.kc-shimizu-policy-cat .swell-block-accordion__body :is(p, li, dd) {
  max-width: 40em;
  margin-inline: auto;
}

/* 重点政策: 左ボーダー + ★色 */
.kc-shimizu-policy-cat .swell-block-accordion__item.kc-policy-featured {
  border-left: 3px solid var(--kc-color-pink-400, #D4537E);
}

/* スマホ調整 */
@media (max-width: 767px) {
  .kc-shimizu-policy-cat .swell-block-accordion__title {
    padding: 14px 16px;
  }
}

/* 重点政策: border-left をやめ、ピルバッジ方式に(投稿リストのカテゴリラベルと同じ意匠) */
.kc-shimizu-policy-cat .swell-block-accordion__item.kc-policy-featured {
  border-left: 1px solid var(--kc-color-border-subtle);
}

.kc-policy-featured .swell-block-accordion__title::before {
  content: "重点政策";
  display: inline-block;
  flex-shrink: 0;
  align-self: center;
  font-family: var(--kc-font-sans);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--kc-color-pink-600, #993556);
  background: var(--kc-color-pink-50, #FBEAF0);
  border-radius: 999px;
  padding: 2px 10px;
  margin-right: 10px;
  white-space: nowrap;
}

/* ========================================
 * プロフィールページ
 * ======================================== */

/* 生い立ちの章見出し: 明朝体・控えめな下罫線 */
.kc-prof-h3 {
  font-family: var(--kc-font-serif) !important;
  font-weight: 600 !important;
  font-size: 1.1875rem !important;
  letter-spacing: 0.06em;
  padding-bottom: 8px;
  border-bottom: 1px dotted var(--kc-color-border-subtle);
  margin-top: var(--kc-space-2xl) !important;
}

/* 基本プロフィール表: 無装飾寄りの整然とした表 */
.kc-prof-dl .swell-block-dl__dt {
  font-family: var(--kc-font-serif);
  font-weight: 600;
  color: var(--kc-color-text-primary);
}

.kc-prof-dl .swell-block-dl__dt,
.kc-prof-dl .swell-block-dl__dd {
  padding-top: 14px;
  padding-bottom: 14px;
  border-bottom: 1px dotted var(--kc-color-border-subtle);
}

/* 締めのコピー帯 */
.kc-prof-closing {
  background-color: #FFFFFF !important;
}

.kc-prof-closing-copy {
  font-family: var(--kc-font-serif);
  font-weight: 600;
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  letter-spacing: 0.12em;
  color: var(--kc-color-pink-600, #993556);
  margin: 0 !important;
}

/* ========================================
 * プロフィールページ: 余白とリズムの改善
 * ======================================== */

/* セクション帯の余白を広げて箱詰め感を解消 */
@media (min-width: 960px) {
  .kc-shimizu-policy-cat.pc-py-60 {
    padding-top: 110px;
    padding-bottom: 110px;
  }
}

/* 生い立ちの本文: 読みやすい行長に絞る(章見出し以降の段落) */
.kc-prof-h3 ~ p {
  max-width: 42em;
}

/* 写真: 上品な角丸と控えめな影 */
.kc-prof-photo img {
  border-radius: var(--kc-radius-lg, 12px);
  box-shadow: 0 8px 28px rgba(40, 30, 25, 0.10);
}

@media (max-width: 767px) {
  .kc-prof-photo {
    float: none !important;
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ========================================
 * スクロールリビール(JSがクラスを付与した要素のみ対象)
 * ======================================== */
.kc-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

.kc-reveal.is-inview {
  opacity: 1;
  transform: translateY(0);
}

/* ========================================
 * グローバルナビ: フォントサイズ拡大(通常+固定ヘッダー共通)
 * ======================================== */
.c-gnav > .menu-item > a .ttl {
  font-size: 1.0625rem; /* 17px相当。物足りなければ 1.125rem(18px)に */
  letter-spacing: 0.05em;
}

/* ========================================
 * 歩みセクションの引用句: 枠をやめ、余白と透かしで余韻を作る
 * ======================================== */
.kc-story__quote {
  border-left: none !important;
  border: none !important;
  background: none !important;
  position: relative;
  text-align: center;
  max-width: 40em;
  margin: clamp(56px, 9vw, 96px) auto;
  padding: 0 24px;
}

/* 透かしの大きな鉤括弧(装飾はこの1点のみ) */
.kc-story__quote::before {
  content: "「";
  position: absolute;
  top: -0.55em;
  left: -0.05em;
  font-family: var(--kc-font-serif);
  font-size: clamp(4rem, 9vw, 6.5rem);
  line-height: 1;
  color: var(--kc-color-pink-400, #D4537E);
  opacity: 0.14;
  pointer-events: none;
}

.kc-story__quote-text {
  font-family: var(--kc-font-serif);
  font-weight: 600;
  font-size: clamp(1.25rem, 2.6vw, 1.625rem);
  letter-spacing: 0.1em;
  line-height: 2;
  color: var(--kc-color-text-primary);
  margin: 0;
}

.kc-story__quote-note {
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  color: var(--kc-color-text-secondary);
  margin: 18px 0 0;
}

/* アンカー遷移時に固定ヘッダーで隠れないように */
html {
  scroll-padding-top: 110px;
}

/* 「これからの武蔵村山へ」見出し: SWELL見出しスタイル由来の下線を除去
 * (kc-section__title-large::after の中央60px線だけを残す) */
#policies .kc-section__title-large {
  border-bottom: none !important;
  background: none !important;
}

#policies .kc-section__title-large::before {
  content: none !important;
  display: none !important;
}

/* ========================================
 * ヒーロー: PC表示でファーストビューにボタンまで収める
 * (高さをvh連動にして画面サイズ差に強くする)
 * ======================================== */
@media (min-width: 1024px) {
  .kc-hero {
    padding: calc(72px + 24px) 0 28px !important;
  }

  .kc-hero__right {
    gap: clamp(20px, 4vh, 48px) !important;
  }

  .kc-hero__title-area {
    height: min(48vh, 480px) !important;
    max-height: 480px !important;
  }

  /* 縦書き文字を画面高さに連動(箱に対する溢れを防ぐ) */
  .kc-hero__name-vertical {
    font-size: clamp(2.75rem, 7.5vh, 4.5rem) !important;
  }

  .kc-hero__tagline-vertical {
    font-size: clamp(1rem, 2.4vh, 1.375rem) !important;
    letter-spacing: 0.12em !important;
  }

  /* ポートレートも画面高さでキャップ(4:5比率なので幅52vh=高さ65vh) */
  .kc-hero__portrait {
    max-width: min(560px, 52vh) !important;
  }
}

/* ヒーロー: ヘッダーが通常配置のため、その分を差し引いた高さにする */
@media (min-width: 1024px) {
  .kc-hero {
    min-height: calc(100vh - 165px) !important;
    padding: 24px 0 28px !important;
  }

  .kc-hero__title-area {
    height: min(44vh, 440px) !important;
  }
}


/* ========================================
 * ヒーロー(ブロック版): 本番にあった装飾blobを擬似要素で再現
 * 数値レイアウトは本番CSSで一致済み。ここは背景装飾のみ追加。
 * ======================================== */
.kc-hero {
  position: relative;
  overflow: hidden;
}

/* コンテンツをblobより前面に */
.kc-hero__layout {
  position: relative;
  z-index: 1;
}

/* ========================================
 * ヒーローボタン: 本番 kc-button の意匠をSWELLボタンに移植
 * solid=primary(ピンク塗り pink-400) / line=secondary(白地+細線)
 * SWELLデフォルト(pink-600・radius80px)を上書き
 * ======================================== */
.kc-hero__actions .swell-block-button { margin: 0 !important; }

.kc-hero__actions .swell-block-button__link {
  border-radius: var(--kc-radius-md) !important;
  font-family: var(--kc-font-sans) !important;
  font-size: var(--kc-font-size-lg) !important;
  font-weight: var(--kc-font-weight-medium) !important;
  padding: var(--kc-space-md) var(--kc-space-2xl) !important;
  border: 1px solid transparent !important;
  transition: transform 0.4s ease, box-shadow 0.4s ease, background-color 0.4s ease !important;
}

/* primary(歩みを知る): ピンク塗り pink-400 */
.kc-hero__actions .is-style-btn_solid .swell-block-button__link {
  background: var(--kc-color-pink-400) !important;
  color: var(--kc-color-text-inverse, #fff) !important;
  box-shadow: 0 2px 8px rgba(212,83,126,0.25) !important;
}
.kc-hero__actions .is-style-btn_solid .swell-block-button__link:hover {
  background: var(--kc-color-pink-600) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(212,83,126,0.35) !important;
}

/* secondary(応援する): 白地+細線 */
.kc-hero__actions .is-style-btn_line .swell-block-button__link {
  background: var(--kc-color-bg-card, #fff) !important;
  color: var(--kc-color-text-primary) !important;
  border-color: var(--kc-color-border-default) !important;
  box-shadow: var(--kc-shadow-soft) !important;
}
.kc-hero__actions .is-style-btn_line .swell-block-button__link:hover {
  background: var(--kc-color-pink-50) !important;
  border-color: var(--kc-color-pink-400) !important;
  color: var(--kc-color-pink-600) !important;
  transform: translateY(-2px);
}

/* スマホ: ヒーローのボタン2つを縦積み・同幅に揃える(siblingWidthMismatch 84px差の解消)
   親を flex-direction:column + align-items:stretch にし、子ボタンが親の幅いっぱいになる。
   PC/タブレットの横並びは無変更 */
@media (max-width: 767px) {
  .kc-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }
}

/* ヒーロー: layoutを本番の .kc-container--wide 相当(max1216px・中央寄せ)に */
.kc-hero__layout {
  max-width: 1216px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* ヒーロー: layoutのpaddingを除去(本番の.kc-container--wideにpaddingは無い) */
.kc-hero__layout {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ヒーロー写真: 本番と同じ縦長比率(4:5、高さ655相当)にする */
.kc-hero__portrait img {
  width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  height: auto !important;
}

/* ヒーロー: キャッチを名前より48px下げる(本番の title-column--tagline の padding-top相当) */
.kc-hero__tagline-vertical {
  padding-top: 48px !important;
}

/* ヒーロー: キャッチをflex内で48px下げる(padding-topは縦書きで内側に入るためmarginを使う) */
.kc-hero__title-area .kc-hero__tagline-vertical {
  padding-top: 0 !important;
  margin-top: 48px !important;
}

/* ========================================
 * ヒーロー装飾(JS動的生成 + パララックス)
 * .kc-hero__deco-* はJSがヒーローに挿入する実要素
 * ======================================== */
.kc-hero__deco {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  will-change: transform;
}

/* blob: pink-warm(右上) */
.kc-hero__deco--blob1 {
  width: 520px; height: 520px;
  top: -120px; right: -160px;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.5;
  background: radial-gradient(circle, var(--kc-color-pink-100) 0%, var(--kc-color-pink-50) 60%, transparent 100%);
}

/* blob: blush-soft(左下) */
.kc-hero__deco--blob2 {
  width: 380px; height: 380px;
  bottom: -80px; left: -100px;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.5;
  background: radial-gradient(circle, var(--kc-color-blush) 0%, transparent 70%);
}

/* 木イラスト(右下) */
.kc-hero__deco--tree {
  width: 80px; height: 80px;
  bottom: 80px; right: -10%;
  background-image: url("../images/illustrations/illust-tree.svg");
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.7;
  z-index: 1;
}

@media (max-width: 767px) {
  .kc-hero__deco--tree { display: none; }
  .kc-hero__deco--blob1 { width: 300px; height: 300px; }
  .kc-hero__deco--blob2 { width: 240px; height: 240px; }
}

/* ヒーロー木: 画面内に収める(right -10% → 画面外だったので修正) */
.kc-hero__deco--tree {
  right: 5%;
}

/* (削除) かつて .kc-story__list 単独で padding-left:0 を試みたが、SWELL親の
   .post_content ol の specificity (0,1,1) に負けて無効だった。
   現在は上部の「歩みと政策のカードリスト左パディングを除去」ルールに統合済 */

/* ヒーローのキャッチを少し大きく(クライアント要望#1) */
/* .kc-hero__tagline-vertical {
  font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
} */

/* 歩みの引用句を大きく(クライアント要望#3) */
.kc-story__quote-text {
  font-size: 26px;
}
.kc-story__quote-note {
  font-size: 18px;
}