/* Purchase views only. The plan selector retains the native control and site.css styling. */
.checkout-main{min-height:70vh;padding:56px 24px 88px}
.checkout-main>div{max-width:1120px;margin:auto}
.checkout-heading{position:relative;padding:0 0 28px}
.checkout-heading h1,.checkout-heading h2{font-family:var(--heading);font-size:clamp(28px,3.5vw,42px);font-weight:600;line-height:1.5;margin:8px 0 12px;letter-spacing:.015em}
.checkout-heading>p:last-child{margin:0;font-size:14px;max-width:660px}
.checkout-eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--accent)}
.checkout-introduction{font-size:14px;margin:0 0 24px}
.checkout-selection{margin:0 0 28px}
.checkout-selection label{font-size:13px}
.purchase-summary{padding:0;background:transparent;border:0}
.summary-title{font-family:var(--heading);font-size:clamp(21px,2.4vw,28px);font-weight:700;line-height:1.5;margin:0}
.purchase-summary>p.summary-audience{font-size:13px;font-weight:400;line-height:1.8;margin:8px 0 0;color:#625c54}
.summary-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}
.summary-facts>div{min-width:0;padding:14px 16px;background:var(--page-bg);border:1px solid var(--border)}
.summary-facts dt{font-size:12px;color:#625c54}
.summary-facts dd{margin:2px 0 0;font-weight:700;font-size:17px}
.summary-total{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.summary-total-label{font-size:13px;font-weight:700}
.summary-total-amount{font-family:'BIZ UDGothic','Inter',sans-serif;font-size:clamp(28px,4.2vw,42px);line-height:1.4;letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap}
.summary-total small{font-size:12px}
.summary-section-title{font-size:13px;margin:28px 0 12px;font-weight:700}
.summary-support{padding:0 0 0 20px;margin:0;font-size:14px}
.summary-support li{padding-left:2px;margin:8px 0}
.summary-support li::marker{color:var(--accent)}
.summary-renewal{padding:18px 20px;margin-top:24px;border-left:3px solid var(--accent);background:var(--page-bg)}
.summary-renewal p{font-size:12px;margin:0}
.summary-renewal strong{display:block;font-size:20px;margin:4px 0;font-variant-numeric:tabular-nums}
.checkout-conditions{margin-top:24px;border-top:1px solid var(--border);padding:18px 0;font-size:13px}
.checkout-conditions summary{font-size:13px;font-weight:700;cursor:pointer}
.checkout-conditions h3{font-size:14px;margin:24px 0 6px}
.checkout-conditions p{margin:6px 0 16px}
.checkout-payment{min-width:0;padding:28px;background:var(--page-bg);border:1px solid var(--border)}
.payment-guidance{font-size:13px;margin:0 0 24px}
.checkout-payment .checkbox-label{font-size:12px;line-height:1.9;cursor:pointer}
.checkout-payment .checkbox-label input{margin-top:3px}
.checkout-payment .button{width:100%;margin:24px 0 16px;text-align:center;padding-inline:16px;white-space:normal;font-size:14px;min-height:54px;line-height:1.6}
.checkout-payment .button:disabled{cursor:not-allowed;opacity:.55}
.payment-note{font-size:11px;margin:10px 0;color:#625c54;line-height:1.8}
.checkout-links{display:flex;flex-wrap:wrap;gap:12px 18px;font-size:11px;margin-top:20px}
.payment-total{padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid var(--border)}
.payment-total span,.payment-total small{display:block;font-size:12px}
.payment-total strong{display:block;font-size:clamp(26px,3vw,36px);line-height:1.5;margin:6px 0;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.purchase-dialog{padding:0;border:1px solid var(--border);border-radius:18px;width:min(1040px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);color:inherit;background:var(--page-bg);overflow:auto;overscroll-behavior:contain;box-shadow:0 28px 110px #21170f40}
.purchase-dialog::backdrop{background:rgba(25,20,15,.64)}
html:has(.purchase-dialog[open]){overflow:hidden}
.checkout-dialog-content{position:relative;padding:40px}
.checkout-close{position:relative;float:right;z-index:2;display:flex;align-items:center;gap:10px;padding:5px 12px;border:1px solid var(--border);border-radius:30px;color:var(--accent);background:var(--page-bg);font-size:12px;cursor:pointer}
.checkout-close span{font-family:system-ui;font-size:22px;line-height:1.2}
.checkout-dialog-content>.checkout-heading{padding-right:90px}
.checkout-arari-daicho{max-width:1120px}
.checkout-arari-daicho .checkout-heading{border-bottom:1px solid #c9ac95;margin-bottom:28px}
.checkout-arari-daicho .checkout-heading h1,.checkout-arari-daicho .checkout-heading h2{font-family:'Zen Antique',serif}
.arari-purchase{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:start}
.arari-order{padding:28px;background:#fffcf7;border-radius:10px;border:1px solid #e3d3c3}
.checkout-arari-daicho .summary-total{display:block;color:#6e2f1f}
.checkout-arari-daicho .summary-total-label,.checkout-arari-daicho .summary-total-amount{display:block}
.checkout-arari-daicho .summary-facts>div{padding:12px;background:transparent;border:0;border-bottom:1px solid #e3d3c3}
.checkout-arari-daicho .checkout-payment{border:0;padding:12px 0;background:transparent}
.checkout-arari-daicho .summary-renewal{border-radius:0 8px 8px 0}
.checkout-lesson-shelf{border-radius:24px}
.checkout-lesson-shelf .checkout-dialog-content{padding:0}
.checkout-lesson-shelf .checkout-close{position:absolute;top:18px;right:18px;float:none;background:#fff}
.checkout-lesson-shelf .notice{margin:20px}
.learning-purchase{display:grid;grid-template-columns:minmax(220px,.78fr) minmax(0,1.3fr);background:#fffdf8}
.learning-welcome{grid-row:1/3;background:#b8641f;color:#fff8ee;padding:48px 30px;display:flex;flex-direction:column;align-items:start}
.learning-welcome .checkout-heading{padding:0}
.learning-welcome .checkout-eyebrow{color:#fff1d8}
.learning-welcome .checkout-heading h1,.learning-welcome .checkout-heading h2{font-size:29px;margin-top:26px;line-height:1.7}
.learning-welcome>p{font-size:13px;margin-top:30px}
.learning-label{font-size:12px;margin-top:20px;padding:6px 14px;border:1px solid #f5c69a;border-radius:999px}
.learning-order{padding:46px 32px 12px}
.checkout-lesson-shelf .summary-facts>div{border-radius:12px;background:#faf2e5;border:0}
.checkout-lesson-shelf .summary-total{border:0;background:#fae9d1;padding:20px;border-radius:16px;display:block;color:#7d3b0e}
.checkout-lesson-shelf .summary-total-amount{display:block;font-size:36px}
.checkout-lesson-shelf .summary-renewal{background:transparent;border:0;padding:0}
.learning-purchase>.checkout-payment{margin:0 32px 32px;padding:24px 0 0;border:0;border-top:1px dashed #dfc8a9;background:transparent}
.casebook-sheet{background:#fff;border:1px solid #d6d6d1;box-shadow:0 12px 40px #00000005;padding:48px 56px;max-width:960px;margin:auto}
.casebook-sheet>.checkout-heading{display:grid;grid-template-columns:1fr auto;align-items:baseline;border-bottom:3px solid #1a1a1a;margin-bottom:28px;padding-bottom:24px}
.casebook-sheet>.checkout-heading .checkout-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:16px;letter-spacing:-.03em}
.casebook-sheet>.checkout-heading h1{font-size:29px;margin:0}
.casebook-sheet>.checkout-heading>p:last-child{grid-column:1/-1;font-size:12px;margin-top:12px}
.casebook-sheet .checkout-selection{max-width:520px}
.casebook-sheet .summary-title{font-size:21px}
.casebook-sheet .summary-facts{display:flex;flex-wrap:wrap;gap:24px;font-size:12px;margin:18px 0}
.casebook-sheet .summary-facts>div{display:flex;gap:14px;border:0;padding:0;background:none}
.casebook-sheet .summary-facts dd{font-size:12px;margin:0}
.checkout-items{width:100%;border-collapse:collapse;margin:28px 0 0;font-size:14px}
.checkout-items caption{text-align:left;font-size:12px;font-weight:700;border-bottom:1px solid #1a1a1a;padding-bottom:10px}
.checkout-items th,.checkout-items td{padding:16px 0;border-bottom:1px solid #deded8;vertical-align:top}
.checkout-items th{text-align:left;font-weight:400;padding-right:20px}
.checkout-items td{text-align:right;white-space:nowrap;font-family:'IBM Plex Mono',monospace}
.casebook-sheet .summary-total{justify-content:flex-end;border-top:0;border-bottom:2px solid #1a1a1a;padding:20px 0}
.casebook-sheet .summary-total-amount{font-family:'Inter',sans-serif;font-size:38px}
.casebook-sheet .summary-support{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;font-size:13px}
.casebook-sheet .summary-renewal{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 24px;border:1px solid #d6d6d1;background:transparent;padding:16px 20px}
.casebook-sheet .summary-renewal strong{font-size:18px;margin:0}
.casebook-sheet .summary-renewal p:last-child{flex-basis:100%}
.casebook-sheet .checkout-payment{padding:28px 0 0;border:0;border-top:1px solid #1a1a1a;background:transparent}
.casebook-sheet .checkout-payment .button{display:flex;width:auto;min-width:300px;margin-left:auto;border-radius:0;font-weight:700}
.casebook-sheet .checkout-links{justify-content:space-between}
.tradeline.checkout-page .checkout-main{padding:0 0 88px}
.tradeline .checkout-main>div{max-width:none}
.formal-heading{background:#16213a;color:#fff;padding:44px max(24px,calc((100vw - 1120px)/2)) 48px;border-bottom:4px solid #a78b50}
.formal-heading .checkout-eyebrow{color:#d6bf8c;letter-spacing:.2em}
.formal-heading h1{font-size:36px;margin:10px 0 12px;font-weight:500}
.formal-heading>p:last-child{color:#dddfe5;font-family:var(--heading)}
.formal-wrap{max-width:1120px;margin:40px auto 0;padding:0 24px}
.formal-purchase{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:start}
.contract-detail{padding:32px;background:#fff;border:1px solid #e4dfd3}
.contract-detail>.checkout-eyebrow{color:#8c6e36;margin-bottom:18px}
.contract-detail .summary-title{font-size:25px;font-family:'Zen Old Mincho',serif}
.contract-detail .summary-facts{border-block:1px solid #e4dfd3;gap:0;margin:24px 0}
.contract-detail .summary-facts>div{border:0;background:transparent;padding:16px 0}
.contract-detail .summary-facts>div+div{border-left:1px solid #e4dfd3;padding-left:24px}
.contract-detail .summary-total{padding:0;border:0;gap:8px 20px}
.contract-detail .summary-total-amount{font-size:28px;font-family:'IBM Plex Sans JP',sans-serif;font-weight:500}
.contract-detail .summary-support{font-size:13px}
.contract-detail .summary-renewal{border-left:2px solid #a78b50}
.formal-purchase>.checkout-payment{position:sticky;top:100px;border:1px solid #a78b50;background:#fff;padding:30px}
.formal-purchase .payment-total{border-color:#a78b50}
.formal-purchase .payment-total span{color:#8c6e36;letter-spacing:.12em}
.formal-purchase .payment-total strong{font-family:'IBM Plex Sans JP',sans-serif;font-weight:500;font-size:35px;color:#16213a}
.formal-purchase .checkout-payment .button{background:#16213a;border-radius:2px;border-color:#16213a}
.school-purchase{display:grid;grid-template-columns:1fr 1.3fr;border:1px solid #dbd8c8;background:#fffdf7;max-width:1080px;margin:auto;border-radius:8px;overflow:hidden}
.school-welcome{background:#2f4a3c;color:#faf6e9;padding:48px 36px}
.school-welcome .checkout-eyebrow{color:#dbe4cd}
.school-welcome .checkout-heading h1{font-family:'Kaisei Tokumin',serif;font-size:31px;line-height:1.7}
.school-welcome>p{font-size:14px}
.school-note{border-top:1px solid #708071;margin-top:32px;padding-top:24px;line-height:2}
.school-order{padding:36px}
.school-order .summary-total{color:#2f4a3c}
.school-order .summary-total-amount{font-size:34px}
.school-order .summary-support{font-size:13px}
.school-order .checkout-payment{padding:24px 0 0;border:0;border-top:1px solid #dbd8c8;background:transparent}
.school-order .summary-facts>div{border:0;border-radius:6px;background:#edf0e5}
.school-order .summary-renewal{background:transparent;border-top:1px dashed #8d9c88;border-left:0;padding:20px 0 0}
.business-heading{border-left:6px solid #3046c5;padding:0 0 0 24px;margin-bottom:36px}
.business-heading h1{font-size:36px;letter-spacing:-.02em;font-weight:700}
.business-wrap{border-top:1px solid #e7eaf0;padding-top:32px}
.business-purchase{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;align-items:start}
.business-order .summary-facts{gap:12px}
.business-order .summary-facts>div{border:0;background:#f1f4ff;border-radius:8px;padding:18px}
.business-order .summary-facts dd{font-size:20px;color:#3046c5}
.business-order .summary-total-amount{font-size:32px;font-family:'Inter',sans-serif}
.business-order .summary-renewal{border:0;background:#f6f7fa;border-radius:8px}
.business-purchase>.checkout-payment{border:1px solid #d8dff5;border-top:4px solid #3046c5;border-radius:10px;background:#fff;box-shadow:0 16px 40px #1c31800a}
.business-purchase .payment-total strong{color:#3046c5;font-family:'Inter',sans-serif}
@media(max-width:760px){
  .checkout-main{padding:32px 18px 56px}
  .checkout-heading h1,.checkout-heading h2{font-size:27px}
  .purchase-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:14px}
  .checkout-dialog-content{padding:22px}
  .checkout-dialog-content>.checkout-heading{padding-right:0;padding-top:44px}
  .checkout-close{position:absolute;top:16px;right:16px}
  .arari-purchase,.formal-purchase,.business-purchase,.school-purchase{grid-template-columns:1fr;gap:24px}
  .arari-order{padding:20px}
  .checkout-arari-daicho .checkout-heading h1,.checkout-arari-daicho .checkout-heading h2{font-size:26px}
  .checkout-arari-daicho .summary-total-amount{font-size:34px}
  .learning-purchase{grid-template-columns:1fr}
  .learning-welcome{grid-row:auto;padding:28px 24px 24px}
  .learning-welcome .checkout-heading h1,.learning-welcome .checkout-heading h2{font-size:25px;margin-top:14px;line-height:1.6}
  .learning-welcome>p{margin:12px 0 0;max-width:440px}
  .learning-label{margin-top:16px}
  .checkout-lesson-shelf .checkout-close{top:16px;right:16px}
  .learning-order{padding:26px 24px 12px}
  .learning-purchase>.checkout-payment{margin:0 24px 24px}
  .casebook-sheet{padding:26px 22px}
  .casebook-sheet>.checkout-heading{display:block}
  .casebook-sheet>.checkout-heading h1{font-size:26px;margin-top:8px}
  .casebook-sheet .summary-support{grid-template-columns:1fr}
  .casebook-sheet .summary-total{display:block;text-align:right}
  .casebook-sheet .summary-total-label{display:block;text-align:left}
  .casebook-sheet .summary-total-amount{display:block;font-size:36px}
  .casebook-sheet .checkout-payment .button{min-width:0;width:100%}
  .checkout-items{font-size:12px}
  .checkout-items th{padding-right:8px}
  .formal-heading{padding:32px 24px}
  .formal-wrap{padding:0 18px;margin-top:24px}
  .contract-detail{padding:24px}
  .formal-purchase>.checkout-payment{position:static;padding:24px}
  .formal-heading h1{font-size:29px}
  .formal-purchase .payment-total strong{font-size:34px}
  .school-purchase{gap:0}
  .school-welcome{padding:28px 24px}
  .school-welcome .checkout-heading{padding:0}
  .school-welcome .checkout-heading h1{font-size:27px;margin-top:12px}
  .school-note{margin:20px 0 0;padding-top:18px}
  .school-order{padding:26px 24px}
  .business-heading{padding-left:18px;margin-bottom:28px}
  .business-heading h1{font-size:28px}
  .business-purchase{gap:28px}
  .business-purchase>.checkout-payment{padding:24px}
}
@media(max-width:360px){
  .checkout-main{padding-inline:12px}
  .checkout-dialog-content{padding:18px}
  .arari-order{padding:16px}
  .summary-facts{gap:8px}
  .summary-facts>div{padding:12px}
  .summary-facts dd{font-size:15px}
  .summary-title{font-size:20px}
  .summary-total-amount,.checkout-lesson-shelf .summary-total-amount,.casebook-sheet .summary-total-amount{font-size:30px}
  .casebook-sheet{padding:22px 16px}
  .learning-order,.school-order{padding:24px 18px 12px}
  .learning-purchase>.checkout-payment{margin-inline:18px}
  .checkout-lesson-shelf .summary-total{padding:16px}
  .learning-welcome{padding:28px 18px 20px}
  .learning-welcome .checkout-eyebrow{max-width:135px;letter-spacing:0}
  .formal-wrap{padding-inline:12px}
  .contract-detail{padding:22px 18px}
  .formal-purchase>.checkout-payment{padding:22px 18px}
  .school-order .summary-total-amount{font-size:30px}
}
@media(prefers-reduced-motion:reduce){.purchase-dialog{scroll-behavior:auto}}
