:root { --pay-ink:#192b25; --pay-muted:#697971; --pay-line:#e2e8e3; --pay-green:#14594a; --pay-green-dark:#0f4439; --pay-wash:#f3f6f3; --pay-card:#fff; --pay-shadow:0 14px 38px rgb(19 51 41 / 6%); }
.pay-page { min-height:65vh; padding-bottom:64px; color:var(--pay-ink); background:var(--pay-wash); font-family:Quicksand,ui-sans-serif,system-ui,sans-serif; }
.pay-topline { display:flex; min-height:48px; align-items:center; justify-content:center; gap:10px; padding:8px 24px; color:#244d3e; background:#e6f0e7; font-size:12px; font-weight:700; }
.pay-topline>a { position:absolute; right:max(24px,calc((100vw - 1120px)/2)); color:#315f4d; font-size:11px; font-weight:650; text-decoration:none; }
.pay-secure-mark { display:grid; width:22px; height:22px; place-items:center; border-radius:50%; color:#fff; background:#277b5d; font-size:15px; }
.pay-container { width:min(1110px,calc(100% - 48px)); margin:0 auto; }
.pay-breadcrumb { display:flex; align-items:center; gap:9px; margin:25px 0 18px; color:#76837b; font-size:11px; text-decoration:none; }
.pay-breadcrumb a { color:#426354; text-decoration:none; }
.pay-breadcrumb a:hover,.pay-support a:hover { text-decoration:underline; }
.pay-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin:0 0 24px; }
.pay-eyebrow { margin:0 0 7px; color:#49745d; font-size:9px; font-weight:800; letter-spacing:.15em; }
.pay-heading h1,.pay-checkout-card h1 { margin:0; color:#152a22; font-size:clamp(27px,3vw,37px); font-weight:750; letter-spacing:-.045em; line-height:1.13; }
.pay-heading>div:first-child>p:last-child { max-width:590px; margin:9px 0 0; color:#6e7d74; font-size:13px; line-height:1.65; }
.pay-step { display:flex; align-items:center; gap:8px; margin-bottom:4px; color:#7f8b83; font-size:9px; white-space:nowrap; }
.pay-step span { display:grid; width:24px; height:24px; place-items:center; border:1px solid #cbd9cf; border-radius:50%; color:#3d6f58; background:#f8faf7; font-size:9px; font-weight:800; }
.pay-step span:first-child { color:#fff; border-color:#26795d; background:#26795d; }
.pay-step b { color:#607168; font-weight:650; }
.pay-step i { width:23px; height:1px; background:#d3ddd5; }
.pay-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(290px,.78fr); align-items:start; gap:20px; }
.pay-form-column,.pay-summary-column { display:grid; gap:16px; min-width:0; }
.pay-card,.pay-summary-card,.pay-trust,.pay-checkout-card { border:1px solid var(--pay-line); border-radius:17px; background:var(--pay-card); box-shadow:var(--pay-shadow); }
.pay-card { padding:24px 26px; }
.pay-card-title { display:flex; align-items:center; gap:13px; margin:0 0 19px; }
.pay-icon { display:grid; width:42px; height:42px; flex:0 0 auto; place-items:center; border-radius:12px; color:#245d48; background:#eff5ef; font-size:20px; font-weight:700; }
.pay-card-title h2,.pay-summary-card h2 { margin:0; color:#1b3027; font-size:17px; font-weight:730; letter-spacing:-.02em; }
.pay-card-title p { margin:3px 0 0; color:#7b8880; font-size:11px; }
.pay-field { display:grid; gap:7px; margin:0 0 15px; color:#354d41; font-size:11px; font-weight:720; }
.pay-field>span { color:#87948b; font-weight:500; }
.pay-field input,.pay-field select,.pay-field textarea,.pay-money-input { width:100%; min-width:0; border:1px solid #d9e2da; border-radius:9px; color:#1f3229; background:#fff; font:500 13px/1.45 Quicksand,ui-sans-serif,system-ui,sans-serif; }
.pay-field input,.pay-field select { height:45px; padding:0 12px; }
.pay-field textarea { min-height:82px; resize:vertical; padding:12px; }
.pay-field input:focus,.pay-field select:focus,.pay-field textarea:focus,.pay-money-input:focus-within { border-color:#5a9b7b; outline:3px solid rgb(54 134 91 / 12%); }
.pay-money-input { display:flex; height:46px; align-items:center; overflow:hidden; padding-left:12px; color:#688072; }
.pay-money-input>span { font-size:14px; }
.pay-money-input input { height:100%; border:0; outline:0; box-shadow:none; }
.pay-field small { margin-top:-3px; color:#839087; font-size:10px; font-weight:500; }
.pay-fields-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 14px; }
.pay-field-wide { grid-column:1/-1; }
.pay-custom-total[hidden],.pay-field[hidden] { display:none!important; }
.pay-amount-choice { display:grid; gap:8px; margin-top:3px; }
.pay-amount-choice>p { margin:0 0 2px; color:#354d41; font-size:11px; font-weight:740; }
.pay-choice { display:grid; grid-template-columns:16px minmax(0,1fr) auto; align-items:center; gap:11px; min-height:65px; padding:11px 12px; border:1px solid #dce5dc; border-radius:10px; cursor:pointer; }
.pay-choice:has(input:checked) { border-color:#75a98d; background:#f5faf5; box-shadow:0 0 0 2px rgb(75 140 100 / 8%); }
.pay-choice input { width:15px; height:15px; accent-color:#217052; }
.pay-choice span { display:grid; gap:3px; }
.pay-choice b { color:#26392f; font-size:12px; font-weight:740; }
.pay-choice small { color:#7d8981; font-size:10px; }
.pay-choice i { color:#214934; font-size:13px; font-style:normal; font-weight:800; }
.pay-terms { display:flex; align-items:flex-start; gap:9px; margin-top:3px; color:#66756b; font-size:10px; line-height:1.6; }
.pay-terms input { flex:0 0 auto; width:15px; height:15px; margin:1px 0 0; accent-color:#227054; }
.pay-terms a { color:#235b45; font-weight:730; }
.pay-summary-card { position:sticky; top:18px; padding:22px; }
.pay-summary-card h2 { margin-bottom:19px; font-size:18px; }
.pay-summary-service { display:flex; align-items:center; gap:11px; padding:13px 0 17px; border-top:1px solid #edf0ed; border-bottom:1px solid #edf0ed; }
.pay-summary-icon { display:grid; width:38px; height:38px; place-items:center; border-radius:10px; color:#396d53; background:#eff5ef; font-size:18px; }
.pay-summary-service>div { display:grid; gap:2px; }
.pay-summary-service b { color:#2e4137; font-size:12px; }
.pay-summary-service small { color:#879188; font-size:10px; }
.pay-summary-row { display:flex; justify-content:space-between; gap:12px; padding:14px 0 0; color:#69776e; font-size:11px; }
.pay-summary-row b { color:#2d4136; font-size:12px; }
.pay-summary-row-due { margin-top:13px; padding:15px 0; border-top:1px solid #e8ede8; color:#243b30; font-size:12px; font-weight:750; }
.pay-summary-row-due b { color:#1f4c35; font-size:19px; letter-spacing:-.03em; }
.pay-summary-note { margin:0 0 15px; color:#808b83; font-size:10px; line-height:1.55; }
.pay-submit { display:flex; width:100%; min-height:49px; align-items:center; justify-content:center; gap:11px; padding:0 17px; border:0; border-radius:10px; color:#fff; background:#176b52; box-shadow:0 8px 18px rgb(26 105 76 / 15%); font:750 13px Quicksand,ui-sans-serif,system-ui,sans-serif; text-decoration:none; cursor:pointer; transition:background .18s,transform .18s; }
.pay-submit:hover { transform:translateY(-1px); background:#105943; }
.pay-submit:disabled { opacity:.65; cursor:wait; transform:none; }
.pay-spinner { display:inline-block; width:15px; height:15px; flex:0 0 auto; border:2px solid rgb(255 255 255 / 40%); border-right-color:#fff; border-radius:50%; animation:pay-spin .7s linear infinite; }
@keyframes pay-spin { to { transform:rotate(360deg); } }
.pay-security { display:flex; align-items:flex-start; gap:7px; margin-top:13px; color:#839087; font-size:9px; line-height:1.5; }
.pay-security>span:first-child { color:#23815d; font-weight:900; }
.pay-not-ready { display:grid; gap:5px; padding:13px; border:1px solid #f0dcb4; border-radius:10px; color:#755a2e; background:#fff9eb; font-size:10px; }
.pay-not-ready b { font-size:11px; }
.pay-not-ready a { color:#59441f; font-weight:750; }
.pay-trust { display:flex; gap:11px; padding:16px; color:#427052; background:#eef5ed; box-shadow:none; }
.pay-trust>span { font-size:18px; }
.pay-trust>div { display:grid; gap:4px; }
.pay-trust b { font-size:11px; }
.pay-trust small { color:#708274; font-size:9px; line-height:1.5; }
.pay-support { margin:20px 0 0; color:#818c84; font-size:10px; text-align:center; }
.pay-support a { color:#315f49; font-weight:700; text-decoration:none; }
.pay-trap { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }
.pay-alert { margin:0 0 16px; padding:12px 15px; border:1px solid #edcfca; border-radius:10px; color:#8f443b; background:#fff5f2; font-size:11px; }
.pay-request-notice { margin:0 0 16px; padding:13px 15px; border:1px solid #cde5d3; border-radius:10px; color:#285e3c; background:#f0f8f1; font-size:11px; line-height:1.6; }
.pay-confirm-container { display:grid; justify-items:center; }
.pay-checkout-card { width:min(100%,590px); padding:clamp(24px,5vw,40px); }
.pay-checkout-card>p:not(.pay-eyebrow):not(.pay-checkout-status) { margin:10px 0 20px; color:#77847b; font-size:12px; line-height:1.6; }
.pay-checkout-amount { display:flex; align-items:center; justify-content:space-between; margin:0 0 14px; padding:18px; border-radius:12px; color:#637367; background:#f3f7f2; font-size:12px; }
.pay-checkout-amount strong { color:#1b4b34; font-size:24px; }
.pay-checkout-card dl { margin:0 0 17px; }
.pay-checkout-card dl>div { display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid #edf0ed; font-size:11px; }
.pay-checkout-card dt { color:#7e8981; }
.pay-checkout-card dd { margin:0; color:#3c4c41; font-weight:700; }
.pay-checkout-status { min-height:20px; margin:10px 0 0; color:#8d4a3f; font-size:10px; }
.pay-checkout-card>small { display:block; margin-top:11px; color:#849087; font-size:9px; line-height:1.55; }
.pay-invoice-container { max-width:870px; }
.pay-invoice-actions { display:flex; align-items:center; justify-content:space-between; margin:20px 0 12px; }
.pay-invoice-actions .pay-breadcrumb { margin:0; }
.pay-print { min-height:35px; padding:0 12px; border:1px solid #cbd9ce; border-radius:8px; color:#355c46; background:#fff; font:700 10px Quicksand,ui-sans-serif,system-ui,sans-serif; cursor:pointer; }
.invoice-sheet { padding:clamp(21px,4vw,40px); border:1px solid var(--pay-line); border-radius:16px; background:#fff; box-shadow:var(--pay-shadow); }
.invoice-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding-bottom:22px; border-bottom:1px solid #e8ede8; }
.invoice-head h1 { margin:0 0 5px; color:#1b3327; font-size:clamp(22px,4vw,30px); letter-spacing:-.035em; }
.invoice-date { color:#839087; font-size:10px; }
.invoice-status { display:inline-flex; padding:6px 10px; border-radius:999px; color:#9b6b1e; background:#fff4de; font-size:9px; font-weight:800; }
.invoice-status-paid { color:#28724c; background:#e8f5ec; }
.invoice-status-partially_paid { color:#9a691e; background:#fff5e2; }
.invoice-status-payment_failed { color:#a4473f; background:#fff0ed; }
.invoice-parties { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding:22px 0; }
.invoice-parties section { display:grid; align-content:start; gap:5px; min-width:0; color:#65756a; font-size:10px; }
.invoice-parties section>small { margin-bottom:4px; color:#8b968d; font-size:8px; font-weight:800; letter-spacing:.12em; }
.invoice-parties section>b { color:#263b2e; font-size:12px; }
.invoice-parties section>span { overflow-wrap:anywhere; white-space:pre-line; }
.invoice-table-wrap { overflow-x:auto; }
.invoice-table { width:100%; border-collapse:collapse; }
.invoice-table th { padding:10px 12px; color:#8a958c; background:#f7f9f6; font-size:8px; letter-spacing:.1em; text-align:left; }
.invoice-table th:last-child,.invoice-table td:last-child { text-align:right; white-space:nowrap; }
.invoice-table td { padding:15px 12px; border-bottom:1px solid #edf0ed; color:#394c3f; font-size:11px; vertical-align:top; }
.invoice-table td small { display:block; max-width:480px; margin-top:5px; color:#77847a; font-size:9px; line-height:1.6; white-space:pre-line; }
.invoice-totals { display:grid; gap:10px; width:min(100%,310px); margin:18px 0 0 auto; }
.invoice-totals>div { display:flex; justify-content:space-between; gap:16px; color:#718076; font-size:10px; }
.invoice-totals b { color:#34473b; font-size:11px; }
.invoice-totals .invoice-balance { padding-top:12px; border-top:1px solid #e8ede8; color:#263c30; font-size:12px; font-weight:800; }
.invoice-totals .invoice-balance b { color:#174b34; font-size:18px; }
.invoice-payments { margin-top:25px; padding-top:18px; border-top:1px solid #e8ede8; }
.invoice-payments h2 { margin:0 0 11px; color:#2c4034; font-size:13px; }
.invoice-payment-row { display:flex; justify-content:space-between; gap:18px; padding:10px 0; border-top:1px solid #f0f2ef; }
.invoice-payment-row>div { display:grid; gap:3px; }
.invoice-payment-row b { color:#3c5444; font-size:10px; }
.invoice-payment-row small { color:#829087; font-size:9px; line-height:1.5; }
.invoice-payment-row>strong { color:#286341; font-size:11px; white-space:nowrap; }
.invoice-footer { display:flex; justify-content:space-between; gap:20px; margin-top:24px; padding-top:15px; border-top:1px solid #e8ede8; color:#879188; font-size:9px; }
.invoice-footer p { max-width:520px; margin:0; line-height:1.6; }
.invoice-footer b { color:#53695a; font-size:9px; }
.invoice-balance-form { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:14px; padding:15px 18px; border:1px solid #dfe8df; border-radius:13px; background:#fff; }
.invoice-balance-form>div { display:grid; gap:3px; }
.invoice-balance-form b { color:#304b39; font-size:12px; }
.invoice-balance-form small { color:#849087; font-size:9px; }
.invoice-balance-form .pay-submit { width:auto; min-width:215px; }
.managed-policy-page { padding-bottom:35px; background:#f7f8f5; }
.managed-policy-page .breadcrumbs { padding-top:1px; }
.policy-hero { max-width:960px; padding:28px clamp(10px,2vw,20px) 25px; }
.policy-hero h1 { max-width:780px; margin:0; color:#153a31; font-size:clamp(34px,5vw,56px); letter-spacing:-.055em; line-height:1.04; }
.policy-hero>p:last-child { max-width:660px; margin:12px 0 0; color:#63766a; font-size:14px; line-height:1.7; }
.managed-policy-body { max-width:960px; padding:27px clamp(22px,5vw,55px); border:1px solid #e4e9e2; border-radius:17px; background:#fff; box-shadow:0 10px 30px rgb(15 45 35 / 4%); color:#526359; font-size:13px; line-height:1.9; }
.managed-policy-body .policy-updated { margin:0 0 16px; color:#839087; font-size:10px; }
.managed-policy-body>div { overflow-wrap:anywhere; }
.managed-policy-body>div a,.policy-contact a { color:#185a43; font-weight:700; }
.managed-policy-body .policy-contact { margin:22px 0 0; padding-top:14px; border-top:1px solid #edf0ed; }
.pay-page .site-footer,.pay-page+.footer { display:block; }
.plan-modal[open] { z-index:100; }
@media(max-width:900px) { .pay-layout { grid-template-columns:minmax(0,1fr) minmax(275px,.78fr); gap:14px; } .pay-card { padding:20px; } .pay-summary-card { padding:18px; } .pay-step { gap:5px; } .pay-step i { width:13px; } }
@media(max-width:720px) { .pay-container { width:min(100% - 30px,560px); } .pay-topline { justify-content:flex-start; padding-inline:15px; font-size:10px; } .pay-topline>a { position:static; margin-left:auto; font-size:9px; } .pay-heading { align-items:flex-start; flex-direction:column; gap:14px; margin-bottom:17px; } .pay-heading h1 { font-size:30px; } .pay-step { width:100%; justify-content:space-between; font-size:8px; } .pay-step i { flex:1; } .pay-layout { grid-template-columns:1fr; gap:13px; } .pay-form-column { gap:13px; } .pay-card { padding:18px 16px; border-radius:13px; } .pay-summary-column { grid-row:1; } .pay-summary-card { position:static; padding:17px; } .pay-trust { display:none; } .pay-summary-card h2 { margin-bottom:12px; } .pay-card-title { margin-bottom:15px; } .pay-card-title h2 { font-size:15px; } .pay-fields-grid { grid-template-columns:1fr; gap:0; } .pay-field-wide { grid-column:auto; } .pay-choice { min-height:62px; } .pay-breadcrumb { margin-top:17px; } .pay-checkout-card { padding:24px 20px; } .invoice-parties { gap:17px; } .invoice-footer { flex-direction:column; gap:8px; } .invoice-balance-form { align-items:stretch; flex-direction:column; } .invoice-balance-form .pay-submit { width:100%; } .managed-policy-body { padding:22px 19px; } .policy-hero { padding:15px 0 20px; } }
@media(max-width:390px) { .pay-container { width:calc(100% - 22px); } .pay-topline>a { max-width:94px; text-align:right; } .pay-step { gap:4px; } .pay-step b { font-size:7px; } .pay-step i { width:auto; } .pay-choice { grid-template-columns:15px minmax(0,1fr); } .pay-choice>i { grid-column:2; justify-self:start; margin-top:-3px; } .invoice-parties { grid-template-columns:1fr; } }
@media print { body,.pay-page { background:#fff!important; } .site-header,.announce,.nav,.footer,.pay-topline,.pay-invoice-actions,.invoice-balance-form,.pay-support,.mobile-tabs,.floating-actions { display:none!important; } .pay-page { min-height:auto; padding:0; } .pay-container { width:100%; max-width:none; } .invoice-sheet { padding:0; border:0; box-shadow:none; } .invoice-head h1 { font-size:24px; } }
@media(prefers-reduced-motion:reduce) { .pay-submit { transition:none; } .pay-spinner { animation:none; } }
