/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .kth-section / --*        - セクション余白（左右 clamp(20px,4vw,32px)＋上下 clamp 値）
 * .kth-container / --*      - 内側最大幅（1200 / 1120 / 960 / 880px）
 * .kth-panel                - 角丸の薄緑面セクション（radius clamp(32px,6vw,80px)・左右inset）
 * .kth-heading / __en / __ja - ●付き英字ラベル＋日本語見出し（--center / --h3 / --navy）
 * .kth-page-hero            - 下層ヒーロー（薄緑・下角丸・葉っぱSVG・パンくず内包）
 * .kth-breadcrumb           - パンくず（› 区切り・13px）
 * .kth-btn / __circle       - 枠線pillボタン＋丸矢印（--navy / --solid / --submit）
 * .kth-arrow                - 丸矢印単体（52/48/36px）
 * .kth-anchor               - 店舗ページ内リンク（pill・枠3px・↓丸）
 * .kth-link                 - テキストリンク（→付き下線）
 * .kth-tel-btn              - 電話番号pillボタン
 * .kth-icon-tel             - 電話アイコン丸
 * .kth-mv                   - TOPメインビジュアル
 * .kth-greeting             - TOPごあいさつ
 * .kth-shop-card            - TOP店舗カード
 * .kth-menu-card            - TOPメニュー（画像付き大／テキストのみ小）
 * .kth-news                 - お知らせリスト（news-list の見た目差分）
 * .kth-badge                - 店舗／ジャンルの pill バッジ
 * .kth-feature-card         - 会社の特徴カード
 * .kth-philosophy           - 理念ボックス
 * .kth-dl                   - 項目名＋内容の罫線リスト（--outline / --shop / --recruit / --navy）
 * .kth-sign                 - 代表署名
 * .kth-shop-hero            - 店舗紹介の店舗タイトルブロック（淡色面＋枠線：ネイビー／グリーン）
 * .kth-message              - 店長からのご挨拶
 * .kth-blog-card            - 店舗ページのお知らせカード
 * .kth-info                 - 店舗情報ボックス
 * .kth-map                  - Googleマップ枠（embed の見た目差分）
 * .kth-disclosure-card      - 書面掲示事項カード
 * .kth-tabs / __item        - pill型タブ（採用）
 * .kth-job-card             - 募集要項カード
 * .kth-empty                - 「現在募集しておりません」ボックス
 * .kth-target               - MAKANA こんな方へ
 * .kth-support-card         - MAKANA サポートカード
 * .kth-contact-tel          - MAKANA 電話カード
 * .kth-form / __*           - お問い合わせフォーム
 * .kth-blog-layout          - ブログ一覧・詳細の main + aside（flex 1 1 600 / 1 1 280）
 * .kth-filter / __item      - カテゴリ切替リンク（pill）
 * .kth-pagination           - pagination の見た目差分（48px丸）
 * .kth-side-box             - サイドバーボックス
 * .kth-article              - 記事詳細
 * .kth-header / .kth-logo / .kth-sp-nav / .kth-footer - ヘッダー・ロゴ・SPナビ・フッターの見た目差分
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - fz-* に 15/17/19/21/26/44px がない。clamp() による流体サイズ指定の utility がない
 *  - gap-* に 6/8/12/14/16/18/24/28/32/36/48px がない
 *  - container 幅に 1120 / 960 / 880px がない（container-narrow は 900px 固定）
 *  - section 余白が 120px/60px 固定で clamp() 流体余白に対応していない
 *  - ls-* に 0.04 / 0.06 / 0.08 / 0.24em がない
 *  - body の font-size が tablet 1.4rem / SP 1.2rem に自動縮小する（本デザインは全幅 16px）
 * 【指定方向不足】
 *  - section-corner は $radius_xl 固定で、左右inset（margin-inline）付き角丸面が組めない
 * 【状態不足】
 *  - header__nav-item の hover が下線アニメ固定で、pill背景 hover／現在ページ●の組み合わせがない
 *  - pagination の current/hover が四角前提で、丸型＋次へボタン強調がない
 * 【構造不足】
 *  - ●付き英字ラベル＋日本語見出しの縦積み見出し（heading 系は英字大・日本語小の前提）
 *  - 枠線pill＋右端丸矢印ボタン（btn-circle-arrow は丸が左・塗りhover）
 *  - 下層ヒーロー：薄色ベタ＋下角丸＋大英字左寄せ＋パンくず内包（page-hero--solid は中央寄せ）
 *  - pill 型セグメントタブ（背景トラック内でアクティブ塗り）
 *  - 項目名固定幅＋折返し対応の dl 罫線リスト（table-basic は table 前提）
 *  - ブログ用 flex-basis 型 main/aside（main-side は 76%/21% 固定）
 * 【装飾パターン不足】
 *  - 有機的ブロブ背景＋ドット円を写真の背後に重ねる MV 装飾
 *  - 非対称角丸（120px 32px 120px 32px）の写真切り抜き
 *  - 斜めストライプのサムネイルプレースホルダー
 *
 */

/* ==========================================================================
   Base（claude-design-output: body 16px / weight 500 / 全幅で縮小なし）
   ========================================================================== */
body {
  font-size: 1.6rem;
  font-weight: 500;
}
input,
textarea,
button,
select {
  font-family: inherit;
}
:where(a) {
  color: #3B7000;
}
:where(a):hover {
  color: #2B3326;
  opacity: 1;
}

/* ==========================================================================
   Layout
   ========================================================================== */
.kth-section {
  padding-left: clamp(20px, 4vw, 32px);
  padding-right: clamp(20px, 4vw, 32px);
}
.kth-section--py128 { padding-top: clamp(72px, 10vw, 128px); padding-bottom: clamp(72px, 10vw, 128px); }
.kth-section--py120 { padding-top: clamp(72px, 10vw, 120px); padding-bottom: clamp(72px, 10vw, 120px); }
.kth-section--pt120 { padding-top: clamp(72px, 10vw, 120px); }
.kth-section--pb120 { padding-bottom: clamp(72px, 10vw, 120px); }
.kth-section--pt104 { padding-top: clamp(64px, 8vw, 104px); }
.kth-section--pb104 { padding-bottom: clamp(72px, 8vw, 104px); }
.kth-section--pt96  { padding-top: clamp(56px, 8vw, 96px); }
.kth-section--pt88  { padding-top: clamp(56px, 7vw, 88px); }
.kth-section--pt72  { padding-top: clamp(48px, 6vw, 72px); }
.kth-section--pt128 { padding-top: clamp(80px, 10vw, 128px); }
.kth-section--pt152 { padding-top: clamp(96px, 12vw, 152px); }
.kth-section--anchor { scroll-margin-top: 80px; }

.kth-container {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}
.kth-container--1200 { max-width: 1200px; }
.kth-container--960  { max-width: 960px; }
.kth-container--880  { max-width: 880px; }

.kth-stack { display: flex; flex-direction: column; }
.kth-stack--20 { gap: 20px; }
.kth-stack--24 { gap: 24px; }
.kth-stack--32 { gap: 32px; }
.kth-stack--40 { gap: 40px; }
.kth-stack--48 { gap: 48px; }
.kth-stack--96 { gap: clamp(56px, 8vw, 96px); }

.kth-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}
.kth-grid--280 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.kth-grid--420 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.kth-grid--440 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); }
/* 店舗紹介のお知らせ（CMS出力）：記事が1〜2件でも3カラム幅を保つ（auto-fill で空の列を残す） */
#ok-blog-list-sanjo.kth-grid,
#ok-blog-list-futaba.kth-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }

.kth-panel {
  background: #F2F9E6;
  border-radius: clamp(32px, 6vw, 80px);
  margin: 0 clamp(0px, 2vw, 24px);
}

.kth-spacer { height: clamp(40px, 6vw, 64px); }

/* ==========================================================================
   Heading（●付き英字ラベル＋日本語見出し）
   ========================================================================== */
.kth-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.kth-heading--center {
  align-items: center;
  text-align: center;
}
.kth-heading--h3 { gap: 10px; }
.kth-heading__en {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.24em;
  line-height: 1.5;
  color: #3B7000;
}
.kth-heading__en::before {
  content: "";
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #7ACE05;
}
.kth-heading__ja {
  font-size: clamp(26px, 3.4vw, 36px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: #2B3326;
}
.kth-heading--h3 .kth-heading__ja { font-size: clamp(24px, 3vw, 30px); }
.kth-heading__lead {
  font-size: 15px;
  color: #535C4B;
}
.kth-heading--navy .kth-heading__en { color: #1F2F54; }
.kth-heading--navy .kth-heading__en::before { background: #1F2F54; }
.kth-heading--navy .kth-heading__ja { color: #1F2F54; }
.kth-heading--navy .kth-heading__lead { color: #4F5A70; }

/* ==========================================================================
   Header
   ========================================================================== */
.kth-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.96);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #E6ECDD;
}
.kth-header__inner {
  max-width: 1200px;
  height: auto;
  padding: 14px clamp(16px, 4vw, 32px);
  flex-wrap: wrap;
  gap: 10px 32px;
}
.kth-header__inner.header__inner {
  padding: 14px clamp(16px, 4vw, 32px);
  height: auto;
}
.kth-logo {
  gap: 12px;
  color: #2B3326;
}
.kth-logo__body { gap: 2px; }
.kth-logo__name {
  font-size: clamp(15px, 1.6vw, 18px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.3;
  color: #2B3326;
}
.kth-logo__name--footer { font-size: 18px; line-height: 1.5; }
.kth-logo__sub {
  font-family: "Quicksand", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #3B7000;
}
.kth-header__nav { gap: 4px; }
.kth-header__nav .header__nav-item a {
  gap: 2px;
  padding: 8px 14px;
  border-radius: 999px;
  white-space: nowrap;
  color: #2B3326;
}
.kth-header__nav .header__nav-item a:hover { background: #F2F9E6; }
.kth-header__nav .header__nav-item a::after,
.kth-header__nav .header__nav-item a:hover::after {
  width: 6px;
  height: 6px;
  left: 50%;
  margin-left: -3px;
  bottom: 0;
  border-radius: 50%;
  background: #7ACE05;
  transform: none;
  opacity: 0;
  transition: none;
}
.kth-header__nav .header__nav-item--current a::after,
.kth-header__nav .header__nav-item--current a:hover::after { opacity: 1; }
.kth-header__nav .header__nav-ja {
  order: 0;
  margin-top: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: normal;
  color: #2B3326;
}
.kth-header__nav .header__nav-en {
  order: 1;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: normal;
  color: #3B7000;
}
.nav-toggle { top: 12px; right: 12px; }
/* SPナビ：フッターと同じ淡いグリーン面＋濃色文字 */
.kth-sp-nav {
  background: rgba(242, 249, 230, 0.98);
}
.kth-sp-nav .sp-nav__item,
.kth-sp-nav .sp-nav__item:first-child { border-color: #DDEBC6; }
.kth-sp-nav .sp-nav__link { color: #2B3326; font-weight: 700; }
.kth-sp-nav .sp-nav__link:hover { background: #FFFFFF; color: #2B3326; }
.kth-sp-nav .sp-nav__en { font-size: 11px; letter-spacing: 0.16em; color: #3B7000; opacity: 1; }
.kth-sp-nav__tel.header__tel { color: #2B3326; font-size: 2.4rem; }
.kth-sp-nav__tel.header__tel::before { color: #7ACE05; }
.kth-sp-nav__tel.header__tel:hover { color: #2B3326; }

/* ==========================================================================
   Footer
   ========================================================================== */
.kth-footer {
  background: #F2F9E6;
  color: #2B3326;
  border-radius: clamp(32px, 6vw, 80px) clamp(32px, 6vw, 80px) 0 0;
  margin-top: clamp(40px, 6vw, 80px);
}
.kth-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 88px) clamp(20px, 4vw, 32px) 32px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.kth-footer__top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 40px;
}
.kth-footer__info {
  flex: 1 1 320px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.kth-footer__info .kth-logo { align-self: flex-start; }
.kth-footer__address {
  font-size: 15px;
  line-height: 1.9;
}
.kth-footer__tel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  align-self: flex-start;
  color: #2B3326;
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 24px;
  letter-spacing: 0.06em;
}
.kth-footer__sitemap {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 64px;
}
.kth-footer__group {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.kth-footer__title {
  font-family: "Quicksand", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #3B7000;
}
.kth-footer__link {
  color: #2B3326;
  font-size: 15px;
}
.kth-footer__link:hover { color: #3B7000; }
.kth-footer__bottom.footer-bottom {
  border-top: 1px solid #DDEBC6;
  padding: 24px 0 0;
  text-align: left;
}
.kth-footer__copyright.footer-bottom__copyright {
  font-family: "Quicksand", "Zen Maru Gothic", sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #2B3326;
}

/* ==========================================================================
   Page hero（下層）
   ========================================================================== */
.kth-page-hero {
  background: #F2F9E6;
  border-radius: 0 0 clamp(32px, 6vw, 80px) clamp(32px, 6vw, 80px);
}
.kth-page-hero__leaf {
  position: absolute;
  right: -40px;
  top: -50px;
  width: clamp(180px, 26vw, 320px);
  height: auto;
  opacity: 0.9;
}
.kth-page-hero__inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(56px, 8vw, 96px) clamp(20px, 4vw, 32px) clamp(48px, 6vw, 72px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.kth-page-hero__en {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: clamp(40px, 7vw, 80px);
  line-height: 1;
  letter-spacing: 0.04em;
  color: #7ACE05;
}
.kth-page-hero__ja {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #2B3326;
}

/* パンくず（breadcrumb の見た目差分） */
.kth-breadcrumb.breadcrumb {
  padding: 0;
  margin-top: 10px;
  font-size: 13px;
  color: #535C4B;
}
.kth-breadcrumb .breadcrumb__list { gap: 8px; }
.kth-breadcrumb .breadcrumb__item { gap: 8px; }
.kth-breadcrumb .breadcrumb__item:not(:last-child)::after {
  content: "›";
  margin: 0;
  color: #535C4B;
}
.kth-breadcrumb .breadcrumb__link { color: #3B7000; }
.kth-breadcrumb .breadcrumb__link:hover { text-decoration: none; color: #2B3326; }
.kth-breadcrumb .breadcrumb__current { color: #535C4B; }
.kth-breadcrumb--bar.breadcrumb {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px clamp(20px, 4vw, 32px) 0;
}

/* ==========================================================================
   Buttons / Links
   ========================================================================== */
.kth-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 11px 14px 11px 26px;
  border: 3px solid #7ACE05;
  border-radius: 999px;
  background: #FFFFFF;
  color: #2B3326;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.5;
  cursor: pointer;
  transition: background 0.25s ease;
}
.kth-btn:hover { background: #F2F9E6; color: #2B3326; }
.kth-btn__circle {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #7ACE05;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Quicksand", sans-serif;
}
.kth-btn--navy { border-color: #1F2F54; color: #1F2F54; }
.kth-btn--navy:hover { background: #EEF1F7; color: #1F2F54; }
.kth-btn--navy .kth-btn__circle { background: #1F2F54; }
.kth-btn--solid {
  padding: 14px 18px 14px 28px;
  border: none;
  background: #7ACE05;
}
.kth-btn--solid:hover { background: #8BD626; }
.kth-btn--solid .kth-btn__circle { width: 28px; height: 28px; color: #2B3326; }
.kth-btn--submit {
  align-self: center;
  gap: 16px;
  margin-top: 8px;
  padding: 18px 20px 18px 48px;
  font-size: 17px;
  letter-spacing: 0.1em;
}
.kth-btn--submit .kth-btn__circle { width: 32px; height: 32px; }

.kth-arrow {
  flex: none;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #7ACE05;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 20px;
}
.kth-arrow--48 { width: 48px; height: 48px; font-size: 18px; }
.kth-arrow--36 { width: 36px; height: 36px; font-size: 16px; font-weight: 500; }
.kth-arrow--navy { background: #1F2F54; }

.kth-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  color: #3B7000;
  font-weight: 700;
  font-size: 15px;
  text-decoration: underline;
}
.kth-link--navy { color: #1F2F54; }
.kth-link--dark { color: #2B3326; }
.kth-link:hover { color: #2B3326; }
.kth-link--navy:hover { color: #4F5A70; }
.kth-link-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
}

/* 店舗アンカー（pill） */
.kth-anchors {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.kth-anchors--shop {
  max-width: 960px;
  margin: 0 auto;
  padding: clamp(48px, 6vw, 72px) clamp(20px, 4vw, 32px) 0;
}
.kth-anchor {
  flex: 1 1 280px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px 16px 28px;
  border: 3px solid #7ACE05;
  border-radius: 999px;
  background: #FFFFFF;
  color: #2B3326;
  transition: background 0.25s ease;
}
.kth-anchor:hover { background: #F2F9E6; color: #2B3326; }
.kth-anchor--navy { border-color: #1F2F54; color: #1F2F54; }
.kth-anchor--navy:hover { background: #EEF1F7; color: #1F2F54; }
.kth-anchor__body { display: flex; flex-direction: column; gap: 2px; }
.kth-anchor__en {
  font-family: "Quicksand", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.5;
  color: #3B7000;
}
.kth-anchor--navy .kth-anchor__en { color: #1F2F54; }
.kth-anchor__ja {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
}
.kth-anchor--compact {
  flex-basis: 260px;
  padding: 14px 16px 14px 28px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* 電話アイコン丸 */
.kth-icon-tel {
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #7ACE05;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kth-icon-tel--36 { width: 36px; height: 36px; }
.kth-icon-tel--48 { width: 48px; height: 48px; }
.kth-icon-tel--navy { background: #1F2F54; }

/* 電話pillボタン */
.kth-tel-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 16px 28px;
  border: 3px solid #7ACE05;
  border-radius: 999px;
  background: #FFFFFF;
  color: #2B3326;
  transition: background 0.25s ease;
}
.kth-tel-btn:hover { background: #F2F9E6; color: #2B3326; }
.kth-tel-btn--navy { border-color: #1F2F54; color: #1F2F54; }
.kth-tel-btn--navy:hover { background: #EEF1F7; color: #1F2F54; }
.kth-tel-btn__body { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.kth-tel-btn__label { font-size: 13px; font-weight: 700; line-height: 1.5; }
.kth-tel-btn__num {
  font-family: "Quicksand", sans-serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.1;
}

/* バッジ */
.kth-badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  border-radius: 999px;
  padding: 3px 12px;
  color: #FFFFFF;
  background: #1F2F54;
}
.kth-badge--green { background: #7ACE05; color: #F8F8F8; }
.kth-badge--futaba { background: #3B7000; color: #FFFFFF; }
.kth-badge--sanjo { background: #1F2F54; color: #FFFFFF; }
.kth-badge--genre {
  background: transparent;
  color: #535C4B;
  border: 1px solid #D2DCC4;
  padding: 2px 10px;
}
.kth-badge--lg { font-size: 13px; padding: 4px 14px; }
.kth-badge--genre.kth-badge--lg { font-size: 12px; padding: 3px 12px; }

/* ==========================================================================
   TOP：メインビジュアル
   ========================================================================== */
.kth-mv {
  position: relative;
  overflow: hidden;
}
.kth-mv__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 32px) clamp(64px, 8vw, 112px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(40px, 5vw, 72px);
}
.kth-mv__text {
  flex: 1 1 360px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.kth-mv__label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.24em;
  line-height: 1.5;
  color: #3B7000;
}
.kth-mv__label::before {
  content: "";
  width: 28px;
  height: 2px;
  border-radius: 2px;
  background: #7ACE05;
}
.kth-mv__copy {
  font-size: clamp(26px, 3.4vw, 42px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: #1F2F54;
  white-space: nowrap;
}
.kth-mv__en {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4vw, 52px);
  line-height: 1.1;
  letter-spacing: 0.02em;
  color: #7ACE05;
}
.kth-mv__visual {
  flex: 1.35 1 480px;
  position: relative;
  padding-bottom: 30px; /* 元データのドット行（20px + 10px）分 */
}
.kth-mv__blob {
  position: absolute;
  right: -6%;
  top: -8%;
  width: 78%;
  height: 92%;
  border-radius: 48% 52% 44% 56% / 52% 44% 56% 48%;
  background: #F2F9E6;
}
.kth-mv__circle {
  position: absolute;
  left: -18px;
  bottom: -22px;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: #7ACE05;
}
.kth-mv #slideshow {
  position: relative;
  aspect-ratio: 4 / 3;
  height: auto;
  border-radius: 120px 32px 120px 32px;
  overflow: hidden;
  background: #F6FBEF;
}
/* CMSスライダー（Swiper）：スライドを absolute にすると fade の translate と衝突して枠外に飛ぶため、高さ100%の連鎖で埋める */
.kth-mv #slideshow #cms-slider-1-1-area,
.kth-mv #slideshow .slider_wrapper,
.kth-mv #slideshow .main_slider__outer,
.kth-mv #slideshow .main_slider,
.kth-mv #slideshow .swiper-wrapper,
.kth-mv #slideshow .swiper-slide,
.kth-mv #slideshow .main_slider__inner {
  height: 100%;
}
.kth-mv #slideshow #cms-slider-1-1-area {
  position: absolute;
  inset: 0;
}
.kth-mv #slideshow img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 65% center;
}

/* ==========================================================================
   TOP：ごあいさつ
   ========================================================================== */
.kth-greeting {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 36px;
  text-align: center;
}
.kth-greeting__text {
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 2.2;
  letter-spacing: 0.04em;
  text-wrap: pretty;
}
.kth-greeting__illust {
  display: block;
  width: 100%;
  max-width: 800px;
  height: auto;
  margin-top: clamp(16px, 3vw, 32px);
}

/* ==========================================================================
   TOP：店舗紹介カード
   ========================================================================== */
.kth-shop-card {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 12px 12px 32px;
  border-radius: 32px;
  background: #F2F9E6;
  color: #2B3326;
  transition: box-shadow 0.3s ease;
}
.kth-shop-card:hover { box-shadow: 0 12px 28px rgba(60, 100, 10, 0.14); }
.kth-shop-card--navy { background: #EEF1F7; color: #1F2F54; }
.kth-shop-card--navy:hover { box-shadow: 0 12px 28px rgba(31, 47, 84, 0.14); }
.kth-shop-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 24px;
}
.kth-shop-card__body {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 0 20px;
}
.kth-shop-card__info { display: flex; flex-direction: column; gap: 6px; }
.kth-shop-card__name {
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
}
.kth-shop-card__place { font-size: 15px; line-height: 1.9; color: #535C4B; }
.kth-shop-card--navy .kth-shop-card__place { color: #4F5A70; }

/* ==========================================================================
   TOP：メニューカード
   ========================================================================== */
.kth-menu-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 32px;
  background: #FFFFFF;
  border-radius: 32px;
  color: #2B3326;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.kth-menu-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(60, 100, 10, 0.08);
  color: #2B3326;
}
.kth-menu-card--strong:hover { box-shadow: 0 16px 32px rgba(60, 100, 10, 0.18); }
.kth-menu-card--photo {
  flex-direction: column;
  align-items: stretch;
  gap: 20px;
  padding: 12px 12px 32px;
}
.kth-menu-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 8;
  object-fit: cover;
  object-position: center;
  border-radius: 24px;
}
.kth-menu-card__img--top30 { object-position: center 30%; }
.kth-menu-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 20px;
}
.kth-menu-card__label { display: flex; flex-direction: column; gap: 6px; }
.kth-menu-card__en {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.2em;
  line-height: 1.5;
  color: #3B7000;
}
.kth-menu-card__ja {
  font-size: clamp(19px, 2vw, 22px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
}
.kth-menu-card--photo .kth-menu-card__ja { font-size: clamp(20px, 2.2vw, 24px); }

/* ==========================================================================
   お知らせリスト（news-list の見た目差分）
   ========================================================================== */
.kth-news.news-list { border-top: 1px solid #E6ECDD; }
.kth-news .news-list__item { border-bottom: 1px solid #E6ECDD; }
.kth-news .news-list__link {
  gap: 20px 28px;
  padding: 24px 4px;
  color: #2B3326;
}
.kth-news .news-list__link:hover { background: #F8FCF2; color: #2B3326; }
.kth-news__thumb {
  position: relative;
  flex: 0 0 200px;
  max-width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 20px;
  overflow: hidden;
  background: repeating-linear-gradient(135deg, #EAF5D8 0 12px, #F4FAEA 12px 24px);
  display: flex;
  align-items: flex-end;
  padding: 10px;
}
/* 画像は padding を無視して枠いっぱいに敷く（元画像のサイズ・比率に関係なく 16:10 でトリミング） */
.kth-news__thumb img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.kth-thumb-label {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  color: #3B7000;
  background: #FFFFFF;
  border-radius: 999px;
  padding: 2px 10px;
}
.kth-news__body {
  flex: 1 1 280px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.kth-news__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.kth-news .news-list__date {
  font-family: "Quicksand", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #535C4B;
}
.kth-news .news-list__cat {
  min-width: 0;
  text-align: left;
}
.kth-news .news-list__title {
  min-width: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
}

/* ==========================================================================
   会社概要
   ========================================================================== */
.kth-split {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(32px, 6vw, 88px);
  align-items: flex-start;
}
.kth-split__head { flex: 1 1 260px; }
.kth-split__body { flex: 2 1 480px; display: flex; flex-direction: column; gap: 28px; }
.kth-text {
  font-size: clamp(16px, 1.6vw, 17px);
  line-height: 2.2;
  letter-spacing: 0.04em;
  text-wrap: pretty;
}
.kth-text--center { text-align: center; line-height: 2.1; letter-spacing: 0; }
.kth-text--lead { font-size: clamp(18px, 2.2vw, 22px); line-height: 2; }
.kth-sign {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  padding-top: 24px;
  border-top: 1px solid #E6ECDD;
}
.kth-sign__text { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; justify-content: flex-end; }
.kth-sign__role { font-size: 14px; }
.kth-sign__name { font-size: 22px; font-weight: 700; letter-spacing: 0.12em; }

.kth-feature-card {
  position: relative;
  background: #FFFFFF;
  border-radius: 32px;
  padding: 40px 32px 36px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
}
.kth-feature-card__num {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 1;
  color: #7ACE05;
}
.kth-feature-card__img {
  display: block;
  width: 160px;
  height: 160px;
  object-fit: contain;
}
.kth-feature-card__title { font-size: 21px; font-weight: 700; line-height: 1.6; }
.kth-feature-card__text { align-self: stretch; text-align: left; font-size: 15px; line-height: 2; color: #535C4B; }

.kth-philosophy {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  background: #F2F9E6;
  border-radius: 48px;
  padding: clamp(48px, 7vw, 88px) clamp(28px, 6vw, 80px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  text-align: center;
  overflow: hidden;
}
.kth-philosophy > * { position: relative; }
.kth-philosophy > .kth-philosophy__leaf {
  position: absolute;
  left: -30px;
  bottom: -40px;
  width: 180px;
  height: auto;
  opacity: 0.5;
}
.kth-philosophy__lead {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.08em;
}
.kth-philosophy__text { font-size: 15px; line-height: 2.1; }
@media (min-width: 640px) {
  /* 3行（最長40字）で収まるよう画面幅に応じて縮小 */
  .kth-philosophy__text { font-size: clamp(12px, 1.9vw, 16px); white-space: nowrap; }
}

/* dl リスト */
.kth-dl { display: flex; flex-direction: column; }
.kth-dl__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 24px;
  padding: 18px 0;
  border-bottom: 1px solid #E6ECDD;
}
.kth-dl__term { flex: 0 0 96px; font-weight: 700; color: #2B3326; }
.kth-dl__desc { flex: 1 1 200px; line-height: 1.8; }
.kth-dl__desc a { color: inherit; }
.kth-dl--outline { border-top: 2px solid #7ACE05; }
.kth-dl--outline .kth-dl__row { gap: 8px 32px; padding: 24px 8px; }
.kth-dl--outline .kth-dl__term { flex-basis: 160px; }
.kth-dl--outline .kth-dl__desc { flex-basis: 320px; line-height: 1.9; }
.kth-dl--shop {
  background: #FFFFFF;
  border-radius: 24px;
  padding: 8px 28px;
}
.kth-dl--shop .kth-dl__row:last-child { border-bottom: none; }
.kth-dl--navy .kth-dl__row { border-bottom-color: #E1E6EF; }
.kth-dl--navy .kth-dl__term { color: #1F2F54; }
.kth-dl--recruit { padding: 8px 32px 16px; }
.kth-dl--recruit .kth-dl__row { gap: 6px 32px; padding: 20px 0; }
.kth-dl--recruit .kth-dl__term { flex-basis: 140px; }
.kth-dl--recruit .kth-dl__desc { font-size: 16px; font-weight: 700; color: #1F2F54; }
.kth-dl--recruit .kth-dl__desc--em { font-size: 20px; }

/* ==========================================================================
   書面掲示事項等
   ========================================================================== */
.kth-disclosure-card {
  background: #F2F9E6;
  border-radius: 24px;
  padding: clamp(24px, 4vw, 36px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.kth-disclosure-card--navy { background: #EEF1F7; }
.kth-disclosure-card__title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  color: #2B3326;
}
.kth-disclosure-card__title::before {
  content: "";
  flex: none;
  width: 8px;
  height: 22px;
  border-radius: 4px;
  background: #7ACE05;
}
.kth-disclosure-card--navy .kth-disclosure-card__title { color: #1F2F54; }
.kth-disclosure-card--navy .kth-disclosure-card__title::before { background: #1F2F54; }
.kth-disclosure-card__text { font-size: 16px; line-height: 2; }
.kth-disclosure-card__text > * + * { margin-top: 12px; }
.kth-disclosure-card__list { display: flex; flex-direction: column; gap: 8px; }
.kth-disclosure-card__list li { position: relative; padding-left: 20px; }
.kth-disclosure-card__list li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0.8em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #7ACE05;
}
.kth-disclosure-card--navy .kth-disclosure-card__list li::before { background: #1F2F54; }

/* ==========================================================================
   店舗紹介
   ========================================================================== */
.kth-shop-hero {
  position: relative;
  background: #EEF1F7;
  border: 3px solid #1F2F54;
  border-radius: 48px;
  padding: clamp(40px, 6vw, 72px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 40px;
  overflow: hidden;
}
.kth-shop-hero--green { background: #F2F9E6; border-color: #7ACE05; }
/* 右上の丸飾り（MVの丸と同じモチーフ） */
.kth-shop-hero::before {
  content: "";
  position: absolute;
  right: -60px;
  top: -60px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: #FFFFFF;
  opacity: 0.7;
}
.kth-shop-hero > * { position: relative; }
.kth-shop-hero__text {
  flex: 1 1 360px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  color: #1F2F54;
}
.kth-shop-hero--green .kth-shop-hero__text { color: #2B3326; }
.kth-shop-hero__logo {
  display: block;
  width: 220px;
  height: 72px;
  object-fit: cover;
  border-radius: 16px;
  background: #EFEFEF;
}
.kth-shop-hero__badge {
  align-self: flex-start;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  color: #3B7000;
  background: #FFFFFF;
  border: 2px solid #7ACE05;
  border-radius: 999px;
  padding: 4px 16px;
}
.kth-shop-hero__en {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Quicksand", sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.24em;
  line-height: 1.5;
  color: #1F2F54;
}
.kth-shop-hero__en::before {
  content: "";
  flex: none;
  width: 28px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}
.kth-shop-hero--green .kth-shop-hero__en { color: #3B7000; }
.kth-shop-hero--green .kth-shop-hero__en::before { background: #7ACE05; }
.kth-shop-hero__name {
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
.kth-shop-hero__place { font-size: 15px; line-height: 1.9; }
.kth-shop-hero__img {
  display: block;
  flex: 1 1 300px;
  min-width: 0;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 120px 24px 120px 24px;
}
.kth-shop-hero--green .kth-shop-hero__img { border-radius: 24px 120px 24px 120px; }

.kth-message {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
}
.kth-message__person {
  flex: 0 1 280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.kth-message__img {
  display: block;
  width: min(100%, 260px);
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  border: 6px solid #7ACE05;
}
.kth-message--navy .kth-message__img { border-color: #1F2F54; }
.kth-message__caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  color: #2B3326;
}
.kth-message--navy .kth-message__caption { color: #1F2F54; }
.kth-message__shop { font-size: 13px; }
.kth-message__role { font-size: 20px; font-weight: 700; letter-spacing: 0.1em; }
.kth-message__body { flex: 1 1 420px; display: flex; flex-direction: column; gap: 24px; }
.kth-message__box {
  background: #F2F9E6;
  border-radius: 32px;
  padding: clamp(28px, 4vw, 40px);
}
.kth-message--navy .kth-message__box { background: #EEF1F7; }
.kth-message__text { font-size: 16px; line-height: 2.1; }

.kth-block-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.kth-blog-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  color: #2B3326;
  transition: opacity 0.3s ease;
}
.kth-blog-card:hover { opacity: 0.85; color: #2B3326; }
.kth-blog-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 24px;
}
.kth-blog-card__meta { display: flex; align-items: center; gap: 12px; }
.kth-blog-card__date {
  font-family: "Quicksand", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #535C4B;
}
.kth-blog-card__title { font-size: 17px; font-weight: 700; line-height: 1.7; color: #2B3326; }
/* ブログCMSのテンプレートは両店舗共通（--navy 固定・バッジは修飾なし）のため、店舗色を使わず白・グリーン系に統一 */
.kth-blog-card--navy,
.kth-blog-card--navy:hover { color: #2B3326; }
.kth-blog-card .kth-badge,
.kth-news .kth-badge,
.kth-article .kth-badge {
  background: #F2F9E6;
  border: 1px solid #7ACE05;
  color: #3B7000;
  padding: 2px 11px;
}
.kth-article .kth-badge--lg { padding: 3px 13px; }

.kth-info {
  background: #F2F9E6;
  border-radius: 48px;
  padding: clamp(32px, 5vw, 64px);
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.kth-info--navy { background: #EEF1F7; }
.kth-info__cols { display: flex; flex-wrap: wrap; gap: 32px; }
.kth-info__main { flex: 1 1 380px; display: flex; flex-direction: column; gap: 24px; }
.kth-map.embed {
  flex: 1 1 380px;
  min-height: 320px;
  border-radius: 24px;
  background: repeating-linear-gradient(135deg, #EAF5D8 0 12px, #F8FCF2 12px 24px);
}
.kth-map--navy.embed { background: repeating-linear-gradient(135deg, #E6EAF2 0 12px, #F7F8FB 12px 24px); }
.kth-map.embed iframe { min-height: 320px; }

/* ==========================================================================
   採用情報
   ========================================================================== */
.kth-tabs {
  display: flex;
  gap: 6px;
  padding: 6px;
  border-radius: 999px;
  background: #EEF1F7;
}
.kth-tabs__item {
  border: none;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  padding: 12px 28px;
  border-radius: 999px;
  background: transparent;
  color: #1F2F54;
  transition: background 0.3s ease;
}
.kth-tabs__item.is-active { background: #1F2F54; color: #FFFFFF; }

.kth-job-card {
  background: #FFFFFF;
  border: 2px solid #E1E6EF;
  border-radius: 32px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.kth-job-card__head {
  background: #1F2F54;
  color: #FFFFFF;
  padding: 24px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.kth-job-card__title { font-size: 22px; font-weight: 700; letter-spacing: 0.08em; line-height: 1.5; }
.kth-job-card__type {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  color: #1F2F54;
  background: #FFFFFF;
  border-radius: 999px;
  padding: 4px 14px;
}

.kth-empty {
  background: #F2F9E6;
  border-radius: 32px;
  padding: clamp(48px, 6vw, 72px) 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
.kth-empty__text {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* ==========================================================================
   MAKANA
   ========================================================================== */
.kth-target {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  text-align: center;
}
.kth-target__lead {
  font-size: clamp(20px, 2.4vw, 24px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: #2B3326;
}
.kth-target__items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  width: 100%;
}
.kth-target__item {
  flex: 1 1 320px;
  padding: 28px 32px;
  border-radius: 32px;
  background: #F2F9E6;
  font-size: clamp(18px, 2vw, 21px);
  font-weight: 700;
  line-height: 1.7;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.kth-target__img {
  display: block;
  width: 100%;
  max-width: 280px;
  height: auto;
  aspect-ratio: 1358 / 791;
  object-fit: contain;
}
.kth-target__catch {
  margin-top: 0; /* 集中線はセクション上余白内に収まる */
  text-align: center;
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
/* 「サポート」上の集中線 */
.kth-target__point { position: relative; display: inline-block; }
.kth-target__point-img {
  position: absolute;
  left: 50%;
  bottom: calc(100% - 0.1em);
  transform: translateX(-50%);
  width: 1.6em;
  max-width: none;
  height: auto;
  pointer-events: none;
}

.kth-support-card {
  background: #F2F9E6;
  border-radius: 32px;
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.kth-support-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.kth-support-card__num {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.2em;
  color: #3B7000;
}
.kth-support-card__icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kth-support-card__title { font-size: 22px; font-weight: 700; letter-spacing: 0.06em; line-height: 1.5; }
.kth-support-card__text { font-size: 15px; line-height: 2; }
.kth-support-closing {
  margin-top: clamp(40px, 5vw, 56px);
  font-size: clamp(18px, 2vw, 21px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
}

.kth-contact-tel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px 32px;
  padding: 28px 32px;
  border-radius: 32px;
  background: #FFFFFF;
  border: 3px solid #7ACE05;
  color: #2B3326;
  transition: box-shadow 0.3s ease;
}
.kth-contact-tel:hover { box-shadow: 0 12px 28px rgba(60, 100, 10, 0.14); color: #2B3326; }
.kth-contact-tel__lead { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.kth-contact-tel__label { font-size: 15px; font-weight: 700; }
.kth-contact-tel__note {
  font-size: 12px;
  font-weight: 700;
  color: #3B7000;
  background: #F2F9E6;
  border-radius: 999px;
  padding: 2px 12px;
}
.kth-contact-tel__num-wrap { display: flex; align-items: center; gap: 14px; }
.kth-contact-tel__num {
  font-family: "Quicksand", sans-serif;
  font-size: clamp(28px, 3.6vw, 38px);
  font-weight: 700;
  letter-spacing: 0.06em;
}
.kth-heading__ja--contact { font-size: clamp(26px, 3.6vw, 38px); }

.kth-form {
  background: #FFFFFF;
  border-radius: 32px;
  padding: clamp(28px, 5vw, 56px);
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.kth-form__field { display: flex; flex-direction: column; gap: 10px; }
.kth-form__label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 700;
  color: #2B3326;
}
.kth-form__req {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  color: #3B7000;
  background: #F2F9E6;
  border: 1px solid #7ACE05;
  border-radius: 6px;
  padding: 1px 8px;
}
.kth-form .form-input {
  padding: 16px 18px;
  border: 2px solid #E6ECDD;
  border-radius: 16px;
  font-size: 16px;
  line-height: 1.5;
  color: #2B3326;
  background: #FAFCF7;
  outline: none;
}
.kth-form .form-input:focus { border-color: #7ACE05; background: #FFFFFF; }
.kth-form textarea.form-input { line-height: 1.8; resize: vertical; }

/* ==========================================================================
   ブログ（一覧・詳細）
   ========================================================================== */
.kth-blog-layout {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 88px) clamp(20px, 4vw, 32px) clamp(72px, 8vw, 104px);
  display: flex;
  flex-wrap: wrap;
  gap: clamp(40px, 5vw, 64px);
  align-items: flex-start;
}
.kth-blog-layout--detail { padding-top: clamp(40px, 5vw, 64px); }
.kth-blog-layout__main {
  flex: 1 1 600px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.kth-blog-layout__side {
  flex: 1 1 280px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.kth-filter { display: flex; flex-wrap: wrap; gap: 10px; }
.kth-filter__item {
  border: 2px solid #E6ECDD;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  padding: 10px 24px;
  border-radius: 999px;
  background: #FFFFFF;
  color: #2B3326;
  transition: all 0.25s ease;
}
.kth-filter__item:hover { border-color: #7ACE05; color: #2B3326; }
/* 選択中：サイトのボタン（.kth-btn）と同じ緑枠＋淡緑面、見出しと同じ●で示す */
.kth-filter__item.is-current,
.kth-filter__item.is-current:hover {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-color: #7ACE05;
  background: #F2F9E6;
  color: #2B3326;
}
.kth-filter__item.is-current::before {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #7ACE05;
}

.kth-pagination.pagination { margin: 0; }
.kth-pagination .pagination__list { display: flex; align-items: center; gap: 8px; }
.kth-pagination .pagination__link {
  width: 48px;
  min-width: 48px;
  height: 48px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid #E6ECDD;
  color: #2B3326;
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
}
.kth-pagination .pagination__link:hover { border-color: #7ACE05; color: #2B3326; }
.kth-pagination .pagination__link.is-current,
.kth-pagination .pagination__link--next {
  border: none;
  background: #7ACE05;
  color: #2B3326;
}

.kth-side-box {
  background: #F2F9E6;
  border-radius: 24px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.kth-side-box__title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  font-size: 17px;
  font-weight: 700;
  color: #2B3326;
}
.kth-side-box__en {
  font-family: "Quicksand", sans-serif;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: #3B7000;
}
.kth-side-box__list { display: flex; flex-direction: column; }
.kth-side-box__link {
  display: flex;
  justify-content: space-between;
  padding: 12px 0;
  border-top: 1px solid #DDEBC6;
  color: #2B3326;
  font-size: 15px;
}
.kth-side-box__link:hover { color: #3B7000; }
.kth-side-box__arrow { font-family: "Quicksand", sans-serif; color: #3B7000; }
.kth-side-box__count { color: #535C4B; }
.kth-side-box__link--recent { flex-direction: column; gap: 4px; }
.kth-side-box__date {
  font-family: "Quicksand", sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: #535C4B;
}
.kth-side-box__post { font-size: 14px; line-height: 1.7; }

.kth-article { gap: 32px; }
.kth-article__head { display: flex; flex-direction: column; gap: 18px; }
.kth-article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.kth-article__date {
  font-family: "Quicksand", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #535C4B;
}
.kth-article__title {
  font-size: clamp(26px, 3.4vw, 36px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #2B3326;
  text-wrap: pretty;
}
.kth-article__hero {
  aspect-ratio: 16 / 9;
  border-radius: 32px;
  overflow: hidden;
  background: repeating-linear-gradient(135deg, #EAF5D8 0 14px, #F4FAEA 14px 28px);
  display: flex;
  align-items: flex-end;
  padding: 20px;
}
.kth-article__hero .kth-thumb-label { font-size: 12px; padding: 4px 12px; }
.kth-article__body {
  display: flex;
  flex-direction: column;
  gap: 28px;
  font-size: 17px;
  line-height: 2.1;
}
.kth-article__body h2 {
  margin: 16px 0 0;
  padding: 14px 22px;
  border-radius: 16px;
  background: #F2F9E6;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
}
.kth-article__body h3 {
  margin: 8px 0 0;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
}
.kth-article__body h3::before {
  content: "";
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #7ACE05;
}
.kth-article__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding-top: 32px;
  border-top: 1px solid #E6ECDD;
}
.kth-article__pager { color: #2B3326; font-weight: 700; font-size: 15px; }
.kth-article__pager:hover { color: #3B7000; }

/* ==========================================================================
   SP 調整
   ========================================================================== */
@media (max-width: 639px) {
  .kth-tabs { align-self: flex-start; }
  .kth-tabs__item { padding: 10px 22px; }

  /* 店舗情報の電話ボタン：番号を1行に収める */
  .kth-tel-btn { gap: 10px; padding: 14px 16px; }
  .kth-tel-btn .kth-icon-tel { width: 36px; height: 36px; }
  .kth-tel-btn .kth-icon-tel svg { width: 16px; height: 16px; }
  .kth-tel-btn__num {
    font-size: clamp(17px, 5.4vw, 26px);
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  /* フッターナビ（サイトマップ）は非表示 */
  .kth-footer__sitemap { display: none; }

  /* 中央寄せの長文は左寄せ（見出し・短いキャッチは中央のまま） */
  .kth-greeting__text,
  .kth-philosophy__text,
  .kth-text--center {
    align-self: stretch;
    text-align: left;
  }
}
.kth-shop-card--navy .kth-anchor__en { color: #1F2F54; }

/* ==========================================================================
   CMSフォーム（送信ボタン・必須ラベル）
   ========================================================================== */
.submit-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 8px auto 0 !important;
  padding: 18px 20px 18px 48px !important;
  border: 3px solid #7ACE05 !important;
  border-radius: 999px !important;
  background: #FFFFFF !important;
  color: #2B3326 !important;
  font-family: inherit !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.1em !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background 0.25s ease !important;
}
.submit-btn::after {
  content: "→" !important;
  flex: none !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: #7ACE05 !important;
  color: #FFFFFF !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: "Quicksand", sans-serif !important;
  letter-spacing: 0 !important;
}
.form-contents .submit-btn::before,
.form-pattern-1 .submit-btn::before {
  flex: none !important;
  margin-right: 0 !important;
  background-color: #3B7000 !important;
}
.submit-btn:hover { background: #F2F9E6 !important; color: #2B3326 !important; }
@media (max-width: 639px) {
  .submit-btn {
    gap: 12px !important;
    padding: 14px 16px 14px 32px !important;
    font-size: 16px !important;
    letter-spacing: 0.05em !important;
  }
  .submit-btn::after { width: 28px !important; height: 28px !important; }
}

.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  content: '必須' !important;
  color: #3B7000 !important;
  background: #F2F9E6 !important;
  border: 1px solid #7ACE05 !important;
  border-radius: 6px !important;
}

/* ==========================================================================
   会社概要：沿革（年表形式）
   ========================================================================== */
.kth-history { list-style: none; margin: 0; padding: 0; }
.kth-history__item {
  position: relative;
  display: flex;
  gap: 32px;
  padding: 0 0 32px 28px;
}
.kth-history__item:last-child { padding-bottom: 0; }
/* 縦線 */
.kth-history__item::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 14px;
  bottom: -2px;
  width: 2px;
  background: #CFE8A6;
}
.kth-history__item:last-child::before { display: none; }
/* 丸 */
.kth-history__item::after {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #7ACE05;
  box-shadow: 0 0 0 4px #F2F9E6;
}
.kth-history__date {
  flex: 0 0 7em;
  margin: 0;
  font-weight: 700;
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.6;
  color: #3B7000;
  letter-spacing: 0.04em;
}
.kth-history__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; }
.kth-history__title {
  margin: 0;
  font-weight: 700;
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.6;
}
.kth-history__text {
  margin: 0;
  font-size: clamp(14px, 1.4vw, 16px);
  line-height: 1.9;
}
/* PC：見出しと本文の間の余白を詰める */
@media (min-width: 640px) {
  .kth-split--history { gap: 48px; flex-wrap: nowrap; }
  .kth-split--history .kth-split__head { flex: 0 0 auto; }
  .kth-split--history .kth-split__body { flex: 1 1 auto; }
}
@media (max-width: 639px) {
  .kth-history__item { flex-direction: column; gap: 4px; padding-bottom: 28px; }
  .kth-history__date { flex-basis: auto; }
}
