/* 論述の模擬試験(exam-guide/ronjutsu-moshi/)
   枠線と影は使わず、余白とクリーム色の面で区切る(tone.css の方針)。 */
.rm { --rm-navy:#29435e; --rm-ink:#2f3440; --rm-muted:#6f6b63; --rm-coral:#ef8064; --rm-link:#b0573d;
  --rm-surface:#fffdf8; --rm-cream:#f7f0dc; --rm-lemon:#fdf6dd; --rm-grass:#eef4dd; --rm-sky:#e8f4fa; --rm-green:#3f6247;
  max-width:1160px; margin:0 auto; padding:0 20px 72px; color:var(--rm-ink); }
.rm [hidden] { display:none !important; }
.rm p { margin:0; }
.rm-narrow { max-width:800px; margin:0 auto; }
/* このページは <wbr> を使わない(文章を画面で組み立てるため)。文節で折る指定に対応していないブラウザでは、ふつうの折り返しになる */
.rm, .rm * { line-break:strict; word-break:normal; overflow-wrap:anywhere; }
/* 文節で折るのは、見出しや短い札だけ。長い文は、行の右はしをそろえる */
.rm :is(h1, h2, h3, label, button, .rm-round__theme, .rm-score__head, .rm-hero__lede, .rm-lead, .rm-facts span, .rm-more b) { word-break:auto-phrase; }

/* ---------- 入口 ---------- */
.rm-hero { text-align:center; padding:8px 0 4px; }
.rm-hero__en { font-size:.75rem; font-weight:700; letter-spacing:.24em; color:#8a9a82; }
.rm-hero h1 { margin:10px 0 0; font-size:2.125rem; line-height:1.4; letter-spacing:.04em; color:var(--rm-navy); }
.rm-hero h1 small { display:block; margin-top:6px; font-size:1rem; font-weight:700; letter-spacing:.12em; color:var(--rm-coral); }
.rm-hero__lede { max-width:34em; margin:18px auto 0 !important; font-size:1.0625rem; line-height:2; text-wrap:balance; }
.rm-says { max-width:640px; margin:28px auto 0; }
.rm .rm-letter { max-width:640px; margin:36px auto 0; padding:24px 26px 16px; border-radius:22px; background:var(--rm-lemon); }
.rm .rm-letter p { margin:0 0 10px !important; font-size:.9375rem; line-height:1.95; }
.rm-four { list-style:none; counter-reset:four; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:30px 0 0; padding:0; }
.rm-four li { counter-increment:four; padding:22px 18px 20px; border-radius:22px; background:var(--rm-surface); text-align:center; }
.rm-four li:nth-child(2) { background:var(--rm-lemon); } .rm-four li:nth-child(3) { background:var(--rm-grass); } .rm-four li:nth-child(4) { background:var(--rm-sky); }
.rm-four__q { font-size:.75rem; font-weight:700; letter-spacing:.12em; color:var(--rm-coral); }
.rm-four b { display:block; word-break:keep-all; margin-top:4px; font-size:1.125rem; line-height:1.5; color:var(--rm-navy); }
.rm-four p { margin-top:8px !important; font-size:.875rem; line-height:1.85; text-wrap:balance; word-break:auto-phrase; }
.rm-fine--center { text-align:center; }
.rm-official { max-width:800px; margin:28px auto 0; padding:18px 30px; border-radius:24px; background:var(--rm-surface); }
.rm-official > div { display:grid; grid-template-columns:6.5em minmax(0,1fr); gap:16px; padding:12px 0; }
.rm-official dt { font-weight:700; color:var(--rm-navy); }
.rm-official dd { margin:0; font-size:.9375rem; line-height:1.9; }
.rm-facts { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:40px 0 0; padding:0; }
.rm-facts li { padding:20px 12px 18px; border-radius:20px; background:var(--rm-surface); text-align:center; }
.rm-facts li:nth-child(2) { background:var(--rm-lemon); } .rm-facts li:nth-child(3) { background:var(--rm-grass); } .rm-facts li:nth-child(4) { background:var(--rm-sky); }
.rm-facts b { display:block; font-size:1.5rem; line-height:1.3; color:var(--rm-navy); letter-spacing:.02em; }
.rm-facts span { display:block; margin-top:4px; font-size:.8125rem; font-weight:700; letter-spacing:.06em; color:var(--rm-muted); }
.rm-h2 { margin:72px 0 0 !important; font-size:1.625rem !important; line-height:1.5; letter-spacing:.06em; color:var(--rm-navy); text-align:center; }
.rm-lead { max-width:36em; margin:14px auto 0 !important; font-size:.9375rem; line-height:1.95; color:var(--rm-muted); text-align:center; text-wrap:balance; }

.rm-rounds { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin:32px 0 0; padding:0; }
.rm-round { flex:0 1 calc((100% - 32px) / 3); min-width:280px; display:flex; flex-direction:column; padding:26px 26px 24px; border-radius:24px; background:var(--rm-surface); }
.rm-round { text-align:center; }
.rm-face { display:block; border-radius:50%; }
.rm-round__face { margin:0 auto 12px; }
.rm-round__tag { min-height:26px; margin-bottom:10px; }
.rm-score__face { margin:0 auto 12px; }
.rm-case__box--who { position:relative; padding-right:76px; min-height:76px; }
.rm-case__face { position:absolute; right:0; top:10px; }
.rm-round__head { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 10px; min-height:28px; }
.rm-round__no { font-size:.875rem; font-weight:700; letter-spacing:.14em; color:var(--rm-coral); }
.rm-round__best { padding:3px 12px; border-radius:99px; background:var(--rm-grass); font-size:.75rem; font-weight:700; color:var(--rm-green); }
.rm-round__best b { font-size:.9375rem; }
.rm-round__theme { margin-top:8px !important; font-size:1.25rem; font-weight:700; line-height:1.55; color:var(--rm-navy); text-wrap:balance; }
.rm-round__who { margin-top:6px !important; font-size:.875rem; color:var(--rm-muted); }
.rm-round__act { display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:auto; padding-top:20px; }
.rm-linkbtn { appearance:none; border:0; padding:6px 0; background:none; font:inherit; font-size:.875rem; font-weight:700; color:var(--rm-link); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.rm-linkbtn:hover { color:var(--rm-coral); }

.rm-log { list-style:none; max-width:800px; margin:28px auto 0; padding:0; display:grid; gap:8px; }
.rm-log__row { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto auto; align-items:center; gap:6px 16px; padding:14px 22px; border-radius:18px; background:var(--rm-surface); }
.rm-log__day { font-size:.8125rem; color:var(--rm-muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.rm-log__name { font-weight:700; color:var(--rm-navy); line-height:1.6; }
.rm-log__ps { display:flex; gap:4px; }
.rm-log__p { width:10px; height:10px; border-radius:50%; background:#e6dfcf; }
.rm-log__p.is-ok { background:var(--rm-green); }
.rm-log__pt { font-size:.8125rem; color:var(--rm-muted); white-space:nowrap; }
.rm-log__pt b { font-size:1.375rem; color:var(--rm-coral); font-variant-numeric:tabular-nums; }
.rm-log__act { grid-column:5; grid-row:1; display:flex; align-items:center; gap:14px; white-space:nowrap; }
.rm-log__del { appearance:none; border:0; padding:4px 0; background:none; font:inherit; font-size:.75rem; color:var(--rm-muted); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.rm-log__memo { grid-column:1 / -1; grid-row:2; padding:8px 14px; border-radius:10px; background:var(--rm-lemon); font-size:.875rem; line-height:1.75; }
.rm-memo { max-width:640px; margin:22px auto 0; padding:18px 22px 20px; border-radius:20px; background:var(--rm-lemon); }
.rm-memo__label { display:block; font-size:.875rem; font-weight:700; color:var(--rm-navy); }
.rm-memo__label small { margin-left:10px; font-size:.75rem; font-weight:500; color:var(--rm-muted); }
.rm-memo__ta { display:block; width:100%; margin-top:10px; padding:12px 14px; border:0; border-radius:12px; background:#fffdf8; font:inherit; font-size:1rem; line-height:1.8; color:var(--rm-ink); resize:vertical; }
.rm-memo__ta:focus { outline:2px solid #9fc0d8; outline-offset:2px; }
.rm-before { list-style:none; margin:28px auto 0; padding:28px 30px; max-width:800px; border-radius:24px; background:var(--rm-cream); }
.rm-before li { position:relative; padding-left:22px; font-size:.9375rem; line-height:1.95; }
.rm-before li + li { margin-top:10px; }
.rm-before li::before { content:""; position:absolute; left:2px; top:.82em; width:8px; height:8px; border-radius:50%; background:var(--rm-coral); }
.rm-before b { color:var(--rm-navy); }

/* ---------- 試験中 ---------- */
body.rm-in-exam .site-header { position:static; }
body.rm-in-exam :is(.bottom-nav, .search-fab, .cta-fab, .page-scene) { display:none !important; }
.rm-bar { position:sticky; top:0; z-index:60; display:flex; align-items:center; gap:14px; margin:0 -20px; padding:10px 20px; background:rgba(245,242,235,.94); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.rm-bar__round { font-size:.9375rem; font-weight:700; letter-spacing:.1em; color:var(--rm-navy); white-space:nowrap; }
.rm-tabs { display:none; padding:3px; border-radius:99px; background:#e9e3d4; }
.rm-tabs button { appearance:none; border:0; padding:7px 16px; border-radius:99px; background:none; font:inherit; font-size:.875rem; font-weight:700; color:var(--rm-muted); cursor:pointer; }
.rm-tabs button[aria-pressed="true"] { background:var(--rm-surface); color:var(--rm-navy); }
.rm-clock { margin-left:auto !important; display:flex; align-items:baseline; gap:8px; padding:6px 18px; border-radius:99px; background:var(--rm-surface); color:var(--rm-navy); white-space:nowrap; }
.rm-clock small { font-size:.75rem; font-weight:700; letter-spacing:.1em; color:var(--rm-muted); }
.rm-clock b { font-size:1.375rem; font-variant-numeric:tabular-nums; letter-spacing:.04em; line-height:1.3; }
.rm-clock.is-warn { background:var(--rm-lemon); }
.rm-clock.is-last { background:#fbe4dc; color:#b3412b; }
.rm-bar .button { padding:10px 22px; font-size:.9375rem; white-space:nowrap; }
.rm-live { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }

.rm-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:start; margin-top:14px; }
.rm-case { position:sticky; top:72px; max-height:calc(100vh - 88px); overflow:auto; padding:30px 32px 34px; border-radius:24px; background:var(--rm-surface); overscroll-behavior:contain; }
.rm-case__title { margin:0 0 14px !important; font-size:1.0625rem !important; letter-spacing:.12em; color:var(--rm-navy); text-align:center !important; }
.rm-case__box { padding:12px 0 14px; font-size:.9375rem; line-height:1.9; }
.rm-case__label { font-weight:700; color:var(--rm-navy); }
span.rm-case__label { margin-right:.6em; }
.rm-case__sub { font-size:.8125rem; color:var(--rm-muted); }
.rm-case__ryaku { text-align:center; color:var(--rm-muted); }
.rm-ryaku { font-weight:700; color:var(--rm-coral); letter-spacing:.06em; }
.rm-talk { margin-top:14px; font-size:1rem; line-height:2.05; }
.rm-talk p + p { margin-top:14px !important; }
.rm-talk__cl { text-indent:1em; }
.rm-talk__cc { color:#3d5a78; font-weight:500; }
.rm-talk + .rm-case__ryaku { margin-top:14px !important; }
.rm-talk__cc.is-b .rm-ptext { text-decoration:underline; text-decoration-color:var(--rm-coral); text-decoration-thickness:2px; text-underline-offset:6px; }
.rm-mk { padding:.12em 0; border-radius:3px; color:inherit; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.rm-mk--y { background:#ffe873; } .rm-mk--p { background:#ffc9d4; }
.rm-pens { position:sticky; top:-30px; z-index:2; display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-30px -32px 18px; padding:14px 32px 12px; background:var(--rm-surface); }
.rm-pen { appearance:none; display:inline-flex; align-items:center; gap:7px; padding:6px 14px 6px 10px; border:0; border-radius:99px; background:#f3eee0; font:inherit; font-size:.8125rem; font-weight:700; color:var(--rm-muted); cursor:pointer; }
.rm-pen::before { content:""; width:14px; height:14px; border-radius:50%; background:#fff; }
.rm-pen--y::before { background:#ffe873; } .rm-pen--p::before { background:#ffc9d4; }
.rm-pen--e::before { border-radius:3px; background:#cfc7b4; }
.rm-pen[aria-pressed="true"] { background:var(--rm-navy); color:#fff; }
.rm .rm-pens__clear { font-size:.8125rem; padding:4px 0; }
.rm-pens__how { margin-left:auto; font-size:.75rem; color:var(--rm-muted); }
.rm-case ::selection { background:#cfe3f3; }
.rm-under__tag { font-size:.875rem; font-weight:700; color:var(--rm-coral); white-space:nowrap; }

.rm-sheet { display:grid; gap:14px; }
.rm-q { padding:22px 24px 16px; border-radius:22px; background:var(--rm-surface); }
.rm-q__head { display:flex; align-items:center; gap:10px; }
.rm-q__no { font-size:1.0625rem; font-weight:700; letter-spacing:.06em; color:var(--rm-navy); }
.rm-q__pt { padding:2px 11px; border-radius:99px; background:var(--rm-sky); font-size:.75rem; font-weight:700; color:#3d5a78; }
.rm-q__ask { margin-top:8px !important; font-size:.9375rem; line-height:1.85; }
.rm-q__ta { display:block; width:100%; margin-top:12px; padding:14px 16px; border:0; border-radius:14px; background:#f6f2e7; font:inherit; font-size:1rem; line-height:1.9; color:var(--rm-ink); resize:vertical; }
.rm-q__ta:focus { outline:2px solid #9fc0d8; outline-offset:2px; background:#fbf8ef; }
.rm-q__lines { margin-left:auto; font-size:.75rem; font-weight:700; color:var(--rm-muted); }
.rm-q__meter { display:flex; align-items:center; gap:12px; margin-top:10px; }
.rm-q__track { flex:1; height:6px; border-radius:99px; background:#ece6d6; overflow:hidden; }
.rm-q__fill { display:block; height:100%; width:0; border-radius:99px; background:#9bb58a; transition:width .15s; }
.rm-q__count { font-size:.75rem; color:var(--rm-muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
.rm-q__count b { font-size:.9375rem; color:var(--rm-navy); }
.rm-q.is-over .rm-q__fill { background:#d9573d; }
.rm-q.is-over .rm-q__count b { color:#c2452d; }
.rm-q__over { margin-top:6px !important; font-size:.8125rem; font-weight:700; line-height:1.7; color:#c2452d; }
.rm-sheet__end { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 22px; margin-top:24px !important; }

.rm-dialog { max-width:min(420px, calc(100vw - 40px)); padding:30px 28px 26px; border:0; border-radius:24px; background:var(--rm-surface); color:var(--rm-ink); text-align:center; }
.rm-dialog::backdrop { background:rgba(41,67,94,.42); }
.rm-dialog h2 { margin:0 !important; font-size:1.25rem !important; color:var(--rm-navy); }
.rm-dialog p { margin-top:10px !important; font-size:.9375rem; line-height:1.85; }
.rm-dialog__act { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px 20px; margin-top:22px !important; }

/* ---------- 採点のあと ---------- */
.rm-score { max-width:800px; margin:8px auto 0; padding:38px 32px 30px; border-radius:28px; background:var(--rm-surface); text-align:center; }
.rm-score__round { font-size:.875rem; font-weight:700; letter-spacing:.08em; color:var(--rm-muted); }
.rm-score__timeup { display:inline-block; margin-top:12px !important; padding:4px 16px; border-radius:99px; background:var(--rm-lemon); font-size:.8125rem; font-weight:700; }
.rm-score__num { margin-top:8px !important; color:var(--rm-navy); line-height:1.1; }
.rm-score__num b { font-size:5rem; letter-spacing:.02em; font-variant-numeric:tabular-nums; }
.rm-score__num span { margin-left:6px; font-size:1.125rem; font-weight:700; color:var(--rm-muted); }
.rm-score__head { margin-top:8px !important; font-size:1.3125rem; font-weight:700; line-height:1.6; color:var(--rm-navy); text-wrap:balance; }
.rm-score__time { margin-top:6px !important; font-size:.8125rem; color:var(--rm-muted); }
.rm-bars { list-style:none; display:grid; gap:10px; max-width:520px; margin:26px auto 0; padding:0; }
.rm-bars li { display:grid; grid-template-columns:7.2em minmax(0,1fr) 3.4em; align-items:center; gap:12px; font-size:.875rem; }
.rm-bar__name { font-weight:700; color:var(--rm-navy); text-align:left; white-space:nowrap; }
.rm-bar__track { height:10px; border-radius:99px; background:#ece6d6; overflow:hidden; }
.rm-bar__fill { display:block; height:100%; border-radius:99px; background:var(--rm-coral); transition:width .5s cubic-bezier(.2,.7,.2,1); }
.rm-bar__num { text-align:right; color:var(--rm-muted); font-variant-numeric:tabular-nums; }
.rm-bar__num b { font-size:1.0625rem; color:var(--rm-navy); }
.rm-score__note { max-width:36em; margin:26px auto 0 !important; font-size:.8125rem; line-height:1.9; color:var(--rm-muted); text-align:left; }
.rm-score__note strong { color:var(--rm-ink); }

.rm-card { max-width:800px; margin:20px auto 0; padding:30px 32px 32px; border-radius:24px; background:var(--rm-surface); }
.rm-lead + .rm-card { margin-top:32px; }
.rm-card__head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.rm-card__title { margin:0 !important; font-size:1.3125rem !important; letter-spacing:.06em; color:var(--rm-navy); text-align:left !important; }
.rm-card__score { color:var(--rm-muted); font-size:.875rem; font-weight:700; white-space:nowrap; }
.rm-card__score b { font-size:1.75rem; color:var(--rm-coral); font-variant-numeric:tabular-nums; }
.rm-card__ask { margin-top:6px !important; font-size:.875rem; line-height:1.85; color:var(--rm-muted); }
.rm-card__sub, .rm-yours__label, .rm-model__label, .rm-note__label { font-size:.8125rem; font-weight:700; letter-spacing:.1em; color:var(--rm-navy); }
.rm :is(.rm-card__sub, .rm-yours__label, .rm-model__label) small { margin-left:10px; font-size:.75rem; font-weight:500; letter-spacing:0; color:var(--rm-muted); }
.rm-yours { margin-top:20px; padding:16px 20px 18px; border-radius:16px; background:#f6f2e7; }
.rm-yours__text, .rm-model__text { margin-top:6px !important; font-size:.9375rem; line-height:1.95; white-space:pre-wrap; }
.rm-card__sub { margin-top:26px !important; }
.rm-checks { list-style:none; margin:10px 0 0; padding:0; display:grid; gap:6px; }
.rm-check__btn { appearance:none; display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:12px; width:100%; padding:10px 14px; border:0; border-radius:14px; background:#f6f2e7; font:inherit; font-size:.9375rem; line-height:1.7; color:var(--rm-ink); text-align:left; cursor:pointer; }
.rm-check__btn:hover { background:#f0ebdc; }
.rm-check__mark { width:28px; height:28px; border-radius:50%; background:#fff; display:grid; place-items:center; }
.rm-check__mark::before { content:"—"; font-size:.75rem; font-weight:700; color:#b5ad9c; }
.rm-check.is-ok .rm-check__btn { background:var(--rm-grass); }
.rm-check.is-ok .rm-check__mark { background:var(--rm-green); }
.rm-check.is-ok .rm-check__mark::before { content:""; width:11px; height:6px; margin-top:-3px; border-left:2.5px solid #fff; border-bottom:2.5px solid #fff; transform:rotate(-45deg); }
.rm-check__pt { font-size:.8125rem; font-weight:700; color:var(--rm-muted); white-space:nowrap; }
.rm-check.is-ok .rm-check__pt { color:var(--rm-green); }
.rm-check__hint { margin:6px 0 6px 54px !important; font-size:.8125rem; line-height:1.85; color:#8a5a3c; }
.rm-check.is-ok .rm-check__hint { display:none; }
.rm-model { margin-top:24px; padding:18px 22px 20px; border-radius:16px; background:var(--rm-cream); }
.rm-talknote { margin-top:14px; padding:18px 20px 12px; border-radius:16px; background:var(--rm-sky); }
.rm-talknote__label { font-size:.8125rem; font-weight:700; letter-spacing:.1em; color:var(--rm-navy); }
.rm-talknote .mini-say__bubble { max-width:none; font-size:.9375rem; line-height:1.9; }
.rm-cut { color:#b9b09d; text-decoration:line-through; text-decoration-color:#d9cfb8; }
.rm-yours__over { margin-top:8px !important; font-size:.8125rem; font-weight:700; color:#c2452d; }
.rm-check.is-pen .rm-check__btn { background:#fbe9e3; }
.rm-check.is-pen .rm-check__mark { background:#c2452d; }
.rm-check.is-pen.is-ok .rm-check__mark::before { content:"!"; width:auto; height:auto; margin:0; border:0; transform:none; color:#fff; font-size:.875rem; font-weight:700; }
.rm-check.is-pen .rm-check__pt { color:#c2452d; }
.rm-check.is-pen.is-ok .rm-check__hint { display:block; }
.rm-check.is-pen:not(.is-ok) .rm-check__hint { display:none; }
.rm-score__fixed { display:inline-block; margin-top:12px !important; padding:5px 16px; border-radius:99px; background:var(--rm-grass); font-size:.8125rem; font-weight:700; color:var(--rm-green); }
.rm-score__fixed b { font-size:1.0625rem; }
.rm-pillars__label { margin-top:26px !important; font-size:.75rem; font-weight:700; letter-spacing:.2em; color:var(--rm-muted); }
.rm-pillars { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:8px; max-width:600px; margin:10px auto 0; padding:0; }
.rm-pillar { padding:14px 8px 12px; border-radius:16px; background:#f6f2e7; }
.rm-pillar__mark { display:grid; place-items:center; width:30px; height:30px; margin:0 auto 8px; border-radius:50%; background:#fff; }
.rm-pillar__mark::before { content:"×"; font-weight:700; color:#c2452d; line-height:1; }
.rm-pillar b { display:block; font-size:.875rem; line-height:1.45; color:var(--rm-navy); }
.rm-pillar small { display:block; margin-top:4px; font-size:.6875rem; color:var(--rm-muted); }
.rm-pillar.is-ok { background:var(--rm-grass); }
.rm-pillar.is-ok .rm-pillar__mark { background:var(--rm-green); }
.rm-pillar.is-ok .rm-pillar__mark::before { content:""; width:11px; height:6px; margin-top:-3px; border-left:2.5px solid #fff; border-bottom:2.5px solid #fff; transform:rotate(-45deg); }
.rm-pillars + .rm-bars { margin-top:22px; }

.rm-tips { list-style:none; counter-reset:tip; max-width:800px; margin:32px auto 0; padding:0; display:grid; gap:14px; }
.rm-tips > li { counter-increment:tip; position:relative; padding:26px 30px 26px 82px; border-radius:22px; background:var(--rm-surface); }
.rm-tips > li::before { content:counter(tip); position:absolute; left:26px; top:24px; width:38px; height:38px; border-radius:50%; background:var(--rm-coral); color:#fff; font-weight:700; display:grid; place-items:center; }
.rm-tips h3 { margin:0 !important; font-size:1.125rem !important; line-height:1.6; color:var(--rm-navy); text-align:left !important; }
.rm-tips p { margin-top:8px !important; font-size:.9375rem; line-height:1.95; }
.rm-tips .rm-kata { display:block; margin-top:10px; padding:10px 16px; border-radius:12px; background:var(--rm-lemon); font-size:.9375rem; font-weight:700; line-height:1.8; color:var(--rm-navy); }
.rm-time { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:12px 0 0; padding:0; }
.rm-time li { padding:5px 13px; border-radius:99px; background:var(--rm-grass); font-size:.8125rem; font-weight:700; color:var(--rm-green); }
.rm-time li b { margin-left:5px; font-size:.9375rem; }
.rm-fine { max-width:800px; margin:20px auto 0 !important; font-size:.8125rem; line-height:1.9; color:var(--rm-muted); }
.rm-end { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 22px; margin-top:48px !important; }
.rm-more { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; max-width:800px; margin:28px auto 0; padding:0; }
.rm-more a { display:block; height:100%; padding:20px 20px 18px; border-radius:20px; background:var(--rm-surface); text-decoration:none; color:var(--rm-ink); }
.rm-more li:nth-child(2) a { background:var(--rm-lemon); } .rm-more li:nth-child(3) a { background:var(--rm-grass); }
.rm-more b { display:block; font-size:1rem; line-height:1.6; color:var(--rm-navy); }
.rm-more span { display:block; margin-top:4px; font-size:.8125rem; line-height:1.75; color:var(--rm-muted); }
.rm-more a:hover b { color:var(--rm-coral); }

/* ---------- せまい画面 ---------- */
@media (max-width:959px) {
  .rm-tabs { display:flex; }
  .rm-grid { grid-template-columns:minmax(0,1fr); }
  .rm-case { position:static; max-height:none; overflow:visible; }
  .rm-pens { top:58px; }
  .rm-exam[data-tab="case"] .rm-sheetwrap, .rm-exam[data-tab="sheet"] .rm-case { display:none; }
  .rm-totab { display:inline-flex !important; }
}
.rm-totab { display:none !important; }
@media (max-width:640px) {
  .rm { padding:0 16px 56px; }
  .rm-hero h1 { font-size:1.625rem; }
  .rm-hero__lede { font-size:1rem; text-align:left; text-wrap:pretty; }
  .rm-facts { grid-template-columns:repeat(2,1fr); gap:10px; margin-top:32px; }
  .rm-facts b { font-size:1.3125rem; }
  .rm-h2 { margin-top:56px !important; font-size:1.3125rem !important; }
  .rm-lead { text-align:left; text-wrap:pretty; }
  .rm-rounds { gap:12px; }
  .rm-round { flex-basis:100%; min-width:0; padding:22px 22px 20px; }
  .rm-before { padding:22px 20px; }
  .rm-log__row { grid-template-columns:minmax(0,1fr) auto; padding:14px 18px; }
  .rm-log__day { grid-column:1 / -1; }
  .rm-log__ps { grid-column:1; }
  .rm-log__act { grid-column:2; grid-row:3; justify-self:end; }
  .rm-log__pt { grid-column:2; grid-row:2; justify-self:end; }
  .rm-log__memo { grid-row:4; }
  .rm-memo { padding:16px 16px 18px; }
  .rm-bar { margin:0 -16px; padding:8px 12px; gap:8px; }
  .rm-bar__round, .rm-clock small, .rm-bar [data-rm-quit] { display:none; }
  .rm-clock { padding:5px 13px; }
  .rm-clock b { font-size:1.1875rem; }
  .rm-bar .button { padding:9px 16px; font-size:.875rem; }
  .rm-tabs button { padding:7px 13px; }
  .rm-case { padding:24px 20px 26px; border-radius:20px; }
  .rm-pens { top:52px; margin:-24px -20px 14px; padding:12px 20px 10px; border-radius:20px 20px 0 0; }
  .rm-pens__how { flex-basis:100%; margin-left:0; }
  .rm-q { padding:20px 18px 14px; border-radius:20px; }
  .rm-q__ta { font-size:1rem; }
  .rm-score { padding:30px 20px 24px; border-radius:24px; }
  .rm-score__num b { font-size:4.25rem; }
  .rm-score__head { font-size:1.125rem; }
  .rm-bars li { grid-template-columns:6.4em minmax(0,1fr) 3em; gap:8px; font-size:.8125rem; }
  .rm-card { padding:24px 18px 24px; border-radius:20px; }
  .rm-check__btn { grid-template-columns:26px minmax(0,1fr) auto; gap:10px; padding:10px 12px; font-size:.875rem; }
  .rm-check__mark { width:26px; height:26px; }
  .rm-check__hint { margin-left:48px !important; }
  .rm-yours, .rm-model { padding:16px 16px 18px; }
  .rm-talknote { padding:16px 14px 10px; }
  .rm .rm-letter { padding:20px 20px 12px; }
  .rm-four { grid-template-columns:minmax(0,1fr); gap:10px; }
  .rm-four li { padding:20px 20px 18px; }
  .rm-official { padding:6px 20px; }
  .rm-official > div { grid-template-columns:minmax(0,1fr); gap:2px; padding:14px 0; }
  .rm-pillars { grid-template-columns:repeat(2,1fr); }
  .rm-tips > li { padding:66px 20px 22px; }
  .rm-tips > li::before { left:20px; top:18px; }
  .rm-more { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) { .rm-bar__fill { transition:none; } }
@media print {
  .rm-bar, .rm-end, .rm-more, .site-header, .site-footer, .bottom-nav, .breadcrumbs { display:none !important; }
}
