/* ═══ 모의고사 해설 페이지 — 두 시안(styles.css / theme-book.css) 위에 공통으로 얹힘 ═══ */
.rv-body{background:var(--paper-2,#F7F4EC)}
.rv-main{padding-top:clamp(72px,6.6vw,92px)}
.rv-main section{padding-inline:var(--pad)}
.rv-back{font-size:13px;font-weight:700;color:var(--navy,#0F2A52);display:none}
[data-theme="book"] .rv-back{color:var(--on-dark,#F5F1E8)}
.rv-sub{font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--gold-dk,#A8832F);
  margin:clamp(30px,4vh,46px) 0 14px}
.rv-sub em{font-style:normal;font-weight:400;color:var(--ink-f,rgba(28,43,69,.5))}

/* ── 히어로 ── */
.rv-hero{background:var(--navy,#0F2A52);color:#F5F1E8;padding-block:clamp(48px,7vh,86px)}
.rv-kicker{font-size:12px;font-weight:700;letter-spacing:.14em;color:#C9A24B;margin-bottom:16px}
.rv-title{font-family:'Pretendard Variable','Pretendard','Noto Sans KR',sans-serif;font-weight:700;
  font-size:clamp(32px,6vw,68px);line-height:1.16;letter-spacing:-.05em;color:#fff;margin-bottom:20px}
.rv-intro{max-width:660px}
.rv-intro p{font-size:clamp(14px,1.6vw,16.5px);line-height:1.95;color:rgba(245,241,232,.78);
  margin-bottom:14px;word-break:keep-all}
.rv-intro p:last-child{margin-bottom:0}
.rv-intro b{color:#E6C87E;font-weight:700}
.rv-lead{font-family:'Noto Serif KR',serif;font-weight:500;
  font-size:clamp(17px,2.3vw,24px)!important;line-height:1.6!important;color:#fff!important;
  padding-bottom:16px;margin-bottom:18px!important;border-bottom:1px solid rgba(201,162,75,.35)}
.rv-meta{margin-top:20px;font-size:12px;line-height:1.7;color:rgba(245,241,232,.42);max-width:660px}
.rv-by{display:flex;align-items:center;gap:12px;margin-top:clamp(22px,3.4vh,34px);
  padding-top:20px;border-top:1px solid rgba(201,162,75,.3);max-width:640px}
.rv-by img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:center;border:2px solid #C9A24B}
.rv-by b{display:block;font-size:14.5px;font-weight:700;color:#fff}
.rv-by span{font-size:12.5px;color:#8FA3C4}

/* ── 관통 인사이트 ── */
.rv-insight{background:#0B1F3F;color:#F5F1E8;padding-block:clamp(34px,5vh,54px)}
.rv-insight .rv-sub{margin-top:0;color:#C9A24B}
.rv-ins{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14)}
.rv-ins article{background:#0B1F3F;padding:clamp(16px,2vw,24px) clamp(14px,1.8vw,24px)}
.rv-ins b{display:block;font-family:'Cinzel',Georgia,serif;font-weight:700;font-size:clamp(19px,2.4vw,28px);
  color:#C9A24B;letter-spacing:.02em;margin-bottom:9px}
.rv-ins p{font-size:13.5px;line-height:1.8;color:rgba(245,241,232,.74)}
.rv-ins em{font-style:normal;color:#fff;font-weight:700}

/* ── 학년도 · 회차 선택 ── */
.rv-pick{position:sticky;top:clamp(64px,5.6vw,78px);z-index:30;background:#fff;
  border-bottom:1px solid var(--line,#E5DFD0);box-shadow:0 6px 18px rgba(15,42,82,.05)}
.rv-years{display:flex;gap:6px;overflow-x:auto;padding:12px var(--pad) 0}
.rv-yp{flex:none;border:1px solid var(--line,#E5DFD0);background:#fff;cursor:pointer;
  padding:8px 14px;border-radius:999px;font:700 13.5px/1 inherit;color:var(--ink,#1C2B45);
  transition:.2s;white-space:nowrap}
.rv-yp span{font-weight:400;font-size:11px;opacity:.6;margin-left:3px}
.rv-yp:hover{border-color:#C9A24B}
.rv-yp.on{background:var(--navy,#0F2A52);border-color:var(--navy,#0F2A52);color:#F5F1E8}
.rv-yp.on span{opacity:.75}
.rv-tabs{display:block;padding:0 var(--pad)}
.rv-tabrow{display:none;gap:0;overflow-x:auto}
.rv-tabrow.on{display:flex}
.rv-tab{flex:none;border:0;background:transparent;cursor:pointer;padding:13px 18px 11px;
  border-bottom:3px solid transparent;font:inherit;text-align:left;transition:.2s;white-space:nowrap}
.rv-tab b{display:block;font-size:14px;font-weight:700;color:var(--ink,#1C2B45)}
.rv-tab span{display:block;font-size:11px;color:var(--ink-f,rgba(28,43,69,.5));margin-top:3px}
.rv-tab:hover b{color:var(--navy,#0F2A52)}
.rv-tab.on{border-bottom-color:#C9A24B}
.rv-tab.on b{color:var(--navy,#0F2A52)}

/* ── 패널 ── */
.rv-panel{display:none;background:#fff;padding:clamp(28px,4.5vh,56px) var(--pad) clamp(40px,6vh,72px)}
.rv-panel.on{display:block}
.rv-head h3{font-size:clamp(22px,3.2vw,36px);font-weight:700;letter-spacing:-.04em;color:var(--navy,#0F2A52)}
.rv-when{font-size:13px;color:var(--ink-f,rgba(28,43,69,.5));margin-top:6px}
.rv-lede{margin-top:20px;font-size:clamp(14.5px,1.6vw,17px);line-height:1.95;color:var(--ink,#1C2B45);
  max-width:74ch;padding-left:18px;border-left:4px solid #C9A24B}
.rv-lede b{font-weight:700;color:var(--navy,#0F2A52)}

/* 등급 */
.rv-gwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;
  background:var(--line,#E5DFD0);border:1px solid var(--line,#E5DFD0)}
.rv-g{background:#fff;padding:16px 14px;text-align:center}
.rv-g b{display:block;font-size:clamp(22px,3vw,32px);font-weight:700;color:var(--navy,#0F2A52);letter-spacing:-.03em}
.rv-g span{display:block;font-size:12px;color:var(--ink-f,rgba(28,43,69,.5));margin-top:5px}
.rv-src{font-size:11.5px;color:var(--ink-f,rgba(28,43,69,.45));margin-top:9px}

/* 기관 총평 */
.rv-verdicts ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.rv-verdicts li{font-size:14px;line-height:1.85;color:var(--ink,#1C2B45);padding-left:16px;position:relative}
.rv-verdicts li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:#C9A24B}
.rv-verdicts b{display:inline-block;min-width:78px;font-weight:700;color:var(--navy,#0F2A52);margin-right:8px}

/* 문항 표 */
.rv-tblwrap{overflow-x:auto}
.rv-tbl{width:100%;min-width:660px;border-collapse:collapse;text-align:left}
.rv-tbl th{background:var(--navy,#0F2A52);color:#F5F1E8;font-size:12px;font-weight:700;padding:11px 12px;white-space:nowrap}
.rv-tbl td{padding:10px 12px;border-bottom:1px solid var(--line,#E5DFD0);font-size:13px;color:var(--ink,#1C2B45)}
.rv-tbl tr:hover td{background:#F7F4EC}
.rv-tbl .no{font-weight:700;color:var(--navy,#0F2A52);width:52px}
.rv-tbl .ans{font-size:15px;width:52px}
.rv-tbl .pt{width:56px;white-space:nowrap}
.rv-tbl tr.imp-crit .pt{font-weight:700;color:#C0392B}
.rv-tbl .lead{color:var(--ink-f,rgba(28,43,69,.55));font-size:12px;line-height:1.6}
.rv-tbl tr.g-추론 .no{box-shadow:inset 3px 0 0 #C9A24B}
.rv-tbl tr.g-논리 .no{box-shadow:inset 3px 0 0 #1B4380}

/* 고난도 카드 */
.rv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(14px,1.8vw,22px)}
.rv-card{border:1px solid var(--line,#E5DFD0);border-top:4px solid #C9A24B;background:#fff;
  padding:clamp(18px,2.2vw,26px)}
.rv-card header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.rv-no{font-family:'Cinzel',Georgia,serif;font-weight:700;font-size:19px;color:#A8832F}
.rv-card h4{font-size:16px;font-weight:700;color:var(--navy,#0F2A52);letter-spacing:-.03em}
.rv-chip{font-size:11px;font-weight:700;padding:3px 8px;border:1px solid var(--line,#E5DFD0);
  border-radius:3px;color:var(--ink-f,rgba(28,43,69,.55))}
.rv-topic{font-size:12.5px;color:var(--ink-f,rgba(28,43,69,.55));margin-bottom:12px;
  padding-bottom:12px;border-bottom:1px solid var(--line,#E5DFD0)}
.rv-points{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.rv-points li{font-size:13.5px;line-height:1.8;color:var(--ink,#1C2B45);padding-left:15px;position:relative}
.rv-points li::before{content:"";position:absolute;left:0;top:.68em;width:5px;height:5px;border-radius:50%;background:#C9A24B}
.rv-points b{font-weight:700;color:var(--navy,#0F2A52)}
.rv-fix{font-size:13px;line-height:1.8;color:var(--ink,#1C2B45);background:#F7F4EC;padding:12px 14px;border-radius:3px}
.rv-fix b{color:#A8832F;font-weight:700;margin-right:7px}

/* 자료 */
.rv-fwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.rv-file{display:flex;align-items:center;gap:11px;border:1px solid var(--line,#E5DFD0);padding:13px 15px;
  background:#fff;transition:.25s}
.rv-file:hover{border-color:#C9A24B;background:#FBF9F3}
.rv-ficon{font-size:10.5px;font-weight:700;color:#fff;background:#A8832F;padding:4px 6px;border-radius:2px;flex:none}
.rv-fname{font-size:13.5px;font-weight:700;color:var(--navy,#0F2A52)}
.rv-fmeta{font-size:11.5px;color:var(--ink-f,rgba(28,43,69,.5));margin-left:auto;white-space:nowrap}

/* CTA */
.rv-cta{background:var(--navy,#0F2A52);color:#F5F1E8;padding-block:clamp(48px,7vh,84px);text-align:left}
.rv-cta h2{font-size:clamp(22px,3.4vw,40px);font-weight:700;letter-spacing:-.045em;color:#fff;margin-bottom:16px}
.rv-cta p{max-width:640px;font-size:clamp(14px,1.6vw,16.5px);line-height:1.9;color:rgba(245,241,232,.76);margin-bottom:26px}
.rv-ctabtns{display:flex;gap:10px;flex-wrap:wrap}
.rv-cta .btn{border-color:#C9A24B;background:#C9A24B;color:#0F2A52}
.rv-cta .btn:hover{background:#E6C87E;border-color:#E6C87E}
.rv-cta .btn--ghost{background:transparent;color:#E6C87E}
.rv-cta .btn--ghost:hover{background:#C9A24B;color:#0F2A52}

@media(max-width:860px){
  .rv-ins{grid-template-columns:1fr}
  .rv-tabs{top:64px}
}
@media(max-width:768px){
  .nav__links{display:none}
  .rv-back{display:block}
  .rv-tab{padding:13px 14px 11px}
  .rv-tab b{font-size:13px}
}

/* 자료와 방법 */
.rv-method{background:var(--paper-2,#F7F4EC);padding-block:clamp(34px,5vh,56px)}
.rv-method .rv-sub{margin-top:0}
.rv-mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(14px,1.8vw,22px)}
.rv-mgrid div{background:#fff;border:1px solid var(--line,#E5DFD0);padding:16px 18px}
.rv-mgrid b{display:block;font-size:13px;font-weight:700;color:var(--navy,#0F2A52);margin-bottom:8px}
.rv-mgrid p{font-size:12.5px;line-height:1.8;color:var(--ink-f,rgba(28,43,69,.62))}
.rv-mgrid p b{display:inline;font-size:inherit;color:var(--gold-dk,#A8832F)}


/* ── 다뤄진 유형·소재 ── */
.rv-units{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.rv-unit{border-left:3px solid #C9A24B;padding:2px 0 2px 14px}
.rv-unit b{display:block;font-size:13.5px;font-weight:700;color:var(--navy,#0F2A52);margin-bottom:5px}
.rv-unit p{font-size:13px;line-height:1.8;color:var(--ink-f,rgba(28,43,69,.62))}

/* ── 문항 전문 펼침 ── */
/* 행 전체가 토글. 마우스를 올리면 손 모양이 되고, 우측 화살표가 방향을 알려준다. */
.rv-row{cursor:pointer;transition:background .18s}
.rv-row:focus-visible{outline:2px solid #C9A24B;outline-offset:-2px}
.rv-tbl .chev{width:42px;text-align:right;padding-right:14px}
.rv-tbl .chev span{display:inline-block;width:8px;height:8px;border-right:2px solid var(--ink-f,rgba(28,43,69,.45));
  border-bottom:2px solid var(--ink-f,rgba(28,43,69,.45));transform:rotate(45deg) translateY(-2px);
  transition:transform .25s var(--ease,cubic-bezier(.16,1,.3,1)),border-color .25s}
.rv-row:hover .chev span{border-color:#A8832F}
.rv-row.open .chev span{transform:rotate(-135deg) translateY(-2px);border-color:#A8832F}
.rv-row.open td{background:#F2EFE6}
.rv-qrow{display:none}
.rv-qrow.on{display:table-row}
.rv-qrow td{background:#FBF9F3;padding:0!important}
.rv-qbody{font:400 15px/1.95 'Pretendard Variable','Pretendard','Noto Sans KR',sans-serif;
  color:var(--ink,#1C2B45);padding:22px clamp(16px,2.4vw,30px);margin:0;
  max-height:620px;overflow:auto;border-left:3px solid #C9A24B}
.rv-qbody p{margin:0 0 12px;max-width:none;text-align:left;word-break:keep-all;overflow-wrap:anywhere}
.rv-qbody p:last-child{margin-bottom:0}
.rv-qbody .q-stem{font-weight:700;color:var(--navy,#0F2A52);margin-bottom:14px}
.rv-qbody .q-para{font-weight:700;color:#A8832F;margin:14px 0 6px}
.rv-qbody .q-note{font-size:13px;color:var(--ink-f,rgba(28,43,69,.55));margin-top:14px}
.rv-qbody .q-hr{border:0;border-top:1px dashed var(--line,#E5DFD0);margin:18px 0}
.rv-qbody ol.q-ch{list-style:none;counter-reset:ch;margin:14px 0 0;padding:0;
  display:grid;grid-template-columns:1fr;gap:8px}
.rv-qbody ol.q-ch li{counter-increment:ch;position:relative;padding-left:30px;font-size:14.5px;line-height:1.75}
.rv-qbody ol.q-ch li::before{content:counter(ch);position:absolute;left:0;top:.1em;width:20px;height:20px;
  border-radius:50%;border:1px solid var(--line,#E5DFD0);color:var(--navy,#0F2A52);
  font:700 11px/19px sans-serif;text-align:center}
@media(min-width:900px){.rv-qbody ol.q-ch{grid-template-columns:1fr 1fr;gap:8px 26px}}

/* ── 문항 해설 카드 ── */
.rv-card header{align-items:baseline}
.rv-card h4{font-size:15.5px;line-height:1.5}
.rv-lang{font-size:13px;line-height:1.8;color:var(--ink,#1C2B45);background:#F7F4EC;
  padding:11px 13px;border-radius:3px;margin-bottom:12px}
.rv-lang b{color:#A8832F;font-weight:700;margin-right:6px}
.rv-steps{list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:9px;margin-bottom:13px}
.rv-steps li{counter-increment:s;font-size:13.5px;line-height:1.8;color:var(--ink,#1C2B45);
  padding-left:26px;position:relative}
.rv-steps li::before{content:counter(s);position:absolute;left:0;top:.15em;width:18px;height:18px;
  border-radius:50%;background:var(--navy,#0F2A52);color:#F5F1E8;font:700 11px/18px sans-serif;text-align:center}

/* ── 예정 회차 ── */
.rv-badge{display:inline-block;font-size:12px;font-weight:700;vertical-align:middle;
  background:#C9A24B;color:var(--navy,#0F2A52);padding:4px 10px;border-radius:3px;margin-left:10px}
.rv-soon .rv-units{margin-top:6px}

@media(max-width:768px){
  .rv-pick{top:64px}
  .rv-tbl .open{width:88px}
  .rv-open{padding:6px 8px;font-size:11.5px}
}

/* ── 그 해의 서사 · 예측과 검증 ── */
.rv-story{background:var(--navy,#0F2A52);color:#F5F1E8;padding:clamp(20px,2.6vw,30px);margin:20px 0 4px;
  border-left:4px solid #C9A24B}
.rv-storylab{font-size:11.5px;font-weight:700;letter-spacing:.12em;color:#C9A24B;margin-bottom:10px}
.rv-story h4{font-family:'Noto Serif KR',serif;font-weight:700;font-size:clamp(19px,2.6vw,28px);
  line-height:1.4;letter-spacing:-.035em;color:#fff;margin-bottom:14px}
.rv-storybody{font-size:14.5px;line-height:1.95;color:rgba(245,241,232,.82)}
.rv-pred{margin-top:18px;padding-top:16px;border-top:1px solid rgba(201,162,75,.35)}
.rv-pred b{display:block;font-size:12px;font-weight:700;letter-spacing:.1em;color:#E6C87E;margin-bottom:8px}
.rv-pred p{font-size:14px;line-height:1.95;color:rgba(245,241,232,.86)}

/* ── 중요도 표시 ── */
.rv-star{display:inline-block;margin-right:5px;font-size:12px;line-height:1}
.rv-star.crit{color:#C0392B}
.rv-star.base{color:#1B4380;font-size:9px;vertical-align:1px}
.rv-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin:-6px 0 12px;font-size:12.5px;
  color:var(--ink-f,rgba(28,43,69,.62))}
.rv-legend span{display:flex;align-items:center;gap:6px}
.rv-legend b{font-weight:700}
.rv-tbl tr.imp-crit td{background:#FDF3F1}
.rv-tbl tr.imp-crit .no{box-shadow:inset 3px 0 0 #C0392B}
.rv-tbl tr.imp-base .no{box-shadow:inset 3px 0 0 rgba(27,67,128,.35)}
.rv-tbl tr:hover td{background:#F2EFE6}

/* ── 학년 선택 ── */
.rv-grades{display:flex;gap:6px;padding:12px var(--pad) 0}
.rv-gp{flex:none;border:1px solid var(--navy,#0F2A52);background:#fff;cursor:pointer;
  padding:9px 18px;font:700 14px/1 inherit;color:var(--navy,#0F2A52);transition:.2s;border-radius:3px}
.rv-gp span{display:block;font-weight:400;font-size:11px;opacity:.6;margin-top:3px}
.rv-gp.on{background:var(--navy,#0F2A52);color:#F5F1E8}
.rv-gp.on span{opacity:.75}
.rv-yrow{display:none;gap:6px;overflow-x:auto}
.rv-yrow.on{display:flex}
.rv-years{padding:10px var(--pad) 0}

/* ── 회차별 전망 / 신호 확인 ── */
.rv-outlook{background:var(--navy,#0F2A52);color:#F5F1E8;padding:clamp(18px,2.4vw,28px);
  margin:18px 0 4px;border-left:4px solid #C9A24B;border-radius:2px}
.rv-olab{font-size:12px;font-weight:700;letter-spacing:.1em;color:#E6C87E;margin-bottom:10px}
.rv-obody{font-size:15px;line-height:1.95;color:rgba(245,241,232,.88);word-break:keep-all}

/* ── 문항별 해설 (지문 아래) ── */
.rv-explain{margin-top:22px;padding-top:20px;border-top:2px solid #C9A24B}
.ex-h{font-size:12px;font-weight:700;letter-spacing:.14em;color:#A8832F;margin-bottom:14px}
.ex-row{display:grid;grid-template-columns:112px 1fr;gap:14px;margin-bottom:13px;align-items:start}
.ex-row>b{font-size:12.5px;font-weight:700;color:var(--navy,#0F2A52);padding-top:2px;
  border-right:1px solid var(--line,#E5DFD0);padding-right:12px;text-align:right}
.ex-row>p,.ex-row>ol{font-size:14.5px;line-height:1.9;color:var(--ink,#1C2B45);margin:0;word-break:keep-all}
.ex-key>p{background:#FBF6E9;padding:11px 13px;border-radius:3px}
.ex-trap>p{background:#FDF3F1;padding:11px 13px;border-radius:3px}
.ex-steps{list-style:none;counter-reset:x;padding:0}
.ex-steps li{counter-increment:x;position:relative;padding-left:26px;margin-bottom:8px}
.ex-steps li:last-child{margin-bottom:0}
.ex-steps li::before{content:counter(x);position:absolute;left:0;top:.2em;width:18px;height:18px;
  border-radius:50%;background:var(--navy,#0F2A52);color:#F5F1E8;font:700 11px/18px sans-serif;text-align:center}
@media(max-width:700px){
  .ex-row{grid-template-columns:1fr;gap:5px}
  .ex-row>b{border-right:0;padding-right:0;text-align:left;color:#A8832F}
}

.rv-legend-note{margin:-4px 0 14px;font-size:12.5px;line-height:1.75;color:var(--ink-f,rgba(28,43,69,.6));
  max-width:78ch;word-break:keep-all}
