.co{padding:40px 0 96px}
.co-wrap{display:flex;flex-direction:column;gap:24px}
.co-narrow{max-width:760px}
.co-h1{font-family:var(--f-display);font-size:clamp(34px,5vw,56px);font-weight:600;letter-spacing:-.04em;line-height:1.02;color:var(--ink-2)}
.co-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}
.co-card{background:var(--paper-2);border:1px solid var(--line-l);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:20px;color:var(--ink-2)}
.co-label{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute-l)}
.co-note{padding:14px 18px;border-radius:14px;background:rgb(from var(--acc) r g b / .14);color:var(--ink-2);font-weight:500}

/* payment methods */
.co-methods{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.co-methods legend{margin-bottom:12px}
.co-method{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border:1px solid var(--line-l);border-radius:16px;cursor:pointer;transition:border-color .2s,background .2s}
.co-method:hover{border-color:var(--line-l2)}
.co-method:has(input:checked){border-color:var(--ink-2);background:var(--paper)}
.co-method input{margin:3px 0 0;width:18px;height:18px;accent-color:var(--ink-2);flex-shrink:0}
.co-method-t{display:flex;flex-direction:column;gap:4px}
.co-method-t b{font-weight:600}
.co-method-t span{font-size:14px;color:var(--mute-l)}
.co-submit{width:100%}
.co-small{font-size:14px;line-height:1.5;color:var(--mute-l)}
.co-small a{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}

/* summary */
.co-course{display:flex;flex-direction:column;gap:4px;font-size:18px}
.co-course span{font-size:15px;color:var(--mute-l)}
.co-lines{margin:0;display:flex;flex-direction:column;gap:12px}
.co-lines div{display:flex;justify-content:space-between;gap:16px}
.co-lines dt{color:var(--mute-l)}
.co-lines dd{margin:0;font-weight:500;text-align:right}
.co-disc dd{color:var(--ink-2)}
.co-total{padding-top:14px;border-top:1px solid var(--line-l)}
.co-total dt{color:var(--ink-2);font-weight:600}
.co-total dd{font-family:var(--f-display);font-size:24px;font-weight:600;letter-spacing:-.02em}
.co-coupon{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid var(--line-l)}
.co-coupon-row{display:flex;gap:10px}
.co-input{flex:1;min-width:0;height:48px;padding:0 16px;border:1px solid var(--line-l);border-radius:12px;background:#fff;color:var(--ink-2);font:inherit;text-transform:uppercase}
.co-input:focus{outline:2px solid var(--ink-2);outline-offset:1px}
.co-input::placeholder{text-transform:none;color:var(--mute-l)}
.co-coupon .btn{color:var(--ink-2);flex-shrink:0}
.co-err{font-size:14px;color:#B3261E}
.co-ok{font-size:14px;color:var(--ink-2)}
.co-ok a{text-decoration:underline;text-underline-offset:3px}

/* order page */
.co-status{align-self:flex-start;padding:6px 12px;border-radius:999px;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:var(--paper);border:1px solid var(--line-l)}
.co-status.is-paid{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.co-bank-text{font-size:16px;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
.co-actions{display:flex;flex-wrap:wrap;gap:12px}
.co-actions .btn.ghost{color:var(--ink-2)}
.co-back{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;color:var(--mute-l)}
.co-back:hover{color:var(--ink-2)}

@media (max-width:900px){
  .co-grid{grid-template-columns:minmax(0,1fr)}
  .co-sum{order:-1}
  .co-card{padding:24px;border-radius:20px}
}
