/* ============================================================
 * v3-lp.css — lp-premium.css 系ページの v3 デザイン層
 * ------------------------------------------------------------
 * 読み込み順: 既存CSS(lp-premium.css ほか・インライン<style>) → rin-v3.css → v3-lp.css
 * 前提: <body class="... rin-public">、共通ヘッダー/フッター(_partials/header-rin.html, footer-rin.html)。
 * 適用は tools/apply-v3-shell-lppremiumcss.py が行う。
 *
 * 方針(v3 デザインコード)
 *  - 文字はすべて明朝。色は 近黒 #0A0A0B / 温白 #F5F5F2 / 真鍮 #C08A3E。
 *  - 角は直角、細い罫線、強い影なし。見出しは大きな明朝、ラベルは小さく字間を広く。
 *  - 暗い節と温白の節を交互に置く。
 *
 * 暗/温白の切り替え
 *  - body.lp の .sec は「.sec の中で数えて奇数番目」を温白にする(1番目=温白)。
 *  - 個別に変えるときは、その要素に .v3-light(温白)/.v3-dark(近黒)を付ける。自動の交互より優先される。
 *  - 画面いっぱいに地色を伸ばしたい要素には .v3-band を付ける(レイアウト幅は変えずに地色だけ左右へ伸ばす)。
 *  - 注意: rin-v3.css の .light は --paper を「背景色」として使う。lp 系の --paper は「文字色」なので、
 *    このページ群では .light を使わず .v3-light を使うこと。
 *
 * 群専用CSSを足すときの約束
 *  - 色は下のトークン(--ink/--paper/--paper-mute/--lp-body/--hair/--hair-strong/--surface/--brass/--v3-accent-text)で書くと、
 *    暗/温白どちらの節に置いても読める。
 *  - ボタンは .btn(真鍮ベタ)/.btn.ghost(枠)。書体の指定は不要(全要素を明朝に固定済み)。
 * ============================================================ */

/* ---------- tokens ---------- */
:root{
  --v3-serif:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho","Noto Serif JP","Noto Serif CJK JP",serif;
  --v3-ink:#0A0A0B; --v3-paper:#F5F5F2; --v3-brass:#C08A3E; --v3-brass-light:#DDBB84; --v3-brass-deep:#8E6326;

  /* lp-premium のフォント変数をすべて明朝へ */
  --font-display:var(--v3-serif); --font-jp:var(--v3-serif); --font-body:var(--v3-serif);
  --disp:var(--v3-serif); --jp:var(--v3-serif); --mono:var(--v3-serif);

  /* 暗い節(既定) */
  --ink:#0A0A0B; --ink-2:#121110; --surface:#171613;
  --paper:#F5F5F2; --paper-mute:#A9A59C; --lp-body:#CFCBC2;
  --hair:rgba(245,245,242,.14); --hair-strong:rgba(245,245,242,.26);
  --brass:#C08A3E; --v3-accent-text:#DDBB84; --v3-ghost-line:#C08A3E;
  --lp-canvas:#0A0A0B; --lp-canvas-2:#121110; --lp-surface:#171613; --lp-paper:#F5F5F2; --lp-mute:#A9A59C;
  --lp-hair:rgba(245,245,242,.14); --lp-hair-2:rgba(245,245,242,.26); --canvas-night:#0A0A0B; --on-primary:#F5F5F2; --hairline:rgba(245,245,242,.14);
}

/* 温白の節: トークンを反転する。背景と文字色もここで確定する */
:where(body.rin-public.lp .sec:nth-child(odd of .sec)),
:where(.rin-public .np-header, .rin-public .np-intro, .rin-public .np-footer-next,
       .rin-public .sp-header, .rin-public .sp-intro, .rin-public .sp-after,
       .rin-public .referral-page #terms),
.v3-light{
  color-scheme:light;
  --ink:#F5F5F2; --ink-2:#ECEBE6; --surface:#E8E6DF;
  --paper:#0A0A0B; --paper-mute:#5F5C55; --lp-body:#34322E;
  --hair:rgba(10,10,11,.14); --hair-strong:rgba(10,10,11,.28);
  --brass:#8E6326; --v3-accent-text:#8E6326; --v3-ghost-line:#0A0A0B;
  --lp-canvas:#F5F5F2; --lp-canvas-2:#ECEBE6; --lp-surface:#E8E6DF; --lp-paper:#0A0A0B; --lp-mute:#5F5C55;
  --lp-hair:rgba(10,10,11,.14); --lp-hair-2:rgba(10,10,11,.28); --hairline:rgba(10,10,11,.14);
  --rin-bg:#F5F5F2; --rin-surface:#EAEAE5; --rin-surface-raised:#E1E0D8; --rin-text:#0A0A0B;
  --rin-text-muted:rgba(10,10,11,.66); --rin-border:rgba(10,10,11,.18); --rin-brass-light:#8E6326;
  background-color:#F5F5F2; color:#0A0A0B;
}
.v3-dark{
  color-scheme:dark;
  --ink:#0A0A0B; --ink-2:#121110; --surface:#171613;
  --paper:#F5F5F2; --paper-mute:#A9A59C; --lp-body:#CFCBC2;
  --hair:rgba(245,245,242,.14); --hair-strong:rgba(245,245,242,.26);
  --brass:#C08A3E; --v3-accent-text:#DDBB84; --v3-ghost-line:#C08A3E;
  --rin-bg:#0A0A0B; --rin-surface:#141412; --rin-surface-raised:#221F1A; --rin-text:#F5F5F2;
  --rin-text-muted:#B4B0A6; --rin-border:rgba(245,245,242,.18); --rin-brass-light:#DDBB84;
  background-color:#0A0A0B; color:#F5F5F2;
}
/* 地色を画面幅いっぱいに伸ばす(レイアウト幅・横スクロールには影響しない) */
.rin-public .v3-band,
.rin-public .np-header, .rin-public .np-intro, .rin-public .np-footer-next,
.rin-public .sp-header, .rin-public .sp-intro, .rin-public .sp-after,
.rin-public .referral-page #terms{
  border-image:linear-gradient(var(--ink),var(--ink)) fill 0 // 0 100vw;
}

/* ---------- base ---------- */
/* 全要素を明朝に固定(インライン<style>や英文用の Arial / 等幅指定も含めて上書き) */
.rin-public,
.rin-public *:not(code):not(kbd):not(samp):not(pre),
.rin-public *::before,
.rin-public *::after{font-family:var(--v3-serif)!important}
.rin-public svg text,.rin-public svg g{font-family:var(--v3-serif)!important}

body.rin-public{background:var(--v3-ink);color:var(--v3-paper);line-height:1.8;-webkit-font-smoothing:antialiased}
/* rin-v3.css の p{color:muted} を本文では打ち消し、各部品の色指定(または節の文字色)に従わせる */
:where(.rin-public main) p{color:inherit}
:where(.rin-public main) :is(h1,h2,h3,h4){letter-spacing:-.005em}

/* lp-premium の * {margin:0} で、モーダルの中央寄せ(UAの margin:auto)が消えるのを戻す */
.rin-public dialog:not(.drawer){margin:auto}
.rin-public .header img.mark,.rin-public .footer img.mark{display:block;flex:none}
/* lp-premium の a{text-decoration:none} を、共通部品のうち下線で示すリンクだけ戻す(総合トップと同じ見た目) */
.rin-public .utility a,.rin-public .footer-legal a,.rin-public .back-to-top,.rin-public .mega p a{text-decoration:underline}

/* 幅: 共通ヘッダー/フッターと同じ本文幅に揃える */
.rin-public .wrap{width:var(--content-width);max-width:none;margin-inline:auto;padding-inline:0}

/* ---------- labels ---------- */
.rin-public .kick,
.rin-public .sec-head .h,
.rin-public .hp-crumb{
  display:block;font-size:13px;line-height:1.6;letter-spacing:.2em;font-weight:400;text-transform:uppercase;color:var(--v3-accent-text)
}
.rin-public .kick .b{color:inherit;font-weight:600}
.rin-public .hp-crumb{letter-spacing:.12em;text-transform:none;color:var(--paper-mute);margin-bottom:40px}
.rin-public .hp-crumb a{color:var(--paper-mute);text-decoration:underline;text-underline-offset:4px}
.rin-public .hp-crumb a:hover{color:var(--paper)}

/* ---------- buttons ---------- */
.rin-public .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:48px;padding:10px 24px;border:1px solid var(--v3-brass);border-radius:0;
  background:var(--v3-brass);background-image:none;color:#0A0A0B;
  font-size:15px;font-weight:600;letter-spacing:.02em;text-transform:none;line-height:1.5;
  box-shadow:none;transform:none;transition:filter .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease
}
.rin-public .btn:hover{background:var(--v3-brass);color:#0A0A0B;border-color:var(--v3-brass);transform:none;box-shadow:none;filter:brightness(1.08)}
.rin-public .btn:active{background:#AD7C36;color:#0A0A0B;transform:none}
.rin-public .btn.ghost,.rin-public .btn.teal{background:transparent;color:var(--paper);border-color:var(--v3-ghost-line)}
.rin-public .btn.ghost:hover,.rin-public .btn.teal:hover{background:transparent;color:var(--paper);border-color:var(--paper);filter:none}
.rin-public .btn.sm{min-height:40px;padding:8px 16px;font-size:13px}
.rin-public .btn:disabled{opacity:.45;cursor:not-allowed;filter:none}

/* ---------- hero ---------- */
.rin-public .hero{padding:72px 0 112px;background:var(--ink);border-bottom:0}
.rin-public .hero-grain{opacity:1;background:radial-gradient(55% 75% at 92% 0%,rgba(192,138,62,.16),transparent 64%)}
.rin-public .hero .wave{display:none}
.rin-public .hero .big{
  font-size:clamp(52px,7vw,116px);line-height:1.04;font-weight:500;letter-spacing:-.01em;text-transform:none;color:var(--paper);text-wrap:balance
}
.rin-public .hero .big .mut{color:var(--v3-brass);-webkit-text-stroke:0}
.rin-public .hero-grid{margin-top:56px;padding-top:40px;border-top:1px solid var(--hair);gap:40px}
@media(min-width:900px){.rin-public .hero-grid{grid-template-columns:minmax(0,820px)}}
.rin-public .hero .hp-h1{font-size:clamp(26px,2.5vw,38px);line-height:1.5;font-weight:500;max-width:24em;margin:0 0 26px}
.rin-public .hero-lead{font-size:18px;line-height:1.95;color:var(--lp-body);max-width:40em}
.rin-public .hero-lead b{color:var(--paper);font-weight:600}
.rin-public .hero-sub{font-size:16px;line-height:1.95;color:var(--paper-mute);max-width:44em;margin-top:22px}
.rin-public .hero-cta{margin-top:40px;gap:16px}
.rin-public .hero-note,.rin-public .cta-note,.rin-public .cta-sub{font-size:14px;line-height:1.85;color:var(--paper-mute);max-width:52em}
.rin-public .hero-note{margin-top:18px}
.rin-public .cta-note a{color:var(--paper);text-decoration:underline;text-underline-offset:4px}
.rin-public .cta-note strong{color:var(--paper)}
.rin-public .cta-lead{font-size:18px;line-height:1.95;color:var(--lp-body);max-width:40em;margin:0 0 30px}

/* ---------- sections ---------- */
.rin-public .sec{padding:112px 0;border-bottom:0;background:var(--ink)}
.rin-public .sec-head{gap:0;margin-bottom:56px;max-width:none}
.rin-public .sec-head .h{margin:0 0 22px}
.rin-public .sec-head .h-jp,
.rin-public .sec-head .h + .h-jp{
  font-size:clamp(30px,3.3vw,50px);line-height:1.42;font-weight:400;letter-spacing:-.01em;color:var(--paper);margin:0;max-width:24em;text-wrap:balance
}
.rin-public .sec-head .jp{font-size:17px;line-height:1.95;color:var(--lp-body);max-width:40em;margin:26px 0 0}
.rin-public .extras-h{font-size:22px;line-height:1.5;font-weight:600;color:var(--paper);margin:80px 0 24px}
.rin-public .jp{color:var(--lp-body)}

/* ---------- scoreboard / stats ---------- */
.rin-public .board{background:var(--surface);border-bottom:0}
.rin-public .board .wrap{padding:72px 0}
.rin-public .board-grid{margin-top:0}
.rin-public .board .stat,.rin-public .mentor-board .stat{padding:28px 24px 30px}
.rin-public .board .stat .v,.rin-public .mentor-board .stat .v{
  font-size:clamp(46px,5.2vw,80px);font-weight:300;line-height:1;letter-spacing:-.01em;color:var(--paper)
}
.rin-public .board .stat .v .u{display:block;margin-top:12px;font-size:12px;line-height:1.5;letter-spacing:.04em;vertical-align:baseline;color:var(--v3-accent-text)}
.rin-public .board .stat .k,.rin-public .mentor-board .stat .k{font-size:12px;letter-spacing:.16em;font-weight:400;color:var(--paper-mute);margin-top:18px}
.rin-public .mentor-board .score-note{font-size:11px;letter-spacing:.04em}
.rin-public .board-note{font-size:14px;line-height:1.85;color:var(--paper-mute);margin-top:32px}
@media(min-width:820px){.rin-public .board .stat:first-child,.rin-public .mentor-board .stat:first-child{padding-left:0}}
@media(max-width:819px){.rin-public .board .stat:nth-child(odd),.rin-public .mentor-board .stat:nth-child(odd){padding-left:0}}

/* ---------- numbered lists (steps / arrows) ---------- */
.rin-public .steps{display:grid;grid-template-columns:1fr;gap:0;flex-wrap:nowrap}
.rin-public .step{padding:36px 0;border-top:1px solid var(--hair);gap:40px}
.rin-public .steps .step:last-child{border-bottom:1px solid var(--hair)}
.rin-public .step .idx,
.rin-public .arrow-item .ax{
  font-size:clamp(44px,4.2vw,64px);font-weight:300;line-height:1;letter-spacing:0;color:var(--v3-accent-text);-webkit-text-stroke:0;min-width:1.4em
}
.rin-public .step h3,.rin-public .step h3.jp{font-size:21px;line-height:1.55;font-weight:600;letter-spacing:0;text-transform:none;margin:0 0 10px}
.rin-public .step p{font-size:16px;line-height:1.95;color:var(--lp-body);max-width:40em}
.rin-public .arrows-grid{border-top:1px solid var(--hair)}
.rin-public .arrow-item{padding:36px 0}
@media(min-width:760px){.rin-public .arrow-item{padding:40px 0 8px 36px}.rin-public .arrow-item:first-child{padding-left:0}}
.rin-public .arrow-item .ax{margin-bottom:22px}
.rin-public .arrow-item h3{font-size:22px;line-height:1.5;font-weight:600;margin:0 0 12px}
.rin-public .arrow-item p{font-size:16px;line-height:1.9;color:var(--lp-body)}

/* ---------- callouts / notes ---------- */
.rin-public .beta-callout{
  background:rgba(192,138,62,.1);border:0;border-left:2px solid var(--v3-brass);border-radius:0;
  padding:18px 22px;margin-top:56px;font-size:15.5px;line-height:1.9;color:var(--lp-body);max-width:48em
}
.rin-public .beta-callout strong{color:var(--paper);font-weight:600}
.rin-public .camp-note,.rin-public .cmp-callout,.rin-public .hp-outcome-note,.rin-public .report-note{font-size:14px;line-height:1.85;color:var(--paper-mute)}
.rin-public .cmp-callout strong{color:var(--paper)}
.rin-public .disclaim{border:1px solid var(--hair-strong);border-radius:0;padding:16px 20px;font-size:14px;line-height:1.85;color:var(--paper-mute);background:transparent}
.rin-public .hp-aside{font-size:15.5px;line-height:1.95;color:var(--lp-body);max-width:44em}
.rin-public .hp-aside strong{color:var(--paper)}

/* ---------- tables ---------- */
.rin-public .cmp-table,.rin-public .camp-table{font-size:15px;color:var(--paper)}
.rin-public .cmp-table th,.rin-public .cmp-table td,
.rin-public .camp-table th,.rin-public .camp-table td{padding:18px 16px;border-bottom:1px solid var(--hair);line-height:1.7}
.rin-public .cmp-table thead th,.rin-public .camp-table thead th{
  font-size:14px;letter-spacing:.06em;text-transform:none;font-weight:600;color:var(--paper);border-bottom:1px solid var(--paper);white-space:nowrap
}
.rin-public .cmp-table .rh{font-size:14.5px;letter-spacing:.02em;text-transform:none;font-weight:400;color:var(--lp-body)}
.rin-public .cmp-table td,.rin-public .camp-table td{color:var(--lp-body)}
.rin-public .cmp-table td.us{color:var(--paper)}
.rin-public .cmp-table col.us-col{background:rgba(192,138,62,.12)}
.rin-public .cmp-table th.us,.rin-public .cmp-table td.us{border-left:0;border-right:0}
.rin-public .cmp-table thead th.us{border-top:2px solid var(--v3-brass)}
.rin-public .cmp-table tbody tr:last-child td.us{border-bottom:1px solid var(--hair)}
.rin-public .cmp-table .yes{color:var(--v3-accent-text);font-weight:600}
.rin-public .cmp-table .no{color:var(--paper-mute);opacity:.75}
.rin-public .rec-badge{border-radius:0;background:var(--v3-brass);color:#0A0A0B;font-size:11px;letter-spacing:.06em;padding:2px 8px}
.rin-public .camp-table .wk{font-size:20px;font-weight:500;letter-spacing:0;color:var(--paper)}
.rin-public .camp-table .wk .ph{font-size:11.5px;letter-spacing:.04em;margin-top:4px;color:var(--paper-mute)}
.rin-public .camp-table tr.is-mock td{background:rgba(192,138,62,.08)}
.rin-public .camp-table tr.is-mock td:first-child{border-left:2px solid var(--v3-brass)}
.rin-public .camp-table tr.is-mock .wk{color:var(--v3-accent-text)}

/* ---------- price blocks ---------- */
.rin-public .price-compare{border-top:1px solid var(--hair)}
.rin-public .pc-lbl{font-size:13px;letter-spacing:.14em;text-transform:none;font-weight:400;color:var(--paper-mute)}
.rin-public .pc-cell.us .pc-lbl{color:var(--v3-accent-text)}
.rin-public .pc-cell.us{border-left-color:var(--v3-brass)}
.rin-public .pc-price{font-size:clamp(30px,3vw,44px);line-height:1.3;font-weight:400;letter-spacing:0;margin:16px 0 14px;color:var(--paper)}
.rin-public .pc-note{font-size:15px;line-height:1.9;color:var(--lp-body)}

.rin-public .plan-grid{border-top:1px solid var(--hair)}
.rin-public .plan{padding-top:36px;padding-bottom:36px}
@media(min-width:820px){.rin-public .plan{padding-top:40px;padding-bottom:12px}}
.rin-public .plan h3{font-size:24px;line-height:1.5;font-weight:600;margin:0 0 6px}
.rin-public .plan .lvl{font-size:13.5px;color:var(--paper-mute);margin-bottom:22px}
.rin-public .plan .price-lead{font-size:clamp(28px,2.6vw,38px);line-height:1.3;font-weight:400;letter-spacing:0;margin:0 0 26px}
.rin-public .plan .price-lead small{font-size:13.5px;font-weight:400;color:var(--paper-mute)}
.rin-public .plan li{margin:0;padding:12px 0;border-top:1px solid var(--hair);font-size:15px;line-height:1.8;color:var(--lp-body)}
.rin-public .plan li:before{content:none}

/* ---------- FAQ (camp-premium と houjin の2系統を同じ見た目に) ---------- */
.rin-public .faq{gap:0;max-width:960px;border-top:0;margin-top:0}
.rin-public .faq details{background:transparent;border:0;border-top:1px solid var(--hair-strong);border-radius:0;overflow:visible}
.rin-public .faq details:last-child{border-bottom:1px solid var(--hair-strong)}
.rin-public .faq summary,
.rin-public .faq details[open] summary{font-size:19px;line-height:1.6;font-weight:400;color:var(--paper);padding:24px 56px 24px 0;border-bottom:0}
.rin-public .faq summary:after{content:"＋";right:4px;top:50%;transform:translateY(-50%);font-size:24px;font-weight:300;line-height:1;color:var(--v3-accent-text)}
.rin-public .faq details[open] summary:after{content:"−"}
.rin-public .faq .faq-body{padding:0 56px 28px 0;font-size:16px;line-height:1.95;color:var(--lp-body);max-width:46em}

/* ---------- mentor / proof ---------- */
.rin-public .mentor-body p{font-size:17px;line-height:2;color:var(--lp-body);max-width:40em}
.rin-public .mentor-board{margin-top:64px;border-top:1px solid var(--hair)}
.rin-public .mentor-subhead h3{font-size:clamp(22px,2vw,30px);line-height:1.5;font-weight:500;color:var(--paper)}
.rin-public .mentor-subhead p{font-size:16px;line-height:1.9;color:var(--lp-body)}
.rin-public .mentor-cert{background:var(--surface);border:1px solid var(--hair)}
.rin-public .mentor-cert figcaption{font-size:15px;font-weight:600;border-top:1px solid var(--hair);color:var(--paper)}
.rin-public .mentor-cert figcaption span{font-size:13px;font-weight:400;color:var(--paper-mute)}
/* 画像の背後にずらした真鍮の矩形 */
@media(min-width:720px){
  .rin-public .mentor-certs{position:relative;isolation:isolate;margin:56px 28px 0 0}
  .rin-public .mentor-certs:before{content:"";position:absolute;right:-28px;top:-28px;width:28%;height:46%;background:var(--v3-brass);z-index:-1}
}

/* ---------- 法人ページの部品(houjin のインライン<style>を v3 の見た目へ) ---------- */
.rin-public .hp-download{background:var(--surface);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.rin-public .hp-download .wrap{padding-top:64px;padding-bottom:64px}
.rin-public .hp-download h2{font-size:clamp(22px,2.2vw,32px);line-height:1.5;font-weight:500;color:var(--paper)}
.rin-public .hp-download p{font-size:15.5px;line-height:1.9;color:var(--lp-body)}
.rin-public .fitgrid{border-top:1px solid var(--hair)}
.rin-public .fitcol h3{font-size:20px;font-weight:600;color:var(--paper)}
.rin-public .fitcol li{font-size:16px;line-height:1.85;color:var(--lp-body)}
.rin-public .fitcol li:before{border-radius:0;width:6px;height:6px;top:.78em;background:var(--v3-brass)}
.rin-public .report{background:var(--surface);border:1px solid var(--hair);border-radius:0}
.rin-public .report-head .rh-title{font-size:18px;font-weight:600}
.rin-public .report-tag{border-radius:0;background:var(--v3-brass);color:#0A0A0B;font-size:11px;letter-spacing:.12em;text-transform:none}
.rin-public .report-cat h4{font-size:12px;letter-spacing:.16em;text-transform:none;font-weight:400;color:var(--v3-accent-text)}
.rin-public .report-row .k,.rin-public .report-row .v{font-size:15px}
.rin-public .report-row .v b{color:var(--v3-accent-text);font-weight:600}
.rin-public .roadmap{border-top:1px solid var(--hair)}
.rin-public .rm-bar{height:2px;border-radius:0;background:var(--hair-strong)}
.rin-public .rm-phase.on .rm-bar{background:var(--v3-brass)}
.rin-public .rm-when{font-size:12px;letter-spacing:.16em;text-transform:none;font-weight:400;color:var(--v3-accent-text)}
.rin-public .rm-title{font-size:19px;font-weight:600;color:var(--paper)}
.rin-public .rm-desc{font-size:15px;line-height:1.9;color:var(--lp-body)}
/* SVG 図の固定色を節の色に追従させる */
.rin-public svg [stroke="#34343A"]{stroke:var(--hair-strong)}
.rin-public svg [stroke="#26262A"]{stroke:var(--hair)}
.rin-public svg [stroke="#8A8A85"]{stroke:var(--paper-mute)}
.rin-public svg [fill="#8A8A85"]{fill:var(--paper-mute)}
.rin-public svg [fill="#C9C9C4"]{fill:var(--lp-body)}
.rin-public svg [fill="#F5F5F2"]{fill:var(--paper)}
.rin-public svg circle[fill="#34343A"]{fill:var(--ink)}
.rin-public svg [fill="#C08A3E"]{fill:var(--v3-brass)}

/* ---------- コーチングページの部品 ---------- */
.rin-public .co-p{font-size:17px;line-height:2;color:var(--lp-body)}
.rin-public .co-p a{color:var(--paper)}
.rin-public .co-steps{gap:0;border-top:1px solid var(--hair);margin-top:48px}
.rin-public .co-step{background:transparent;border:0;border-radius:0;padding:36px 32px 12px 0}
@media(min-width:761px){.rin-public .co-step+.co-step{border-left:1px solid var(--hair);padding-left:32px}}
@media(max-width:760px){.rin-public .co-step{padding:32px 0}.rin-public .co-step+.co-step{border-top:1px solid var(--hair)}}
.rin-public .co-step .n{font-size:12px;letter-spacing:.18em;font-weight:400;color:var(--v3-accent-text);margin-bottom:14px}
.rin-public .co-step .t{font-size:22px;font-weight:600;color:var(--paper);margin-bottom:10px}
.rin-public .co-step .b{font-size:15.5px;line-height:1.9;color:var(--lp-body)}
.rin-public .co-items{border-top:1px solid var(--hair)}
.rin-public .co-item{padding:22px 0;gap:8px 32px}
.rin-public .co-item .t{font-size:17px;font-weight:600;color:var(--paper)}
.rin-public .co-item .d{font-size:16px;line-height:1.9;color:var(--lp-body)}
.rin-public .co-price{background:var(--surface);border:0;border-top:2px solid var(--v3-brass);border-radius:0;padding:40px 36px;max-width:720px}
.rin-public .co-price .fig{font-size:clamp(40px,4.4vw,64px);font-weight:400;letter-spacing:0;color:var(--paper)}
.rin-public .co-price .fig small{font-size:14px;font-weight:400;color:var(--paper-mute)}
.rin-public .co-refund{border-radius:0}

/* ---------- 練習ページ(news-practice / speaking-practice)共通 ---------- */
.rin-public .np-header,.rin-public .sp-header{height:auto;display:block;padding:56px 0 0;border-bottom:0}
.rin-public .np-header .np-label,.rin-public .sp-header .sp-label{font-size:13px;letter-spacing:.2em;font-weight:400;color:var(--v3-accent-text)}
.rin-public .np-intro,.rin-public .sp-intro{padding:22px 0 80px}
.rin-public .np-intro h1,.rin-public .sp-intro h1{font-size:clamp(36px,4.4vw,66px);line-height:1.3;font-weight:500;letter-spacing:-.01em;margin:22px 0 26px;color:var(--paper)}
.rin-public .np-intro>p:not(.kick),.rin-public .sp-intro>p:last-child{font-size:18px;line-height:1.95;color:var(--lp-body);text-wrap:pretty}
.rin-public .np-intro .np-meta{font-size:13.5px;color:var(--paper-mute);margin-top:18px}
.rin-public .np-label,.rin-public .sp-label{font-size:12px;letter-spacing:.14em;font-weight:400;color:var(--v3-accent-text)}
.rin-public .np-meta,.rin-public .np-note,.rin-public .sp-note{color:var(--paper-mute)}
.rin-public .np-page textarea,.rin-public .np-page select,
.rin-public .sp-toolbar select,.rin-public .sp-plan select,.rin-public .sp-plan input{
  border-radius:0;background:var(--ink);border:1px solid var(--hair-strong);color:var(--paper)
}
.rin-public .np-details summary,.rin-public .sp-sidebar summary{font-size:15px}

/* news-practice */
.rin-public .np-layout{margin-top:80px;gap:48px}
.rin-public .np-source{border-top:2px solid var(--v3-brass);padding-top:24px}
.rin-public .np-source h2{font-size:26px;line-height:1.55;font-weight:500}
.rin-public .np-source .np-summary{font-size:17px!important;line-height:1.8}
.rin-public .np-source-link{color:var(--v3-accent-text)}
.rin-public .np-lesson{background:var(--surface);border:1px solid var(--hair);border-top:2px solid var(--v3-brass);border-radius:0;padding:40px}
.rin-public .np-lesson progress{height:2px;background:var(--hair-strong)}
.rin-public .np-step h2{font-size:28px;line-height:1.5;font-weight:500}
.rin-public .np-step h3{font-size:17px;font-weight:600}
.rin-public .np-step>p{font-size:15.5px;line-height:1.95}
.rin-public .np-step .np-question{font-size:24px;line-height:1.6;border-bottom-color:var(--hair-strong)}
.rin-public .np-choice,.rin-public .np-check{border-color:var(--hair-strong);padding:14px 16px;font-size:15px}
.rin-public .np-choice:has(input:checked),.rin-public .np-check:has(input:checked){border-color:var(--v3-brass);background:rgba(192,138,62,.08)}
.rin-public .np-feedback{color:var(--v3-accent-text)!important}
.rin-public .np-model{font-size:18px}
.rin-public .np-completed{border-top-color:var(--v3-brass)}
.rin-public .np-completed h3{font-size:22px;font-weight:600}
.rin-public .np-footer-next{margin-top:112px;padding:80px 0;border-top:0}
.rin-public .np-footer-next h2{font-size:clamp(26px,2.8vw,40px);line-height:1.45;font-weight:400}
.rin-public .np-footer-next p:not(.kick){font-size:16px}

/* speaking-practice */
.rin-public .sp-toolbar{margin-top:72px;border-top-color:var(--hair);border-bottom-color:var(--hair)}
.rin-public .sp-toolbar label{font-size:14px;color:var(--lp-body)}
.rin-public .sp-practice{background:var(--surface);border:1px solid var(--hair);border-top:2px solid var(--v3-brass);border-radius:0;padding:40px}
.rin-public .sp-practice h2{font-size:28px;line-height:1.5;font-weight:500}
.rin-public .sp-practice h3{font-size:17px;font-weight:600}
.rin-public .sp-small-label{font-size:12px;letter-spacing:.14em;font-weight:400}
.rin-public .sp-prompt{font-size:clamp(22px,2.2vw,28px);line-height:1.6}
.rin-public .sp-model{font-size:22px}
.rin-public .sp-instruction{color:var(--v3-accent-text)}
.rin-public .sp-cues li{border-radius:0;border-color:var(--hair-strong)}
.rin-public .sp-reflection label{border-color:var(--hair-strong)}
.rin-public .sp-reflection label:has(input:checked){border-color:var(--v3-brass);background:rgba(192,138,62,.08)}
.rin-public .sp-saved #practiceSavedStatus{color:var(--v3-accent-text)}
.rin-public .sp-actions+.btn{margin-top:12px}
.rin-public .sp-plan{border-top:2px solid var(--v3-brass)}
.rin-public .sp-question-link[aria-current=true]{box-shadow:inset 2px 0 var(--v3-brass)}
.rin-public .sp-after{margin-top:112px;padding:72px 0;border-top:0;border-bottom:0}
/* 帯(border-image)を使う要素は border が描かれないため、罫線は疑似要素で本文幅に引く */
.rin-public .sp-after+.sp-after{margin-top:0;position:relative}
.rin-public .sp-after+.sp-after:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--hair)}
.rin-public .sp-after h2{font-size:clamp(26px,2.8vw,40px);line-height:1.45;font-weight:400}
.rin-public .sp-after p:not(.kick){font-size:16px;line-height:1.9}
.rin-public .sp-faq{max-width:960px;padding:96px 0}
.rin-public .sp-faq h2{font-size:clamp(26px,2.6vw,36px);line-height:1.45;font-weight:400;margin-bottom:32px}
.rin-public .sp-faq details{border-bottom:0;border-top:1px solid var(--hair-strong);padding:0}
.rin-public .sp-faq details:last-of-type{border-bottom:1px solid var(--hair-strong)}
.rin-public .sp-faq summary{position:relative;list-style:none;font-size:18px;line-height:1.6;padding:22px 52px 22px 0}
.rin-public .sp-faq summary::-webkit-details-marker{display:none}
.rin-public .sp-faq summary:after{content:"＋";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:300;line-height:1;color:var(--v3-accent-text)}
.rin-public .sp-faq details[open] summary:after{content:"−"}
.rin-public .sp-faq details p{margin:0;padding:0 52px 24px 0;font-size:16px;line-height:1.95}
.rin-public .sp-footer{padding-top:28px;padding-bottom:28px;border-top:1px solid var(--hair);font-size:13.5px;color:var(--paper-mute);justify-content:flex-start;gap:28px;flex-wrap:wrap}
.rin-public .sp-footer a{color:var(--paper-mute);text-decoration:underline;text-underline-offset:4px}

@media(max-width:1000px){.rin-public .np-lesson{padding:28px}}
@media(max-width:900px){.rin-public .sp-practice{padding:28px}}
@media(max-width:700px){
  .rin-public .np-header,.rin-public .sp-header{padding-top:40px}
  .rin-public .np-intro,.rin-public .sp-intro{padding:18px 0 56px}
  .rin-public .np-intro h1,.rin-public .sp-intro h1{font-size:34px}
  .rin-public .np-intro>p:not(.kick),.rin-public .sp-intro>p:last-child{font-size:16px}
  .rin-public .np-layout{margin-top:48px}
  .rin-public .sp-toolbar{margin-top:40px}
  .rin-public .np-lesson,.rin-public .sp-practice{padding:22px 20px}
  .rin-public .np-step h2,.rin-public .sp-practice h2{font-size:23px}
  .rin-public .np-step .np-question{font-size:21px}
  .rin-public .np-footer-next{margin-top:72px;padding:56px 0}
  .rin-public .sp-after{margin-top:72px;padding:52px 0}
  .rin-public .sp-faq{padding:64px 0}
  .rin-public .sp-faq summary{font-size:16.5px}
}

/* ---------- 紹介ページ(referral) ---------- */
.rin-public .referral-page{width:var(--content-width);max-width:none;margin-inline:auto;padding:64px 0 0;color:var(--paper)}
.rin-public .referral-page .eyebrow{font-size:13px;letter-spacing:.2em;color:var(--v3-accent-text)}
.rin-public .referral-page h1{font-size:clamp(36px,4.6vw,72px);line-height:1.3;font-weight:500;letter-spacing:-.01em;margin:22px 0 30px;color:var(--paper)}
.rin-public .referral-page .intro{font-size:18px;line-height:2;color:var(--lp-body);max-width:34em;text-wrap:pretty}
.rin-public .referral-page .btn{margin:40px 0 14px;border-radius:0}
.rin-public .referral-page .condition{font-size:14px;line-height:1.9;color:var(--paper-mute)}
.rin-public .referral-steps{margin:80px 0 0;border-top:1px solid var(--hair-strong);border-bottom:1px solid var(--hair-strong)}
.rin-public .referral-steps li{padding:36px 32px 36px 0;font-size:15.5px;line-height:1.9;color:var(--lp-body)}
.rin-public .referral-steps li+li{border-left:1px solid var(--hair);padding-left:32px}
.rin-public .referral-steps span{font-size:12px;letter-spacing:.16em;color:var(--v3-accent-text);margin-bottom:12px}
.rin-public .referral-steps strong{font-size:22px;line-height:1.5;font-weight:600;color:var(--paper);margin-bottom:10px}
.rin-public .referral-page #terms{margin-top:112px;padding:88px 0}
.rin-public .referral-page h2{font-size:clamp(28px,3vw,44px);line-height:1.4;font-weight:400;margin:0 0 36px;color:var(--paper)}
.rin-public .referral-page dl{border-top:1px solid var(--hair-strong)}
.rin-public .referral-page dl>div{grid-template-columns:220px 1fr;gap:32px;padding:24px 0;border-bottom:1px solid var(--hair)}
.rin-public .referral-page dt{font-weight:600;color:var(--paper)}
.rin-public .referral-page dd{color:var(--lp-body)}
.rin-public .referral-page footer{margin-top:0;padding:28px 0;border-top:1px solid var(--hair);font-size:13.5px;color:var(--paper-mute)}
.rin-public .referral-page footer a{color:var(--paper-mute);text-decoration:underline;text-underline-offset:4px;margin-right:24px}
@media(max-width:600px){
  .rin-public .referral-page{padding-top:40px}
  .rin-public .referral-page h1{font-size:32px}
  .rin-public .referral-page .intro{font-size:16px}
  .rin-public .referral-steps{margin-top:56px}
  .rin-public .referral-steps li,.rin-public .referral-steps li+li{padding:26px 0;border-left:0}
  .rin-public .referral-page #terms{margin-top:72px;padding:56px 0}
  .rin-public .referral-page dl>div{grid-template-columns:1fr;gap:6px}
}

/* ---------- mobile rhythm (lp) ---------- */
@media(max-width:720px){
  .rin-public .hero{padding:48px 0 72px}
  .rin-public .hero-grid{margin-top:40px;padding-top:32px}
  .rin-public .hero-lead{font-size:16.5px}
  .rin-public .hero-sub{font-size:15px}
  .rin-public .sec{padding:72px 0}
  .rin-public .sec-head{margin-bottom:40px}
  .rin-public .sec-head .h-jp,.rin-public .sec-head .h + .h-jp{font-size:30px}
  .rin-public .sec-head .jp{font-size:16px}
  .rin-public .board .wrap{padding:48px 0}
  .rin-public .extras-h{margin-top:56px;font-size:20px}
  .rin-public .faq summary,.rin-public .faq details[open] summary{font-size:17px;padding:20px 44px 20px 0}
  .rin-public .faq .faq-body{padding:0 0 24px 0;font-size:15.5px}
  .rin-public .hp-download .wrap{padding-top:48px;padding-bottom:48px}
  .rin-public .co-price{padding:30px 22px}
  .rin-public .beta-callout{margin-top:40px}
}
