:root {
  --bg: #090a0c;
  --bg-soft: #111318;
  --surface: #15181d;
  --surface-2: #1d2026;
  --ink: #f6f3eb;
  --muted: #aeb3bd;
  --paper: #f5f0e6;
  --paper-2: #fffaf0;
  --paper-ink: #16181c;
  --yellow: #ffd84a;
  --yellow-strong: #ffc928;
  --yellow-soft: #fff2a8;
  --teal: #7ee0cc;
  --red: #ff7d6e;
  --line: rgba(255,255,255,.11);
  --line-dark: rgba(18,20,24,.13);
  --shadow: 0 28px 70px rgba(0,0,0,.28);
  --radius: 26px;
  --radius-sm: 16px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 86px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 17px;
  line-height: 1.72;
  letter-spacing: -.018em;
  word-break: keep-all;
  overflow-x: hidden;
}
body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
::selection { background: var(--yellow); color: #111; }

.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 9999;
  padding: 10px 14px; border-radius: 10px; background: var(--yellow); color: #111; font-weight: 800;
}
.skip-link:focus { top: 16px; }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.section { padding: 110px 0; position: relative; }
.section.compact { padding: 78px 0; }
.section-paper { background: var(--paper); color: var(--paper-ink); }
.section-paper.alt { background: #ebe4d7; }
.section-dark { background: var(--bg); color: var(--ink); }
.section-soft { background: var(--bg-soft); color: var(--ink); }
.section-yellow { background: var(--yellow); color: #111318; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 18px; color: var(--yellow); font-size: .82rem; font-weight: 900;
  letter-spacing: .12em; text-transform: uppercase;
}
.section-paper .eyebrow { color: #665000; }
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; border-radius: 99px; }

.section-heading { max-width: 850px; margin-bottom: 48px; }
.section-heading.center { margin-inline: auto; text-align: center; }
.section-heading h2 {
  margin: 0; font-size: clamp(2rem, 4.5vw, 4rem); line-height: 1.12; letter-spacing: -.055em;
}
.section-heading p { margin: 22px 0 0; color: var(--muted); font-size: 1.08rem; max-width: 760px; }
.section-paper .section-heading p { color: #5b5d63; }
.mark { background: linear-gradient(transparent 58%, rgba(255,216,74,.74) 58%); }
.yellow { color: var(--yellow); }
.small-note { font-size: .86rem; color: var(--muted); }
.section-paper .small-note { color: #6a6c72; }

.announcement {
  min-height: 42px; display: flex; align-items: center; justify-content: center;
  background: var(--yellow); color: #17191e; font-size: .86rem; font-weight: 800; text-align: center;
  padding: 8px 18px; position: relative; z-index: 1001;
}
.announcement a { text-decoration: underline; text-underline-offset: 3px; }
.announcement .countdown { margin-left: 8px; font-variant-numeric: tabular-nums; }

.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(9,10,12,.86); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line);
}
.nav-wrap { height: 72px; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; font-weight: 950; letter-spacing: -.035em; white-space: nowrap; }
.brand-mark {
  width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: var(--yellow); color: #111; font-size: .78rem; font-weight: 950; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
}
.nav-links { margin-left: auto; display: flex; align-items: center; gap: 22px; font-size: .9rem; color: #d8dbe1; }
.nav-links a:hover { color: var(--yellow); }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.menu-toggle { display: none; margin-left: auto; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; background: transparent; cursor: pointer; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content: ""; display: block; width: 18px; height: 2px; background: #fff; margin: 4px auto; border-radius: 2px; transition: .2s ease; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 12px 20px; border-radius: 14px; border: 1px solid transparent;
  font-weight: 900; line-height: 1.2; cursor: pointer; transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn:focus-visible { outline: 3px solid rgba(255,216,74,.5); outline-offset: 3px; }
.btn-primary { background: var(--yellow); color: #111318; box-shadow: 0 12px 28px rgba(255,216,74,.18); }
.btn-primary:hover { background: var(--yellow-strong); }
.btn-dark { background: #111318; color: #fff; }
.btn-dark:hover { background: #252930; }
.btn-ghost { border-color: var(--line); color: #fff; background: rgba(255,255,255,.03); }
.btn-ghost:hover { border-color: rgba(255,216,74,.7); color: var(--yellow); }
.section-paper .btn-ghost { border-color: var(--line-dark); color: #181a1f; background: rgba(255,255,255,.4); }
.btn-small { min-height: 40px; padding: 9px 14px; font-size: .86rem; border-radius: 12px; }
.btn-link { padding: 0; min-height: 0; border: 0; background: transparent; color: inherit; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }

.hero {
  position: relative; min-height: calc(100vh - 114px); display: flex; align-items: center; overflow: hidden;
  padding: 92px 0 110px;
  background:
    radial-gradient(circle at 84% 20%, rgba(255,216,74,.16), transparent 34%),
    radial-gradient(circle at 12% 80%, rgba(126,224,204,.09), transparent 32%),
    linear-gradient(180deg, #090a0c, #0c0e12);
}
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 46px 46px; mask-image: linear-gradient(to bottom, black, transparent 78%);
}
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.12fr) minmax(360px,.88fr); align-items: center; gap: 70px; }
.hero h1 { margin: 0; font-size: clamp(2.55rem, 6vw, 5.6rem); line-height: 1.03; letter-spacing: -.072em; max-width: 840px; }
.hero-promise { margin: 26px 0 0; font-size: clamp(1.45rem, 3vw, 2.55rem); line-height: 1.25; font-weight: 950; color: var(--yellow); letter-spacing: -.045em; }
.hero-copy { margin: 24px 0 0; color: #c7cbd2; font-size: 1.05rem; max-width: 730px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-micro { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 9px; }
.chip { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border-radius: 999px; border: 1px solid var(--line); color: #d5d8de; background: rgba(255,255,255,.035); font-size: .78rem; font-weight: 750; }
.chip::before { content: "✓"; color: var(--yellow); font-weight: 950; }

.hero-proof {
  position: relative; padding: 22px; border-radius: 30px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.14); box-shadow: var(--shadow); transform: none;
}
.hero-proof::before { content: "실제 수강생 원문"; position: absolute; z-index: 2; top: -14px; left: 24px; background: var(--yellow); color: #111; border-radius: 999px; padding: 7px 12px; font-size: .72rem; font-weight: 950; letter-spacing: .02em; }
.hero-quote { margin: 4px 0 18px; font-size: 1.08rem; font-weight: 780; line-height: 1.65; }
.hero-quote strong { color: var(--yellow); }
.hero-proof-image { width:100%; border:0; padding:0; border-radius:18px; overflow:hidden; background:#000; box-shadow:0 20px 50px rgba(0,0,0,.36); cursor:zoom-in; }
.hero-proof-image img { display:block; width:100%; height:auto; max-height:560px; object-fit:contain; object-position:top center; background:#000; image-rendering:auto; }
.hero-after { margin: 16px 0 0; padding: 14px 16px; border-radius: 14px; background: rgba(255,216,74,.11); color: #f7e98d; font-size: .9rem; font-weight: 700; }

.trust-strip { padding: 24px 0; background: #111318; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trust-row { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 24px; color: #d9dce2; font-size: .88rem; font-weight: 780; text-align: center; }
.trust-row span { display: inline-flex; align-items: center; gap: 8px; }
.trust-row span::before { content: "•"; color: var(--yellow); }
.trust-row span:first-child::before { display: none; }

.change-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.change-card {
  display: flex; flex-direction: column; min-height: 100%; border-radius: 24px; overflow: hidden;
  background: var(--paper-2); border: 1px solid rgba(22,24,28,.1); box-shadow: 0 18px 40px rgba(30,25,15,.07);
}
.change-card-body { padding: 24px 24px 18px; flex: 1; }
.change-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 17px; color: #66676c; font-size: .76rem; font-weight: 850; }
.change-number { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; background: #17191e; color: var(--yellow); }
.change-card h3 { margin: 0 0 14px; font-size: 1.25rem; line-height: 1.35; letter-spacing: -.035em; }
.change-card blockquote { margin: 0; color: #33353a; font-size: .96rem; line-height: 1.65; font-weight: 650; }
.change-card blockquote::before { content: "“"; color: #b28c00; font-size: 2rem; line-height: 0; vertical-align: -.35em; margin-right: 2px; }
.change-card .source-note { margin-top: 15px; color: #77787c; font-size: .75rem; }
.change-image-button { width: 100%; border: 0; border-top: 1px solid rgba(0,0,0,.08); padding: 0; background: #0e1013; cursor: zoom-in; position: relative; }
.change-image-button img { display:block; width:100%; height:auto; max-height:620px; object-fit:contain; object-position:top center; background:#0e1013; opacity:1; transition:opacity .25s ease; }
.change-image-button:hover img { transform: scale(1.025); opacity: 1; }
/* 2026-09-19 — 이미지 위에 얹던 검은 알약을 걷어냈다.
 * 증거 위를 덮는 장식은 증거를 가린다. 「크게 보기」는 이미지 밖 한 줄로 내린다.
 * 라이트박스는 그대로다 — 눌러서 크게 보는 동작은 살아 있다. */
.change-image-button::after { content: "눌러서 원문 크게 보기"; display: block; padding: 9px 12px; background: rgba(255,255,255,.05); border-top: 1px solid rgba(255,255,255,.08); color: #9aa0ab; font-size: .72rem; font-weight: 800; letter-spacing: .01em; }
.change-actions { display: flex; justify-content: center; gap: 12px; margin-top: 34px; flex-wrap: wrap; }

.worldview { overflow: hidden; }
.worldview::before { content: "OS"; position: absolute; right: -2vw; top: 30px; font-size: min(34vw, 420px); line-height: 1; color: rgba(255,255,255,.025); font-weight: 950; letter-spacing: -.1em; pointer-events: none; }
.worldview-copy { position: relative; z-index: 1; max-width: 920px; }
.worldview-copy p { margin: 0; font-size: clamp(1.75rem, 4.2vw, 4.2rem); line-height: 1.32; letter-spacing: -.055em; font-weight: 900; }
.worldview-copy p + p { margin-top: 6px; }
.worldview-copy .quiet { color: #b2b6bf; }
.os-flow { margin-top: 52px; display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.os-node { position: relative; min-height: 96px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 16px 12px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.035); font-weight: 900; }
.os-node:not(:last-child)::after { content: "→"; position: absolute; right: -18px; z-index: 2; color: var(--yellow); font-size: 1.3rem; }

.lesson-shell { display: grid; grid-template-columns: .86fr 1.14fr; gap: 42px; align-items: stretch; }
.lesson-copy { padding: 18px 0; }
.lesson-copy h2 { margin: 0; font-size: clamp(2rem, 4.5vw, 3.7rem); line-height: 1.12; letter-spacing: -.055em; }
.lesson-copy p { color: #5c5e64; }
.lesson-card { padding: 28px; border-radius: 26px; background: #111318; color: #fff; box-shadow: 0 24px 65px rgba(0,0,0,.18); }
.lesson-scene { padding: 14px 16px; border-radius: 14px; background: rgba(255,216,74,.11); color: #ffe991; font-weight: 750; margin-bottom: 18px; }
.lesson-options { display: grid; gap: 12px; }
.lesson-option { text-align: left; padding: 17px 18px; border-radius: 15px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04); cursor: pointer; font-weight: 800; transition: .18s ease; }
.lesson-option:hover { border-color: var(--yellow); transform: translateY(-1px); }
.lesson-option.selected { border-color: var(--yellow); background: rgba(255,216,74,.14); }
.lesson-option.correct { box-shadow: inset 4px 0 0 var(--yellow); }
.lesson-result { margin-top: 18px; padding: 17px 18px; border-radius: 15px; background: #f7f2e8; color: #181a1f; min-height: 104px; }
.lesson-result strong { display: block; margin-bottom: 5px; }
.lesson-result[hidden] { display: none; }

.training-flow-line { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; margin-bottom: 32px; }
.flow-step { min-height: 84px; padding: 16px 14px; display: flex; align-items: center; justify-content: center; text-align: center; border-radius: 16px; background: rgba(255,255,255,.05); border: 1px solid var(--line); color: #e6e8ed; font-size: .86rem; font-weight: 850; position: relative; }
.flow-step:not(:last-child)::after { content: "→"; position: absolute; right: -17px; color: var(--yellow); z-index: 2; }
.evidence-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.evidence-card { border: 1px solid var(--line); border-radius: 22px; overflow: hidden; background: var(--surface); }
.evidence-head { padding: 20px 20px 16px; }
.evidence-kicker { color: var(--yellow); font-size: .73rem; font-weight: 900; letter-spacing: .08em; }
.evidence-card h3 { margin: 7px 0 8px; font-size: 1.06rem; }
.evidence-card p { margin: 0; color: #adb1ba; font-size: .83rem; line-height: 1.55; }
/* 2026-09-19 — 높이를 고정해서 자르던 것을 그만둔다.
 * height:230px + cover 는 원본 비율을 무시하고 아래를 잘라냈다. 그래서 후기가
 * 문장 중간에서 끊겼다(실측 — "…제가 교대근무라 쉬는날에" 에서 끊김).
 * 증거가 증거로 안 읽히면 그건 증거가 아니다. 이제 통째로 보여 준다.
 * 너무 긴 이미지만 화면 높이 기준으로 막고, 그때도 잘리지 않게 contain 을 쓴다. */
.evidence-image { width: 100%; border: 0; padding: 0; background: #0b0c0e; cursor: zoom-in; }
.evidence-image img { display: block; width: 100%; height: auto; max-height: 78vh; object-fit: contain; object-position: top center; background: #0b0c0e; }
.details-panel { margin-top: 28px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.025); overflow: hidden; }
.details-panel > summary { list-style: none; cursor: pointer; padding: 18px 22px; font-weight: 900; display: flex; justify-content: space-between; align-items: center; }
.details-panel > summary::-webkit-details-marker { display: none; }
.details-panel > summary::after { content: "+"; color: var(--yellow); font-size: 1.4rem; }
.details-panel[open] > summary::after { content: "−"; }
.details-content { border-top: 1px solid var(--line); padding: 22px; }
.management-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.management-grid button { border: 0; border-radius: 16px; overflow: hidden; padding: 0; cursor: zoom-in; background: #090a0c; }
.management-grid img { display: block; width: 100%; height: auto; max-height: 78vh; object-fit: contain; object-position: top center; background: #090a0c; }

.stats-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.stat-card { min-height: 190px; border-radius: 24px; border: 2px solid rgba(17,19,24,.12); padding: 26px; background: rgba(255,255,255,.25); display: flex; flex-direction: column; justify-content: space-between; }
.stat-number { font-size: clamp(3rem,7vw,6.4rem); line-height: .95; font-weight: 950; letter-spacing: -.075em; }
.stat-label { font-weight: 900; font-size: 1.05rem; }
.stat-note { color: #55513c; font-size: .8rem; }
.record-foot { margin-top: 24px; text-align: center; color: #4e4a36; font-size: .88rem; font-weight: 700; }

.outcome-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.outcome-card { border-radius: 22px; padding: 24px; background: #fffaf0; border: 1px solid var(--line-dark); }
.outcome-label { color: #8c6b00; font-size: .73rem; font-weight: 950; letter-spacing: .12em; }
.outcome-card h3 { margin: 8px 0 11px; font-size: 1.16rem; line-height: 1.4; }
.outcome-card p { margin: 0; color: #56585d; font-size: .88rem; }

.instructor-card { display: grid; grid-template-columns: .76fr 1.24fr; gap: 40px; align-items: center; border: 1px solid var(--line); border-radius: 30px; padding: 42px; background: linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.02)); }
.instructor-title { font-size: clamp(2rem,4vw,3.8rem); line-height: 1.1; letter-spacing: -.055em; margin: 0; }
.instructor-copy { color: #c1c5cc; }
.instructor-facts { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin-top: 22px; }
.fact { padding: 15px 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.035); font-size: .82rem; font-weight: 760; }

.week-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.week-card { padding: 24px; border-radius: 22px; background: var(--surface); border: 1px solid var(--line); }
.week-num { color: var(--yellow); font-size: .76rem; font-weight: 950; letter-spacing: .1em; }
.week-card h3 { margin: 8px 0 10px; font-size: 1.1rem; }
.week-card p { margin: 0; color: #adb1ba; font-size: .85rem; }

.fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 40px; }
.fit-card { padding: 28px; border-radius: 24px; border: 1px solid var(--line); background: rgba(255,255,255,.035); }
.fit-card h3 { margin-top: 0; }
.fit-card ul { margin: 0; padding-left: 1.1em; color: #c6c9d0; }
.fit-card li + li { margin-top: 8px; }
.fit-card.no { border-color: rgba(255,125,110,.3); }

.price-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 38px; }
.price-card { position: relative; padding: 28px; border-radius: 26px; border: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; min-height: 100%; }
.price-card.featured { border-color: rgba(255,216,74,.72); box-shadow: 0 0 0 1px rgba(255,216,74,.2), 0 24px 70px rgba(255,216,74,.08); }
.price-badge { position: absolute; top: -13px; right: 20px; padding: 7px 11px; background: var(--yellow); color: #111; border-radius: 999px; font-size: .72rem; font-weight: 950; }
.price-card h3 { margin: 0; font-size: 1.45rem; }
.price-sub { margin: 5px 0 20px; color: #aeb2ba; font-size: .84rem; }
.price { font-size: 2.25rem; line-height: 1; font-weight: 950; letter-spacing: -.05em; }
.price-old { margin-top: 8px; color: #8f949e; text-decoration: line-through; font-size: .86rem; }
.price-deadline { color: #f3df79; font-size: .78rem; margin-top: 8px; }
.price-card ul { margin: 24px 0; padding-left: 1.1em; color: #c6c9d0; font-size: .87rem; flex: 1; }
.price-card li + li { margin-top: 7px; }
.price-card .btn { width: 100%; }
.course-disclaimer { margin-top: 20px; text-align: center; color: #999ea8; font-size: .78rem; }
.scene-club-offer { margin-top: 18px; padding: 30px; border: 1px solid var(--line); border-radius: 26px; background: linear-gradient(135deg, rgba(255,216,74,.07), rgba(255,255,255,.025)); }
.scene-club-offer-head { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 28px; align-items: start; }
.scene-club-label { display: inline-flex; padding: 7px 11px; border-radius: 999px; background: var(--yellow); color: #111; font-size: .72rem; font-weight: 950; }
.scene-club-offer h3 { margin: 14px 0 0; font-size: 1.65rem; }
.scene-club-judgment { margin: 16px 0 0; color: #f0f1f4; font-weight: 900; }
.scene-club-price { text-align: right; }
.scene-club-rate { margin-top: 8px; color: #f3df79; font-size: .78rem; font-weight: 850; }
.scene-club-benefits { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px 28px; margin: 26px 0; padding-left: 1.1em; color: #c6c9d0; font-size: .87rem; }
.scene-club-benefits li { padding-right: 8px; }
.scene-club-offer > .btn { width: 100%; }

.faq-list { max-width: 900px; margin-inline: auto; }
.faq-item { border-bottom: 1px solid var(--line-dark); }
.faq-item summary { list-style: none; cursor: pointer; padding: 22px 4px; display: flex; justify-content: space-between; gap: 20px; font-weight: 900; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; color: #8c6b00; font-size: 1.35rem; }
.faq-item[open] summary::after { content: "−"; }
.faq-answer { padding: 0 4px 24px; color: #5b5d63; }

.archive-controls { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 22px; }
.filter-btn { padding: 9px 13px; border-radius: 999px; border: 1px solid var(--line-dark); background: transparent; color: #44464b; font-size: .78rem; font-weight: 850; cursor: pointer; }
.filter-btn.active { background: #17191e; color: var(--yellow); border-color: #17191e; }
.archive-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(235px,1fr)); gap: 14px; }
.archive-card { border: 1px solid var(--line-dark); border-radius: 18px; overflow: hidden; padding: 0; background: #fffaf0; color: #191b20; text-align: left; cursor: zoom-in; transition: transform .18s ease, box-shadow .18s ease; }
.archive-card:hover { transform: translateY(-3px); box-shadow: 0 16px 35px rgba(22,18,12,.1); }
.archive-thumb { height: 205px; background: #0c0e12; overflow: hidden; }
.archive-thumb img { width:100%; height:100%; object-fit:contain; object-position:top center; background:#0c0e12; }
.archive-caption { padding: 13px 14px 15px; font-size: .77rem; line-height: 1.5; font-weight: 700; }
.archive-category { display: block; color: #8a6b00; font-size: .66rem; font-weight: 950; letter-spacing: .08em; margin-bottom: 5px; }
.archive-empty { padding: 30px; text-align: center; color: #666; }

.final-cta { padding: 92px 0; background: var(--yellow); color: #111318; }
.final-cta-inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: center; }
.final-cta h2 { margin: 0; font-size: clamp(2.2rem,5vw,4.7rem); line-height: 1.08; letter-spacing: -.06em; }
.final-cta p { margin: 20px 0 0; max-width: 680px; color: #4d4523; font-weight: 700; }
.final-actions { display: grid; gap: 10px; }
.final-actions .btn { min-height: 58px; }

.site-footer { background: #08090b; color: #969ba5; border-top: 1px solid var(--line); padding: 44px 0 110px; font-size: .78rem; }
.footer-grid { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: end; }
.footer-brand { color: #fff; font-size: 1rem; font-weight: 900; margin-bottom: 10px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 13px; justify-content: flex-end; }
.footer-links a:hover { color: var(--yellow); }

.mobile-cta { display: none; position: fixed; z-index: 900; bottom: 0; left: 0; right: 0; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(9,10,12,.92); backdrop-filter: blur(16px); border-top: 1px solid var(--line); gap: 8px; }
.mobile-cta .btn { flex: 1; min-height: 48px; padding-inline: 10px; font-size: .82rem; }

.lightbox {
  width: min(1120px, calc(100vw - 30px)); height: min(92vh, 980px); max-width: none; max-height: none;
  padding: 0; border: 0; border-radius: 22px; background: #08090b; color: #fff; overflow: hidden; box-shadow: 0 30px 90px rgba(0,0,0,.6);
}
.lightbox::backdrop { background: rgba(0,0,0,.78); backdrop-filter: blur(6px); }
.lightbox-head { height: 58px; display: flex; align-items: center; gap: 12px; padding: 0 16px; border-bottom: 1px solid var(--line); }
.lightbox-title { flex: 1; min-width: 0; font-size: .78rem; color: #d7dae0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lightbox-close, .lightbox-nav { width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.04); cursor: pointer; }
.lightbox-close:hover, .lightbox-nav:hover { border-color: var(--yellow); color: var(--yellow); }
.lightbox-body { height: calc(100% - 58px); position: relative; display: grid; place-items: center; overflow: auto; padding: 18px 58px; }
.lightbox-image { max-width: 100%; height: auto; max-height: none; box-shadow: 0 12px 50px rgba(0,0,0,.35); }
.lightbox-nav { position: fixed; top: 50%; transform: translateY(-50%); z-index: 2; }
.lightbox-prev { left: max(18px, calc(50vw - 550px)); }
.lightbox-next { right: max(18px, calc(50vw - 550px)); }

/* Threads profile hub */
.hub-page { min-height: 100vh; background: radial-gradient(circle at 50% -10%, rgba(255,216,74,.18), transparent 34%), #090a0c; }
.hub-shell { width: min(calc(100% - 32px), 680px); margin-inline: auto; padding: 54px 0 90px; }
.hub-brand { justify-content: center; width: 100%; margin-bottom: 30px; }
.hub-hero { text-align: center; }
.hub-hero h1 { margin: 0; font-size: clamp(2.1rem,8vw,4.2rem); line-height: 1.08; letter-spacing: -.06em; }
.hub-hero p { color: #b9bdc5; margin: 18px auto 0; max-width: 570px; }
.hub-proof { margin: 30px 0 20px; padding: 24px; border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.045); text-align: left; }
.hub-proof strong { display: block; color: var(--yellow); margin-bottom: 9px; }
.hub-links { display: grid; gap: 12px; margin-top: 22px; }
.hub-link { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; min-height: 84px; padding: 18px 20px; border-radius: 20px; border: 1px solid var(--line); background: #14171b; transition: transform .18s ease, border-color .18s ease; }
.hub-link:hover { transform: translateY(-2px); border-color: rgba(255,216,74,.65); }
.hub-link.primary { background: var(--yellow); color: #111318; border-color: var(--yellow); }
.hub-link-title { display: block; font-weight: 950; font-size: 1.03rem; }
.hub-link-copy { display: block; margin-top: 4px; color: #aeb2bb; font-size: .77rem; line-height: 1.45; }
.hub-link.primary .hub-link-copy { color: #524924; }
.hub-arrow { font-size: 1.35rem; font-weight: 900; }
.hub-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 26px 0; }
.hub-mini-quotes { display: grid; gap: 10px; margin-top: 30px; }
.hub-mini-quote { padding: 16px 18px; border-left: 3px solid var(--yellow); background: rgba(255,255,255,.035); border-radius: 0 14px 14px 0; color: #d7dae0; font-size: .84rem; }
.hub-footer { margin-top: 34px; text-align: center; color: #7f848e; font-size: .72rem; }

/* Admin helper page */
.admin-page { min-height: 100vh; background: #f1ece2; color: #17191e; padding: 50px 0; }
.admin-shell { width: min(calc(100% - 36px), 900px); margin-inline: auto; }
.admin-card { background: #fffaf0; border: 1px solid rgba(20,22,26,.12); border-radius: 26px; padding: 32px; box-shadow: 0 25px 60px rgba(40,30,12,.1); }
.admin-card h1 { margin: 0; font-size: clamp(2rem,5vw,3.8rem); line-height: 1.1; letter-spacing: -.055em; }
.admin-card h2 { margin-top: 34px; }
.admin-steps { counter-reset: step; display: grid; gap: 12px; padding: 0; list-style: none; }
.admin-steps li { counter-increment: step; padding: 16px 18px 16px 54px; border-radius: 14px; background: #f1eadc; position: relative; }
.admin-steps li::before { content: counter(step); position: absolute; left: 16px; top: 15px; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #17191e; color: var(--yellow); font-weight: 900; }
.admin-warning { margin-top: 20px; padding: 16px 18px; border-radius: 14px; background: #fff2a8; font-weight: 700; }
.admin-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }

@media (max-width: 1050px) {
  .nav-links { display: none; }
  .menu-toggle { display: block; }
  .nav-actions .btn-ghost { display: none; }
  .hero-grid { grid-template-columns: 1fr; gap: 54px; }
  .hero-proof { max-width: 720px; transform: none; }
  .change-grid { grid-template-columns: repeat(2,1fr); }
  .evidence-grid, .outcome-grid, .week-grid { grid-template-columns: repeat(2,1fr); }
  .price-grid { grid-template-columns: 1fr; }
  .price-card { max-width: 720px; width: 100%; margin-inline: auto; }
  .scene-club-offer { max-width: 720px; margin-inline: auto; }
  .scene-club-offer-head { grid-template-columns: 1fr; }
  .scene-club-price { text-align: left; }
  .instructor-card { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
  body { font-size: 16px; }
  .container { width: min(calc(100% - 28px), var(--max)); }
  .section { padding: 78px 0; }
  .announcement { font-size: .72rem; }
  .announcement .countdown { display: block; margin: 2px 0 0; }
  .site-header { top: 0; }
  .nav-wrap { height: 64px; }
  .nav-actions { display: none; }
  .mobile-menu-open .nav-links { position: absolute; display: grid; top: 64px; left: 0; right: 0; padding: 20px 18px 24px; background: rgba(9,10,12,.98); border-bottom: 1px solid var(--line); }
  .mobile-menu-open .menu-toggle::before { transform: translateY(6px) rotate(45deg); }
  .mobile-menu-open .menu-toggle span { opacity: 0; }
  .mobile-menu-open .menu-toggle::after { transform: translateY(-6px) rotate(-45deg); }
  .hero { min-height: auto; padding: 72px 0 86px; }
  .hero h1 { font-size: clamp(2.5rem, 12vw, 4.1rem); }
  .hero-copy { font-size: .96rem; }
  .hero-actions .btn { width: 100%; }
  .hero-proof { padding: 18px; }
  /* 2026-09-16: 이 띠가 히어로 바로 아래로 올라왔다. 세로로 쌓이면 다섯 줄이 되어
     첫 화면과 본문 사이를 600px 밀어낸다. 좁은 폭에서는 칩처럼 접어 둔다. */
  .trust-strip { padding: 14px 0; }
  .trust-row { gap: 8px 10px; font-size: .78rem; }
  .trust-row span { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; }
  .trust-row span::before { display: none; }
  .change-grid, .stats-grid, .fit-grid { grid-template-columns: 1fr; }
  .lesson-shell { grid-template-columns: 1fr; gap: 24px; }
  .os-flow, .training-flow-line { grid-template-columns: 1fr; }
  .os-node:not(:last-child)::after, .flow-step:not(:last-child)::after { content: "↓"; right: 50%; transform: translateX(50%); bottom: -24px; top: auto; }
  .evidence-grid, .outcome-grid, .week-grid { grid-template-columns: 1fr; }
  .management-grid { grid-template-columns: 1fr 1fr; }
  .instructor-card { padding: 28px 22px; }
  .instructor-facts { grid-template-columns: 1fr; }
  .final-cta-inner { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-links { justify-content: flex-start; }
  .scene-club-offer { padding: 22px; }
  .scene-club-benefits { grid-template-columns: 1fr; }
  .mobile-cta { display: flex; }
  .site-footer { padding-bottom: 120px; }
  .lightbox-body { padding: 14px; }
  .lightbox-nav { display: none; }
  .archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .archive-thumb { height: 165px; }
}

@media (max-width: 480px) {
  .change-grid, .archive-grid, .management-grid { grid-template-columns: 1fr; }
  .hero-micro { display: grid; }
  .chip { justify-content: flex-start; }
  .change-card-body { padding: 22px 20px 16px; }
  .lesson-card { padding: 20px; }
  .stats-grid { gap: 12px; }
  .stat-card { min-height: 160px; }
  .hub-shell { padding-top: 36px; }
  .hub-link { min-height: 78px; }
  .admin-card { padding: 24px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

.mini-video-wrap{margin-top:28px}.mini-video-wrap video{display:block;width:100%;max-height:720px;border-radius:24px;background:#0b0d12;box-shadow:0 18px 50px rgba(0,0,0,.18)}


/* V5 requested-only: concise free materials page */
.freehub-page{background:#090a0c;color:#f7f3eb;padding-bottom:76px}.freehub-hero{position:relative;overflow:hidden;padding:92px 0 78px;background:radial-gradient(circle at 85% 16%,rgba(85,168,255,.16),transparent 35%),radial-gradient(circle at 18% 80%,rgba(232,163,61,.10),transparent 30%),linear-gradient(180deg,#070d19,#0a0f1e)}.freehub-hero::after{content:"";position:absolute;inset:0;opacity:.15;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px;pointer-events:none}.freehub-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:56px;align-items:center}.freehub-hero h1{margin:0;font-size:clamp(2.65rem,6vw,5.4rem);line-height:1.04;letter-spacing:-.07em}.freehub-lead{max-width:720px;margin-top:24px;color:#c7cbd2;font-size:1.08rem;line-height:1.8}.freehub-proof{padding:28px;border:1px solid rgba(85,168,255,.30);border-radius:28px;background:rgba(255,255,255,.055);box-shadow:0 26px 70px rgba(0,0,0,.35)}.freehub-proof span{display:block;color:#e8a33d;font-weight:900}.freehub-proof strong{display:block;margin:18px 0 10px;font-size:clamp(1.6rem,3.2vw,2.6rem)}.freehub-proof p{margin:0;color:#c7cbd2;line-height:1.75}.freehub-materials{padding:84px 0;background:#f4efe4;color:#15171b}.freehub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.freehub-card{position:relative;display:flex;flex-direction:column;min-height:430px;padding:32px;border:1px solid rgba(17,19,24,.12);border-radius:28px;background:#fffaf0;box-shadow:0 18px 42px rgba(35,28,12,.08)}.freehub-card.scene-card,.freehub-card.lead-card{background:#111827;color:#fff}.freehub-card.lead-card{border-color:rgba(232,163,61,.55);background:linear-gradient(155deg,#0a0f1e,#10213a)}.freehub-num{position:absolute;right:24px;top:24px;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#17191e;color:#e8a33d;font-weight:950}.freehub-card h3{margin:18px 0 14px;font-size:clamp(1.5rem,2.4vw,2.15rem);line-height:1.2;letter-spacing:-.045em}.freehub-card p:not(.eyebrow){color:#61646b;line-height:1.7}.freehub-card.scene-card p:not(.eyebrow),.freehub-card.lead-card p:not(.eyebrow){color:#bdc1c9}.freehub-card .btn{margin-top:auto;align-self:flex-start}.freehub-cta{padding:76px 0;background:#e8a33d;color:#111318}.freehub-cta .final-cta-inner{padding:0}.freehub-cta .final-cta-inner p{color:#4e381d}.freehub-cta .btn-link{color:#111318}@media(max-width:1100px){.freehub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){.freehub-hero-grid,.freehub-grid{grid-template-columns:1fr}.freehub-hero{padding:68px 0 56px}.freehub-proof{margin-top:8px}.freehub-card{min-height:330px}.freehub-page .nav-links{display:none}}

/* Exact user-supplied review originals: never crop or upscale beyond native width. */
.change-image-button img[src$="proof-40.jpeg"],.change-image-button img[src$="proof-41.jpeg"]{width:100%;height:auto!important;max-height:none!important;object-fit:contain!important;image-rendering:auto;}

/* V20_MINPATCH_FINAL: compact hub support */
.hub-more{margin-top:18px;display:grid;gap:10px}
.hub-more>strong{color:#111827;font-size:.92rem}
.hub-more a{display:block;padding:14px 16px;border:1px solid rgba(17,24,39,.13);border-radius:13px;background:#fff;color:#111827;text-decoration:none}
.hub-more a b,.hub-more a span{display:block}
.hub-more a span{margin-top:4px;color:#4b5563;line-height:1.5}
.hub-management{margin:18px 0 0;padding:14px 16px;border-radius:12px;background:#111827;color:#fff;line-height:1.6;font-weight:700}

/* 자주 나오는 질문 접이식 — 랜딩은 이 파일만 읽는다.
   같은 마크업의 스타일이 site.css 에만 있어서 랜딩에서는 아무 것도 적용되지 않았고,
   누르는 자리도 44px 아래로 내려가 있었다. */
.objection-group{margin:26px 0 10px;font-size:1.02rem;opacity:.8}
.objection{border-bottom:1px solid rgba(0,0,0,.1);background:transparent}
.objection>summary{display:flex;align-items:center;cursor:pointer;padding:14px 40px 14px 24px;min-height:44px;font-weight:600;list-style:none;position:relative}
.objection>summary::-webkit-details-marker{display:none}
.objection>summary::before{content:"Q";position:absolute;left:0;font-weight:700;opacity:.55}
.objection>summary::after{content:"+";position:absolute;right:12px;font-size:20px;opacity:.5}
.objection[open]>summary::after{content:"\2212"}
.objection>summary:hover{background:rgba(0,0,0,.03)}
.objection-body{padding:0 12px 18px 24px;line-height:1.75;background:rgba(0,0,0,.02);border-radius:0 0 8px 8px}
.objection-body blockquote{margin:12px 0;padding:12px 14px;border-left:3px solid #d4a017;background:rgba(212,160,23,.07);line-height:1.7}

/* 손가락으로 눌리는 크기를 맞춘다. */
.filter-btn{min-height:44px;padding:9px 15px}

/* 본과정 트랙과 구독 트랙을 눈으로 갈라 놓는다.
   같은 줄에 있으면 Scene Club 이 본과정의 하위 상품으로 읽힌다. */
.track-label{margin:34px 0 12px;font-size:.82rem;font-weight:900;letter-spacing:.08em;color:#8a6a2a;text-transform:none}
.scene-club-offer{margin-top:38px;padding-top:8px;border-top:2px solid rgba(138,106,42,.28)}
.price-card ul{margin:14px 0 18px;padding-left:18px;line-height:1.7}
.price-card .price{margin-top:6px}

/* 자주 나오는 질문 — 질문과 답을 눈으로 갈라 놓는다.
   전에는 둘이 같은 크기·같은 굵기라 어디까지가 질문인지 읽히지 않았다. */
.objection { border-bottom: 1px solid rgba(17,19,24,.10); margin: 0; }
.objection + .objection { margin-top: 0; }

.objection > summary {
  display: flex; align-items: center; gap: 12px;
  padding: 20px 44px 20px 30px;
  min-height: 56px;
  font-size: 1.06rem;          /* 답보다 크다 */
  font-weight: 800;            /* 답보다 굵다 */
  line-height: 1.5;
  letter-spacing: -.02em;
  color: #15171b;
  cursor: pointer;
  list-style: none;
  position: relative;
}
.objection > summary::before {
  content: "Q"; position: absolute; left: 2px; top: 20px;
  font-size: .82rem; font-weight: 900; color: #8a6a2a; opacity: .85;
}
.objection > summary::after {
  content: "+"; position: absolute; right: 14px; top: 18px;
  font-size: 22px; font-weight: 400; color: #8a6a2a; line-height: 1;
}
.objection[open] > summary { color: #8a6a2a; }
.objection[open] > summary::after { content: "\2212"; }
.objection > summary:hover { background: rgba(17,19,24,.025); }

/* 답은 본문체. 왼쪽 선으로 질문에서 떨어뜨린다. */
.objection-body {
  margin: 0 0 22px 30px;
  padding: 2px 16px 2px 18px;
  border-left: 3px solid rgba(138,106,42,.35);
  font-size: .95rem;           /* 질문보다 작다 */
  font-weight: 400;            /* 질문보다 얇다 */
  line-height: 1.85;
  color: #3f434a;
}
.objection-body blockquote {
  margin: 14px 0 0; padding: 12px 14px;
  border-left: 3px solid #d4a017; background: rgba(212,160,23,.07);
  line-height: 1.75; font-size: .92rem;
}
.objection-group {
  margin: 34px 0 6px; padding-bottom: 6px;
  font-size: .8rem; font-weight: 900; letter-spacing: .1em;
  color: #8a6a2a; text-transform: none;
}
@media (max-width: 600px) {
  .objection > summary { padding: 18px 38px 18px 26px; font-size: 1.0rem; }
  .objection-body { margin-left: 26px; padding-left: 14px; font-size: .92rem; }
}

/* 히어로 첫머리 — 고객이 하는 말을 먼저 깐다.
   우리 진단보다 앞에 와야 "내 얘기네" 가 먼저 온다. */
.hero-voice { margin: 16px 0 22px; padding-left: 16px; border-left: 2px solid rgba(232,163,61,.55); }
.hero-voice p {
  margin: 0 0 8px; font-size: 1.02rem; line-height: 1.75;
  color: #cfd4dd; letter-spacing: -.015em;
}
.hero-voice p:last-child { margin-bottom: 0; }
@media (max-width: 600px) { .hero-voice p { font-size: .96rem; } }

/* 이메일 없이 바로 여는 자료. 신청 관문을 거치는 3종과 시각적으로 구분한다. */
.freehub-direct{padding:64px 0;border-top:1px solid rgba(255,255,255,.08)}
.freehub-direct-lead{max-width:640px;margin:12px auto 0;color:#9aa3b2}
.direct-list{list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.direct-list a{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;
  min-height:64px;padding:16px 18px;border:1px solid rgba(255,255,255,.14);border-radius:14px;
  background:rgba(255,255,255,.03);
}
.direct-list a:hover{border-color:#f2c44d;background:rgba(242,196,77,.07)}
.direct-tag{font-size:12px;font-weight:900;letter-spacing:.08em;color:#f2c44d;white-space:nowrap}
.direct-name{font-weight:800}
.direct-meta{font-size:12px;color:#8b93a3;white-space:nowrap}
@media(max-width:720px){.direct-list{grid-template-columns:1fr}}

/* 자주 나오는 질문 — 접힌 상태에서 배경과 구분이 안 돼 안 읽혔다.
   질문은 카드로 띄우고 답변보다 크게, 답변은 왼쪽 선으로 분리한다. */
.objection{
  margin:0 0 10px;
  border:1px solid rgba(17,19,24,.14);
  border-bottom:1px solid rgba(17,19,24,.14);
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 2px rgba(17,19,24,.04);
  overflow:hidden;
}
.objection + .objection{margin-top:0}
.objection > summary{
  padding:20px 44px 20px 30px;
  font-size:1.08rem;
  font-weight:800;
  line-height:1.5;
  color:#151c2d;
}
.objection > summary::before{left:12px;color:#c07a12;opacity:1;font-weight:800}
.objection > summary::after{right:16px;opacity:.75;font-weight:700}
.objection > summary:hover{background:rgba(192,122,18,.05)}
.objection[open] > summary{background:rgba(192,122,18,.07);color:#151c2d}
.objection-body{
  margin:0 16px 16px 30px;
  padding:14px 0 0 16px;
  border-left:3px solid rgba(192,122,18,.4);
  border-radius:0;
  background:transparent;
  font-size:.97rem;
  font-weight:400;
  line-height:1.85;
  color:#3a4152;
}

/* 랜딩 하단 — 상품설명·갈래·한계·규칙이 한 덩어리였다. 카드 넷으로 끊는다.
   카드마다 굵게 강조는 하나까지. */
.choice-cards{display:grid;gap:18px;margin:38px 0 46px}
.choice-card{
  padding:30px;
  border:1px solid rgba(17,19,24,.12);
  border-radius:18px;
  background:#fff;
  box-shadow:0 2px 10px rgba(17,19,24,.05);
}
.choice-card > h3{
  margin:0 0 20px;
  font-size:clamp(20px,2.4vw,26px);
  letter-spacing:-.03em;
  line-height:1.4;
}
.choice-foot{margin:20px 0 0;padding-top:16px;border-top:1px solid rgba(17,19,24,.08);color:#4a5164;line-height:1.75}

/* 카드 1 — 두 갈래 */
.choice-fork{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice-fork article{padding:22px;border:1px solid rgba(17,19,24,.14);border-radius:14px;background:#fbfaf7}
.choice-fork b{display:block;font-size:1.06rem;line-height:1.45}
.choice-arrow{
  display:inline-block;margin:10px 0 12px;padding:5px 12px;border-radius:999px;
  background:#151c2d;color:#fff;font-size:.86rem;font-weight:800;
}
.choice-arrow::before{content:"→ "}
.choice-fork p{margin:0;color:#4a5164;line-height:1.75}

/* 카드 2 — 되는 것 / 안 되는 것 */
.choice-warn{margin:0 0 18px;line-height:1.6}
.choice-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice-two article{padding:20px;border-radius:14px}
.choice-two.is-none{display:none}
.choice-two .is-yes{background:#eef7f0;border:1px solid #bfe0c9}
.choice-two .is-no{background:#f2f3f5;border:1px solid #d9dce1}
.choice-tag{display:block;margin-bottom:12px;font-size:.82rem;font-weight:900;letter-spacing:.06em}
.choice-two .is-yes .choice-tag{color:#1d6b39}
.choice-two .is-no .choice-tag{color:#5b6270}
.choice-two ul{margin:0;padding-left:1.1em;display:grid;gap:9px;line-height:1.7;color:#2b3141}

/* 카드 3 — 운영 흐름 */
.choice-flow{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.choice-flow li{display:grid;grid-template-columns:130px 1fr;gap:14px;align-items:baseline;padding:14px 16px;border-radius:12px;background:#f7f6f2}
.choice-flow b{color:#151c2d}
.choice-flow span{color:#4a5164;line-height:1.7}
.choice-split{margin-top:18px;display:grid;gap:10px}
.choice-split p{margin:0;padding-left:14px;border-left:3px solid rgba(17,19,24,.18);color:#3a4152;line-height:1.75}

/* 카드 4 — 묶어두지 않습니다 */
.choice-checks{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.choice-checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:baseline;color:#2b3141;line-height:1.7}
.choice-checks li::before{content:"✓";color:#1d6b39;font-weight:900}
.choice-detail{margin-top:22px}

@media(max-width:760px){
  .choice-card{padding:22px}
  .choice-fork,.choice-two{grid-template-columns:1fr}
  .choice-flow li{grid-template-columns:1fr;gap:4px}
}

/* 히어로 독백 — 고객의 말이라 왼쪽 세로선 하나로 네 줄을 묶는다.
   1행은 상황이라 톤을 낮추고, 2행(고통이 완성되는 자리)만 강조한다. */
.hero-voice{margin:20px 0 30px;padding-left:20px;border-left:3px solid rgba(232,163,61,.6)}
/* 앞선 .hero-voice p 규칙이 더 구체적이라 이긴다. 여기서 다시 잡는다. */
.hero-voice p.hero-voice-label{
  margin:0 0 16px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.14em;
  color:rgba(255,255,255,.42);
}
.hero-voice ul{list-style:none;margin:0;padding:0;display:grid;gap:20px}
.hero-voice li{display:grid;gap:3px}
.hv-situation{font-size:1.02rem;line-height:1.55;color:rgba(255,255,255,.6)}
.hv-pain{font-size:1.14rem;line-height:1.5;font-weight:800;color:#f2c44d;letter-spacing:-.01em}
@media(max-width:760px){
  .hero-voice{margin:18px 0 26px;padding-left:16px}
  .hero-voice ul{gap:17px}
  .hv-situation{font-size:.95rem}
  .hv-pain{font-size:1.06rem}
}
/* 카드는 흰 배경인데 제목·강조가 어두운 섹션용 크림색을 물려받아 명도비 1.11 이었다.
   흰 배경에 맞는 색을 여기서 못 박는다. */
.choice-card h3,
.choice-card .choice-fork b,
.choice-card .choice-warn strong{color:#151c2d}

/* A-1 히어로 최상단 — 신청자의 말이 먼저 오고, 진단이 첫 행동이 된다. */
.hero-wish{margin:18px 0 26px;padding:22px 24px;border-left:3px solid #f2c44d;background:rgba(242,196,77,.08);border-radius:0 14px 14px 0}
.hero-wish blockquote{margin:0;font-size:1.16rem;line-height:1.65;font-weight:700;color:#fff}
.hero-wish figcaption{margin-top:10px;font-size:.86rem;color:rgba(255,255,255,.5)}
.hero-wish-bridge{margin:16px 0 0;color:rgba(255,255,255,.78);line-height:1.7}
.hero-wish-cta{margin-top:16px}

/* A-2 긴 후기는 두 줄만 두고 나머지는 접는다. */
.hero-quote-more{margin-top:14px}
.hero-quote-more > summary{
  cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;
  min-height:44px;font-size:.9rem;font-weight:800;color:#f2c44d;
}
.hero-quote-more > summary::-webkit-details-marker{display:none}
.hero-quote-more > summary::after{content:"▾"}
.hero-quote-more[open] > summary::after{content:"▴"}
.hero-quote-full{padding-left:14px;border-left:2px solid rgba(255,255,255,.16)}
.hero-quote-full p{margin:0 0 12px;line-height:1.8;color:rgba(255,255,255,.8);font-size:.95rem}
.hero-quote-full p:last-child{margin-bottom:0}

/* A-3 통행료 서사 — 담론은 여기까지. */
.toll-inner{max-width:60ch}
.toll-inner h2{font-size:clamp(26px,4vw,44px);line-height:1.25;letter-spacing:-.04em;margin:0 0 24px}
.toll-inner p{margin:0 0 16px;font-size:1.06rem;line-height:1.85;color:#3a4152}
.toll-slogan{margin-top:24px !important;padding-top:20px;border-top:1px solid rgba(17,19,24,.12);font-weight:800;color:#151c2d !important}

/* A-4 인스트럭터 도입 */
.instructor-lead{margin:12px 0 0;font-size:1.02rem;line-height:1.75;color:rgba(255,255,255,.7)}

/* A-5 가격 카드 세부는 접는다. */
.price-more{margin-top:14px}
.price-more > summary{
  cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;
  min-height:44px;font-size:.86rem;font-weight:800;opacity:.8;
}
.price-more > summary::-webkit-details-marker{display:none}
.price-more > summary::after{content:"▾"}
.price-more[open] > summary::after{content:"▴"}
.price-more-body{padding-left:12px;border-left:2px solid rgba(17,19,24,.14)}
.price-more-body p{margin:0 0 10px;font-size:.9rem;line-height:1.75;opacity:.85}
.price-more-body p:last-child{margin-bottom:0}

/* A-6 본문 폭 — 줄이 길면 길어 보인다. 문단 폭을 60자로 묶는다. */
.toll-inner p,.instructor-lead,.choice-foot,.choice-split p{max-width:60ch}

/* 히어로 정체 한 줄 — 라벨이 아니라 읽히는 문장으로. */
.hero-identity{margin:20px 0 24px;font-size:1.14rem;line-height:1.6;color:rgba(255,255,255,.82)}
.hero-identity b{color:#fff}

/* 19일 녹음 비교 — 스크롤 초반의 시각 앵커. 텍스트 후기보다 위에 온다. */
.recording-proof{background:#0b1120;color:#fff}
.recording-proof h2{color:#fff}
.rec-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.rec-stat{padding:26px 20px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.04);text-align:center}
.rec-label{display:block;margin-bottom:14px;font-size:.86rem;font-weight:800;letter-spacing:.08em;color:rgba(255,255,255,.55)}
.rec-numbers{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap}
.rec-before{font-size:clamp(20px,2.4vw,26px);font-weight:700;color:rgba(255,255,255,.45);text-decoration:line-through;text-decoration-thickness:2px}
.rec-arrow{color:rgba(255,255,255,.4)}
.rec-after{font-size:clamp(34px,4.4vw,52px);font-weight:950;letter-spacing:-.03em;color:#f2c44d}
.rec-caption{margin:22px auto 0;max-width:60ch;text-align:center;font-size:.88rem;color:rgba(255,255,255,.5)}
@media(max-width:760px){.rec-stats{grid-template-columns:1fr;gap:10px}.rec-stat{padding:20px}}

/* "그리고 이렇게 바뀝니다" — 카드 그리드 연속을 끊는 화살표 목록. 변화 진술만 남는다. */
.shift-list{list-style:none;max-width:640px;margin:30px auto 0;padding:0;display:grid;gap:14px}
.shift-list li{
  display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:baseline;
  font-size:1.06rem;font-weight:700;line-height:1.6;
}
.shift-list li::before{content:"→";color:#f2c44d;font-weight:900}

/* 가격표 앞 트랙 구분을 시각 앵커로 키운다. */
.track-label{
  display:block;margin:56px 0 20px;padding-top:34px;border-top:1px solid rgba(17,19,24,.14);
  font-size:clamp(19px,2.3vw,24px);font-weight:850;letter-spacing:-.02em;color:#151c2d;
}

/* 대기 등록 — 가격 아래 한 줄. */
.waitlist-cta{margin:34px 0 10px;padding:22px 24px;border:1px dashed rgba(17,19,24,.25);border-radius:14px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.waitlist-cta p{margin:0;font-weight:700}
@media(max-width:640px){.waitlist-cta{display:grid}.waitlist-cta .btn{width:100%}}

/* 접힌 섹션 — 제목 한 줄만 보이고 내용은 펼쳐야 나온다. */
.section-fold > summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;
  min-height:56px;padding:0 20px;border:1px solid rgba(17,19,24,.16);border-radius:14px;
  background:#fff;font-size:1.12rem;font-weight:850;color:#151c2d;
}
.section-fold > summary::-webkit-details-marker{display:none}
.section-fold > summary::after{content:"▾";margin-left:auto;opacity:.6}
.section-fold[open] > summary::after{content:"▴"}
.section-fold-body{padding-top:20px}
.section-dark .section-fold > summary,.worldview .section-fold > summary{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.2)}

/* 가격 3줄 */
.price-compact{display:grid;gap:12px;margin:26px 0}
.pc-row{
  display:grid;grid-template-columns:120px 1fr auto;gap:16px;align-items:center;
  padding:20px 22px;border:1px solid rgba(17,19,24,.14);border-radius:14px;background:#fff;
}
.pc-row b{font-size:1.06rem}
.pc-row span{color:#4a5164;line-height:1.6}
.pc-row strong{font-size:1.06rem;white-space:nowrap}
@media(max-width:760px){.pc-row{grid-template-columns:1fr}.pc-row strong{justify-self:start;white-space:normal}}
.price-fold{margin:8px 0 20px}
.wish-section .hero-wish{border-left:3px solid #d8a33d;background:rgba(216,163,61,.07);padding:22px 24px;border-radius:0 14px 14px 0}
.wish-section .hero-wish blockquote{margin:0;font-size:1.1rem;line-height:1.65;font-weight:700}
.hero-proof-line{display:flex;align-items:center}
.hero-proof-line a{color:#f2c44d;font-weight:800;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}
/* 인용 섹션으로 옮긴 고통 3줄 — 밝은 배경에 맞춘다. */
.wish-section .hero-voice{margin:26px 0 0;border-left-color:rgba(192,122,18,.55)}
.wish-section .hero-voice p.hero-voice-label{color:rgba(17,19,24,.45)}
.wish-section .hv-situation{color:rgba(17,19,24,.55)}
.wish-section .hv-pain{color:#c07a12}
.wish-section .hero-copy{color:#3a4152;max-width:60ch}
.wish-section .hero-micro .chip{background:#fff;border:1px solid #ddd4c6;color:#151c2d}
.wish-section .hero-micro{margin:18px 0 26px}

/* ---- 대비 교정 2026-08-19 — 섹션 재배치로 배경 맥락이 바뀐 텍스트. 전 항목 axe 4.5:1 통과 값 ---- */
.wish-section .hero-copy{color:#c9d4e4}
.wish-section .hero-copy b,.wish-section .hero-copy strong{color:#f4f7fb}
.wish-section .hero-copy a{color:#c9d4e4}
.wish-section .hero-voice-label{color:#9fb0c8}
.wish-section .hv-situation{color:#c9d4e4}
#pain .record-foot,#goal .record-foot,#closing .record-foot{color:#cfc9b4}
.change-card .change-card-body h3{color:#1f2735}
.change-card .change-meta .chip{color:#3f4756}
.source-note{color:#5f6064}
#record .eyebrow{color:#4a3a05}
.price-compact .pc-row b,.price-compact .pc-row strong{color:#151a24}
.section-fold-body .track-label{color:#dbe4f0}
#objections .objection-group{color:#d9b36a}
.final-cta .btn-ghost{color:#171c26;border-color:#171c26}
.wish-section .hero-voice p.hero-voice-label{color:#9fb0c8}
.change-card .change-card-body .source-note{color:#5f6064}
.hero-reviews{border:1px solid rgba(91,166,242,.3);border-radius:14px;padding:18px 20px;margin:22px 0}
.hero-reviews,.hero-reviews blockquote{color:#c9d4e4}
.hero-reviews strong{color:#f4f7fb}
.hero-reviews .source-note,.hero-reviews .source-note a{color:#c9d4e4}
.hero-proof .source-note,.hero-proof .source-note a{color:#c9d4e4}
.hero-apply-quote{margin:14px 0 0;padding:12px 14px;border-left:2px solid rgba(255,216,74,.5);background:rgba(255,255,255,.04);border-radius:0 10px 10px 0}
.hero-apply-quote blockquote{margin:0;color:#c9d4e4;font-size:.88rem;line-height:1.7}
.hero-apply-quote figcaption{margin-top:8px;color:#9fb0c8;font-size:.78rem}
.hero-limit{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}
.hero-limit-head{margin:0 0 10px;color:#f4f7fb;font-size:1rem;font-weight:900}
.hero-limit p{margin:0 0 10px;color:#c9d4e4;font-size:.95rem;line-height:1.75}
.hero-limit blockquote{margin:12px 0 14px;padding-left:14px;border-left:2px solid rgba(255,216,74,.55);color:#c9d4e4;font-size:.9rem;line-height:1.75}
.hero-limit a{color:#ffd84a;text-decoration:underline;text-underline-offset:3px}
.hero-limit .hero-proof-image{margin-bottom:12px}
.hero-more-proof{margin-top:22px}
.hero-more-head{margin:0 0 12px;color:#f4f7fb;font-size:.95rem;font-weight:900}
.hero-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hero-more-item{display:block;width:100%;padding:12px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.04);color:#c9d4e4;text-align:left;cursor:zoom-in}
.hero-more-item:hover{border-color:rgba(255,216,74,.55)}
.hero-more-item img{display:block;width:100%;height:118px;object-fit:cover;object-position:top center;border-radius:10px;background:#000;margin-bottom:10px}
.hero-more-quote{display:block;font-size:.88rem;line-height:1.65}
.hero-more-tag{display:block;margin-top:8px;color:#ffd84a;font-size:.74rem;font-weight:900;letter-spacing:.05em}
@media(max-width:800px){.hero-more-grid{grid-template-columns:1fr}}

/* ── 증거 섹션 (2026-08-24 신설) ─────────────────────────────────────────
 * 3절이 "시장이 이렇다" 는 진단이라면 여기는 "내가 했다" 는 증명이다.
 * 비포애프터는 누구나 올린다. 여기 남은 건 못했을 때의 기록이 안 지워졌다는 것이다.
 */
#evidence .ev-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px auto 0;max-width:640px}
#evidence .ev-stats article{padding:22px 12px;border:1px solid rgba(232,163,61,.42);border-radius:14px;background:rgba(232,163,61,.08);text-align:center}
#evidence .ev-stats strong{display:block;font-size:clamp(30px,6vw,44px);font-weight:900;letter-spacing:-.03em;color:#e8a33d;line-height:1.1}
#evidence .ev-stats span{display:block;margin-top:6px;font-size:.9rem;color:#c4cfdd}
#evidence .ev-fail{margin:34px auto 0;max-width:640px;padding:24px 26px;border-left:3px solid #e8a33d;background:rgba(255,255,255,.04)}
#evidence .ev-lead{margin:0 0 8px;font-size:clamp(17px,3vw,21px);letter-spacing:-.02em}
#evidence .ev-desc{margin:0 0 16px;color:#a9b6c8;line-height:1.7}
#evidence .ev-soon{display:inline-block;padding:11px 20px;min-height:44px;line-height:22px;border:1px dashed rgba(232,163,61,.6);border-radius:10px;color:#a9b6c8;font-size:.92rem}
#evidence .ev-story{margin:30px auto 0;max-width:640px;line-height:2}
#evidence .ev-story p{margin:0}
#evidence .ev-zero{margin-top:10px !important;font-size:clamp(17px,3vw,21px);letter-spacing:-.02em}
#evidence .ev-zero b{color:#e8a33d}
#evidence .ev-frame{margin:30px auto 0;max-width:640px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);color:#c4cfdd;line-height:1.9}
#evidence .ev-frame b{color:#f4f7fb}
@media(max-width:520px){#evidence .ev-stats{grid-template-columns:1fr;gap:10px}}

/* 대표 서사 (D-3, 2026-08-29) — teacher·evidence 뒤 6번 슬롯 */
/* 대표 서사는 #teacher 하나로 합쳤다(2026-09-16). 마무리 한 줄 자리만 남긴다. */
#teacher .founder-story-close{margin-top:26px !important;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);color:#f4f7fb;font-weight:800;font-size:1.06rem}

/* 좌석·진입 시점 블록 (12번 슬롯) — 날짜는 시트 → recruitment-config 로만 채워진다 */
#seats .seat-entry{max-width:560px;margin:0 auto;border:1px solid var(--line);border-radius:22px;padding:26px 28px;background:var(--surface)}
#seats .seat-entry .hero-copy{margin:0 0 10px;line-height:1.7}
#seats .seat-entry .hero-copy:last-child{margin-bottom:0}
#seats [data-status-live] b,#seats [data-status-intensive] b,#seats [data-status-dates] b{color:var(--yellow)}

/* 신청 3단계 안내 (2026-08-29) — 신청 CTA 바로 위 */
#apply-steps .apply-steps-list{max-width:560px;margin:0 auto;padding:0;list-style:none;counter-reset:step}
#apply-steps .apply-steps-list li{counter-increment:step;position:relative;padding:16px 18px 16px 58px;margin:0 0 12px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
#apply-steps .apply-steps-list li::before{content:counter(step);position:absolute;left:18px;top:16px;width:26px;height:26px;border-radius:50%;background:var(--yellow);color:#151b26;font-weight:900;font-size:.9rem;display:flex;align-items:center;justify-content:center}
#apply-steps .apply-steps-list b{display:block;margin-bottom:4px}
#apply-steps .apply-steps-list span{color:#adb1ba;font-size:.9rem;line-height:1.6}

/* 가격 상단 길잡이 한 줄 (2026-08-29) */
/* 2026-09-18 — 파는 것은 ENGLISH OS 하나이고 아래는 플랜이라는 것을 가격 앞에서 먼저 말한다.
   새 라이브러리도 새 색도 쓰지 않는다. 있는 토큰만 쓴다. */
.price-plan-note{max-width:640px;margin:0 auto 14px;text-align:center;line-height:1.7;font-size:15px;color:var(--muted,#6b7280)}
.price-plan-note b{color:inherit}
.price-guide{max-width:640px;margin:0 auto 26px;padding:16px 20px;border-left:3px solid var(--yellow);background:var(--surface);border-radius:0 14px 14px 0;line-height:1.8}

/* 안 맞는 경우 하단 포지션 문구 (2026-08-29) — 6석은 규모가 아니라 상품 정의라는 선 긋기 */
#fit .fit-position{margin:26px 0 0;padding:18px 20px;border-left:3px solid var(--yellow);background:var(--surface);border-radius:0 14px 14px 0}
#fit .fit-position p{margin:0 0 12px;line-height:1.8;color:#c4cfdd}
#fit .fit-position p:last-child{margin-bottom:0}
#fit .fit-position b{color:#f4f7fb}

/* 한눈 카드 (2026-08-29 가격 확정) — 히어로 바로 아래, 정보만 압축 */
#glance .glance-card{max-width:620px;margin:0 auto;border:1px solid var(--line);border-radius:22px;padding:26px 28px;background:var(--surface)}
#glance .glance-start{margin:0 0 18px;text-align:center;font-size:1.02rem}
#glance .glance-start b{color:var(--yellow)}
#glance .glance-label{margin:14px 0 6px;color:#8b93a2;font-size:.78rem;font-weight:900;letter-spacing:.08em}
#glance .glance-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
#glance .glance-row>b{flex:0 0 118px}
#glance .glance-price{font-weight:800}
#glance .glance-price s{color:#8b93a2;font-weight:400;margin-right:2px}
#glance .glance-seat{color:var(--yellow);font-weight:800;font-size:.85rem}
#glance .glance-note{color:#adb1ba;font-size:.85rem;margin-left:auto}
#glance .glance-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px}

/* 결제 안내 4줄 (cc-4) · 취소선 정가 · 후기 3층 숫자 한 줄 */
.choice-pay{margin:0 0 14px;line-height:1.8;color:#333c48}
.price-was,.pc-row s{color:#5a6270;font-weight:400}
.pg-row s{color:#8b93a2;font-weight:400}
.review-tally{margin:18px 0 0;text-align:center;color:#5a6270;font-size:.92rem}

/* 2026-08-29 2차 — 최종 신청 문구·결제 안내·cc-1 4상품 표 */
.final-cta .final-copy p{margin:14px 0 0;line-height:1.8}
.final-cta .final-copy-close{margin-top:20px !important}
.price-pay-note{max-width:640px;margin:14px auto 0;text-align:center;color:#c4cfdd;line-height:1.8}
.choice-two article ul{margin:8px 0 0;padding-left:18px}
.choice-two article ul li{margin:0 0 8px;line-height:1.6}
.choice-two article:not(.is-yes):not(.is-no){background:#f6f3ec;border:1px solid #e3dccd}
.choice-two article:not(.is-yes):not(.is-no) .choice-tag{color:#333c48}

/* 자동 날짜 렌더 (2026-08-29) — 집중반 첫 세션·휴강 안내 */
#glance .glance-intensive{margin:0 0 16px;text-align:center;color:#adb1ba;font-size:.9rem}
#glance .glance-intensive b{color:#f4f7fb}
.price-first-session{margin:8px 0 0;color:#5a6270;font-size:.88rem}
.seat-suspension{margin-top:12px !important;padding:12px 14px;border-radius:12px;background:rgba(255,216,74,.1);border:1px solid rgba(255,216,74,.35)}
.pg-status-row[data-suspension]{color:#e8a33d}

/* 후기 1층 — 한 줄 발췌 카드 (2026-08-30). 문구가 채워지기 전에는 hidden 이라 안 보인다. */
/* 2026-09-16: 카드가 넷이 됐다. 셋 고정이면 넷째가 혼자 한 줄을 차지한다. */
.review-pull{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 26px}
.review-pull[hidden]{display:none}
.review-pull-card{padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.review-pull-card blockquote{margin:0;font-size:1.02rem;line-height:1.7;color:#f4f7fb}
.review-pull-start{margin:12px 0 0;color:#8b93a2;font-size:.85rem}
@media(max-width:980px){.review-pull{grid-template-columns:1fr}}
/* 질문 바로 아래에 그 말을 받쳐 주는 실물 한 장으로 가는 자리 */
.objection-proof{margin:16px 0 0}

/* 주간 리듬 — 네 반 공통 (2026-08-30) */
.week-rhythm{margin:20px 0 0;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.week-rhythm>b{display:block;margin-bottom:12px}
.week-rhythm ul{margin:0;padding:0;list-style:none}
.week-rhythm li{display:flex;gap:14px;padding:7px 0;border-top:1px solid var(--line);line-height:1.6}
.week-rhythm li:first-child{border-top:0}
.week-rhythm .wr-when{flex:0 0 88px;font-weight:800;color:var(--yellow)}
.week-rhythm small{display:block;margin-top:12px;color:#8b93a2;line-height:1.6}

/* 가격 섹션의 공통 구성 블록 — 이 클래스들에 스타일이 없었다.
 * <b> 와 <span> 이 나란히 흘러서 "장면 과제 주 2회답을 보기 전에" 처럼 붙어 보였다.
 * 프로그램 페이지의 같은 블록(.pg-common)과 같은 모양으로 맞춘다. */
.price-common { margin: 0 0 28px; padding: 24px 22px; border: 1px solid rgba(255,216,74,.4); border-radius: 18px; background: rgba(255,216,74,.06); }
.pc-head { margin: 0 0 16px; font-size: 1.05rem; font-weight: 800; letter-spacing: -.02em; }
.pc-common-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.pc-common-grid article { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.pc-common-grid b { display: block; margin-bottom: 5px; font-size: .98rem; }
.pc-common-grid span { display: block; color: #c6c9d0; font-size: .88rem; line-height: 1.6; }
.pc-diff { margin: 18px 0 0; font-size: clamp(15px,2.2vw,19px); font-weight: 800; letter-spacing: -.02em; color: #ffd84a; }

/* ── 재정렬로 새로 생긴 섹션들 ───────────────────────────────────────────
   전부 기존 토큰(--yellow · --line · --surface · --ink)만 쓴다.
   새 색·새 폰트·새 간격 체계를 만들지 않는다. */

/* .record-foot 은 기본이 밝은 바탕용 어두운 글씨다(#4e4a36).
   어두운 섹션에 그대로 쓰면 안 보인다. 기존 #pain 처럼 새 섹션도 같이 밝게 잡는다. */
#reframe .record-foot, #diagnosis-cta .record-foot, #why-old .record-foot,
#check .record-foot { color: #cfc9b4; }

/* 증상 5개 · 대조 4쌍 — 4칸 고정이면 5번째가 혼자 남는다. 내용 수에 맞춰 채운다. */
#pain .evidence-grid, #why-old .evidence-grid { grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); }
.evidence-note { margin: 10px 0 0 !important; padding-top: 10px; border-top: 1px solid var(--line); }
.evidence-note b { color: var(--yellow); }
#why-old .evidence-card { padding: 18px 20px; }
#why-old .evidence-head { padding: 0; }

/* 훈련 7단계 — 7번만 다르게. 나머지 여섯은 같은 무게로 둔다. */
.train-loop { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 12px;
  grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); }
.train-loop li { position: relative; padding: 18px 20px; border: 1px solid var(--line);
  border-radius: 18px; background: var(--surface); }
.train-loop li.is-pivot { border-color: var(--yellow); background: rgba(255,216,74,.08); }
.loop-n { display: block; margin-bottom: 8px; color: var(--muted); font-size: .74rem;
  font-weight: 900; letter-spacing: .08em; font-variant-numeric: tabular-nums; }
.train-loop li.is-pivot .loop-n { color: var(--yellow); }
.train-loop b { display: block; font-size: 1rem; line-height: 1.45; margin-bottom: 6px; }
.train-loop em { display: block; font-style: normal; color: #adb1ba; font-size: .83rem; line-height: 1.55; }
.train-foot { margin: 22px 0 0; padding: 16px 20px; border-left: 3px solid var(--yellow);
  background: rgba(255,216,74,.07); border-radius: 0 14px 14px 0; line-height: 1.9; color: var(--ink); }
.train-foot b { color: var(--yellow); }

/* 막힌 건 다시 돌아옵니다 — .section-yellow 위라 글자는 어둡다.
   한 줄씩 아래로 떨어지는 모양이라 순서가 그냥 읽힌다. */
.track-flow { list-style: none; margin: 28px auto 0; padding: 0; max-width: 620px; }
.track-flow li { position: relative; padding: 14px 18px 14px 34px; margin: 0 0 8px;
  border-radius: 14px; background: rgba(17,19,24,.07); }
.track-flow li::before { content: "↓"; position: absolute; left: 13px; top: 15px;
  font-weight: 900; color: rgba(17,19,24,.45); }
.track-flow li:first-child::before { content: "·"; }
.track-flow li.is-last { background: #111318; color: var(--ink); }
.track-flow li.is-last::before { color: var(--yellow); }
.track-flow b { display: block; font-size: 1rem; line-height: 1.5; }
.track-flow em { display: block; font-style: normal; margin-top: 3px; font-size: .85rem;
  color: rgba(17,19,24,.62); line-height: 1.5; }
.track-flow li.is-last em { color: #adb1ba; }
@media (max-width: 640px) { .track-flow li { padding: 13px 15px 13px 30px; } }

/* 2026-09-18 — 한 장면 먼저 보여 주는 카드(#taste). 새 색·새 라이브러리 없이 있는 토큰만 쓴다. */
.taste-card{max-width:720px;margin:0 auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}
.taste-row{display:grid;grid-template-columns:132px 1fr;gap:14px;padding:16px 20px;border-top:1px solid var(--line)}
.taste-row:first-child{border-top:0}
.taste-label{color:var(--muted);font-size:.8rem;font-weight:800;line-height:1.5}
.taste-row p{margin:0;line-height:1.7}
.taste-said{color:#adb1ba;text-decoration:line-through;text-decoration-thickness:1px}
.taste-better{color:var(--yellow);font-weight:800}
.taste-note{max-width:720px;margin:18px auto 26px;color:var(--muted);font-size:.9rem;line-height:1.8;text-align:center}
@media(max-width:640px){.taste-row{grid-template-columns:1fr;gap:6px;padding:14px 16px}}

/* 2026-09-18 — 한 섹션 안에서 덩어리를 가르는 줄. 같은 배경을 쓰던 섹션 넷·셋을
   하나로 합치면서 생겼다. 섹션을 새로 만들지 않고 숨만 쉬게 한다. */
.sec-rule{width:min(var(--max),calc(100% - 40px));margin:64px auto;border:0;border-top:1px solid var(--line)}
.section-compact .sec-rule{margin:48px auto}
@media(max-width:640px){.sec-rule{margin:40px auto}}
/* review-us 후기 한 장을 #changes 안으로 옮겼다. 폭만 맞춘다 — 카드 모양은 그대로다. */
.review-us-slot{margin:34px 0 6px}
.review-us-slot .change-card{max-width:760px;margin-inline:auto}

/* ── 증거 사진 카드 (2026-09-19 · 랜딩 재구성) ────────────────────────────
 *
 * 규칙 하나 — 증거를 자르지 않는다.
 * 그 전에는 높이를 고정하고 cover 로 잘라서, 후기가 문장 중간에서 끊겼다.
 * 여기서는 원본 비율 그대로 둔다. 너무 긴 것만 화면 높이로 막고 그때도 contain 이다.
 * 이미지 위에 아무것도 얹지 않는다. 설명은 그림 아래 한 줄로 내린다. */
.proof-shot { margin: 0; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: #0b0c0e; }
.proof-shot-btn { display: block; width: 100%; border: 0; padding: 0; background: #0b0c0e; cursor: zoom-in; }
.proof-shot-btn img { display: block; width: 100%; height: auto; max-height: 78vh; object-fit: contain; object-position: top center; background: #0b0c0e; }
.proof-shot figcaption { padding: 12px 16px; border-top: 1px solid var(--line); color: #9aa0ab; font-size: .82rem; line-height: 1.55; }
.proof-pair { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 26px; }
.section-yellow .proof-shot,
.section-yellow .proof-shot-btn,
.section-yellow .proof-shot-btn img { background: #fffaf0; }
.section-yellow .proof-shot { border-color: rgba(17,19,24,.14); }
.section-yellow .proof-shot figcaption { border-top-color: rgba(17,19,24,.14); color: #4c4f57; }
@media (max-width: 820px) { .proof-pair { grid-template-columns: 1fr; } }

/* 아는 영어 / 꺼내 쓰는 영어 — 좌우 대조 */
.reframe-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.reframe-steps { margin: 12px 0 14px; padding-left: 18px; color: #c7cbd2; font-size: .9rem; line-height: 1.95; }
.reframe-steps li { margin: 0; }
@media (max-width: 820px) { .reframe-grid { grid-template-columns: 1fr; } }

/* 네 걸음 — 일곱 단계와 같은 모양을 쓰되 글이 더 길다 */
.train-loop-4 li em { display: block; margin-top: 6px; line-height: 1.7; }

/* 두 학습자 맥락 나란히 */
.persona-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.persona-grid .evidence-note { margin-top: 10px; }
@media (max-width: 820px) { .persona-grid { grid-template-columns: 1fr; } }

/* hidden 은 hidden 이어야 한다 (2026-09-19)
 *
 * <figure hidden> 의 display:none 은 브라우저 기본 규칙이라, 클래스가 display 를
 * 정하면 그냥 덮인다. 실제로 .proof-pair{display:grid} 가 hidden 을 이겨서
 * 아직 사진이 없는 커뮤니티 자리가 빈 이미지 넷과 함께 화면에 나왔다.
 * 자리를 미리 파 두는 방식을 쓰는 한, 이 한 줄이 없으면 또 샌다. */
[hidden] { display: none !important; }
