/* =========================================================
   STC Institutional Masterclass
   Pure Black × Gold × Off-White — ミニマル高級
   ========================================================= */

:root {
  --black: #0a0a0a;
  --black-2: #111111;
  --black-3: #171717;
  --black-4: #1f1f1f;
  --line: #2a2926;
  --line-strong: #454037;
  --gold: #d4b578;
  --gold-2: #e3c68f;
  --gold-deep: #9a7a45;
  --gold-glow: rgba(212, 181, 120, 0.18);
  --off: #faf7f0;
  --off-2: #ede7d8;
  --muted: #a8a39a;
  --muted-2: #7a756c;

  --f-serif: "Cormorant Garamond", "Noto Serif JP", ui-serif, Georgia, serif;
  --f-sans: "Inter", "Noto Sans JP", -apple-system, "Helvetica Neue", sans-serif;
  --f-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --page-x: clamp(24px, 6vw, 96px);
  --maxw: 1440px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--black);
  color: var(--off);
  font-family: var(--f-sans);
  font-size: 17px;
  line-height: 1.7;
  font-weight: 400;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; border: 0; background: transparent; cursor: pointer; color: inherit; }

::selection { background: var(--gold); color: var(--black); }

/* ---------- Typography helpers ---------- */
.eyebrow {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
}
.eyebrow-dot::before {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--gold);
  border-radius: 50%;
  margin-right: 12px;
  vertical-align: middle;
  translate: 0 -2px;
}
.serif { font-family: var(--f-serif); font-weight: 400; }
.italic { font-style: italic; }

.h-display {
  font-family: var(--f-serif);
  font-weight: 300;
  font-size: clamp(48px, 8.5vw, 132px);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--off);
}
.h-display .em { font-style: italic; color: var(--gold-2); font-weight: 300; }

.h-jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(20px, 2.1vw, 30px);
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--off-2);
}

.h-2 {
  font-family: var(--f-serif);
  font-weight: 300;
  font-size: clamp(36px, 5.5vw, 76px);
  line-height: 1.05;
  letter-spacing: -0.015em;
}
.h-2 .em { font-style: italic; color: var(--gold-2); }

.h-3 {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.2;
  letter-spacing: -0.005em;
}

.body-lg {
  font-size: 19px;
  line-height: 1.75;
  color: var(--off-2);
  font-weight: 400;
}
.body { color: var(--muted); font-weight: 400; }
.body-jp {
  font-family: "Noto Sans JP", sans-serif;
  color: var(--off-2);
  font-weight: 400;
  font-size: 17px;
  letter-spacing: 0.02em;
  line-height: 1.95;
}

/* ---------- Layout ---------- */
.container {
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--page-x);
  padding-right: var(--page-x);
}
section { position: relative; }

/* Fine hairlines */
.hr-gold {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-deep), transparent);
  opacity: 0.6;
}
.hr-thin { height: 1px; background: var(--line); }

/* ---------- Navigation ---------- */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 20px var(--page-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background 0.4s var(--ease), backdrop-filter 0.4s var(--ease), border-color 0.4s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: rgba(10, 10, 10, 0.72);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  border-bottom-color: var(--line);
}
.brand {
  display: flex; align-items: baseline; gap: 14px;
}
.brand-mark {
  font-family: var(--f-serif);
  font-weight: 400;
  font-style: italic;
  font-size: 28px;
  letter-spacing: 0.06em;
  color: var(--off);
}
.brand-mark .amp { color: var(--gold); font-style: italic; margin: 0 2px; }
.brand-tag {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--muted);
  border-left: 1px solid var(--line-strong);
  padding-left: 14px;
}
.nav-links {
  display: flex; gap: 36px;
  font-family: "Noto Sans JP", var(--f-sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--off);
}
.nav-links a { position: relative; padding: 10px 0; opacity: 0.9; transition: opacity 0.3s; }
.nav-links a:hover { opacity: 1; }
.nav-links a.nav-feature-link { color: var(--gold-2); }
.nav-links a:hover::after {
  content: ""; position: absolute; bottom: -2px; left: 0; right: 0;
  height: 1px; background: var(--gold);
}

.btn {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: "Noto Sans JP", var(--f-sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.08em;
  padding: 18px 32px;
  border: 1px solid var(--gold);
  color: var(--gold);
  background: transparent;
  transition: all 0.35s var(--ease);
  position: relative;
  overflow: hidden;
  min-height: 52px;
  line-height: 1.2;
}
.btn:hover { background: var(--gold); color: var(--black); }
.btn:focus-visible { outline: 2px solid var(--gold-2); outline-offset: 3px; }
.btn .arrow { transition: transform 0.35s var(--ease); font-size: 18px; line-height: 1; }
.btn:hover .arrow { transform: translateX(4px); }
.btn-primary {
  background: var(--gold);
  color: var(--black);
  font-weight: 600;
}
.btn-primary:hover { background: var(--gold-2); color: var(--black); }
.btn-lg { padding: 24px 44px; font-size: 16px; min-height: 60px; }
.btn-ghost { border-color: var(--line-strong); color: var(--off-2); }
.btn-ghost:hover { border-color: var(--off); background: transparent; color: var(--off); }

@media (max-width: 900px) {
  .nav-links { display: none; }
  .brand-tag { display: none; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 100vh;
  padding-top: 120px;
  padding-bottom: 80px;
  overflow: hidden;
  isolation: isolate;
}
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hero-bg-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.32;
  filter: contrast(1.1) saturate(0.85);
}
.hero-bg::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 40%, transparent, rgba(10,10,10,0.6) 70%, var(--black) 100%),
    linear-gradient(180deg, rgba(10,10,10,0.4) 0%, transparent 30%, transparent 70%, var(--black) 100%);
  z-index: 1;
}
.hero-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.55;
  mix-blend-mode: screen;
}

.hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(201,169,110,0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(201,169,110,0.05) 1px, transparent 1px);
  background-size: 80px 80px;
  z-index: -1;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 30%, transparent 80%);
}

.hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr;
  gap: 60px;
  min-height: calc(100vh - 200px);
  align-content: space-between;
}
.hero-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  flex-wrap: wrap;
}
.hero-eyebrow-block {
  max-width: 300px;
}
.hero-meta {
  text-align: right;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--muted);
  line-height: 1.9;
}
.hero-meta .val { color: var(--off-2); }

.hero-main {
  display: grid;
  grid-template-columns: 1fr;
  gap: 44px;
}
.hero-headline { max-width: 1100px; }
.hero-headline .h-display { margin-bottom: 32px; }
.hero-jp { max-width: 720px; }

.hero-cta {
  display: flex;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
}
.hero-cta .btn-lg { min-width: 240px; justify-content: center; }
.hero-cta .cohort {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}
.hero-cta .cohort b { color: var(--gold); font-weight: 500; }

.hero-scroll {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.hero-scroll .line {
  width: 1px; height: 40px;
  background: linear-gradient(180deg, var(--gold), transparent);
  animation: scrollLine 2.4s ease-in-out infinite;
}
@keyframes scrollLine {
  0%, 100% { transform: scaleY(0.3); transform-origin: top; }
  50% { transform: scaleY(1); }
}

/* ---------- Marquee / Ticker ---------- */
.ticker {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 22px 0;
  overflow: hidden;
  background: var(--black-2);
}
.ticker-track {
  display: flex;
  gap: 80px;
  white-space: nowrap;
  animation: ticker 60s linear infinite;
  width: max-content;
}
.ticker-item {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}
.ticker-item .sym { color: var(--gold); }
.ticker-item .up { color: #7fb08a; }
.ticker-item .down { color: #b07f7f; }
@keyframes ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---------- Section common ---------- */
.section {
  padding: 140px 0;
  position: relative;
}
.section-narrow { padding: 100px 0; }
.section-hd {
  display: grid;
  grid-template-columns: minmax(200px, 300px) 1fr;
  gap: 60px;
  margin-bottom: 80px;
  align-items: end;
}
.section-hd-num {
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.28em;
  color: var(--gold);
}
.section-hd-num .n { color: var(--muted); }
.section-hd .h-2 { max-width: 900px; }
@media (max-width: 900px) {
  .section-hd { grid-template-columns: 1fr; gap: 24px; }
  .section { padding: 100px 0; }
}

/* ---------- Stats ---------- */
.stats {
  padding: 100px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.stat {
  padding: 8px 40px;
  border-left: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 16px;
}
.stat:first-child { border-left: 0; padding-left: 0; }
.stat-num {
  font-family: var(--f-serif);
  font-weight: 300;
  font-size: clamp(48px, 5vw, 72px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--off);
  display: flex; align-items: baseline; gap: 4px;
}
.stat-num .unit {
  font-size: 0.4em;
  color: var(--gold);
  font-family: var(--f-sans);
  font-weight: 400;
  letter-spacing: 0.08em;
}
.stat-label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}
.stat-desc {
  font-size: 15px;
  color: var(--off-2);
  line-height: 1.65;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}
@media (max-width: 900px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat { padding: 32px 24px; border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
  .stat:nth-child(-n+2) { border-top: 0; }
  .stat:nth-child(2n+1) { border-left: 0; padding-left: 0; }
}

/* ---------- Framework (USP) ---------- */
.framework {
  background: linear-gradient(180deg, var(--black) 0%, var(--black-2) 50%, var(--black) 100%);
  position: relative;
  overflow: hidden;
}
.framework::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 40% at 20% 30%, var(--gold-glow), transparent 60%),
    radial-gradient(ellipse 40% 60% at 80% 70%, var(--gold-glow), transparent 60%);
  pointer-events: none;
}
.framework-inner { position: relative; z-index: 1; }

.framework-mark {
  text-align: center;
  margin: 60px 0 80px;
}
.framework-name {
  font-family: var(--f-serif);
  font-weight: 300;
  font-size: clamp(32px, 5vw, 64px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--off);
}
.framework-name .op { color: var(--gold); font-weight: 300; margin: 0 0.2em; font-style: italic; }
.framework-tm {
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--gold);
  margin-top: 20px;
  text-transform: uppercase;
}

.pillar-diagram {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-top: 60px;
}
.pillar {
  background: var(--black-2);
  padding: 48px 40px;
  transition: background 0.4s var(--ease);
  position: relative;
  overflow: hidden;
}
.pillar:hover { background: var(--black-3); }
.pillar::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transform: scaleX(0);
  transition: transform 0.5s var(--ease);
}
.pillar:hover::before { transform: scaleX(1); }
.pillar-num {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  color: var(--gold);
  margin-bottom: 24px;
}
.pillar-title {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 28px;
  letter-spacing: -0.005em;
  color: var(--off);
  margin-bottom: 8px;
}
.pillar-title-jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 15px;
  color: var(--gold-2);
  margin-bottom: 32px;
  letter-spacing: 0.05em;
}
.pillar-desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.95;
  color: var(--off-2);
  font-weight: 400;
}
.pillar-svg {
  margin-bottom: 32px;
  color: var(--gold);
  height: 60px;
  display: flex; align-items: center;
}
@media (max-width: 900px) {
  .pillar-diagram { grid-template-columns: 1fr; }
}

/* ---------- Three Pillars (services) ---------- */
.pillars-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.card-p {
  background: var(--black-2);
  border: 1px solid var(--line);
  padding: 48px 40px 40px;
  position: relative;
  overflow: hidden;
  transition: border-color 0.4s var(--ease), transform 0.4s var(--ease);
  min-height: 380px;
  display: flex; flex-direction: column;
}
.card-p:hover { border-color: var(--gold-deep); transform: translateY(-4px); }
.card-p-icon {
  width: 48px; height: 48px;
  color: var(--gold);
  margin-bottom: 32px;
}
.card-p-eyebrow {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.28em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 16px;
}
.card-p h3 {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
  color: var(--off);
  margin-bottom: 8px;
}
.card-p .jp {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  color: var(--gold-2);
  margin-bottom: 24px;
  letter-spacing: 0.05em;
}
.card-p p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.95;
  color: var(--off-2);
  font-weight: 400;
  margin-bottom: auto;
}
.card-p .card-cta {
  margin-top: 32px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  display: inline-flex; align-items: center; gap: 10px;
}
.card-p .card-cta .arrow { transition: transform 0.35s var(--ease); }
.card-p:hover .card-cta .arrow { transform: translateX(4px); }
@media (max-width: 900px) {
  .pillars-3 { grid-template-columns: 1fr; }
}

/* ---------- Curriculum (staircase) ---------- */
.curriculum {
  background: var(--black);
  position: relative;
}
.curriculum-tiers {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
.tier {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 60px;
  position: relative;
}
.tier-label {
  position: sticky;
  top: 100px;
  align-self: start;
}
.tier-label .lvl {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.32em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 12px;
  display: flex; align-items: center; gap: 12px;
}
.tier-label .lvl::before {
  content: ""; width: 20px; height: 1px; background: var(--gold);
}
.tier-label .name {
  font-family: var(--f-serif);
  font-weight: 300;
  font-size: 40px;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--off);
  margin-bottom: 8px;
  font-style: italic;
}
.tier-label .name-jp {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  color: var(--muted);
  letter-spacing: 0.06em;
}
.tier-label .cnt {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--muted-2);
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.modules {
  display: flex;
  flex-direction: column;
}
.module {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 32px;
  padding: 36px 0;
  border-top: 1px solid var(--line);
  align-items: center;
  transition: padding-left 0.4s var(--ease);
  cursor: pointer;
  position: relative;
}
.module:last-child { border-bottom: 1px solid var(--line); }
.module::before {
  content: "";
  position: absolute;
  left: -20px; top: 0; bottom: 0;
  width: 2px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform 0.4s var(--ease);
}
.module:hover::before { transform: scaleY(1); }
.module:hover { padding-left: 16px; }
.module-num {
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--muted);
}
.module-body h4 {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.25;
  color: var(--off);
  margin-bottom: 8px;
  transition: color 0.3s var(--ease);
}
.module:hover h4 { color: var(--gold-2); }
.module-body .sub {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  color: var(--off-2);
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.7;
}
.module-meta {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--muted-2);
  text-align: right;
  text-transform: uppercase;
}
.module-meta .len { display: block; color: var(--gold); margin-bottom: 2px; }

/* Tier accents */
.tier--elite .tier-label .name,
.tier--elite .tier-label .lvl { color: var(--gold); }
.tier--elite .tier-label .lvl::before { background: var(--gold-2); }

@media (max-width: 900px) {
  .tier { grid-template-columns: 1fr; gap: 24px; }
  .tier-label { position: static; }
  .module { grid-template-columns: 40px 1fr; }
  .module-meta { grid-column: 2; text-align: left; margin-top: 8px; }
}

/* ---------- Instructor ---------- */
.instructor {
  background: var(--black-2);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.instructor-grid {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: 80px;
  align-items: center;
}
.instructor-photo {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--black);
}
.instructor-photo img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(0.15) contrast(1.05);
}
.instructor-photo::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, transparent 25%, rgba(10,10,10,0.55) 60%, rgba(10,10,10,0.95) 100%),
    linear-gradient(90deg, rgba(10,10,10,0.15) 0%, transparent 30%, transparent 70%, rgba(10,10,10,0.15) 100%);
}
.instructor-photo .badge {
  position: absolute;
  top: 24px; left: 24px;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  padding: 8px 14px;
  border: 1px solid var(--gold-deep);
  background: rgba(10,10,10,0.6);
  backdrop-filter: blur(6px);
  z-index: 2;
}
.instructor-photo .caption {
  position: absolute;
  bottom: 28px; left: 28px; right: 28px;
  font-family: var(--f-serif);
  font-style: italic;
  font-size: 20px;
  color: var(--off);
  z-index: 2;
  line-height: 1.35;
  text-shadow: 0 2px 20px rgba(0,0,0,0.9);
}
.instructor-photo .caption::before {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 14px;
}

/* Record strip (trader record chips) */
.record-strip {
  padding: 32px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--black);
  overflow: hidden;
}
.record-strip-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 4vw, 56px);
  flex-wrap: wrap;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}
.record-strip-inner .item {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
}
.record-strip-inner .item::before {
  content: "";
  width: 6px; height: 6px;
  background: var(--gold);
  border-radius: 50%;
  translate: 0 -1px;
  flex-shrink: 0;
  align-self: center;
}
.record-strip-inner .item .val {
  color: var(--gold-2);
  font-family: var(--f-serif);
  font-size: 16px;
  font-style: italic;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 400;
}

.instructor-content .eyebrow { margin-bottom: 24px; }
.instructor-content h2 { margin-bottom: 12px; }
.instructor-content .name-jp {
  font-family: "Noto Serif JP", serif;
  font-size: 17px;
  color: var(--gold-2);
  letter-spacing: 0.08em;
  margin-bottom: 40px;
}
.instructor-content .quote {
  font-family: var(--f-serif);
  font-style: italic;
  font-weight: 300;
  font-size: 24px;
  line-height: 1.5;
  color: var(--off-2);
  margin: 32px 0;
  padding-left: 24px;
  border-left: 2px solid var(--gold);
}
.instructor-credentials {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
}
.cred-item {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.85;
  color: var(--off-2);
}
.cred-item .lbl {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 8px;
}
.cred-item .val { color: var(--off-2); font-weight: 400; }
@media (max-width: 900px) {
  .instructor-grid { grid-template-columns: 1fr; gap: 48px; }
}

/* ---------- Testimonials ---------- */
.testi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.testi {
  background: var(--black-2);
  border: 1px solid var(--line);
  padding: 40px;
  display: flex; flex-direction: column;
  transition: border-color 0.4s var(--ease);
}
.testi:hover { border-color: var(--gold-deep); }
.testi-quote {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.95;
  color: var(--off);
  margin-bottom: 32px;
  letter-spacing: 0.02em;
  min-height: 200px;
}
.testi-quote::before {
  content: "“";
  font-family: var(--f-serif);
  font-size: 56px;
  color: var(--gold);
  line-height: 0;
  vertical-align: -20px;
  margin-right: 4px;
}
.testi-pnl {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 20px;
  background: var(--black);
  border: 1px solid var(--line);
  margin-bottom: 24px;
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
}
.testi-pnl .lbl { color: var(--muted); text-transform: uppercase; letter-spacing: 0.2em; }
.testi-pnl .val { color: #7fb08a; font-size: 18px; margin-left: auto; }
.testi-person {
  display: flex; align-items: center; gap: 16px;
  margin-top: auto;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.testi-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--black);
  flex-shrink: 0;
}
.testi-avatar img { width: 100%; height: 100%; object-fit: cover; }
.testi-person .name {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 16px;
  color: var(--off);
}
.testi-person .role {
  font-size: 12px;
  color: var(--muted);
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.04em;
}
@media (max-width: 900px) {
  .testi-grid { grid-template-columns: 1fr; }
}

/* ---------- Pricing ---------- */
.pricing {
  background: var(--black-2);
  border-top: 1px solid var(--line);
}
.price-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
@media (max-width: 1200px) {
  .price-grid { grid-template-columns: repeat(2, 1fr); }
}
.price {
  background: var(--black);
  padding: 48px 32px;
  display: flex; flex-direction: column;
  position: relative;
  transition: background 0.4s var(--ease);
}
.price:hover { background: var(--black-3); }
.price--featured {
  background: var(--black-3);
  position: relative;
}
.price--featured::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid var(--gold);
  pointer-events: none;
  z-index: 1;
}
.price-tag {
  position: absolute;
  top: -1px; right: 24px;
  padding: 8px 16px;
  background: var(--gold);
  color: var(--black);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  z-index: 2;
}
.price-tier {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 16px;
}
.price-name {
  font-family: var(--f-serif);
  font-weight: 300;
  font-size: 42px;
  line-height: 1;
  color: var(--off);
  margin-bottom: 8px;
  font-style: italic;
}
.price-jp {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  color: var(--gold-2);
  margin-bottom: 40px;
  letter-spacing: 0.06em;
}
.price-amt {
  font-family: var(--f-serif);
  font-weight: 300;
  font-size: 56px;
  line-height: 1;
  color: var(--off);
  margin-bottom: 4px;
  display: flex; align-items: baseline; gap: 4px;
}
.price-amt .cur {
  font-size: 20px;
  color: var(--muted);
  font-family: var(--f-sans);
  font-weight: 400;
}
.price-amt.price-amt--range {
  font-size: 42px;
  flex-wrap: wrap;
  row-gap: 4px;
  letter-spacing: 0.01em;
}
.price-amt.price-amt--range .cur {
  font-size: 17px;
  margin-right: 1px;
}
.price-amt.price-amt--range .range-sep {
  font-family: var(--f-mono);
  font-size: 20px;
  color: var(--gold);
  margin: 0 10px;
  font-weight: 400;
  align-self: center;
  letter-spacing: 0.1em;
}
@media (max-width: 720px) {
  .price-amt.price-amt--range {
    font-size: 32px;
  }
  .price-amt.price-amt--range .range-sep {
    font-size: 16px;
    margin: 0 6px;
  }
}
.price-per {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 40px;
}
.price-list {
  list-style: none;
  margin-bottom: 40px;
  flex: 1;
}
.price-list li {
  padding: 16px 0;
  border-top: 1px solid var(--line);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  color: var(--off);
  font-weight: 400;
  display: flex; align-items: flex-start; gap: 14px;
  letter-spacing: 0.02em;
  line-height: 1.6;
}
.price-list li::before {
  content: "";
  width: 8px; height: 1px;
  background: var(--gold);
  margin-top: 11px;
  flex-shrink: 0;
}
.price-list li.dim { color: var(--muted-2); }
.price-list li.dim::before { background: var(--muted-2); }
.price .btn { justify-content: center; }
@media (max-width: 900px) {
  .price-grid { grid-template-columns: 1fr; }
}

/* ---------- FAQ ---------- */
.faq {
  border-top: 1px solid var(--line);
}
.faq-list {
  border-top: 1px solid var(--line);
}
.faq-item {
  border-bottom: 1px solid var(--line);
}
.faq-q {
  width: 100%;
  padding: 32px 0;
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 40px;
  text-align: left;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--off);
  cursor: pointer;
  transition: color 0.3s var(--ease);
  letter-spacing: 0.02em;
  line-height: 1.5;
  min-height: 60px;
}
.faq-q:hover { color: var(--gold-2); }
.faq-q .plus {
  flex-shrink: 0;
  width: 24px; height: 24px;
  position: relative;
  color: var(--gold);
  transition: transform 0.4s var(--ease);
}
.faq-q .plus::before,
.faq-q .plus::after {
  content: "";
  position: absolute;
  background: currentColor;
  transition: transform 0.4s var(--ease);
}
.faq-q .plus::before { top: 50%; left: 0; right: 0; height: 1px; }
.faq-q .plus::after { left: 50%; top: 0; bottom: 0; width: 1px; }
.faq-item.open .faq-q .plus::after { transform: scaleY(0); }
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease);
}
.faq-a-inner {
  padding: 0 0 32px 0;
  padding-right: 64px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 2.0;
  color: var(--off-2);
  font-weight: 400;
  max-width: 820px;
}

/* ---------- Final CTA ---------- */
.final-cta {
  padding: 180px 0;
  background: var(--black);
  border-top: 1px solid var(--line);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.final-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 50% 50%, var(--gold-glow), transparent 70%);
  pointer-events: none;
}
.final-cta-inner { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; }
.final-cta .eyebrow { margin-bottom: 32px; display: block; }
.final-cta h2 { margin-bottom: 24px; }
.final-cta .h-jp { margin-bottom: 56px; }
.final-cta .cohort-info {
  margin-top: 40px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--muted);
  text-transform: uppercase;
}
.final-cta .cohort-info b { color: var(--gold); font-weight: 500; }

/* ---------- Footer ---------- */
.footer {
  padding: 80px 0 40px;
  border-top: 1px solid var(--line);
  background: var(--black-2);
}
.footer-top {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 60px;
  margin-bottom: 80px;
}
.footer-brand h3 {
  font-family: var(--f-serif);
  font-weight: 400;
  font-style: italic;
  font-size: 32px;
  color: var(--off);
  margin-bottom: 12px;
  letter-spacing: 0.04em;
}
.footer-brand h3 .amp { color: var(--gold); }
.footer-brand p {
  font-size: 15px;
  color: var(--off-2);
  line-height: 1.75;
  max-width: 280px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}
.footer-col h4 {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 24px;
}
.footer-col ul { list-style: none; }
.footer-col li {
  padding: 10px 0;
  font-size: 15px;
  color: var(--off-2);
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.6;
}
.footer-col li a { transition: color 0.3s; }
.footer-col li a:hover { color: var(--gold); }

/* Contact link with official-style icon */
.footer-col .contact-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  line-height: 1.4;
}
.footer-col .contact-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--gold-deep);
  transition: color 0.3s;
}
.footer-col .contact-ico svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.footer-col .contact-link:hover .contact-ico { color: var(--gold); }
.footer-bottom {
  padding-top: 32px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--muted-2);
  text-transform: uppercase;
}
.footer-bottom .risk {
  font-family: "Noto Sans JP", sans-serif;
  text-transform: none;
  font-size: 11px;
  color: var(--muted-2);
  letter-spacing: 0.03em;
  max-width: 640px;
  line-height: 1.6;
}
@media (max-width: 900px) {
  .footer-top { grid-template-columns: 1fr 1fr; gap: 40px; }
}

/* ---------- USP Formula (big equation) ---------- */
.usp-formula {
  padding: 40px 0 40px;
  text-align: center;
}
.usp-eq {
  display: inline-flex;
  align-items: baseline;
  gap: clamp(12px, 2vw, 32px);
  flex-wrap: wrap;
  justify-content: center;
  font-family: var(--f-serif);
  font-weight: 300;
  font-style: italic;
  font-size: clamp(28px, 5vw, 72px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--off);
}
.usp-term {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 0 8px;
}
.usp-term .t {
  font-family: var(--f-serif);
  font-style: italic;
  color: var(--off);
  transition: color 0.4s var(--ease);
}
.usp-term:hover .t { color: var(--gold-2); }
.usp-term .role {
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-size: 12px;
  font-weight: 400;
  color: var(--gold);
  letter-spacing: 0.24em;
}
.usp-op {
  font-family: var(--f-serif);
  color: var(--gold);
  font-style: italic;
  font-weight: 300;
  align-self: center;
  translate: 0 -12px;
}
.usp-eq-2 {
  margin-top: 40px;
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.28em;
  color: var(--muted);
  text-transform: uppercase;
}
.usp-eq-2 .arrow { color: var(--gold); margin: 0 12px; }
.usp-eq-2 .result { color: var(--gold-2); font-family: "Noto Serif JP", serif; font-size: 15px; letter-spacing: 0.08em; }

/* ---------- Pain Points ---------- */
.pain {
  background: var(--black-2);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.pain-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.pain-item {
  background: var(--black);
  padding: 48px 40px;
  display: flex; flex-direction: column;
  min-height: 240px;
  transition: background 0.4s var(--ease);
  position: relative;
}
.pain-item:hover { background: var(--black-3); }
.pain-num {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  color: var(--gold-deep);
  margin-bottom: 20px;
}
.pain-item h4 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.4;
  color: var(--off);
  margin-bottom: 18px;
  letter-spacing: 0.02em;
}
.pain-item p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.95;
  color: var(--off-2);
  font-weight: 400;
}
.pain-item::before {
  content: "×";
  position: absolute;
  top: 40px; right: 40px;
  font-family: var(--f-serif);
  font-size: 32px;
  color: var(--gold-deep);
  opacity: 0.4;
  line-height: 1;
}
.pain-insight {
  margin-top: 60px;
  padding: 48px;
  border: 1px solid var(--gold-deep);
  background: linear-gradient(180deg, rgba(201,169,110,0.04), transparent);
  text-align: center;
  position: relative;
}
.pain-insight .lbl {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 20px;
  display: block;
}
.pain-insight p {
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(18px, 2.2vw, 26px);
  line-height: 1.7;
  color: var(--off);
  max-width: 900px;
  margin: 0 auto;
  letter-spacing: 0.03em;
}
.pain-insight p b { color: var(--gold-2); font-weight: 400; }
@media (max-width: 900px) {
  .pain-grid { grid-template-columns: 1fr; }
}

/* ---------- Problem diagram (3 step) ---------- */
.problem-diag {
  display: grid;
  grid-template-columns: 1fr 60px 1fr 60px 1fr;
  gap: 0;
  align-items: stretch;
  margin: 40px 0;
}
.problem-step {
  padding: 40px 32px;
  border: 1px solid var(--line);
  background: var(--black-2);
  text-align: center;
  display: flex; flex-direction: column; gap: 16px; align-items: center;
}
.problem-step .icon {
  width: 56px; height: 56px;
  border: 1px solid currentColor;
  border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--f-serif);
  font-size: 28px;
  font-style: italic;
}
.problem-step.ok { color: #7fb08a; }
.problem-step.mid { color: var(--gold); }
.problem-step.bad { color: #b07f7f; border-style: dashed; }
.problem-step h5 {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 17px;
  color: var(--off);
  letter-spacing: 0.04em;
}
.problem-step .sub {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.7;
  font-weight: 300;
}
.problem-arrow {
  display: grid;
  place-items: center;
  color: var(--gold-deep);
  font-family: var(--f-serif);
  font-size: 32px;
  font-style: italic;
}
@media (max-width: 900px) {
  .problem-diag { grid-template-columns: 1fr; gap: 8px; }
  .problem-arrow { transform: rotate(90deg); padding: 8px 0; }
}

/* ---------- Smart Tool Kit ---------- */
.toolkit {
  background: var(--black);
  border-top: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.toolkit-hero {
  position: relative;
  margin-bottom: 80px;
  border: 1px solid var(--line);
  overflow: hidden;
}
.toolkit-hero img,
.toolkit-hero .toolkit-ai-video {
  width: 100%;
  display: block;
  filter: contrast(1.05);
}
.toolkit-hero .toolkit-ai-video {
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
  background: #070a12;
}
.toolkit-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(10,10,10,0.85) 100%);
  pointer-events: none;
}
.toolkit-hero .caption {
  position: absolute;
  bottom: 24px; left: 32px; right: 32px;
  z-index: 1;
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
}
.toolkit-hero .caption .lbl {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.28em;
  color: var(--gold);
  text-transform: uppercase;
}
.toolkit-hero .caption .txt {
  font-family: var(--f-serif);
  font-style: italic;
  font-size: 20px;
  color: var(--off);
  max-width: 500px;
  text-align: right;
}
.tool-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.tool {
  background: var(--black-2);
  border: 1px solid var(--line);
  padding: 40px;
  display: grid;
  grid-template-columns: 1fr 200px;
  gap: 32px;
  align-items: center;
  transition: border-color 0.4s var(--ease);
  min-height: 220px;
}
.tool:hover { border-color: var(--gold-deep); }
.tool-body h4 {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 26px;
  color: var(--off);
  margin-bottom: 4px;
  letter-spacing: -0.005em;
}
.tool-body .jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 15px;
  color: var(--gold-2);
  margin-bottom: 20px;
  letter-spacing: 0.06em;
}
.tool-body p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.95;
  color: var(--off-2);
  font-weight: 400;
}
.tool-viz {
  aspect-ratio: 1;
  background: var(--black);
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  color: var(--gold);
  overflow: hidden;
  position: relative;
}
.tool-viz svg { width: 100%; height: 100%; }
@media (max-width: 900px) {
  .tool-grid { grid-template-columns: 1fr; }
  .tool { grid-template-columns: 1fr; }
  .tool-viz { max-width: 200px; }
}

/* ---------- Five Pillars (upgrade of pillars-3) ---------- */
.pillars-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.p5 {
  background: var(--black);
  padding: 40px 28px;
  display: flex; flex-direction: column; gap: 16px;
  transition: background 0.4s var(--ease);
  min-height: 320px;
  position: relative;
}
.p5:hover { background: var(--black-3); }
.p5-num {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.28em;
  color: var(--gold);
}
.p5-icon {
  width: 40px; height: 40px;
  color: var(--gold);
  margin-bottom: 8px;
}
.p5 h4 {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 22px;
  color: var(--off);
  letter-spacing: -0.005em;
  line-height: 1.1;
}
.p5 .jp {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  color: var(--gold-2);
  letter-spacing: 0.06em;
}
.p5 p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.9;
  color: var(--off-2);
  font-weight: 400;
  margin-top: 8px;
}
@media (max-width: 1100px) {
  .pillars-5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
  .pillars-5 { grid-template-columns: 1fr; }
}

/* ---------- Prop Firm logos ---------- */
.propfirms {
  padding: 60px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--black-2);
}
.propfirms-lbl {
  text-align: center;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 32px;
}
.propfirms-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(32px, 6vw, 80px);
  flex-wrap: wrap;
}
.propfirm {
  font-family: var(--f-serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(22px, 2.6vw, 32px);
  color: var(--off-2);
  letter-spacing: 0.02em;
  opacity: 0.8;
  transition: opacity 0.3s, color 0.3s;
}
.propfirm:hover { opacity: 1; color: var(--gold-2); }
.propfirm .check {
  display: inline-block;
  color: var(--gold);
  margin-right: 8px;
  font-style: normal;
  font-size: 0.7em;
  vertical-align: 2px;
}

/* ---------- Certificate Gallery ---------- */
.certs {
  background: var(--black);
  border-top: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.certs::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 40% at 50% 30%, var(--gold-glow), transparent 70%);
  pointer-events: none;
}
.certs-inner { position: relative; z-index: 1; }
.certs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.cert {
  background: var(--black-2);
  border: 1px solid var(--line);
  padding: 16px;
  transition: border-color 0.4s var(--ease), transform 0.4s var(--ease);
  cursor: zoom-in;
  position: relative;
  display: flex; flex-direction: column;
}
.cert:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
}
.cert-img-wrap {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--black);
  position: relative;
  margin-bottom: 20px;
}
.cert-img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: contrast(1.05) saturate(0.9);
  transition: transform 0.6s var(--ease);
}
.cert:hover .cert-img-wrap img {
  transform: scale(1.03);
}
.cert-img-wrap::after {
  content: "";
  position: absolute; inset: 0;
  border: 1px solid rgba(201, 169, 110, 0.15);
  pointer-events: none;
}
.cert-meta {
  display: flex; flex-direction: column; gap: 4px;
  padding: 4px 4px 8px;
}
.cert-firm {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 20px;
  font-style: italic;
  color: var(--off);
  letter-spacing: 0.01em;
}
.cert-type {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.24em;
  color: var(--gold);
  text-transform: uppercase;
}
.cert-date {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}

/* Lightbox */
.cert-lb {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(5, 5, 5, 0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 40px;
  cursor: zoom-out;
  animation: lbFade 0.3s ease;
}
.cert-lb.open { display: flex; }
@keyframes lbFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
.cert-lb img {
  max-width: min(90vw, 1200px);
  max-height: 88vh;
  object-fit: contain;
  border: 1px solid var(--gold-deep);
}
.cert-lb-close {
  position: absolute;
  top: 24px; right: 32px;
  color: var(--gold);
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 8px 14px;
  border: 1px solid var(--gold);
  background: rgba(10,10,10,0.5);
}
.cert-lb-close:hover { background: var(--gold); color: var(--black); }

@media (max-width: 1100px) {
  .certs-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .certs-grid { grid-template-columns: 1fr; }
}

/* ---------- Mentoring timeline ---------- */
.mentoring {
  background: linear-gradient(180deg, var(--black) 0%, var(--black-2) 100%);
  border-top: 1px solid var(--line);
}
.mentoring-intro {
  max-width: 900px;
  margin-bottom: 80px;
}
.mentoring-intro .lead {
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.6;
  color: var(--off);
  letter-spacing: 0.03em;
}
.mentoring-intro .sub {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  color: var(--muted);
  margin-top: 24px;
  line-height: 1.85;
  font-weight: 300;
}
.timeline {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--gold-deep);
  border: 1px solid var(--gold-deep);
  position: relative;
}
.tl-step {
  background: var(--black);
  padding: 48px 40px;
  display: flex; flex-direction: column; gap: 20px;
  min-height: 320px;
  position: relative;
}
.tl-month {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--gold);
  text-transform: uppercase;
}
.tl-num {
  font-family: var(--f-serif);
  font-weight: 300;
  font-style: italic;
  font-size: 96px;
  line-height: 1;
  color: var(--gold);
  opacity: 0.3;
  position: absolute;
  top: 32px; right: 40px;
}
.tl-step h4 {
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: 30px;
  color: var(--off);
  letter-spacing: -0.005em;
  margin-top: 8px;
}
.tl-step .jp {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  color: var(--gold-2);
  letter-spacing: 0.06em;
}
.tl-step p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.95;
  color: var(--off-2);
  font-weight: 400;
  margin-top: 8px;
}
.mentoring-includes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-top: 80px;
  padding-top: 60px;
  border-top: 1px solid var(--line);
}
.mi-col h5 {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 24px;
}
.mi-col ul { list-style: none; }
.mi-col li {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  color: var(--off);
  padding: 14px 0;
  border-top: 1px solid var(--line);
  display: flex; gap: 14px; align-items: baseline;
  font-weight: 400;
  line-height: 1.7;
}
.mi-col li::before {
  content: "";
  width: 6px; height: 6px;
  border: 1px solid var(--gold);
  transform: rotate(45deg);
  flex-shrink: 0;
  translate: 0 2px;
}
@media (max-width: 900px) {
  .timeline { grid-template-columns: 1fr; }
  .mentoring-includes { grid-template-columns: 1fr; gap: 40px; }
}

/* ---------- 1-year-later closing block ---------- */
.oneyear {
  padding: 180px 0;
  background: var(--black);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.oneyear::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 50%, var(--gold-glow), transparent 70%);
}
.oneyear-inner { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; }
.oneyear h2 { margin-bottom: 32px; }
.oneyear .body-jp {
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(17px, 1.9vw, 22px);
  line-height: 1.9;
  color: var(--off-2);
  max-width: 720px;
  margin: 0 auto;
}
.oneyear .body-jp b { color: var(--gold-2); font-weight: 400; }
.oneyear .disclaimer {
  margin-top: 60px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  color: var(--muted-2);
  letter-spacing: 0.04em;
}

/* ---------- Featured pricing tweak (mentoring) ---------- */
.price .price-was {
  font-family: var(--f-serif);
  font-size: 20px;
  color: var(--muted);
  text-decoration: line-through;
  text-decoration-color: var(--gold-deep);
  margin-right: 12px;
  font-weight: 300;
}
.price .discount-tag {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  padding: 4px 10px;
  border: 1px solid var(--gold);
  color: var(--gold);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.price .limit-note {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  color: var(--gold-2);
  margin-top: 12px;
  letter-spacing: 0.04em;
}

/* ==========================================================
   神のレポート — Plan Card (LP呼応版)
   Overrides only .price--god; other pricing cards unchanged.
   ========================================================== */
.price.price--god {
  background:
    radial-gradient(ellipse 60% 40% at 100% 0%, rgba(212,181,120,0.06), transparent 60%),
    radial-gradient(ellipse 40% 40% at 0% 100%, rgba(212,181,120,0.04), transparent 60%),
    var(--black-2);
  position: relative;
  overflow: hidden;
}
.price.price--god::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid var(--gold-deep);
  pointer-events: none;
  z-index: 1;
}
.price.price--god::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), var(--gold-2), var(--gold), transparent);
  z-index: 2;
  opacity: 0.75;
}
.price.price--god > * { position: relative; z-index: 2; }

/* Tag */
.price-tag.price-tag--god {
  background: var(--black);
  border: 1px solid var(--gold);
  color: var(--gold-2);
}

/* Lede — LP hero echo */
.price--god .god-lede {
  font-family: "Noto Serif JP", serif;
  font-size: 17px;
  line-height: 1.75;
  color: var(--off);
  font-weight: 400;
  margin: 4px 0 32px;
  letter-spacing: 0.02em;
}
.price--god .god-lede b {
  color: var(--gold-2);
  font-weight: 500;
  font-style: italic;
}

/* Price block spacing tweak inside god card */
.price--god .price-amt { color: var(--gold-2); }
.price--god .price-per { margin-bottom: 28px; }

/* KPI facts grid — 4 columns of at-a-glance specs */
.price--god .god-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--gold-deep);
  border: 1px solid var(--gold-deep);
  margin-bottom: 28px;
}
.price--god .god-fact {
  background: var(--black);
  padding: 14px 8px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
}
.price--god .god-fact .k {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: 0.24em;
  color: var(--gold);
  text-transform: uppercase;
}
.price--god .god-fact .v {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.35;
  letter-spacing: 0.02em;
  font-weight: 300;
}
.price--god .god-fact .v b {
  display: inline-block;
  font-family: var(--f-serif);
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  color: var(--off);
  line-height: 1;
  letter-spacing: 0;
}

/* Covered markets chips */
.price--god .god-markets {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}
.price--god .god-markets .lbl {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: 0.28em;
  color: var(--muted);
  text-transform: uppercase;
  margin-right: 4px;
}
.price--god .god-markets .chip {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  padding: 5px 9px;
  border: 1px solid var(--line-strong, #2a2a2a);
  color: var(--off-2);
  background: rgba(255,255,255,0.015);
  border-radius: 2px;
  white-space: nowrap;
}
.price--god .god-markets .chip-more {
  border-color: var(--gold-deep);
  color: var(--gold-2);
  background: transparent;
}

/* Included list — richer than default */
.price--god .price-list.god-list { margin-bottom: 24px; }
.price--god .price-list.god-list li {
  font-size: 14px;
  padding: 13px 0;
  color: var(--off-2);
  line-height: 1.65;
}
.price--god .price-list.god-list li b {
  color: var(--gold-2);
  font-weight: 500;
}
.price--god .price-list.god-list li::before {
  background: var(--gold);
  width: 10px;
  margin-top: 10px;
}

/* "This is NOT a signal service" micro-copy */
.price--god .god-not {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  line-height: 1.75;
  color: var(--muted);
  padding: 16px 18px;
  border-left: 2px solid var(--gold-deep);
  background: rgba(212,181,120,0.03);
  margin-bottom: 20px;
  letter-spacing: 0.02em;
}
.price--god .god-not b {
  color: var(--off);
  font-weight: 500;
}

/* CTAs */
.price--god .god-cta {
  border-color: var(--gold);
  background: var(--gold);
}
.price--god .god-cta:hover { background: var(--gold-2); border-color: var(--gold-2); }
.price--god .god-detail-link {
  display: block;
  text-align: center;
  margin-top: 14px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--muted);
  text-transform: uppercase;
  text-decoration: none;
  padding: 8px 0;
  transition: color 0.3s var(--ease);
}
.price--god .god-detail-link:hover { color: var(--gold-2); }

/* Responsive — collapse KPI grid to 2×2 on very narrow */
@media (max-width: 1400px) and (min-width: 1201px) {
  .price--god .god-facts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .price--god .god-facts { grid-template-columns: repeat(2, 1fr); }
  .price--god .god-lede { font-size: 16px; }
}

/* ---------- Reveal animation ---------- */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }

/* ================= HOST / ORGANIZER (added) ================= */
.hero-host{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 40px;padding:10px 16px 10px 10px;border:1px solid var(--line-strong);background:rgba(10,10,10,.6);backdrop-filter:blur(8px);width:fit-content;max-width:100%}
.hero-host-avatar{width:52px;height:52px;object-fit:cover;border:1px solid var(--gold-deep);flex:0 0 auto}
.hero-host-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.hero-host-lbl{font-family:var(--f-mono);font-size:10px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
.hero-host-name{font-family:"Noto Sans JP",var(--f-sans);font-size:14px;color:var(--off);letter-spacing:.03em;line-height:1.5}
.hero-host-name b{color:var(--gold-2);font-weight:500}
.hero-host-yt{display:inline-flex;align-items:center;gap:8px;margin-left:8px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--off-2);border:1px solid var(--line-strong);padding:9px 13px;transition:all .3s var(--ease);white-space:nowrap}
.hero-host-yt:hover{border-color:var(--gold);color:var(--gold)}
.hero-host-yt svg{width:14px;height:14px;fill:#ff4d4d;flex:0 0 auto}
@media (max-width:820px){.hero-host{padding:10px 12px}.hero-host-yt{margin-left:0}}

.organizer{border-top:1px solid var(--line);background:var(--black-2)}
.org-head{max-width:920px;margin-bottom:72px}
.org-head .h-2{margin:22px 0 26px}
.org-lead{font-family:"Noto Sans JP",var(--f-sans);font-size:16px;line-height:2.05;color:var(--muted)}
.org-lead b{color:var(--gold-2);font-weight:500}
.org-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,72px);align-items:start}
.org-facts-col{border-top:1px solid var(--line);padding-top:10px}
.org-photo{position:relative;border:1px solid var(--line);background:var(--black)}
.org-photo img{display:block;width:100%;height:auto}
.org-photo-cap{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;color:var(--muted-2);padding:12px 16px;border-top:1px solid var(--line);line-height:1.7}
.org-role{font-family:var(--f-mono);font-size:11px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.org-name{font-family:var(--f-serif);font-size:clamp(40px,5vw,62px);line-height:1;color:var(--off);margin:14px 0 10px;font-weight:400}
.org-name span{font-family:"Noto Sans JP",var(--f-sans);font-size:.4em;color:var(--gold);letter-spacing:.1em;vertical-align:middle;margin-left:8px}
.org-sub{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.08em;color:var(--muted-2);margin-bottom:26px;line-height:1.9}
.org-facts{list-style:none;margin:28px 0 30px;border-top:1px solid var(--line)}
.org-facts li{display:flex;gap:18px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.org-facts .k{font-family:var(--f-mono);font-size:10px;letter-spacing:.22em;color:var(--muted-2);text-transform:uppercase;min-width:104px}
.org-facts .v{font-family:"Noto Sans JP",var(--f-sans);font-size:14px;color:var(--off-2);letter-spacing:.02em}
.org-actions{display:flex;gap:14px;flex-wrap:wrap}
.org-actions .btn{font-size:14px;padding:16px 24px}
.org-note{font-family:"Noto Sans JP",var(--f-sans);font-size:12px;line-height:1.9;color:var(--muted-2);margin-top:22px}
.btn-yt svg{width:16px;height:16px;fill:#ff4d4d;flex:0 0 auto}
@media (max-width:980px){.org-grid{grid-template-columns:1fr}.org-head{margin-bottom:48px}}

.ytsec{border-top:1px solid var(--line)}
.yt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:stretch}
.yt-card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--black-2);text-decoration:none;transition:border-color .35s var(--ease),transform .35s var(--ease)}
.yt-card:hover{border-color:var(--gold-deep);transform:translateY(-3px)}
.yt-thumb{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.yt-thumb img{display:block;width:100%;height:auto}
.yt-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;background:linear-gradient(180deg,rgba(10,10,10,.15),rgba(10,10,10,.55))}
.yt-body{padding:22px 24px 26px}
.yt-name{font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase}
.yt-desc{font-family:"Noto Sans JP",var(--f-sans);font-size:13.5px;line-height:1.95;color:var(--muted);margin-top:12px}
.yt-go{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--gold-2);margin-top:18px;display:inline-block}
.yt-free{border:1px solid var(--line);background:var(--black-3);padding:clamp(24px,3vw,40px)}
.yt-free .h-3{margin:18px 0 8px}
.yt-list{list-style:none;margin-top:22px}
.yt-list li{padding:18px 0;border-top:1px solid var(--line)}
.yt-list a{font-family:"Noto Sans JP",var(--f-sans);font-size:15px;color:var(--off);text-decoration:none;display:inline-flex;gap:10px;align-items:baseline}
.yt-list a:hover{color:var(--gold-2)}
.yt-list span{display:block;font-size:12.5px;line-height:1.9;color:var(--muted-2);margin-top:6px}
@media (max-width:980px){.yt-grid{grid-template-columns:1fr}}

.hero-ytline{margin-top:18px;font-family:"Noto Sans JP",var(--f-sans);font-size:13px;color:var(--muted)}
.hero-ytline a{color:var(--gold-2);text-decoration:none;border-bottom:1px solid var(--line-strong);padding-bottom:2px}
.hero-ytline a:hover{border-color:var(--gold)}

.footer-legal{margin-top:56px;padding-top:32px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px}
.footer-legal h4{font-family:var(--f-mono);font-size:10px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;margin-bottom:14px}
.footer-legal p,.footer-legal li{font-family:"Noto Sans JP",var(--f-sans);font-size:12px;line-height:2;color:var(--muted-2)}
.footer-legal ul{list-style:none}
.footer-legal .ph{color:var(--gold-deep)}

/* text-only variants (images removed) */
.yt-card--text .yt-name{display:flex;align-items:center;gap:10px}
.yt-card--text .yt-name::before{content:"▶";color:#ff4d4d;font-size:11px}

/* ================= BRIGHT THEME + HIGH-TENSION LAYER ================= */
:root{--paper:#fbf9f4;--paper-2:#f4efe3;--paper-3:#ffffff;--ink:#14110c;--ink-2:#332e24;--ink-3:#5f5849;
      --red:#c8102e;--red-2:#e11d38;--red-deep:#8f0a20;--line-l:#e3dbc9;--line-l2:#cdc2a8}
.theme-light{
  --black:#fbf9f4;--black-2:#f5f1e6;--black-3:#ffffff;--black-4:#ece5d4;
  --line:#e3dbc9;--line-strong:#cdc2a8;
  --off:#14110c;--off-2:#2f2a20;--muted:#5f5849;--muted-2:#847b68;
  --gold:#a9812f;--gold-2:#8a6522;--gold-deep:#c9a227;
  background:var(--paper)!important;color:var(--ink)!important;
}
.theme-light .h-2,.theme-light .h-3,.theme-light .h-display,.theme-light .serif{color:var(--ink)}
.theme-light .h-2 .em{background:linear-gradient(transparent 58%,rgba(201,162,39,.5) 58%);padding:0 .06em}
.theme-light .eyebrow,.theme-light .section-hd-num{color:var(--red)}
.theme-light .stat{border-left:1px solid var(--line-l)}
.theme-light .stat-num{color:var(--red)}
.theme-light .stat-num .unit{color:var(--gold-2)}
.theme-light .stat-label{color:var(--ink-2)}
.theme-light .stat-desc{color:var(--muted)}
.theme-light .record-strip{background:var(--paper-2);border-color:var(--line-l)}
.theme-light .btn-primary{background:var(--red);border-color:var(--red);color:#fff}
.theme-light .btn-primary:hover{background:var(--red-deep);border-color:var(--red-deep);color:#fff}
.theme-light .btn-ghost{border-color:var(--ink-2);color:var(--ink)}
.theme-light .btn-ghost:hover{border-color:var(--red);color:var(--red)}
.theme-light blockquote.quote{background:var(--paper-3);border-left:3px solid var(--red);color:var(--ink-2)}
.theme-light .cert{background:var(--paper-3);border-color:var(--line-l)}
.theme-light .faq-item{border-color:var(--line-l)}
.theme-light .faq-q{color:var(--ink)}
.theme-light .faq-a{color:var(--muted)}
.theme-light .usp-term,.theme-light .usp-op{color:var(--red)}
.theme-light .module,.theme-light .tier,.theme-light .pillar,.theme-light .tool{background:var(--paper-3);border-color:var(--line-l)}
.theme-light .pillar-num,.theme-light .module-num,.theme-light .tl-num,.theme-light .p5-num{color:var(--red)}

/* announcement bar */
.promo-bar{position:fixed;top:0;left:0;right:0;z-index:130;display:flex;align-items:center;justify-content:center;
  gap:12px;flex-wrap:wrap;padding:9px 16px;text-align:center;color:#fff;
  background:linear-gradient(90deg,var(--red-deep) 0%,var(--red) 48%,var(--red-2) 100%);
  font-family:"Noto Sans JP",var(--f-sans);font-size:13px;font-weight:600;letter-spacing:.04em;
  box-shadow:0 2px 14px rgba(0,0,0,.18)}
.promo-bar b{color:#ffe08a}
.promo-bar a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.promo-bar .pb-live{background:#fff;color:var(--red);font-size:10px;font-weight:800;letter-spacing:.18em;
  padding:3px 9px;border-radius:2px;flex:0 0 auto}
body{padding-top:40px}

/* sticky bottom CTA */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:130;display:flex;align-items:center;gap:12px;
  padding:10px clamp(12px,3vw,26px);background:rgba(12,10,8,.95);border-top:1px solid var(--gold-deep);
  backdrop-filter:blur(10px)}
.sticky-cta .sc-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;font-family:"Noto Sans JP",var(--f-sans)}
.sticky-cta .sc-txt b{font-size:14px;color:#ffe08a}
.sticky-cta .sc-txt span{font-size:11.5px;color:#cfc7b6}
.sticky-cta .sc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;
  font-family:"Noto Sans JP",var(--f-sans);font-size:13.5px;font-weight:700;padding:13px 20px;text-decoration:none;border-radius:2px}
.sc-line{background:#06c755;color:#fff}
.sc-main{background:var(--red);color:#fff}
body{padding-bottom:78px}
@media (max-width:820px){
  .sticky-cta .sc-txt{display:none}
  .sticky-cta .sc-btn{flex:1;font-size:13px;padding:14px 10px}
  .promo-bar{font-size:11.5px;gap:8px;padding:8px 10px}
}

/* defensive: never clip card copy */
.tool-body p,.tool-body .jp,.pillar p,.module p{overflow:visible;max-height:none}
.theme-light .tool-viz{background:var(--paper-2)}

/* promo bar offset for the fixed nav */
.nav{top:40px!important}
@media (max-width:820px){.nav{top:38px!important}}

/* ================= PHOTO-RICH LP LAYER ================= */
.photo-band{position:relative;overflow:hidden;background:var(--paper-2);border-top:1px solid var(--line-l);border-bottom:1px solid var(--line-l)}
.photo-band img{display:block;width:100%;height:clamp(260px,44vw,520px);object-fit:cover}
.photo-band--dark{border-color:var(--line)}
.photo-band-cap{position:absolute;left:0;right:0;bottom:0;padding:22px clamp(16px,4vw,48px);
  background:linear-gradient(180deg,transparent,rgba(8,7,5,.86) 62%)}
.photo-band-cap .k{font-family:var(--f-mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep)}
.photo-band-cap p{font-family:"Noto Sans JP",var(--f-sans);font-size:15px;line-height:1.85;color:#fff;margin-top:8px;max-width:780px}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper-3);border-top:1px solid var(--line-l);border-bottom:1px solid var(--line-l)}
.photo-grid figure{margin:0;border-right:1px solid var(--line-l);overflow:hidden}
.photo-grid figure:last-child{border-right:0}
.photo-grid img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .7s var(--ease)}
.photo-grid figure:hover img{transform:scale(1.05)}
.photo-grid figcaption{font-family:"Noto Sans JP",var(--f-sans);font-size:12.5px;line-height:1.7;color:var(--muted);padding:15px 18px 18px}
.photo-note{font-family:"Noto Sans JP",var(--f-sans);font-size:11.5px;line-height:1.9;color:var(--muted-2);margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.org-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important}
.org-photo img{display:block;width:100%;height:auto}
.cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28;z-index:0}
.final-cta{position:relative;overflow:hidden}
.final-cta-inner{position:relative;z-index:2}
.yt-thumb{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.yt-thumb img{display:block;width:100%;height:auto}
@media(max-width:900px){.photo-grid{grid-template-columns:1fr}.photo-grid figure{border-right:0;border-bottom:1px solid var(--line-l)}
 .org-grid{grid-template-columns:1fr!important}}

/* ================= RESPONSIVE / LEGIBILITY HARDENING ================= */
html,body{overflow-x:hidden;max-width:100%}
img{max-width:100%}
.hero-bg{position:relative}
.hero-bg::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,7,5,.74) 0%,rgba(8,7,5,.5) 42%,rgba(8,7,5,.9) 100%)}
.hero-inner{position:relative;z-index:3}
@media(max-width:900px){
  body{padding-top:38px}
  .photo-band img{height:240px}
  .photo-band-cap{padding:16px 18px}
  .photo-band-cap p{font-size:13.5px;line-height:1.75}
  .photo-grid img{aspect-ratio:4/3}
  .hero-host{width:100%;flex-direction:column;align-items:flex-start;gap:12px}
  .hero-host-yt{margin-left:0;width:100%;justify-content:center}
  .hero-host-name{font-size:13px}
  .promo-bar{font-size:11px;line-height:1.5}
  .sticky-cta{padding:8px 10px;gap:8px}
  .theme-light .h-2,.theme-light .h-3{font-size:clamp(24px,7vw,34px)}
  .container{padding-left:20px;padding-right:20px}
}

/* ================= NAV FIX + DRAWER ================= */
.nav{flex-wrap:nowrap;gap:16px}
.nav > *{flex:0 0 auto}
.nav a{white-space:nowrap}
.nav-links{gap:22px;font-size:14px;white-space:nowrap}
.brand{min-width:0;white-space:nowrap}
.brand-mark{white-space:nowrap}
.brand-mark i{font-style:italic;margin-left:7px}
.brand-tag{white-space:nowrap}
.nav-burger{display:none;width:44px;height:44px;background:transparent;border:1px solid var(--line-strong);
  cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.nav-burger span{display:block;width:20px;height:1.5px;background:var(--gold);transition:transform .3s var(--ease),opacity .3s}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.nav-scrim{display:none;position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.68);opacity:0;transition:opacity .28s var(--ease)}
.nav-scrim.open{display:block;opacity:1}
.nav-drawer{display:flex;position:fixed;top:0;bottom:0;left:0;z-index:120;width:min(88vw,360px);background:linear-gradient(180deg,#101018 0%,#0a0a0d 100%);
  border-right:1px solid var(--line-strong);box-shadow:18px 0 44px rgba(0,0,0,.42);backdrop-filter:blur(18px);
  padding:24px 22px 34px;flex-direction:column;gap:0;overflow-y:auto;overscroll-behavior:contain;
  transform:translateX(-105%);visibility:hidden;transition:transform .34s var(--ease),visibility 0s linear .34s}
.nav-drawer.open{transform:translateX(0);visibility:visible;transition:transform .34s var(--ease)}
.nav-drawer-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:8px 2px 24px;margin-bottom:8px;border-bottom:1px solid var(--line-strong)}
.nav-drawer-brand{font-family:var(--f-serif);font-size:23px;letter-spacing:.04em;color:var(--off)}
.nav-drawer-brand i{font-size:15px;color:var(--gold-2);font-weight:400}
.nav-drawer-caption{font-family:var(--f-mono);font-size:10px;letter-spacing:.24em;color:var(--gold);white-space:nowrap}
.nav-drawer-close{display:grid;place-items:center;width:48px;height:48px;flex:0 0 auto;border:1px solid var(--line-strong);border-radius:8px;background:rgba(255,255,255,.04);color:var(--off);font-size:31px;line-height:1;cursor:pointer}
.nav-drawer-close:hover,.nav-drawer-close:focus-visible{color:var(--gold-2);border-color:var(--gold-2);outline:3px solid rgba(242,207,122,.24);outline-offset:2px}
.nav-drawer a{display:flex;align-items:center;min-height:58px;font-family:"Noto Sans JP",var(--f-sans);font-size:17px;color:var(--off);
  padding:14px 8px;border-bottom:1px solid var(--line);text-decoration:none;letter-spacing:.02em}
.nav-drawer a:hover{color:var(--gold-2)}
.nav-drawer a.nav-feature-link{color:var(--gold-2);font-weight:600}
body.nav-open{overflow:hidden}
.price-off{font-family:"Noto Sans JP",var(--f-sans);font-size:12.5px;line-height:1.7;color:var(--muted);
  margin:-14px 0 18px;padding:10px 12px;border-left:2px solid var(--red);background:rgba(200,16,46,.06)}
.price-off b{color:var(--red);font-weight:700}
@media (max-width:1420px){.brand-tag{display:none}}
@media (max-width:1240px){.nav-links{display:none}.nav-burger{display:flex}}
@media (min-width:1241px){.nav-drawer{display:none!important}}

/* mobile nav hardening */
@media (max-width:1240px){
  .nav{padding:14px 18px}
  .nav-links{display:none!important}
  .nav-burger{display:flex!important}
  .nav-cta{display:none!important}
  .brand-tag{display:none!important}
  .nav-burger{position:relative;z-index:130}
}
@media (max-width:520px){ .brand-mark{font-size:15px!important} .brand-mark i{font-size:12px!important} }

/* brand must never push the burger off-screen */
@media (max-width:1240px){
  .brand{flex:1 1 auto;min-width:0;overflow:hidden}
  .brand-mark{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media (max-width:640px){
  .brand-mark{font-size:15px}
  .brand-mark i{margin-left:5px;font-size:12px}
  .nav-burger{flex:0 0 auto}
}

/* =====================================================================
   IMPACT REDESIGN — Midnight × Crimson × Gold
   ===================================================================== */
:root{
  --ink-night:#070a12; --ink-night-2:#0d1220; --ink-night-3:#141b2d;
  --crimson:#e0102f; --crimson-2:#ff2d4a; --crimson-deep:#9e0820;
  --gold-hi:#f2cf7a; --gold-mid:#d9a93f;
  --red:#e0102f; --red-2:#ff2d4a; --red-deep:#9e0820;
}
body{background:var(--ink-night)}
/* light sections: crisp white with warm tint */
.theme-light{--black:#ffffff;--black-2:#f7f5f0;--black-3:#ffffff;background:#fff!important}
.theme-light:nth-of-type(even){background:#f7f5f0!important}
.theme-light .h-2,.theme-light .h-3{font-family:"Noto Serif JP",var(--f-serif);font-weight:700;letter-spacing:-.01em}
.theme-light .h-2 .em{color:var(--crimson);font-style:normal;background:linear-gradient(transparent 64%,rgba(242,207,122,.55) 64%)}
/* dark rhythm sections */
.theme-dark{
  --black:#070a12;--black-2:#0d1220;--black-3:#141b2d;--black-4:#1b2338;
  --line:#232c42;--line-strong:#34405e;--off:#f6f3ec;--off-2:#dcd6c8;--muted:#a3a8b8;--muted-2:#7b8296;
  --gold:#f2cf7a;--gold-2:#f2cf7a;--gold-deep:#d9a93f;
  background:radial-gradient(ellipse 80% 60% at 85% 0%,rgba(224,16,47,.16),transparent 60%),
             radial-gradient(ellipse 70% 60% at 0% 100%,rgba(217,169,63,.10),transparent 60%),var(--ink-night)!important;
  color:var(--off)!important;
}
.theme-dark .h-2,.theme-dark .h-3{font-family:"Noto Serif JP",var(--f-serif);font-weight:700;color:#fff}
.theme-dark .h-2 .em{color:var(--gold-hi);font-style:normal}
.theme-dark .eyebrow,.theme-dark .section-hd-num{color:var(--crimson-2)}
.theme-dark .module,.theme-dark .tier,.theme-dark .pillar,.theme-dark .tool,.theme-dark .cert,.theme-dark .pain-card{background:rgba(255,255,255,.035);border-color:var(--line)}
.theme-dark .tool-viz{background:var(--ink-night-2)}
.theme-dark .btn-primary{background:var(--crimson);border-color:var(--crimson);color:#fff}
.theme-dark p,.theme-dark .body-jp{color:var(--off-2)}
.section-hd-num{font-weight:700}

/* buttons: crimson primary everywhere, glow */
.btn-primary{background:linear-gradient(135deg,var(--crimson-2),var(--crimson) 55%,var(--crimson-deep))!important;
  border-color:var(--crimson)!important;color:#fff!important;font-weight:700;
  box-shadow:0 10px 30px -8px rgba(224,16,47,.65),inset 0 1px 0 rgba(255,255,255,.25)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px -10px rgba(224,16,47,.85)}

/* ---------------- HERO ---------------- */
.hero{min-height:100svh;padding-top:150px;padding-bottom:90px;background:var(--ink-night)}
.hero-bg-img{opacity:1!important;filter:saturate(1.05) contrast(1.05)!important;object-position:70% 50%;
  animation:heroZoom 22s ease-out forwards}
@keyframes heroZoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-bg::before{background:linear-gradient(90deg,rgba(7,10,18,.96) 0%,rgba(7,10,18,.86) 34%,rgba(7,10,18,.35) 62%,rgba(7,10,18,.15) 100%),
  linear-gradient(180deg,rgba(7,10,18,.55) 0%,transparent 25%,transparent 70%,var(--ink-night) 100%)!important}
.hero-bg::after{background:radial-gradient(ellipse 50% 60% at 15% 55%,rgba(224,16,47,.22),transparent 70%)!important}
.hero-grid{opacity:.6}
.hero-canvas{opacity:.35}
.hero-inner{min-height:calc(100svh - 240px);gap:40px}
.hero-headline{max-width:760px}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:12px;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:26px}
.hero-kicker::before{content:"";width:34px;height:2px;background:var(--crimson-2)}
.hero-h1{font-family:"Noto Serif JP",serif;font-weight:900;color:#fff;line-height:1.18;letter-spacing:-.01em;margin-bottom:28px;
  text-shadow:0 4px 40px rgba(0,0,0,.6)}
.hero-h1 .l1{display:block;font-size:clamp(28px,3.6vw,52px);color:#e9e4d8;font-weight:700}
.hero-h1 .l2{display:block;font-size:clamp(40px,6.4vw,96px)}
.hero-h1 em{font-style:normal;background:linear-gradient(180deg,#fff3c9 0%,var(--gold-hi) 45%,var(--gold-mid) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{font-family:"Noto Sans JP",sans-serif;font-size:clamp(15px,1.35vw,19px);line-height:1.95;color:#d9d4c8;max-width:640px;margin-bottom:34px}
.hero-sub b{color:#fff;font-weight:700}
.hero-proof{list-style:none;display:flex;flex-wrap:wrap;gap:0;border:1px solid rgba(242,207,122,.35);background:rgba(7,10,18,.55);backdrop-filter:blur(10px);width:fit-content;max-width:100%}
.hero-proof li{padding:16px 26px;border-right:1px solid rgba(242,207,122,.25);display:flex;flex-direction:column;gap:4px}
.hero-proof li:last-child{border-right:0}
.hero-proof b{font-family:"Noto Serif JP",serif;font-weight:900;font-size:clamp(26px,2.6vw,38px);line-height:1;color:var(--gold-hi)}
.hero-proof small{font-size:.45em;margin-left:3px;color:#fff;font-weight:700}
.hero-proof span{font-family:"Noto Sans JP",sans-serif;font-size:12px;color:#c5c0b4;letter-spacing:.06em}
.hero-cta{gap:16px 18px}
.btn-hero{font-size:17px!important;padding:24px 40px!important;animation:ctaPulse 2.6s ease-in-out infinite}
@keyframes ctaPulse{0%,100%{box-shadow:0 10px 30px -8px rgba(224,16,47,.65),0 0 0 0 rgba(255,45,74,.55)}50%{box-shadow:0 10px 30px -8px rgba(224,16,47,.65),0 0 0 12px rgba(255,45,74,0)}}
.btn-line{background:#06c755!important;border-color:#06c755!important;color:#fff!important;font-weight:700}
.btn-line:hover{background:#05a948!important}
.hero-cta .cohort{flex-basis:100%;font-family:"Noto Sans JP",sans-serif!important;font-size:14px!important;letter-spacing:.03em!important;
  text-transform:none!important;color:#e6e1d5!important;margin-top:6px}
.hero-cta .cohort b{color:#fff!important;font-weight:700}
.hero-cta .cohort b.red{color:var(--crimson-2)!important}
.cohort-badge{display:inline-block;background:var(--crimson);color:#fff;font-weight:700;font-size:11px;letter-spacing:.12em;padding:3px 9px;margin-right:6px;vertical-align:1px}
.hero-ytline{color:#a9a49a!important}
.hero-host{background:rgba(7,10,18,.6)!important;border-color:rgba(242,207,122,.3)!important;margin-bottom:28px!important}
.hero-meta{color:#b7b2a6}

/* ticker & bars */
.ticker{background:#000;border-color:#1b2338}
.promo-bar{background:linear-gradient(90deg,var(--crimson-deep),var(--crimson) 50%,var(--crimson-2))}
.sticky-cta{background:rgba(7,10,18,.96);border-top:2px solid var(--crimson)}
.sc-main{background:var(--crimson)}
.nav.scrolled{background:rgba(7,10,18,.86)!important}

/* stats strip — bold numbers */
.theme-light.stats{background:#fff!important;border-bottom:1px solid #ece7dc}
.theme-light .stat-num{font-family:"Noto Serif JP",serif;font-weight:900;color:var(--crimson)}

/* photo bands */
.photo-band-cap{background:linear-gradient(180deg,transparent,rgba(7,10,18,.9) 62%)}
.photo-band-cap .k{color:var(--gold-hi)}
.photo-band--mentor img{object-position:50% 40%}

/* final CTA */
.final-cta{background:radial-gradient(ellipse 60% 80% at 50% 50%,rgba(224,16,47,.25),transparent 70%),var(--ink-night)!important}
.final-cta h2{font-family:"Noto Serif JP",serif;font-weight:900}
.footer{background:#04060b}

@media (max-width:900px){
  .hero{padding-top:130px;padding-bottom:70px}
  .hero-bg-img{object-position:72% 50%}
  .hero-bg::before{background:linear-gradient(180deg,rgba(7,10,18,.55) 0%,rgba(7,10,18,.82) 45%,rgba(7,10,18,.96) 100%)!important}
  .hero-proof{width:100%}
  .hero-proof li{flex:1 1 0;padding:12px 12px;min-width:0}
  .hero-proof span{font-size:10.5px}
  .hero-cta .btn-lg{width:100%;min-width:0}
  .btn-hero{font-size:15.5px!important;padding:20px 18px!important}
  .pc{display:none}
}
/* hero bg must stay absolute (earlier hardening rule set it relative → image collapsed) */
.hero .hero-bg{position:absolute!important;inset:0;z-index:0;overflow:hidden}
.hero .hero-bg-img{z-index:0}
.hero .hero-bg::before,.hero .hero-bg::after{z-index:1}
.hero .hero-grid{z-index:1}.hero .hero-canvas{z-index:1}
.hero-inner{z-index:3}
.hero-scroll{display:none}
@media (max-width:900px){
  .hero-meta{display:none}
  .hero-top{margin-bottom:-10px}
  .hero-host{margin-bottom:18px!important}
  .hero-bg-img{object-position:68% 30%}
  .hero-bg::before{background:linear-gradient(180deg,rgba(7,10,18,.35) 0%,rgba(7,10,18,.7) 40%,rgba(7,10,18,.94) 100%)!important}
}
/* round 3 image layout */
.photo-grid--2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.photo-grid--2{grid-template-columns:1fr}}
.photo-band img[src*="floor2"]{object-position:70% 35%}
.photo-band img[src*="propfirm"]{object-position:50% 45%}
.photo-band img[src*="seminar2"]{object-position:50% 40%}
.toolkit-hero img{filter:none!important;opacity:1!important}
.toolkit-hero::after{background:linear-gradient(180deg,transparent 62%,rgba(7,10,18,.8) 100%)!important}
/* instructor portrait: full color, lighter overlay */
.instructor-photo img{filter:saturate(1.08) contrast(1.03)!important;object-position:50% 30%}
.instructor-photo::after{background:linear-gradient(180deg,transparent 55%,rgba(7,10,18,.55) 78%,rgba(7,10,18,.9) 100%)!important}
.instructor-photo .caption{color:#fff;font-style:normal;font-family:"Noto Serif JP",serif;font-weight:700;font-size:18px}
.photo-band img[src*="taipei"]{object-position:50% 55%}
.yt-thumb img[src*="taipei"]{object-position:60% 50%}

/* ===== ZEN — glittering gold ===== */
.zen-gold{
  background:linear-gradient(100deg,#8a5a12 0%,#d9a93f 14%,#fff4c2 24%,#f2cf7a 34%,#b07a1e 48%,#ffe9a0 60%,#d4a53a 72%,#fff8d6 82%,#a8741c 100%)!important;
  background-size:250% 100%!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  color:transparent!important;-webkit-text-fill-color:transparent;
  font-weight:900!important;font-style:normal!important;
  filter:drop-shadow(0 1px 0 rgba(90,55,5,.55)) drop-shadow(0 0 14px rgba(242,207,122,.45));
  animation:zenShine 4.5s linear infinite;
  padding:0 .04em;
}
.theme-light .h-2 .em.zen-gold,.theme-dark .h-2 .em.zen-gold{background-color:transparent}
.theme-light .zen-gold{filter:drop-shadow(0 1px 0 rgba(90,55,5,.7)) drop-shadow(0 2px 6px rgba(150,100,20,.35))}
@keyframes zenShine{0%{background-position:0% 50%}100%{background-position:250% 50%}}
@media (prefers-reduced-motion:reduce){.zen-gold{animation:none}}

/* ===== Hero video loop ===== */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:none!important}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}
/* footer legal: 2 columns while 特定商取引法 is hidden */
.footer-legal{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important}
/* private mentoring: 通常価格 → 創設メンバー価格 */
.price-was{color:#8b8578;text-decoration:line-through;text-decoration-thickness:2px;font-size:.58em;font-weight:400;margin-right:12px;font-family:"Noto Sans JP",sans-serif;letter-spacing:0}
.theme-light .price-was{color:#9a9384}
.price-amt--range{display:flex;align-items:baseline;flex-wrap:wrap}
.price-off s{color:#9a9384}
/* private mentoring: price hidden, discount rate shown */
.price-amt--disc{font-family:"Noto Sans JP",sans-serif;font-weight:700;font-size:clamp(22px,2.3vw,32px);color:var(--off);letter-spacing:0}
.price-amt--disc b{font-family:"Noto Serif JP",serif;font-weight:900;color:var(--crimson);margin-left:2px}
.price-amt--disc .cur{font-size:.68em;font-weight:900}
.theme-light .price-amt--disc{color:var(--ink)}
/* instructor portrait: bright, trustworthy framing */
.instructor-photo{background:#0d1220}
.instructor-photo img{object-position:50% 22%!important;filter:saturate(1.06) contrast(1.02)!important}
.instructor-photo::after{background:linear-gradient(180deg,transparent 62%,rgba(7,10,18,.5) 80%,rgba(7,10,18,.88) 100%)!important}
.photo-band img[src*="chart-smc"]{object-position:50% 50%;height:clamp(300px,50vw,600px)}

/* =====================================================================
   GOLD TEXT — readable metallic gold (light + dark)
   ===================================================================== */
/* large display headings: metallic gold that still reads on white */
.h-2 .em.zen-gold,.hero-h1 .zen-gold{
  background:linear-gradient(100deg,#6b4708 0%,#9c6c14 16%,#e3bd63 32%,#b0841f 48%,#7d5510 62%,#dcb456 78%,#6b4708 100%)!important;
  background-size:220% 100%!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  color:transparent!important;-webkit-text-fill-color:transparent;
  -webkit-text-stroke:.4px rgba(74,47,4,.5);
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.85)) drop-shadow(0 2px 3px rgba(90,58,8,.3))!important;
  animation:zenShine 6s linear infinite;
}
/* inline gold in body copy: solid high-contrast gold + marker highlight */
b.zen-gold,.zen-gold-inline{
  background:linear-gradient(180deg,transparent 58%,rgba(226,183,74,.42) 58%)!important;
  -webkit-background-clip:border-box!important;background-clip:border-box!important;
  -webkit-text-fill-color:currentColor!important;
  color:#8a5f12!important;font-weight:700!important;
  filter:none!important;animation:none!important;padding:0 .06em;
}
.theme-dark b.zen-gold,.theme-dark .zen-gold-inline{
  background:linear-gradient(180deg,transparent 60%,rgba(242,207,122,.3) 60%)!important;
  color:#f7d98a!important;
}
/* any other faint gold body text in light sections */
.theme-light .org-lead b,.theme-light p b[style*="--gold-2"]{color:#8a5f12!important}
@media (prefers-reduced-motion:reduce){.h-2 .em.zen-gold{animation:none}}

/* ===== GOLD TEXT v2 — decisive contrast fix ===== */
/* LIGHT backgrounds: dark bronze-to-gold, never washed out */
.theme-light .h-2 .em.zen-gold,.theme-light .h-2 .em.zen-gold *{
  background:linear-gradient(100deg,#4a3003 0%,#7d5510 18%,#a9791f 34%,#7d5510 50%,#5e4008 66%,#9c6c14 82%,#4a3003 100%)!important;
  background-size:200% 100%!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  color:transparent!important;-webkit-text-fill-color:transparent;
  -webkit-text-stroke:.7px rgba(58,36,3,.55);
  filter:drop-shadow(0 1px 1px rgba(74,47,4,.35))!important;
  font-weight:900!important;animation:zenShine 7s linear infinite;
}
.theme-light b.zen-gold,.theme-light .zen-gold-inline{
  background:linear-gradient(180deg,transparent 56%,rgba(214,168,52,.55) 56%)!important;
  -webkit-background-clip:border-box!important;background-clip:border-box!important;
  -webkit-text-fill-color:#5e4008!important;color:#5e4008!important;
  font-weight:800!important;filter:none!important;animation:none!important;padding:0 .08em;
}
/* DARK backgrounds: keep the bright metallic gold */
.theme-dark .h-2 .em.zen-gold{
  background:linear-gradient(100deg,#c99a34 0%,#f2cf7a 22%,#fff3c9 36%,#e0b659 52%,#c08f28 68%,#ffe9a0 84%,#c99a34 100%)!important;
  background-size:200% 100%!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  color:transparent!important;-webkit-text-fill-color:transparent;
  -webkit-text-stroke:0;filter:drop-shadow(0 0 16px rgba(242,207,122,.4))!important;
  animation:zenShine 6s linear infinite;
}
.theme-dark b.zen-gold,.theme-dark .zen-gold-inline{
  background:linear-gradient(180deg,transparent 60%,rgba(242,207,122,.3) 60%)!important;
  -webkit-text-fill-color:#ffe08a!important;color:#ffe08a!important;font-weight:700!important;
}
/* inline gold in body copy — final: near-black bronze, heavy weight */
.theme-light b.zen-gold,.theme-light .zen-gold-inline{
  -webkit-text-fill-color:#3f2900!important;color:#3f2900!important;
  font-weight:800!important;
  background:linear-gradient(180deg,transparent 62%,rgba(226,183,74,.5) 62%)!important;
  -webkit-background-clip:border-box!important;background-clip:border-box!important;
  text-shadow:0 0 .5px rgba(63,41,0,.35);
}

/* ==== 今だけ価格（通常価格の取り消し線つき） ==== */
.price-was{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:currentColor;opacity:.68;font-weight:500;white-space:nowrap}
.price-now{font-weight:700;white-space:nowrap}
.price-now-tag{display:inline-block;font-weight:800;letter-spacing:.08em;padding:.34em .8em;border-radius:999px;background:var(--red);color:#fff;line-height:1.2;white-space:nowrap}
/* 大きな金額欄：元値とバッジを1行、今の価格を次の行にして桁落ちを防ぐ */
.price .price-was,.price-amt .price-was,.rt-price .price-was,.price-wrap .price-was{font-size:.46em}
.price .price-now-tag,.price-amt .price-now-tag,.rt-price .price-now-tag,.price-wrap .price-now-tag{font-size:.34em}
.price-amt--deal{display:flex;flex-direction:column;align-items:flex-start;gap:.14em;font-size:clamp(34px,3.2vw,52px);line-height:1.05}
.price-amt--deal .price-old{display:flex;align-items:center;flex-wrap:wrap;gap:.5em}
.price-amt--deal .price-new{display:flex;align-items:baseline;gap:.02em}
.price-amt--deal .price-now-tag{font-size:.28em}

/* ==== 料金グリッド：カード以外は全幅で別行に ==== */
.price-grid>*:not(.price){grid-column:1/-1}
.price-grid .price{min-width:0}
/* 日本語の不自然な折り返し(1文字落ち)を防ぐ */
.price-grid .price-name{font-size:clamp(26px,2.4vw,38px);word-break:auto-phrase;text-wrap:balance;overflow-wrap:break-word}
.price-grid .price-jp,.price-grid .price-list li,.price-grid .god-facts .k,.price-grid .god-facts .v{word-break:auto-phrase;overflow-wrap:break-word}

/* ==== 料金グリッド：無料 → VWAP神の線 → 神のレポート → エリート ==== */
.price-grid{grid-template-columns:1fr}

/* ==== INSTITUTIONAL FLOW バンド：動画スロット ==== */
.photo-band--video{background:#070a12}
.photo-band--video .photo-band-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;opacity:0;transition:opacity .8s ease;z-index:1}
.photo-band--video video.is-ready{opacity:1}
.photo-band--video .photo-band-fallback{position:relative;z-index:0;height:clamp(260px,44vw,520px)}
.photo-band--video .photo-band-cap{z-index:2}
@media(max-width:900px){.photo-band--video .photo-band-fallback{height:240px}}

/* ==== photo-grid の動画スロット（左＝女性が学ぶシーン） ==== */
.photo-grid figure{position:relative}
.photo-grid .pg-video{position:absolute;top:0;left:0;width:100%;aspect-ratio:16/10;height:auto;object-fit:cover;z-index:1;opacity:0;transition:opacity .8s var(--ease);pointer-events:none}
.photo-grid .pg-video.is-ready{opacity:1}
.photo-grid figure.has-video:hover img{transform:none}
@media(max-width:900px){.photo-grid .pg-video{aspect-ratio:4/3}}

/* ================= NAV: member entry (login / free signup) ================= */
.nav-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.nav-login{font-family:"Noto Sans JP",var(--f-sans);font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--off);
  padding:10px 15px;border-radius:8px;border:1px solid var(--line-strong);white-space:nowrap;transition:.2s;text-decoration:none}
.nav-login:hover{color:#fff;border-color:var(--gold-deep);text-decoration:none}
.nav-cta.nav-cta--primary{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,var(--crimson,#e0102f),#a80c22);
  color:#fff;font-family:"Noto Sans JP",var(--f-sans);font-size:14px;font-weight:600;letter-spacing:.04em;padding:11px 18px;
  border-radius:8px;border:1px solid transparent;white-space:nowrap;text-decoration:none;transition:.2s;box-shadow:0 4px 16px rgba(224,16,47,.28)}
.nav-cta.nav-cta--primary:hover{filter:brightness(1.1);color:#fff;text-decoration:none}
.nav-cta.nav-cta--primary .arr{font-size:12px;opacity:.9}
@media (max-width:1240px){
  .nav-login{display:none}
  .nav-cta.nav-cta--primary{display:inline-flex!important;padding:9px 14px;font-size:13px}
  .nav-actions{gap:6px}
}
@media (max-width:420px){
  .nav-cta.nav-cta--primary{padding:8px 11px;font-size:12.5px}
}
