.payment-page { background: #fff; }
.payment-page main { color: var(--navy); }
.payment-hero { padding: 58px 24px 42px; text-align: center; background: radial-gradient(circle at 50% -30%, #d9edf8, #fff 62%); }
.payment-hero h1 { margin: 3px 0 10px; color: var(--navy); font-size: clamp(2.45rem, 5vw, 4rem); }
.payment-hero > p:not(.eyebrow) { max-width: 620px; margin: 0 auto 26px; color: var(--muted); font-size: 1rem; line-height: 1.55; }
.payment-method-tabs { width: min(1050px, 100%); margin: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; text-align: left; }
.payment-method { min-height: 96px; padding: 15px 16px; border: 2px solid var(--line); border-radius: 9px; color: var(--navy); background: #fff; box-shadow: 0 6px 18px rgba(15,63,104,.06); display: flex; align-items: center; gap: 12px; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.payment-method:hover { border-color: #9ed6fb; transform: translateY(-1px); }
.payment-method:focus-visible { outline: 3px solid rgba(54,170,255,.35); outline-offset: 2px; }
.payment-method.active { border-color: var(--blue-dark); background: #eff8fe; box-shadow: 0 8px 22px rgba(8,119,185,.13); }
.payment-method > svg { width: 36px; height: 36px; padding: 8px; flex: 0 0 auto; border-radius: 8px; color: var(--blue-dark); background: #e4f4fe; }
.payment-method span { min-width: 0; display: grid; gap: 3px; }
.payment-method strong { font-family: "Poppins", sans-serif; font-size: .86rem; }
.payment-method small { color: var(--muted); font-size: .67rem; line-height: 1.3; }

.payment-panel { width: min(1120px, calc(100% - 40px)); margin: auto; padding: 54px 0 62px; }
.payment-panel[hidden] { display: none; }
.online-intro { margin-bottom: 24px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.online-intro h2 { margin: 3px 0 7px; color: var(--navy); font-size: clamp(1.65rem, 3vw, 2.25rem); }
.online-intro > div:first-child > p:not(.eyebrow) { max-width: 610px; margin: 0; color: var(--muted); line-height: 1.5; }
.bank-trust { max-width: 330px; padding: 11px 14px; border: 1px solid #cddce8; border-radius: 8px; background: #fff; box-shadow: 0 6px 18px rgba(15,63,104,.06); display: grid; gap: 7px; justify-items: center; }
.bank-trust img { width: 175px; height: auto; }
.bank-trust span { color: var(--green-dark); display: flex; align-items: center; gap: 6px; font-size: .67rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.bank-trust span svg { width: 15px; height: 15px; }

.online-flow { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; box-shadow: 0 12px 34px rgba(15,63,104,.08); }
.payment-prep, .payment-actions { padding: 28px; }
.payment-prep { background: #f7fafc; border-right: 1px solid var(--line); }
.payment-actions { background: #fff; }
.step-label { display: inline-flex; margin-bottom: 10px; padding: 5px 9px; border-radius: 99px; color: #fff; background: var(--blue-dark); font-size: .66rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.payment-prep h3, .payment-actions h3 { margin: 0 0 6px; color: var(--navy); font-size: 1.3rem; }
.step-intro { margin: 0 0 19px; color: var(--muted); font-size: .78rem; line-height: 1.45; }

.credential-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.credential-list li { min-height: 78px; padding: 13px 14px; border: 1px solid #d9e2e9; border-radius: 8px; background: #fff; display: flex; align-items: center; gap: 12px; }
.badge { width: 28px; height: 28px; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--navy); display: grid; place-items: center; font-size: .72rem; font-weight: 800; }
.credential-list li > div { min-width: 0; display: grid; gap: 3px; }
.credential-list strong { color: var(--navy); font-size: .8rem; line-height: 1.3; }
.credential-list small { color: var(--muted); font-size: .68rem; line-height: 1.35; }
.credential-list a, .credential-list button { width: fit-content; margin-top: 2px; padding: 0; border: 0; color: var(--blue-dark); background: none; font: inherit; font-size: .68rem; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.management-row .management-id { margin-left: auto; padding: 7px 11px; border: 1px solid #9dd4f5; border-radius: 6px; color: var(--green-dark); background: var(--mint); font: 800 1.25rem monospace; letter-spacing: 2px; }
.association-finder { margin-top: 10px; padding: 15px; border: 1px solid #b8d8ec; border-radius: 8px; background: #eaf6fd; }
.association-finder label { display: block; margin-bottom: 7px; color: var(--navy); font-size: .76rem; font-weight: 800; }
.association-finder input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid #aebdca; border-radius: 6px; background: #fff; }
.association-results { margin-top: 8px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.association-results div { padding: 9px 11px; border-bottom: 1px solid var(--line); background: #fff; display: flex; justify-content: space-between; gap: 10px; font-size: .72rem; }
.association-results div:last-child { border: 0; }
.association-results strong { color: var(--blue-dark); font-family: monospace; letter-spacing: 1px; }

.pay-choice-grid { display: grid; gap: 11px; }
.pay-choice { min-height: 96px; padding: 17px; border: 1px solid var(--line); border-radius: 9px; color: var(--navy); background: #fff; display: flex; align-items: center; gap: 13px; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.pay-choice:hover { border-color: #9ed6fb; box-shadow: 0 8px 20px rgba(15,63,104,.09); transform: translateY(-1px); }
.pay-choice:focus-visible { outline: 3px solid rgba(54,170,255,.35); outline-offset: 2px; }
.pay-choice.primary { color: #fff; background: var(--green); border-color: var(--green); }
.pay-choice > svg:first-child { width: 39px; height: 39px; padding: 8px; flex: 0 0 auto; border-radius: 8px; color: var(--blue-dark); background: #edf6fc; }
.pay-choice.primary > svg:first-child { color: #fff; background: rgba(255,255,255,.18); }
.pay-choice > svg:last-child { width: 19px; height: 19px; margin-left: auto; flex: 0 0 auto; }
.pay-choice span { min-width: 0; display: grid; gap: 4px; }
.pay-choice strong { font-size: .83rem; line-height: 1.35; }
.pay-choice small { opacity: .78; font-size: .68rem; line-height: 1.35; }
.portal-shortcut { margin-top: 13px; padding: 13px 14px; border-radius: 8px; color: var(--navy); background: #eef7fd; display: flex; align-items: center; gap: 10px; }
.portal-shortcut > svg { width: 22px; height: 22px; color: var(--blue-dark); flex: 0 0 auto; }
.portal-shortcut span { display: grid; gap: 2px; font-size: .72rem; }
.portal-shortcut a { color: var(--blue-dark); font-weight: 800; text-underline-offset: 2px; }

.online-notes { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.online-notes > div { min-height: 76px; padding: 13px 14px; border-radius: 8px; color: var(--navy); background: var(--soft); display: flex; align-items: center; gap: 10px; }
.online-notes > div > svg { width: 23px; height: 23px; flex: 0 0 auto; color: var(--blue-dark); }
.online-notes span { display: grid; gap: 2px; }
.online-notes strong { font-size: .74rem; }
.online-notes small { color: var(--muted); font-size: .66rem; line-height: 1.35; }

.resource-disclosure, .access-denied-card, .payment-policy { border-radius: 8px; overflow: hidden; }
.resource-disclosure { margin-top: 12px; border: 1px solid var(--line); background: #fff; }
.resource-disclosure summary, .access-denied-card summary, .payment-policy summary { padding: 14px 16px; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.resource-disclosure summary::-webkit-details-marker, .access-denied-card summary::-webkit-details-marker, .payment-policy summary::-webkit-details-marker { display: none; }
.resource-disclosure summary > span, .access-denied-card summary > span, .payment-policy summary > span { min-width: 0; display: flex; align-items: center; gap: 10px; }
.resource-disclosure summary > span > svg, .access-denied-card summary > span > svg, .payment-policy summary > span > svg { width: 22px; height: 22px; flex: 0 0 auto; }
.resource-disclosure summary strong, .access-denied-card summary strong, .payment-policy summary strong { color: var(--navy); font-size: .78rem; line-height: 1.35; }
.resource-disclosure summary small, .access-denied-card summary small { margin-left: 3px; color: var(--muted); font-size: .68rem; }
.resource-disclosure summary > svg:last-child, .access-denied-card summary > svg:last-child, .payment-policy summary > svg:last-child { width: 18px; height: 18px; flex: 0 0 auto; color: var(--blue-dark); transition: transform .18s ease; }
.resource-disclosure[open] summary > svg:last-child, .access-denied-card[open] summary > svg:last-child, .payment-policy[open] summary > svg:last-child { transform: rotate(180deg); }
.resource-disclosure-body { padding: 0 16px 16px; }
.property-pay-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.property-pay-resource-grid a { min-height: 65px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 7px; color: var(--navy); display: flex; align-items: center; gap: 9px; text-decoration: none; }
.property-pay-resource-grid a:hover { border-color: #9ed6fb; background: #f9fcfe; }
.property-pay-resource-grid a > svg:first-child { width: 28px; height: 28px; padding: 6px; flex: 0 0 auto; border-radius: 7px; color: var(--blue-dark); background: #edf6fc; }
.property-pay-resource-grid a > svg:last-child { width: 15px; height: 15px; margin-left: auto; flex: 0 0 auto; color: var(--blue-dark); }
.property-pay-resource-grid span { min-width: 0; display: grid; gap: 2px; }
.property-pay-resource-grid strong { font-size: .72rem; line-height: 1.3; }
.property-pay-resource-grid small { color: var(--muted); font-size: .63rem; }
.property-pay-support { margin-top: 8px; padding: 10px 12px; border-radius: 7px; background: var(--soft); display: flex; align-items: center; gap: 8px 15px; flex-wrap: wrap; font-size: .68rem; }
.property-pay-support strong { color: var(--navy); }
.property-pay-support a { color: var(--blue-dark); font-weight: 700; text-underline-offset: 2px; }

.simple-panel { max-width: 760px; min-height: 360px; display: grid; grid-template-columns: 76px 1fr; gap: 24px; align-items: start; }
.simple-panel-icon { width: 70px; height: 70px; border-radius: 16px; color: #fff; background: var(--blue-dark); display: grid; place-items: center; }
.simple-panel-icon svg { width: 32px; height: 32px; }
.simple-panel h2 { margin: 3px 0 10px; color: var(--navy); }
.simple-panel p { max-width: 650px; color: var(--muted); line-height: 1.55; }
.simple-panel address { width: fit-content; min-width: 330px; margin: 20px 0 14px; padding: 18px 22px; border-left: 4px solid var(--blue); color: var(--navy); background: #f3f9fd; font-style: normal; line-height: 1.65; }
.method-note { color: #8a3e18; display: inline-flex; align-items: center; gap: 5px; }
.method-note svg { width: 17px; height: 17px; }
.method-action { color: var(--blue-dark); display: inline-flex; align-items: center; gap: 5px; font-weight: 800; }
.method-action svg { width: 16px; height: 16px; }
.method-hours { margin-top: 8px; font-size: .78rem; }
.phone-number { display: inline-block; margin-top: 8px; color: var(--blue-dark); font-size: 1.5rem; font-weight: 800; }

.account-payment-help { padding: 48px max(20px, calc((100vw - 1120px) / 2)) 60px; border-top: 1px solid var(--line); background: #f6f9fb; }
.account-payment-help .section-heading { margin-bottom: 18px; }
.account-payment-help .section-heading h2 { margin-top: 3px; color: var(--navy); font-size: 1.7rem; }
.account-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.account-action-grid a { min-height: 92px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; color: var(--navy); background: #fff; display: flex; align-items: center; gap: 11px; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.account-action-grid a:hover { border-color: #9ed6fb; box-shadow: 0 7px 18px rgba(15,63,104,.08); transform: translateY(-1px); }
.account-action-grid a:focus-visible { outline: 3px solid rgba(54,170,255,.35); outline-offset: 2px; }
.account-action-grid a > svg:first-child { width: 34px; height: 34px; padding: 7px; flex: 0 0 auto; border-radius: 8px; color: var(--blue-dark); background: #edf6fc; }
.account-action-grid a > svg:last-child { width: 16px; height: 16px; margin-left: auto; flex: 0 0 auto; color: var(--blue-dark); }
.account-action-grid span { min-width: 0; display: grid; gap: 3px; }
.account-action-grid strong { font-size: .75rem; line-height: 1.35; }
.account-action-grid small { color: var(--muted); font-size: .65rem; line-height: 1.35; }

.access-denied-card { margin: 0 0 12px; border: 1px solid #ecd69d; background: #fff9e9; }
.access-denied-card summary > span > svg { color: #7a5813; }
.access-denied-card > div { padding: 0 16px 15px 48px; }
.access-denied-card > div p { max-width: 990px; margin: 0 0 8px; color: #536474; font-size: .72rem; line-height: 1.55; }
.access-denied-card > div strong { color: #694b10; font-size: .72rem; line-height: 1.45; }
.payment-policy { margin-top: 8px; border: 1px solid var(--line); background: #fff; }
.payment-policy summary > span > svg { color: var(--blue-dark); }
.payment-policy > p { margin: 0; padding: 0 16px 15px 48px; color: var(--muted); font-size: .66rem; line-height: 1.55; }

.payment-footer { display: block; text-align: center; }
.payment-footer .footer-brand { margin: 0 auto 18px; }
.payment-footer a { color: #fff; }

@media (max-width: 900px) {
  .payment-method-tabs { grid-template-columns: 1fr 1fr; }
  .online-intro { align-items: flex-start; }
  .online-flow { grid-template-columns: 1fr; }
  .payment-prep { border-right: 0; border-bottom: 1px solid var(--line); }
  .account-action-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .payment-hero { padding: 46px 18px 34px; }
  .payment-method-tabs { grid-template-columns: 1fr; gap: 8px; }
  .payment-method { min-height: 78px; }
  .payment-panel { width: min(100% - 28px, 1120px); padding: 42px 0 50px; }
  .online-intro { display: grid; }
  .bank-trust { width: 100%; max-width: none; grid-template-columns: auto 1fr; justify-items: start; }
  .bank-trust img { width: 155px; }
  .payment-prep, .payment-actions { padding: 20px; }
  .management-row { flex-wrap: wrap; }
  .management-row .management-id { margin-left: 40px; }
  .online-notes { grid-template-columns: 1fr; }
  .resource-disclosure summary > span, .access-denied-card summary > span { align-items: flex-start; display: grid; grid-template-columns: auto 1fr; }
  .resource-disclosure summary small, .access-denied-card summary small { grid-column: 2; margin-left: 0; }
  .property-pay-resource-grid { grid-template-columns: 1fr; }
  .property-pay-support { align-items: flex-start; flex-direction: column; }
  .simple-panel { min-height: 0; grid-template-columns: 1fr; gap: 16px; }
  .simple-panel-icon { width: 58px; height: 58px; border-radius: 13px; }
  .simple-panel-icon svg { width: 27px; height: 27px; }
  .simple-panel address { min-width: 0; width: 100%; }
  .account-payment-help { padding-top: 40px; }
  .access-denied-card > div, .payment-policy > p { padding-left: 16px; }
}
