:root {
  --star: #ffc400; /* 별점 색은 이것 하나(10/3 사장: 곳곳의 별이 칙칙하고 제각각이던 것을 밝은 노랑으로 통일) */
  --ink: #111;
  --sub: #555;
  --line: #e5e5e5;
  --bg: #fff;
  --soft: #f6f6f4;
  --red: #d7261e;
  --wood: #2e7d4f;
  --fire: #d6453d;
  --earth: #b8901c;
  --metal: #7d838c;
  --water: #1f3a5f;
  --phone-w: 430px; /* 손님 화면 폰 틀 폭 - PC 큰 창에서도 모든 페이지가 이 폭 한 줄로 가운데(10/10 사장: 해설서 report-toc70.css 의 430px 과 같은 값) */
}
* { box-sizing: border-box; margin: 0; padding: 0; }
/* hidden 속성은 display 를 준 요소에서도 늘 숨긴다(칸마다 [hidden] 규칙을 따로 달지 않는다) */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  /* 이모지: Pretendard 에는 없다. 기기 이모지에 없는 새 이모지(🥹·🩷 등, 윈도10·옛 폰)는 네모로 깨지므로
     아이폰은 자기 이모지, 나머지는 Noto 컬러 이모지(구글 글꼴, 화면에 나온 이모지 조각만 받는다)로 그린다. */
  font-family: "Pretendard Variable", Pretendard, "Apple Color Emoji", "Noto Color Emoji", -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  color: var(--ink); background: var(--bg);
  font-size: 17px; line-height: 1.7; letter-spacing: -0.01em; word-break: keep-all;
}
main { max-width: var(--phone-w); margin: 0 auto; }
img { display: block; width: 100%; height: auto; }

.top {
  position: sticky; top: 0; z-index: 10; display: flex; justify-content: space-between; align-items: center;
  max-width: var(--phone-w); margin: 0 auto; padding: 12px 20px; background: rgba(255,255,255,.94);
  border-bottom: 1px solid var(--line); backdrop-filter: blur(6px);
}
.brand { font-weight: 800; font-size: 16px; color: inherit; text-decoration: none; }
/* 모든 페이지 같은 머리띠(10/4 사장: 없는 페이지 화면만 옛 글자 로고였다) - 낙관 + 붓글씨 로고, 낮은 높이, 밑줄 없는 '무료확인' */
.top.v2-top { box-sizing: border-box; height: 42px; padding-block: 0; border-bottom: 0; }
.v2-top .top-menu { height: 42px; }
.v2-top .top-cta { border-bottom: 0; font-size: 13px; }
.v2-logo { display: flex; align-items: center; gap: 8px; }
.v2-logo img { display: block; height: 21px; width: auto; }
.v2-logo .v2-seal { height: 34px; }
/* 로고 아래 작은 한 줄(10/5 사장) - 무엇을 하는 곳인지 */
.v2-logo-text { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.v2-logo-sub { display: block; font-size: 10.5px; line-height: 1; font-weight: 700; letter-spacing: -0.01em; color: #8a7a62; white-space: nowrap; }
.top-cta { font-size: 14px; font-weight: 700; color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--ink); }

section { padding: 36px 20px; }
main > .hero:first-child { padding-top: 56px; }
h1 { font-size: 40px; line-height: 1.25; font-weight: 900; letter-spacing: -0.04em; margin-bottom: 28px; }
h2 { font-size: 29px; line-height: 1.32; font-weight: 850; letter-spacing: -0.035em; margin-bottom: 22px; }
.lead { font-size: 20px; line-height: 1.6; color: #222; margin-bottom: 18px; }
.kicker { font-size: 14px; font-weight: 700; color: var(--red); margin-bottom: 12px; }
.body { color: #333; margin-bottom: 26px; }

.btn {
  display: block; width: 100%; margin-top: 30px; padding: 19px 16px; border: 0; border-radius: 12px;
  background: var(--ink); color: #fff; font: inherit; font-size: 21px; font-weight: 800; text-align: center;
  text-decoration: none; cursor: pointer;
}
.btn:active { transform: translateY(1px); }
.btn.red { background: var(--red); }

/* 빨간 체크만 붙인 목록. 줄은 긋지 않는다 */

.foot-slogan { font-size: 15.5px; font-weight: 700; color: var(--sub); }

.form-block { margin: 12px 0; background: var(--soft); }
.field { display: block; margin-bottom: 14px; }
.field > span { display: block; font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.field small { font-weight: 400; color: var(--sub); }
input[type=text], input:not([type]), select {
  width: 100%; height: 54px; padding: 0 14px; border: 1.5px solid #cfcfcf; border-radius: 10px; background: #fff;
  font: inherit; font-size: 17px; color: var(--ink); appearance: none;
}
select { background-image: linear-gradient(45deg, transparent 50%, #333 50%), linear-gradient(135deg, #333 50%, transparent 50%);
  background-position: calc(100% - 20px) 24px, calc(100% - 15px) 24px; background-size: 5px 5px; background-repeat: no-repeat; }
/* 아래로 늘리는 건 되고, 처음 크기보다 작게는 못 줄인다 */
textarea { width: 100%; min-height: 108px; max-height: 60vh; padding: 12px 14px; border: 1.5px solid #cfcfcf; border-radius: 10px; font: inherit; font-size: 16px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--ink); }
.seg { display: flex; gap: 8px; margin: 4px 0 16px; }
.seg label { flex: 1; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg span { display: block; height: 48px; line-height: 46px; text-align: center; border: 1.5px solid #cfcfcf; border-radius: 10px; background: #fff; font-size: 16px; font-weight: 600; }
.seg input:checked + span { border-color: var(--ink); background: var(--ink); color: #fff; }
.seg input:focus-visible + span { outline: 2px solid var(--red); outline-offset: 2px; }
.form-error { margin-top: 8px; color: var(--red); font-size: 15px; font-weight: 700; }

.toc { margin-top: 20px; border: 1.5px solid var(--ink); border-radius: 12px; }
.toc summary { padding: 16px 18px; font-weight: 800; cursor: pointer; list-style: none; }
.toc summary::-webkit-details-marker { display: none; }
.toc summary::after { content: "＋"; float: right; }
.toc[open] summary::after { content: "－"; }

.rv-all { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--sub); text-decoration: none; }

@keyframes flow { to { transform: translateX(-50%); } }
.rv { flex: none; width: 272px; padding: 20px 18px; border: 1.5px solid var(--ink); border-radius: 14px; background: #fff; display: flex; flex-direction: column; }
.rv-head { font-size: 17px; font-weight: 850; line-height: 1.45; letter-spacing: -0.02em; }

.rv-star { color: var(--star); font-size: 14px; font-weight: 800; margin-bottom: 6px; }
.rv-who { margin-top: auto; padding-top: 14px; font-size: 13px; font-weight: 700; color: var(--sub); }

.rv-full { font-size: 16px; line-height: 1.7; white-space: pre-line; }

/* 결과 */
.result { background: #fff; }
.result h2 { margin-bottom: 8px; }
.result .sub { color: var(--sub); font-size: 15px; margin-bottom: 26px; }
.cap { margin-top: 10px; font-size: 13px; color: var(--sub); }

.r-block { margin-top: 44px; }
.r-block h3 { font-size: 22px; line-height: 1.4; font-weight: 850; letter-spacing: -0.03em; margin-bottom: 12px; }
.r-block h3 em { font-style: normal; color: var(--red); }
.r-tag { display: inline-block; font-size: 13px; font-weight: 800; color: #fff; background: var(--ink); border-radius: 4px; padding: 2px 8px; margin-bottom: 10px; }
.bars { margin: 14px 0 16px; }
.bar { display: grid; grid-template-columns: 64px 1fr 30px; align-items: center; gap: 10px; margin-bottom: 8px; font-size: 15px; font-weight: 700; }
.bar .track { height: 14px; background: var(--soft); border-radius: 7px; overflow: hidden; }
.bar .fill { height: 100%; border-radius: 7px; }
.bar .n { text-align: right; }
.flow { border: 1px solid var(--line); border-radius: 12px; }
.flow > div { padding: 16px; border-top: 1px solid var(--line); }
.flow > div:first-child { border-top: 0; }
.flow .when { font-size: 13px; font-weight: 800; color: var(--red); }
.flow .key { font-size: 18px; font-weight: 850; margin: 2px 0 4px; }
.flow p { font-size: 15px; color: #333; }

/* 무료 질문 블록(Q2·Q4·Q5·Q10·Q55) */
.r-block .ans { font-size: 19px; line-height: 1.5; font-weight: 850; letter-spacing: -0.02em; margin-bottom: 8px; }
.r-block .ans em { font-style: normal; color: var(--red); }
.r-block .txt { font-size: 16px; color: #333; }
/* 무료 결과는 상자 없이 줄글. 핵심만 형광펜처럼 굵게 */
#result .em { font-weight: 800; color: var(--ink); background: linear-gradient(transparent 62%, rgba(255, 111, 15, .18) 62%); padding: 0 1px; }
#result .em.is-now { color: var(--red); }
#result .em.is-now::after { content: " · 올해"; font-size: .85em; }
#result .em-lab { color: var(--sub); font-weight: 700; }

/* 후기 팝업: 아래에서 올라오는 시트 */
.btn.line { background: #fff; color: var(--ink); border: 1.5px solid var(--ink); }

.locked { margin-top: 44px; padding: 24px 20px; border: 2px solid var(--ink); border-radius: 14px; }
.locked h3 { font-size: 22px; font-weight: 900; line-height: 1.4; margin-bottom: 14px; }
.locked ul { list-style: none; }
.locked li { padding: 10px 0; border-bottom: 1px dashed #ccc; font-weight: 700; }
.locked li::before { content: "🔒 "; }
.locked .qn { display: inline-block; min-width: 38px; margin-right: 4px; font-size: 13px; font-weight: 800; color: var(--red); }
.locked ul + .body { margin-top: 16px; }
.again { display: block; margin-top: 14px; text-align: center; font-size: 14px; color: var(--sub); }

/* 입금 창 */
.pay { width: min(100% - 24px, var(--phone-w)); max-height: 92vh; margin: auto; padding: 28px 20px 24px; border: 0; border-radius: 16px; color: var(--ink); }
.pay::backdrop { background: rgba(0,0,0,.55); }
.pay-close { position: absolute; top: 8px; right: 10px; }
.pay-close button { border: 0; background: none; font-size: 30px; line-height: 1; cursor: pointer; color: var(--ink); }
.pay h3 { font-size: 22px; font-weight: 900; line-height: 1.35; margin-bottom: 14px; }
.price { padding: 16px; background: var(--soft); border-radius: 12px; margin-bottom: 16px; }
.price .name { font-weight: 800; }
.price s { color: var(--sub); margin-right: 8px; }
.price strong { font-size: 26px; font-weight: 900; color: var(--red); }
.price small { display: block; font-size: 13px; color: var(--red); font-weight: 700; }
.agree { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: #333; margin: 6px 0 4px; }
.agree input { margin-top: 5px; width: 18px; height: 18px; flex: none; }

/* 하단은 모든 페이지가 같은 모양(10/3 사장: 페이지마다 달랐다 - 첫 화면만 따로 꾸미던 것을 여기 한 곳으로) */
.foot { max-width: var(--phone-w); margin: 0 auto; padding: 32px 20px 48px; border-top: 1px solid var(--line, #e8e8e4); background: #f4f4f2; font-size: 13px; color: var(--sub); }
.foot a { color: var(--sub); margin-right: 14px; }
.foot p { margin-top: 12px; }
.foot .biz { font-size: 12px; line-height: 1.7; }

@media (min-width: 521px) { h1 { font-size: 46px; } }

/* 가격 줄: 정가(취소선) · 할인율 동그라미 · 할인가 */
.deal { display: flex; align-items: baseline; justify-content: center; gap: 8px; flex-wrap: wrap; }
.price .deal { justify-content: flex-start; }
.deal s { color: var(--sub); text-decoration-color: var(--red); text-decoration-thickness: 2px; }
.deal strong { font-size: 26px; font-weight: 900; color: var(--red); }
/* 할인 동그라미: 검은 바탕에 흰 글자, 글자가 두 줄로 읽히는 가장 작은 크기 */
.deal .pct { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; align-self: center; border-radius: 50%; background: #000; color: #fff; font-weight: 900; line-height: 1.05; }
.deal .pct small { color: #fff; }
.count { display: block; text-align: right; font-size: 12px; color: var(--sub); margin-top: 4px; }
.pay textarea[name=question] { resize: none; overflow: hidden; max-height: none; }

/* 첫 방문 할인 타이머 줄(결과 아래 · 신청 창 가격 아래): 연한 빨간 띠, 한 줄로, 빨간 버튼 바로 위에 붙인다 */
.form-timer { margin: 16px 0 10px; padding: 11px 12px; border-radius: 10px; background: #fff0ee; text-align: center; font-size: 14.5px; font-weight: 800; color: var(--ink); white-space: nowrap; letter-spacing: -0.02em; }
.form-timer b { margin-left: 4px; font-size: 18px; font-weight: 900; color: var(--red); font-variant-numeric: tabular-nums; }
.form-timer + .btn { margin-top: 0; }

/* 최근 신청 알림: 화면 아래 가운데, 작은 검은 알약 모양. 잠깐 떴다 사라진다 */
.toast { position: fixed; left: 50%; bottom: 18px; z-index: 20; max-width: calc(100% - 32px); overflow: hidden; text-overflow: ellipsis; padding: 6px 12px; border-radius: 999px; background: rgba(17,17,17,.82); color: #eee; font-size: 12px; font-weight: 500; white-space: nowrap; opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .3s ease, transform .3s ease, visibility .3s; }
.toast.on { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.toast b { margin-right: 3px; color: #ffb4ae; font-weight: 700; }
.field-hint { display: block; margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--red); }
/* 이름 칸에 한글이 아닌 글자·5번째 글자를 넣으면: 빨간 테두리 + 살짝 흔들기 */
.field input.is-bad { border-color: var(--red); animation: field-shake .36s; }
@keyframes field-shake { 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) { .field input.is-bad { animation: none; } }
/* 하단 링크 팝업 */
.sheet h3 { font-size: 22px; font-weight: 900; margin: 6px 0 14px; }

.sheet .btn { margin-top: 20px; }
/* 선물 쿠폰 */
.gift { margin: 0 0 14px; font-size: 14px; }
.gift summary { cursor: pointer; color: var(--sub); text-decoration: underline; text-underline-offset: 3px; }
.gift-row { display: flex; gap: 6px; margin-top: 8px; }
.gift-row input { flex: 1; min-width: 0; padding: 10px 12px; border: 1.5px solid #ccc; border-radius: 8px; font: inherit; text-transform: uppercase; }
.gift-row button { padding: 0 16px; border: 1.5px solid var(--ink); border-radius: 8px; background: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.gift-msg { margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--red); }
/* 후기 올라간 모습 */
.posted { margin: 18px 0 14px; padding: 18px; border: 1.5px solid #e5e5e5; border-radius: 12px; background: #fff; text-align: left; }
.posted-text { margin-top: 6px; font-size: 15px; line-height: 1.7; white-space: pre-line; color: var(--ink); }

/* 해설서 신청 창: 가격·계좌·안내는 가운데, 입력칸(라벨·글자)은 왼쪽 - 전부 가운데면 눈이 이리저리 흔들린다 */
#pay, #pay .price, #pay .gift, #pay .body, #pay .form-error { text-align: center; }
#pay-form .field > span { text-align: left; }
#pay .price .deal { justify-content: center; }

#pay .gift { margin-bottom: 12px; }
#pay .agree span { font-size: 12.5px; line-height: 1.6; }
#pay .agree { display: block; text-align: center; text-wrap: balance; } /* 가운데 맞춘 두 줄은 길이를 고르게(10/10 전수검사: '…쓰는 / 데 동의해요.'로 끝줄이 짧게 꺾였다) */
#pay .agree input { display: inline-block; vertical-align: -3px; margin: 0 6px 0 0; }
#pay .gift-row input { text-align: center; }

/* 신청 창 타이머는 두 줄로(한 줄이면 폰에서 오른쪽으로 삐져나감) */
#pay .form-timer { white-space: normal; }

/* 질문 칸 글자 수는 네모 칸 안 오른쪽 아래에 */
/* 머리 오른쪽 링크 두 개(내 신청 · 무료로 확인) */
.top-links { display: flex; align-items: center; gap: 16px; }
/* 마이페이지(내 신청): 작대기 세 개 */
.top-menu { display: inline-flex; flex-direction: column; justify-content: center; gap: 6px; width: 44px; height: 44px; margin-right: -12px; padding: 12px; }
.top-menu i { display: block; flex: none; height: 2px; border-radius: 2px; background: var(--ink); } /* 줄 사이(2+6=8px)를 4의 배수로 - 화면 배율(125%·150%)에서도 세 줄이 같은 굵기로 찍힌다(10/9 사장) */
/* 새로고침 때 줄 세 개에 진한 네모가 잠깐 보이던 것(10/7 사장): 서랍을 닫으며 돌려준 초점을 브라우저가 새로고침 뒤에도 되살려 초점 테두리를 그렸다. 마우스·손가락 초점엔 테두리 없음 */
.top-menu:focus { outline: 0; }
.top-menu:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; border-radius: 8px; }
/* 쓸 수 있는 쿠폰이 있을 때 가격 밑 한 줄 */
/* 내 신청(/my) */

/* ---------- 무료 결과 원국 표(만세력식): 십성·천간·지지·십성·지장간·12운성·신살 ---------- */
.wg-wrap { border: 2px solid var(--ink); border-radius: 12px; overflow: hidden; }
.wg { width: 100%; table-layout: fixed; border-collapse: collapse; }
.wg col.wg-lab { width: 40px; }
.wg th, .wg td { border-top: 1px solid var(--line); border-left: 1px solid var(--line); text-align: center; vertical-align: middle; padding: 5px 2px; font-size: 12.5px; line-height: 1.35; word-break: keep-all; overflow-wrap: anywhere; }
.wg tr > :first-child { border-left: 0; }
.wg thead th { border-top: 0; padding: 7px 0; font-size: 13px; font-weight: 800; background: var(--soft); }
.wg thead th.me { background: var(--ink); color: #fff; }
.wg tbody th { font-size: 10.5px; font-weight: 700; color: var(--sub); background: var(--soft); letter-spacing: -0.04em; padding: 5px 0; }
.wg td.me { background: #fbf8ef; }
.wg td.god { font-weight: 800; color: #333; }
.wg .me-mark { display: inline-block; font-size: 11.5px; font-weight: 800; color: #fff; background: var(--ink); border-radius: 4px; padding: 0 6px; }
.wg td.gz { padding: 8px 2px 6px; }
.wg td.gz b { display: block; font-size: 30px; line-height: 1.15; font-weight: 800; font-family: "Noto Serif KR", "Batang", serif; }
.wg td.gz i { display: block; font-style: normal; font-size: 11px; color: var(--sub); }
.wg td.hid span { font-family: "Noto Serif KR", "Batang", serif; font-size: 15px; font-weight: 700; margin: 0 1px; }
.wg td.stage { font-weight: 700; }
.wg td.sal { font-size: 11px; line-height: 1.45; color: #333; }
.wg td.sal span { display: block; }
.wg .x { color: #bbb; }
.c-목 { color: var(--wood); } .c-화 { color: var(--fire); } .c-토 { color: var(--earth); } .c-금 { color: var(--metal); } .c-수 { color: var(--water); }
.ys { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 14px; }
.ys span { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 7px 4px; border: 1.5px solid var(--line); border-radius: 10px; text-align: center; }
.ys span.ys-yong { border-color: var(--ink); }
.ys small { font-size: 10.5px; font-weight: 700; color: var(--sub); line-height: 1.3; word-break: keep-all; }
.ys b { font-size: 15px; font-weight: 850; }
@media (max-width: 360px) { .wg td.gz b { font-size: 26px; } .wg col.wg-lab { width: 36px; } .wg td.sal { font-size: 10px; } }

/* 쿠폰함(/my) */

/* 신청 창: 쿠폰 사용하기(한 장만 고른다) */
.pay-cps { display: grid; gap: 6px; margin-top: 8px; }
.pay-cps:empty { display: none; }
.pay-cp { display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box; padding: 11px 12px; border: 1.5px solid #ccc; border-radius: 8px; background: #fff; font-size: 13.5px; color: var(--ink); text-align: left; cursor: pointer; }
.pay-cp input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--red); }
.pay-cp-t { flex: 1; min-width: 0; }
.pay-cp-t b { font-weight: 900; color: var(--red); }
.pay-cp small { flex: none; font-size: 12px; color: var(--sub); }
.pay-cp:has(input:checked) { border-color: var(--ink); }
.pay-cp.is-off { cursor: default; opacity: 0.55; background: #fafafa; }
#pay .pay-cp, #pay .pay-cp small { text-align: left; }

@keyframes flip-in { from { transform: translateX(60%); opacity: 0; } to { transform: none; opacity: 1; } }

/* 무료 결과 질문 머리: 질문 왼쪽에 Q 한 글자 */
.r-block h3.q-head { display: flex; align-items: flex-start; gap: 8px; }
.q-mark { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-top: 2px; border-radius: 6px; background: var(--ink); color: #fff; font-size: 16px; font-weight: 900; }
/* 한 블록 안의 작은 소제목(네 기둥으로 보면 …) */
.r-block .sub-h { margin: 20px 0 6px; font-size: 15px; font-weight: 800; color: var(--ink); }

/* 무료 결과 끝 가격: 정가 → 할인가(크게) → 안내 한 줄 → 신청 버튼 → 타이머 */
.offer { margin: 36px 0 16px; text-align: center; }
.offer-reg { font-size: 16px; font-weight: 700; color: var(--sub); }
.offer-reg s { margin-left: 2px; text-decoration-color: var(--red); text-decoration-thickness: 2px; }
.offer-now { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 2px; }
.offer-now strong { font-size: 52px; font-weight: 900; line-height: 1.15; color: var(--red); letter-spacing: -0.02em; }
.offer-now .pct { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; background: #000; color: #fff; font-weight: 900; line-height: 1.05; }
.offer-now .pct small { color: #fff; }
.offer-note { margin-top: 6px; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.offer + .btn { margin-top: 0; }
/* 용신·희신·기신을 내 기운으로 푼 세 줄(칩 아래) */
.ys-read { margin-top: 12px; }
.ys-read .txt { font-size: 16px; color: #333; }
.ys-read .txt + .txt { margin-top: 8px; }

/* 무료 결과 움직임(armFreeMotion) */
.fm-on .fm { transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1); }
.fm-on .fm:not(.fm-in) { opacity: 0; transform: translateY(16px); }
.fm-on .r-tag.fm:not(.fm-in) { transform: translateX(-12px); }
.fm-on .btn.fm:not(.fm-in) { transform: translateY(16px) scale(0.97); }
@media (prefers-reduced-motion: reduce) { .fm-on .fm { opacity: 1 !important; transform: none !important; transition: none !important; } }

/* 풀이집 소개(짧게) */
.book-s h2 { margin-bottom: 8px; }
.book-s .lead { margin-bottom: 18px; font-weight: 700; color: #111; }

/* 신청 버튼 안의 남은 시간(둘째 줄) */
.pay-btn span { display: block; }
.pay-btn .pay-btn-timer { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; opacity: .9; }
.pay-btn .pay-btn-timer b { margin-left: 4px; font-weight: 800; font-variant-numeric: tabular-nums; }
/* '24시간 할인' 동그라미: '할인'이 잘 보이게 크게 */
.offer-now .pct { width: 62px; height: 62px; font-size: 14px; }
.offer-now .pct small { margin-top: 1px; font-size: 14px; font-weight: 900; }
.deal .pct { width: 46px; height: 46px; font-size: 11px; }
.deal .pct small { font-size: 11px; font-weight: 900; }
/* 결제창 머리(10/7 사장): 글자 제목 대신 올인원 인장 + 붓글씨 로고, 상품명은 그림 안에 */
.pay-brand { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 12px; outline: none; } /* 신청 창이 열리면 첫 자리(×)가 아니라 이 머리에 손이 간다 - ×에 초점 테두리가 동그랗게 뜨던 것(10/9 사장) */
.pay-brand-seal { width: 16px; height: 38px; object-fit: contain; }
.pay-brand-logo { height: 34px; width: auto; }
.pay-poster img { border-radius: 0; } /* 모서리는 틀(.pay-poster, lp2.css)이 아래 카드와 같게 둥글린다 */
.pay-memo .pm-who + .pm-who, .pay-memo .pm-who + .pm-rows { margin-top: 14px; padding-top: 14px; border-top: 1px dashed rgba(27, 23, 19, .2); }
.pay-memo .pm-who .pm-k { display: inline-block; margin: 0 0 6px; padding: 3px 10px; border-radius: 999px; background: #a8322a; font-size: 12.5px; font-weight: 800; }

.pay-memo .pm-who .pm-k { color: #fff !important; }
#pay .pay-btn, .pay-btn { font-size: 19px !important; font-weight: 800; min-height: 58px; } .pay-btn small { font-size: 13px; } /* 결제 단추 글자 크게(10/7 사장) */
#pay .agree { margin: 22px 0 26px !important; } #pay .pay-phone { margin-bottom: 10px; } /* 동의·결제 단추 사이 넉넉히(10/7 사장: 다닥다닥) */
/* 후기 카드(10/7 사장: 멋지게) - 일간 오행 색의 머리띠 위에 프로필이 걸치고, 아래는 흰 종이. 큰 따옴표 하나로 '말'이라는 걸 보여 준다 */
.rv-card { --el: #8a6a3a; --el2: #f3ead8; position: relative; box-sizing: border-box; margin: 0 0 18px; overflow: hidden; text-align: left; }
.rv-card.is-wood { --el: #2f7a4b; --el2: #e6f2e8; } .rv-card.is-fire { --el: #c0392b; --el2: #fbe7e3; } .rv-card.is-earth { --el: #b07a2a; --el2: #f8eedb; } .rv-card.is-metal { --el: #6b7280; --el2: #eef0f3; } .rv-card.is-water { --el: #2b4a7a; --el2: #e5ecf6; }
.rv-card::before { height: 46px; background: linear-gradient(120deg, var(--el), color-mix(in srgb, var(--el) 70%, #000)); }
.rv-card::after { position: absolute; top: 48px; right: 16px; font: 900 64px/1 Georgia, serif; color: var(--el2); pointer-events: none; }
.rv-head { position: relative; z-index: 1; display: flex; gap: 12px; }
.rv-ava { flex: none; display: grid; place-items: center; border-radius: 50%; background: #fff; overflow: hidden; }
.rv-ava img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.rv-id { min-width: 0; flex: 1; padding-bottom: 2px; }
.rv-card .rv-who { margin: 0; }
.rv-il { display: inline-block; margin: 3px 0 0; border-radius: 999px; }
.rv-card .rv-star { margin: 4px 0 0; font-size: 12px; letter-spacing: 2px; color: #e0a526; }
.rv-card .rv-full { position: relative; z-index: 1; word-break: keep-all; white-space: pre-line; }
.v2-rv.rv-card { margin: 0; } /* 이름은 띠 아래 흰 종이 위에 */
/* 후기 카드 다시(10/7 사장: 현란하다 - 심플·모던·세련): 색 띠·따옴표 없앰. 흰 카드, 옅은 선 하나, 오행 색은 이름표 글자에만 */
.rv-card { padding: 20px; border-radius: 16px; }
.rv-card::before, .rv-card::after { content: none; display: none; }
.rv-head { margin: 0 0 14px; align-items: center; }
.rv-id { padding-top: 0; }
.rv-ava { width: 48px; height: 48px; border: 0; }
.rv-card .rv-who { font-size: 15px; font-weight: 700; color: #16120d; }
.rv-il { padding: 0; background: none; color: var(--el); font-size: 12px; font-weight: 600; }
/* 무슨 상품 후기인지 이름표(10/9 사장) - 이름 옆 작은 알약, 상품 색은 옅게 */
.rv-prod { display: inline-block; margin-left: 7px; padding: 2px 7px; border-radius: 999px; font-family: inherit; font-size: 11px; font-weight: 700; line-height: 1.45; letter-spacing: -.01em; vertical-align: 1px; white-space: nowrap; color: #26314a; background: #e7eaf1; }
.rv-prod.is-newyear { color: #845f0e; background: #f7eed7; }
.rv-prod.is-gunghap { color: #a8405f; background: #fbe6ec; }
.rv-prod.is-reunion { color: #2c5893; background: #e3ecf8; }
.rv-card .rv-star { line-height: 0; }
.rv-stars { display: inline-flex; gap: 2px; color: #f4b63f; vertical-align: middle; }
.rv-stars svg { width: 18px; height: 18px; display: block; }
.rv-card .rv-full { margin: 0; font-size: 15px; line-height: 1.75; color: #2a251f; }
/* 후기 카드(10/7 사장): 회색 바탕, 테두리 대신 그림자, 카드 사이 넓게 */
.rv-card { margin-bottom: 22px; border: 0; background: #f4f4f2; box-shadow: 0 6px 18px -8px rgba(20, 16, 11, .22), 0 1px 3px rgba(20, 16, 11, .06); }
.rv-ava { box-shadow: 0 0 0 2px #fff; }

/* 메인 후기 카드(10/7 사장: 분홍 별로, 테두리 없고 옆 카드와 붙어 보임) - 흰 바탕에 한지빛 가는 테두리, 금빛 따옴표 하나, 카드 사이 넉넉히 */
#v2-rv-slide { gap: 16px; padding-bottom: 14px; }
.v2-rv.rv-card { position: relative; flex-basis: 82%; padding: 22px 20px 20px; border: 1px solid #e8dfcf; border-radius: 18px; background: #fffdf9; box-shadow: 0 10px 22px -14px rgba(90, 64, 24, .28); }
.v2-rv.rv-card::after { content: "\201C"; display: block; position: absolute; top: 10px; right: 18px; font: 700 54px/1 Georgia, "Noto Serif KR", serif; color: #e6d2a4; pointer-events: none; }
/* 사이트 공통(10/9 사장): 끝말 한두 글자만 다음 줄로 떨어지는 외톨이 줄 없이, 낱말 단위로 줄을 바꾼다. 구체성 0 이라 칸마다 따로 정한 줄맞춤이 이긴다 */
:where(p, li, h1, h2, h3, h4, h5, h6, figcaption, blockquote, dd, dt, label, button, td, th, summary, small) { text-wrap: pretty; word-break: keep-all; overflow-wrap: break-word; }

/* 신청 창 배너 글자만 둥실(10/9 사장: 너무 정적) - 바탕 위에 같은 크기의 글자 판을 겹쳐 위아래로만 */
.pay-poster-float { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; animation: v2-bob 3.6s ease-in-out infinite; } /* 첫 화면 부적 배너와 같은 위아래 둥실(v2-bob, lp2.css) - 커지거나 기울지 않는다(10/9 사장) */
@media (prefers-reduced-motion: reduce) { .pay-poster-float { animation: none; } }

/* 신청 창 목차(10/9 사장: 결제 전에 무엇이 들었는지) - 구성 줄 바로 아래, 펼친 채로 */
.pay-toc { margin: 8px 0 12px; padding: 0 14px; border-radius: 10px; background: #faf6ec; border: 1px solid #ecdfc2; text-align: left; } /* 기본은 접힘·왼쪽 정렬·촘촘하게(10/9 사장: 넓게 퍼지고 가운데로 흩어졌다) */
.pay-toc summary { display: block; list-style: none; cursor: pointer; }
.pay-toc-get { display: block; margin: 0; padding: 11px 0 9px; border-bottom: 1px solid #efe4cc; font-size: 13.5px; font-weight: 600; line-height: 1.5; color: #1b1713; word-break: keep-all; }
div.pay-toc .pay-toc-get { border-bottom: 0; }
.pay-toc-row { display: flex; align-items: baseline; gap: 12px; padding: 10px 0; font-size: 15px; font-weight: 800; color: #2a1d08; }
.pay-toc summary::-webkit-details-marker { display: none; }
.pay-toc summary small { font-size: 12.5px; font-weight: 600; color: #8a7a5c; }
.pay-toc-row::after { content: ""; margin-left: auto; width: 7px; height: 7px; border-right: 2px solid #8a7a5c; border-bottom: 2px solid #8a7a5c; rotate: 45deg; translate: 0 -3px; transition: rotate .2s; }
.pay-toc[open] .pay-toc-row::after { rotate: 225deg; translate: 0 2px; }
.pay-toc ol { margin: 0 0 8px; padding: 0; list-style: none; }
.pay-toc li { padding: 5px 0; border-top: 1px solid #efe4cc; }
.pay-toc li b { display: flex; gap: 7px; font-size: 14px; font-weight: 800; line-height: 1.4; color: #2a1d08; }
.pay-toc li b em { flex: none; min-width: 22px; white-space: nowrap; font-style: normal; color: #b3261c; font-variant-numeric: tabular-nums; }
.pay-toc li span { display: block; margin: 1px 0 0 29px; font-size: 12px; line-height: 1.45; color: #7a6c52; word-break: keep-all; }
/* 해설서 전체 한눈에(10/10 사장, lp.js payPreview): 모은 그림의 윗부분만, 아래로 흐려지며 잘린다. 누르면 화면 가득(.pv-full) */
.pay-pv { margin: 0 0 12px; text-align: left; }
.pay-pv-h { margin: 0 0 8px; padding: 0 2px; font-size: 14px; font-weight: 800; line-height: 1.4; color: #2a1d08; }
.pay-pv-peek { display: block; width: 100%; height: 230px; padding: 0; border: 0; border-radius: 12px; overflow: hidden; background: #1b1712; cursor: pointer; -webkit-mask-image: linear-gradient(#000 50%, transparent); mask-image: linear-gradient(#000 50%, transparent); }
.pay-pv-peek img { display: block; width: 100%; height: auto; }
.pv-full { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: #1b1712; }
.pv-full::backdrop { background: #1b1712; }
.pv-full-scroll { height: 100%; overflow-y: auto; overscroll-behavior: contain; padding: 56px 0 calc(24px + env(safe-area-inset-bottom)); outline: none; }
.pv-full-scroll img { display: block; width: var(--pv-w, min(100% - 24px, var(--phone-w))); height: auto; margin: 0 auto; }
.pv-full-x { position: fixed; top: calc(6px + env(safe-area-inset-top)); right: max(8px, calc((100% - var(--phone-w)) / 2 + 8px)); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: none; color: #f3e7cc; cursor: pointer; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .8)); }
