/* ===== RESET & BASE =====
   Shared across LP pages: reset, base typography, links, header. */
* { box-sizing: border-box; }
body { margin: 0; background: #FFF9F3; font-family: 'Noto Sans JP', sans-serif; }
a { color: #F25C1F; }
a:hover { color: #B23F0D; }
::selection { background: #FFE3D1; }

.lp-page { width: 100%; background: #FFF9F3; color: #1F1B18; overflow-x: hidden; }

/* ===== HEADER ===== */
.lp-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,249,243,0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid #F0E4D8;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 32px;
}
.lp-header__cta {
  background: #F25C1F; color: #fff; font-weight: 900; font-size: 14px;
  padding: 10px 22px; border-radius: 999px; text-decoration: none; white-space: nowrap;
}

/* ===== WORDMARK (site logo — matches top-page.html header exactly) ===== */
.wordmark { display: flex; align-items: center; gap: 12px; }
.wordmark .mk { width: 32px; height: 32px; border-radius: 4px; background: #4EB9C3; flex: none; }
.wordmark .tx {
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3",
    "Yu Gothic UI", "Meiryo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 900; font-size: 22px; letter-spacing: 0.04em; color: #333333; line-height: 1;
}
.wordmark .tx small {
  display: block;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3",
    "Yu Gothic UI", "Meiryo", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight: 500; font-size: 11px; letter-spacing: 0.14em; color: #888888; margin-top: 5px;
}

/* ===== SITE FOOTER (legal links, shared across pages) ===== */
.site-footer {
  padding: 22px 32px; display: flex; justify-content: space-between; align-items: center;
  gap: 12px 20px; flex-wrap: wrap; font-size: 12px; color: #857D74; border-top: 1px solid #F0E4D8;
}
.site-footer__meta { display: flex; flex-direction: column; gap: 2px; }
.site-footer nav { display: flex; gap: 20px; flex-wrap: wrap; }
.site-footer nav a { color: #857D74; text-decoration: underline; text-underline-offset: 3px; }
.site-footer nav a:hover { color: #F25C1F; }

/* ===== SHARED CAMPAIGN-PAGE ATOMS (fan-ka-shukyaku LP + free-session page) ===== */
.eyebrow { color: #F25C1F; font-weight: 900; font-size: 15px; letter-spacing: 0.08em; }
.eyebrow--dark { color: #B23F0D; }
.section-title { font-size: 30px; font-weight: 900; color: #1F1B18; margin-top: 8px; }
.label-strong { font-size: 13.5px; font-weight: 900; color: #1F1B18; }
.required-mark { color: #F25C1F; }
.link-strong { font-weight: 900; }

.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-input {
  border: 2px solid #F0E4D8; border-radius: 10px; padding: 12px 14px; font-size: 15px;
  font-family: 'Noto Sans JP', sans-serif; outline: none;
}
.form-textarea { min-height: 80px; resize: vertical; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* ===== INSTRUCTOR (fan-ka-shukyaku LP + free-session page) ===== */
.instructor { padding: 64px 24px; display: flex; justify-content: center; }
.instructor__inner { max-width: 900px; width: 100%; display: flex; gap: 36px; align-items: center; flex-wrap: wrap; justify-content: center; }
.instructor__photo { width: 220px; height: 220px; border-radius: 50%; overflow: hidden; border: 8px solid #F25C1F; flex-shrink: 0; }
.instructor__photo img { width: 100%; height: 100%; object-fit: cover; }
.instructor__body { flex: 1; min-width: 280px; display: flex; flex-direction: column; gap: 10px; }
.instructor__badge-row { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.instructor__badge { background: #F25C1F; color: #fff; font-size: 13px; font-weight: 900; padding: 4px 12px; border-radius: 999px; }
.instructor__name { font-size: 26px; font-weight: 900; color: #1F1B18; }
.instructor__role { font-size: 14px; font-weight: 700; color: #F25C1F; }
.instructor__bio { font-size: 15px; color: #44403B; font-weight: 500; line-height: 1.9; }
