/* kyugo888.com 再構成ページ共通スタイル（子テーマ） */
.kg-page {
  --kg-bg: #FBF9F5;
  --kg-bg-warm: #F7EFE6;
  --kg-surface: #FFFFFF;
  --kg-ink: #262B33;
  --kg-ink-soft: #5C6570;
  --kg-line: #E7E1D4;
  --kg-accent: #0E8CA8;
  --kg-accent-deep: #0B6E82;
  --kg-accent-tint: #E3F2F5;
  --kg-line-brand: #3DAA46;
  --kg-line-tint: #E9F6EA;
  --kg-caution: #A8562F;
  --kg-radius: 14px;
  box-sizing: border-box;
  color: var(--kg-ink);
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;
  line-height: 1.9;
  font-size: 16px;
  background: var(--kg-bg);
}
.kg-page *, .kg-page *::before, .kg-page *::after { box-sizing: border-box; }
.kg-page h1, .kg-page h2, .kg-page h3 {
  font-family: "Hiragino Mincho ProN", "YuMincho", "Yu Mincho", "Noto Serif JP", serif;
  font-weight: 600;
  color: var(--kg-ink);
  line-height: 1.55;
  margin: 0;
}
.kg-wrap { max-width: 880px; margin: 0 auto; padding: 0 20px; }
.kg-wrap--wide { max-width: 1040px; }
.kg-section { padding: 56px 0; }
.kg-section + .kg-section { border-top: 1px solid var(--kg-line); }
.kg-section--warm { background: var(--kg-bg-warm); }

.kg-eyebrow {
  display: inline-block; font-size: 12.5px; letter-spacing: 0.14em;
  color: var(--kg-accent-deep); background: var(--kg-accent-tint);
  padding: 5px 14px; border-radius: 999px; margin-bottom: 18px;
}
.kg-hero { padding: 60px 0 48px; text-align: center; }
.kg-hero h1 { font-size: clamp(24px, 4.6vw, 34px); margin: 0 auto 20px; max-width: 22ch; }
.kg-hero p { font-size: 15.5px; color: var(--kg-ink-soft); max-width: 48ch; margin: 0 auto 26px; }

.kg-h2 { font-size: clamp(20px, 3.4vw, 25px); margin-bottom: 8px; }
.kg-h2--center { text-align: center; }
.kg-h2-sub { color: var(--kg-ink-soft); font-size: 14.5px; margin: 0 0 30px; }
.kg-h2-sub--center { text-align: center; }

.kg-btn {
  display: inline-block; font-size: 15px; font-weight: 600; padding: 13px 28px;
  border-radius: 999px; background: var(--kg-accent); color: #fff !important;
  text-decoration: none !important; border: 1px solid var(--kg-accent);
  transition: background .15s ease, transform .15s ease;
}
.kg-btn:hover { background: var(--kg-accent-deep); transform: translateY(-1px); }
.kg-btn--lg { padding: 15px 36px; font-size: 16px; }
.kg-btn--line { background: var(--kg-line-brand); border-color: var(--kg-line-brand); }
.kg-btn--line:hover { background: #2E8C38; }
.kg-btn--ghost { background: transparent; color: var(--kg-accent-deep) !important; border-color: var(--kg-accent); }
.kg-btn--ghost:hover { background: var(--kg-accent-tint); }
.kg-btn--form { background: var(--kg-ink); border-color: var(--kg-ink); }
.kg-btn--form:hover { background: #10141a; }

.kg-cta-row { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.kg-cta-group { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.kg-cta-role { font-size: 12px; color: var(--kg-ink-soft); }

.kg-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.kg-card-grid--3 { grid-template-columns: repeat(3, 1fr); }
.kg-card-grid--2 { grid-template-columns: repeat(2, 1fr); }
.kg-theme-card {
  background: var(--kg-surface); border: 1px solid var(--kg-line); border-top: 3px solid var(--kg-accent);
  border-radius: 10px; padding: 18px 14px; text-align: center; font-size: 14px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; min-height: 76px;
}
.kg-proj-card {
  background: var(--kg-surface); border: 1px solid var(--kg-line); border-radius: 12px; padding: 20px;
  display: flex; flex-direction: column; gap: 8px; text-align: left;
}
.kg-proj-tag {
  display: inline-block; font-size: 10.5px; padding: 3px 9px; border-radius: 5px;
  background: var(--kg-accent-tint); color: var(--kg-accent-deep); width: fit-content;
}
.kg-proj-name { font-size: 16px; font-weight: 600; font-family: "Hiragino Mincho ProN", "YuMincho", serif; }
.kg-proj-desc { font-size: 13.5px; color: var(--kg-ink-soft); }
.kg-proj-link { font-size: 13px; color: var(--kg-accent-deep); text-decoration: none; border-bottom: 1px solid var(--kg-accent); align-self: flex-start; margin-top: 4px; }

.kg-list-check { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; max-width: 620px; margin-left: auto; margin-right: auto; }
.kg-list-check li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; }
.kg-list-check li::before {
  content: "✓"; flex-shrink: 0; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; background: var(--kg-accent-tint); color: var(--kg-accent-deep); font-size: 13px; font-weight: 700;
}
.kg-list-dot { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; max-width: 640px; margin-left: auto; margin-right: auto; }
.kg-list-dot li { font-size: 15px; padding-left: 1.6em; position: relative; }
.kg-list-dot li::before { content: "・"; position: absolute; left: 0; color: var(--kg-accent-deep); }

.kg-tag-row { display: flex; flex-wrap: wrap; gap: 8px; }
.kg-tag { font-size: 12.5px; padding: 5px 11px; border-radius: 7px; background: var(--kg-accent-tint); color: var(--kg-accent-deep); }

.kg-note {
  max-width: 640px; margin: 0 auto; font-size: 13.5px; color: var(--kg-ink-soft);
  background: var(--kg-surface); border: 1px dashed var(--kg-line); border-radius: 10px; padding: 16px 18px;
}
.kg-caution-box {
  border: 1px solid var(--kg-caution); border-radius: 10px; padding: 16px 18px; background: var(--kg-surface);
  display: flex; flex-direction: column; gap: 10px;
}
.kg-caution-label { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--kg-caution); font-weight: 600; }
.kg-caution-box p { font-size: 14px; color: var(--kg-ink); margin: 0; }

.kg-profile-card {
  max-width: 640px; margin: 0 auto; background: var(--kg-surface); border: 1px solid var(--kg-line);
  border-radius: var(--kg-radius); padding: 32px; text-align: center;
}
.kg-profile-name { font-size: 20px; font-family: "Hiragino Mincho ProN", "YuMincho", serif; margin-bottom: 6px; }
.kg-profile-role { font-size: 14px; color: var(--kg-accent-deep); margin-bottom: 14px; }
.kg-profile-detail { font-size: 13.5px; color: var(--kg-ink-soft); line-height: 1.9; margin-bottom: 20px; }
.kg-profile-link { font-size: 14px; color: var(--kg-accent-deep); text-decoration: none; border-bottom: 1px solid var(--kg-accent); }

.kg-table-wrap { overflow-x: auto; border: 1px solid var(--kg-line); border-radius: 10px; background: var(--kg-surface); }
.kg-table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 14px; }
.kg-table th { text-align: left; font-weight: 600; font-size: 12.5px; color: var(--kg-ink-soft); background: var(--kg-bg-warm); padding: 12px 16px; border-bottom: 1px solid var(--kg-line); white-space: nowrap; }
.kg-table td { padding: 12px 16px; border-bottom: 1px solid var(--kg-line); vertical-align: top; font-size: 14px; }
.kg-table tr:last-child td { border-bottom: none; }
.kg-table td.kg-td-note { color: var(--kg-ink-soft); font-size: 13px; }

.kg-final-cta { text-align: center; padding: 60px 0 68px; }
.kg-final-cta h2 { font-size: clamp(20px, 3.6vw, 27px); margin-bottom: 26px; }

.kg-placeholder { font-size: 13.5px; color: var(--kg-ink-soft); font-style: italic; }

.kg-todo {
  font-size: 11.5px; color: var(--kg-caution); background: #FBEFE7; border: 1px dashed var(--kg-caution);
  border-radius: 8px; padding: 8px 12px; display: inline-block; margin-top: 10px;
}

.kg-pullquote {
  font-family: "Hiragino Mincho ProN", "YuMincho", "Yu Mincho", "Noto Serif JP", serif;
  font-size: 20px; line-height: 1.9; text-align: center; color: var(--kg-accent-deep);
  max-width: 34ch; margin: 8px auto 0; padding: 26px 0;
  border-top: 1px solid var(--kg-line); border-bottom: 1px solid var(--kg-line);
}

.kg-journey { display: flex; align-items: stretch; justify-content: center; gap: 10px; max-width: 960px; margin: 0 auto; flex-wrap: wrap; }
.kg-journey-step {
  flex: 1 1 150px; background: var(--kg-surface); border: 1px solid var(--kg-line); border-radius: 10px;
  padding: 18px 14px; text-align: center; display: flex; flex-direction: column; gap: 6px; justify-content: center;
}
.kg-journey-step-label { font-size: 11px; color: var(--kg-accent-deep); font-weight: 600; letter-spacing: .04em; }
.kg-journey-step-text { font-size: 14px; font-weight: 600; line-height: 1.5; }
.kg-journey-arrow { display: flex; align-items: center; justify-content: center; color: var(--kg-ink-soft); font-size: 18px; flex: 0 0 auto; }

.kg-gallery-slot {
  aspect-ratio: 4 / 3; background: var(--kg-surface); border: 1px dashed var(--kg-line); border-radius: 10px;
  display: flex; align-items: center; justify-content: center; color: var(--kg-ink-soft); font-size: 13px;
}

.kg-portrait-hero {
  width: 240px; height: 320px; object-fit: cover; border-radius: 20px;
  border: 1px solid var(--kg-line); box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  margin: 0 auto 24px; display: block;
}

.kg-profile-photo {
  width: 120px; height: 120px; object-fit: cover; border-radius: 50%;
  margin: 0 auto 16px; display: block; border: 1px solid var(--kg-line);
}

.kg-hero--split { display: flex; align-items: center; gap: 40px; text-align: left; }
.kg-hero--split .kg-hero-text { flex: 1 1 55%; }
.kg-hero--split .kg-hero-text h1 { margin: 0 0 20px; text-align: left; max-width: none; }
.kg-hero--split .kg-hero-text p { margin: 0 0 26px; text-align: left; max-width: 50ch; }
.kg-hero--split .kg-hero-text .kg-cta-row { justify-content: flex-start; }
.kg-hero--split .kg-hero-photo { flex: 0 0 380px; }
.kg-hero--split .kg-hero-photo img { width: 100%; height: auto; border-radius: 20px; display: block; box-shadow: 0 8px 24px rgba(0,0,0,0.08); }

@media (max-width: 900px) {
  .kg-hero--split { flex-direction: column; text-align: center; }
  .kg-hero--split .kg-hero-text { text-align: center; }
  .kg-hero--split .kg-hero-text h1, .kg-hero--split .kg-hero-text p { text-align: center; margin-left: auto; margin-right: auto; }
  .kg-hero--split .kg-hero-text .kg-cta-row { justify-content: center; }
  .kg-hero--split .kg-hero-photo { width: 100%; max-width: 420px; margin: 32px auto 0; }
}

@media (max-width: 640px) {
  .kg-section { padding: 42px 0; }
  .kg-hero { padding: 40px 0 34px; }
  .kg-card-grid, .kg-card-grid--3 { grid-template-columns: 1fr 1fr; }
  .kg-card-grid--2 { grid-template-columns: 1fr; }
  .kg-journey { flex-direction: column; }
  .kg-journey-arrow { transform: rotate(90deg); }
  .kg-portrait-hero { width: 180px; height: 240px; }
  .kg-profile-photo { width: 96px; height: 96px; }
}
