/* 마을 서점: 첫 장 미리 읽기 + 이어 읽기 잠금 */
.rd { overflow-x: clip; }
.rd-back { margin: 0 0 10px; }
.rd-back-a { min-height: 44px; }

.rd-head { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.rd-head-t { min-width: 0; }
.rd-title { margin: 4px 0; word-break: keep-all; text-wrap: balance; }
.rd-tag { margin: 0 0 8px; font-size: 15px; line-height: 1.6; color: var(--pm-ink); word-break: keep-all; }
.rd-meta { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
@media (min-width: 820px) {
  .rd-head { flex-direction: row; text-align: left; }
  .rd-meta { justify-content: flex-start; }
}
.rd-chipx { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border: 2px solid var(--pm-line); border-radius: var(--pm-r-pill); background: var(--pm-cream); color: var(--pm-ink); font-size: 13px; }
.rd-chipx--free { background: var(--pm-info-bg); color: var(--pm-info-ink); font-weight: 700; }

.rd-who { margin: 12px 4px; }
.rd-ex { margin: 12px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rd-ex p { margin: 0; flex: 1 1 220px; font-size: 15px; line-height: 1.6; }
.rd-ex-btn { min-height: 44px; flex: 0 0 auto; }

/* 첫 장 */
.rd-page { margin-top: 14px; }
.rd-chap { margin: 0; font-size: 13px; font-weight: 700; color: var(--pm-sub-text); }
.rd-h2 { margin: 2px 0 10px; font-family: var(--pm-font-head); font-weight: 400; font-size: 25px; line-height: 1.35; color: var(--pm-ink); word-break: keep-all; text-wrap: balance; }
.rd-keys { margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.rd-p { margin: 0 0 14px; font-size: 16.5px; line-height: 1.95; color: var(--pm-ink); word-break: keep-all; overflow-wrap: anywhere; }
.rd-ev { margin: 4px 0 6px; padding: 8px 12px; border-radius: 14px; background: var(--pm-soft); font-size: 14px; line-height: 1.7; color: var(--pm-ink); }
.rd-ev summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; }
.rd-ev ul { margin: 0 0 6px; padding-left: 20px; }
.rd-end { margin: 16px 0 0; padding-top: 12px; border-top: 2px dashed var(--pm-line); text-align: center; font-size: 13.5px; font-weight: 700; color: var(--pm-sub-text); }

/* 목차 */
.rd-toc { margin-top: 14px; }
.rd-h3 { margin: 0 0 10px; font-family: var(--pm-font-head); font-weight: 400; font-size: 19px; color: var(--pm-ink); }
.rd-chs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rd-ch { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border: 2px solid var(--pm-line); border-radius: 16px; background: var(--pm-cream); min-width: 0; }
.rd-ch.is-open { background: var(--pm-info-bg); }
.rd-ch-n { flex: 0 0 32px; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--pm-soft2); font-weight: 700; font-size: 14px; color: var(--pm-ink); }
.rd-ch-b { min-width: 0; flex: 1 1 auto; }
.rd-ch-t { margin: 0; font-size: 15.5px; font-weight: 700; line-height: 1.5; color: var(--pm-ink); word-break: keep-all; overflow-wrap: anywhere; }
.rd-state { display: inline-block; margin-left: 6px; padding: 1px 9px; border-radius: 999px; background: var(--pm-soft2); font-size: 12px; font-weight: 700; color: var(--pm-sub-text); white-space: nowrap; }
.rd-state--open { background: var(--pm-info-ink); color: #fff; }
/* 잠긴 장: 제목은 또렷하게, 안내 문장은 흐리게(스크린리더에는 숨김) */
.rd-ch-h { margin: 6px 0 0; font-size: 14px; line-height: 1.7; color: var(--pm-ink); filter: blur(4.5px); opacity: .6; user-select: none; pointer-events: none; word-break: keep-all; overflow-wrap: anywhere; }

/* 이어 읽기 */
.rd-lock { margin-top: 14px; scroll-margin-top: 80px; }
.rd-price { margin: 0 0 6px; font-size: 15px; color: var(--pm-ink); }
.rd-price-v { font-family: var(--pm-font-head); font-size: 22px; font-weight: 400; color: var(--pm-fire-deep); }
.rd-price-n { font-size: 12.5px; color: var(--pm-sub-text); }
.rd-line { margin: 0 0 12px; font-size: 15px; line-height: 1.7; color: var(--pm-ink); word-break: keep-all; }
.rd-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.rd-act { min-height: 44px; flex: 1 1 200px; text-align: center; }
.rd-notify.is-on { background: var(--pm-soft2); }
.rd-coin[disabled] { opacity: .6; cursor: not-allowed; }
.rd-coin-n { margin: 8px 0 0; }
.rd-act:focus-visible, .rd-back-a:focus-visible, .rd-ex-btn:focus-visible { outline: 3px solid var(--pm-focus); outline-offset: 2px; }

.rd-more { margin: 18px 0 0; }
.rd-more-l { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }

@media (prefers-reduced-motion: reduce) { .rd * { transition: none !important; animation: none !important; } }
