/* The buy and done pages. Tokens, fonts, nav, buttons and footer come from /welcome.css. */
.buypage .nav nav{display:flex}
.buy{max-width:1060px;margin:0 auto;padding:116px 28px 72px}
.buy-head h1{font-size:clamp(34px,5vw,56px)}
.buy-head .sub{margin-bottom:28px}
.buy-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:36px;align-items:start}
.plans{border:0;margin:0;padding:0;display:grid;gap:12px;min-width:0}
.plans legend{font:700 15px var(--head);color:var(--muted);padding:0;margin-bottom:12px}
.plan{display:grid;grid-template-columns:auto 1fr auto;column-gap:14px;row-gap:4px;align-items:center;background:var(--paper);border:2px solid var(--line);border-radius:var(--r);padding:18px 20px;cursor:pointer}
.plan:hover{border-color:var(--harbor-3)}
.plan:has(input:checked){border-color:var(--harbor);box-shadow:0 0 0 4px rgba(255,180,0,.4)}
.plan:has(input:focus-visible){outline:3px solid var(--marigold);outline-offset:3px}
.plan input{width:20px;height:20px;accent-color:var(--harbor);margin:0}
.pn{display:grid;line-height:1.2}.pn b{font:800 20px var(--head);letter-spacing:-.02em}.pn small{color:var(--muted);font-size:14px}
.pp{font:800 28px var(--head);letter-spacing:-.02em}
.pd{grid-column:2/-1;color:var(--muted);font-size:15px;line-height:1.5}
.order{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px;position:sticky;top:92px}
.order h2{font-size:22px;margin-bottom:14px}
.order .line{display:flex;justify-content:space-between;gap:16px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:12px;margin:0 0 10px}
.order .line b{font:800 24px var(--head)}
.pay{display:grid;gap:10px;margin:18px 0 12px}
.pay .btn{justify-content:center;width:100%;padding:16px 22px;font-size:18px;cursor:pointer;border:0}
.pay .btn:disabled{opacity:.6;cursor:wait;transform:none}
.pp-btn{background:#FFC439;color:#111}.pp-btn:hover{background:#F0B72D}
.next{margin:16px 0;padding-left:22px;color:var(--ink);font-size:15px}
.next li{margin:4px 0}
.err{color:#B42318;background:#FDECEA;border-radius:10px;padding:10px 14px;font-size:15px;margin:0 0 12px}
.notice{background:#DFEBE8;border-radius:12px;padding:12px 16px;margin:0 0 20px}
.notice.warn{background:#FFF1CC;color:#6B4400}
@media (max-width:860px){
  .buy{padding:100px 20px 56px}
  .buy-grid{grid-template-columns:1fr;gap:24px}
  .order{position:static}
}

/* done page */
.done-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:28px;max-width:720px}
.done-card h1{font-size:clamp(30px,4.5vw,46px);margin-bottom:10px}
.done-card h2{font-size:20px;margin:22px 0 8px}
.codes{display:grid;gap:10px;margin:16px 0}
.code{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--tile);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.code code{font:600 clamp(15px,2.6vw,19px) ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.02em;word-break:break-all}
.code button{border:1px solid var(--harbor);background:#fff;color:var(--harbor);border-radius:999px;font:700 14px var(--head);padding:8px 16px;cursor:pointer}
.code button:hover{background:var(--harbor);color:#fff}
.done-card .cta-row{margin:22px 0 10px}
.done-card ol{padding-left:22px}
.lookup{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.lookup input{flex:1 1 260px;font:16px var(--body);padding:13px 16px;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}
.lookup input:focus{border-color:var(--harbor);outline:none}
.lookup .btn{border:0;cursor:pointer}
.spin{display:inline-block;width:18px;height:18px;border:3px solid var(--line);border-top-color:var(--harbor);border-radius:50%;animation:sp .9s linear infinite;vertical-align:-3px;margin-right:8px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}}
