/**
 * Taxevo — make-a-payment page widget styles
 * Self-contained, scoped under #taxevo-payment-root, same pattern as
 * sitebot-widget.css. Loaded via <link> only on the /make-a-payment/
 * page itself, not sitewide.
 */

@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");

#taxevo-payment-root {
  --tp-brand: #0d4c59;
  --tp-brand-deep: #643fff;
  --tp-brand-light: #e1edee;
  --tp-ink: #23261c;
  --tp-ink-dim: #6b6d5e;
  --tp-surface: #fbfaf5;
  --tp-line: #d8d6c8;
  --tp-error: #b3261e;
  --tp-error-bg: #fbeaea;
  all: initial;
  /* !important: the host WordPress theme has a sitewide
     "body *:not(...) { font-family: 'Fraunces', serif !important; }" rule
     that leaks into any "self-contained" widget without this — see the
     SiteBot chat widget's identical fix, documented in project memory. */
  font-family: "Poppins", "Segoe UI", system-ui, sans-serif !important;
  color: var(--tp-ink);
  display: block;
  max-width: 560px;
  margin: 40px auto;
  padding: 0 16px;
}

#taxevo-payment-root *, #taxevo-payment-root *::before, #taxevo-payment-root *::after {
  box-sizing: border-box;
  font-family: inherit !important;
}

.tp-card {
  background: #fff !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: 14px !important;
  padding: 28px 24px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05) !important;
}

.tp-heading {
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  margin: 0 0 4px !important;
  color: var(--tp-brand) !important;
}

.tp-subheading {
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--tp-ink-dim) !important;
  margin: 0 0 22px !important;
}

.tp-country-indicator {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  background: var(--tp-brand-light) !important;
  color: var(--tp-brand) !important;
  padding: 5px 12px !important;
  border-radius: 999px !important;
  margin: 0 0 20px !important;
}

.tp-field {
  margin: 0 0 16px !important;
}

.tp-label {
  display: block !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  margin: 0 0 6px !important;
  color: var(--tp-ink) !important;
}
.tp-required {
  color: var(--tp-error) !important;
  font-weight: 700 !important;
}

.tp-input {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  padding: 11px 13px !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: 8px !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  background: #fff !important;
  color: var(--tp-ink) !important;
}
.tp-input:focus-visible {
  outline: 2px solid var(--tp-brand) !important;
  outline-offset: 1px !important;
}

.tp-amount-wrap {
  display: flex !important;
  align-items: center !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: 8px !important;
  background: #fff !important;
  overflow: hidden !important;
}
.tp-amount-wrap:focus-within {
  outline: 2px solid var(--tp-brand) !important;
  outline-offset: 1px !important;
}
.tp-amount-wrap .tp-currency-prefix {
  flex: none !important;
  padding: 11px 2px 11px 13px !important;
  color: var(--tp-ink-dim) !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}
.tp-amount-wrap .tp-input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  border: none !important;
  padding: 11px 13px 11px 0 !important;
}
.tp-amount-wrap .tp-input:focus-visible {
  outline: none !important;
}

.tp-breakdown {
  background: var(--tp-surface) !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: 10px !important;
  padding: 14px 16px !important;
  margin: 20px 0 !important;
  font-size: 14px !important;
}
.tp-breakdown-row {
  display: flex !important;
  justify-content: space-between !important;
  padding: 4px 0 !important;
  margin: 0 !important;
  color: var(--tp-ink-dim) !important;
}
.tp-breakdown-row.tp-total {
  border-top: 1px solid var(--tp-line) !important;
  margin-top: 6px !important;
  padding-top: 10px !important;
  font-weight: 700 !important;
  color: var(--tp-ink) !important;
  font-size: 16px !important;
}
.tp-breakdown-placeholder {
  color: var(--tp-ink-dim) !important;
  font-size: 13px !important;
  font-style: italic !important;
}

.tp-disclosure {
  font-size: 12px !important;
  line-height: 1.5 !important;
  color: var(--tp-ink-dim) !important;
  margin: 16px 0 !important;
  padding: 10px 12px !important;
  background: var(--tp-brand-light) !important;
  border-radius: 8px !important;
}
/* Status banners (payment success/cancelled) — classes, not inline styles,
   since .tp-disclosure's own background/color are !important and would
   otherwise beat an inline style regardless of specificity. */
.tp-disclosure.tp-status-success {
  background: #e4f6e8 !important;
  color: #1e7a34 !important;
  font-weight: 600 !important;
}
.tp-disclosure.tp-status-error {
  background: #fbeaea !important;
  color: #b3261e !important;
  font-weight: 600 !important;
}

.tp-submit {
  display: block !important;
  width: 100% !important;
  background: var(--tp-brand) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 9px !important;
  padding: 13px 16px !important;
  font-size: 15.5px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
  transition: filter 0.15s ease, transform 0.15s ease !important;
}
.tp-submit:hover:not(:disabled) {
  filter: brightness(1.07) !important;
}
.tp-submit:disabled {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
}

.tp-error {
  background: var(--tp-error-bg) !important;
  color: var(--tp-error) !important;
  border-radius: 8px !important;
  padding: 10px 12px !important;
  font-size: 13.5px !important;
  margin: 12px 0 !important;
  display: none !important;
}
.tp-error.tp-visible {
  display: block !important;
}

.tp-footer-note {
  text-align: center !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  color: var(--tp-ink-dim) !important;
  margin: 16px 0 0 !important;
}

@media (max-width: 480px) {
  #taxevo-payment-root {
    margin: 20px auto !important;
  }
  .tp-card {
    padding: 22px 18px !important;
  }
}
