/* Payment pages provide their own heading. */
body:has(.app-payment) h2#container_title { display:none; }

/* Development payment requests and checkout. */
.app-payment { padding:72px 0 100px; background:#f8faff; color:#191f28; font:15px/1.7 Pretendard,sans-serif; word-break:keep-all; overflow-wrap:anywhere; }
.app-payment * { box-sizing:border-box; }
.app-payment [hidden] { display:none !important; }
.app-payment .app-payment__shell { width:min(680px,calc(100% - 40px)); margin:0 auto; }
.app-payment .app-payment__back { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:#536176; font-size:14px; font-weight:600; text-decoration:none; }
.app-payment .app-payment__intro { margin:22px 0 32px; }
.app-payment .app-payment__eyebrow { margin:0 0 13px; color:#2167ff; font-size:11px; font-weight:800; letter-spacing:.11em; }
.app-payment h1 { margin:0; color:#191f28; font-size:36px; font-weight:800; line-height:1.35; letter-spacing:-.05em; }
.app-payment .app-payment__intro > p:last-child { margin:18px 0 0; color:#617086; font-size:15px; }
.app-payment .app-payment__card { margin:20px 0 0; padding:32px; border:1px solid #e0e7f1; border-radius:18px; background:#fff; }
.app-payment h2 { margin:0 0 18px; font-size:19px; font-weight:800; letter-spacing:-.03em; }
.app-payment .app-payment__card-heading { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:15px; }
.app-payment .app-payment__card-heading h2 { margin:0; }
.app-payment .app-payment__test { padding:4px 10px; border-radius:6px; background:#fff2d8; color:#845500; font-size:12px; font-weight:700; }
.app-payment .app-payment__summary { margin:0; }
.app-payment .app-payment__summary > div { display:grid; grid-template-columns:108px minmax(0,1fr); gap:14px; padding:13px 0; }
.app-payment .app-payment__summary dt { color:#68758a; font-size:13px; }
.app-payment .app-payment__summary dd { margin:0; font-weight:600; text-align:right; }
.app-payment .app-payment__summary .app-payment__identifier { font-size:12px; overflow-wrap:anywhere; word-break:break-all; }
.app-payment .app-payment__summary .app-payment__total { align-items:center; margin-top:12px; padding-top:22px; border-top:1px solid #e6ebf2; }
.app-payment .app-payment__total dd { color:#2167ff; font-size:32px; line-height:1.3; letter-spacing:-.04em; font-weight:800; }
.app-payment .app-payment__total dd span { margin-left:4px; font-size:18px; font-weight:600; }
.app-payment .app-payment__copy { margin:0 0 17px; color:#617086; font-size:14px; line-height:1.85; }
.app-payment .app-payment__policy { display:inline-flex; align-items:center; gap:6px; min-height:44px; margin:0 0 10px; color:#2167ff; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.app-payment .app-payment__consent { display:flex; align-items:flex-start; gap:12px; margin:24px 0; padding:18px; border-radius:10px; background:#f4f7fc; font-size:14px; cursor:pointer; }
.app-payment .app-payment__consent strong { color:#2167ff; white-space:nowrap; }
.app-payment .app-payment__consent input[type=checkbox] { display:inline-block; position:static; flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; opacity:1; visibility:visible; appearance:auto; -webkit-appearance:checkbox; accent-color:#2167ff; cursor:pointer; }
.app-payment .app-payment__notice { margin:20px 0 0; padding:15px 18px; border-left:3px solid #8aacff; border-radius:0 8px 8px 0; color:#4c5d77; background:#eef4ff; font-size:13px; }
.app-payment .app-payment__support { margin:23px 0 0; color:#778398; font-size:12px; text-align:center; }
:is(.app-payment,.consultation-status) .app-payment__button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; max-width:100%; padding:12px 19px; border:1px solid #2167ff; border-radius:9px; color:#fff; background:#2167ff; font:700 14px/1.5 Pretendard,sans-serif; text-decoration:none; cursor:pointer; }
:is(.app-payment,.consultation-status) .app-payment__button--light { border-color:#e0e7f1; color:#45546b; background:#fff; }
.app-payment form .app-payment__button { width:100%; min-height:56px; }
:is(.app-payment,.consultation-status) .app-payment__button:disabled { opacity:.6; cursor:wait; }
:is(.app-payment,.consultation-status) .app-payment__feedback { min-height:22px; margin:13px 0 0; color:#57657c; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
:is(.app-payment,.consultation-status) .app-payment__actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:20px; }
:is(.app-payment,.consultation-status) .app-payment__text-link { display:inline-flex; align-items:center; min-height:44px; padding:8px 3px; color:#2167ff; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
:is(.app-payment,.consultation-status) .app-payment__test-note { margin:12px 0; color:#845500; font-size:12px; line-height:1.7; }
:is(.app-payment,.consultation-status) .app-payment__sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.app-payment :focus-visible,.consultation-status .ap-payment-card :focus-visible { outline:3px solid #8eb1ff; outline-offset:3px; }
.app-payment [aria-invalid=true] { outline:2px solid #d92d20; outline-offset:2px; }
.app-payment--result { padding-top:100px; padding-bottom:120px; }
.app-payment .app-payment__result { text-align:center; padding:42px 32px; }
.app-payment .app-payment__result h1 { font-size:28px; margin-bottom:16px; }
.app-payment .app-payment__result-icon { display:grid; place-items:center; width:68px; height:68px; margin:0 auto 23px; border-radius:20px; background:#edf3ff; color:#2167ff; font-size:34px; }
.app-payment .app-payment__result-icon--neutral { background:#f0f3f7; color:#6d7b90; }
.app-payment .app-payment__result .app-payment__actions { justify-content:center; }
.app-payment .app-payment__result [data-payment-summary] { text-align:left; }
:is(.app-payment,.consultation-status) .ap-payment-card { min-width:0; margin-top:15px; padding:23px; border:1px solid #dfe7f3; border-radius:12px; background:#fbfcff; }
:is(.app-payment,.consultation-status) .ap-payment-card__heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
:is(.app-payment,.consultation-status) .ap-payment-card__heading h3 { min-width:0; margin:0; color:#26334b; font-size:16px; line-height:1.6; font-weight:700; overflow-wrap:anywhere; }
:is(.app-payment,.consultation-status) .ap-payment-card__status { flex-shrink:0; padding:4px 9px; border-radius:6px; color:#59677d; background:#edf1f7; font-size:11px; font-weight:700; white-space:nowrap; }
:is(.app-payment,.consultation-status) .ap-payment-card__status[data-status=paid] { color:#087552; background:#e7f6ef; }
:is(.app-payment,.consultation-status) .ap-payment-card__status[data-status=requested],:is(.app-payment,.consultation-status) .ap-payment-card__status[data-status=processing] { color:#215de0; background:#eaf0ff; }
:is(.app-payment,.consultation-status) .ap-payment-card__status[data-status=waiting_deposit] { color:#845500; background:#fff2d8; }
:is(.app-payment,.consultation-status) .ap-payment-card .ap-payment-card__amount { margin:15px 0; color:#1c345d; font-size:25px; font-weight:800; letter-spacing:-.04em; line-height:1.4; }
:is(.app-payment,.consultation-status) .ap-payment-card__facts { margin:12px 0 0; }
:is(.app-payment,.consultation-status) .ap-payment-card__facts > div { display:grid; grid-template-columns:110px minmax(0,1fr); gap:10px; margin:7px 0; }
:is(.app-payment,.consultation-status) .ap-payment-card__facts dt { margin:0; color:#6d7a8f; font-size:12px; }
:is(.app-payment,.consultation-status) .ap-payment-card__facts dd { margin:0; color:#43516a; font-size:12px; line-height:1.7; overflow-wrap:anywhere; word-break:break-all; }
:is(.app-payment,.consultation-status) .ap-payment-card__deposit { margin:18px 0 0; padding:16px; border-radius:8px; background:#eef4ff; font-size:13px; }
@media(max-width:760px) {
    .app-payment { padding:38px 0 64px; }
    .app-payment .app-payment__shell { width:calc(100% - 32px); }
    .app-payment .app-payment__intro { margin:20px 0 25px; }
    .app-payment h1 { font-size:30px; }
    .app-payment .app-payment__card { padding:24px 20px; border-radius:14px; }
    .app-payment .app-payment__summary > div { grid-template-columns:88px minmax(0,1fr); gap:10px; }
    .app-payment .app-payment__total dd { font-size:27px; }
    .app-payment .app-payment__consent { padding:15px 13px; font-size:13px; }
    .app-payment .app-payment__result { padding:32px 20px; }
    .app-payment .app-payment__result h1 { font-size:24px; }
    :is(.app-payment,.consultation-status) .ap-payment-card { padding:18px 16px; }
    :is(.app-payment,.consultation-status) .ap-payment-card__heading { flex-wrap:wrap; gap:8px; }
    :is(.app-payment,.consultation-status) .ap-payment-card__facts > div { grid-template-columns:82px minmax(0,1fr); gap:8px; }
    :is(.app-payment,.consultation-status) .app-payment__actions .app-payment__button { flex:1 1 auto; }
    .app-payment .app-payment__result .app-payment__actions { flex-direction:column; align-items:stretch; }
    .app-payment .app-payment__result .app-payment__actions .app-payment__text-link { align-self:center; }
}
