/* トップページ専用スタイル（front-page.php でのみ読み込み） */

@media (max-width: 900px) {
  .kkm-stack { grid-template-columns: 1fr !important; }
  .kkm-stack-3 { grid-template-columns: 1fr 1fr !important; }
  .kkm-pad { padding-left: var(--gutter-sp) !important; padding-right: var(--gutter-sp) !important; }
}
@media (max-width: 620px) {
  .kkm-stack-3 { grid-template-columns: 1fr !important; }
}

/* ヒーロー */
.kkm-hero {
  background: var(--green-800);
  color: var(--on-dark-900);
  padding: var(--section-y-lg) var(--gutter) 0;
}
.kkm-hero-inner {
  max-width: var(--measure);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 64px;
  align-items: center;
}
.kkm-hero-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  padding-bottom: var(--section-y-lg);
}
.kkm-hero-eyebrow {
  font-size: var(--type-caption-sm);
  letter-spacing: 0.24em;
  color: var(--green-200);
}
.kkm-hero-h1 {
  font-family: var(--font-serif);
  font-weight: var(--weight-medium);
  font-size: var(--type-hero);
  line-height: var(--leading-hero);
  margin: 0;
  letter-spacing: var(--tracking-body);
  text-wrap: pretty;
  color: var(--on-dark-900);
}
.kkm-hero-lead {
  margin: 0;
  font-size: var(--type-lead);
  color: var(--on-dark-600);
  max-width: 30em;
  text-wrap: pretty;
}
.kkm-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.kkm-hero-btn-primary {
  background: var(--on-dark-900);
  color: var(--green-800);
  padding: 15px 30px;
  border-radius: var(--radius-button);
  font-weight: var(--weight-medium);
  font-size: var(--type-body-sm);
}
.kkm-hero-btn-primary:hover { background: #fff; color: var(--green-800); }
.kkm-hero-btn-secondary {
  border: 1px solid oklch(0.55 0.04 150);
  color: var(--on-dark-900);
  padding: 15px 30px;
  border-radius: var(--radius-button);
  font-weight: var(--weight-medium);
  font-size: var(--type-body-sm);
}
.kkm-hero-btn-secondary:hover { border-color: var(--on-dark-900); color: var(--on-dark-900); }
.kkm-hero-img {
  align-self: end;
  width: 100%;
  height: 480px;
  object-fit: cover;
  object-position: 46% center;
  display: block;
}
@media (max-width: 760px) {
  .kkm-hero { padding-top: 40px !important; }
  .kkm-hero-inner { gap: 32px !important; }
  .kkm-hero-col { padding-bottom: 48px !important; gap: 22px !important; }
  .kkm-hero-img { height: 300px !important; }
}
@media (max-width: 620px) {
  .kkm-hero-h1 { font-size: 32px !important; }
}

/* 実績・資格バー */
.kkm-trust-bar {
  background: var(--green-900);
  color: var(--on-dark-700);
  border-top: 1px solid oklch(0.34 0.04 162);
}
.kkm-trust-bar-inner {
  max-width: var(--measure);
  margin: 0 auto;
  padding: 22px var(--gutter);
  display: flex;
  flex-wrap: wrap;
  gap: 14px 40px;
  align-items: center;
  font-size: var(--type-ui-sm);
}
.kkm-trust-label {
  font-family: var(--font-serif);
  font-size: var(--type-ui-sm);
  letter-spacing: var(--tracking-badge);
  color: oklch(0.7 0.05 150);
}
.kkm-trust-sep { width: 1px; height: 16px; background: var(--line-dark-soft); }

/* NEWS */
.kkm-news-section { max-width: var(--measure); margin: 0 auto; padding: 72px var(--gutter) 0; }
.kkm-news-box {
  border: 1px solid var(--line-400);
  background: var(--paper-000);
  padding: 18px 24px;
  display: flex;
  gap: 20px;
  align-items: baseline;
  flex-wrap: wrap;
  font-size: var(--type-ui-sm);
  margin-bottom: 44px;
}
.kkm-news-label { font-family: var(--font-serif); letter-spacing: var(--tracking-badge); color: oklch(0.45 0.07 162); font-size: var(--type-caption-sm); }
.kkm-news-text { flex: 1; min-width: 280px; }
.kkm-news-link { font-size: var(--type-caption-sm); }

.kkm-blog-header { display: flex; align-items: baseline; gap: 20px; margin-bottom: var(--space-6); flex-wrap: wrap; }
.kkm-blog-label { font-family: var(--font-mono); font-size: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); color: oklch(0.55 0.05 155); }
.kkm-blog-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h2); margin: 0; letter-spacing: var(--tracking-heading); }
.kkm-blog-sub { font-size: var(--type-caption); color: var(--ink-500); }
.kkm-blog-more { margin-left: auto; font-size: var(--type-ui-sm); }

.kkm-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line-200);
  border: 1px solid var(--line-200);
}
.kkm-blog-card {
  background: var(--paper-000);
  padding: 28px 26px;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.kkm-blog-card:hover { background: var(--paper-300); }
.kkm-blog-date { font-size: var(--type-micro); color: var(--ink-400); letter-spacing: var(--tracking-wordmark); }
.kkm-blog-title { font-family: var(--font-serif); font-size: var(--type-h6); line-height: 1.75; color: var(--green-700); text-wrap: pretty; }
.kkm-blog-readmore { margin-top: auto; padding-top: var(--space-4); font-size: var(--type-caption-sm); color: oklch(0.45 0.05 158); }

/* SERVICE 入口カード */
.kkm-entry-section { max-width: var(--measure); margin: 0 auto; padding: var(--section-y) var(--gutter) 96px; }
.kkm-entry-heading-wrap { text-align: center; display: flex; flex-direction: column; gap: 10px; margin-bottom: 44px; }
.kkm-entry-eyebrow { font-family: var(--font-mono); font-size: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); color: oklch(0.55 0.05 155); }
.kkm-entry-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h1); margin: 0; letter-spacing: var(--tracking-heading); }
.kkm-entry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--grid-gap-lg); }

.kkm-entry-card { display: flex; flex-direction: column; gap: var(--space-5); padding: var(--card-pad); border-radius: var(--radius-card); }
.kkm-entry-card-corporate { background: var(--green-800); color: var(--on-dark-900); border: 1px solid var(--green-800); }
.kkm-entry-card-corporate:hover { background: var(--green-900); }
.kkm-entry-card-individual { background: var(--paper-000); border: 1px solid var(--line-300); }
.kkm-entry-card-individual:hover { border-color: var(--green-300); background: var(--paper-400); }

.kkm-entry-tag { font-family: var(--font-mono); font-size: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow-tight); color: var(--green-200); }
.kkm-entry-tag-light { color: oklch(0.5 0.05 155); }

.kkm-entry-title { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h3); margin: 0; letter-spacing: var(--tracking-heading); color: var(--on-dark-900); }
.kkm-entry-title-dark { color: var(--green-700); }

.kkm-entry-desc { margin: 0; font-size: var(--type-body-sm); color: var(--on-dark-600); text-wrap: pretty; }
.kkm-entry-desc-light { color: var(--ink-700); }

.kkm-entry-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
  font-size: var(--type-ui-sm);
  color: var(--on-dark-700);
  border-top: 1px solid oklch(0.4 0.04 155);
  padding-top: var(--space-5);
}
.kkm-entry-list-light { color: oklch(0.38 0.02 150); border-top-color: oklch(0.9 0.015 150); }

.kkm-entry-cta { margin-top: auto; padding-top: var(--space-5); font-size: var(--type-body-sm); font-weight: var(--weight-medium); color: var(--on-dark-900); }
.kkm-entry-cta-dark { color: var(--green-600); }

/* ISSUES お悩み */
.kkm-issues-section { background: var(--paper-200); border-top: 1px solid var(--line-100); border-bottom: 1px solid var(--line-100); }
.kkm-issues-inner { max-width: var(--measure); margin: 0 auto; padding: var(--section-y) var(--gutter); display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 60px; }
.kkm-issues-intro { display: flex; flex-direction: column; gap: 14px; }
.kkm-issues-eyebrow { font-family: var(--font-mono); font-size: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); color: oklch(0.55 0.05 155); }
.kkm-issues-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h2); margin: 0; letter-spacing: var(--tracking-heading); line-height: 1.7; }
.kkm-issues-desc { margin: 0; font-size: var(--type-ui-sm); color: var(--ink-600); }

.kkm-issues-list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line-200); border: 1px solid var(--line-200); }
.kkm-issues-item { background: var(--paper-050); padding: 22px 24px; font-size: var(--type-ui); }

/* RESULTS */
.kkm-results-section { max-width: var(--measure); margin: 0 auto; padding: var(--section-y) var(--gutter); }
.kkm-results-header { display: flex; align-items: baseline; gap: 20px; margin-bottom: 36px; flex-wrap: wrap; }
.kkm-results-eyebrow { font-family: var(--font-mono); font-size: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); color: oklch(0.55 0.05 155); }
.kkm-results-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h2); margin: 0; letter-spacing: var(--tracking-heading); }
.kkm-results-more { margin-left: auto; font-size: var(--type-ui-sm); }

.kkm-results-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); }
.kkm-result-item { border-top: 2px solid var(--green-600); padding-top: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); }
.kkm-result-num { font-family: var(--font-serif); font-size: var(--type-stat); color: var(--green-700); }
.kkm-result-unit { font-size: var(--type-lead); }
.kkm-result-label { font-size: var(--type-ui-sm); color: var(--ink-600); }

/* PROFILE */
.kkm-profile-section { background: var(--paper-200); border-top: 1px solid var(--line-100); }
.kkm-profile-inner { max-width: var(--measure); margin: 0 auto; padding: var(--section-y) var(--gutter); display: grid; grid-template-columns: 0.7fr 1.3fr; gap: var(--col-gap); align-items: start; }
.kkm-profile-photo { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center 22%; display: block; }
.kkm-profile-body { display: flex; flex-direction: column; gap: 18px; }
.kkm-profile-eyebrow { font-family: var(--font-mono); font-size: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); color: oklch(0.55 0.05 155); }
.kkm-profile-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h2); margin: 0; letter-spacing: var(--tracking-heading); }
.kkm-profile-kana { font-size: var(--type-body-sm); color: var(--ink-600); margin-left: var(--space-3); }
.kkm-profile-role { margin: 0; font-size: var(--type-ui-sm); color: var(--ink-700); }
.kkm-profile-text { margin: 0; font-size: var(--type-body); text-wrap: pretty; }
.kkm-profile-quote { margin: 8px 0 0; font-family: var(--font-serif); font-size: var(--type-h6b); color: var(--green-700); letter-spacing: var(--tracking-wordmark); }

/* 診断・個人コーチ */
.kkm-consulting-section { max-width: var(--measure); margin: 0 auto; padding: var(--section-y) var(--gutter) 40px; }
.kkm-consulting-box {
  border: 1px solid var(--line-200);
  background: var(--paper-200);
  padding: 48px;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
}
.kkm-consulting-label { font-size: var(--type-caption-sm); letter-spacing: 0.08em; color: oklch(0.5 0.06 158); }
.kkm-consulting-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h3); margin: 0; letter-spacing: var(--tracking-heading); }
.kkm-consulting-desc { margin: 0; font-size: var(--type-body-sm); color: var(--ink-700); text-wrap: pretty; max-width: 40em; }
.kkm-consulting-link { margin-top: 8px; font-size: var(--type-ui); font-weight: var(--weight-medium); }

/* SEMINAR 講座 */
.kkm-courses-section { max-width: var(--measure); margin: 0 auto; padding: 44px var(--gutter) 88px; }
.kkm-courses-top { display: grid; grid-template-columns: 1fr 1fr; gap: var(--col-gap); align-items: end; margin-bottom: var(--space-12); }
.kkm-courses-intro { display: flex; flex-direction: column; gap: 14px; }
.kkm-courses-eyebrow { font-family: var(--font-mono); font-size: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); color: oklch(0.55 0.05 155); }
.kkm-courses-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h1); margin: 0; letter-spacing: var(--tracking-heading); line-height: var(--leading-heading); }
.kkm-courses-desc { margin: 0; font-size: var(--type-body); color: var(--ink-700); text-wrap: pretty; }

.kkm-courses-quote { border-left: 2px solid var(--green-600); padding: 4px 0 4px 28px; display: flex; flex-direction: column; gap: 10px; }
.kkm-courses-quote-text { margin: 0; font-family: var(--font-serif); font-size: var(--type-h6b); line-height: var(--leading-body); color: var(--green-700); text-wrap: pretty; }
.kkm-courses-quote-sub { margin: 0; font-size: var(--type-caption); color: var(--ink-600); }

.kkm-courses-img { width: 100%; height: 340px; object-fit: cover; object-position: center 30%; display: block; margin-bottom: var(--space-10); }

.kkm-courses-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); }
.kkm-course-card {
  border: 1px solid var(--line-200);
  background: var(--paper-000);
  padding: 34px 30px;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.kkm-course-tag { font-size: var(--type-caption-sm); letter-spacing: 0.08em; color: oklch(0.5 0.06 158); }
.kkm-course-title { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h4b); margin: 0; color: var(--green-700); letter-spacing: var(--tracking-heading); }
.kkm-course-desc { margin: 0; font-size: var(--type-ui); color: var(--ink-700); text-wrap: pretty; }
.kkm-course-link { margin-top: auto; padding-top: var(--space-5); font-size: var(--type-ui); font-weight: var(--weight-medium); }

/* 相談CTA */
.kkm-contact-section { background: var(--green-800); color: var(--on-dark-900); }
.kkm-contact-inner {
  max-width: var(--measure);
  margin: 0 auto;
  padding: var(--section-y) var(--gutter);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  text-align: center;
}
.kkm-contact-heading { font-family: var(--font-serif); font-weight: var(--weight-medium); font-size: var(--type-h1); margin: 0; letter-spacing: 0.05em; color: var(--on-dark-900); }
.kkm-contact-desc { margin: 0; font-size: var(--type-body); color: var(--on-dark-600); max-width: 34em; }
.kkm-contact-btn {
  background: var(--on-dark-900);
  color: var(--green-800);
  padding: 16px 40px;
  border-radius: var(--radius-button);
  font-weight: var(--weight-medium);
  font-size: var(--type-h6);
  margin-top: 8px;
}
.kkm-contact-btn:hover { background: #fff; color: var(--green-800); }

/* 固定メルマガバー */
.kkm-newsletter-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  background: var(--paper-000);
  border-top: 2px solid var(--green-600);
  box-shadow: 0 -6px 24px oklch(0.28 0.045 162 / 0.12);
  animation: kkm-glow var(--duration-banner-cycle) ease-in-out infinite;
}
.kkm-newsletter-inner {
  max-width: var(--measure);
  margin: 0 auto;
  padding: 16px var(--gutter);
  display: flex;
  align-items: center;
  gap: var(--grid-gap-lg);
  flex-wrap: wrap;
}
.kkm-newsletter-badge {
  white-space: nowrap;
  font-family: var(--font-mono);
  font-size: var(--type-eyebrow-sm);
  letter-spacing: var(--tracking-eyebrow-tight);
  color: oklch(0.5 0.06 158);
  border: 1px solid oklch(0.75 0.05 155);
  padding: 5px 10px;
  animation: kkm-drift var(--duration-banner-cycle) ease-in-out infinite;
}
.kkm-newsletter-text { flex: 1; min-width: 300px; display: flex; flex-direction: column; gap: 3px; }
.kkm-newsletter-title { font-family: var(--font-serif); font-size: var(--type-h6c); color: var(--green-700); letter-spacing: 0.03em; }
.kkm-newsletter-sub { font-size: var(--type-caption); color: var(--ink-600); }
.kkm-newsletter-btn {
  background: var(--green-600);
  color: var(--paper-100);
  padding: 13px 30px;
  border-radius: var(--radius-button);
  font-size: var(--type-body-sm);
  font-weight: var(--weight-medium);
  white-space: nowrap;
  animation: kkm-breath var(--duration-banner-cycle) ease-in-out infinite;
}
.kkm-newsletter-btn:hover { background: var(--green-700); color: var(--paper-100); }

@media (max-width: 760px) {
  .kkm-newsletter-inner { padding: 10px 16px !important; gap: 10px !important; }
  .kkm-newsletter-title { font-size: 13.5px !important; }
  .kkm-newsletter-sub { font-size: 11.5px !important; line-height: 1.6 !important; }
  .kkm-newsletter-btn { padding: 10px 16px !important; font-size: 13px !important; }
  .kkm-newsletter-text { min-width: 0 !important; }
}

@keyframes kkm-glow {
  0%, 100% { box-shadow: 0 -6px 24px oklch(0.28 0.045 162 / 0.12); border-top-color: var(--green-600); }
  50% { box-shadow: 0 -10px 40px oklch(0.36 0.06 162 / 0.32); border-top-color: oklch(0.52 0.11 148); }
}
@keyframes kkm-breath {
  0%, 100% { transform: scale(1); background: var(--green-600); }
  50% { transform: scale(1.045); background: var(--green-500); }
}
@keyframes kkm-drift {
  0%, 100% { opacity: 0.85; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(4px); }
}
