/*
Theme Name: Koriyama Labo Child
Description: Child theme for Themify Ultra
Author: Koriyama Labo
Template: themify-ultra
*/

/*
 * 郡山ラボ T-01店舗紹介記事用CSSです。
 * WordPressのカスタムHTMLブロック、ThemifyのText/HTMLモジュールの双方で使う想定です。
 */

/* ==========================================================================
   CSS Custom Properties (Variables)
   ========================================================================== */
:root {
  --kl-color-primary: #4a7a5a;
  --kl-color-primary-dark: #2f5f42;
  --kl-color-primary-light: #e8f4ed;
  --kl-color-cta-bg: #2f5f42;
  --kl-color-accent: #c07a3a;
  --kl-color-accent-light: #fff4ea;
  --kl-color-review: #8a5b2d;
  --kl-color-review-light: #fff8ef;
  --kl-color-review-border: #ead8c2;
  --kl-color-map-light: #eef6f8;
  --kl-color-map-border: #c8dbe1;
  --kl-color-text: #333333;
  --kl-color-text-strong: #24352b;
  --kl-color-text-muted: #666f68;
  --kl-color-text-on-primary: #ffffff;
  --kl-color-border: #e0e0da;
  --kl-color-border-strong: #c9d7cd;
  --kl-color-bg-subtle: #f7f7f5;
  --kl-color-bg-paper: #ffffff;
  --kl-color-bg-row: #fbfcfb;
  --kl-color-bg-summary-start: #f6faf7;
  --kl-color-nav-bg: #f5f8f4;
  --kl-border-radius: 6px;
  --kl-space-sm: 10px;
  --kl-space-md: 16px;
  --kl-space-lg: 24px;
  --kl-space-section: 28px;
  --kl-font-base: 16px;
  --kl-font-small: 14px;
  --kl-font-title: 18px;
  --kl-line-height: 1.8;
}

/* Themifyのダークモードクラス、またはOSのダークモード設定に連動 */
body.tf_darkmode,
:root[data-theme="dark"] {
  --kl-color-primary: #81c784;          /* 明るい緑 */
  --kl-color-primary-dark: #a5d6a7;     /* さらに明るい緑（見出し用） */
  --kl-color-primary-light: #1b2e22;    /* 暗い背景に緑 of ニュアンス */
  --kl-color-cta-bg: #1b2e22;           /* cta背景 */
  --kl-color-accent: #ffb74d;           /* 明るいオレンジ */
  --kl-color-accent-light: #2d2013;     /* 暗い背景にオレンジのニュアンス */
  --kl-color-review: #ffcc80;           /* 口コミ用の明るいオレンジ */
  --kl-color-review-light: #2c2114;     /* 口コミ背景 */
  --kl-color-review-border: #4d3a24;
  --kl-color-map-light: #162429;        /* マップ背景 */
  --kl-color-map-border: #294047;
  --kl-color-text: #e0e0e0;             /* 明るい灰色（本文文字） */
  --kl-color-text-strong: #ffffff;      /* 白（強調文字） */
  --kl-color-text-muted: #aaaaaa;       /* 薄い灰色（注記など） */
  --kl-color-text-on-primary: #121212;  /* ボタン文字用などの暗い色 */
  --kl-color-border: #333333;           /* 暗い境界線 */
  --kl-color-border-strong: #444444;    /* 少し明るい境界線 */
  --kl-color-bg-subtle: #242424;        /* 暗い背景用紙 */
  --kl-color-bg-paper: #1e1e1e;         /* テーブル等の背景 */
  --kl-color-bg-row: #282828;           /* テーブル交互行 */
  --kl-color-bg-summary-start: #1c2720; /* 要約ボックスグラデ開始 */
  --kl-color-nav-bg: #1e2420;
}
@media (prefers-color-scheme: dark) {
  :root {
    --kl-color-primary: #81c784;          /* 明るい緑 */
    --kl-color-primary-dark: #a5d6a7;     /* さらに明るい緑（見出し用） */
    --kl-color-primary-light: #1b2e22;    /* 暗い背景に緑のニュアンス */
    --kl-color-cta-bg: #1b2e22;           /* cta背景 */
    --kl-color-accent: #ffb74d;           /* 明るいオレンジ */
    --kl-color-accent-light: #2d2013;     /* 暗い背景にオレンジのニュアンス */
    --kl-color-review: #ffcc80;           /* 口コミ用の明るいオレンジ */
    --kl-color-review-light: #2c2114;     /* 口コミ背景 */
    --kl-color-review-border: #4d3a24;
    --kl-color-map-light: #162429;        /* マップ背景 */
    --kl-color-map-border: #294047;
    --kl-color-text: #e0e0e0;             /* 明るい灰色（本文文字） */
    --kl-color-text-strong: #ffffff;      /* 白（強調文字） */
    --kl-color-text-muted: #aaaaaa;       /* 薄い灰色（注記など） */
    --kl-color-text-on-primary: #121212;  /* ボタン文字用などの暗い色 */
    --kl-color-border: #333333;           /* 暗い境界線 */
    --kl-color-border-strong: #444444;    /* 少し明るい境界線 */
    --kl-color-bg-subtle: #242424;        /* 暗い背景用紙 */
    --kl-color-bg-paper: #1e1e1e;         /* テーブル等の背景 */
    --kl-color-bg-row: #282828;           /* テーブル交互行 */
    --kl-color-bg-summary-start: #1c2720; /* 要約ボックスグラデ開始 */
    --kl-color-nav-bg: #1e2420;
  }
}

/* ==========================================================================
   地域イベントカテゴリー：Themify標準ループの抜粋カード
   アイキャッチ、タイトル、概要だけを1件のまとまりとして表示する。
   ========================================================================== */

body.category-local-event .kl-event-archive {
  --kl-event-list-ink: #2f3330;
  --kl-event-list-muted: #5f6661;
  --kl-event-list-green: #18726d;
  --kl-event-list-coral: #9c4038;
  --kl-event-list-paper: #fef9f3;
  --kl-event-list-border: #d7d2c8;
}

body.category-local-event .kl-event-archive .page-title {
  margin: 0 0 28px;
  color: var(--kl-event-list-ink);
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 900;
  letter-spacing: -0.035em;
}

body.category-local-event .kl-event-archive .loops-wrapper {
  display: grid;
  gap: 24px;
}

body.category-local-event .kl-event-archive .loops-wrapper > article.post {
  display: grid;
  overflow: hidden;
  grid-template-columns: minmax(220px, 35%) minmax(0, 1fr);
  margin: 0;
  border: 1px solid var(--kl-event-list-border);
  border-radius: 20px;
  background: #fff;
  padding: 0;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.07);
}

body.category-local-event .kl-event-archive article.post > .post-image {
  width: 100%;
  height: 100%;
  min-height: 220px;
  margin: 0;
  background: #f5e5a8;
}

body.category-local-event .kl-event-archive article.post > .post-image a,
body.category-local-event .kl-event-archive article.post > .post-image img {
  display: block;
  width: 100%;
  height: 100%;
}

body.category-local-event .kl-event-archive article.post > .post-image img {
  object-fit: cover;
}

/* 単色＋文字の生成アイキャッチは、文字が切れないよう画像全体を見せる。 */
body.category-local-event .kl-event-archive article.post > .post-image img[src*="/eyecatch_"] {
  object-fit: contain;
}

body.category-local-event .kl-event-archive article.post > .post-content {
  display: flex;
  min-width: 0;
  align-items: center;
  padding: clamp(22px, 3vw, 34px);
}

body.category-local-event .kl-event-archive .post-content-inner {
  width: 100%;
}

body.category-local-event .kl-event-archive .post-title {
  margin: 0 0 14px;
  color: var(--kl-event-list-ink);
  font-size: clamp(20px, 2.4vw, 27px);
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: -0.025em;
}

body.category-local-event .kl-event-archive .post-title a {
  color: inherit;
  text-decoration: none;
}

body.category-local-event .kl-event-archive .post-title a:hover,
body.category-local-event .kl-event-archive .post-title a:focus-visible {
  color: var(--kl-event-list-green);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

body.category-local-event .kl-event-archive .entry-content,
body.category-local-event .kl-event-archive .entry-content p {
  margin: 0;
  color: var(--kl-event-list-muted);
  font-size: 16px;
  line-height: 1.85;
}

body.category-local-event .kl-event-archive .more-link-wrap,
body.category-local-event .kl-event-archive article.post > .post-content .post-date,
body.category-local-event .kl-event-archive article.post > .post-content .post-meta {
  display: none;
}

body.category-local-event .kl-event-archive .pagenav {
  margin-top: 34px;
}

body.tf_darkmode.category-local-event .kl-event-archive .page-title,
:root[data-theme="dark"] body.category-local-event .kl-event-archive .page-title {
  color: #f8f3eb;
}

@media (max-width: 680px) {
  body.category-local-event .kl-event-archive .loops-wrapper > article.post {
    grid-template-columns: minmax(0, 1fr);
  }

  body.category-local-event .kl-event-archive article.post > .post-image {
    min-height: 0;
    aspect-ratio: 1200 / 630;
  }

  body.category-local-event .kl-event-archive article.post > .post-content {
    padding: 22px 20px 25px;
  }
}

/* ==========================================================================
   共通記事一覧：Themify記事一覧固定ページ・カテゴリー・検索結果
   ========================================================================== */

.kl-p06-builder,
.kl-listing-page,
.kl-tbp-listing {
  --kl-listing-ink: #2f3330;
  --kl-listing-muted: #5f6661;
  --kl-listing-green: #18726d;
  --kl-listing-green-dark: #135d59;
  --kl-listing-paper: #fef9f3;
  --kl-listing-mint: #d9eee9;
  --kl-listing-border: #ded8ce;
  color: var(--kl-listing-ink);
}

body.page-id-3665 #layout,
body.page-id-3665 #content {
  width: 100%;
  max-width: none;
  padding-right: 0;
  padding-left: 0;
}

.kl-p06-builder > .row_inner {
  width: min(1160px, calc(100% - 40px));
  max-width: 1160px;
  margin-inline: auto;
}

.kl-tbp-listing > .row_inner {
  width: min(1160px, calc(100% - 40px));
  max-width: 1160px;
  margin-inline: auto;
}

.kl-tbp-listing-hero > .row_inner {
  padding-top: clamp(46px, 7vw, 82px);
  padding-bottom: clamp(42px, 6vw, 68px);
}

.module-text.kl-tbp-listing-label p {
  margin: 0 0 12px;
  color: var(--kl-listing-green);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .14em;
}

.module-archive-title.kl-tbp-listing-title h1 {
  margin: 0;
  color: var(--kl-listing-ink);
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -.035em;
}

.module-archive-description.kl-tbp-listing-description {
  max-width: 720px;
  margin-top: 14px;
  color: var(--kl-listing-muted);
  font-size: 16px;
  line-height: 1.8;
}

.kl-tbp-listing-body > .row_inner {
  padding-top: 52px;
  padding-bottom: 72px;
}

.module-archive-posts.kl-tbp-card-grid .loops-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  height: auto !important;
}

.module-archive-posts.kl-tbp-card-grid article.post {
  position: static !important;
  inset: auto !important;
  display: flex;
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid var(--kl-listing-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(47, 51, 48, .08);
  transform: none !important;
}

.module-archive-posts.kl-tbp-card-grid .post-image,
.module-archive-posts.kl-tbp-card-grid .post-image a {
  display: block;
  width: 100%;
  margin: 0 !important;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: var(--kl-listing-mint);
}

.module-archive-posts.kl-tbp-card-grid .post-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.module-archive-posts.kl-tbp-card-grid .post-image img[src*="/eyecatch_"] {
  object-fit: contain;
}

.module-archive-posts.kl-tbp-card-grid .tbp_post_meta,
.module-archive-posts.kl-tbp-card-grid .tbp_post_date,
.module-archive-posts.kl-tbp-card-grid .tbp_title,
.module-archive-posts.kl-tbp-card-grid article.post > .tb_text_wrap {
  margin-right: 22px;
  margin-left: 22px;
}

.module-archive-posts.kl-tbp-card-grid .tbp_post_meta {
  margin-top: 20px;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 800;
}

.module-archive-posts.kl-tbp-card-grid .tbp_post_meta a {
  color: var(--kl-listing-green-dark);
  text-decoration: none;
}

.module-archive-posts.kl-tbp-card-grid .tbp_post_date {
  margin-bottom: 10px;
  color: var(--kl-listing-muted);
  font-size: 12px;
}

.module-archive-posts.kl-tbp-card-grid .tbp_title {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  color: var(--kl-listing-ink);
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.5 !important;
}

.module-archive-posts.kl-tbp-card-grid .tbp_title a {
  color: inherit;
  text-decoration: none;
}

.module-archive-posts.kl-tbp-card-grid article.post > .tb_text_wrap {
  margin-bottom: 22px;
  color: var(--kl-listing-muted);
  font-size: 14px;
  line-height: 1.75;
}

.module-archive-posts.kl-tbp-card-grid .more-link-wrap {
  margin-top: 16px;
}

.module-archive-posts.kl-tbp-card-grid .more-link {
  color: var(--kl-listing-green-dark);
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
}

.kl-tbp-listing-body .module-layout-part {
  margin-top: 42px;
}

.kl-p06-hero > .row_inner {
  padding-top: clamp(52px, 8vw, 92px);
  padding-bottom: clamp(48px, 7vw, 78px);
}

.tb_kl-p06-hero-copy,
.kl-p06-hero-copy {
  max-width: 780px;
}

.tb_kl-p06-hero-copy .tb_text_wrap > p:first-child,
.kl-p06-hero-copy .tb_text_wrap > p:first-child,
.kl-listing-hero__label {
  margin: 0 0 12px;
  color: var(--kl-listing-green) !important;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .14em;
}

.tb_kl-p06-hero-copy h1,
.kl-p06-hero-copy h1,
.kl-listing-hero h1,
html.tf_darkmode .tb_kl-p06-hero-copy h1,
html.tf_darkmode .kl-p06-hero-copy h1 {
  margin: 0 0 18px !important;
  color: #262a30 !important;
  font-size: clamp(28px, 4.5vw, 40px) !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
  letter-spacing: -.02em !important;
}

.tb_kl-p06-hero-copy .tb_text_wrap > p:last-child,
.kl-p06-hero-copy .tb_text_wrap > p:last-child,
.kl-listing-hero__description,
html.tf_darkmode .tb_kl-p06-hero-copy .tb_text_wrap > p:last-child,
html.tf_darkmode .kl-p06-hero-copy .tb_text_wrap > p:last-child {
  max-width: 720px;
  margin: 0;
  color: #55606e !important;
  font-size: 15px;
  line-height: 1.8;
}

.module-buttons.kl-p06-filter-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 26px !important;
}

.module-buttons.kl-p06-filter-buttons .module-buttons-item {
  margin: 0 !important;
}

.module-buttons.kl-p06-filter-buttons a.ui.builder_button {
  display: inline-flex !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 20px !important;
  border: 1px solid var(--kl-listing-green) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--kl-listing-green-dark) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
}

.module-buttons.kl-p06-filter-buttons a.ui.builder_button:hover,
.module-buttons.kl-p06-filter-buttons a.ui.builder_button:focus-visible {
  background: var(--kl-listing-mint) !important;
}

.kl-p06-list > .row_inner {
  padding-top: 54px;
  padding-bottom: 72px;
}

.tb_kl-p06-post-grid .loops-wrapper,
.tb_kl-p06-post-list .loops-wrapper,
.module-post.kl-p06-post-grid .loops-wrapper,
.kl-listing-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
}

.tb_kl-p06-post-grid article.post,
.tb_kl-p06-post-list article.post,
.module-post.kl-p06-post-grid article.post,
.kl-listing-card {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  overflow: hidden;
  border: 1px solid #e5e9ee !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .05) !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
}

.tb_kl-p06-post-grid article.post:hover,
.tb_kl-p06-post-list article.post:hover,
.module-post.kl-p06-post-grid article.post:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .09) !important;
}

.tb_kl-p06-post-grid .post-image,
.tb_kl-p06-post-list .post-image,
.module-post.kl-p06-post-grid .post-image,
.kl-listing-card__image {
  display: block;
  width: 100%;
  margin: 0 !important;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: #f4f6f8;
}

.tb_kl-p06-post-grid .post-image a,
.tb_kl-p06-post-list .post-image a,
.module-post.kl-p06-post-grid .post-image a {
  display: block;
  width: 100%;
  height: 100%;
}

.tb_kl-p06-post-grid .post-image img,
.tb_kl-p06-post-list .post-image img,
.module-post.kl-p06-post-grid .post-image img,
.kl-listing-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}

.tb_kl-p06-post-grid article.post:hover .post-image img,
.tb_kl-p06-post-list article.post:hover .post-image img,
.module-post.kl-p06-post-grid article.post:hover .post-image img {
  transform: scale(1.02);
}

.tb_kl-p06-post-grid .post-image img[src*="/eyecatch_"],
.tb_kl-p06-post-list .post-image img[src*="/eyecatch_"],
.module-post.kl-p06-post-grid .post-image img[src*="/eyecatch_"] {
  object-fit: contain;
}

.tb_kl-p06-post-grid .post-content,
.tb_kl-p06-post-list .post-content,
.module-post.kl-p06-post-grid .post-content,
.kl-listing-card__body {
  padding: 20px 22px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
}

.tb_kl-p06-post-grid .post-content-inner,
.tb_kl-p06-post-list .post-content-inner,
.module-post.kl-p06-post-grid .post-content-inner {
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
}

/* 日付 */
.tb_kl-p06-post-grid .post-date-wrap,
.tb_kl-p06-post-list .post-date-wrap,
.module-post.kl-p06-post-grid .post-date-wrap {
  margin: 0 0 8px !important;
  display: flex !important;
  align-items: center !important;
}

.tb_kl-p06-post-grid .post-date,
.tb_kl-p06-post-list .post-date,
.module-post.kl-p06-post-grid .post-date {
  color: #8c97a4 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

/* タイトル */
.tb_kl-p06-post-grid .post-title,
.tb_kl-p06-post-list .post-title,
.module-post.kl-p06-post-grid .post-title,
.kl-listing-card__title {
  margin: 0 0 12px !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  line-height: 1.55 !important;
  min-height: auto !important;
}

.tb_kl-p06-post-grid .post-title a,
.tb_kl-p06-post-list .post-title a,
.module-post.kl-p06-post-grid .post-title a,
.kl-listing-card__title a,
html.tf_darkmode .tb_kl-p06-post-grid .post-title a,
html.tf_darkmode .tb_kl-p06-post-list .post-title a,
html.tf_darkmode .module-post.kl-p06-post-grid .post-title a {
  color: #262a30 !important;
  text-decoration: none !important;
  transition: color .2s ease !important;
}

.tb_kl-p06-post-grid .post-title a:hover,
.tb_kl-p06-post-list .post-title a:hover,
.module-post.kl-p06-post-grid .post-title a:hover,
.kl-listing-card__title a:hover,
html.tf_darkmode .tb_kl-p06-post-grid .post-title a:hover,
html.tf_darkmode .tb_kl-p06-post-list .post-title a:hover,
html.tf_darkmode .module-post.kl-p06-post-grid .post-title a:hover {
  color: #18726d !important;
  text-decoration: underline !important;
}

.tb_kl-p06-post-grid .post-meta,
.tb_kl-p06-post-list .post-meta,
.module-post.kl-p06-post-grid .post-meta,
.module-post.kl-p06-post-grid .post-comment {
  display: none !important;
}

/* 抜粋（導入文） */
.tb_kl-p06-post-grid .entry-content,
.tb_kl-p06-post-list .entry-content,
.module-post.kl-p06-post-grid .entry-content,
.tb_kl-p06-post-grid .entry-content p,
.tb_kl-p06-post-list .entry-content p,
.module-post.kl-p06-post-grid .entry-content p,
.kl-listing-card__excerpt,
html.tf_darkmode .tb_kl-p06-post-grid .entry-content p,
html.tf_darkmode .tb_kl-p06-post-list .entry-content p,
html.tf_darkmode .module-post.kl-p06-post-grid .entry-content p {
  margin: 0 !important;
  color: #55606e !important;
  font-size: 13.5px !important;
  line-height: 1.65 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.kl-listing-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  color: var(--kl-listing-muted);
  font-size: 12px;
}

.kl-listing-card__category {
  color: var(--kl-listing-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.kl-listing-card__more {
  color: var(--kl-listing-green-dark);
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
}

.kl-listing-page {
  padding-top: clamp(42px, 7vw, 82px);
  padding-bottom: clamp(58px, 8vw, 92px);
}

.kl-listing-page #content {
  width: 100%;
  max-width: none;
}

.kl-listing-hero {
  margin-bottom: 40px;
  padding: clamp(28px, 5vw, 52px);
  border-radius: 20px;
  background: var(--kl-listing-paper);
}

.kl-listing-search-form {
  max-width: 620px;
  margin-top: 24px;
}

.kl-listing-search-form form {
  display: flex;
  gap: 10px;
}

.kl-listing-search-form input[type="search"] {
  min-width: 0;
  min-height: 46px;
  flex: 1;
  border: 1px solid var(--kl-listing-border);
  border-radius: 8px;
  background: #fff;
}

.kl-listing-search-form input[type="submit"] {
  min-height: 46px;
  border: 0;
  border-radius: 8px;
  background: var(--kl-listing-green);
  color: #fff;
}

.kl-listing-page .navigation.pagination,
.tb_kl-p06-post-grid .pagenav {
  margin-top: 38px;
}

.kl-listing-page .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.kl-listing-page .page-numbers {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--kl-listing-border);
  border-radius: 8px;
  background: #fff;
  color: var(--kl-listing-green-dark);
  text-decoration: none;
}

.kl-listing-page .page-numbers.current {
  border-color: var(--kl-listing-green);
  background: var(--kl-listing-green);
  color: #fff;
}

.kl-listing-empty,
.tb_kl-p06-note {
  margin-top: 36px;
  padding: 22px 24px;
  border-left: 4px solid var(--kl-listing-green);
  background: var(--kl-listing-paper);
  color: var(--kl-listing-muted);
}

.kl-p06-list .module-layout-part {
  margin: 0 0 42px;
}

.kl-p06-list .module-layout-part + .tb_kl-p06-note,
.tb_kl-p06-post-grid + .module-layout-part {
  margin-top: 42px;
}

@media (max-width: 900px) {
  .tb_kl-p06-post-grid .loops-wrapper,
  .module-post.kl-p06-post-grid .loops-wrapper,
  .kl-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .module-archive-posts.kl-tbp-card-grid .loops-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px) {
  .module-buttons.kl-p06-filter-buttons,
  .module-buttons.kl-p06-filter-buttons .module-buttons-item,
  .module-buttons.kl-p06-filter-buttons a.ui.builder_button {
    width: 100% !important;
  }

  .tb_kl-p06-post-grid .loops-wrapper,
  .module-post.kl-p06-post-grid .loops-wrapper,
  .kl-listing-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .module-archive-posts.kl-tbp-card-grid .loops-wrapper {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .kl-tbp-listing > .row_inner {
    width: min(100% - 28px, 1160px);
  }

  .kl-listing-page {
    padding-top: 28px;
  }

  .kl-listing-hero {
    margin-bottom: 28px;
    padding: 26px 20px;
    border-radius: 14px;
  }
}

/* ==========================================================================
   Antigravity Visual Adjustments: Section Spacing & Table Margin Repairs
   ========================================================================== */
.kl-t01-part,
.kl-t02-part,
.kl-t04-part,
.kl-summary-box,
.kl-story-box,
.kl-info-table,
.kl-access-box,
.kl-check-box,
.kl-related-links,
.kl-review-box,
.kl-updated-note {
  margin-bottom: 2.5rem !important;
  padding: 1.5rem !important;
  box-sizing: border-box !important;
}

.kl-t01-part .kl-part-title,
.kl-t02-part .kl-part-title,
.kl-t04-part .kl-part-title {
  margin-bottom: 1.25rem !important;
  line-height: 1.5 !important;
}

.kl-info-table table.kl-table,
.kl-t01-part table.kl-table,
.kl-t02-part table.kl-table,
.kl-t04-part table.kl-table {
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
  width: 100% !important;
}

.kl-info-table table.kl-table th,
.kl-info-table table.kl-table td {
  padding: 12px 16px !important;
  line-height: 1.7 !important;
}


/* ==========================================================================
   T-01 Store Article Components
   ========================================================================== */

/* T-01共通本文パーツ */
.kl-t01-part {
  box-sizing: border-box;
  width: 100%;
  color: var(--kl-color-text);
  color-scheme: light dark;
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
  margin: 0 0 var(--kl-space-section);
}

.kl-t01-part,
.kl-t01-part p,
.kl-t01-part li,
.kl-t01-part td {
  color: var(--kl-color-text);
}

.kl-t01-part *,
.kl-t01-part *::before,
.kl-t01-part *::after {
  box-sizing: border-box;
}

.kl-t01-part p {
  margin: 0 0 var(--kl-space-md);
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
}

.kl-t01-part p:last-child {
  margin-bottom: 0;
}

.kl-summary-box,
.kl-access-box,
.kl-check-box,
.kl-business-cta,
.kl-story-box,
.kl-review-box,
.kl-related-links {
  padding: var(--kl-space-lg);
}

/* 記事冒頭の要約ボックス */
.kl-summary-box {
  background: linear-gradient(180deg, var(--kl-color-bg-summary-start) 0%, var(--kl-color-primary-light) 100%);
  border: 1px solid var(--kl-color-border-strong);
  border-left: 5px solid var(--kl-color-primary);
  border-radius: 0 var(--kl-border-radius) var(--kl-border-radius) 0;
}

.kl-summary-box .kl-part-title {
  display: inline-block;
  margin-bottom: var(--kl-space-sm);
  padding: 0 0 4px;
  border-left: 0;
  border-bottom: 2px solid var(--kl-color-primary);
}

.kl-part-title {
  margin: 0 0 var(--kl-space-md);
  color: var(--kl-color-primary-dark);
  font-size: var(--kl-font-title);
  font-weight: 700;
  line-height: 1.5;
  border-left: 0;
  padding-left: 0;
}

.kl-part-title-accent {
  color: var(--kl-color-accent);
}

.kl-compact-list {
  margin: 0;
  padding-left: 1.4em;
}

.kl-compact-list li {
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
  margin-bottom: 8px;
}

.kl-compact-list li:last-child {
  margin-bottom: 0;
}

.kl-text-small {
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
  margin: 0;
}

.kl-center {
  text-align: center;
}

/* 基本情報テーブル */
.kl-info-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border: 1px solid var(--kl-color-border-strong);
  background-color: var(--kl-color-bg-paper);
  color: var(--kl-color-text);
  margin: 0;
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
}
.kl-info-table th, 
.kl-info-table td {
  border: 1px solid var(--kl-color-border-strong);
  padding: var(--kl-space-md);
  text-align: left;
  vertical-align: top;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.kl-info-table th {
  background-color: var(--kl-color-primary-light);
  color: var(--kl-color-text-strong);
  font-weight: 700;
  width: 30%;
}
.kl-info-table tr:nth-child(even) td {
  background-color: var(--kl-color-bg-row);
}
.kl-info-table a {
  color: var(--kl-color-primary);
}

/* 旧バッチ出力の基本情報セクションをダークモードでも読みやすく固定 */
.kl-basic-info-section {
  box-sizing: border-box;
  width: 100%;
  color: var(--kl-color-text) !important;
  color-scheme: light dark;
  background-color: var(--kl-color-bg-paper) !important;
  border: 1px solid var(--kl-color-border);
  border-radius: var(--kl-border-radius);
  padding: var(--kl-space-lg);
  margin: 0 0 var(--kl-space-section) !important;
}

.kl-basic-info-section h2,
.kl-basic-info-section h3,
.kl-access-section h2,
.kl-access-section h3 {
  margin: 0 0 var(--kl-space-md) !important;
  padding: 0 0 8px !important;
  border: 0 !important;
  border-bottom: 2px solid var(--kl-color-border-strong) !important;
  background: transparent !important;
  color: var(--kl-color-text-strong) !important;
  font-size: var(--kl-font-title) !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
}

.kl-basic-info-section .kl-info-table,
.kl-basic-info-section .kl-info-table tbody,
.kl-basic-info-section .kl-info-table tr,
.kl-basic-info-section .kl-info-table th,
.kl-basic-info-section .kl-info-table td {
  color-scheme: light dark;
}

.kl-basic-info-section .kl-info-table {
  background-color: var(--kl-color-bg-paper) !important;
  border-color: var(--kl-color-border-strong) !important;
  color: var(--kl-color-text) !important;
}

.kl-basic-info-section .kl-info-table th,
.kl-basic-info-section .kl-info-table td {
  border-color: var(--kl-color-border-strong) !important;
  color: var(--kl-color-text) !important;
}

.kl-basic-info-section .kl-info-table th {
  background: var(--kl-color-primary-light) !important;
  color: var(--kl-color-text-strong) !important;
}

.kl-basic-info-section .kl-info-table td {
  background-color: var(--kl-color-bg-paper) !important;
}

.kl-basic-info-section .kl-info-table tr:nth-child(even) td {
  background-color: var(--kl-color-bg-row) !important;
}

/* アクセス・駐車場ボックス */
.kl-access-box {
  background-color: var(--kl-color-map-light);
  border: 1px solid var(--kl-color-map-border);
  border-radius: var(--kl-border-radius);
}

/* 旧バッチ出力のアクセスセクションを現行アクセスボックス相当に補正 */
.kl-access-section {
  box-sizing: border-box;
  width: 100%;
  color: var(--kl-color-text) !important;
  color-scheme: light dark;
  background-color: var(--kl-color-map-light) !important;
  border: 1px solid var(--kl-color-map-border);
  border-radius: var(--kl-border-radius);
  padding: var(--kl-space-lg);
  margin: 0 0 var(--kl-space-section) !important;
}

.kl-access-section,
.kl-access-section p,
.kl-access-section li,
.kl-access-section strong,
.kl-access-box,
.kl-access-box p,
.kl-access-box li,
.kl-access-box strong {
  color: var(--kl-color-text) !important;
}

.kl-access-section a,
.kl-access-box a {
  color: var(--kl-color-primary-dark) !important;
}

.kl-access-box .kl-part-title {
  color: var(--kl-color-text-strong) !important;
}

/* ブラウザの自動ダークモードや旧インライン色指定への耐性 */
.kl-t01-part:not(.kl-business-cta) .kl-part-title {
  color: var(--kl-color-primary-dark) !important;
}

.kl-review-box .kl-part-title {
  color: var(--kl-color-review) !important;
}

.kl-check-box .kl-part-title,
.kl-access-box .kl-part-title,
.kl-access-section h2,
.kl-access-section h3,
.kl-basic-info-section h2,
.kl-basic-info-section h3 {
  color: var(--kl-color-text-strong) !important;
}

.kl-part-title-accent {
  color: var(--kl-color-accent) !important;
}

.kl-info-table {
  color-scheme: light dark;
  background-color: var(--kl-color-bg-paper) !important;
  color: var(--kl-color-text) !important;
}

.kl-info-table th,
.kl-info-table td {
  border-color: var(--kl-color-border-strong) !important;
  color: var(--kl-color-text) !important;
}

.kl-info-table th {
  background-color: var(--kl-color-primary-light) !important;
  color: var(--kl-color-text-strong) !important;
}

.kl-info-table td {
  background-color: var(--kl-color-bg-paper) !important;
}

.kl-info-table tr:nth-child(even) td {
  background-color: var(--kl-color-bg-row) !important;
}

/* 店舗紹介本文・口コミ・関連リンク */
.kl-story-box {
  padding: var(--kl-space-lg);
  background-color: var(--kl-color-bg-subtle);
  border: 1px solid var(--kl-color-border);
  border-radius: var(--kl-border-radius);
  color: var(--kl-color-text);
}

.kl-story-box > .kl-part-title {
  padding: 0 0 8px;
  border-bottom: 2px solid var(--kl-color-border-strong);
}

.kl-review-box {
  background-color: var(--kl-color-review-light);
  border: 1px solid var(--kl-color-review-border);
  border-radius: var(--kl-border-radius);
}

.kl-review-box .kl-part-title {
  color: var(--kl-color-review);
}

.kl-related-links {
  background-color: var(--kl-color-bg-subtle);
  border: 1px solid var(--kl-color-border);
  border-radius: var(--kl-border-radius);
}

.kl-feature-block {
  margin: 0 0 var(--kl-space-md);
  padding: var(--kl-space-md);
  background-color: var(--kl-color-bg-paper);
  border-left: 3px solid var(--kl-color-accent);
  border-radius: 0 var(--kl-border-radius) var(--kl-border-radius) 0;
}

.kl-feature-block:last-child {
  margin-bottom: 0;
}

.kl-feature-title,
.kl-review-score {
  color: var(--kl-color-primary-dark);
  font-weight: 700;
}

.kl-feature-title {
  margin-bottom: 6px;
}

body.tf_darkmode .kl-feature-block,
:root[data-theme="dark"] .kl-feature-block {
  background-color: #2b2320;
  border-left-color: #f0aca3;
}

body.tf_darkmode .kl-feature-block p,
:root[data-theme="dark"] .kl-feature-block p {
  color: #e7e7e2 !important;
}

body.tf_darkmode .kl-feature-title,
body.tf_darkmode p.kl-feature-title,
:root[data-theme="dark"] .kl-feature-title,
:root[data-theme="dark"] p.kl-feature-title {
  color: #f0aca3 !important;
}

@media (prefers-color-scheme: dark) {
  .kl-feature-block {
    background-color: #2b2320;
    border-left-color: #f0aca3;
  }

  .kl-feature-block p {
    color: #e7e7e2 !important;
  }

  .kl-feature-title,
  p.kl-feature-title {
    color: #f0aca3 !important;
  }
}


.kl-review-score {
  display: inline-block;
  padding: 8px 12px;
  background-color: var(--kl-color-bg-paper);
  border: 1px solid var(--kl-color-review-border);
  border-radius: var(--kl-border-radius);
  color: var(--kl-color-review);
}

.kl-link-button-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--kl-space-sm);
  align-items: stretch;
}

.kl-link-button,
.kl-map-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid var(--kl-color-primary) !important;
  border-radius: 4px;
  background-color: var(--kl-color-bg-paper) !important;
  color: var(--kl-color-primary-dark) !important;
  font-size: var(--kl-font-base);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}

.kl-link-button:hover,
.kl-link-button:focus,
.kl-map-link:hover,
.kl-map-link:focus {
  background-color: var(--kl-color-primary-light) !important;
  color: var(--kl-color-primary-dark) !important;
  text-decoration: none;
}

.kl-map-link,
.kl-access-box .kl-map-link,
.kl-access-section .kl-map-link {
  background-color: var(--kl-color-primary) !important;
  color: var(--kl-color-text-on-primary) !important;
}

.kl-check-box {
  border: 1px solid var(--kl-color-border-strong);
  background-color: var(--kl-color-bg-paper);
  border-radius: var(--kl-border-radius);
}

.kl-check-box .kl-part-title {
  color: var(--kl-color-text-strong);
}

/* 訪問前チェックリスト */
.kl-checklist {
  list-style-type: none;
  padding-left: 0;
  margin: 0;
}
.kl-checklist li {
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
  padding: 8px 0 8px 26px;
  border-bottom: 1px solid rgba(192, 122, 58, 0.18);
  position: relative;
  margin-bottom: 0;
}
.kl-checklist li::before {
  content: "✓";
  position: absolute;
  left: 2px;
  color: var(--kl-color-accent);
  font-weight: bold;
}

.kl-checklist li:last-child {
  border-bottom: 0;
}

/* 旧バッチ出力の訪問前チェック表を基本情報テーブルと同じ見え方へ寄せる */
.kl-checklist-section {
  box-sizing: border-box;
  width: 100%;
  color: var(--kl-color-text);
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
  margin: 0 0 var(--kl-space-section) !important;
}

.kl-checklist-section h3 {
  margin: 0 0 var(--kl-space-md) !important;
  padding: 0 0 8px !important;
  border: 0 !important;
  border-bottom: 2px solid var(--kl-color-border-strong) !important;
  color: var(--kl-color-text-strong) !important;
  font-size: var(--kl-font-title) !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
}

.kl-checklist-table {
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  border: 1px solid var(--kl-color-border-strong) !important;
  background-color: var(--kl-color-bg-paper) !important;
  color: var(--kl-color-text) !important;
  margin: 0 !important;
  font-size: var(--kl-font-base) !important;
  line-height: var(--kl-line-height) !important;
}

.kl-checklist-table th,
.kl-checklist-table td {
  border: 1px solid var(--kl-color-border-strong) !important;
  padding: var(--kl-space-md) !important;
  text-align: left !important;
  vertical-align: top !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  color: var(--kl-color-text) !important;
}

.kl-checklist-table th {
  width: 30% !important;
  background-color: var(--kl-color-primary-light) !important;
  color: var(--kl-color-text-strong) !important;
  font-weight: 700 !important;
}

.kl-checklist-table tr:nth-child(even) td {
  background-color: var(--kl-color-bg-row) !important;
}

/* 店舗・施設の本文内画像 */
.kl-store-images {
  background-color: var(--kl-color-bg-paper);
  border: 1px solid var(--kl-color-border);
  border-radius: var(--kl-border-radius);
  padding: var(--kl-space-lg);
}

.kl-store-image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--kl-space-md);
  margin-top: var(--kl-space-md);
}

.kl-store-image-item {
  margin: 0;
  border: 1px solid var(--kl-color-border);
  border-radius: var(--kl-border-radius);
  background-color: var(--kl-color-bg-paper);
  overflow: hidden;
}

.kl-store-image-item img {
  display: block;
  width: 100%;
  height: auto;
}

.kl-store-image-item figcaption {
  padding: 8px 10px;
  color: var(--kl-color-text-muted);
  font-size: var(--kl-font-small);
  line-height: 1.6;
}

/* 情報更新日・注意事項 */
.kl-updated-note,
.kl-note-box {
  font-size: var(--kl-font-small);
  color: var(--kl-color-text-muted);
  background-color: var(--kl-color-bg-subtle);
  border: 1px dashed var(--kl-color-border);
  border-radius: var(--kl-border-radius);
  padding: var(--kl-space-md);
  margin: 0 0 var(--kl-space-section);
}
.kl-updated-note p,
.kl-note-box p {
  color: inherit;
  font-size: var(--kl-font-small);
  line-height: 1.7;
}

/* 記事下の前後ナビゲーション */
body .post-nav {
  box-sizing: border-box;
  background-color: var(--kl-color-nav-bg);
  border: 1px solid var(--kl-color-border);
  border-radius: var(--kl-border-radius);
  color: var(--kl-color-text);
  padding: var(--kl-space-lg);
}

body .post-nav a,
body .post-nav a span {
  color: var(--kl-color-primary-dark) !important;
}

body .post-nav .arrow {
  color: var(--kl-color-primary) !important;
}

body .post-nav a:hover,
body .post-nav a:focus,
body .post-nav a:hover span,
body .post-nav a:focus span,
body .post-nav a:hover .arrow,
body .post-nav a:focus .arrow {
  color: var(--kl-color-accent) !important;
}

/* 事業者向け相談導線 */
.kl-business-cta {
  background-color: var(--kl-color-cta-bg);
  border: 1px solid var(--kl-color-cta-bg);
  text-align: center;
  border-radius: var(--kl-border-radius);
}
.kl-business-cta,
.kl-business-cta .kl-part-title,
.kl-business-cta .kl-text-small {
  color: #ffffff;
}
.kl-business-cta p {
  margin-bottom: var(--kl-space-md);
}

.kl-btn-primary,
.kl-btn-accent {
  display: inline-block;
  padding: 10px 22px;
  border-radius: 4px;
  color: var(--kl-color-text-on-primary);
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}

.kl-btn-primary {
  background-color: var(--kl-color-primary);
}

.kl-btn-accent {
  background-color: var(--kl-color-accent);
}

@media (max-width: 680px) {
  .kl-summary-box,
  .kl-access-box,
  .kl-access-section,
  .kl-check-box,
  .kl-business-cta,
  .kl-story-box,
  .kl-review-box,
  .kl-related-links,
  .kl-basic-info-section {
    padding: var(--kl-space-md);
  }

  .kl-link-button-list {
    display: block;
  }

  .kl-link-button,
  .kl-map-link {
    display: flex;
    width: 100%;
    margin: 0 0 var(--kl-space-sm);
  }

  .kl-link-button:last-child,
  .kl-map-link:last-child {
    margin-bottom: 0;
  }

  .kl-story-box {
    padding: var(--kl-space-md);
  }

  .kl-info-table,
  .kl-info-table tbody,
  .kl-info-table tr,
  .kl-info-table th,
  .kl-info-table td {
    display: block;
    width: 100%;
  }

  .kl-info-table th {
    padding-bottom: 8px;
    border-bottom: 0;
  }

  .kl-info-table td {
    padding-top: 8px;
    border-top: 0;
  }

  .kl-info-table tr {
    border-bottom: 1px solid var(--kl-color-border-strong);
  }

  .kl-info-table tr:last-child {
    border-bottom: 0;
  }

  .kl-checklist-table,
  .kl-checklist-table tbody,
  .kl-checklist-table tr,
  .kl-checklist-table th,
  .kl-checklist-table td {
    display: block !important;
    width: 100% !important;
  }

  .kl-checklist-table th {
    padding-bottom: 8px !important;
    border-bottom: 0 !important;
  }

  .kl-checklist-table td {
    padding-top: 8px !important;
    border-top: 0 !important;
  }

  .kl-checklist-table tr {
    border-bottom: 1px solid var(--kl-color-border-strong) !important;
  }

  .kl-checklist-table tr:last-child {
    border-bottom: 0 !important;
  }

  .kl-store-images {
    padding: var(--kl-space-md);
  }
}

/* ==========================================================================
   Responsive Scroll Table (For Multi-column Tables like Price Tables)
   ========================================================================== */
.kl-table-scroll-container {
  width: 100%;
  overflow-x: auto;
  margin: 0 0 var(--kl-space-section);
  -webkit-overflow-scrolling: touch;
}

.kl-scroll-table {
  width: 100%;
  min-width: 500px;
  border-collapse: collapse;
  border: 1px solid var(--kl-color-border-strong);
  background-color: var(--kl-color-bg-paper);
  color: var(--kl-color-text);
  margin: 0;
  font-size: var(--kl-font-base);
  line-height: var(--kl-line-height);
}

.kl-scroll-table th, 
.kl-scroll-table td {
  border: 1px solid var(--kl-color-border-strong);
  padding: var(--kl-space-md);
  text-align: center;
  vertical-align: middle;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.kl-scroll-table th {
  background-color: var(--kl-color-primary-light);
  color: var(--kl-color-primary-dark);
  font-weight: 700;
}

.kl-scroll-table tr:nth-child(even) td {
  background-color: var(--kl-color-bg-row);
}

/* スマホ表示で縦積みにしないための明示的指定 */
@media (max-width: 680px) {
  .kl-table-scroll-container .kl-scroll-table,
  .kl-table-scroll-container .kl-scroll-table tbody,
  .kl-table-scroll-container .kl-scroll-table tr,
  .kl-table-scroll-container .kl-scroll-table th,
  .kl-table-scroll-container .kl-scroll-table td {
    display: table-cell !important;
    width: auto !important;
  }
  
  .kl-table-scroll-container .kl-scroll-table tr {
    display: table-row !important;
  }
  
  .kl-table-scroll-container .kl-scroll-table tbody {
    display: table-row-group !important;
  }
}

/* ==========================================================================
   T-04 Ranking Card Components
   ========================================================================== */
.kl-ranking-card {
  border: 1px solid var(--kl-color-border-strong);
  border-radius: var(--kl-border-radius);
  padding: var(--kl-space-lg);
  margin-bottom: 30px;
  background-color: var(--kl-color-bg-paper);
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
  color: var(--kl-color-text);
}

.kl-ranking-badge-wrapper {
  margin-bottom: 12px;
}

.kl-ranking-badge {
  display: inline-block;
  background-color: var(--kl-color-accent);
  color: var(--kl-color-text-on-primary);
  font-weight: bold;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: var(--kl-font-small);
}

.kl-ranking-title {
  margin-top: 5px;
  margin-bottom: var(--kl-space-md);
  font-size: var(--kl-font-title);
  color: var(--kl-color-primary-dark);
  border-bottom: 2px solid var(--kl-color-border-strong);
  padding-bottom: 8px;
}

.kl-ranking-card-content {
  line-height: var(--kl-line-height);
  color: var(--kl-color-text);
}

@media (max-width: 680px) {
  .kl-ranking-card {
    padding: var(--kl-space-md);
  }
}

/* Themify Builderボタンと子テーマのテキスト色競合の解消 */
.kl-t01-part .themify_builder_sub_row .module-button a.el-button {
  color: var(--kl-color-text-on-primary) !important;
}

/* ==========================================================================
   T-03 Column Article Components
   ========================================================================== */
blockquote {
  margin: var(--kl-space-lg) 0 !important;
  padding: var(--kl-space-md) var(--kl-space-lg) !important;
  background-color: var(--kl-color-bg-subtle) !important;
  border: 0 !important;
  border-left: 4px solid var(--kl-color-primary) !important;
  border-radius: 0 var(--kl-border-radius) var(--kl-border-radius) 0 !important;
  color: var(--kl-color-text-strong) !important;
  font-style: italic !important;
  font-size: var(--kl-font-base) !important;
  line-height: var(--kl-line-height) !important;
}

blockquote p {
  margin-bottom: var(--kl-space-sm) !important;
  color: var(--kl-color-text-strong) !important;
}

blockquote p:last-child {
  margin-bottom: 0 !important;
}

/* ==========================================================================
   P-01 Home Page Components
   ========================================================================== */
.kl-home {
  color: var(--kl-color-text, #333333);
  font-size: var(--kl-font-base, 16px);
  line-height: var(--kl-line-height, 1.8);
}

.kl-home *,
.kl-home *::before,
.kl-home *::after {
  box-sizing: border-box;
}

.kl-home a {
  color: inherit;
  text-decoration: none;
}

.kl-home-hero {
  background: var(--kl-color-bg-subtle, #f7f7f5);
  padding: 40px 18px;
}

.kl-home-hero__inner,
.kl-home-section,
.kl-home-footer-nav {
  width: min(1120px, 100%);
  margin: 0 auto;
}

.kl-home-hero__inner {
  display: grid;
  gap: 28px;
  align-items: center;
}

.kl-home-hero__label,
.kl-home-section__label,
.kl-home-post-card__meta {
  margin: 0 0 8px;
  color: var(--kl-color-primary-dark, #2f5f42);
  font-size: 14px;
  font-weight: 700;
}

.kl-home-hero__title {
  margin: 0 0 16px;
  color: var(--kl-color-text-strong, #24352b);
  font-size: 32px;
  line-height: 1.35;
  letter-spacing: 0;
}

.kl-home-hero__lead,
.kl-home-section__lead {
  margin: 0;
  color: var(--kl-color-text, #333333);
}

.kl-home-hero__actions,
.kl-home-business__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.kl-home-button,
.kl-home-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--kl-border-radius, 6px);
  font-weight: 700;
}

.kl-home-button {
  padding: 10px 18px;
  border: 1px solid var(--kl-color-primary-dark, #2f5f42);
}

.kl-home-button--primary {
  background: var(--kl-color-primary-dark, #2f5f42);
  color: #ffffff;
}

.kl-home .kl-home-button--primary,
.kl-home .kl-home-button--primary:visited,
.kl-home .kl-home-button--primary:hover,
.kl-home .kl-home-button--primary:focus {
  color: #ffffff !important;
}

.kl-home-button--secondary {
  background: var(--kl-color-bg-paper, #ffffff);
  color: var(--kl-color-primary-dark, #2f5f42);
}

.kl-home-button--text,
.kl-home-link {
  min-height: auto;
  padding: 8px 0;
  border: 0;
  color: var(--kl-color-primary-dark, #2f5f42);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.kl-home-hero__image,
.kl-home-hero__image-placeholder,
.kl-home-post-card__thumb,
.kl-home-post-card__thumb-placeholder {
  display: grid;
  place-items: center;
  min-height: 220px;
  border: 1px solid var(--kl-color-border-strong, #c9d7cd);
  border-radius: var(--kl-border-radius, 6px);
  background: var(--kl-color-primary-light, #e8f4ed);
  color: var(--kl-color-text-muted, #666f68);
  text-align: center;
}

.kl-home-hero__image img,
.kl-home-post-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.kl-home-section {
  padding: 44px 18px;
}

.kl-home-section__head {
  margin-bottom: 22px;
}

.kl-home-section__head--split {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  justify-content: space-between;
}

.kl-home-section__title {
  margin: 0 0 10px;
  color: var(--kl-color-text-strong, #24352b);
  font-size: 24px;
  line-height: 1.45;
  letter-spacing: 0;
}

.kl-home-category-grid,
.kl-home-post-grid {
  display: grid;
  gap: 14px;
}

.kl-home-category-card,
.kl-home-post-card a {
  display: block;
  height: 100%;
  border: 1px solid var(--kl-color-border, #e0e0da);
  border-radius: var(--kl-border-radius, 6px);
  background: var(--kl-color-bg-paper, #ffffff);
}

.kl-home-category-card {
  padding: 18px;
}

.kl-home-category-card__icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  margin-bottom: 12px;
  border-radius: 50%;
  background: var(--kl-color-primary-light, #e8f4ed);
  color: var(--kl-color-primary-dark, #2f5f42);
  font-weight: 700;
}

.kl-home-category-card__title,
.kl-home-category-card__text {
  display: block;
}

.kl-home-category-card__title {
  margin-bottom: 6px;
  color: var(--kl-color-text-strong, #24352b);
  font-weight: 700;
}

.kl-home-category-card__text {
  color: var(--kl-color-text-muted, #666f68);
  font-size: 14px;
  line-height: 1.7;
}

.kl-home-area {
  background: var(--kl-color-bg-subtle, #f7f7f5);
}

.kl-home-area-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.kl-home-area-list a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  border: 1px solid var(--kl-color-border-strong, #c9d7cd);
  border-radius: var(--kl-border-radius, 6px);
  background: var(--kl-color-bg-paper, #ffffff);
  padding: 8px 14px;
}

.kl-home-post-card {
  margin: 0;
}

.kl-home-post-card__thumb,
.kl-home-post-card__thumb-placeholder {
  min-height: 150px;
  border-width: 0 0 1px;
  border-radius: var(--kl-border-radius, 6px) var(--kl-border-radius, 6px) 0 0;
}

.kl-home-post-card__body {
  padding: 16px;
}

.kl-home-post-card__title {
  margin: 0 0 8px;
  color: var(--kl-color-text-strong, #24352b);
  font-size: 18px;
  line-height: 1.5;
}

.kl-home-post-card__text,
.kl-home-about p,
.kl-home-business p {
  margin: 0;
}

.kl-home-about {
  border-top: 1px solid var(--kl-color-border, #e0e0da);
  border-bottom: 1px solid var(--kl-color-border, #e0e0da);
}

.kl-home-about__body {
  max-width: 760px;
}

.kl-home-about .kl-home-button {
  margin-top: 20px;
}

.kl-home-business {
  background: var(--kl-color-accent-light, #fff4ea);
}

.kl-home-business__inner {
  display: grid;
  gap: 20px;
  align-items: center;
}

.kl-home-footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding: 28px 18px 44px;
  border-top: 1px solid var(--kl-color-border, #e0e0da);
}

.kl-home-footer-nav a {
  color: var(--kl-color-primary-dark, #2f5f42);
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (min-width: 720px) {
  .kl-home-hero {
    padding: 64px 24px;
  }

  .kl-home-hero__inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  }

  .kl-home-hero__title {
    font-size: 38px;
  }

  .kl-home-section {
    padding: 58px 24px;
  }

  .kl-home-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .kl-home-post-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .kl-home-business__inner {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .kl-home-business__actions {
    justify-content: flex-end;
    margin-top: 0;
  }
}

/* P-01 Home Page — 2026 magazine redesign */
.kl-home {
  --kl-home-paper: #fff9f3;
  --kl-home-white: #ffffff;
  --kl-home-ink: #2f3330;
  --kl-home-muted: #68706b;
  --kl-home-teal: #18726d;
  --kl-home-teal-pale: #d9eee9;
  --kl-home-coral: #e96f62;
  --kl-home-coral-dark: #9c4038;
  --kl-home-coral-pale: #f8d8d2;
  --kl-home-butter: #f5e5a8;
  --kl-home-sky: #dceef7;
  --kl-home-lavender: #dfe5f6;
  --kl-home-line: #d8d5ce;
  overflow: hidden;
  background: var(--kl-home-paper);
  color: var(--kl-home-ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

.kl-home a {
  transition: transform 180ms ease, box-shadow 180ms ease, color 180ms ease, background-color 180ms ease;
}

.kl-home a:focus-visible {
  outline: 3px solid var(--kl-home-teal);
  outline-offset: 4px;
}

.kl-home-masthead,
.kl-home-hero__inner,
.kl-home-now,
.kl-home-section,
.kl-home-area__inner,
.kl-home-footer-nav {
  width: min(1160px, calc(100% - 36px));
  margin-right: auto;
  margin-left: auto;
}

.kl-home-hero {
  position: relative;
  padding: 0 0 54px;
  background:
    radial-gradient(circle at 5% 18%, rgba(233, 111, 98, 0.14) 0 90px, transparent 91px),
    radial-gradient(circle at 92% 84%, rgba(24, 114, 109, 0.1) 0 130px, transparent 131px),
    var(--kl-home-paper);
}

.kl-home-masthead {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--kl-home-ink);
}

.kl-home-masthead__name,
.kl-home-masthead__note {
  margin: 0;
}

.kl-home-masthead__name {
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.kl-home-masthead__note {
  color: var(--kl-home-muted);
  font-size: 12px;
}

.kl-home-hero__inner {
  display: grid;
  gap: 38px;
  padding-top: 42px;
}

.kl-home-hero__body {
  position: relative;
  z-index: 2;
}

.kl-home-hero__label,
.kl-home-section__label,
.kl-home-post-card__meta {
  color: var(--kl-home-teal);
}

.kl-home-hero__label,
.kl-home-section__label {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.13em;
}

.kl-home-hero__label span {
  display: inline-block;
  margin-right: 8px;
  border-radius: 999px;
  background: var(--kl-home-teal);
  padding: 5px 10px;
  color: #ffffff;
  letter-spacing: 0.08em;
}

.kl-home-hero__title {
  margin: 0 0 20px;
  color: var(--kl-home-ink);
  font-size: clamp(38px, 11vw, 58px);
  font-weight: 900;
  line-height: 1.24;
  letter-spacing: -0.04em;
}

.kl-home-hero__title em {
  position: relative;
  color: var(--kl-home-coral-dark);
  font-style: normal;
  white-space: nowrap;
}

.kl-home-hero__title em::after {
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  height: 7px;
  border-radius: 50%;
  background: var(--kl-home-butter);
  content: "";
  transform: rotate(-1deg);
  z-index: -1;
}

.kl-home-hero__lead {
  max-width: 600px;
  color: var(--kl-home-ink);
  font-size: 15px;
  line-height: 1.95;
}

.kl-home-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 24px;
}

.kl-home-keywords a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  border: 1px solid var(--kl-home-ink);
  border-radius: 999px;
  background: var(--kl-home-white);
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
}

.kl-home-keywords a::before {
  margin-right: 6px;
  color: var(--kl-home-coral-dark);
  content: "#";
}

.kl-home-keywords a:hover,
.kl-home-keywords a:focus-visible {
  background: var(--kl-home-butter);
  transform: translateY(-2px);
}

.kl-home-scroll-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
  border-bottom: 1px solid var(--kl-home-ink);
  padding: 4px 0;
  font-size: 14px;
  font-weight: 800;
}

.kl-home-scroll-link span {
  color: var(--kl-home-coral-dark);
}

.kl-home-hero__visual {
  position: relative;
  display: grid;
  min-height: 390px;
  grid-template-columns: 1fr 0.72fr;
  grid-template-rows: 1fr 0.84fr;
  gap: 12px;
  padding: 12px 0 0 12px;
}

.kl-home-hero__visual::before {
  position: absolute;
  inset: 0 12px 12px 0;
  border-radius: 34% 66% 54% 46% / 40% 38% 62% 60%;
  background: var(--kl-home-teal-pale);
  content: "";
}

.kl-home-hero-card {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 4px solid var(--kl-home-white);
  border-radius: 18px;
  background: var(--kl-home-white);
  box-shadow: 0 12px 28px rgba(47, 51, 48, 0.13);
}

.kl-home-hero-card--1 {
  grid-row: 1 / 3;
  transform: rotate(-2deg);
}

.kl-home-hero-card--2 {
  transform: translateY(18px) rotate(2deg);
}

.kl-home-hero-card--3 {
  transform: rotate(-1deg);
}

.kl-home-hero-card:hover {
  z-index: 3;
  box-shadow: 0 16px 34px rgba(47, 51, 48, 0.2);
  transform: translateY(-3px) rotate(0);
}

.kl-home-hero-card__image {
  display: grid;
  min-height: 0;
  flex: 1;
  place-items: center;
  overflow: hidden;
  background: var(--kl-home-coral-pale);
  color: var(--kl-home-muted);
}

.kl-home-hero-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kl-home-hero-card__title {
  display: -webkit-box;
  overflow: hidden;
  padding: 10px 11px;
  color: var(--kl-home-ink);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.kl-home-hero-card--placeholder {
  grid-column: 1 / -1;
  grid-row: 1 / -1;
}

.kl-home-hero__stamp {
  position: absolute;
  right: -5px;
  bottom: -20px;
  z-index: 4;
  display: grid;
  width: 82px;
  height: 82px;
  place-items: center;
  border: 2px solid var(--kl-home-coral-dark);
  border-radius: 50%;
  background: var(--kl-home-butter);
  color: var(--kl-home-coral-dark);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.12em;
  text-align: center;
  transform: rotate(8deg);
}

.kl-home-now {
  position: relative;
  z-index: 5;
  display: grid;
  gap: 10px;
  margin-top: -18px;
  padding-bottom: 42px;
}

.kl-home-now__intro {
  padding: 15px 2px 8px;
}

.kl-home-now__title {
  margin: 0;
  color: var(--kl-home-ink);
  font-size: 24px;
  line-height: 1.35;
}

.kl-home-now-card {
  display: grid;
  min-height: 88px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 13px;
  border: 1px solid var(--kl-home-ink);
  border-radius: 16px;
  padding: 15px 16px;
  box-shadow: 4px 4px 0 var(--kl-home-ink);
}

.kl-home-now-card--food { background: var(--kl-home-coral-pale); }
.kl-home-now-card--event { background: var(--kl-home-butter); }
.kl-home-now-card--care { background: var(--kl-home-lavender); }

.kl-home-now-card:hover {
  box-shadow: 1px 1px 0 var(--kl-home-ink);
  transform: translate(3px, 3px);
}

.kl-home-now-card__number {
  color: var(--kl-home-coral-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.kl-home-now-card strong,
.kl-home-now-card small {
  display: block;
}

.kl-home-now-card strong {
  color: var(--kl-home-ink);
  font-size: 16px;
}

.kl-home-now-card small {
  margin-top: 2px;
  color: var(--kl-home-muted);
  font-size: 11px;
}

.kl-home-now-card__arrow {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--kl-home-white);
  font-weight: 900;
}

.kl-home-section {
  width: min(1160px, calc(100% - 36px));
  padding: 54px 0;
}

.kl-home-section__head {
  margin-bottom: 26px;
}

.kl-home-section__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
}

.kl-home-section__title {
  margin: 0;
  color: var(--kl-home-ink);
  font-size: clamp(27px, 7vw, 40px);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -0.035em;
}

.kl-home-section__lead {
  max-width: 650px;
  margin: 12px auto 0;
  color: var(--kl-home-muted);
}

.kl-home-link {
  min-height: 44px;
  color: var(--kl-home-teal);
  font-size: 14px;
  text-decoration: none;
}

.kl-home-link span {
  margin-left: 7px;
}

.kl-home-new {
  border-top: 1px solid var(--kl-home-line);
}

.kl-home-post-grid {
  display: grid;
  gap: 28px 18px;
}

.kl-home-post-card,
.kl-home-post-card a {
  height: 100%;
}

.kl-home-post-card a {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  background: var(--kl-home-white);
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.08);
}

.kl-home-post-card a:hover {
  box-shadow: 0 14px 30px rgba(47, 51, 48, 0.14);
  transform: translateY(-4px);
}

.kl-home-post-card__thumb,
.kl-home-post-card__thumb-placeholder {
  position: relative;
  aspect-ratio: 1200 / 630;
  min-height: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--kl-home-teal-pale);
}

.kl-home-post-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
}

.kl-home-post-card__index {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--kl-home-white);
  color: var(--kl-home-coral-dark);
  font-size: 10px;
  font-weight: 900;
  box-shadow: 0 4px 12px rgba(47, 51, 48, 0.12);
}

.kl-home-post-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 20px;
}

.kl-home-post-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 11px;
}

.kl-home-post-card__meta span {
  display: inline-block;
  border-radius: 999px;
  background: var(--kl-home-teal-pale);
  padding: 4px 9px;
  font-weight: 800;
}

.kl-home-post-card__meta time {
  color: var(--kl-home-muted);
  font-weight: 500;
}

.kl-home-post-card__title {
  margin-bottom: 10px;
  color: var(--kl-home-ink);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.55;
}

.kl-home-post-card__text {
  color: var(--kl-home-muted);
  font-size: 13px;
  line-height: 1.8;
}

.kl-home-post-card__more {
  margin-top: auto;
  padding-top: 18px;
  color: var(--kl-home-teal);
  font-size: 13px;
  font-weight: 800;
}

.kl-home-search {
  width: 100%;
  max-width: none;
  padding: 58px max(18px, calc((100vw - 1160px) / 2));
  background: var(--kl-home-teal);
}

.kl-home-search .kl-home-section__label,
.kl-home-search .kl-home-section__title,
.kl-home-search .kl-home-section__lead {
  color: #ffffff;
}

.kl-home-section__head--center {
  text-align: center;
}

.kl-home-category-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.kl-home-category-card {
  position: relative;
  display: flex;
  min-height: 180px;
  flex-direction: column;
  align-items: flex-start;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  padding: 16px;
}

.kl-home-category-card--food { background: var(--kl-home-coral-pale); }
.kl-home-category-card--family { background: var(--kl-home-butter); }
.kl-home-category-card--beauty { background: var(--kl-home-lavender); }
.kl-home-category-card--care { background: #eadff0; }
.kl-home-category-card--shopping { background: var(--kl-home-teal-pale); }
.kl-home-category-card--outing { background: var(--kl-home-sky); }

.kl-home-category-card:hover {
  transform: translateY(-5px) rotate(-1deg);
}

.kl-home-category-card__icon {
  width: 48px;
  height: 48px;
  margin: 0 0 auto;
  border: 1px solid currentColor;
  background: rgba(255, 255, 255, 0.66);
  color: var(--kl-home-ink);
  font-size: 17px;
}

.kl-home-category-card__title {
  margin: 14px 0 3px;
  color: var(--kl-home-ink);
  font-size: 15px;
  font-weight: 800;
}

.kl-home-category-card__text {
  color: var(--kl-home-muted);
  font-size: 11px;
  line-height: 1.6;
}

.kl-home-area {
  position: relative;
  overflow: hidden;
  background: var(--kl-home-butter);
}

.kl-home-area__inner {
  position: relative;
  display: grid;
  gap: 28px;
  padding-top: 58px;
  padding-bottom: 88px;
}

.kl-home-area__copy {
  position: relative;
  z-index: 2;
}

.kl-home-area__copy p:last-child {
  max-width: 520px;
  margin: 14px 0 0;
  color: #585b55;
}

.kl-home-area-list {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 9px;
}

.kl-home-area-list a {
  display: grid;
  min-height: 54px;
  grid-template-columns: 34px 1fr;
  align-items: center;
  border: 1px solid var(--kl-home-ink);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.8);
  padding: 8px 18px;
  color: var(--kl-home-ink);
  font-size: 14px;
  font-weight: 800;
}

.kl-home-area-list a:hover {
  background: var(--kl-home-white);
  transform: translateX(4px);
}

.kl-home-area-list a span {
  color: var(--kl-home-coral-dark);
  font-size: 10px;
}

.kl-home-area__word {
  position: absolute;
  right: -12px;
  bottom: -40px;
  margin: 0;
  color: rgba(156, 64, 56, 0.09);
  font-size: clamp(70px, 18vw, 190px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.07em;
  white-space: nowrap;
}

.kl-home-about {
  border: 0;
  background: var(--kl-home-paper);
}

.kl-home-about__body {
  max-width: 850px;
}

.kl-home-about__body > p:not(.kl-home-section__label) {
  max-width: 760px;
  margin-top: 18px;
}

.kl-home-policy-list {
  display: grid;
  gap: 1px;
  margin-top: 28px;
  overflow: hidden;
  border: 1px solid var(--kl-home-line);
  border-radius: 16px;
  background: var(--kl-home-line);
}

.kl-home-policy-list span {
  display: grid;
  gap: 3px;
  background: var(--kl-home-white);
  padding: 16px 18px;
  color: var(--kl-home-muted);
  font-size: 13px;
}

.kl-home-policy-list strong {
  color: var(--kl-home-ink);
  font-size: 14px;
}

.kl-home-button {
  min-height: 46px;
  border: 1px solid var(--kl-home-teal);
  border-radius: 999px;
  padding: 10px 19px;
}

.kl-home-button--primary {
  border-color: var(--kl-home-teal);
  background: var(--kl-home-teal);
}

.kl-home-button--secondary {
  border-color: var(--kl-home-teal);
  background: var(--kl-home-white);
  color: var(--kl-home-teal);
}

.kl-home-button:hover {
  transform: translateY(-2px);
}

.kl-home-business {
  width: 100%;
  max-width: none;
  padding: 52px max(18px, calc((100vw - 1160px) / 2));
  background: var(--kl-home-coral-pale);
}

.kl-home-business__inner {
  width: min(1160px, 100%);
  margin: 0 auto;
}

.kl-home-business .kl-home-section__title {
  font-size: clamp(25px, 6vw, 36px);
}

.kl-home-business p:not(.kl-home-section__label) {
  margin-top: 14px;
}

.kl-home-footer-nav {
  gap: 8px 18px;
  border: 0;
  padding: 30px 0 44px;
}

.kl-home-footer-nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--kl-home-teal);
  font-size: 13px;
  text-decoration: none;
}

@media (min-width: 600px) {
  .kl-home-now {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .kl-home-now__intro {
    grid-column: 1 / -1;
  }

  .kl-home-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kl-home-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .kl-home-policy-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .kl-home-hero {
    padding-bottom: 76px;
  }

  .kl-home-hero__inner {
    grid-template-columns: minmax(0, 0.93fr) minmax(480px, 1.07fr);
    gap: 70px;
    padding-top: 68px;
  }

  .kl-home-hero__title {
    font-size: clamp(54px, 5vw, 72px);
  }

  .kl-home-hero__lead {
    font-size: 16px;
  }

  .kl-home-hero__visual {
    min-height: 480px;
  }

  .kl-home-now {
    grid-template-columns: 0.76fr repeat(3, minmax(0, 1fr));
    margin-top: -31px;
    padding-bottom: 70px;
  }

  .kl-home-now__intro {
    grid-column: auto;
    align-self: center;
    padding-right: 18px;
  }

  .kl-home-now-card {
    min-height: 116px;
    grid-template-columns: 1fr auto;
  }

  .kl-home-now-card__number {
    grid-column: 1 / -1;
  }

  .kl-home-section {
    padding-top: 84px;
    padding-bottom: 84px;
  }

  .kl-home-post-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: none;
  }

  .kl-home-category-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
  }

  .kl-home-category-card {
    min-height: 230px;
    padding: 18px;
  }

  .kl-home-area__inner {
    grid-template-columns: minmax(0, 0.8fr) minmax(520px, 1.2fr);
    gap: 70px;
    padding-top: 90px;
    padding-bottom: 120px;
  }

  .kl-home-area-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kl-home-business {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

@media (max-width: 420px) {
  .kl-home-masthead__note {
    max-width: 150px;
    text-align: right;
  }

  .kl-home-hero__visual {
    min-height: 330px;
  }

  .kl-home-hero-card__title {
    font-size: 10px;
  }

  .kl-home-category-card {
    min-height: 165px;
    padding: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kl-home a {
    transition: none;
  }
}

/* ========================================================================== 
   T-01 Store Features Grid
   ========================================================================== */
.kl-features-section {
  margin: 0 0 var(--kl-space-section);
}

.kl-features-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--kl-space-md);
  margin-top: var(--kl-space-md);
}

.kl-feature-item {
  box-sizing: border-box;
  padding: var(--kl-space-md);
  background-color: var(--kl-color-bg-paper);
  border: 1px solid var(--kl-color-border-strong);
  border-left: 5px solid var(--kl-color-accent);
  border-radius: 0 var(--kl-border-radius) var(--kl-border-radius) 0;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.kl-feature-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.kl-feature-item h4 {
  margin: 0 0 8px !important;
  font-size: var(--kl-font-title) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

.kl-feature-item p {
  margin: 0 !important;
  font-size: var(--kl-font-base) !important;
  line-height: var(--kl-line-height) !important;
}

@media (min-width: 681px) {
  .kl-features-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ==========================================================================
   P-01 Typography-first Hero Adjustment
   ========================================================================== */
.kl-type-eyecatch {
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  background:
    radial-gradient(circle at 91% 13%, rgba(255, 255, 255, 0.45) 0 56px, transparent 57px),
    linear-gradient(145deg, #f7a39a 0%, #f28a80 68%, #ec7a70 100%);
  padding: clamp(20px, 4vw, 38px);
  color: #2f3330;
  text-align: left;
}

.kl-type-eyecatch::after {
  position: absolute;
  right: -9%;
  bottom: -33%;
  width: 42%;
  aspect-ratio: 1;
  border: 1px solid rgba(47, 51, 48, 0.17);
  border-radius: 50%;
  content: "";
}

.kl-type-eyecatch__label,
.kl-type-eyecatch__name,
.kl-type-eyecatch__note {
  position: relative;
  z-index: 1;
  display: block;
}

.kl-type-eyecatch__label {
  font-size: clamp(8px, 1vw, 11px);
  font-weight: 900;
  letter-spacing: 0.16em;
}

.kl-type-eyecatch__name {
  max-width: 92%;
  font-size: clamp(25px, 4.2vw, 48px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -0.045em;
  overflow-wrap: anywhere;
}

.kl-type-eyecatch__note {
  font-size: clamp(7px, 0.8vw, 9px);
  font-weight: 900;
  letter-spacing: 0.14em;
}

.kl-type-eyecatch--compact {
  aspect-ratio: 1200 / 630;
  padding: 11px;
}

.kl-type-eyecatch--compact .kl-type-eyecatch__label {
  font-size: 6px;
}

.kl-type-eyecatch--compact .kl-type-eyecatch__name {
  font-size: clamp(11px, 1.3vw, 17px);
}

.kl-type-eyecatch--compact .kl-type-eyecatch__note {
  font-size: 5px;
}

.kl-home-new .kl-type-eyecatch {
  padding: 23px 27px 18px;
}

.kl-home-new .kl-type-eyecatch__name {
  max-width: 96%;
  font-size: clamp(25px, 3.2vw, 38px);
}

.kl-home-hero__visual {
  position: relative;
  display: block;
  min-height: 410px;
  padding: 0;
  isolation: isolate;
}

.kl-home .kl-home-hero__title,
.kl-home .kl-home-now__title,
.kl-home .kl-home-new .kl-home-section__title,
.kl-home .kl-home-category-card__title,
.kl-home .kl-home-area .kl-home-section__title,
.kl-home .kl-home-about .kl-home-section__title,
.kl-home .kl-home-business .kl-home-section__title {
  color: var(--kl-home-ink) !important;
}

.kl-home .kl-home-search .kl-home-section__title {
  color: #ffffff !important;
}

.kl-home .kl-home-hero__title em {
  color: var(--kl-home-coral-dark) !important;
}

.kl-home-hero__visual::before {
  inset: 6px 0 38px 18px;
  border: 1px solid rgba(47, 51, 48, 0.14);
  border-radius: 32px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.55), transparent 46%),
    var(--kl-home-teal-pale);
}

.kl-home-hero__word {
  position: absolute;
  inset: 38px 20px auto 46px;
  z-index: 0;
  color: var(--kl-home-teal);
}

.kl-home-hero__word span,
.kl-home-hero__word small,
.kl-home-hero__word strong {
  display: block;
}

.kl-home-hero__word span {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.kl-home-hero__word strong {
  margin-top: 9px;
  color: rgba(24, 114, 109, 0.19);
  font-size: clamp(72px, 16vw, 126px);
  font-weight: 900;
  line-height: 0.72;
  letter-spacing: -0.09em;
}

.kl-home-hero__word small {
  margin-top: 22px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.kl-home-hero__issues {
  position: absolute;
  right: 14px;
  bottom: 0;
  left: 14px;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  gap: 9px;
}

.kl-home-hero__issues .kl-home-hero-card {
  display: flex;
  min-width: 0;
  min-height: 0;
  grid-row: auto;
  flex-direction: column;
  border: 3px solid var(--kl-home-white);
  border-radius: 13px;
  box-shadow: 0 10px 24px rgba(47, 51, 48, 0.16);
  transform-origin: bottom center;
}

.kl-home-hero__issues .kl-home-hero-card--1 {
  transform: rotate(-3deg) translateY(3px);
}

.kl-home-hero__issues .kl-home-hero-card--2 {
  transform: translateY(-15px);
}

.kl-home-hero__issues .kl-home-hero-card--3 {
  transform: rotate(3deg) translateY(4px);
}

.kl-home-hero__issues .kl-home-hero-card:hover {
  z-index: 3;
  transform: translateY(-21px) rotate(0);
}

.kl-home-hero-card__number {
  position: absolute;
  top: 7px;
  left: 7px;
  z-index: 2;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: var(--kl-home-white);
  color: var(--kl-home-coral-dark);
  font-size: 9px;
  font-weight: 900;
}

.kl-home-hero__issues .kl-home-hero-card__image {
  aspect-ratio: 1200 / 630;
  min-height: 0;
  flex: none;
  overflow: hidden;
}

.kl-home-hero-card__category {
  display: block;
  padding: 8px 9px 0;
  color: var(--kl-home-teal);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.kl-home-hero__issues .kl-home-hero-card__title {
  min-height: 48px;
  padding: 3px 9px 9px;
  font-size: 10px;
  line-height: 1.45;
}

.kl-home-hero__visual .kl-home-hero__stamp {
  right: -3px;
  bottom: -22px;
  width: 72px;
  height: 72px;
  font-size: 10px;
}

@media (min-width: 900px) {
  .kl-home-hero__visual {
    min-height: 480px;
  }

  .kl-home-hero__word {
    top: 54px;
    left: 54px;
  }

  .kl-home-hero__word strong {
    font-size: clamp(100px, 9.5vw, 142px);
  }

  .kl-home-hero__issues {
    right: 20px;
    left: 20px;
    gap: 12px;
  }

  .kl-home-hero__issues .kl-home-hero-card__title {
    min-height: 57px;
    font-size: 11px;
  }
}

@media (max-width: 420px) {
  .kl-home-hero__visual {
    min-height: 350px;
  }

  .kl-home-hero__word {
    top: 30px;
    left: 32px;
  }

  .kl-home-hero__word strong {
    font-size: 76px;
  }

  .kl-home-hero__issues {
    right: 7px;
    left: 7px;
    gap: 5px;
  }

  .kl-home-hero-card__category {
    padding-right: 6px;
    padding-left: 6px;
    font-size: 7px;
  }

  .kl-home-hero__issues .kl-home-hero-card__title {
    min-height: 51px;
    padding-right: 6px;
    padding-left: 6px;
    font-size: 9px;
  }
}

/* ==========================================================================
   T-01 Magazine Article Layout — Current Store Article Rollout
   ========================================================================== */
body.kl-article-prototype {
  --kl-color-primary: #18726d;
  --kl-color-primary-dark: #135d59;
  --kl-color-primary-light: #d9eee9;
  --kl-color-cta-bg: #18726d;
  --kl-color-accent: #9c4038;
  --kl-color-accent-light: #f8d8d2;
  --kl-color-review: #7d5a16;
  --kl-color-review-light: #fff6d8;
  --kl-color-review-border: #e7d287;
  --kl-color-map-light: #e8f5fa;
  --kl-color-map-border: #b8d9e7;
  --kl-color-text: #3d423f;
  --kl-color-text-strong: #2f3330;
  --kl-color-text-muted: #68706b;
  --kl-color-text-on-primary: #ffffff;
  --kl-color-border: #dedbd4;
  --kl-color-border-strong: #c9c5bc;
  --kl-color-bg-subtle: #f7f3ee;
  --kl-color-bg-paper: #ffffff;
  --kl-color-bg-row: #fffaf6;
  --kl-color-bg-summary-start: #fff3ee;
  --kl-color-nav-bg: #edf5f2;
  --kl-border-radius: 18px;
  --kl-space-section: 34px;
  background: #fff9f3;
  color: var(--kl-color-text);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

body.kl-article-prototype #pagewrap,
body.kl-article-prototype #body {
  background: #fff9f3;
}

body.kl-article-prototype #content {
  box-sizing: border-box;
  float: none;
  width: min(1120px, calc(100% - 36px));
  max-width: none;
  margin: 0 auto;
  padding: 48px 0 72px;
}

body.kl-article-prototype #sidebar {
  display: none;
}

body.kl-article-prototype article.kl-article-prototype__post {
  margin: 0;
}

body.kl-article-prototype article.kl-article-prototype__post > .post-image,
body.kl-article-prototype article.kl-article-prototype__post > .post-content > .post-content-inner > .post-date-wrap,
body.kl-article-prototype article.kl-article-prototype__post > .post-content > .post-content-inner > .post-date,
body.kl-article-prototype article.kl-article-prototype__post > .post-content > .post-content-inner > .post-meta {
  display: none;
}

body.kl-article-prototype article.kl-article-prototype__post > .post-content {
  width: 100%;
  margin: 0;
  padding: 0;
}

body.kl-article-prototype article.kl-article-prototype__post .entry-content {
  width: min(820px, 100%);
  margin: 0 auto;
  color: var(--kl-color-text);
}

body.kl-article-prototype #kl-article-summary,
body.kl-article-prototype #kl-article-story,
body.kl-article-prototype #kl-article-info,
body.kl-article-prototype #kl-article-access,
body.kl-article-prototype #kl-article-links {
  scroll-margin-top: 28px;
}

.kl-article-hero {
  position: relative;
  display: grid;
  gap: 34px;
  align-items: center;
  margin: 0 0 70px;
  border-top: 1px solid #2f3330;
  border-bottom: 1px solid #2f3330;
  padding: 40px 0;
  color: #2f3330;
}

.kl-article-hero__copy {
  min-width: 0;
}

.kl-article-hero__eyebrow,
.kl-article-hero__area,
.kl-article-hero__lead {
  margin: 0;
}

.kl-article-hero__eyebrow {
  color: #18726d;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.kl-article-hero__eyebrow span {
  display: inline-block;
  margin-right: 8px;
  border-radius: 999px;
  background: #18726d;
  padding: 5px 10px;
  color: #ffffff;
}

.kl-article-hero__area {
  margin-top: 28px;
  color: #9c4038;
  font-size: 13px;
  font-weight: 800;
}

.kl-article-hero__title {
  margin: 9px 0 18px;
  color: #2f3330;
  font-size: clamp(32px, 5.2vw, 45px);
  font-weight: 900;
  line-height: 1.34;
  letter-spacing: -0.04em;
}

.kl-article-hero__shop,
.kl-article-hero__location,
.kl-article-hero__topic {
  display: block;
}

.kl-article-hero__location {
  margin-top: 2px;
  font-size: 0.72em;
  letter-spacing: -0.02em;
}

.kl-article-hero__topic {
  margin-top: 12px;
  color: #9c4038;
  font-size: 0.82em;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

.kl-article-hero__lead {
  max-width: 590px;
  color: #555d58;
  font-size: 15px;
  line-height: 1.9;
}

.kl-article-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 25px;
}

.kl-article-hero__meta > span {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  border: 1px solid #c9c5bc;
  border-radius: 999px;
  background: #ffffff;
  padding: 6px 12px;
  color: #5f6661;
  font-size: 11px;
  font-weight: 700;
}

.kl-article-hero__meta .kl-article-hero__category {
  border-color: #9c4038;
  background: #f8d8d2;
  color: #75322c;
}

.kl-article-hero__cover {
  position: relative;
  overflow: hidden;
  margin: 0;
  border: 6px solid #ffffff;
  border-radius: 20px;
  background: #f28a80;
  box-shadow: 0 18px 42px rgba(47, 51, 48, 0.17);
  transform: rotate(1.5deg);
}

.kl-article-hero__cover::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(47, 51, 48, 0.13);
  border-radius: 14px 14px 0 0;
  content: "";
  pointer-events: none;
}

.kl-article-hero__cover img {
  display: block;
  width: 100%;
  height: auto;
}

.kl-article-hero__cover .kl-type-eyecatch {
  aspect-ratio: 1200 / 630;
}

.kl-article-hero__cover figcaption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: #ffffff;
  padding: 9px 11px 6px;
  color: #68706b;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.kl-article-hero__cover figcaption span {
  color: #9c4038;
}

.kl-article-hero__issue {
  position: absolute;
  right: -7px;
  bottom: -29px;
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;
  border: 2px solid #9c4038;
  border-radius: 50%;
  background: #f5e5a8;
  color: #9c4038;
  font-size: 9px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-align: center;
  transform: rotate(7deg);
}

.kl-article-sidebar {
  min-width: 0;
  margin-top: 26px;
}

.kl-article-sidebar__sticky {
  display: grid;
  gap: 16px;
}

.kl-article-sidebar__panel {
  border: 1px solid var(--kl-color-border);
  border-radius: 18px;
  background: var(--kl-color-bg-paper);
  padding: 22px 20px;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.06);
}

.kl-article-sidebar__panel--notice {
  border-color: #e5b6ae;
  background: #fff1ed;
}

.kl-article-sidebar__eyebrow {
  margin: 0 0 6px;
  color: var(--kl-color-accent);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.kl-article-sidebar__title {
  margin: 0 0 17px;
  color: var(--kl-color-text-strong) !important;
  font-size: 17px;
  font-weight: 900;
  line-height: 1.5;
}

.kl-article-sidebar__nav {
  display: grid;
  gap: 7px;
}

.kl-article-sidebar__nav a {
  display: grid;
  min-height: 43px;
  grid-template-columns: 26px 1fr;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  background: var(--kl-color-bg-subtle);
  padding: 8px 10px;
  color: var(--kl-color-text) !important;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.kl-article-sidebar__nav a:hover,
.kl-article-sidebar__nav a:focus-visible {
  background: var(--kl-color-primary-light);
  color: var(--kl-color-primary-dark) !important;
}

.kl-article-sidebar__nav a span {
  color: var(--kl-color-accent);
  font-size: 9px;
}

.kl-article-sidebar__panel--notice p:not(.kl-article-sidebar__eyebrow) {
  margin: 0 0 16px;
  color: var(--kl-color-text);
  font-size: 12px;
  line-height: 1.85;
}

.kl-article-sidebar__button,
.kl-article-sidebar__category {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 10px 15px;
  font-size: 11px;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
}

.kl-article-sidebar__button {
  width: 100%;
  background: var(--kl-color-accent);
  color: #ffffff !important;
}

.kl-article-sidebar__category {
  justify-content: space-between;
  border: 1px solid var(--kl-color-primary);
  color: var(--kl-color-primary-dark) !important;
}

.kl-article-sidebar__category span {
  margin-left: 12px;
}

@media (min-width: 1024px) {
  body.kl-article-prototype article.kl-article-prototype__post {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    align-items: start;
    column-gap: 34px;
  }

  body.kl-article-prototype article.kl-article-prototype__post > .kl-article-hero {
    grid-column: 1 / -1;
  }

  body.kl-article-prototype article.kl-article-prototype__post > .post-content {
    grid-column: 1;
  }

  body.kl-article-prototype article.kl-article-prototype__post > .kl-article-sidebar {
    grid-column: 2;
    grid-row: 2;
    margin-top: 0;
  }

  .kl-article-sidebar__sticky {
    position: sticky;
    top: 24px;
  }
}

body.kl-article-prototype .kl-t01-part {
  margin-bottom: 30px;
  color: var(--kl-color-text);
}

body.kl-article-prototype .kl-summary-box,
body.kl-article-prototype .kl-access-box,
body.kl-article-prototype .kl-check-box,
body.kl-article-prototype .kl-business-cta,
body.kl-article-prototype .kl-story-box,
body.kl-article-prototype .kl-review-box,
body.kl-article-prototype .kl-related-links {
  border-width: 1px;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.06);
}

body.kl-article-prototype .kl-part-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  border: 0;
  padding: 0;
  color: var(--kl-color-text-strong) !important;
  font-size: 20px;
  font-weight: 900;
}

body.kl-article-prototype .kl-part-title::before {
  display: inline-block;
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
  border-radius: 50% 50% 50% 0;
  background: var(--kl-color-accent);
  content: "";
  transform: rotate(-45deg);
}

body.kl-article-prototype .kl-summary-box {
  border-color: #e5b6ae;
  border-left: 1px solid #e5b6ae;
  background:
    radial-gradient(circle at 94% 8%, rgba(255, 255, 255, 0.7) 0 58px, transparent 59px),
    #f8d8d2;
}

body.kl-article-prototype .kl-summary-box .kl-part-title {
  display: flex;
  border-bottom: 0;
}

body.kl-article-prototype .kl-summary-box .kl-compact-list {
  display: grid;
  gap: 9px;
  padding: 0;
  list-style: none;
}

body.kl-article-prototype .kl-summary-box .kl-compact-list li {
  position: relative;
  margin: 0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  padding: 12px 13px 12px 35px;
  font-size: 14px;
  line-height: 1.7;
}

body.kl-article-prototype .kl-summary-box .kl-compact-list li::before {
  position: absolute;
  top: 13px;
  left: 13px;
  color: #9c4038;
  content: "✓";
  font-weight: 900;
}

body.kl-article-prototype .kl-story-box {
  display: grid;
  gap: 14px;
  border-color: var(--kl-color-border);
  background: #ffffff;
}

body.kl-article-prototype .kl-story-box > .kl-part-title,
body.kl-article-prototype .kl-story-box > .kl-text-small {
  grid-column: 1 / -1;
}

body.kl-article-prototype .kl-feature-block {
  margin: 0;
  border: 0;
  border-radius: 15px;
  background: #fff6e8;
  padding: 18px;
}

body.kl-article-prototype .kl-feature-title {
  color: #75322c;
  font-size: 15px;
  line-height: 1.6;
}

body.kl-article-prototype .kl-review-box {
  border-color: #e7d287;
  background: #fff3c9;
}

body.kl-article-prototype .kl-review-score {
  border: 0;
  border-radius: 999px;
  background: #ffffff;
  color: #755214;
}

body.kl-article-prototype .kl-check-box {
  border-color: #c9cfea;
  background: #e8eafa;
}

body.kl-article-prototype .kl-checklist li {
  border-bottom-color: rgba(47, 51, 48, 0.12);
}

body.kl-article-prototype .kl-info-table {
  overflow: hidden;
  border-color: var(--kl-color-border-strong) !important;
  border-radius: 16px;
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.05);
}

body.kl-article-prototype .kl-info-table th,
body.kl-article-prototype .kl-info-table td {
  border-width: 0 0 1px !important;
  border-color: var(--kl-color-border) !important;
  padding: 17px 18px;
}

body.kl-article-prototype .kl-info-table tr:last-child th,
body.kl-article-prototype .kl-info-table tr:last-child td {
  border-bottom: 0 !important;
}

body.kl-article-prototype .kl-info-table th {
  background: #d9eee9 !important;
  color: #135d59 !important;
}

body.kl-article-prototype .kl-info-table td {
  background: #ffffff !important;
}

body.kl-article-prototype .kl-access-box {
  border-color: #b8d9e7;
  background: #dceef7;
}

body.kl-article-prototype .kl-related-links {
  border-color: #b9d9d1;
  background: #d9eee9;
}

body.kl-article-prototype .kl-link-button,
body.kl-article-prototype .kl-map-link {
  min-height: 48px;
  border-radius: 999px;
  padding: 11px 20px;
}

body.kl-article-prototype .kl-business-cta {
  border-color: #18726d;
  background:
    radial-gradient(circle at 8% 20%, rgba(255, 255, 255, 0.08) 0 55px, transparent 56px),
    #18726d;
  box-shadow: none;
}

body.kl-article-prototype .kl-business-cta .kl-part-title,
body.kl-article-prototype .kl-business-cta .kl-text-small,
body.kl-article-prototype .kl-business-cta a {
  color: #ffffff !important;
}

body.kl-article-prototype .kl-business-cta .kl-part-title {
  justify-content: center;
}

body.kl-article-prototype .kl-business-cta .kl-part-title::before {
  background: #f5e5a8;
}

body.kl-article-prototype .kl-updated-note {
  border: 1px dashed #c9c5bc;
  border-radius: 14px;
  background: #f7f3ee;
  padding: 18px;
}

body.kl-article-prototype .post-nav {
  width: min(820px, 100%);
  margin-right: auto;
  margin-left: auto;
  border-radius: 18px;
}

@media (min-width: 760px) {
  .kl-article-hero {
    grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr);
    gap: 58px;
    padding: 58px 10px;
  }

  body.kl-article-prototype .kl-summary-box .kl-compact-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.kl-article-prototype .kl-story-box {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  body.kl-article-prototype #content {
    width: min(100% - 28px, 1120px);
    padding-top: 28px;
  }

  .kl-article-hero {
    gap: 28px;
    margin-bottom: 48px;
    padding: 32px 0 42px;
  }

  .kl-article-hero__area {
    margin-top: 22px;
  }

  .kl-article-hero__title {
    font-size: clamp(30px, 9vw, 42px);
  }

  .kl-article-hero__cover {
    border-width: 4px;
    border-radius: 16px;
    transform: rotate(0.7deg);
  }

  .kl-article-hero__issue {
    right: -3px;
    bottom: -27px;
  }

  body.kl-article-prototype .kl-summary-box,
  body.kl-article-prototype .kl-access-box,
  body.kl-article-prototype .kl-check-box,
  body.kl-article-prototype .kl-business-cta,
  body.kl-article-prototype .kl-story-box,
  body.kl-article-prototype .kl-review-box,
  body.kl-article-prototype .kl-related-links {
    padding: 19px;
  }

  body.kl-article-prototype .kl-part-title {
    font-size: 18px;
  }

  body.kl-article-prototype .kl-info-table {
    border-radius: 14px;
  }
}

@media (prefers-color-scheme: dark) {
  body.kl-article-prototype {
    --kl-color-primary: #7fc9bd;
    --kl-color-primary-dark: #a9ddd3;
    --kl-color-primary-light: #1d403b;
    --kl-color-accent: #f0aca3;
    --kl-color-text-on-primary: #14201d;
    --kl-color-text: #e7e7e2;
    --kl-color-text-strong: #ffffff;
    --kl-color-text-muted: #b6bbb7;
    --kl-color-bg-paper: #202522;
    --kl-color-bg-subtle: #252b27;
    --kl-color-bg-row: #252b27;
    --kl-color-border: #3d4540;
    --kl-color-border-strong: #56615a;
    background: #181c19;
  }

  body.kl-article-prototype #pagewrap,
  body.kl-article-prototype #body {
    background: #181c19;
  }

  .kl-article-hero {
    border-color: #6d756f;
    color: #f4f4ef;
  }

  .kl-article-hero__title,
  .kl-article-hero__lead {
    color: #f4f4ef;
  }

  .kl-article-hero__topic {
    color: #f0aca3;
  }

  body.kl-article-prototype .kl-story-box,
  body.kl-article-prototype .kl-info-table td {
    background: #202522 !important;
  }

  body.kl-article-prototype .kl-summary-box {
    border-color: #68443e;
    background: #3a2724;
  }

  body.kl-article-prototype .kl-summary-box .kl-compact-list li {
    background: #272d29;
  }

  body.kl-article-prototype .kl-feature-block {
    background: #30251f;
  }

  body.kl-article-prototype .kl-feature-title {
    color: #f0aca3;
  }

  body.kl-article-prototype .kl-review-box {
    border-color: #60552e;
    background: #352f1d;
  }

  body.kl-article-prototype .kl-check-box {
    border-color: #454a68;
    background: #292d3e;
  }

  body.kl-article-prototype .kl-access-box {
    border-color: #355767;
    background: #1d3038;
  }

  body.kl-article-prototype .kl-related-links {
    border-color: #315a50;
    background: #1d322c;
  }

  body.kl-article-prototype .kl-info-table th {
    background: #1d403b !important;
    color: #bfe7de !important;
  }

  body.kl-article-prototype .kl-updated-note {
    background: #252b27;
  }

  body.kl-article-prototype .kl-article-sidebar__panel--notice {
    border-color: #68443e;
    background: #3a2724;
  }

  body.kl-article-prototype .kl-article-sidebar__nav a {
    background: #272d29;
    color: #e7e7e2 !important;
  }

  body.kl-article-prototype .kl-article-sidebar__nav a:hover,
  body.kl-article-prototype .kl-article-sidebar__nav a:focus-visible {
    background: #1d403b;
    color: #bfe7de !important;
  }
}

body.tf_darkmode.kl-article-prototype {
  --kl-color-primary: #7fc9bd;
  --kl-color-primary-dark: #a9ddd3;
  --kl-color-primary-light: #1d403b;
  --kl-color-accent: #f0aca3;
  --kl-color-text-on-primary: #14201d;
  --kl-color-text: #e7e7e2;
  --kl-color-text-strong: #ffffff;
  --kl-color-text-muted: #b6bbb7;
  --kl-color-bg-paper: #202522;
  --kl-color-bg-subtle: #252b27;
  --kl-color-bg-row: #252b27;
  --kl-color-border: #3d4540;
  --kl-color-border-strong: #56615a;
  background: #181c19;
}

body.tf_darkmode.kl-article-prototype #pagewrap,
body.tf_darkmode.kl-article-prototype #body,
body.tf_darkmode.kl-article-prototype .kl-story-box,
body.tf_darkmode.kl-article-prototype .kl-info-table td {
  background: #202522 !important;
}

body.tf_darkmode.kl-article-prototype .kl-summary-box {
  border-color: #68443e;
  background: #3a2724;
}

body.tf_darkmode.kl-article-prototype .kl-summary-box .kl-compact-list li {
  background: #272d29;
}

body.tf_darkmode.kl-article-prototype .kl-feature-block {
  background: #30251f;
}

body.tf_darkmode.kl-article-prototype .kl-feature-title {
  color: #f0aca3;
}

body.tf_darkmode.kl-article-prototype .kl-review-box {
  border-color: #60552e;
  background: #352f1d;
}

body.tf_darkmode.kl-article-prototype .kl-check-box {
  border-color: #454a68;
  background: #292d3e;
}

body.tf_darkmode.kl-article-prototype .kl-access-box {
  border-color: #355767;
  background: #1d3038;
}

body.tf_darkmode.kl-article-prototype .kl-related-links {
  border-color: #315a50;
  background: #1d322c;
}

body.tf_darkmode.kl-article-prototype .kl-info-table th {
  background: #1d403b !important;
  color: #bfe7de !important;
}

body.tf_darkmode.kl-article-prototype .kl-article-sidebar__panel--notice {
  border-color: #68443e;
  background: #3a2724;
}

body.tf_darkmode.kl-article-prototype .kl-article-sidebar__nav a {
  background: #272d29;
  color: #e7e7e2 !important;
}

body.tf_darkmode.kl-article-prototype .kl-article-sidebar__nav a:hover,
body.tf_darkmode.kl-article-prototype .kl-article-sidebar__nav a:focus-visible {
  background: #1d403b;
  color: #bfe7de !important;
}

/* ========================================================================== 
   T-01 Themify Builder native layout
   各セクションをText / Image / Calloutモジュールとして編集できる店舗記事用。
   ========================================================================== */

.single-post .kl-t01-builder {
  --kl-t01-ink: #2f3330;
  --kl-t01-muted: #5f6661;
  --kl-t01-green: #18726d;
  --kl-t01-green-dark: #135d59;
  --kl-t01-coral: #9c4038;
  --kl-t01-coral-soft: #f8d8d2;
  --kl-t01-yellow: #f5e5a8;
  --kl-t01-paper: #fef9f3;
  --kl-t01-border: #d7d2c8;
  color: var(--kl-t01-ink);
}

.single-post .post-content-inner:has(.kl-t01-builder) > .post-meta {
  display: none;
}

.single-post .kl-t01-builder > .row_inner {
  width: min(1120px, calc(100% - 32px));
  max-width: 1120px;
  margin-right: auto;
  margin-left: auto;
}

.single-post .kl-t01-builder-hero {
  background: var(--kl-t01-paper);
}

.single-post .kl-t01-builder-hero > .row_inner {
  position: relative;
  align-items: center;
  border-top: 1px solid var(--kl-t01-ink);
  border-bottom: 1px solid var(--kl-t01-ink);
  padding-top: clamp(36px, 5vw, 62px);
  padding-bottom: clamp(40px, 6vw, 70px);
}

.single-post .module-text.kl-t01-hero-copy {
  margin: 0;
}

.single-post .kl-t01-hero-copy .kl-t01-eyebrow,
.single-post .kl-t01-hero-copy .kl-t01-area,
.single-post .kl-t01-hero-copy .kl-t01-lead,
.single-post .kl-t01-hero-copy .kl-t01-meta {
  margin: 0;
}

.single-post .kl-t01-hero-copy .kl-t01-eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  color: var(--kl-t01-green);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.single-post .kl-t01-hero-copy .kl-t01-eyebrow strong {
  border-radius: 999px;
  background: var(--kl-t01-green);
  padding: 6px 11px;
  color: #fff;
}

.single-post .kl-t01-hero-copy .kl-t01-area {
  margin-top: 27px;
  color: var(--kl-t01-coral);
  font-size: 13px;
  font-weight: 800;
}

.single-post .kl-t01-hero-copy h1 {
  margin: 8px 0 19px;
  color: var(--kl-t01-ink);
  font-size: clamp(33px, 4.8vw, 48px);
  font-weight: 900;
  line-height: 1.28;
  letter-spacing: -0.045em;
}

.single-post .kl-t01-hero-copy h1 span,
.single-post .kl-t01-hero-copy h1 small,
.single-post .kl-t01-hero-copy h1 em {
  display: block;
}

.single-post .kl-t01-hero-copy h1 small {
  margin-top: 4px;
  font-size: 0.56em;
  font-style: normal;
  letter-spacing: -0.02em;
}

.single-post .kl-t01-hero-copy h1 em {
  margin-top: 12px;
  color: var(--kl-t01-coral);
  font-size: 0.67em;
  font-style: normal;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

.single-post .kl-t01-hero-copy .kl-t01-lead {
  max-width: 580px;
  color: var(--kl-t01-muted);
  font-size: 15px;
  line-height: 1.9;
}

.single-post .kl-t01-hero-copy .kl-t01-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}

.single-post .kl-t01-hero-copy .kl-t01-meta span {
  display: inline-flex;
  min-height: 35px;
  align-items: center;
  border: 1px solid #c9c5bc;
  border-radius: 999px;
  background: #fff;
  padding: 6px 12px;
  color: var(--kl-t01-muted);
  font-size: 11px;
  font-weight: 800;
}

.single-post .kl-t01-hero-copy .kl-t01-meta span:first-child {
  border-color: var(--kl-t01-coral);
  background: var(--kl-t01-coral-soft);
  color: #75322c;
}

/* ThemifyのPost Metaモジュールを、ヒーロー内の補助情報として整える。 */
.single-post .kl-t01-builder-hero .module-post-meta {
  margin: 20px 0 0;
  color: var(--kl-t01-muted);
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.55;
}

.single-post .kl-t01-builder-hero .module-post-meta .entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.single-post .kl-t01-builder-hero .module-post-meta .tbp_post_meta_item {
  margin: 0;
  color: inherit;
  font: inherit;
}

.single-post .kl-t01-builder-hero .module-post-meta .tbp_post_meta_terms,
.single-post .kl-t01-builder-hero .module-post-meta .tbp_post_meta_date {
  border: 1px solid #c9c5bc;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  padding: 6px 11px;
}

.single-post .kl-t01-builder-hero .module-post-meta .tbp_post_meta_terms:first-child {
  border-color: #e5b6ae;
  background: var(--kl-t01-coral-soft);
  color: #75322c;
}

.single-post .kl-t01-builder-hero .module-post-meta a {
  color: inherit;
  font: inherit;
  text-decoration: none;
}

.single-post .kl-t01-builder-hero .module-post-meta a:hover,
.single-post .kl-t01-builder-hero .module-post-meta a:focus-visible {
  color: var(--kl-t01-green-dark);
  text-decoration: underline;
}

.single-post .kl-t01-builder-hero .module-post-meta .tbp_term_sep {
  margin: 0 3px;
  color: #918d85;
  font: inherit;
}

.single-post .kl-t01-builder-hero .kl-t01-hero-image-col-son,
.single-post .kl-t01-builder-hero .tb-column:last-child {
  position: relative;
}

.single-post .module-image.kl-t01-hero-image {
  overflow: hidden;
  margin: 0;
  border: 6px solid #fff;
  border-radius: 20px;
  background: #f28a80;
  box-shadow: 0 18px 42px rgba(47, 51, 48, 0.17);
  transform: rotate(1.5deg);
}

.single-post .module-image.kl-t01-hero-image img {
  display: block;
  width: 100%;
}

.single-post .module-text.kl-t01-hero-stamp {
  position: absolute;
  right: -8px;
  bottom: -30px;
  z-index: 4;
  display: grid;
  width: 78px;
  height: 78px;
  place-items: center;
  margin: 0;
  border: 2px solid var(--kl-t01-coral);
  border-radius: 50%;
  background: var(--kl-t01-yellow);
  color: var(--kl-t01-coral);
  box-shadow: none;
  transform: rotate(7deg);
}

.single-post .module-text.kl-t01-hero-stamp p {
  margin: 0;
  font-size: 9px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-align: center;
}

.single-post .kl-t01-builder-content {
  background: #fff;
}

.single-post .kl-t01-builder-content > .row_inner {
  align-items: flex-start;
  padding-top: clamp(46px, 6vw, 72px);
  padding-bottom: 44px;
}

.single-post .kl-t01-builder-content .module,
.single-post .kl-t01-builder-content .module-callout {
  margin-bottom: 28px;
}

.single-post .module-text.kl-t01-section,
.single-post .module-callout.kl-t01-section,
.single-post .module-text.kl-t01-feature-card,
.single-post .module-text.kl-t01-sidebar-panel,
.single-post .module-callout.kl-t01-sidebar-panel {
  border: 1px solid var(--kl-t01-border);
  border-radius: 20px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.06);
}

.single-post .kl-t01-section h2,
.single-post .kl-t01-story-intro h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  border: 0;
  padding: 0;
  color: var(--kl-t01-ink);
  font-size: 21px;
  font-weight: 900;
}

.single-post .kl-t01-section h2::before,
.single-post .kl-t01-story-intro h2::before {
  display: inline-block;
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
  border-radius: 50% 50% 50% 0;
  background: var(--kl-t01-coral);
  content: "";
  transform: rotate(-45deg);
}

.single-post .kl-t01-section p,
.single-post .kl-t01-section li,
.single-post .kl-t01-story-intro p,
.single-post .kl-t01-feature-card p {
  color: #4f5752;
  font-size: 14px;
  line-height: 1.85;
}

.single-post .module-text.kl-t01-summary {
  border-color: #e5b6ae;
  background:
    radial-gradient(circle at 94% 8%, rgba(255, 255, 255, 0.7) 0 58px, transparent 59px),
    var(--kl-t01-coral-soft);
}

.single-post .kl-t01-summary ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-post .kl-t01-summary li {
  position: relative;
  margin: 0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.75);
  padding: 12px 13px 12px 35px;
}

.single-post .kl-t01-summary li::before {
  position: absolute;
  top: 12px;
  left: 13px;
  color: var(--kl-t01-coral);
  content: "✓";
  font-weight: 900;
}

.single-post .module-text.kl-t01-story-intro {
  margin-bottom: 14px;
}

.single-post .kl-t01-feature-grid {
  margin-bottom: 28px;
}

.single-post .module-text.kl-t01-feature-card {
  height: 100%;
  margin-bottom: 0;
  border-color: #eadbc7;
  border-radius: 15px;
  background: #fff6e8;
  padding: 18px;
}

.single-post .kl-t01-feature-card h3 {
  margin: 0 0 10px;
  color: #75322c;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.55;
}

.single-post .module-text.kl-t01-review {
  border-color: #e7d287;
  background: #fff3c9;
}

.single-post .kl-t01-review .kl-t01-review-score {
  display: inline-block;
  border-radius: 999px;
  background: #fff;
  padding: 8px 13px;
  color: #755214;
  font-weight: 800;
}

.single-post .module-text.kl-t01-check {
  border-color: #c9cfea;
  background: #e8eafa;
}

.single-post .kl-t01-check li {
  border-bottom: 1px solid rgba(47, 51, 48, 0.12);
  padding: 9px 0;
}

.single-post .kl-t01-check li:last-child {
  border-bottom: 0;
}

.single-post .module-text.kl-t01-info {
  border: 0;
  padding: 0;
  box-shadow: none;
}

.single-post .kl-t01-info table {
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--kl-t01-border);
  border-radius: 16px;
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.05);
}

.single-post .kl-t01-info th,
.single-post .kl-t01-info td {
  border: 0;
  border-bottom: 1px solid var(--kl-t01-border);
  padding: 17px 18px;
  text-align: left;
  vertical-align: top;
}

.single-post .kl-t01-info th {
  width: 29%;
  background: #d9eee9;
  color: var(--kl-t01-green-dark);
  font-weight: 900;
}

.single-post .kl-t01-info td {
  background: #fff;
  color: #4f5752;
}

.single-post .kl-t01-info tr:last-child th,
.single-post .kl-t01-info tr:last-child td {
  border-bottom: 0;
}

.single-post .module-text.kl-t01-access {
  border-color: #b8d9e7;
  background: #dceef7;
}

.single-post .kl-t01-access a,
.single-post .kl-t01-link-list a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--kl-t01-green);
  padding: 11px 20px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.single-post .module-text.kl-t01-links {
  border-color: #b9d9d1;
  background: #d9eee9;
}

/*
 * 手作業で組み直したSubRow版のアクセス／関連リンク。
 * 旧Textモジュールには触れず、SubRow内の見出しとColumnだけを対象にする。
 */
.single-post .kl-t01-builder-content .module_subrow:has(> .module_column > .module-text > .tb_text_wrap > h2#kl-article-access) > .module_column,
.single-post .kl-t01-builder-content .module_subrow.tb_r1dm330 > .module_column.tb_6vl3331 {
  border: 1px solid #b8d9e7;
  border-radius: 20px;
  background: #dceef7;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.06);
}

.single-post .kl-t01-builder-content .module_subrow:has(> .module_column > .module-text > .tb_text_wrap > h2#kl-article-links) > .module_column,
.single-post .kl-t01-builder-content .module_subrow.tb_dpza632 > .module_column.tb_ooay632 {
  border: 1px solid #b9d9d1;
  border-radius: 20px;
  background: #d9eee9;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.06);
}

.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-access) h2,
.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-links) h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  border: 0;
  padding: 0;
  color: var(--kl-t01-ink);
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 21px;
  font-weight: 900;
  line-height: 1.3;
}

.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-access) h2::before,
.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-links) h2::before {
  display: inline-block;
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
  border-radius: 50% 50% 50% 0;
  background: var(--kl-t01-coral);
  content: "";
  transform: rotate(-45deg);
}

.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-access) .module,
.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-links) .module {
  margin-bottom: 16px;
}

.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-access) .module:last-child,
.single-post .kl-t01-builder-content .module_subrow:has(h2#kl-article-links) .module:last-child {
  margin-bottom: 0;
}

.single-post .kl-t01-link-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.single-post .module-callout.kl-t01-business {
  border-color: var(--kl-t01-green);
  background: var(--kl-t01-green);
  color: #fff;
  text-align: center;
  box-shadow: none;
}

.single-post .kl-t01-business .callout-heading,
.single-post .kl-t01-business .callout-content,
.single-post .kl-t01-business .callout-content p {
  color: #fff;
}

.single-post .kl-t01-business .callout-button a {
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: #fff;
  color: var(--kl-t01-green-dark);
}

.single-post .module-text.kl-t01-updated {
  border: 1px dashed #c9c5bc;
  border-radius: 14px;
  background: #f7f3ee;
  padding: 18px;
}

.single-post .kl-t01-updated p {
  margin: 0;
  color: var(--kl-t01-muted);
  font-size: 12px;
  line-height: 1.8;
}

.single-post .kl-t01-sidebar-col > .tb-column-inner {
  position: sticky;
  top: 24px;
}

.single-post .module-text.kl-t01-sidebar-panel,
.single-post .module-callout.kl-t01-sidebar-panel {
  border-radius: 18px;
  padding: 21px 19px;
}

.single-post .kl-t01-sidebar-panel .kl-t01-sidebar-label {
  margin: 0 0 6px;
  color: var(--kl-t01-coral);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.single-post .kl-t01-sidebar-panel h2,
.single-post .kl-t01-sidebar-panel .callout-heading {
  margin: 0 0 16px;
  color: var(--kl-t01-ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.5;
}

.single-post .kl-t01-sidebar-menu nav {
  display: grid;
  gap: 7px;
}

.single-post .kl-t01-sidebar-menu nav a {
  display: grid;
  min-height: 43px;
  grid-template-columns: 26px 1fr;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  background: #f7f3ee;
  padding: 8px 10px;
  color: var(--kl-t01-ink);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.single-post .kl-t01-sidebar-menu nav a:hover,
.single-post .kl-t01-sidebar-menu nav a:focus-visible {
  background: #d9eee9;
  color: var(--kl-t01-green-dark);
}

.single-post .kl-t01-sidebar-menu nav span {
  color: var(--kl-t01-coral);
  font-size: 9px;
}

.single-post .module-callout.kl-t01-sidebar-notice {
  border-color: #e5b6ae;
  background: #fff1ed;
}

.single-post .kl-t01-sidebar-notice .callout-content,
.single-post .kl-t01-sidebar-notice .callout-content p {
  color: #4f5752;
  font-size: 12px;
  line-height: 1.85;
}

.single-post .kl-t01-sidebar-notice .callout-button a,
.single-post .kl-t01-sidebar-category .callout-button a {
  display: flex;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--kl-t01-coral);
  color: #fff !important;
  font-size: 11px;
  font-weight: 900;
}

.single-post .module-callout.kl-t01-sidebar-category {
  border-color: #b9d9d1;
  background: #fff;
}

.single-post .kl-t01-sidebar-category .callout-button a {
  border: 1px solid var(--kl-t01-green);
  background: #fff;
  color: var(--kl-t01-green-dark) !important;
}

@media (max-width: 900px) {
  .single-post .kl-t01-builder-content .kl-t01-sidebar-col > .tb-column-inner {
    position: static;
  }

  .single-post .kl-t01-summary ul {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .single-post .kl-t01-builder > .row_inner {
    width: min(100% - 28px, 1120px);
  }

  .single-post .kl-t01-builder-hero > .row_inner {
    padding-top: 32px;
    padding-bottom: 48px;
  }

  .single-post .kl-t01-hero-copy h1 {
    font-size: clamp(30px, 9vw, 42px);
  }

  .single-post .module-image.kl-t01-hero-image {
    margin-top: 24px;
    border-width: 4px;
    border-radius: 16px;
    transform: rotate(0.7deg);
  }

  .single-post .module-text.kl-t01-hero-stamp {
    right: -2px;
    bottom: -27px;
  }

  .single-post .module-text.kl-t01-section,
  .single-post .module-callout.kl-t01-section,
  .single-post .module-text.kl-t01-feature-card,
  .single-post .module-text.kl-t01-sidebar-panel,
  .single-post .module-callout.kl-t01-sidebar-panel {
    padding: 19px;
  }

  .single-post .kl-t01-section h2,
  .single-post .kl-t01-story-intro h2 {
    font-size: 18px;
  }

  .single-post .kl-t01-info th,
  .single-post .kl-t01-info td {
    display: block;
    width: 100%;
  }

  .single-post .kl-t01-info th {
    border-bottom: 0;
    padding-bottom: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kl-home-hero__issues .kl-home-hero-card,
  body.kl-article-prototype a {
    transition: none;
  }
}

/* ========================================================================== 
   T-04 Themify Builder native layout
   開催日時・会場・変更確認を優先するイベント記事用。
   ========================================================================== */

.single-post .kl-t04-builder {
  --kl-t04-ink: #2f3330;
  --kl-t04-muted: #5f6661;
  --kl-t04-green: #18726d;
  --kl-t04-green-dark: #135d59;
  --kl-t04-coral: #9c4038;
  --kl-t04-coral-soft: #f8d8d2;
  --kl-t04-yellow: #f5e5a8;
  --kl-t04-yellow-soft: #fff5ce;
  --kl-t04-blue: #dceef7;
  --kl-t04-mint: #d9eee9;
  --kl-t04-paper: #fef9f3;
  --kl-t04-border: #d7d2c8;
  color: var(--kl-t04-ink);
}

.single-post .post-content-inner:has(.kl-t04-builder) > .post-meta {
  display: none;
}

.single-post .kl-t04-builder > .row_inner {
  width: min(1120px, calc(100% - 32px));
  max-width: 1120px;
  margin-right: auto;
  margin-left: auto;
}

.single-post .kl-t04-builder-hero {
  background: var(--kl-t04-paper);
}

.single-post .kl-t04-builder-hero > .row_inner {
  position: relative;
  align-items: center;
  border-top: 1px solid var(--kl-t04-ink);
  border-bottom: 1px solid var(--kl-t04-ink);
  padding-top: clamp(36px, 5vw, 62px);
  padding-bottom: clamp(40px, 6vw, 70px);
}

.single-post .module-text.kl-t04-hero-copy {
  margin: 0;
}

.single-post .kl-t04-eyebrow,
.single-post .kl-t04-area,
.single-post .kl-t04-lead,
.single-post .kl-t04-status {
  margin: 0;
}

.single-post .kl-t04-eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  color: var(--kl-t04-green);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.single-post .kl-t04-eyebrow strong {
  border-radius: 999px;
  background: var(--kl-t04-green);
  padding: 6px 11px;
  color: #fff;
}

.single-post .kl-t04-status {
  display: inline-flex;
  min-height: 35px;
  align-items: center;
  margin-top: 24px;
  border: 1px solid #e5b6ae;
  border-radius: 999px;
  background: var(--kl-t04-coral-soft);
  padding: 6px 12px;
  color: #75322c;
  font-size: 11px;
  font-weight: 900;
}

.single-post .kl-t04-area {
  margin-top: 15px;
  color: var(--kl-t04-coral);
  font-size: 13px;
  font-weight: 800;
}

.single-post .kl-t04-hero-copy h1 {
  margin: 8px 0 19px;
  color: var(--kl-t04-ink);
  font-size: clamp(32px, 4.6vw, 47px);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: -0.045em;
}

.single-post .kl-t04-hero-copy h1 span,
.single-post .kl-t04-hero-copy h1 small {
  display: block;
}

.single-post .kl-t04-hero-copy h1 small {
  margin-top: 10px;
  color: var(--kl-t04-coral);
  font-size: 0.56em;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: -0.02em;
}

.single-post .kl-t04-lead {
  max-width: 580px;
  color: var(--kl-t04-muted);
  font-size: 15px;
  line-height: 1.9;
}

/* 店舗記事と同じPost Metaモジュールで、カテゴリー・タグ・更新日を表示する。 */
.single-post .kl-t04-builder-hero .module-post-meta {
  margin: 20px 0 0;
  color: var(--kl-t04-muted);
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.55;
}

.single-post .kl-t04-builder-hero .module-post-meta .entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.single-post .kl-t04-builder-hero .module-post-meta .tbp_post_meta_item {
  margin: 0;
  color: inherit;
  font: inherit;
}

.single-post .kl-t04-builder-hero .module-post-meta .tbp_post_meta_terms,
.single-post .kl-t04-builder-hero .module-post-meta .tbp_post_meta_date {
  border: 1px solid #c9c5bc;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  padding: 6px 11px;
}

.single-post .kl-t04-builder-hero .module-post-meta .tbp_post_meta_terms:first-child {
  border-color: #e5b6ae;
  background: var(--kl-t04-coral-soft);
  color: #75322c;
}

.single-post .kl-t04-builder-hero .module-post-meta a {
  color: inherit;
  font: inherit;
  text-decoration: none;
}

.single-post .kl-t04-builder-hero .module-post-meta a:hover,
.single-post .kl-t04-builder-hero .module-post-meta a:focus-visible {
  color: var(--kl-t04-green-dark);
  text-decoration: underline;
}

.single-post .kl-t04-builder-hero .module-post-meta .tbp_term_sep {
  margin: 0 3px;
  color: #918d85;
  font: inherit;
}

.single-post .kl-t04-builder-hero .tb-column:last-child {
  position: relative;
}

.single-post .module-image.kl-t04-hero-image {
  overflow: hidden;
  margin: 0;
  border: 6px solid #fff;
  border-radius: 20px;
  background: var(--kl-t04-yellow);
  box-shadow: 0 18px 42px rgba(47, 51, 48, 0.17);
  transform: rotate(1.2deg);
}

.single-post .module-image.kl-t04-hero-image img {
  display: block;
  width: 100%;
}

.single-post .module-text.kl-t04-hero-stamp {
  position: absolute;
  right: -8px;
  bottom: -30px;
  z-index: 4;
  display: grid;
  width: 78px;
  height: 78px;
  place-items: center;
  margin: 0;
  border: 2px solid var(--kl-t04-coral);
  border-radius: 50%;
  background: var(--kl-t04-coral-soft);
  color: var(--kl-t04-coral);
  transform: rotate(7deg);
}

.single-post .module-text.kl-t04-hero-stamp p {
  margin: 0;
  font-size: 9px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-align: center;
}

.single-post .kl-t04-builder-content {
  background: #fff;
}

.single-post .kl-t04-builder-content > .row_inner {
  align-items: flex-start;
  padding-top: clamp(46px, 6vw, 72px);
  padding-bottom: 44px;
}

.single-post .kl-t04-builder-content .module,
.single-post .kl-t04-builder-content .module-callout {
  margin-bottom: 28px;
}

.single-post .module-text.kl-t04-section,
.single-post .module-callout.kl-t04-section,
.single-post .module-text.kl-t04-sidebar-panel,
.single-post .module-callout.kl-t04-sidebar-panel {
  border: 1px solid var(--kl-t04-border);
  border-radius: 20px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.06);
}

.single-post .kl-t04-section h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  border: 0;
  padding: 0;
  color: var(--kl-t04-ink);
  font-size: 21px;
  font-weight: 900;
}

.single-post .kl-t04-section h2::before {
  display: inline-block;
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
  border-radius: 50% 50% 50% 0;
  background: var(--kl-t04-coral);
  content: "";
  transform: rotate(-45deg);
}

.single-post .kl-t04-section p,
.single-post .kl-t04-section li {
  color: #4f5752;
  font-size: 14px;
  line-height: 1.85;
}

.single-post .module-text.kl-t04-summary {
  border-color: #e4ce78;
  background:
    radial-gradient(circle at 94% 8%, rgba(255, 255, 255, 0.72) 0 58px, transparent 59px),
    var(--kl-t04-yellow-soft);
}

.single-post .kl-t04-summary ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-post .kl-t04-summary li {
  position: relative;
  margin: 0;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
  padding: 12px 13px 12px 35px;
}

.single-post .kl-t04-summary li::before {
  position: absolute;
  top: 12px;
  left: 13px;
  color: var(--kl-t04-coral);
  content: "●";
  font-size: 10px;
}

.single-post .module-text.kl-t04-overview {
  border-color: #eadbc7;
  background: #fff8ed;
}

.single-post .module-text.kl-t04-info {
  border: 0;
  padding: 0;
  box-shadow: none;
}

.single-post .kl-t04-info table {
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--kl-t04-border);
  border-radius: 16px;
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.05);
}

.single-post .kl-t04-info th,
.single-post .kl-t04-info td {
  border: 0;
  border-bottom: 1px solid var(--kl-t04-border);
  padding: 17px 18px;
  text-align: left;
  vertical-align: top;
}

.single-post .kl-t04-info th {
  width: 29%;
  background: var(--kl-t04-yellow);
  color: #6c5512;
  font-weight: 900;
}

.single-post .kl-t04-info td {
  background: #fff;
  color: #4f5752;
}

.single-post .kl-t05-monthly-content .kl-t04-info td p {
  margin: 8px 0 0;
}

.single-post .kl-t05-monthly-content .kl-t04-info td > strong {
  display: inline-block;
  margin-bottom: 3px;
  color: var(--kl-t04-ink);
  font-size: 16px;
}

.single-post .kl-t04-info tr:last-child th,
.single-post .kl-t04-info tr:last-child td {
  border-bottom: 0;
}

.single-post .module-text.kl-t04-points {
  border-color: #e5b6ae;
  background: #fff1ed;
}

.single-post .module-text.kl-t04-access {
  border-color: #b8d9e7;
  background: var(--kl-t04-blue);
}

.single-post .module-text.kl-t04-check {
  border-color: #c9cfea;
  background: #e8eafa;
}

.single-post .kl-t04-check li {
  border-bottom: 1px solid rgba(47, 51, 48, 0.12);
  padding: 9px 0;
}

.single-post .kl-t04-check li:last-child {
  border-bottom: 0;
}

.single-post .module-text.kl-t04-links {
  border-color: #b9d9d1;
  background: var(--kl-t04-mint);
}

/* T-01/T-04: 本文リンクはThemify Buttonモジュールで統一する。 */
.single-post .module-buttons.kl-section-buttons,
.single-post .module-buttons.kl-t02-section-buttons,
.single-post .module-buttons.kl-t04-section-buttons {
  margin: 16px 0 28px !important;
}

.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button,
.single-post .module-buttons.kl-t02-section-buttons .module-buttons-item a.ui.builder_button,
.single-post .module-buttons.kl-t04-section-buttons .module-buttons-item a.ui.builder_button {
  box-sizing: border-box;
  min-height: 44px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

/* Subrow / Column Section Box unified container rules */
.single-post .module_subrow {
  margin-bottom: 24px !important;
}

.single-post .sub_column.kl-t04-section-box,
.single-post .sub_column.kl-t04-section,
.single-post .sub_column.kl-t04-overview,
.single-post .sub_column.kl-t04-access,
.single-post .sub_column.kl-t04-links,
.single-post .sub_column.kl-t04-points,
.single-post .sub_column.kl-t04-summary,
.single-post .sub_column.kl-t04-check {
  border: 1px solid var(--kl-t04-border);
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(47, 51, 48, 0.06);
  margin-bottom: 24px;
  padding: 26px 28px !important;
  box-sizing: border-box !important;
}

@media (max-width: 680px) {
  .single-post .sub_column.kl-t04-section-box,
  .single-post .sub_column.kl-t04-section,
  .single-post .sub_column.kl-t04-overview,
  .single-post .sub_column.kl-t04-access,
  .single-post .sub_column.kl-t04-links,
  .single-post .sub_column.kl-t04-points,
  .single-post .sub_column.kl-t04-summary,
  .single-post .sub_column.kl-t04-check {
    padding: 20px 16px !important;
  }
}

.single-post .sub_column.kl-t04-overview {
  border-color: #eadbc7;
  background-color: #fff8ed !important;
}

.single-post .sub_column.kl-t04-access {
  border-color: #b8d9e7;
  background-color: var(--kl-t04-blue) !important;
}

.single-post .sub_column.kl-t04-links {
  border-color: #b9d9d1;
  background-color: var(--kl-t04-mint) !important;
}

.single-post .sub_column.kl-t04-points {
  border-color: #e5b6ae;
  background-color: #fff1ed !important;
}

.single-post .sub_column.kl-t04-summary {
  border-color: #e4ce78;
  background-color: var(--kl-t04-yellow-soft) !important;
}

.single-post .sub_column.kl-t04-check {
  border-color: #c9cfea;
  background-color: #e8eafa !important;
}

/* Inner modules inside Subcolumn Section Box */
.single-post .sub_column.kl-t04-section-box .module,
.single-post .sub_column.kl-t04-section .module,
.single-post .sub_column.kl-t04-overview .module,
.single-post .sub_column.kl-t04-access .module,
.single-post .sub_column.kl-t04-links .module,
.single-post .sub_column.kl-t04-points .module,
.single-post .sub_column.kl-t04-summary .module,
.single-post .sub_column.kl-t04-check .module {
  margin-bottom: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.single-post .sub_column.kl-t04-section-box .module-buttons,
.single-post .sub_column.kl-t04-overview .module-buttons,
.single-post .sub_column.kl-t04-access .module-buttons,
.single-post .sub_column.kl-t04-links .module-buttons {
  margin-top: 16px !important;
}

.single-post .sub_column.kl-t04-section-box .module-buttons .module-buttons-item a.ui.builder_button,
.single-post .sub_column.kl-t04-overview .module-buttons .module-buttons-item a.ui.builder_button,
.single-post .sub_column.kl-t04-access .module-buttons .module-buttons-item a.ui.builder_button,
.single-post .sub_column.kl-t04-links .module-buttons .module-buttons-item a.ui.builder_button {
  margin-top: 0;
}

@media (max-width: 680px) {
  .single-post .module-buttons.kl-section-buttons .module-buttons-item,
  .single-post .module-buttons.kl-t02-section-buttons .module-buttons-item,
  .single-post .module-buttons.kl-t04-section-buttons .module-buttons-item,
  .single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button,
  .single-post .module-buttons.kl-t02-section-buttons .module-buttons-item a.ui.builder_button,
  .single-post .module-buttons.kl-t04-section-buttons .module-buttons-item a.ui.builder_button {
    width: 100%;
  }
}

.single-post .module-text.kl-t04-updated {
  border: 1px dashed #c9c5bc;
  border-radius: 14px;
  background: #f7f3ee;
  padding: 18px;
}

.single-post .kl-t04-updated p {
  margin: 0;
  color: var(--kl-t04-muted);
  font-size: 12px;
  line-height: 1.8;
}

.single-post .kl-t04-sidebar-col > .tb-column-inner {
  position: sticky;
  top: 24px;
}

.single-post .module-text.kl-t04-sidebar-panel,
.single-post .module-callout.kl-t04-sidebar-panel {
  border-radius: 18px;
  padding: 21px 19px;
}

.single-post .kl-t04-sidebar-label {
  margin: 0 0 6px;
  color: var(--kl-t04-coral);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.single-post .kl-t04-sidebar-panel h2,
.single-post .kl-t04-sidebar-panel .callout-heading {
  margin: 0 0 16px;
  color: var(--kl-t04-ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.5;
}

.single-post .kl-t04-sidebar-menu nav {
  display: grid;
  gap: 7px;
}

.single-post .kl-t04-sidebar-menu nav a {
  display: grid;
  min-height: 43px;
  grid-template-columns: 26px 1fr;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  background: #f7f3ee;
  padding: 8px 10px;
  color: var(--kl-t04-ink);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.single-post .kl-t04-sidebar-menu nav a:hover,
.single-post .kl-t04-sidebar-menu nav a:focus-visible {
  color: var(--kl-t04-green-dark);
}

.single-post .kl-t04-sidebar-menu nav span {
  color: var(--kl-t04-coral);
  font-size: 9px;
}

.single-post .module-callout.kl-t04-sidebar-notice {
  border-color: #e4ce78;
  background: var(--kl-t04-yellow-soft);
}

.single-post .kl-t04-sidebar-notice .callout-content,
.single-post .kl-t04-sidebar-notice .callout-content p {
  color: #4f5752;
  font-size: 12px;
  line-height: 1.85;
}

.single-post .kl-t04-sidebar-notice .callout-button a,
.single-post .kl-t04-sidebar-category .callout-button a {
  display: flex;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--kl-t04-coral);
  color: #fff !important;
  font-size: 11px;
  font-weight: 900;
}

.single-post .module-callout.kl-t04-sidebar-category {
  border-color: #b9d9d1;
  background: #fff;
}

.single-post .kl-t04-sidebar-category .callout-button a {
  border: 1px solid var(--kl-t04-green);
  background: #fff;
  color: var(--kl-t04-green-dark) !important;
}

@media (max-width: 900px) {
  .single-post .kl-t04-sidebar-col > .tb-column-inner {
    position: static;
  }

  .single-post .kl-t04-summary ul {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .single-post .kl-t04-builder > .row_inner {
    width: min(100% - 28px, 1120px);
  }

  .single-post .kl-t04-builder-hero > .row_inner {
    padding-top: 32px;
    padding-bottom: 48px;
  }

  .single-post .kl-t04-hero-copy h1 {
    font-size: clamp(29px, 8.5vw, 41px);
  }

  .single-post .module-image.kl-t04-hero-image {
    margin-top: 24px;
    border-width: 4px;
    border-radius: 16px;
    transform: rotate(0.5deg);
  }

  .single-post .module-text.kl-t04-hero-stamp {
    right: -2px;
    bottom: -27px;
  }

  .single-post .module-text.kl-t04-section,
  .single-post .module-callout.kl-t04-section,
  .single-post .module-text.kl-t04-sidebar-panel,
  .single-post .module-callout.kl-t04-sidebar-panel {
    padding: 19px;
  }

  .single-post .kl-t04-section h2 {
    font-size: 18px;
  }

  .single-post .kl-t04-info th,
  .single-post .kl-t04-info td {
    display: block;
    width: 100%;
  }

  .single-post .kl-t04-info th {
    border-bottom: 0;
    padding-bottom: 8px;
  }
}

/* ========================================================================== 
   P-01 Themify Builder Top Page — faithful magazine-style rebuild
   ========================================================================== */
body.page-id-2882 {
  color-scheme: light;
  background: #fff9f3 !important;
}

body.page-id-2882 #pagewrap,
body.page-id-2882 #body,
body.page-id-2882 #content,
body.page-id-2882 .themify_builder_content-2882 {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff9f3 !important;
}

body.page-id-2882 #sidebar,
body.page-id-2882 .page-title {
  display: none !important;
}

body.page-id-2882 .themify_builder_content-2882 > .module_row,
body.page-id-2882 .themify_builder_content-2882 > .module_row > .row_inner > .module_column {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-2882 .themify_builder_content-2882 > .module_row > .row_inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.page-id-2882 .themify_builder_content-2882 .module {
  margin-bottom: 0 !important;
}

.kl-home-builder {
  --klb-paper: #fff9f3;
  --klb-white: #ffffff;
  --klb-ink: #2f3330;
  --klb-muted: #68706b;
  --klb-teal: #18726d;
  --klb-teal-dark: #135d59;
  --klb-teal-pale: #d9eee9;
  --klb-coral: #e96f62;
  --klb-coral-dark: #9c4038;
  --klb-coral-pale: #f8d8d2;
  --klb-butter: #f5e5a8;
  --klb-sky: #dceef7;
  --klb-lavender: #dfe5f6;
  --klb-line: #d8d5ce;
  box-sizing: border-box;
  overflow: hidden;
  width: 100%;
  background: var(--klb-paper);
  color: var(--klb-ink) !important;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 16px;
  line-height: 1.8;
}

.kl-home-builder *,
.kl-home-builder *::before,
.kl-home-builder *::after {
  box-sizing: border-box;
}

.kl-home-builder a {
  color: inherit;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.kl-home-builder a:focus-visible {
  outline: 3px solid var(--klb-teal);
  outline-offset: 4px;
}

.kl-home-builder p,
.kl-home-builder h1,
.kl-home-builder h2,
.kl-home-builder h3,
.kl-home-builder strong,
.kl-home-builder b,
.kl-home-builder small,
.kl-home-builder span {
  color: inherit;
}

.kl-home-builder__masthead,
.kl-home-builder__hero,
.kl-home-builder__quick,
.kl-home-builder__section-head,
.kl-home-builder__browse,
.kl-home-builder__area,
.kl-home-builder__policy,
.kl-home-builder__business,
.kl-home-builder__footer-nav,
body.page-id-2882 .module-advanced-posts {
  padding-right: max(22px, calc((100vw - 1160px) / 2));
  padding-left: max(22px, calc((100vw - 1160px) / 2));
}

.kl-home-builder__masthead {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--klb-ink);
  background: rgba(255, 249, 243, 0.96);
}

.kl-home-builder__masthead strong {
  color: var(--klb-ink) !important;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.kl-home-builder__masthead span {
  color: var(--klb-muted) !important;
  font-size: 12px;
}

.kl-home-builder__hero {
  position: relative;
  display: grid;
  min-height: 585px;
  grid-template-columns: minmax(0, 1.02fr) minmax(430px, 0.98fr);
  align-items: center;
  gap: clamp(34px, 5vw, 66px);
  padding-top: clamp(48px, 6vw, 78px) !important;
  padding-bottom: 72px !important;
  background:
    radial-gradient(circle at 4% 22%, rgba(233, 111, 98, 0.13) 0 88px, transparent 89px),
    radial-gradient(circle at 96% 90%, rgba(24, 114, 109, 0.09) 0 128px, transparent 129px),
    var(--klb-paper);
}

.kl-home-builder__hero-copy {
  position: relative;
  z-index: 3;
}

.kl-home-builder__eyebrow,
.kl-home-builder__section-label {
  margin: 0 0 13px !important;
  color: var(--klb-teal) !important;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.13em;
}

.kl-home-builder__eyebrow span {
  display: inline-block;
  margin-right: 8px;
  border-radius: 999px;
  background: var(--klb-teal);
  padding: 5px 10px;
  color: #ffffff !important;
  letter-spacing: 0.08em;
}

.kl-home-builder__hero h1 {
  margin: 0 0 22px !important;
  color: var(--klb-ink) !important;
  font-size: clamp(46px, 5.7vw, 76px) !important;
  font-weight: 900 !important;
  line-height: 1.16 !important;
  letter-spacing: -0.045em;
}

.kl-home-builder__hero h1 em {
  position: relative;
  color: var(--klb-coral-dark) !important;
  font-style: normal;
  white-space: nowrap;
}

.kl-home-builder__hero h1 em::after {
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  z-index: -1;
  height: 8px;
  border-radius: 50%;
  background: var(--klb-butter);
  content: "";
  transform: rotate(-1deg);
}

.kl-home-builder__lead {
  max-width: 620px;
  margin: 0 !important;
  color: var(--klb-ink) !important;
  font-size: 15px;
  line-height: 1.95;
}

.kl-home-builder__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 25px;
}

.kl-home-builder__chips a {
  display: inline-flex;
  min-height: 43px;
  align-items: center;
  border: 1px solid var(--klb-ink);
  border-radius: 999px;
  background: var(--klb-white);
  padding: 8px 14px;
  color: var(--klb-ink) !important;
  font-size: 13px;
  font-weight: 800;
}

.kl-home-builder__chips a::before {
  margin-right: 6px;
  color: var(--klb-coral-dark);
  content: "#";
}

.kl-home-builder__chips a:hover,
.kl-home-builder__chips a:focus-visible {
  background: var(--klb-butter);
  transform: translateY(-2px);
}

.kl-home-builder__scroll {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 25px;
  border-bottom: 1px solid var(--klb-ink);
  padding: 3px 0;
  color: var(--klb-ink) !important;
  font-size: 14px;
  font-weight: 800;
}

.kl-home-builder__scroll span {
  color: var(--klb-coral-dark) !important;
}

.kl-home-builder__visual {
  position: relative;
  min-width: 0;
  min-height: 480px;
  isolation: isolate;
  border: 1px solid rgba(47, 51, 48, 0.13);
  border-radius: 34px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.58), transparent 44%),
    radial-gradient(circle at 84% 18%, rgba(255, 255, 255, 0.68) 0 52px, transparent 53px),
    var(--klb-teal-pale);
}

.kl-home-builder__visual-word {
  position: absolute;
  inset: 44px 28px auto 42px;
  z-index: 0;
  color: var(--klb-teal) !important;
}

.kl-home-builder__visual-word small,
.kl-home-builder__visual-word strong,
.kl-home-builder__visual-word span {
  display: block;
  color: inherit !important;
}

.kl-home-builder__visual-word small,
.kl-home-builder__visual-word span {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.kl-home-builder__visual-word strong {
  margin-top: 12px;
  color: rgba(24, 114, 109, 0.18) !important;
  font-size: clamp(88px, 9vw, 138px);
  font-weight: 900;
  line-height: 0.72;
  letter-spacing: -0.09em;
}

.kl-home-builder__visual-word span {
  margin-top: 25px;
}

.kl-home-builder__issues {
  position: absolute;
  right: 18px;
  bottom: -7px;
  left: 18px;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  gap: 11px;
}

.kl-home-builder__issue {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 3px solid var(--klb-white);
  border-radius: 14px;
  background: var(--klb-white);
  box-shadow: 0 11px 25px rgba(47, 51, 48, 0.16);
  transform-origin: bottom center;
}

.kl-home-builder__issue--1 { transform: rotate(-3deg) translateY(4px); }
.kl-home-builder__issue--2 { transform: translateY(-17px); }
.kl-home-builder__issue--3 { transform: rotate(3deg) translateY(5px); }

.kl-home-builder__issue:hover,
.kl-home-builder__issue:focus-visible {
  z-index: 4;
  transform: translateY(-22px) rotate(0);
}

.kl-home-builder__issue-number {
  position: absolute;
  top: 7px;
  left: 7px;
  z-index: 2;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: var(--klb-white);
  color: var(--klb-coral-dark) !important;
  font-size: 9px;
  font-weight: 900;
}

.kl-home-builder__issue-image {
  display: block;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: var(--klb-coral-pale);
}

.kl-home-builder__issue-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kl-home-builder__issue-category {
  padding: 8px 9px 0;
  color: var(--klb-teal) !important;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.kl-home-builder__issue > strong {
  display: -webkit-box;
  min-height: 48px;
  overflow: hidden;
  padding: 3px 9px 9px;
  color: var(--klb-ink) !important;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.kl-home-builder__stamp {
  position: absolute;
  right: -7px;
  bottom: -34px;
  z-index: 5;
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;
  border: 2px solid var(--klb-coral-dark);
  border-radius: 50%;
  background: var(--klb-butter);
  color: var(--klb-coral-dark) !important;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-align: center;
  transform: rotate(8deg);
}

.kl-home-builder__quick {
  position: relative;
  z-index: 6;
  display: grid;
  grid-template-columns: 0.82fr repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: -24px;
  padding-bottom: 48px !important;
}

.kl-home-builder__quick-intro {
  align-self: center;
  padding: 12px 4px;
}

.kl-home-builder__quick-intro h2 {
  margin: 0 !important;
  color: var(--klb-ink) !important;
  font-size: 24px !important;
  line-height: 1.35;
}

.kl-home-builder__quick-card {
  display: grid;
  min-height: 116px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--klb-ink);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 4px 4px 0 var(--klb-ink);
}

.kl-home-builder__quick-card--food { background: var(--klb-coral-pale); }
.kl-home-builder__quick-card--event { background: var(--klb-butter); }
.kl-home-builder__quick-card--care { background: var(--klb-lavender); }

.kl-home-builder__quick-card:hover,
.kl-home-builder__quick-card:focus-visible {
  box-shadow: 1px 1px 0 var(--klb-ink);
  transform: translate(3px, 3px);
}

.kl-home-builder__quick-number {
  color: var(--klb-coral-dark) !important;
  font-size: 10px;
  font-weight: 900;
}

.kl-home-builder__quick-card strong,
.kl-home-builder__quick-card small {
  display: block;
}

.kl-home-builder__quick-card strong {
  color: var(--klb-ink) !important;
  font-size: 16px;
}

.kl-home-builder__quick-card small {
  margin-top: 2px;
  color: var(--klb-muted) !important;
  font-size: 10px;
}

.kl-home-builder__quick-card > b {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: var(--klb-white);
  color: var(--klb-ink) !important;
}

.kl-home-builder__section-head {
  padding-top: 54px;
  padding-bottom: 22px;
}

.kl-home-builder__section-head > div {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
}

.kl-home-builder__section-head h2,
.kl-home-builder__browse h2,
.kl-home-builder__area h2,
.kl-home-builder__policy h2,
.kl-home-builder__business h2 {
  margin: 0 !important;
  color: var(--klb-ink) !important;
  font-size: clamp(30px, 4vw, 46px) !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
}

.kl-home-builder__section-head a {
  color: var(--klb-teal) !important;
  font-size: 14px;
  font-weight: 800;
}

body.page-id-2882 .module-advanced-posts {
  padding-top: 0 !important;
  padding-bottom: 82px !important;
  background: var(--klb-paper, #fff9f3) !important;
}

body.page-id-2882 .module-advanced-posts .loops-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
}

body.page-id-2882 .module-advanced-posts .loops-wrapper > article.post {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 20px !important;
  overflow: hidden;
  border: 1px solid #e2ddd5;
  border-radius: 18px;
  background: #ffffff !important;
  box-shadow: 0 10px 28px rgba(47, 51, 48, 0.08);
}

body.page-id-2882 .module-advanced-posts .tbp_advanced_archive_wrap,
body.page-id-2882 .module-advanced-posts .tbp_advanced_archive_wrap .module_row,
body.page-id-2882 .module-advanced-posts .tbp_advanced_archive_wrap .row_inner,
body.page-id-2882 .module-advanced-posts .tbp_advanced_archive_wrap .module_column {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-id-2882 .module-advanced-posts .module-featured-image,
body.page-id-2882 .module-advanced-posts .module-featured-image .image-wrap,
body.page-id-2882 .module-advanced-posts .module-featured-image a {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: var(--klb-teal-pale, #d9eee9);
}

body.page-id-2882 .module-advanced-posts .module-featured-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

body.page-id-2882 .module-advanced-posts .module-post-title,
body.page-id-2882 .module-advanced-posts .module-post-meta,
body.page-id-2882 .module-advanced-posts .module-post-content {
  margin-right: 20px !important;
  margin-left: 20px !important;
}

body.page-id-2882 .module-advanced-posts .module-post-title {
  margin-top: 20px !important;
}

body.page-id-2882 .module-advanced-posts .module-post-title h2,
body.page-id-2882 .module-advanced-posts .module-post-title a {
  color: #2f3330 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.5 !important;
}

body.page-id-2882 .module-advanced-posts .module-post-meta {
  margin-top: 10px !important;
  color: #68706b !important;
  font-size: 12px;
}

body.page-id-2882 .module-advanced-posts .tbp_post_meta_comments,
body.page-id-2882 .module-advanced-posts .tbp_post_meta_author {
  display: none !important;
}

body.page-id-2882 .module-advanced-posts .module-post-content {
  display: -webkit-box;
  margin-top: 10px !important;
  overflow: hidden;
  color: #68706b !important;
  font-size: 13px;
  line-height: 1.75;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

body.page-id-2882 .module-advanced-posts .pagenav {
  display: none !important;
}

.kl-home-builder__browse {
  padding-top: 78px;
  padding-bottom: 84px;
  background: var(--klb-white);
}

.kl-home-builder__browse-head {
  max-width: 680px;
}

.kl-home-builder__browse-head > p:last-child,
.kl-home-builder__policy p,
.kl-home-builder__business p {
  color: var(--klb-muted) !important;
}

.kl-home-builder__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 30px;
}

.kl-home-builder__card {
  position: relative;
  min-height: 184px;
  overflow: hidden;
  border: 1px solid var(--klb-ink);
  border-radius: 18px;
  padding: 24px;
  color: var(--klb-ink) !important;
  box-shadow: 4px 4px 0 var(--klb-ink);
}

.kl-home-builder__card--food { background: var(--klb-coral-pale); }
.kl-home-builder__card--cafe { background: var(--klb-butter); }
.kl-home-builder__card--night { background: var(--klb-lavender); }
.kl-home-builder__card--shop { background: var(--klb-teal-pale); }
.kl-home-builder__card--sushi { background: var(--klb-sky); }
.kl-home-builder__card--outing { background: var(--klb-paper); }

.kl-home-builder__card:not(.kl-home-builder__card--disabled):hover,
.kl-home-builder__card:not(.kl-home-builder__card--disabled):focus-visible {
  box-shadow: 1px 1px 0 var(--klb-ink);
  transform: translate(3px, 3px);
}

.kl-home-builder__card-icon {
  display: grid;
  width: 44px;
  height: 44px;
  margin-bottom: 16px;
  place-items: center;
  border-radius: 50%;
  background: var(--klb-white);
  color: var(--klb-ink) !important;
  font-size: 13px;
  font-weight: 900;
}

.kl-home-builder__card b,
.kl-home-builder__card > span:not(.kl-home-builder__card-icon),
.kl-home-builder__card small {
  display: block;
}

.kl-home-builder__card b {
  color: var(--klb-ink) !important;
  font-size: 19px;
}

.kl-home-builder__card > span:not(.kl-home-builder__card-icon) {
  margin-top: 5px;
  color: var(--klb-muted) !important;
  font-size: 13px;
}

.kl-home-builder__card small {
  margin-top: 13px;
  color: var(--klb-teal) !important;
  font-weight: 800;
}

.kl-home-builder__card--disabled {
  opacity: 0.72;
}

.kl-home-builder__area {
  position: relative;
  display: grid;
  overflow: hidden;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 48px;
  padding-top: 82px;
  padding-bottom: 82px;
  background:
    linear-gradient(120deg, rgba(255, 255, 255, 0.06), transparent 42%),
    var(--klb-teal);
  color: #ffffff !important;
}

.kl-home-builder__area .kl-home-builder__section-label {
  color: var(--klb-butter) !important;
}

.kl-home-builder__area h2,
.kl-home-builder__area p {
  color: #ffffff !important;
}

.kl-home-builder__area-links {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.kl-home-builder__area-links a {
  display: flex;
  min-height: 70px;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(255, 255, 255, 0.43);
  border-radius: 14px;
  padding: 15px 17px;
  color: #ffffff !important;
}

.kl-home-builder__area-links a:hover,
.kl-home-builder__area-links a:focus-visible {
  background: rgba(255, 255, 255, 0.11);
  transform: translateY(-2px);
}

.kl-home-builder__area-links a span {
  color: var(--klb-butter) !important;
  font-size: 11px;
  font-weight: 900;
}

.kl-home-builder__area-word {
  position: absolute;
  right: -18px;
  bottom: -42px;
  color: rgba(255, 255, 255, 0.055) !important;
  font-size: clamp(76px, 12vw, 170px);
  font-weight: 900;
  letter-spacing: -0.08em;
}

.kl-home-builder__policy {
  display: grid;
  grid-template-columns: 1.8fr 0.8fr;
  gap: 54px;
  padding-top: 84px;
  padding-bottom: 84px;
  background: var(--klb-paper);
}

.kl-home-builder__policy-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 28px;
  border: 1px solid var(--klb-line);
  background: var(--klb-line);
}

.kl-home-builder__policy-list span {
  min-height: 110px;
  background: var(--klb-white);
  padding: 18px;
  color: var(--klb-muted) !important;
  font-size: 12px;
}

.kl-home-builder__policy-list strong {
  display: block;
  margin-bottom: 6px;
  color: var(--klb-ink) !important;
  font-size: 14px;
}

.kl-home-builder__policy-side {
  align-self: start;
  border: 1px solid var(--klb-ink);
  border-radius: 18px;
  background: var(--klb-white);
  padding: 26px;
  box-shadow: 5px 5px 0 var(--klb-ink);
}

.kl-home-builder__policy-side h2 {
  font-size: 25px !important;
}

.kl-home-builder__policy-side a {
  display: block;
  margin-top: 10px;
  border: 1px solid var(--klb-teal);
  border-radius: 999px;
  background: var(--klb-teal);
  padding: 11px 16px;
  color: #ffffff !important;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

.kl-home-builder__policy-side a + a {
  background: var(--klb-white);
  color: var(--klb-teal) !important;
}

.kl-home-builder__business {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 34px;
  padding-top: 62px;
  padding-bottom: 62px;
  background:
    radial-gradient(circle at 5% 20%, rgba(255, 255, 255, 0.32) 0 58px, transparent 59px),
    var(--klb-coral-pale);
}

.kl-home-builder__business h2 {
  font-size: clamp(28px, 3.4vw, 40px) !important;
}

.kl-home-builder__business > a {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  gap: 10px;
  border-radius: 999px;
  background: var(--klb-teal);
  padding: 12px 20px;
  color: #ffffff !important;
  font-weight: 800;
}

.kl-home-builder__footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 26px;
  padding-top: 27px;
  padding-bottom: 27px;
  background: var(--klb-white);
}

.kl-home-builder__footer-nav a {
  color: var(--klb-teal) !important;
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 1050px) {
  .kl-home-builder__hero {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .kl-home-builder__hero-copy {
    max-width: 720px;
  }

  .kl-home-builder__visual {
    min-height: 500px;
  }

  .kl-home-builder__quick {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0;
  }

  .kl-home-builder__quick-intro {
    grid-column: 1 / -1;
  }
}

@media (max-width: 860px) {
  body.page-id-2882 .module-advanced-posts .loops-wrapper,
  .kl-home-builder__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .kl-home-builder__quick,
  .kl-home-builder__area,
  .kl-home-builder__policy,
  .kl-home-builder__business {
    grid-template-columns: 1fr;
  }

  .kl-home-builder__quick-intro {
    grid-column: auto;
  }

  .kl-home-builder__policy-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .kl-home-builder__masthead,
  .kl-home-builder__hero,
  .kl-home-builder__quick,
  .kl-home-builder__section-head,
  .kl-home-builder__browse,
  .kl-home-builder__area,
  .kl-home-builder__policy,
  .kl-home-builder__business,
  .kl-home-builder__footer-nav,
  body.page-id-2882 .module-advanced-posts {
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  .kl-home-builder__masthead {
    display: block;
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .kl-home-builder__masthead span {
    display: block;
    margin-top: 4px;
  }

  .kl-home-builder__hero {
    gap: 34px;
    padding-top: 38px;
    padding-bottom: 48px;
  }

  .kl-home-builder__hero h1 {
    font-size: clamp(38px, 12vw, 52px) !important;
  }

  .kl-home-builder__visual {
    min-height: 360px;
    border-radius: 24px;
  }

  .kl-home-builder__visual-word {
    inset: 30px 20px auto 30px;
  }

  .kl-home-builder__visual-word strong {
    font-size: 78px;
  }

  .kl-home-builder__issues {
    right: 7px;
    left: 7px;
    gap: 5px;
  }

  .kl-home-builder__issue-category {
    padding-right: 6px;
    padding-left: 6px;
    font-size: 7px;
  }

  .kl-home-builder__issue > strong {
    min-height: 50px;
    padding-right: 6px;
    padding-left: 6px;
    font-size: 9px;
  }

  .kl-home-builder__stamp {
    right: -3px;
    bottom: -30px;
    width: 66px;
    height: 66px;
    font-size: 8px;
  }

  .kl-home-builder__quick,
  .kl-home-builder__cards,
  body.page-id-2882 .module-advanced-posts .loops-wrapper,
  .kl-home-builder__area-links {
    grid-template-columns: 1fr !important;
  }

  .kl-home-builder__section-head > div {
    display: block;
  }

  .kl-home-builder__section-head a {
    display: inline-block;
    margin-top: 10px;
  }

  .kl-home-builder__browse,
  .kl-home-builder__area,
  .kl-home-builder__policy {
    padding-top: 58px;
    padding-bottom: 58px;
  }

  .kl-home-builder__business {
    padding-top: 48px;
    padding-bottom: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kl-home-builder a {
    transition: none;
  }
}

/* =========================================================
   P-01 TOP：Themifyネイティブモジュール版
   HTMLモジュールに依存せず、Row / SubRow / Text / Callout /
   Post / Image の各モジュールを既存デザインへ整える。
   ========================================================= */

body.page-id-2989 > #pagewrap .page-title,
body.page-id-2882 > #pagewrap .page-title,
body:is(.page-id-2989, .page-id-2882) #content > .page-title,
body:is(.page-id-2989, .page-id-2882) #content > .post-title {
  display: none;
}

body.page-id-2989 #layout,
body.page-id-2989 #content,
body.page-id-2882 #layout,
body.page-id-2882 #content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.kl-native-row {
  --kln-paper: #fff9f3;
  --kln-white: #ffffff;
  --kln-ink: #2f3330;
  --kln-muted: #68706b;
  --kln-teal: #18726d;
  --kln-teal-dark: #135d59;
  --kln-mint: #d9eee9;
  --kln-coral: #e96f62;
  --kln-coral-dark: #9c4038;
  --kln-coral-pale: #f8d8d2;
  --kln-butter: #f5e5a8;
  --kln-sky: #dceef7;
  --kln-lavender: #dfe5f6;
  --kln-line: #d8d5ce;
  color: var(--kln-ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 16px;
  line-height: 1.8;
}

.kl-native-row,
.kl-native-row *,
.kl-native-row *::before,
.kl-native-row *::after {
  box-sizing: border-box;
}

.kl-native-row a {
  color: inherit;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.kl-native-row a:focus-visible {
  outline: 3px solid var(--kln-teal);
  outline-offset: 4px;
}

body:is(.page-id-2882, .page-id-2989) .themify_builder_content .kl-native-row > .row_inner {
  width: calc(100% - 44px) !important;
  max-width: 1160px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.kl-native-row .module {
  margin-bottom: 0;
}

/* Masthead */
.kl-native-row-masthead {
  border-bottom: 1px solid var(--kln-ink);
  background: var(--kln-paper) !important;
}

.kl-native-row-masthead > .row_inner {
  min-height: 62px;
  align-items: center;
}

.tb_kl-native-masthead .tb_text_wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.tb_kl-native-masthead p {
  margin: 0;
  color: var(--kln-muted);
  font-size: 12px;
}

.tb_kl-native-masthead strong {
  color: var(--kln-ink);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .12em;
}

/* Hero */
.kl-native-row-hero {
  overflow: visible;
  background: var(--kln-paper) url('/wp-content/uploads/2026/08/koriyama-labo-hero-paper-background.webp') center / cover no-repeat !important;
}

.kl-native-row-hero > .row_inner {
  min-height: 585px;
  grid-template-columns: minmax(0, 1.02fr) minmax(430px, .98fr);
  align-items: center;
  gap: clamp(34px, 5vw, 66px);
  padding-top: clamp(48px, 6vw, 78px);
  padding-bottom: 72px;
}

.tb_kl-native-col-hero-copy {
  position: relative;
  z-index: 3;
}

.tb_kl-native-hero-copy p:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 13px;
  color: var(--kln-teal);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .11em;
}

.tb_kl-native-hero-copy p:first-child strong {
  display: inline-block;
  border-radius: 999px;
  background: var(--kln-teal);
  padding: 5px 10px;
  color: var(--kln-white);
  font-weight: 900;
  letter-spacing: .08em;
}

.tb_kl-native-hero-copy h1,
html.tf_darkmode .tb_kl-native-hero-copy h1 {
  margin: 0 0 22px !important;
  color: var(--kln-ink) !important;
  font-size: clamp(46px, 5.7vw, 76px);
  font-weight: 900;
  line-height: 1.16;
  letter-spacing: -.045em;
}

.tb_kl-native-hero-copy h1 em {
  position: relative;
  z-index: 0;
  color: var(--kln-coral-dark);
  font-style: normal;
  white-space: nowrap;
}

.tb_kl-native-hero-copy h1 em::after {
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  z-index: -1;
  height: 8px;
  border-radius: 50%;
  background: var(--kln-butter);
  content: "";
  transform: rotate(-1deg);
}

.tb_kl-native-hero-copy p:last-child {
  max-width: 620px;
  margin: 0;
  color: var(--kln-ink);
  font-size: 15px;
  line-height: 1.95;
}

.tb_kl-native-hero-links nav {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 25px;
}

.tb_kl-native-hero-links nav a {
  display: inline-flex;
  min-height: 43px;
  align-items: center;
  border: 1px solid var(--kln-ink);
  border-radius: 999px;
  background: var(--kln-white);
  padding: 8px 14px;
  color: var(--kln-ink);
  font-size: 13px;
  font-weight: 800;
}

.tb_kl-native-hero-links nav a::before {
  margin-right: 6px;
  color: var(--kln-coral-dark);
  content: "#";
}

.tb_kl-native-hero-links nav a:hover,
.tb_kl-native-hero-links nav a:focus-visible {
  background: var(--kln-butter);
  transform: translateY(-2px);
}

.tb_kl-native-hero-links .tb_text_wrap > p {
  margin: 25px 0 0;
}

.tb_kl-native-hero-links .tb_text_wrap > p > a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--kln-ink);
  padding: 3px 0;
  color: var(--kln-ink);
  font-size: 14px;
  font-weight: 800;
}

.tb_kl-native-hero-links .tb_text_wrap > p span {
  color: var(--kln-coral-dark);
}

.tb_kl-native-col-hero-visual {
  position: relative;
  min-width: 0;
  min-height: 480px;
  isolation: isolate;
  overflow: visible;
  border: 1px solid rgba(47, 51, 48, .13);
  border-radius: 34px;
  background: var(--kln-mint) url('/wp-content/uploads/2026/08/koriyama-labo-hero-mint-panel-background.webp') center / cover no-repeat !important;
}

.tb_kl-native-col-hero-visual::after {
  position: absolute;
  top: 26px;
  right: 24px;
  z-index: -1;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .42);
  content: "";
}

.tb_kl-native-hero-word {
  position: absolute;
  inset: 44px 28px auto 42px;
  z-index: 0;
  color: var(--kln-teal);
}

.tb_kl-native-hero-word p {
  margin: 0;
  color: var(--kln-teal);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .16em;
}

.tb_kl-native-hero-word h2 {
  margin: 12px 0 25px;
  color: rgba(24, 114, 109, .18);
  font-size: clamp(88px, 9vw, 138px);
  font-weight: 900;
  line-height: .72;
  letter-spacing: -.09em;
}

.tb_kl-native-hero-posts {
  position: absolute;
  right: 18px;
  bottom: -7px;
  left: 18px;
  z-index: 2;
}

.tb_kl-native-hero-posts .loops-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: end;
  gap: 11px;
}

.tb_kl-native-hero-posts article.post {
  float: none;
  width: 100% !important;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 3px solid var(--kln-white);
  border-radius: 14px;
  background: var(--kln-white);
  box-shadow: 0 11px 25px rgba(47, 51, 48, .16);
  transform-origin: bottom center;
}

.tb_kl-native-hero-posts article.post:nth-child(1) { transform: rotate(-3deg) translateY(4px); }
.tb_kl-native-hero-posts article.post:nth-child(2) { transform: translateY(-17px); }
.tb_kl-native-hero-posts article.post:nth-child(3) { transform: rotate(3deg) translateY(5px); }

.tb_kl-native-hero-posts article.post:hover {
  z-index: 4;
  transform: translateY(-22px) rotate(0);
}

.tb_kl-native-hero-posts .post-image,
.tb_kl-native-hero-posts .post-image a {
  display: block;
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: var(--kln-coral-pale);
}

.tb_kl-native-hero-posts .post-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tb_kl-native-hero-posts .post-title {
  display: -webkit-box;
  min-height: 51px;
  margin: 0;
  overflow: hidden;
  padding: 8px 9px 9px;
  color: var(--kln-ink);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.tb_kl-native-local-note,
.kl-native-local-note {
  position: absolute !important;
  right: -7px !important;
  bottom: -34px !important;
  left: auto !important;
  z-index: 5;
  width: 76px;
  margin: 0;
  transform: rotate(8deg);
}

.tb_kl-native-local-note img {
  display: block;
  width: 76px;
  height: 76px;
  object-fit: contain;
}

/* Hero issue cards: SubRow + Image modules */
.kl-native-hero-issues {
  position: absolute;
  right: 18px;
  bottom: -7px;
  left: 18px;
  z-index: 2;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: end;
  gap: 11px;
}

.kl-native-hero-issues > .sub_column {
  float: none !important;
  clear: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
}

.kl-native-hero-issue {
  position: relative;
  overflow: hidden;
  border: 3px solid var(--kln-white);
  border-radius: 14px;
  background: var(--kln-white);
  box-shadow: 0 11px 25px rgba(47, 51, 48, .16);
  transform-origin: bottom center;
}

.kl-native-hero-issue-1 { transform: rotate(-3deg) translateY(4px); }
.kl-native-hero-issue-2 { transform: translateY(-17px); }
.kl-native-hero-issue-3 { transform: rotate(3deg) translateY(5px); }

.kl-native-hero-issue:hover {
  z-index: 4;
  transform: translateY(-22px) rotate(0);
}

.kl-native-hero-issue::before {
  position: absolute;
  top: 7px;
  left: 7px;
  z-index: 3;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: var(--kln-white);
  color: var(--kln-coral-dark);
  font-size: 9px;
  font-weight: 900;
}

.kl-native-hero-issue-1::before { content: "01"; }
.kl-native-hero-issue-2::before { content: "02"; }
.kl-native-hero-issue-3::before { content: "03"; }

.kl-native-hero-issue .image-wrap,
.kl-native-hero-issue .image-wrap a {
  display: block;
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: var(--kln-coral-pale);
}

.kl-native-hero-issue .image-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kl-native-hero-issue .image-content {
  display: flex;
  min-height: 67px;
  flex-direction: column;
  padding: 7px 9px 9px;
}

.kl-native-hero-issue .image-title {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--kln-ink);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.kl-native-hero-issue .image-title a {
  color: inherit;
}

.kl-native-hero-issue .image-caption {
  order: -1;
  margin-bottom: 2px;
  color: var(--kln-teal);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
}

/* Hero category cards: one latest post from each category */
.kl-native-hero-category-card {
  position: relative;
  overflow: hidden;
  border: 3px solid var(--kln-white);
  border-radius: 14px;
  background: var(--kln-white);
  box-shadow: 0 11px 25px rgba(47, 51, 48, .16);
  transform-origin: bottom center;
}

.kl-native-hero-category-card--1 { transform: rotate(-3deg) translateY(4px); }
.kl-native-hero-category-card--2 { transform: translateY(-17px); }
.kl-native-hero-category-card--3 { transform: rotate(3deg) translateY(5px); }

.kl-native-hero-category-card:hover {
  z-index: 4;
  transform: translateY(-22px) rotate(0);
}

.kl-native-hero-category-card > .module-title,
html.tf_darkmode .kl-native-hero-category-card > .module-title {
  position: absolute;
  top: 7px;
  left: 7px;
  z-index: 3;
  margin: 0;
  border-radius: 999px;
  background: var(--kln-white);
  padding: 5px 8px;
  color: var(--kln-coral-dark) !important;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .06em;
}

.kl-native-hero-category-card article.post {
  float: none;
  width: 100% !important;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.kl-native-hero-category-card .post-image,
.kl-native-hero-category-card .post-image a {
  display: block;
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: var(--kln-coral-pale);
}

.kl-native-hero-category-card .post-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kl-native-hero-category-card .post-title,
.kl-native-hero-category-card .post-title a,
html.tf_darkmode .kl-native-hero-category-card .post-title,
html.tf_darkmode .kl-native-hero-category-card .post-title a {
  display: -webkit-box;
  min-height: 64px;
  margin: 0;
  overflow: hidden;
  padding: 11px 9px 9px;
  color: var(--kln-ink) !important;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  text-decoration: none !important;
}

.kl-native-hero-category-card .post-content,
.kl-native-hero-category-card .post-meta,
.kl-native-hero-category-card .post-date {
  display: none !important;
}

/* Quick guide */
.kl-native-row-quick {
  position: relative;
  z-index: 6;
  margin-top: -24px;
  background: var(--kln-paper) !important;
}

.kl-native-row-quick > .row_inner {
  grid-template-columns: .82fr repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding-bottom: 48px;
}

.tb_kl-native-quick-intro {
  align-self: center;
}

.tb_kl-native-quick-title p,
.tb_kl-native-section-head .tb_text_wrap > p:first-child,
.tb_kl-native-section-title .tb_text_wrap > p:first-child,
.tb_kl-native-area-copy .tb_text_wrap > p:first-child,
.tb_kl-native-policy-main .tb_text_wrap > p:first-child,
.tb_kl-native-business-copy .tb_text_wrap > p:first-child {
  margin: 0 0 13px;
  color: var(--kln-teal);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .13em;
}

.tb_kl-native-quick-title h2,
html.tf_darkmode .tb_kl-native-quick-title h2 {
  margin: 0 !important;
  color: var(--kln-ink) !important;
  font-size: 24px !important;
  line-height: 1.35 !important;
}

.tb_kl-native-quick-food,
.tb_kl-native-quick-event,
.tb_kl-native-quick-care {
  position: relative;
  min-height: 116px;
  border: 1px solid var(--kln-ink);
  border-radius: 16px;
  box-shadow: 4px 4px 0 var(--kln-ink);
}

.tb_kl-native-quick-food { background: var(--kln-coral-pale) !important; }
.tb_kl-native-quick-event { background: var(--kln-butter) !important; }
.tb_kl-native-quick-care { background: var(--kln-lavender) !important; }

.tb_kl-native-quick-food:hover,
.tb_kl-native-quick-event:hover,
.tb_kl-native-quick-care:hover {
  box-shadow: 1px 1px 0 var(--kln-ink);
  transform: translate(3px, 3px);
}

.kl-native-row-quick .callout-inner {
  display: grid;
  min-height: 114px;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 16px;
}

.kl-native-row-quick .callout-heading,
html.tf_darkmode .kl-native-row-quick .callout-heading {
  margin: 0 !important;
  color: var(--kln-ink) !important;
  font-size: 16px !important;
  font-weight: 900 !important;
}

.kl-native-row-quick .callout-content .tb_text_wrap {
  color: var(--kln-muted);
  font-size: 10px;
}

.kl-native-row-quick .callout-button {
  margin: 0;
}

.kl-native-row-quick .builder_button {
  display: grid;
  width: 44px;
  height: 44px;
  min-width: 44px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--kln-white);
  padding: 0;
  color: var(--kln-ink);
}

/* New stories */
.kl-native-row-new > .row_inner {
  padding-top: 54px !important;
  padding-bottom: 82px !important;
}

.kl-native-row-new {
  background: var(--kln-paper) !important;
}

.tb_kl-native-section-head .tb_text_wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 4px 18px;
}

.tb_kl-native-section-head .tb_text_wrap > p:first-child {
  grid-column: 1 / -1;
}

.tb_kl-native-section-head h2,
.tb_kl-native-section-title h2,
.tb_kl-native-policy-main h2,
.tb_kl-native-business-copy h2,
html.tf_darkmode .tb_kl-native-section-head h2,
html.tf_darkmode .tb_kl-native-section-title h2,
html.tf_darkmode .tb_kl-native-policy-main h2,
html.tf_darkmode .tb_kl-native-business-copy h2 {
  margin: 0 !important;
  color: var(--kln-ink) !important;
  font-size: clamp(30px, 4vw, 46px) !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
}

.tb_kl-native-area-copy h2,
html.tf_darkmode .tb_kl-native-area-copy h2 {
  margin: 0 !important;
  color: var(--kln-white) !important;
  font-size: clamp(30px, 4vw, 46px) !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
}

.tb_kl-native-section-head .tb_text_wrap > p:last-child {
  margin: 0;
  color: var(--kln-teal);
  font-size: 14px;
  font-weight: 800;
}

.tb_kl-native-new-posts {
  margin-top: 22px;
}

.tb_kl-native-new-posts .loops-wrapper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.tb_kl-native-new-posts article.post {
  float: none;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0 0 20px;
  overflow: hidden;
  border: 1px solid #e2ddd5;
  border-radius: 18px;
  background: var(--kln-white);
  box-shadow: 0 10px 28px rgba(47, 51, 48, .08);
}

.tb_kl-native-new-posts .post-image,
.tb_kl-native-new-posts .post-image a {
  display: block;
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 1200 / 630;
  background: var(--kln-mint);
}

.tb_kl-native-new-posts .post-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tb_kl-native-new-posts .post-title,
.tb_kl-native-new-posts .post-content {
  margin-right: 20px;
  margin-left: 20px;
}

.tb_kl-native-new-posts .post-title,
html.tf_darkmode .tb_kl-native-new-posts .post-title {
  display: block !important;
  margin-top: 18px !important;
  margin-bottom: 8px !important;
  color: var(--kln-ink) !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.5 !important;
}

.tb_kl-native-new-posts .post-title a,
html.tf_darkmode .tb_kl-native-new-posts .post-title a {
  color: var(--kln-ink) !important;
  text-decoration: none !important;
  transition: color .2s ease !important;
}

.tb_kl-native-new-posts .post-title a:hover,
html.tf_darkmode .tb_kl-native-new-posts .post-title a:hover {
  color: var(--kln-teal) !important;
  text-decoration: underline !important;
}

.tb_kl-native-new-posts .post-content {
  display: -webkit-box;
  margin-top: 10px;
  overflow: hidden;
  color: var(--kln-muted);
  font-size: 13px;
  line-height: 1.75;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

/* Category */
.kl-native-row-category > .row_inner {
  padding-top: 78px !important;
  padding-bottom: 84px !important;
}

.kl-native-row-category {
  background: var(--kln-white) !important;
}

.tb_kl-native-section-title {
  max-width: 680px;
}

.tb_kl-native-section-title .tb_text_wrap > p:last-child {
  color: var(--kln-muted);
}

.kl-native-category-grid {
  margin-top: 30px;
}

.kl-native-category-grid + .kl-native-category-grid {
  margin-top: 16px;
}

.kl-native-category-grid > .subrow_inner,
.kl-native-category-grid {
  gap: 16px;
}

.kl-native-category-card {
  position: relative;
  min-height: 184px;
  overflow: hidden;
  border: 1px solid var(--kln-ink);
  border-radius: 18px;
  box-shadow: 4px 4px 0 var(--kln-ink);
}

.tb_kl-native-cat-food { background: var(--kln-coral-pale) !important; }
.tb_kl-native-cat-cafe { background: var(--kln-butter) !important; }
.tb_kl-native-cat-night { background: var(--kln-lavender) !important; }
.tb_kl-native-cat-shop { background: var(--kln-mint) !important; }
.tb_kl-native-cat-event { background: var(--kln-sky) !important; }
.tb_kl-native-cat-outing { background: var(--kln-paper) !important; }

.kl-native-category-card:hover {
  box-shadow: 1px 1px 0 var(--kln-ink);
  transform: translate(3px, 3px);
}

.kl-native-category-card .callout-inner {
  display: flex;
  min-height: 182px;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px;
}

.kl-native-category-card .callout-content {
  width: 100%;
}

.kl-native-category-card .callout-heading,
html.tf_darkmode .kl-native-category-card .callout-heading {
  margin: 0 !important;
  color: var(--kln-ink) !important;
  font-size: 19px !important;
  font-weight: 900 !important;
}

.kl-native-category-card .callout-content .tb_text_wrap {
  margin-top: 5px;
  color: var(--kln-muted);
  font-size: 13px;
}

.kl-native-category-card .callout-button {
  margin: auto 0 0;
}

.kl-native-category-card .builder_button {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  border: 1px solid var(--kln-teal);
  border-radius: 999px;
  background: var(--kln-white);
  padding: 8px 14px;
  color: var(--kln-teal);
  font-size: 13px;
  font-weight: 800;
}

.kl-native-row-quick .builder_button::after,
.kl-native-category-card .builder_button::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  content: "";
  cursor: pointer;
}

/* Area */
.kl-native-row-area {
  position: relative;
  overflow: hidden;
  color: var(--kln-white);
  background: var(--kln-teal) !important;
}

.kl-native-row-area::after {
  position: absolute;
  right: -18px;
  bottom: -56px;
  color: rgba(255, 255, 255, .055);
  content: "KORIYAMA";
  font-size: clamp(76px, 12vw, 170px);
  font-weight: 900;
  letter-spacing: -.08em;
}

.kl-native-row-area > .row_inner {
  position: relative;
  z-index: 2;
  grid-template-columns: .8fr 1.2fr;
  align-items: start;
  gap: 48px;
  padding-top: 82px !important;
  padding-bottom: 82px !important;
}

.tb_kl-native-area-copy .tb_text_wrap > p:first-child {
  color: var(--kln-butter);
}

.tb_kl-native-area-copy h2,
.tb_kl-native-area-copy p {
  color: var(--kln-white);
}

.tb_kl-native-area-links-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.tb_kl-native-area-1,
.tb_kl-native-area-2,
.tb_kl-native-area-3,
.tb_kl-native-area-4,
.tb_kl-native-area-5,
.tb_kl-native-area-6,
.tb_kl-native-area-7,
.tb_kl-native-area-8 {
  min-height: 70px;
  border: 1px solid rgba(255, 255, 255, .43);
  border-radius: 14px;
  color: var(--kln-white);
  background: transparent !important;
  transition: background .2s ease, transform .2s ease;
}

.tb_kl-native-area-links-col .callout-inner {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 15px 17px;
}

.tb_kl-native-area-links-col .callout-heading {
  margin: 0;
  color: var(--kln-white);
  font-size: 14px;
  font-weight: 800;
}

.tb_kl-native-area-links-col .builder_button {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--kln-butter) !important;
  font-size: 11px;
  font-weight: 900;
}

.tb_kl-native-area-links-col .module-callout:hover {
  background: rgba(255, 255, 255, .11);
  transform: translateY(-2px);
}

/* 左カラム：全エリア・町名案内ボタンリンク */
.kl-native-area-guide-btn-wrap {
  margin-top: 28px !important;
  margin-bottom: 0 !important;
}

.kl-native-area-guide-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  padding: 12px 22px !important;
  background: var(--kln-butter) !important;
  color: #18726d !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: 0.03em !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16) !important;
  text-decoration: none !important;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease !important;
}

.kl-native-area-guide-btn:hover,
.kl-native-area-guide-btn:focus-visible {
  background: #ffffff !important;
  color: #135d59 !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.24) !important;
}

/* Editorial policy */
.kl-native-row-policy > .row_inner {
  grid-template-columns: 1.8fr .8fr;
  gap: 54px;
  padding-top: 84px !important;
  padding-bottom: 84px !important;
}

.kl-native-row-policy {
  background: var(--kln-paper) !important;
}

.tb_kl-native-policy-main .tb_text_wrap > p:not(:first-child) {
  color: var(--kln-muted);
}

.kl-native-policy-grid {
  gap: 1px;
  margin-top: 28px;
  border: 1px solid var(--kln-line);
  background: var(--kln-line);
}

.kl-native-policy-item {
  min-height: 110px;
  border: 0 !important;
  background: var(--kln-white) !important;
}

.kl-native-policy-item .callout-inner {
  display: block;
  min-height: 108px;
  padding: 18px;
}

.kl-native-policy-item .callout-heading,
html.tf_darkmode .kl-native-policy-item .callout-heading {
  margin: 0 0 6px !important;
  color: var(--kln-ink) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

.kl-native-policy-item .tb_text_wrap {
  color: var(--kln-muted);
  font-size: 12px;
}

.tb_kl-native-policy-side-col {
  align-self: start;
  border: 1px solid var(--kln-ink);
  border-radius: 18px;
  background: var(--kln-white);
  padding: 26px;
  box-shadow: 5px 5px 0 var(--kln-ink);
}

.tb_kl-native-policy-side-col .module-callout,
.tb_kl-native-policy-side-col .callout-inner {
  background: transparent;
}

.tb_kl-native-policy-side-col .callout-inner {
  display: block;
  padding: 0;
}

.tb_kl-native-policy-side-col .callout-heading,
html.tf_darkmode .tb_kl-native-policy-side-col .callout-heading {
  margin: 0 !important;
  color: var(--kln-ink) !important;
  font-size: 25px !important;
  font-weight: 900 !important;
}

.tb_kl-native-policy-side-col .callout-heading small {
  display: block !important;
  margin-bottom: 8px;
  color: var(--kln-teal);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.tb_kl-native-policy-side-col .tb_text_wrap {
  color: var(--kln-muted);
  font-size: 13px;
}

.tb_kl-native-policy-side-col .callout-button {
  margin: 10px 0 0;
}

.tb_kl-native-policy-side-col .builder_button {
  display: block;
  width: 100%;
  border: 1px solid var(--kln-teal);
  border-radius: 999px;
  background: var(--kln-teal);
  padding: 11px 16px;
  color: var(--kln-white);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

.tb_kl-native-contact {
  margin-top: 10px;
}

.tb_kl-native-contact .callout-heading {
  display: none;
}

.tb_kl-native-contact .builder_button {
  background: var(--kln-white);
  color: var(--kln-teal);
}

/* Business and footer */
.kl-native-row-business > .row_inner {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 34px;
  padding-top: 62px !important;
  padding-bottom: 62px !important;
}

.kl-native-row-business {
  background: var(--kln-coral-pale) !important;
}

.tb_kl-native-business-copy h2 {
  font-size: clamp(28px, 3.4vw, 40px);
}

.tb_kl-native-business-copy .tb_text_wrap > p:last-child {
  color: var(--kln-muted);
}

.tb_kl-native-business-cta,
.tb_kl-native-business-cta .callout-inner {
  border: 0 !important;
  background: transparent !important;
}

.tb_kl-native-business-cta .callout-inner {
  padding: 0;
}

.tb_kl-native-business-cta .builder_button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  border: 0;
  border-radius: 999px;
  background: var(--kln-teal);
  padding: 12px 20px;
  color: var(--kln-white);
  font-weight: 800;
}

.kl-native-row-footer > .row_inner {
  padding-top: 27px !important;
  padding-bottom: 27px !important;
}

.kl-native-row-footer {
  background: var(--kln-white) !important;
}

.tb_kl-native-footer-links p {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 26px;
  margin: 0;
}

.tb_kl-native-footer-links a {
  color: var(--kln-teal);
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 1050px) {
  .kl-native-row-hero > .row_inner {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .tb_kl-native-col-hero-copy {
    max-width: 720px;
  }

  .tb_kl-native-col-hero-visual {
    min-height: 500px;
  }

  .kl-native-row-quick {
    margin-top: 0;
  }

  .kl-native-row-quick > .row_inner {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tb_kl-native-quick-intro {
    grid-column: 1 / -1;
  }
}

@media (max-width: 860px) {
  .tb_kl-native-new-posts .loops-wrapper,
  .kl-native-category-grid,
  .kl-native-row-area > .row_inner,
  .kl-native-row-policy > .row_inner,
  .kl-native-row-business > .row_inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kl-native-row-area > .row_inner,
  .kl-native-row-policy > .row_inner,
  .kl-native-row-business > .row_inner {
    grid-template-columns: 1fr;
  }

  .kl-native-policy-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .kl-native-row > .row_inner {
    width: calc(100% - 36px);
  }

  .tb_kl-native-masthead .tb_text_wrap {
    display: block;
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .tb_kl-native-masthead p + p {
    margin-top: 4px;
  }

  .kl-native-row-hero > .row_inner {
    gap: 34px;
    padding-top: 38px !important;
    padding-bottom: 48px !important;
  }

  .tb_kl-native-hero-copy p:first-child {
    align-items: flex-start;
    flex-direction: column;
  }

  .tb_kl-native-hero-copy h1 {
    font-size: clamp(38px, 12vw, 52px);
  }

  .tb_kl-native-col-hero-visual {
    min-height: 360px;
    border-radius: 24px;
  }

  .tb_kl-native-hero-word {
    inset: 30px 20px auto 30px;
  }

  .tb_kl-native-hero-word h2 {
    font-size: 78px;
  }

  .tb_kl-native-hero-posts {
    right: 7px;
    left: 7px;
  }

  .kl-native-hero-issues {
    right: 7px;
    left: 7px;
    gap: 5px;
  }

  .kl-native-hero-issue .image-content {
    min-height: 60px;
    padding-right: 6px;
    padding-left: 6px;
  }

  .kl-native-hero-issue .image-title {
    font-size: 9px;
  }

  .kl-native-hero-category-card > .module-title {
    top: 5px;
    left: 5px;
    padding: 4px 6px;
    font-size: 7px;
  }

  .kl-native-hero-category-card .post-title {
    min-height: 58px;
    padding: 8px 6px 7px;
    font-size: 9px;
  }

  .tb_kl-native-hero-posts .loops-wrapper {
    gap: 5px;
  }

  .tb_kl-native-hero-posts .post-title {
    min-height: 50px;
    padding-right: 6px;
    padding-left: 6px;
    font-size: 9px;
  }

  .tb_kl-native-local-note,
  .tb_kl-native-local-note img {
    width: 66px;
    height: 66px;
  }

  .tb_kl-native-local-note {
    right: -3px;
    bottom: -30px;
  }

  .kl-native-row-quick > .row_inner,
  .tb_kl-native-new-posts .loops-wrapper,
  .kl-native-category-grid,
  .tb_kl-native-area-links-col {
    grid-template-columns: 1fr !important;
  }

  .tb_kl-native-section-head .tb_text_wrap {
    display: block;
  }

  .tb_kl-native-section-head .tb_text_wrap > p:last-child {
    margin-top: 10px;
  }

  .kl-native-row-new > .row_inner,
  .kl-native-row-category > .row_inner,
  .kl-native-row-area > .row_inner,
  .kl-native-row-policy > .row_inner {
    padding-top: 58px !important;
    padding-bottom: 58px !important;
  }

  .kl-native-row-business > .row_inner {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kl-native-row a,
  .kl-native-row .module {
    transition: none;
  }
}

/* ==========================================================================
   T-02 / T-04 表示設定修復ルール (Post Meta / H2 21px / Button間隔・配色・寸法)
   ========================================================================== */

/* 1. Hero Post Meta タグ区切り (・) */
.single-post .module-post-meta .tbp_term_sep {
  display: inline-block !important;
  font-size: 0 !important;
  line-height: 0 !important;
  margin: 0 4px !important;
  color: #918d85 !important;
}
.single-post .module-post-meta .tbp_term_sep::before {
  content: "・" !important;
  font-size: 13px !important;
  line-height: 1 !important;
  color: #918d85 !important;
}
.single-post .module-post-meta .tbp_term_item + .tbp_term_item::before {
  content: "・" !important;
  margin: 0 4px !important;
  color: #918d85 !important;
}

/* 2. 本文H2の見出しサイズ (21px, line-height 1.3) */
.single-post .kl-t04-builder-content .module-text h2,
.single-post .kl-t04-section h2,
.single-post .kl-t04-section-text h2,
.single-post .kl-t04-section-box h2,
.single-post .sub_column.kl-t04-section-box h2,
.single-post .sub_column.kl-t04-overview h2,
.single-post .sub_column.kl-t04-access h2,
.single-post .sub_column.kl-t04-links h2,
.single-post .sub_column.kl-t04-points h2,
.single-post .sub_column.kl-t04-summary h2,
.single-post .sub_column.kl-t04-check h2 {
  font-size: 21px !important;
  line-height: 1.3 !important;
  font-weight: 900 !important;
  color: var(--kl-t04-ink, #2f3330) !important;
  margin: 0 0 18px !important;
  border: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.single-post .kl-t04-builder-content .module-text h2::before,
.single-post .sub_column.kl-t04-section-box h2::before {
  display: inline-block !important;
  width: 12px !important;
  height: 12px !important;
  flex: 0 0 auto !important;
  border-radius: 50% 50% 50% 0 !important;
  background: var(--kl-t04-coral, #9c4038) !important;
  content: "" !important;
  transform: rotate(-45deg) !important;
}

/* 3. Button Flex配置・上下左右間隔 (横10px, 縦10px) & 下部余白確保 (28px) */
.single-post .module-buttons.kl-section-buttons,
.single-post .module-buttons.kl-t02-section-buttons,
.single-post .module-buttons.kl-t04-section-buttons,
.single-post .themify_builder_content .module-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px !important;
  row-gap: 10px !important;
  column-gap: 10px !important;
  margin-top: 16px !important;
  margin-bottom: 28px !important;
}

.single-post .module-buttons.kl-section-buttons .module-buttons-item,
.single-post .module-buttons.kl-t02-section-buttons .module-buttons-item,
.single-post .module-buttons.kl-t04-section-buttons .module-buttons-item {
  display: inline-flex !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 4. Button 寸法 (高さ44px以上、文字14px以上、折り返し対応) */
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button,
.single-post .module-buttons.kl-t02-section-buttons .module-buttons-item a.ui.builder_button,
.single-post .module-buttons.kl-t04-section-buttons .module-buttons-item a.ui.builder_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  white-space: normal !important;
  word-break: break-word !important;
  box-sizing: border-box !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
}

/* 5. Button 役割別配色統一 (主操作: 緑背景 / 補助操作: 白背景緑枠) */
/* 主操作 (公式サイト、Googleマップ、外部リンク) */
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="official"],
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="map"],
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button.kl-external-link,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button:not(.kl-internal-link):not([data-kl-link-type="internal"]) {
  background-color: #18726d !important;
  border: 1px solid #18726d !important;
  color: #ffffff !important;
}

.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="official"]:hover,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="map"]:hover,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button.kl-external-link:hover,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button:not(.kl-internal-link):not([data-kl-link-type="internal"]):hover,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="official"]:focus-visible,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="map"]:focus-visible {
  background-color: #135d59 !important;
  border-color: #135d59 !important;
  color: #ffffff !important;
}

/* 補助操作 (内部リンク、施設案内、企画案内、月別イベント一覧) */
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="internal"],
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button.kl-internal-link {
  background-color: #ffffff !important;
  border: 1px solid #18726d !important;
  color: #135d59 !important;
}

.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="internal"]:hover,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button.kl-internal-link:hover,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button[data-kl-link-type="internal"]:focus-visible,
.single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button.kl-internal-link:focus-visible {
  background-color: #d9eee9 !important;
  border-color: #135d59 !important;
  color: #135d59 !important;
}

/* 6. スマホ表示 (680px以下: 1列・全幅) */
@media (max-width: 680px) {
  .single-post .module-buttons.kl-section-buttons,
  .single-post .module-buttons.kl-t02-section-buttons,
  .single-post .module-buttons.kl-t04-section-buttons {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    gap: 10px !important;
  }
  
  .single-post .module-buttons.kl-section-buttons .module-buttons-item,
  .single-post .module-buttons.kl-t02-section-buttons .module-buttons-item,
  .single-post .module-buttons.kl-t04-section-buttons .module-buttons-item,
  .single-post .module-buttons.kl-section-buttons .module-buttons-item a.ui.builder_button,
  .single-post .module-buttons.kl-t02-section-buttons .module-buttons-item a.ui.builder_button,
  .single-post .module-buttons.kl-t04-section-buttons .module-buttons-item a.ui.builder_button {
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* 7. モジュール間およびテキストコンテンツ間の垂直余白保証 */
.single-post .module_row:not(:first-child) .module-text,
.single-post .module_row:not(:first-child) .module-callout,
.single-post .module_row:not(:first-child) .module-buttons,
.single-post .kl-t01-builder-content .module,
.single-post .kl-t02-builder-content .module,
.single-post .kl-t04-builder-content .module {
  margin-bottom: 28px !important;
}

/* ボタンモジュールの余白: 前コンテンツと16px、次コンテンツと28pxを確実に確保 */
.single-post .module_row:not(:first-child) .module-buttons,
.single-post .module-buttons.kl-section-buttons,
.single-post .module-buttons.kl-t02-section-buttons,
.single-post .module-buttons.kl-t04-section-buttons {
  margin-top: 16px !important;
  margin-bottom: 28px !important;
}

/* テキストモジュール内コンテンツ要素の余白調整 */
.single-post .module_row:not(:first-child) .module-text h3 {
  margin-top: 24px !important;
  margin-bottom: 12px !important;
  line-height: 1.4 !important;
}

.single-post .module_row:not(:first-child) .module-text h4 {
  margin-top: 18px !important;
  margin-bottom: 8px !important;
  line-height: 1.4 !important;
}

.single-post .module_row:not(:first-child) .module-text p {
  margin-bottom: 16px !important;
  line-height: 1.85 !important;
}

.single-post .module_row:not(:first-child) .module-text p:last-child {
  margin-bottom: 0 !important;
}

.single-post .module_row:not(:first-child) .module-text table {
  margin-top: 16px !important;
  margin-bottom: 20px !important;
}

.single-post .module_row:not(:first-child) .module-text table:last-child {
  margin-bottom: 0 !important;
}

/* ==========================================================================
   ダークモード総合コントラスト保護ルール
   Themify Ultra の html.tf_darkmode による見出し・タイトルの白文字化を防ぎ、
   明るい背景セクション上で確実に視認性を維持する
   ========================================================================== */
html.tf_darkmode .kl-native-row:not(.kl-native-row-area) h1,
html.tf_darkmode .kl-native-row:not(.kl-native-row-area) h2,
html.tf_darkmode .kl-native-row:not(.kl-native-row-area) h3,
html.tf_darkmode .kl-native-row:not(.kl-native-row-area) h4,
html.tf_darkmode .kl-native-row:not(.kl-native-row-area) .post-title,
html.tf_darkmode .kl-native-row:not(.kl-native-row-area) .post-title a,
html.tf_darkmode .kl-native-row:not(.kl-native-row-area) .callout-heading {
  color: var(--kln-ink) !important;
}

html.tf_darkmode .kl-native-row:not(.kl-native-row-area) .post-title a:hover {
  color: var(--kln-teal) !important;
  text-decoration: underline !important;
}

/* ==========================================================================
   エリア案内ハブページ（/koriyama-areas/）統一カードスタイル
   ========================================================================== */
.kl-areas-guide-wrap {
  max-width: 960px;
  margin: 0 auto;
  padding: 16px 12px 64px;
  font-family: inherit;
  color: var(--kln-ink);
}

.kl-areas-intro-box {
  background: var(--kln-paper, #f7f9f8);
  border-left: 5px solid var(--kln-teal, #18726d);
  padding: 24px 28px;
  border-radius: 8px;
  margin-bottom: 38px;
}

.kl-areas-intro-box h2 {
  font-size: clamp(20px, 2.4vw, 25px);
  font-weight: 900;
  color: var(--kln-teal, #18726d) !important;
  margin: 0 0 10px !important;
  line-height: 1.35;
}

.kl-areas-intro-box p {
  font-size: 14px;
  line-height: 1.85;
  color: var(--kln-muted, #555);
  margin: 0 !important;
}

.kl-areas-section {
  margin-bottom: 44px;
}

.kl-areas-sec-heading {
  font-size: 19px;
  font-weight: 900;
  color: var(--kln-ink, #222) !important;
  border-bottom: 2px solid var(--kln-teal, #18726d);
  padding-bottom: 8px;
  margin: 0 0 20px !important;
}

.kl-areas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
}

.kl-areas-grid--single {
  grid-template-columns: 1fr;
}

.kl-area-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 20px 20px 22px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  display: flex;
  flex-direction: column;
}

.kl-area-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
  border-color: #cbd5e0;
}

.kl-area-card-head {
  margin-bottom: 8px;
}

.kl-area-title {
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--kln-teal, #18726d) !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

.kl-area-num {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  background: #e6f3f1 !important;
  color: var(--kln-teal, #18726d) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
}

.kl-area-desc {
  font-size: 12px;
  line-height: 1.65;
  color: var(--kln-muted, #666);
  margin: 0 0 14px !important;
  min-height: 38px;
}

.kl-area-bulk-wrap {
  margin-bottom: 16px;
}

.kl-area-bulk-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  padding: 10px 14px;
  background: var(--kln-teal, #18726d);
  color: #ffffff !important;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none !important;
  transition: background .2s ease, transform .15s ease;
}

.kl-area-bulk-btn:hover,
.kl-area-bulk-btn:focus-visible {
  background: var(--kln-teal-dark, #135d59);
  color: #ffffff !important;
}

.kl-area-subhead {
  font-size: 11px;
  font-weight: 800;
  color: var(--kln-muted, #4a5568);
  letter-spacing: 0.04em;
  margin-bottom: 8px;
  padding-top: 12px;
  border-top: 1px dashed #e2e8f0;
}

/* エリア案内凡例ボックス */
.kl-areas-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px dashed rgba(24, 114, 109, 0.25);
  font-size: 12px;
  color: var(--kln-muted, #4a5568);
}

.kl-legend-title {
  font-weight: 900;
  color: var(--kln-teal, #18726d);
}

.kl-legend-sample {
  font-size: 11px !important;
  padding: 3px 8px !important;
  pointer-events: none !important;
}

.kl-legend-text {
  font-size: 12px;
  color: var(--kln-muted, #555);
  margin-right: 8px;
}

.kl-area-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

/* 共通ピル基底 */
.kl-area-pill {
  display: inline-block;
  padding: 5px 11px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none !important;
  transition: all .2s ease;
  line-height: 1.4;
}

/* 記事あり（アクティブ）：緑枠・白背景・ホバー反転 */
.kl-pill--active {
  background: #ffffff;
  border: 1.5px solid var(--kln-teal, #18726d);
  color: var(--kln-teal, #18726d) !important;
  box-shadow: 0 1px 3px rgba(24, 114, 109, 0.08);
  cursor: pointer;
}

.kl-pill--active:hover,
.kl-pill--active:focus-visible {
  background: var(--kln-teal, #18726d) !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(24, 114, 109, 0.22);
}

/* 記事なし（準備中）：グレー破線・薄文字・クリック無効（404遷移防止） */
.kl-pill--empty {
  background: #f1f5f9;
  border: 1px dashed #cbd5e1;
  color: #94a3b8 !important;
  cursor: default !important;
  pointer-events: none !important;
  opacity: 0.88;
}

@media (max-width: 600px) {
  .kl-areas-grid {
    grid-template-columns: 1fr;
  }
  
  .kl-areas-legend {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
}



