/* Scoped transaction-page styles; tokens from the incumbent Florida Helps site. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/client-funds-fonts/inter-latin-variable.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url('/client-funds-fonts/manrope-latin-variable.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --brand-primary: #005cad;
  --brand-primary-dark: #00437f;
  --brand-primary-deep: #062f55;
  --brand-primary-wash: #eaf7fc;
  --brand-sunrise: #f7b86b;
  --neutral-950: #081d2a;
  --neutral-900: #102b3c;
  --neutral-600: #486776;
  --neutral-500: #6b8490;
  --neutral-300: #bdcbd0;
  --neutral-200: #d9e4e7;
  --neutral-100: #edf3f4;
  --neutral-50: #f7fafb;
  --neutral-0: #fff;
  --color-error: #9f2f42;
  --font-body: 'Inter', 'Avenir Next', 'Segoe UI', system-ui, sans-serif;
  --font-heading: 'Manrope', 'Avenir Next', 'Segoe UI', system-ui, sans-serif;
  --radius-sm: .5rem;
  --radius-md: .875rem;
  --radius-full: 9999px;
  font-family: var(--font-body);
  color: var(--neutral-900);
  background: var(--neutral-50);
  font-synthesis: none;
  line-height: 1.7;
  color-scheme: light;
}
* { box-sizing: border-box; }
body { margin: 0; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
a { color: var(--brand-primary-dark); text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
button, input { font: inherit; }
button, a, input { touch-action: manipulation; }
button, .phone-cta {
  cursor: pointer;
  border: 1px solid var(--neutral-500);
  background: var(--neutral-0);
  color: var(--brand-primary-deep);
  border-radius: var(--radius-full);
  padding: .75rem 1.5rem;
  min-height: 52px;
  font-size: .9375rem;
  font-weight: 700;
  line-height: 1.2;
}
button:disabled { cursor: wait; opacity: .6; }
button:hover:not(:disabled), button[aria-pressed=true] {
  background: var(--brand-primary-wash);
  border-color: var(--brand-primary);
}
button[aria-pressed=true] { box-shadow: inset 0 0 0 1px var(--brand-primary); }
button.primary, .phone-cta {
  background: var(--brand-primary);
  border-color: transparent;
  color: var(--neutral-0);
}
button.primary { width: 100%; margin-top: 1rem; }
button.primary:hover:not(:disabled), .phone-cta:hover {
  background: var(--brand-primary-dark);
  color: var(--neutral-0);
}
input {
  display: block;
  border: 1px solid var(--neutral-500);
  border-radius: var(--radius-sm);
  background: var(--neutral-0);
  width: 100%;
  padding: .75rem;
  min-width: 0;
  color: var(--neutral-900);
  caret-color: var(--brand-primary);
}
input::placeholder { color: var(--neutral-600); opacity: 1; }
input[aria-invalid=true] { border: 2px solid var(--color-error); }
input:disabled { background: var(--neutral-100); color: var(--neutral-600); }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
label, .label { display: block; font-weight: 600; margin: .9rem 0 .4rem; }
h1, h2 {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--neutral-950);
  letter-spacing: -.035em;
  text-wrap: balance;
}
h1 {
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1.15;
  max-width: 23ch;
  margin: .6rem 0 1rem;
}
h2 { font-size: 1.4rem; line-height: 1.3; margin: 0 0 1rem; }
p { margin: .8rem 0 1.2rem; }
.shell { width: min(1080px, 100% - 2rem); margin-inline: auto; }
.site-header { background: var(--neutral-0); border-bottom: 1px solid var(--neutral-200); }
.masthead {
  min-height: 86px;
  padding-block: .75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.brand-link { display: inline-flex; align-items: center; min-height: 52px; max-width: 100%; }
.brand-link img { display: block; width: 214px; max-width: 100%; height: auto; }
.phone-cta { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; text-align: center; }
main.shell { padding-top: clamp(1.5rem, 4vw, 3rem); }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .8125rem; font-weight: 700; margin: .7rem 0; color: var(--brand-primary-dark); }
.intro { font-size: 1.1rem; max-width: 65ch; margin-bottom: 2rem; }
.layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.card { background: var(--neutral-0); border: 1px solid var(--neutral-200); border-radius: var(--radius-md); padding: clamp(1.1rem, 4vw, 2rem); min-width: 0; }
.summary { background: var(--brand-primary-wash); border-color: transparent; color: var(--brand-primary-deep); }
.summary h2 { color: var(--brand-primary-deep); }
.hint { font-size: .88rem; color: var(--neutral-600); margin: .4rem 0; overflow-wrap: anywhere; }
.error { color: var(--color-error); font-size: .92rem; }
.error:empty { display: none; }
.presets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.presets button { padding: .6rem .3rem; }
.breakdown { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; }
.breakdown strong, .total strong, #payment-total, #amount { font-variant-numeric: tabular-nums; }
.total { border-block: 1px solid var(--brand-sunrise); padding: 1.1rem 0; display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; }
.total strong { font-family: var(--font-heading); font-weight: 700; font-size: 1.7rem; }
footer { padding: 2rem 0; font-size: .9rem; color: var(--neutral-600); }
.return { max-width: 720px; }
.return h1 { max-width: none; }
#challenge { margin-top: 1rem; min-height: 1rem; max-width: 100%; }
#form-status { overflow-wrap: anywhere; }
#payment-element, #payer-email { margin: .7rem 0; }
#start-over { margin-top: 1rem; }
button[hidden], [hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 4px; }
::selection { background: var(--brand-sunrise); color: var(--brand-primary-deep); }
.skip { position: absolute; left: 1rem; top: -100px; background: var(--neutral-0); padding: 1rem; z-index: 10; }
.skip:focus { top: 0; }
.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; }
@media (max-width: 720px) {
  .layout { grid-template-columns: 1fr; }
  .masthead { min-height: 76px; }
  .brand-link img { width: 185px; }
  .phone-cta { min-height: 44px; padding: .65rem 1rem; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }
