.payment-page .pay-section { padding:40px 0 72px; background:var(--brand-surface); }
.payment-page .pay-breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; font-size:14px; color:var(--brand-muted); }
.payment-page .pay-heading { max-width:760px; margin-bottom:28px; }
.payment-page .pay-heading h1 { margin:8px 0 16px; font-size:clamp(30px,4vw,44px); line-height:1.16; letter-spacing:-.025em; }
.payment-page .pay-kicker { color:var(--brand-blue-dark); font-size:12px; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }
.payment-page .pay-heading p { margin:0; color:var(--brand-muted); font-size:17px; line-height:1.65; }
.payment-page .pay-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:28px; align-items:start; }
.payment-page .pay-card { padding:32px; border:1px solid var(--brand-line); border-radius:24px; background:#fff; box-shadow:var(--shadow-md); min-width:0; }
.payment-page .pay-card h2 { margin:0 0 22px; font-size:24px; line-height:1.3; }
.payment-page .pay-form { display:grid; gap:20px; }
.payment-page .pay-field { display:grid; gap:8px; font-weight:650; }
.payment-page .pay-field input { box-sizing:border-box; display:block; width:100%; min-width:0; min-height:52px; padding:12px 14px; border:1px solid var(--brand-field); border-radius:12px; background:white; color:var(--brand-ink); font:400 17px/1.45 system-ui,sans-serif; }
.payment-page .pay-hint { margin:0; color:var(--brand-muted); font-size:13px; line-height:1.55; font-weight:400; }
.payment-page .pay-accept { display:flex; align-items:flex-start; gap:12px; font-size:14px; line-height:1.6; font-weight:400; }
.payment-page .pay-accept input { flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; accent-color:var(--brand-blue); }
.payment-page .pay-submit { width:100%; min-height:54px; white-space:normal; text-align:center; }
.payment-page .pay-form a, .payment-page .pay-notes a { color:var(--brand-blue-dark); text-decoration:underline; text-underline-offset:3px; }
.payment-page .pay-notes { display:grid; gap:24px; padding:10px 0; color:var(--brand-muted); line-height:1.65; }
.payment-page .pay-notes h2 { font-size:21px; color:var(--brand-ink); margin:0 0 12px; }
.payment-page .pay-notes p { margin:8px 0; }
.payment-page .pay-steps { list-style:none; padding:0; margin:0; display:grid; gap:18px; counter-reset:payment; }
.payment-page .pay-steps li { position:relative; padding-left:42px; counter-increment:payment; }
.payment-page .pay-steps li::before { content:counter(payment); position:absolute; left:0; top:0; display:grid; place-items:center; width:28px; height:28px; background:var(--brand-soft); color:var(--brand-blue-dark); font-weight:750; border-radius:50%; }
.payment-page .pay-status { padding:20px 24px; border:1px solid var(--brand-line); border-radius:16px; background:white; margin:0 0 24px; overflow-wrap:anywhere; }
.payment-page .pay-status h2 { margin:0 0 8px; font-size:21px; }
.payment-page .pay-status p { margin:8px 0; line-height:1.6; }
.payment-page :focus-visible { outline:3px solid var(--brand-blue); outline-offset:3px; }
.payment-page [hidden] { display:none!important; }
@media(max-width:760px) {
  .payment-page .pay-section { padding:24px 0 64px; }
  .payment-page .pay-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .payment-page .pay-card { padding:24px 20px; border-radius:20px; }
  .payment-page .pay-heading p { font-size:16px; }
  .payment-page .pay-notes { padding:0 2px; }
}
