{"id":2541,"date":"2026-07-03T12:54:27","date_gmt":"2026-07-03T12:54:27","guid":{"rendered":"https:\/\/severeinjurylawyers.com\/?page_id=2541"},"modified":"2026-07-14T21:50:18","modified_gmt":"2026-07-14T21:50:18","slug":"analizador-de-ofertas-de-conciliacion-en-texas","status":"publish","type":"page","link":"https:\/\/severeinjurylawyers.com\/es\/tools\/texas-settlement-offer-analyzer\/","title":{"rendered":"Analizador de ofertas de conciliaci\u00f3n de Texas"},"content":{"rendered":"\n<!-- ============================================================\n  J. ALEXANDER LAW \u2014 TEXAS SETTLEMENT OFFER ANALYZER\n  \"Should I sign this?\"\n  Paste this entire block into one WordPress Custom HTML block\n  on a full-width page template (same template as your homepage).\n  Title \/ meta description \/ canonical: set in SEOPress as usual.\n\n  Privacy architecture: 100% client-side. No storage of any kind\n  (no cookies, no localStorage, no server calls). State lives in\n  JS memory only and dies when the tab closes.\n\n  v2 stub: the paste-your-release AI review is marked below and\n  disabled until the API proxy endpoint exists.\n  Rule set last verified: July 2026.\n============================================================= -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@600;700;800&amp;family=Playfair+Display:ital,wght@1,500&amp;family=Source+Sans+3:wght@400;600&amp;family=JetBrains+Mono:wght@500;600&amp;display=swap\" rel=\"stylesheet\">\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"WebApplication\",\n      \"name\": \"Texas Settlement Offer Analyzer\",\n      \"applicationCategory\": \"LegalService\",\n      \"operatingSystem\": \"Web\",\n      \"offers\": { \"@type\": \"Offer\", \"price\": \"0\", \"priceCurrency\": \"USD\" },\n      \"provider\": {\n        \"@type\": \"LegalService\",\n        \"@id\": \"https:\/\/severeinjurylawyers.com\/#firm\",\n        \"name\": \"J. Alexander Law Firm\",\n        \"telephone\": \"+1-469-807-7480\",\n        \"url\": \"https:\/\/severeinjurylawyers.com\/\"\n      },\n      \"description\": \"A free educational tool that walks through the checks an attorney runs on a car accident settlement offer in Texas: treatment status, the pain-and-suffering math, asserted fault under the 51% bar, and the release language.\"\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"How much will I get from a $50,000 settlement in Texas?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Your net depends on what comes off the top: the contingency fee you agreed to, case expenses, and medical liens. In Texas, a hospital that treated you within 72 hours of the crash may hold an automatic lien under Property Code Chapter 55, and health insurers often assert repayment rights. Lien negotiation frequently changes the net more than the gross number does, which is one reason offers should be reviewed before signing.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Should I accept the first settlement offer after a car accident?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Not before two things are true: your medical picture is stable enough to price future care, and you have read the actual release language. Early offers are frequently a timing strategy made before the full cost of an injury is known. An offer that roughly equals your medical bills is pricing your pain, lost time, and future risk at close to zero.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"What happens after I sign a settlement release in Texas?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"The claim is over. A standard release extinguishes all claims arising from the crash, including injuries diagnosed later. If a disc injury surfaces after signing and requires surgery, that cost is yours. This is why the release document itself, not the dollar figure, is what an attorney reads first.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"What are signs of a good settlement offer?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"A structurally sound offer arrives after maximum medical improvement so future care is priceable; allocates meaningfully beyond medical bills, with an implied pain-and-suffering multiple in or near the typical 1.5x to 5x band for the injury severity; carries no unproven comparative-fault discount; comes with a written release limited to claims against the at-fault driver and insurer rather than all claims arising from the incident; leaves a net after contingency fee and medical liens that still justifies accepting; and imposes no artificial deadline. Even an offer passing all of these deserves an attorney's read of the release before signing.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"If I reject a settlement offer, can the insurance company lower or withdraw it?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Implying an offer will shrink or vanish if you consult a lawyer is a common pressure tactic, not how negotiations typically work. Rejecting an opening offer ordinarily begins negotiation, and offers commonly increase once a claim is documented. The meaningful deadline is Texas's two-year limitations period for filing suit, not the adjuster's timeline.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"The insurance company offered the policy limits. Is that the maximum I can recover?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"It is the maximum of that one policy, which may not be the whole recovery. Before accepting a limits tender, demand written proof of the actual limits, then identify other sources a broad release could extinguish: your own UM\/UIM and PIP coverage, an employer's policy if the driver was working, umbrella coverage, or additional defendants.\" }\n        }\n      ]\n    }\n  ]\n}\n<\/script>\n\n<style>\n\/* ============ SCOPE + BREAKOUT (mirrors .jalex-home) ============ *\/\n.jalex-soa {\n  width: 100vw !important;\n  position: relative;\n  left: 50%; right: 50%;\n  margin-left: -50vw !important;\n  margin-right: -50vw !important;\n  max-width: 100vw !important;\n}\n.jalex-soa {\n  --bg: #000000;\n  --bg-2: #0c0c0c;\n  --panel: #141414;\n  --rule: #232323;\n  --rule-2: #2c2c2c;\n  --text: #ffffff;\n  --text-2: #cfd2d6;\n  --muted: #8a8f96;\n  --gold: #F3B937;\n  --gold-deep: #d99e1c;\n  --heading: \"Montserrat\", system-ui, sans-serif;\n  --body: \"Source Sans 3\", system-ui, sans-serif;\n  --serif: \"Playfair Display\", Georgia, serif;\n  --mono: \"JetBrains Mono\", ui-monospace, monospace;\n  --maxw: 1400px;\n  --gutter: clamp(20px, 4vw, 64px);\n  --radius: 3px;\n}\n.jalex-soa * { box-sizing: border-box; }\n.jalex-soa {\n  background: var(--bg);\n  color: var(--text);\n  font-family: var(--body);\n  font-size: 16px;\n  line-height: 1.55;\n  -webkit-font-smoothing: antialiased;\n  overflow-x: clip;\n}\n.jalex-soa img { max-width: 100%; display: block; }\n.jalex-soa a { color: inherit; text-decoration: none; }\n.jalex-soa button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }\n.jalex-soa ::selection { background: var(--gold); color: #000; }\n.jalex-soa .wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }\n.jalex-soa .wrap-narrow { max-width: 880px; margin: 0 auto; padding: 0 var(--gutter); }\n.jalex-soa .eyebrow {\n  font-family: var(--mono); font-size: 11px; font-weight: 500;\n  letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold);\n  display: inline-flex; align-items: center; gap: 12px;\n}\n.jalex-soa .eyebrow .num { color: var(--muted); margin-right: 12px; }\n.jalex-soa h1, .jalex-soa h2, .jalex-soa h3 {\n  font-family: var(--heading); font-weight: 700;\n  letter-spacing: -0.02em; color: var(--text); margin: 0;\n}\n.jalex-soa h1 { font-size: clamp(38px, 5.4vw, 76px); line-height: 1.02; font-weight: 800; letter-spacing: -0.035em; }\n.jalex-soa h2 { font-size: clamp(26px, 3.4vw, 44px); line-height: 1.06; letter-spacing: -0.03em; }\n.jalex-soa h3 { font-size: clamp(18px, 1.9vw, 22px); line-height: 1.25; letter-spacing: -0.015em; }\n.jalex-soa .it {\n  color: var(--gold); font-family: var(--serif);\n  font-style: italic; font-weight: 500; letter-spacing: -0.02em;\n}\n.jalex-soa p { text-wrap: pretty; }\n\n\/* ============ BUTTONS ============ *\/\n.jalex-soa .btn {\n  display: inline-flex; align-items: center; gap: 12px;\n  font-family: var(--heading); font-size: 14px; font-weight: 700;\n  padding: 16px 24px; border: 1px solid transparent; border-radius: var(--radius);\n  transition: all 200ms ease; line-height: 1; white-space: nowrap;\n  letter-spacing: 0.02em; max-width: 100%;\n}\n.jalex-soa .btn-primary {\n  background: var(--gold); color: #000;\n  box-shadow: 0 8px 24px -8px rgba(243,185,55,0.5);\n}\n.jalex-soa .btn-primary:hover {\n  background: var(--gold-deep); transform: translateY(-2px);\n  box-shadow: 0 12px 32px -8px rgba(243,185,55,0.65);\n}\n.jalex-soa .btn-primary:disabled {\n  background: var(--rule-2); color: var(--muted);\n  box-shadow: none; cursor: not-allowed; transform: none;\n}\n.jalex-soa .btn-line { color: var(--gold); border-color: var(--gold); background: transparent; }\n.jalex-soa .btn-line:hover { background: var(--gold); color: #000; }\n.jalex-soa .btn .arr { transition: transform 200ms ease; }\n.jalex-soa .btn:hover .arr { transform: translateX(3px); }\n\n\/* ============ HEADER ============ *\/\n.jalex-soa .soa-hero {\n  padding: clamp(64px, 8vw, 110px) 0 clamp(40px, 5vw, 64px);\n  border-bottom: 1px solid var(--rule);\n  position: relative;\n}\n.jalex-soa .soa-hero::after {\n  content: \"\"; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;\n  background: linear-gradient(90deg, transparent, var(--gold), transparent);\n}\n.jalex-soa .soa-hero .eyebrow { margin-bottom: 22px; }\n.jalex-soa .soa-hero h1 { max-width: 16ch; }\n.jalex-soa .soa-lede {\n  margin: 26px 0 0; max-width: 620px;\n  font-size: 17px; line-height: 1.68; color: var(--text-2);\n}\n.jalex-soa .soa-lede b { color: var(--text); font-weight: 600; }\n\n\/* ============ PROGRESS ============ *\/\n.jalex-soa .soa-progress {\n  position: relative; height: 2px; background: var(--rule);\n}\n.jalex-soa .soa-progress-fill {\n  position: absolute; left: 0; top: 0; bottom: 0; width: 0%;\n  background: var(--gold); transition: width 420ms cubic-bezier(0.22,1,0.36,1);\n}\n\n\/* ============ TOOL BODY ============ *\/\n.jalex-soa .soa-body { padding: clamp(44px, 6vw, 84px) 0 clamp(64px, 8vw, 110px); }\n\n\/* Consent gate *\/\n.jalex-soa .soa-gate {\n  background: var(--panel); border: 1px solid var(--rule-2);\n  border-radius: var(--radius); padding: clamp(26px, 4vw, 44px);\n  position: relative;\n}\n.jalex-soa .soa-gate::before {\n  content: \"\"; position: absolute; left: 0; top: 0; width: 64px; height: 2px; background: var(--gold);\n}\n.jalex-soa .soa-gate-k {\n  font-family: var(--mono); font-size: 10.5px; font-weight: 600;\n  letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold);\n  margin-bottom: 16px;\n}\n.jalex-soa .soa-gate h2 { margin-bottom: 18px; }\n.jalex-soa .soa-gate-terms { margin: 0 0 24px; padding: 0; list-style: none; }\n.jalex-soa .soa-gate-terms li {\n  padding: 12px 0; border-bottom: 1px solid var(--rule);\n  font-size: 15px; line-height: 1.6; color: var(--text-2);\n  display: flex; gap: 14px;\n}\n.jalex-soa .soa-gate-terms li:last-child { border-bottom: 0; }\n.jalex-soa .soa-gate-terms .t-mark { color: var(--gold); font-family: var(--mono); font-size: 12px; padding-top: 3px; flex-shrink: 0; }\n.jalex-soa .soa-gate-terms b { color: var(--text); font-weight: 600; }\n.jalex-soa .soa-consent {\n  display: flex; align-items: flex-start; gap: 14px;\n  padding: 18px; border: 1px solid var(--rule-2); border-radius: var(--radius);\n  background: var(--bg-2); margin-bottom: 24px; cursor: pointer;\n}\n.jalex-soa .soa-consent input {\n  appearance: none; -webkit-appearance: none;\n  width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px;\n  border: 1px solid var(--rule-2); border-radius: var(--radius);\n  background: var(--bg); cursor: pointer; position: relative;\n  transition: all 180ms ease;\n}\n.jalex-soa .soa-consent input:checked { background: var(--gold); border-color: var(--gold); }\n.jalex-soa .soa-consent input:checked::after {\n  content: \"\"; position: absolute; left: 6px; top: 2px;\n  width: 5px; height: 10px; border: solid #000; border-width: 0 2px 2px 0;\n  transform: rotate(45deg);\n}\n.jalex-soa .soa-consent span { font-size: 14px; line-height: 1.55; color: var(--text-2); }\n\n\/* Steps *\/\n.jalex-soa .soa-step { display: none; }\n.jalex-soa .soa-step.is-active { display: block; animation: jsoa-step-in 360ms ease; }\n@keyframes jsoa-step-in {\n  from { opacity: 0; transform: translateY(10px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n.jalex-soa .soa-step-k {\n  font-family: var(--mono); font-size: 11px; font-weight: 600;\n  letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold);\n  display: flex; align-items: baseline; gap: 12px; margin-bottom: 18px;\n}\n.jalex-soa .soa-step-k .num { color: var(--muted); }\n.jalex-soa .soa-step h2 { margin-bottom: 12px; max-width: 22ch; }\n.jalex-soa .soa-step-sub {\n  margin: 0 0 30px; font-size: 15.5px; line-height: 1.65;\n  color: var(--text-2); max-width: 560px;\n}\n.jalex-soa .soa-step-sub b { color: var(--text); font-weight: 600; }\n\n\/* Currency input *\/\n.jalex-soa .soa-money {\n  display: flex; align-items: center; gap: 0;\n  border: 1px solid var(--rule-2); border-radius: var(--radius);\n  background: var(--bg-2); max-width: 440px;\n  transition: border-color 200ms ease;\n}\n.jalex-soa .soa-money:focus-within { border-color: var(--gold); }\n.jalex-soa .soa-money .sym {\n  font-family: var(--heading); font-size: 26px; font-weight: 700;\n  color: var(--gold); padding: 0 0 0 22px;\n}\n.jalex-soa .soa-money input {\n  flex: 1; min-width: 0; background: transparent; border: 0; outline: none;\n  font-family: var(--heading); font-size: clamp(28px, 4vw, 40px); font-weight: 800;\n  letter-spacing: -0.02em; color: var(--text);\n  padding: 20px 22px 20px 12px; width: 100%;\n}\n.jalex-soa .soa-money input::placeholder { color: var(--rule-2); }\n\n\/* Chips *\/\n.jalex-soa .soa-chips { display: flex; flex-wrap: wrap; gap: 12px; max-width: 720px; }\n.jalex-soa .soa-chip {\n  border: 1px solid var(--rule-2); border-radius: var(--radius);\n  background: var(--bg-2); color: var(--text-2);\n  padding: 16px 20px; font-family: var(--heading); font-weight: 600;\n  font-size: 14.5px; letter-spacing: 0; text-align: left;\n  transition: all 180ms ease; line-height: 1.35;\n}\n.jalex-soa .soa-chip small {\n  display: block; font-family: var(--body); font-weight: 400;\n  font-size: 12.5px; color: var(--muted); margin-top: 4px; letter-spacing: 0;\n}\n.jalex-soa .soa-chip:hover { border-color: var(--gold); color: var(--text); }\n.jalex-soa .soa-chip.is-on {\n  background: var(--gold); border-color: var(--gold); color: #000;\n}\n.jalex-soa .soa-chip.is-on small { color: rgba(0,0,0,0.65); }\n\n\/* Fault slider *\/\n.jalex-soa .soa-fault { margin-top: 26px; max-width: 560px; display: none; }\n.jalex-soa .soa-fault.is-open { display: block; animation: jsoa-step-in 300ms ease; }\n.jalex-soa .soa-fault-read {\n  font-family: var(--heading); font-size: 30px; font-weight: 800;\n  color: var(--gold); margin-bottom: 10px;\n}\n.jalex-soa .soa-fault-read .pct-label {\n  font-family: var(--mono); font-size: 11px; font-weight: 500; color: var(--muted);\n  letter-spacing: 0.16em; text-transform: uppercase; margin-left: 12px;\n}\n.jalex-soa input[type=\"range\"].soa-range {\n  -webkit-appearance: none; appearance: none;\n  width: 100%; height: 3px; border-radius: 2px; outline: none;\n  background: linear-gradient(90deg, var(--gold) 0%, var(--gold) var(--fill, 20%), var(--rule-2) var(--fill, 20%));\n}\n.jalex-soa input[type=\"range\"].soa-range::-webkit-slider-thumb {\n  -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%;\n  background: var(--gold); border: 3px solid #000; box-shadow: 0 0 0 1px var(--gold);\n  cursor: pointer;\n}\n.jalex-soa input[type=\"range\"].soa-range::-moz-range-thumb {\n  width: 16px; height: 16px; border-radius: 50%;\n  background: var(--gold); border: 3px solid #000; box-shadow: 0 0 0 1px var(--gold);\n  cursor: pointer;\n}\n\n\/* Step nav *\/\n.jalex-soa .soa-nav {\n  margin-top: 36px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap;\n}\n.jalex-soa .soa-back {\n  font-family: var(--mono); font-size: 11px; font-weight: 600;\n  letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted);\n  transition: color 180ms ease;\n}\n.jalex-soa .soa-back:hover { color: var(--gold); }\n\n\/* ============ SCENARIO PANEL (live sliders) ============ *\/\n.jalex-soa .soa-scenario {\n  background: var(--panel); border: 1px solid var(--rule-2);\n  border-radius: var(--radius); padding: 24px 28px 20px; margin-bottom: 18px;\n}\n.jalex-soa .soa-scenario-head {\n  display: flex; justify-content: space-between; align-items: baseline;\n  gap: 16px; margin-bottom: 22px; flex-wrap: wrap;\n}\n.jalex-soa .soa-scenario-k {\n  font-family: var(--mono); font-size: 11px; font-weight: 600;\n  letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold);\n}\n.jalex-soa .soa-scenario-hint {\n  font-family: var(--mono); font-size: 10px; font-weight: 500;\n  letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted);\n}\n.jalex-soa .soa-scenario-grid {\n  display: grid; grid-template-columns: 1fr 1fr; gap: 20px 40px;\n}\n.jalex-soa .soa-scn-top {\n  display: flex; justify-content: space-between; align-items: baseline;\n  gap: 16px; margin-bottom: 12px;\n}\n.jalex-soa .soa-scn-label {\n  font-family: var(--mono); font-size: 10.5px; font-weight: 600;\n  letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-2);\n}\n.jalex-soa .soa-scn-val {\n  font-family: var(--heading); font-weight: 800; font-size: 22px;\n  letter-spacing: -0.02em; color: var(--gold); font-variant-numeric: tabular-nums;\n}\n.jalex-soa .soa-scn-val em {\n  font-style: normal; font-family: var(--mono); font-weight: 500;\n  font-size: 12px; color: var(--muted); margin-left: 2px;\n}\n.jalex-soa .soa-scn-minmax {\n  display: flex; justify-content: space-between; margin-top: 8px;\n  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em;\n  text-transform: uppercase; color: var(--muted);\n}\n.jalex-soa .soa-scn-bar51 { color: var(--gold); }\n\n\/* ============ HERO RESULT CARD ============ *\/\n.jalex-soa .soa-hero-card {\n  position: relative; text-align: center;\n  border: 1px solid var(--gold); border-radius: var(--radius);\n  padding: clamp(34px, 5vw, 56px) 24px;\n  margin-bottom: 18px;\n  background:\n    radial-gradient(80% 120% at 50% 0%, rgba(243,185,55,0.10), transparent 60%),\n    var(--bg-2);\n  box-shadow:\n    0 0 0 1px rgba(243,185,55,0.15),\n    0 30px 80px -30px rgba(243,185,55,0.28),\n    inset 0 0 60px -30px rgba(243,185,55,0.18);\n}\n.jalex-soa .soa-hero-k {\n  font-family: var(--mono); font-size: 10.5px; font-weight: 600;\n  letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold);\n  margin-bottom: 14px;\n}\n.jalex-soa .soa-hero-n {\n  font-family: var(--heading); font-weight: 800;\n  font-size: clamp(58px, 11vw, 128px); line-height: 0.95;\n  letter-spacing: -0.045em; color: var(--gold);\n  font-variant-numeric: tabular-nums;\n  text-shadow: 0 0 60px rgba(243,185,55,0.25);\n  transition: color 200ms ease;\n}\n.jalex-soa .soa-hero-n .soa-hero-sign {\n  font-size: 0.55em; vertical-align: 0.28em; margin-right: 0.08em; color: var(--text-2);\n}\n.jalex-soa .soa-hero-card.is-neg .soa-hero-n { color: #fff; text-shadow: none; }\n.jalex-soa .soa-hero-card.is-neg { border-color: var(--rule-2); box-shadow: none; }\n.jalex-soa .soa-hero-sub {\n  margin: 16px auto 0; max-width: 560px;\n  font-size: 14px; line-height: 1.6; color: var(--text-2);\n}\n.jalex-soa .soa-hero-sub b { color: var(--text); font-weight: 600; }\n@keyframes jsoa-hero-pop {\n  0% { transform: scale(0.96); opacity: 0; }\n  100% { transform: scale(1); opacity: 1; }\n}\n.jalex-soa .soa-hero-card.is-pop { animation: jsoa-hero-pop 420ms cubic-bezier(0.22,1,0.36,1); }\n\n\/* ============ STAT STRIP ============ *\/\n.jalex-soa .soa-stats-grid {\n  display: grid; grid-template-columns: repeat(5, 1fr);\n  gap: 12px; margin-bottom: clamp(36px, 5vw, 56px);\n}\n.jalex-soa .soa-mstat {\n  border: 1px solid var(--rule-2); border-radius: var(--radius);\n  background: var(--bg-2); padding: 18px 20px 16px;\n  display: flex; flex-direction: column; gap: 8px;\n  transition: border-color 200ms ease;\n}\n.jalex-soa .soa-mstat:hover { border-color: rgba(243,185,55,0.5); }\n.jalex-soa .soa-mstat-n {\n  font-family: var(--heading); font-weight: 800;\n  font-size: clamp(20px, 2.4vw, 28px); line-height: 1;\n  letter-spacing: -0.02em; color: var(--gold);\n  font-variant-numeric: tabular-nums;\n}\n.jalex-soa .soa-mstat-k {\n  font-family: var(--mono); font-size: 9.5px; font-weight: 500;\n  letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); line-height: 1.5;\n}\n@media (max-width: 900px) {\n  .jalex-soa .soa-scenario-grid { grid-template-columns: 1fr; }\n  .jalex-soa .soa-stats-grid { grid-template-columns: repeat(3, 1fr); }\n}\n@media (max-width: 420px) {\n  .jalex-soa .soa-stats-grid { grid-template-columns: 1fr; }\n}\n\n\/* ============ FINDINGS (the ledger) ============ *\/\n.jalex-soa .soa-findings { display: none; }\n.jalex-soa .soa-findings.is-active { display: block; }\n.jalex-soa .soa-findings-head { margin-bottom: 34px; }\n.jalex-soa .soa-findings-head .eyebrow { margin-bottom: 16px; }\n.jalex-soa .soa-ledger { border-top: 1px solid var(--rule); }\n.jalex-soa .soa-row {\n  border-bottom: 1px solid var(--rule);\n  padding: 26px 0;\n  display: grid; grid-template-columns: 150px 1fr;\n  gap: 8px 32px; align-items: start;\n  opacity: 0; transform: translateY(8px);\n  transition: opacity 420ms ease, transform 420ms ease;\n}\n.jalex-soa .soa-row.is-in { opacity: 1; transform: translateY(0); }\n.jalex-soa .soa-row-status {\n  font-family: var(--mono); font-size: 11px; font-weight: 600;\n  letter-spacing: 0.18em; text-transform: uppercase;\n  display: inline-flex; align-items: center; justify-content: center;\n  padding: 8px 0; border-radius: var(--radius); text-align: center;\n  border: 1px solid var(--rule-2); color: var(--muted);\n  align-self: start;\n}\n.jalex-soa .soa-row-status.st-flag { border-color: var(--gold); color: var(--gold); }\n.jalex-soa .soa-row-status.st-stop { background: var(--gold); border-color: var(--gold); color: #000; font-weight: 700; }\n.jalex-soa .soa-row h3 { margin-bottom: 8px; }\n.jalex-soa .soa-row-body { font-size: 15px; line-height: 1.68; color: var(--text-2); max-width: 760px; }\n.jalex-soa .soa-row-body b, .jalex-soa .soa-row-body strong { color: var(--text); font-weight: 600; }\n.jalex-soa .soa-row-body .money { font-family: var(--heading); font-weight: 800; color: var(--gold); letter-spacing: -0.01em; }\n.jalex-soa .soa-row-note {\n  margin-top: 12px; font-size: 12.5px; line-height: 1.55; color: var(--muted); font-style: italic;\n}\n\n\/* The lowball bar *\/\n.jalex-soa .soa-bar-wrap { margin: 18px 0 6px; max-width: 640px; }\n.jalex-soa .soa-bar {\n  display: flex; height: 44px; border-radius: var(--radius);\n  overflow: hidden; border: 1px solid var(--rule-2); background: var(--bg-2);\n}\n.jalex-soa .soa-bar-bills {\n  background: repeating-linear-gradient(-45deg, var(--gold), var(--gold) 6px, var(--gold-deep) 6px, var(--gold-deep) 12px);\n  width: 0%; transition: width 900ms cubic-bezier(0.22,1,0.36,1) 200ms;\n}\n.jalex-soa .soa-bar-pain {\n  background: #ffffff; width: 0%;\n  transition: width 900ms cubic-bezier(0.22,1,0.36,1) 200ms;\n}\n.jalex-soa .soa-bar-legend {\n  display: flex; flex-wrap: wrap; gap: 8px 26px; margin-top: 12px;\n  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.14em;\n  text-transform: uppercase; color: var(--muted);\n}\n.jalex-soa .soa-bar-legend .sw {\n  display: inline-block; width: 12px; height: 12px; border-radius: 2px;\n  margin-right: 8px; vertical-align: -1px;\n}\n.jalex-soa .soa-bar-legend .sw-bills { background: var(--gold); }\n.jalex-soa .soa-bar-legend .sw-pain { background: #fff; }\n\n\/* ============ VERDICT ============ *\/\n.jalex-soa .soa-verdict {\n  margin-top: clamp(44px, 6vw, 72px);\n  background: var(--panel); border: 1px solid var(--rule-2);\n  border-radius: var(--radius);\n  padding: clamp(32px, 5vw, 60px);\n  position: relative; overflow: hidden;\n  opacity: 0; transform: translateY(10px);\n  transition: opacity 500ms ease, transform 500ms ease;\n}\n.jalex-soa .soa-verdict.is-in { opacity: 1; transform: translateY(0); }\n.jalex-soa .soa-verdict::before {\n  content: \"\"; position: absolute; left: 0; top: 0; width: 64px; height: 2px; background: var(--gold);\n}\n.jalex-soa .soa-emblem {\n  position: absolute; right: -40px; bottom: -60px; width: 320px; opacity: 0.05;\n  pointer-events: none; filter: grayscale(1) brightness(2);\n}\n.jalex-soa .soa-verdict-k {\n  font-family: var(--mono); font-size: 10.5px; font-weight: 600;\n  letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted);\n  margin-bottom: 26px;\n}\n.jalex-soa .soa-stamp {\n  display: inline-block;\n  font-family: var(--heading); font-weight: 800;\n  font-size: clamp(22px, 3.4vw, 38px); line-height: 1.1;\n  letter-spacing: 0.06em; text-transform: uppercase;\n  color: var(--gold);\n  border: 3px solid var(--gold); border-radius: var(--radius);\n  padding: 18px 30px; position: relative;\n  transform: rotate(-2deg);\n  box-shadow: inset 0 0 0 2px var(--bg), inset 0 0 0 3px var(--gold);\n}\n.jalex-soa .soa-stamp.is-stamped { animation: jsoa-stamp 520ms cubic-bezier(0.22,1,0.36,1); }\n@keyframes jsoa-stamp {\n  0% { opacity: 0; transform: rotate(-2deg) scale(1.6); }\n  62% { opacity: 1; transform: rotate(-2deg) scale(0.95); }\n  100% { opacity: 1; transform: rotate(-2deg) scale(1); }\n}\n.jalex-soa .soa-verdict-why {\n  margin: 30px 0 0; font-size: 16px; line-height: 1.7; color: var(--text-2); max-width: 720px;\n  position: relative; z-index: 1;\n}\n.jalex-soa .soa-verdict-why b { color: var(--text); font-weight: 600; }\n.jalex-soa .soa-next { margin-top: 34px; position: relative; z-index: 1; }\n.jalex-soa .soa-next-k {\n  font-family: var(--mono); font-size: 10.5px; font-weight: 600;\n  letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold);\n  margin-bottom: 14px;\n}\n.jalex-soa .soa-next ol { margin: 0; padding: 0; list-style: none; counter-reset: soa; max-width: 720px; }\n.jalex-soa .soa-next li {\n  counter-increment: soa; position: relative;\n  padding: 13px 0 13px 44px; border-bottom: 1px solid var(--rule);\n  font-size: 14.5px; line-height: 1.6; color: var(--text-2);\n}\n.jalex-soa .soa-next li:last-child { border-bottom: 0; }\n.jalex-soa .soa-next li::before {\n  content: \"0\" counter(soa);\n  position: absolute; left: 0; top: 14px;\n  font-family: var(--mono); font-size: 11px; font-weight: 600;\n  letter-spacing: 0.12em; color: var(--gold);\n}\n.jalex-soa .soa-next b { color: var(--text); font-weight: 600; }\n.jalex-soa .soa-restart {\n  margin-top: 28px; display: inline-flex;\n  font-family: var(--mono); font-size: 11px; font-weight: 600;\n  letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted);\n}\n.jalex-soa .soa-restart:hover { color: var(--gold); }\n\n\/* ============ NET REALITY ============ *\/\n.jalex-soa .soa-net { margin-top: 34px; position: relative; z-index: 1; max-width: 720px; }\n.jalex-soa .soa-net-row {\n  display: flex; justify-content: space-between; align-items: baseline; gap: 20px;\n  padding: 12px 0; border-bottom: 1px solid var(--rule);\n  font-size: 14.5px; line-height: 1.5; color: var(--text-2);\n}\n.jalex-soa .soa-net-row span:last-child {\n  font-family: var(--mono); font-size: 12.5px; letter-spacing: 0.02em;\n  color: var(--text); text-align: right; white-space: nowrap;\n}\n.jalex-soa .soa-net-row .money { color: var(--gold); font-family: var(--heading); font-weight: 800; font-size: 16px; }\n.jalex-soa .soa-net-row.is-em span { color: var(--gold); }\n.jalex-soa .soa-net-row.is-em span:last-child { white-space: normal; font-size: 11px; max-width: 300px; }\n.jalex-soa .soa-net-note { margin: 14px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--muted); font-style: italic; }\n\n\/* ============ FIRM RESULTS CONTEXT ============ *\/\n.jalex-soa .soa-results { border-top: 1px solid var(--rule); padding: clamp(56px, 7vw, 96px) 0; background: var(--bg-2); }\n.jalex-soa .soa-results .eyebrow { margin-bottom: 18px; }\n.jalex-soa .soa-results h2 { margin-bottom: 18px; }\n.jalex-soa .soa-results-lede { margin: 0 0 34px; font-size: 16px; line-height: 1.7; color: var(--text-2); max-width: 640px; }\n.jalex-soa .soa-range-stats { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 30px; }\n.jalex-soa .soa-stat {\n  flex: 1; min-width: 160px; background: var(--panel); border: 1px solid var(--rule-2);\n  border-radius: var(--radius); padding: 20px 22px; display: flex; flex-direction: column; gap: 6px;\n}\n.jalex-soa .soa-stat-n { font-family: var(--heading); font-weight: 800; font-size: clamp(26px, 3vw, 34px); color: var(--gold); letter-spacing: -0.02em; line-height: 1; }\n.jalex-soa .soa-stat-k { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }\n.jalex-soa .soa-ranges { border-top: 1px solid var(--rule); margin-bottom: 20px; }\n.jalex-soa .soa-range-row {\n  display: flex; justify-content: space-between; align-items: baseline; gap: 20px;\n  padding: 18px 0; border-bottom: 1px solid var(--rule);\n}\n.jalex-soa .soa-range-k { font-family: var(--heading); font-weight: 600; font-size: 15px; color: var(--text); }\n.jalex-soa .soa-range-v { font-family: var(--heading); font-weight: 800; font-size: clamp(16px, 2vw, 20px); color: var(--gold); letter-spacing: -0.01em; text-align: right; }\n.jalex-soa .soa-range-v em { display: block; font-family: var(--mono); font-style: normal; font-weight: 500; font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-top: 4px; }\n.jalex-soa .soa-results-disc { margin: 0 0 26px; font-family: var(--mono); font-size: 10.5px; line-height: 1.7; letter-spacing: 0.03em; color: var(--muted); max-width: 760px; }\n@media (max-width: 560px) {\n  .jalex-soa .soa-range-row { flex-direction: column; gap: 6px; }\n  .jalex-soa .soa-range-v { text-align: left; }\n  .jalex-soa .soa-net-row span:last-child { white-space: normal; }\n}\n\n\/* ============ FAQ (matches homepage grammar) ============ *\/\n.jalex-soa .soa-faq { border-top: 1px solid var(--rule); padding: clamp(56px, 7vw, 96px) 0; }\n.jalex-soa .soa-faq .eyebrow { margin-bottom: 18px; }\n.jalex-soa .soa-faq h2 { margin-bottom: 34px; }\n.jalex-soa .faq-item { border-bottom: 1px solid var(--rule); padding: 24px 0; }\n.jalex-soa .faq-item:first-of-type { border-top: 1px solid var(--rule); }\n.jalex-soa .faq-item summary {\n  list-style: none; cursor: pointer;\n  display: flex; align-items: center; gap: 24px; justify-content: space-between;\n}\n.jalex-soa .faq-item summary::-webkit-details-marker { display: none; }\n.jalex-soa .faq-item summary h3 { flex: 1; font-weight: 600; transition: color 200ms ease; }\n.jalex-soa .faq-item summary:hover h3, .jalex-soa .faq-item[open] summary h3 { color: var(--gold); }\n.jalex-soa .faq-item .plus {\n  width: 34px; height: 34px; border: 1px solid var(--rule-2); border-radius: 50%;\n  display: grid; place-items: center; flex-shrink: 0; position: relative;\n  transition: all 220ms ease;\n}\n.jalex-soa .faq-item .plus::before, .jalex-soa .faq-item .plus::after {\n  content: \"\"; position: absolute; background: var(--text); transition: transform 220ms ease, background 220ms ease;\n}\n.jalex-soa .faq-item .plus::before { width: 13px; height: 1.5px; }\n.jalex-soa .faq-item .plus::after { width: 1.5px; height: 13px; }\n.jalex-soa .faq-item[open] .plus { background: var(--gold); border-color: var(--gold); }\n.jalex-soa .faq-item[open] .plus::before, .jalex-soa .faq-item[open] .plus::after { background: #000; }\n.jalex-soa .faq-item[open] .plus::after { transform: scaleY(0); }\n.jalex-soa .faq-item .answer {\n  margin-top: 16px; padding-right: 58px;\n  font-size: 15.5px; color: var(--text-2); line-height: 1.7; max-width: 800px;\n}\n\n\/* ============ LOCKED CTA ============ *\/\n.jalex-soa .soa-cta {\n  border-top: 1px solid var(--rule);\n  padding: clamp(64px, 9vw, 120px) 0;\n  background: radial-gradient(ellipse at 25% 20%, rgba(243,185,55,0.12), transparent 55%), var(--bg-2);\n}\n.jalex-soa .soa-cta-grid {\n  display: grid; grid-template-columns: 1.2fr 1fr;\n  gap: clamp(32px, 5vw, 72px); align-items: center;\n}\n.jalex-soa .soa-cta .sub {\n  margin-top: 24px; font-size: 16.5px; line-height: 1.65; color: var(--text-2); max-width: 500px;\n}\n.jalex-soa .ctabox {\n  background: var(--bg); border: 1px solid var(--rule-2); border-radius: var(--radius); padding: 36px;\n}\n.jalex-soa .ctabox .label {\n  font-family: var(--mono); font-size: 11px; letter-spacing: 0.2em;\n  text-transform: uppercase; color: var(--muted);\n}\n.jalex-soa .ctabox .phone-big {\n  font-family: var(--heading); font-size: clamp(32px, 4vw, 46px);\n  margin-top: 10px; letter-spacing: -0.02em; line-height: 1;\n  color: var(--text); font-weight: 800; display: block;\n}\n.jalex-soa .ctabox .phone-big:hover { color: var(--gold); }\n.jalex-soa .ctabox .avail {\n  margin-top: 12px; font-size: 12.5px; color: var(--text-2);\n  display: flex; align-items: center; gap: 8px;\n  font-family: var(--mono); letter-spacing: 0.1em; text-transform: uppercase;\n}\n.jalex-soa .blink {\n  width: 6px; height: 6px; border-radius: 50%; background: var(--gold);\n  display: inline-block; animation: jsoa-blink 2s infinite;\n}\n@keyframes jsoa-blink {\n  0%, 100% { box-shadow: 0 0 0 0 rgba(243,185,55,0.55); }\n  50% { box-shadow: 0 0 0 6px rgba(243,185,55,0); }\n}\n.jalex-soa .ctabox hr { border: 0; border-top: 1px solid var(--rule); margin: 26px 0; }\n.jalex-soa .ctabox .formbtn {\n  width: 100%; background: var(--gold); color: #000;\n  padding: 18px 22px; font-weight: 700; font-size: 15px;\n  font-family: var(--heading); letter-spacing: 0.02em; border-radius: var(--radius);\n  display: flex; align-items: center; justify-content: space-between;\n  transition: background 200ms ease;\n}\n.jalex-soa .ctabox .formbtn:hover { background: var(--gold-deep); }\n.jalex-soa .ctabox .reassure { margin-top: 16px; font-size: 12.5px; color: var(--muted); line-height: 1.55; }\n\n\/* ============ FINE PRINT ============ *\/\n.jalex-soa .soa-fine {\n  border-top: 1px solid var(--rule);\n  padding: 34px 0 46px;\n}\n.jalex-soa .soa-fine p {\n  margin: 0 0 10px; font-family: var(--mono);\n  font-size: 10.5px; line-height: 1.7; letter-spacing: 0.03em; color: var(--muted);\n  max-width: 900px;\n}\n.jalex-soa .soa-fine .rule-stamp { color: var(--gold); }\n\n\/* ============ COMPACT \/ NO-SCROLL LAYOUT ============\n   --soa-top clears Blocksy's transparent\/sticky header (it overlays the\n   first ~96px of content). If your page template uses a NON-transparent\n   header, set --soa-top: 0px. --soa-offset sizes the viewport stage. *\/\n.jalex-soa { --soa-top: 96px; --soa-bar: 92px; --soa-offset: calc(150px + var(--soa-top)); }\n@media (max-width: 640px) { .jalex-soa { --soa-top: 72px; --soa-bar: 78px; --soa-offset: calc(140px + var(--soa-top)); } }\n\n\/* Topbar : one compressed row *\/\n.jalex-soa .soa-topbar { padding: calc(18px + var(--soa-top)) 0 18px; min-height: 0; }\n.jalex-soa .soa-topbar-in {\n  display: flex; justify-content: space-between; align-items: flex-end;\n  gap: 24px; flex-wrap: wrap;\n}\n.jalex-soa .soa-topbar .eyebrow { margin-bottom: 8px; font-size: 9.5px; }\n.jalex-soa .soa-topbar h1 { font-size: clamp(24px, 3.4vw, 40px); max-width: none; }\n.jalex-soa .soa-topbar .soa-lede { margin: 0; max-width: 380px; font-size: 12.5px; line-height: 1.5; }\n@media (max-width: 760px) { .jalex-soa .soa-topbar .soa-lede { display: none; } }\n\n\/* Stage : the tool fills the remaining viewport, content centered *\/\n.jalex-soa .soa-body {\n  padding: 0;\n  min-height: calc(100svh - var(--soa-offset));\n  display: flex; align-items: center;\n}\n\/* --soa-bar clears the site's fixed bottom call bar so no button can sit under it *\/\n.jalex-soa .soa-body > .wrap-narrow { width: 100%; max-width: 1100px; padding-top: 22px; padding-bottom: calc(22px + var(--soa-bar)); }\n.jalex-soa .soa-nav { position: relative; z-index: 3; }\n\n\/* Compact steps *\/\n.jalex-soa .soa-step h2 { font-size: clamp(22px, 3vw, 34px); margin-bottom: 8px; }\n.jalex-soa .soa-step-k { margin-bottom: 10px; }\n.jalex-soa .soa-step-sub { margin-bottom: 18px; font-size: 14px; }\n.jalex-soa .soa-step-sub[style] { margin-top: 20px !important; }\n.jalex-soa .soa-chips { gap: 8px; }\n.jalex-soa .soa-chip { padding: 11px 14px; font-size: 13.5px; }\n.jalex-soa .soa-chip small { font-size: 11px; margin-top: 2px; }\n.jalex-soa .soa-money input { font-size: clamp(24px, 3.4vw, 32px); padding: 14px 18px 14px 10px; }\n.jalex-soa .soa-money .sym { font-size: 20px; padding-left: 16px; }\n.jalex-soa .soa-nav { margin-top: 22px; }\n.jalex-soa .btn { padding: 13px 20px; font-size: 13px; }\n\n\/* Compact consent gate *\/\n.jalex-soa .soa-gate { padding: 22px 24px; }\n.jalex-soa .soa-gate h2 { font-size: clamp(20px, 2.6vw, 30px); margin-bottom: 12px; }\n.jalex-soa .soa-gate-terms li { padding: 8px 0; font-size: 13px; line-height: 1.5; }\n.jalex-soa .soa-consent { padding: 12px 14px; margin-bottom: 16px; }\n.jalex-soa .soa-consent span { font-size: 12.5px; }\n@media (min-width: 761px) {\n  .jalex-soa .soa-gate-terms { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }\n  .jalex-soa .soa-gate-terms li:nth-last-child(-n+2) { border-bottom: 0; }\n}\n@media (max-width: 560px) { .jalex-soa .soa-chips { flex-direction: row; } .jalex-soa .soa-chip { width: calc(50% - 4px); } }\n\n\/* Results dashboard : rows, no vertical scroll *\/\n.jalex-soa .soa-scenario { padding: 14px 18px 12px; margin-bottom: 10px; }\n.jalex-soa .soa-scenario-head { margin-bottom: 12px; }\n.jalex-soa .soa-scenario-grid { gap: 10px 28px; }\n.jalex-soa .soa-scn-top { margin-bottom: 8px; }\n.jalex-soa .soa-scn-val { font-size: 17px; }\n@media (max-width: 900px) { .jalex-soa .soa-scenario-grid { grid-template-columns: 1fr 1fr; } }\n\n.jalex-soa .soa-res-main {\n  display: grid; grid-template-columns: 1.35fr 1fr;\n  gap: 10px; margin-bottom: 10px; align-items: stretch;\n}\n.jalex-soa .soa-hero-card { padding: 18px 18px 16px; margin-bottom: 0; display: flex; flex-direction: column; justify-content: center; }\n.jalex-soa .soa-hero-k { margin-bottom: 8px; font-size: 9.5px; }\n.jalex-soa .soa-hero-n { font-size: clamp(38px, 6.4vw, 72px); }\n.jalex-soa .soa-hero-sub { margin-top: 8px; font-size: 12px; max-width: 480px; }\n.jalex-soa .soa-verdict {\n  margin-top: 0; padding: 18px 20px;\n  display: flex; flex-direction: column; justify-content: center; gap: 12px;\n}\n.jalex-soa .soa-verdict-k { margin-bottom: 0; font-size: 9.5px; }\n.jalex-soa .soa-stamp { font-size: clamp(15px, 1.8vw, 22px); padding: 10px 16px; align-self: flex-start; }\n.jalex-soa .soa-verdict-cta { align-self: flex-start; padding: 11px 16px; font-size: 12px; position: relative; z-index: 1; }\n.jalex-soa .soa-emblem { width: 200px; right: -30px; bottom: -40px; }\n\n.jalex-soa .soa-stats-grid { gap: 8px; margin-bottom: 10px; }\n.jalex-soa .soa-mstat { padding: 12px 14px 10px; gap: 5px; }\n.jalex-soa .soa-mstat-n { font-size: clamp(17px, 2vw, 22px); }\n.jalex-soa .soa-mstat-k { font-size: 8.5px; }\n\n\/* Findings rail : horizontal scroll-snap cards *\/\n.jalex-soa .soa-rail-head {\n  display: flex; justify-content: space-between; align-items: center;\n  gap: 16px; margin-bottom: 8px;\n}\n.jalex-soa .soa-rail-nav { display: flex; align-items: center; gap: 10px; }\n.jalex-soa .soa-rail-count {\n  font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em;\n  color: var(--muted); font-variant-numeric: tabular-nums;\n}\n.jalex-soa .soa-rail-count #railAt { color: var(--gold); }\n.jalex-soa .soa-rail-btn {\n  width: 30px; height: 30px; border: 1px solid var(--rule-2); border-radius: var(--radius);\n  color: var(--text-2); display: grid; place-items: center; font-size: 13px;\n  transition: all 180ms ease;\n}\n.jalex-soa .soa-rail-btn:hover { border-color: var(--gold); color: var(--gold); }\n.jalex-soa .soa-ledger {\n  border-top: 0;\n  display: flex; gap: 10px;\n  overflow-x: auto; overflow-y: hidden;\n  scroll-snap-type: x mandatory;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n  margin-bottom: 12px;\n  mask-image: linear-gradient(90deg, #000 92%, transparent);\n  -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent);\n}\n.jalex-soa .soa-ledger::-webkit-scrollbar { display: none; }\n.jalex-soa .soa-row {\n  border: 1px solid var(--rule-2); border-bottom: 1px solid var(--rule-2);\n  border-radius: var(--radius); background: var(--bg-2);\n  flex: 0 0 min(420px, 86%);\n  scroll-snap-align: start;\n  padding: 16px 18px;\n  display: flex; flex-direction: column; gap: 10px;\n  grid-template-columns: none;\n}\n.jalex-soa .soa-row-status { align-self: flex-start; padding: 5px 12px; font-size: 9.5px; }\n.jalex-soa .soa-row h3 { font-size: 14.5px; margin-bottom: 4px; }\n.jalex-soa .soa-row-body { font-size: 12.5px; line-height: 1.55; }\n.jalex-soa .soa-row-note { font-size: 11px; margin-top: 8px; }\n.jalex-soa .soa-bar-wrap { margin: 10px 0 2px; }\n.jalex-soa .soa-bar { height: 26px; }\n.jalex-soa .soa-bar-legend { font-size: 9px; margin-top: 8px; gap: 6px 16px; }\n\n\/* Fold toggles : depth without height *\/\n.jalex-soa .soa-res-foot { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; }\n.jalex-soa .soa-fold {\n  border: 1px solid var(--rule-2); border-radius: var(--radius); background: var(--bg-2);\n  padding: 0; flex: 1 1 auto; min-width: 200px;\n}\n.jalex-soa .soa-fold summary {\n  list-style: none; cursor: pointer; padding: 11px 16px;\n  font-family: var(--mono); font-size: 10px; font-weight: 600;\n  letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-2);\n  display: flex; justify-content: space-between; gap: 12px;\n  transition: color 180ms ease;\n}\n.jalex-soa .soa-fold summary::-webkit-details-marker { display: none; }\n.jalex-soa .soa-fold summary::after { content: \"+\"; color: var(--gold); }\n.jalex-soa .soa-fold[open] summary::after { content: \"\\2212\"; }\n.jalex-soa .soa-fold summary:hover, .jalex-soa .soa-fold[open] summary { color: var(--gold); }\n.jalex-soa .soa-fold > *:not(summary) { padding: 0 16px 14px; }\n.jalex-soa .soa-fold .soa-verdict-why { margin: 0; font-size: 13px; }\n.jalex-soa .soa-next-ol { margin: 0; padding: 0 16px 14px; list-style: none; counter-reset: soa; }\n.jalex-soa .soa-next-ol li {\n  counter-increment: soa; position: relative;\n  padding: 9px 0 9px 38px; border-bottom: 1px solid var(--rule);\n  font-size: 12.5px; line-height: 1.55; color: var(--text-2);\n}\n.jalex-soa .soa-next-ol li:last-child { border-bottom: 0; }\n.jalex-soa .soa-next-ol li::before {\n  content: \"0\" counter(soa); position: absolute; left: 0; top: 10px;\n  font-family: var(--mono); font-size: 10px; font-weight: 600;\n  letter-spacing: 0.12em; color: var(--gold);\n}\n.jalex-soa .soa-next-ol b { color: var(--text); }\n.jalex-soa .soa-net-row { padding: 8px 0; font-size: 12.5px; }\n.jalex-soa .soa-restart { margin-top: 0; align-self: center; padding: 11px 16px; }\n\n\/* Results on mobile : single column, hero first, rail swipes *\/\n@media (max-width: 760px) {\n  .jalex-soa .soa-res-main { grid-template-columns: 1fr; }\n  .jalex-soa .soa-verdict { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 10px; }\n  .jalex-soa .soa-verdict-k { width: 100%; }\n  .jalex-soa .soa-stats-grid { display: flex; overflow-x: auto; scrollbar-width: none; }\n  .jalex-soa .soa-stats-grid::-webkit-scrollbar { display: none; }\n  .jalex-soa .soa-mstat { flex: 0 0 42%; }\n  .jalex-soa .soa-hero-n { font-size: clamp(40px, 13vw, 56px); }\n}\n\n\/* ============ NEON ACCENTS + LIFT (subtle gold-glow layer) ============ *\/\n\/* Lift system : cards rise and catch light *\/\n.jalex-soa .soa-mstat,\n.jalex-soa .soa-row,\n.jalex-soa .soa-fold,\n.jalex-soa .soa-stat,\n.jalex-soa .soa-chip {\n  transition: transform 220ms cubic-bezier(0.22,1,0.36,1),\n              border-color 220ms ease,\n              box-shadow 220ms ease,\n              background 220ms ease;\n  will-change: transform;\n}\n.jalex-soa .soa-mstat:hover,\n.jalex-soa .soa-stat:hover {\n  transform: translateY(-3px);\n  border-color: rgba(243,185,55,0.55);\n  box-shadow: 0 14px 30px -14px rgba(0,0,0,0.8), 0 6px 24px -10px rgba(243,185,55,0.35);\n}\n.jalex-soa .soa-row:hover {\n  transform: translateY(-3px);\n  border-color: rgba(243,185,55,0.45);\n  box-shadow: 0 16px 34px -16px rgba(0,0,0,0.85), 0 8px 28px -12px rgba(243,185,55,0.28);\n}\n.jalex-soa .soa-fold:hover {\n  transform: translateY(-2px);\n  border-color: rgba(243,185,55,0.4);\n  box-shadow: 0 10px 24px -12px rgba(0,0,0,0.8), 0 4px 18px -8px rgba(243,185,55,0.22);\n}\n.jalex-soa .soa-chip:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 10px 22px -12px rgba(0,0,0,0.8), 0 4px 16px -8px rgba(243,185,55,0.25);\n}\n.jalex-soa .soa-chip.is-on {\n  box-shadow: 0 6px 22px -8px rgba(243,185,55,0.55), inset 0 1px 0 rgba(255,255,255,0.25);\n}\n.jalex-soa .soa-hero-card,\n.jalex-soa .soa-verdict {\n  transition: box-shadow 300ms ease, border-color 300ms ease;\n}\n.jalex-soa .soa-hero-card:hover:not(.is-neg) {\n  box-shadow:\n    0 0 0 1px rgba(243,185,55,0.28),\n    0 34px 90px -30px rgba(243,185,55,0.4),\n    inset 0 0 70px -28px rgba(243,185,55,0.26);\n}\n.jalex-soa .soa-verdict:hover { border-color: rgba(243,185,55,0.35); }\n\n\/* Neon hairlines : gradient rules where structure lives *\/\n.jalex-soa .soa-scenario { position: relative; }\n.jalex-soa .soa-scenario::before {\n  content: \"\"; position: absolute; left: 18px; right: 18px; top: 0; height: 1px;\n  background: linear-gradient(90deg, transparent, rgba(243,185,55,0.7), transparent);\n  filter: drop-shadow(0 0 4px rgba(243,185,55,0.5));\n}\n.jalex-soa .soa-verdict::before { filter: drop-shadow(0 0 6px rgba(243,185,55,0.6)); }\n.jalex-soa .soa-gate::before { filter: drop-shadow(0 0 6px rgba(243,185,55,0.6)); }\n.jalex-soa .soa-rail-head { position: relative; padding-top: 10px; }\n.jalex-soa .soa-rail-head::before {\n  content: \"\"; position: absolute; left: 0; top: 0; width: 100%; height: 1px;\n  background: linear-gradient(90deg, rgba(243,185,55,0.55), rgba(243,185,55,0.06) 60%, transparent);\n}\n\n\/* Progress bar : charged *\/\n.jalex-soa .soa-progress-fill {\n  box-shadow: 0 0 10px rgba(243,185,55,0.75), 0 0 26px rgba(243,185,55,0.35);\n}\n\n\/* Sliders : glowing thumbs and hot track *\/\n.jalex-soa input[type=\"range\"].soa-range::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px var(--gold), 0 0 10px rgba(243,185,55,0.7), 0 0 22px rgba(243,185,55,0.3);\n  transition: box-shadow 180ms ease, transform 180ms ease;\n}\n.jalex-soa input[type=\"range\"].soa-range::-webkit-slider-thumb:hover,\n.jalex-soa input[type=\"range\"].soa-range:active::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px var(--gold), 0 0 14px rgba(243,185,55,0.9), 0 0 34px rgba(243,185,55,0.45);\n  transform: scale(1.12);\n}\n.jalex-soa input[type=\"range\"].soa-range::-moz-range-thumb {\n  box-shadow: 0 0 0 1px var(--gold), 0 0 10px rgba(243,185,55,0.7), 0 0 22px rgba(243,185,55,0.3);\n}\n.jalex-soa input[type=\"range\"].soa-range {\n  background: linear-gradient(90deg,\n    var(--gold) 0%, var(--gold) var(--fill, 20%),\n    var(--rule-2) var(--fill, 20%));\n  box-shadow: 0 0 8px -2px rgba(243,185,55,0.35);\n}\n\n\/* Money input : focus charge *\/\n.jalex-soa .soa-money:focus-within {\n  border-color: var(--gold);\n  box-shadow: 0 0 0 1px rgba(243,185,55,0.35), 0 0 24px -6px rgba(243,185,55,0.4);\n}\n\n\/* Scenario values + stat numerals : faint tube glow *\/\n.jalex-soa .soa-scn-val,\n.jalex-soa .soa-mstat-n,\n.jalex-soa .soa-stat-n,\n.jalex-soa .soa-range-v { text-shadow: 0 0 14px rgba(243,185,55,0.35); }\n.jalex-soa .soa-topbar h1 .it { text-shadow: 0 0 18px rgba(243,185,55,0.35); }\n\n\/* Stamp : slow breathing glow *\/\n@keyframes jsoa-stamp-breathe {\n  0%, 100% { box-shadow: inset 0 0 0 2px var(--bg), inset 0 0 0 3px var(--gold), 0 0 14px -4px rgba(243,185,55,0.45); }\n  50% { box-shadow: inset 0 0 0 2px var(--bg), inset 0 0 0 3px var(--gold), 0 0 26px -4px rgba(243,185,55,0.7); }\n}\n.jalex-soa .soa-stamp.is-stamped { animation: jsoa-stamp 520ms cubic-bezier(0.22,1,0.36,1), jsoa-stamp-breathe 4.5s ease-in-out 600ms infinite; }\n\n\/* Rail buttons + fold markers : hover charge *\/\n.jalex-soa .soa-rail-btn:hover {\n  box-shadow: 0 0 12px -2px rgba(243,185,55,0.5);\n  transform: translateY(-1px);\n}\n.jalex-soa .soa-rail-btn { transition: all 180ms ease; }\n.jalex-soa .soa-fold[open] summary::after,\n.jalex-soa .soa-fold summary:hover::after { text-shadow: 0 0 10px rgba(243,185,55,0.7); }\n\n\/* Row status chips : STOP burns, FLAG smolders *\/\n.jalex-soa .soa-row-status.st-stop { box-shadow: 0 0 16px -4px rgba(243,185,55,0.6); }\n.jalex-soa .soa-row-status.st-flag { box-shadow: 0 0 10px -4px rgba(243,185,55,0.4); }\n\n\/* Locked CTA phone : ambient pull *\/\n.jalex-soa .ctabox .phone-big { transition: color 200ms ease, text-shadow 200ms ease; }\n.jalex-soa .ctabox .phone-big:hover { text-shadow: 0 0 22px rgba(243,185,55,0.45); }\n\n\/* Multi-select chips : selected state carries a check *\/\n.jalex-soa .soa-chips[data-multi] .soa-chip.is-on::before { content: \"\\2713\\00a0\\00a0\"; font-weight: 800; }\n\/* Stat value comparison suffix (implied vs typical band) *\/\n.jalex-soa .soa-mstat-n em {\n  font-style: normal; font-family: var(--mono); font-weight: 500;\n  font-size: 10px; letter-spacing: 0.04em; color: var(--muted);\n  margin-left: 6px; text-shadow: none; vertical-align: 2px;\n}\n\n\/* ============ REVIEW SEQUENCE GUIDE ============ *\/\n.jalex-soa .soa-guide { border-top: 1px solid var(--rule); padding: clamp(56px, 7vw, 96px) 0; }\n.jalex-soa .soa-guide .eyebrow { margin-bottom: 18px; }\n.jalex-soa .soa-guide h2 { margin-bottom: 18px; }\n.jalex-soa .soa-guide-lede { margin: 0 0 40px; font-size: 16px; line-height: 1.7; color: var(--text-2); max-width: 680px; }\n.jalex-soa .soa-gstep { border-top: 1px solid var(--rule); padding: 30px 0 26px; }\n.jalex-soa .soa-gstep h3 {\n  font-size: clamp(17px, 1.9vw, 21px); margin-bottom: 16px;\n  display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap;\n}\n.jalex-soa .soa-gnum {\n  font-family: var(--mono); font-size: 10.5px; font-weight: 600;\n  letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold);\n  flex-shrink: 0;\n}\n.jalex-soa .soa-gstep p {\n  margin: 0 0 14px; font-size: 15px; line-height: 1.75;\n  color: var(--text-2); max-width: 780px;\n}\n.jalex-soa .soa-gstep p:last-child { margin-bottom: 0; }\n.jalex-soa .soa-gstep b { color: var(--text); font-weight: 600; }\n.jalex-soa .soa-gq {\n  border-left: 2px solid var(--gold); padding: 4px 0 4px 20px;\n  color: var(--text) !important; font-size: 15px;\n  box-shadow: -1px 0 8px -3px rgba(243,185,55,0.4);\n}\n.jalex-soa .soa-guide-note {\n  margin: 34px 0 0; padding: 20px 22px;\n  border: 1px solid var(--rule-2); border-radius: var(--radius);\n  background: var(--bg-2);\n  font-size: 13.5px; line-height: 1.7; color: var(--muted); max-width: 780px;\n}\n.jalex-soa .soa-guide-note b { color: var(--text-2); }\n\n\/* ============ GATE LOCK (pure CSS ; no attribute to fail) ============ *\/\n.jalex-soa .soa-gate:has(.js-soa-consent:not(:checked)) .js-soa-start {\n  opacity: 0.45; box-shadow: none; filter: grayscale(0.4);\n}\n.jalex-soa .soa-gate:has(.js-soa-consent:checked) .js-soa-start {\n  opacity: 1; filter: none;\n  box-shadow: 0 8px 24px -8px rgba(243,185,55,0.5);\n}\n@keyframes jsoa-consent-flash {\n  0%, 100% { border-color: var(--rule-2); box-shadow: none; }\n  30%, 70% { border-color: var(--gold); box-shadow: 0 0 0 1px rgba(243,185,55,0.5), 0 0 22px -4px rgba(243,185,55,0.55); }\n}\n.jalex-soa .soa-consent.is-flash { animation: jsoa-consent-flash 900ms ease; }\n\n\/* ============ DIAGNOSTIC STRIP ============ *\/\n.jalex-soa .soa-diag {\n  \/* fixed overlay so no theme header\/footer can hide the warning;\n     the script hides this box the moment it boots *\/\n  position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 2147483000;\n  padding: 12px 16px;\n  border: 1px solid var(--gold); border-radius: var(--radius);\n  font-family: var(--mono); font-size: 12px; line-height: 1.6;\n  letter-spacing: 0.04em; color: var(--gold); background: #000;\n  box-shadow: 0 8px 30px rgba(0,0,0,0.85);\n}\n\n\/* ============ A11Y + MOTION ============ *\/\n.jalex-soa a:focus-visible, .jalex-soa button:focus-visible,\n.jalex-soa summary:focus-visible, .jalex-soa input:focus-visible {\n  outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px;\n}\n@media (prefers-reduced-motion: reduce) {\n  .jalex-soa *, .jalex-soa *::before, .jalex-soa *::after {\n    animation-duration: 0.01ms !important; transition-duration: 0.01ms !important;\n  }\n}\n\n\/* ============ RESPONSIVE ============ *\/\n@media (max-width: 900px) {\n  .jalex-soa .soa-cta-grid { grid-template-columns: 1fr; }\n  .jalex-soa .soa-row { grid-template-columns: 1fr; gap: 12px; }\n  .jalex-soa .soa-row-status { justify-self: start; padding: 8px 14px; }\n}\n@media (max-width: 560px) {\n  .jalex-soa .soa-chips { flex-direction: column; }\n  .jalex-soa .soa-chip { width: 100%; }\n  .jalex-soa .ctabox { padding: 26px 22px; }\n  .jalex-soa .faq-item .answer { padding-right: 12px; }\n  .jalex-soa .soa-stamp { transform: rotate(-1.5deg); padding: 14px 20px; }\n}\n<\/style>\n\n<div class=\"jalex-soa\">\n  <script id=\"jalex-soa-sentinel\" nowprocket data-no-optimize=\"1\" data-no-minify=\"1\" data-cfasync=\"false\">\n  \/* sentinel: surfaces any page JS error on-screen so debugging never needs DevTools *\/\n  window.addEventListener('error', function (e) {\n    try {\n      \/* once the tool has booted it is healthy; errors from other\n         scripts (theme, plugins, editor sandbox) are not ours to show *\/\n      if (window.jalexSOA && window.jalexSOA.booted) { return; }\n      var d = document.querySelector('.soa-diag');\n      if (d) { d.style.display = 'block'; d.textContent = 'JS error: ' + (e.message || 'unknown') + ' @ ' + (e.filename || 'inline') + ':' + (e.lineno || '?'); }\n    } catch (x) {}\n  }, true);\n  <\/script>\n  <div class=\"soa-diag\" role=\"status\">Tool script has not started. If this message stays visible after the page loads, the JavaScript was blocked ; usually a caching, security, or optimization plugin. Screenshot this box.<\/div>\n\n  <!-- ========== COMPACT TOPBAR ========== -->\n  <header class=\"soa-hero soa-topbar\">\n    <div class=\"wrap soa-topbar-in\">\n      <div>\n        <span class=\"eyebrow\"><span class=\"num\">Free Tool<\/span>Settlement Offer Analyzer ; Texas<\/span>\n        <h1>Should you sign <span class=\"it\">this offer?<\/span><\/h1>\n      <\/div>\n      <p class=\"soa-lede\">The checks an attorney runs on an offer ; run on your device. <b>Nothing you enter is stored or sent anywhere.<\/b><\/p>\n    <\/div>\n  <\/header>\n\n  <div class=\"soa-progress\" aria-hidden=\"true\"><div class=\"soa-progress-fill\" id=\"soaProgress\"><\/div><\/div>\n\n  <div class=\"soa-body\">\n    <div class=\"wrap-narrow\">\n\n      <!-- ========== 00 CONSENT GATE ========== -->\n      <section class=\"soa-step is-active soa-gate\" id=\"soaGate\" data-step=\"0\">\n        <div class=\"soa-gate-k\">00 ; Before we begin<\/div>\n        <h2>Read this first. <span class=\"it\">It matters.<\/span><\/h2>\n        <ul class=\"soa-gate-terms\">\n          <li><span class=\"t-mark\">\u00a7<\/span><span>This is an <b>educational tool<\/b>, not legal advice, and using it does not create an attorney-client relationship with J. Alexander Law Firm.<\/span><\/li>\n          <li><span class=\"t-mark\">\u00a7<\/span><span>It shows you <b>how offers are analyzed<\/b> ; it cannot value your case. Every case turns on facts no calculator can hold.<\/span><\/li>\n          <li><span class=\"t-mark\">\u00a7<\/span><span><b>Your answers never leave this page.<\/b> Nothing is stored, transmitted, or shared ; close the tab and it is gone.<\/span><\/li>\n          <li><span class=\"t-mark\">\u00a7<\/span><span>Some questions touch on your injuries and treatment. Answering is voluntary and used only to run the checks on your screen.<\/span><\/li>\n        <\/ul>\n        <label class=\"soa-consent\">\n          <input type=\"checkbox\" id=\"soaConsent\" class=\"js-soa-consent\">\n          <span>I understand, and I consent to entering injury-related information for this educational analysis on my own device.<\/span>\n        <\/label>\n        <button type=\"button\" class=\"btn btn-primary js-soa-start\" id=\"soaStart\">Run the analysis <span class=\"arr\">\u2192<\/span><\/button>\n      <\/section>\n\n      <!-- ========== 01 THE OFFER ========== -->\n      <section class=\"soa-step\" data-step=\"1\">\n        <div class=\"soa-step-k\"><span class=\"num\">01 \/ 06<\/span>The Offer<\/div>\n        <h2>What did they <span class=\"it\">put on the table?<\/span><\/h2>\n        <p class=\"soa-step-sub\">The total settlement amount in the offer, before anything comes out of it.<\/p>\n        <div class=\"soa-money\">\n          <span class=\"sym\">$<\/span>\n          <input type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" id=\"inOffer\" placeholder=\"50,000\" aria-label=\"Settlement offer amount in dollars\">\n        <\/div>\n        <div class=\"soa-nav\">\n          <button type=\"button\" class=\"btn btn-primary\" data-next=\"\">Continue <span class=\"arr\">\u2192<\/span><\/button>\n          <button type=\"button\" class=\"soa-back\" data-back=\"\">\u2190 Back<\/button>\n        <\/div>\n      <\/section>\n\n      <!-- ========== 02 MEDICALS ========== -->\n      <section class=\"soa-step\" data-step=\"2\">\n        <div class=\"soa-step-k\"><span class=\"num\">02 \/ 06<\/span>Your Medicals<\/div>\n        <h2>Medical bills <span class=\"it\">so far.<\/span><\/h2>\n        <p class=\"soa-step-sub\">Your best estimate of all crash-related medical charges to date ; ER, imaging, specialists, therapy. A round number is fine.<\/p>\n        <div class=\"soa-money\">\n          <span class=\"sym\">$<\/span>\n          <input type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" id=\"inBills\" placeholder=\"15,000\" aria-label=\"Medical bills to date in dollars\">\n        <\/div>\n        <div class=\"soa-nav\">\n          <button type=\"button\" class=\"btn btn-primary\" data-next=\"\">Continue <span class=\"arr\">\u2192<\/span><\/button>\n          <button type=\"button\" class=\"soa-back\" data-back=\"\">\u2190 Back<\/button>\n        <\/div>\n      <\/section>\n\n      <!-- ========== 03 TREATMENT ========== -->\n      <section class=\"soa-step\" data-step=\"3\">\n        <div class=\"soa-step-k\"><span class=\"num\">03 \/ 06<\/span>Treatment Status<\/div>\n        <h2>Where is your <span class=\"it\">treatment?<\/span><\/h2>\n        <p class=\"soa-step-sub\">This is the decisive question. An offer cannot be evaluated until the medical picture is stable enough to price.<\/p>\n        <div class=\"soa-chips\" role=\"group\" aria-label=\"Treatment status\" data-field=\"treatment\">\n          <button type=\"button\" class=\"soa-chip\" data-val=\"treating\">Still treating<small>Appointments, therapy, or referrals are ongoing<\/small><\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"surgery\">Surgery recommended or pending<small>A procedure has been discussed or scheduled<\/small><\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"mmi\">Finished ; doctor says I&#8217;ve plateaued<small>Sometimes called maximum medical improvement<\/small><\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"unsure\">Not sure<small>No clear guidance from a doctor yet<\/small><\/button>\n        <\/div>\n        <div class=\"soa-nav\">\n          <button type=\"button\" class=\"btn btn-primary\" data-next=\"\" disabled=\"\">Continue <span class=\"arr\">\u2192<\/span><\/button>\n          <button type=\"button\" class=\"soa-back\" data-back=\"\">\u2190 Back<\/button>\n        <\/div>\n      <\/section>\n\n      <!-- ========== 04 INJURY ========== -->\n      <section class=\"soa-step\" data-step=\"4\">\n        <div class=\"soa-step-k\"><span class=\"num\">04 \/ 06<\/span>The Injuries<\/div>\n        <h2>What are you <span class=\"it\">dealing with?<\/span><\/h2>\n        <p class=\"soa-step-sub\">Select <b>every injury that applies<\/b> ; the math combines them.<\/p>\n        <div class=\"soa-chips\" role=\"group\" aria-label=\"Injury types ; select all that apply\" data-field=\"injuries\" data-multi=\"1\">\n          <button type=\"button\" class=\"soa-chip\" data-val=\"soft\" aria-pressed=\"false\">Soft tissue \/ whiplash<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"fracture\" aria-pressed=\"false\">Broken bone \/ fracture<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"disc\" aria-pressed=\"false\">Herniated disc \/ nerve pain<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"spinal\" aria-pressed=\"false\">Spinal injury \/ stenosis<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"tbi\" aria-pressed=\"false\">Head injury \/ concussion \/ TBI<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"surgery\" aria-pressed=\"false\">Surgery already performed<\/button>\n        <\/div>\n        <p class=\"soa-step-sub\" style=\"margin-top:34px;\"><b>And what kind of vehicle hit you?<\/b><\/p>\n        <div class=\"soa-chips\" role=\"group\" aria-label=\"Vehicle type\" data-field=\"vehicle\">\n          <button type=\"button\" class=\"soa-chip\" data-val=\"personal\">A regular car or pickup<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"commercial\">An 18-wheeler or commercial vehicle<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"rideshare\">A rideshare ; Uber or Lyft<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"other\">Something else \/ not sure<\/button>\n        <\/div>\n        <div class=\"soa-nav\">\n          <button type=\"button\" class=\"btn btn-primary\" data-next=\"\" disabled=\"\">Continue <span class=\"arr\">\u2192<\/span><\/button>\n          <button type=\"button\" class=\"soa-back\" data-back=\"\">\u2190 Back<\/button>\n        <\/div>\n      <\/section>\n\n      <!-- ========== 05 FAULT ========== -->\n      <section class=\"soa-step\" data-step=\"5\">\n        <div class=\"soa-step-k\"><span class=\"num\">05 \/ 06<\/span>Fault Asserted<\/div>\n        <h2>Are they saying you were <span class=\"it\">partly at fault?<\/span><\/h2>\n        <p class=\"soa-step-sub\">Adjusters often justify a lower number by assigning you a percentage of blame. If they named one, tell us.<\/p>\n        <div class=\"soa-chips\" role=\"group\" aria-label=\"Fault asserted\" data-field=\"fault\">\n          <button type=\"button\" class=\"soa-chip\" data-val=\"none\">No ; fault isn&#8217;t disputed<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"named\">Yes ; they named a percentage<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"unsure\">They&#8217;ve hinted, but no number<\/button>\n        <\/div>\n        <div class=\"soa-fault\" id=\"soaFaultBox\">\n          <div class=\"soa-fault-read\"><span id=\"soaFaultPct\">20<\/span>%<span class=\"pct-label\">The percentage they claim<\/span><\/div>\n          <input type=\"range\" class=\"soa-range\" id=\"soaFaultRange\" min=\"0\" max=\"100\" step=\"5\" value=\"20\" aria-label=\"Fault percentage asserted by the insurer\">\n        <\/div>\n        <div class=\"soa-nav\">\n          <button type=\"button\" class=\"btn btn-primary\" data-next=\"\" disabled=\"\">Continue <span class=\"arr\">\u2192<\/span><\/button>\n          <button type=\"button\" class=\"soa-back\" data-back=\"\">\u2190 Back<\/button>\n        <\/div>\n      <\/section>\n\n      <!-- ========== 06 TIMING ========== -->\n      <section class=\"soa-step\" data-step=\"6\">\n        <div class=\"soa-step-k\"><span class=\"num\">06 \/ 06<\/span>Timing &amp; Paperwork<\/div>\n        <h2>Two last <span class=\"it\">questions.<\/span><\/h2>\n        <p class=\"soa-step-sub\"><b>Did this offer arrive within about 30 days of the crash?<\/b><\/p>\n        <div class=\"soa-chips\" role=\"group\" aria-label=\"Offer timing\" data-field=\"early\">\n          <button type=\"button\" class=\"soa-chip\" data-val=\"yes\">Yes ; it came fast<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"no\">No ; it&#8217;s been longer<\/button>\n        <\/div>\n        <p class=\"soa-step-sub\" style=\"margin-top:34px;\"><b>Do you have the written release document in hand?<\/b><\/p>\n        <div class=\"soa-chips\" role=\"group\" aria-label=\"Release in hand\" data-field=\"release\">\n          <button type=\"button\" class=\"soa-chip\" data-val=\"yes\">Yes ; I have the paperwork<\/button>\n          <button type=\"button\" class=\"soa-chip\" data-val=\"no\">No ; just a number so far<\/button>\n        <\/div>\n        <div class=\"soa-nav\">\n          <button type=\"button\" class=\"btn btn-primary\" id=\"soaFinish\" disabled=\"\">Show the findings <span class=\"arr\">\u2192<\/span><\/button>\n          <button type=\"button\" class=\"soa-back\" data-back=\"\">\u2190 Back<\/button>\n        <\/div>\n      <\/section>\n\n      <!-- ========== FINDINGS (compact dashboard) ========== -->\n      <section class=\"soa-findings\" id=\"soaFindings\" aria-live=\"polite\">\n\n        <!-- Row 1 : scenario sliders, inline -->\n        <div class=\"soa-scenario\">\n          <div class=\"soa-scenario-head\">\n            <span class=\"soa-scenario-k\">The Findings<\/span>\n            <span class=\"soa-scenario-hint\">Drag ; everything updates live<\/span>\n          <\/div>\n          <div class=\"soa-scenario-grid\">\n            <div class=\"soa-scn\">\n              <div class=\"soa-scn-top\"><span class=\"soa-scn-label\">The offer<\/span><span class=\"soa-scn-val\" id=\"scnOfferVal\">$0<\/span><\/div>\n              <input type=\"range\" class=\"soa-range\" id=\"scnOffer\" min=\"0\" max=\"500000\" step=\"2500\" value=\"0\" aria-label=\"Adjust the offer amount\">\n            <\/div>\n            <div class=\"soa-scn\">\n              <div class=\"soa-scn-top\"><span class=\"soa-scn-label\">Fault claimed <span class=\"soa-scn-bar51\">\u00b7 51% bar<\/span><\/span><span class=\"soa-scn-val\" id=\"scnFaultVal\">0<em>%<\/em><\/span><\/div>\n              <input type=\"range\" class=\"soa-range\" id=\"scnFault\" min=\"0\" max=\"100\" step=\"5\" value=\"0\" aria-label=\"Adjust the fault percentage asserted\">\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Row 2 : hero number + verdict stamp, side by side -->\n        <div class=\"soa-res-main\">\n          <div class=\"soa-hero-card\" id=\"soaHeroCard\">\n            <div class=\"soa-hero-k\" id=\"soaHeroK\">What this offer prices your pain at<\/div>\n            <div class=\"soa-hero-n\"><span class=\"soa-hero-sign\" id=\"soaHeroSign\">+<\/span><span id=\"soaHeroNum\">$0<\/span><\/div>\n            <p class=\"soa-hero-sub\" id=\"soaHeroSub\"><\/p>\n          <\/div>\n          <div class=\"soa-verdict\" id=\"soaVerdict\">\n            <img decoding=\"async\" class=\"soa-emblem\" src=\"https:\/\/severeinjurylawyers.com\/wp-content\/uploads\/2026\/06\/emblem-j-alex-law-firm.png\" alt=\"\" aria-hidden=\"true\" loading=\"lazy\">\n            <div class=\"soa-verdict-k\">The Verdict<\/div>\n            <div class=\"soa-stamp\" id=\"soaStamp\">\u2014<\/div>\n            <a href=\"tel:+14698077480\" class=\"btn btn-primary soa-verdict-cta\" data-soa-cta=\"\">Have it read free ; (469) 807-7480<\/a>\n          <\/div>\n        <\/div>\n\n        <!-- Row 3 : stat strip -->\n        <div class=\"soa-stats-grid\">\n          <div class=\"soa-mstat\"><span class=\"soa-mstat-n\" id=\"stGross\">\u2014<\/span><span class=\"soa-mstat-k\">Gross offer<\/span><\/div>\n          <div class=\"soa-mstat\"><span class=\"soa-mstat-n\" id=\"stBills\">\u2014<\/span><span class=\"soa-mstat-k\">Medical bills<\/span><\/div>\n          <div class=\"soa-mstat\"><span class=\"soa-mstat-n\" id=\"stFault\">\u2014<\/span><span class=\"soa-mstat-k\">Their fault claim costs<\/span><\/div>\n          <div class=\"soa-mstat\"><span class=\"soa-mstat-n\" id=\"stMult\">\u2014<\/span><span class=\"soa-mstat-k\">Implied pain multiple vs typical<\/span><\/div>\n          <div class=\"soa-mstat\"><span class=\"soa-mstat-n\" id=\"stFee\">\u2014<\/span><span class=\"soa-mstat-k\">Illustrative \u2153 fee<\/span><\/div>\n        <\/div>\n\n        <!-- Row 4 : findings rail (swipe \/ arrows, no vertical scroll) -->\n        <div class=\"soa-rail-head\">\n          <span class=\"soa-scenario-k\">Line-by-line checks<\/span>\n          <div class=\"soa-rail-nav\">\n            <span class=\"soa-rail-count\"><span id=\"railAt\">01<\/span> \/ <span id=\"railTotal\">07<\/span><\/span>\n            <button type=\"button\" class=\"soa-rail-btn\" id=\"railPrev\" aria-label=\"Previous check\">\u2190<\/button>\n            <button type=\"button\" class=\"soa-rail-btn\" id=\"railNext\" aria-label=\"Next check\">\u2192<\/button>\n          <\/div>\n        <\/div>\n        <div class=\"soa-ledger\" id=\"soaLedger\" tabindex=\"0\"><!-- cards injected --><\/div>\n\n        <!-- Row 5 : collapsed depth + restart -->\n        <div class=\"soa-res-foot\">\n          <details class=\"soa-fold\"><summary>Why this verdict<\/summary><p class=\"soa-verdict-why\" id=\"soaWhy\"><\/p><\/details>\n          <details class=\"soa-fold\" id=\"soaNet\" hidden=\"\"><summary>The net reality ; what &#8220;how much will I get&#8221; asks<\/summary>\n            <div class=\"soa-net-rows\" id=\"soaNetRows\"><\/div>\n            <p class=\"soa-net-note\">Illustration only ; your signed fee agreement controls any fee, and liens exist whether or not you&#8217;re represented. Liens and the fee draw from the same pool of proceeds ; a $10,000 lien reduction delivers the same net benefit as a 10-point fee reduction on a $100,000 offer, which is why lien negotiation is frequently where the net moves most.<\/p>\n          <\/details>\n          <details class=\"soa-fold\"><summary>What an attorney checks next<\/summary>\n            <ol class=\"soa-next-ol\">\n              <li><b>The release scope.<\/b> Standard releases end <b>all claims, against all parties, known and unknown<\/b> ; including injuries diagnosed after you sign.<\/li>\n              <li><b>Indemnification language.<\/b> Some releases make you personally repay any lien the insurer missed. Most people never spot this clause.<\/li>\n              <li><b>Hospital liens.<\/b> Under Texas Property Code Chapter 55, a hospital that treated you within 72 hours of the crash may hold an automatic lien on your recovery ; negotiating it changes your net.<\/li>\n              <li><b>Your own policy.<\/b> PIP and UM\/UIM coverage must be offered in Texas and rejected in writing ; many people carry money they don&#8217;t know about.<\/li>\n              <li><b>The deadline.<\/b> Most Texas injury claims must be filed within two years ; government defendants can shrink that to months.<\/li>\n            <\/ol>\n          <\/details>\n          <button type=\"button\" class=\"soa-restart\" id=\"soaRestart\">\u21ba &nbsp;Start over<\/button>\n        <\/div>\n      <\/section>\n\n    <\/div>\n  <\/div>\n\n  <!-- ========== FIRM RESULTS CONTEXT ========== -->\n  <section class=\"soa-results\">\n    <div class=\"wrap-narrow\">\n      <span class=\"eyebrow\"><span class=\"num\">Context<\/span>What built cases resolve for<\/span>\n      <h2>The gap between an offer <br><span class=\"it\">and a built case.<\/span><\/h2>\n      <p class=\"soa-results-lede\">An opening offer prices an unbuilt claim. The recoveries below ; a sample of J. Alexander Law\u2019s resolved matters ; show what the same categories of cases have resolved for once the evidence was locked down, experts retained, and the file prepared for a jury. That gap is the negotiation.<\/p>\n      <div class=\"soa-range-stats\">\n        <div class=\"soa-stat\"><span class=\"soa-stat-n\">$36M+<\/span><span class=\"soa-stat-k\">Recovered on our results page<\/span><\/div>\n        <div class=\"soa-stat\"><span class=\"soa-stat-n\">$15M<\/span><span class=\"soa-stat-k\">Single largest result<\/span><\/div>\n        <div class=\"soa-stat\"><span class=\"soa-stat-n\">12<\/span><span class=\"soa-stat-k\">Seven-figure recoveries<\/span><\/div>\n      <\/div>\n      <div class=\"soa-ranges\">\n        <div class=\"soa-range-row\"><span class=\"soa-range-k\">Motor vehicle accidents<\/span><span class=\"soa-range-v\">$100,000 \u2013 $1,000,000<\/span><\/div>\n        <div class=\"soa-range-row\"><span class=\"soa-range-k\">18-wheeler &amp; commercial<\/span><span class=\"soa-range-v\">$1,000,000 \u2013 $15,000,000<\/span><\/div>\n        <div class=\"soa-range-row\"><span class=\"soa-range-k\">Workplace injury &amp; death<\/span><span class=\"soa-range-v\">$170,000 \u2013 $2,000,000<\/span><\/div>\n        <div class=\"soa-range-row\"><span class=\"soa-range-k\">Premises ; slip and fall<\/span><span class=\"soa-range-v\">$175,000 <em>representative result<\/em><\/span><\/div>\n      <\/div>\n      <p class=\"soa-results-disc\">Past results do not guarantee a similar outcome. Each case is different and must be evaluated on its own facts. Amounts shown are gross recoveries before attorney fees, case expenses, and medical liens; ranges reflect a sample of resolved matters, not averages or predictions of any case\u2019s value.<\/p>\n      <a href=\"https:\/\/severeinjurylawyers.com\/results\/\" class=\"btn btn-line\">See the full case results <span class=\"arr\">\u2192<\/span><\/a>\n    <\/div>\n  <\/section>\n\n  <!-- ========== THE REVIEW SEQUENCE (static guide ; the method behind the tool) ========== -->\n  <section class=\"soa-guide\">\n    <div class=\"wrap-narrow\">\n      <span class=\"eyebrow\"><span class=\"num\">Method<\/span>The Review Sequence<\/span>\n      <h2>How an expert reads an offer, <span class=\"it\">in order.<\/span><\/h2>\n      <p class=\"soa-guide-lede\">The analyzer above automates a fixed sequence of checks. Here is that sequence written out ; the order matters, because each step depends on the one before it, and running the math out of order is how good claims get signed away.<\/p>\n\n      <div class=\"soa-gstep\">\n        <h3><span class=\"soa-gnum\">Step 01<\/span>Run the Texas 51% bar before any valuation math.<\/h3>\n        <p>The 51% bar is a binary hard-stop check, not a discount. Under Texas Civil Practice &amp; Remedies Code \u00a7 33.001, a claimant found 51% or more responsible for the crash recovers <b>nothing<\/b> ; the claim is barred entirely, and the gross offer figure becomes irrelevant. Comparative fault is the mechanism adjusters use to suppress offers, and the 51% bar is the statutory threshold that converts that fault allocation into a binary outcome. Before running any valuation math, confirm the claimant&#8217;s assigned fault percentage: if an adjuster has allocated 51% or more to your client, Texas law bars recovery entirely, and the correct response is to challenge that allocation ; not negotiate the offer amount.<\/p>\n        <p class=\"soa-gq\">Adjusters routinely inflate comparative fault percentages to suppress offers, but the stakes go beyond a reduced payout: under Texas&#8217;s 51% bar, a fault allocation at or above that threshold extinguishes the claim entirely \u2014 which means the settlement release should never be signed while fault is genuinely disputed near that line.<\/p>\n        <p>This is also why fault resolution is a prerequisite to the release review itself, not a parallel task. Because the settlement release is irreversible, confirming that the claimant&#8217;s fault is below 51% is not just a valuation step ; it is a prerequisite to the release review itself; signing a release when fault is genuinely disputed near the threshold locks in a potentially worthless settlement.<\/p>\n      <\/div>\n\n      <div class=\"soa-gstep\">\n        <h3><span class=\"soa-gnum\">Step 02<\/span>Confirm maximum medical improvement ; and let the two-year statute carry the pressure.<\/h3>\n        <p>Maximum medical improvement is the valuation prerequisite: until a doctor says the injuries have plateaued, the largest number in the claim ; future care ; cannot be priced. An offer that arrives before maximum medical improvement is a textbook early settlement offer, and the correct response is not urgency but patience, because the Texas two-year statute of limitations gives the reviewer a legally protected window to wait until the injury&#8217;s full value is knowable.<\/p>\n        <p>The deadline itself is concrete: under Texas Civil Practice &amp; Remedies Code \u00a7 16.003, a personal injury suit must be filed within <b>two years from the date of injury<\/b> (government defendants can shorten the effective window with notice requirements as brief as six months). That statute is not just a constraint ; it is the expert reviewer&#8217;s shield against manufactured urgency. Early settlement offers exploit the claimant&#8217;s fear of losing their claim, but the Texas two-year statute of limitations is the expert reviewer&#8217;s rebuttal: there is a defined, legally protected window to wait for maximum medical improvement before any offer must be accepted or rejected.<\/p>\n        <p class=\"soa-gq\">When an adjuster implies the offer expires soon or that waiting risks losing the claim, remind yourself that Texas law provides a full two years from the injury date to file suit \u2014 meaning there is almost always time to wait for maximum medical improvement before accepting any offer.<\/p>\n      <\/div>\n\n      <div class=\"soa-gstep\">\n        <h3><span class=\"soa-gnum\">Step 03<\/span>Price the pain with the multiplier ; then apply the fault reduction, in that order.<\/h3>\n        <p>The pain-and-suffering multiplier is the valuation mechanism insurers themselves use: economic damages (chiefly medical bills) are multiplied by a severity factor, typically \u00d71.5 for soft-tissue injuries up to \u00d75 for catastrophic ones, with each additional documented injury pushing the band higher. That produces the <b>gross<\/b> non-economic figure. Comparative fault then reduces that output directly ; the fault percentage does not just trim economic damages, it suppresses the multiplier&#8217;s entire product. If the multiplier produces a $120,000 non-economic damages figure but the adjuster has assigned 30% fault to the claimant, the recoverable non-economic amount drops to $84,000 ; which is why challenging an inflated fault allocation often produces more value than negotiating the multiplier inputs.<\/p>\n        <p>The multiplier&#8217;s output also has to be benchmarked against the right ceiling. Commercial vehicle coverage raises that ceiling: interstate carriers are federally required to hold at least $750,000 in liability coverage, and fleet policies frequently exceed it. When a commercial vehicle is involved, the pain-and-suffering multiplier output should be benchmarked against commercial policy limits ; which can reach $1 million or more ; not the $30,000 minimum required for personal auto policies in Texas; an offer that looks reasonable in one context is a lowball in the other.<\/p>\n      <\/div>\n\n      <div class=\"soa-gstep\">\n        <h3><span class=\"soa-gnum\">Step 04<\/span>Work the net: gross offer, minus liens, minus the contingency fee ; together, not sequentially.<\/h3>\n        <p>Start with the multiplier to establish whether the gross offer reflects the full non-economic damages, then subtract outstanding medical liens and the contingency fee to arrive at the number that actually reaches the claimant ; that final figure is the only one that matters for the accept-or-reject decision. The arithmetic is blunt: a $90,000 gross offer sounds substantial until you subtract a 33% contingency fee ($29,700) and a $25,000 hospital lien, leaving the claimant with roughly $35,300 ; a figure that reframes whether the offer is worth accepting. Texas contingency fees typically run 33\u201340% depending on whether suit is filed; the signed fee agreement controls.<\/p>\n        <p class=\"soa-gq\">Medical liens and the contingency fee draw from the same settlement proceeds, so the expert reviewer&#8217;s job is to minimize both simultaneously: a $10,000 reduction in a negotiated lien produces the same net benefit as a 10-point reduction in the fee on a $100,000 offer.<\/p>\n        <p>Within the medical liens audit, treat the Texas Property Code Chapter 55 hospital lien as a separate line item requiring a proactive county records search ; because unlike negotiated liens, it attaches automatically and can surface at disbursement, reducing the net proceeds available after the contingency fee is applied. Unlike negotiated liens, a Chapter 55 hospital lien under the Texas Property Code attaches automatically when a patient receives emergency or inpatient care after an accident (admission within 72 hours of the crash) ; search the county clerk&#8217;s records and contact every treating hospital directly before you finalize your net-proceeds estimate, or risk an unexpected deduction at closing.<\/p>\n      <\/div>\n\n      <div class=\"soa-gstep\">\n        <h3><span class=\"soa-gnum\">Step 05<\/span>Audit the release scope against every policy in play ; including your own.<\/h3>\n        <p>The release is the decision, not the number, and its scope clause is where recoveries silently disappear. UM\/UIM and PIP coverage are <b>first-party claims against the claimant&#8217;s own insurer<\/b>, not the at-fault party ; Texas insurers must offer both, and they are only validly rejected in writing ; so a general release should never reach them without explicit waiver language. Check whether the release language is limited to claims against the at-fault driver and their insurer, or whether it sweeps in &#8220;all claims arising from the incident&#8221; ; the latter phrasing can inadvertently waive a separate UM\/UIM claim worth thousands under the claimant&#8217;s own policy.<\/p>\n        <p class=\"soa-gq\">When reviewing the settlement release&#8217;s scope, check it against two coverage types that broad &#8220;all claims&#8221; language can inadvertently waive: the claimant&#8217;s own UM\/UIM and PIP coverage, and any commercial vehicle policy layers if a fleet vehicle was involved \u2014 both represent potential recovery that disappears the moment the release is signed.<\/p>\n      <\/div>\n\n      <p class=\"soa-guide-note\"><b>A note on what this page is.<\/b> This guide and the analyzer above are educational: using them does not create an attorney-client relationship with J. Alexander Law Firm. That relationship forms only when both sides sign an engagement agreement ; and it matters, because the duties of confidentiality, privilege, and loyalty that protect a client attach only once that relationship exists. Until then, treat every output here as a framework for questions to ask, not advice to act on.<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- ========== FAQ ========== -->\n  <section class=\"soa-faq\">\n    <div class=\"wrap-narrow\">\n      <span class=\"eyebrow\"><span class=\"num\">Answers<\/span>Before you decide<\/span>\n      <h2>Asked constantly. <span class=\"it\">Answered honestly.<\/span><\/h2>\n      <details class=\"faq-item\" open=\"\">\n        <summary><h3>How much will I get from a $50,000 settlement in Texas?<\/h3><span class=\"plus\" aria-hidden=\"true\"><\/span><\/summary>\n        <div class=\"answer\">Less than $50,000 ; the real question is how much less. The contingency fee you agreed to, case expenses, and medical liens all come off the top. A hospital that treated you within 72 hours of the crash may hold an automatic lien under Texas Property Code Chapter 55, and health insurers often assert repayment rights. Lien negotiation frequently moves the net more than the gross number does ; it&#8217;s one of the quietest ways representation pays for itself.<\/div>\n      <\/details>\n      <details class=\"faq-item\">\n        <summary><h3>Should I accept the first offer?<\/h3><span class=\"plus\" aria-hidden=\"true\"><\/span><\/summary>\n        <div class=\"answer\">Not before two things are true: your medical picture is stable enough to price future care, and you have read the actual release language ; not just the number. Early offers are frequently a timing strategy made before the full cost of an injury is known. An offer that roughly equals your bills is pricing your pain, lost time, and future risk at close to zero.<\/div>\n      <\/details>\n      <details class=\"faq-item\">\n        <summary><h3>What happens after I sign the release?<\/h3><span class=\"plus\" aria-hidden=\"true\"><\/span><\/summary>\n        <div class=\"answer\">The claim is over ; permanently. A standard release extinguishes every claim arising from the crash, including injuries diagnosed later. If radiating leg pain turns out to be a herniated disc that needs surgery next year, that cost is yours. This is why the document, not the dollar figure, is what an attorney reads first.<\/div>\n      <\/details>\n      <details class=\"faq-item\">\n        <summary><h3>What are signs of a good settlement offer?<\/h3><span class=\"plus\" aria-hidden=\"true\"><\/span><\/summary>\n        <div class=\"answer\">A structurally sound offer shares six traits: it arrives <em>after<\/em> maximum medical improvement, so future care is actually priceable; it allocates meaningfully beyond your medical bills ; an implied pain multiple in or near the typical \u00d71.5\u2013\u00d75 band for your injury severity, not a receipts-only number; it carries no unproven comparative-fault discount; it comes with the written release, limited to claims against the at-fault driver and their insurer rather than &#8220;all claims arising from the incident&#8221;; the net that survives the fee-and-lien waterfall still justifies accepting; and nobody is imposing an artificial deadline. An offer can pass every one of these and still deserve a free attorney read of the release ; but an offer failing several of them is telling you what it is.<\/div>\n      <\/details>\n      <details class=\"faq-item\">\n        <summary><h3>If I say no, can they lower or withdraw the offer?<\/h3><span class=\"plus\" aria-hidden=\"true\"><\/span><\/summary>\n        <div class=\"answer\">Adjusters sometimes imply an offer is time-limited or will shrink if you consult a lawyer ; that is a pressure tactic, not how negotiations typically work. Rejecting an opening offer ordinarily begins negotiation rather than ending it, and offers commonly move up, not down, once a claim is documented and worked. The real deadline isn\u2019t the adjuster\u2019s ; it\u2019s Texas\u2019s two-year limitations period for filing suit, which is measured in years, not days. You almost never need to decide this week.<\/div>\n      <\/details>\n      <details class=\"faq-item\">\n        <summary><h3>They offered the policy limits ; isn\u2019t that the maximum?<\/h3><span class=\"plus\" aria-hidden=\"true\"><\/span><\/summary>\n        <div class=\"answer\">It\u2019s the maximum of <em>that one policy<\/em> ; which may not be the whole recovery. Before treating a limits tender as the ceiling, demand written proof of the actual limits, then look for the other sources a broad release could extinguish: your own UM\/UIM and PIP coverage, an employer\u2019s policy if the driver was working, umbrella coverage, or additional defendants. A policy-limits offer paired with an all-parties release is exactly the document to have read before signing ; the small policy being exhausted does not mean the claim is.<\/div>\n      <\/details>\n      <details class=\"faq-item\">\n        <summary><h3>Is my information stored anywhere?<\/h3><span class=\"plus\" aria-hidden=\"true\"><\/span><\/summary>\n        <div class=\"answer\">No. Every calculation runs in your browser, on your device. Nothing you type is transmitted, saved, or shared ; there is no database behind this page. Close the tab and your answers no longer exist.<\/div>\n      <\/details>\n    <\/div>\n  <\/section>\n\n  <!-- ========== LOCKED CTA ========== -->\n  <section class=\"soa-cta\" id=\"contact\">\n    <div class=\"wrap\">\n      <div class=\"soa-cta-grid\">\n        <div>\n          <span class=\"eyebrow\"><span class=\"num\">Free, Confidential<\/span>Release Review<\/span>\n          <h2 style=\"margin-top:22px;\">Before you sign it, <span class=\"it\">let us read it.<\/span><\/h2>\n          <p class=\"sub\">A settlement release is permanent. Send us the offer and the paperwork ; a senior attorney will tell you what&#8217;s in it, what&#8217;s missing, and whether the number holds up. Fifteen minutes, no pressure, no obligation.<\/p>\n        <\/div>\n        <div class=\"ctabox\">\n          <div class=\"label\">Speak to an attorney now<\/div>\n          <a href=\"tel:+14698077480\" class=\"phone-big\" data-soa-cta=\"\">(469) 807-7480<\/a>\n          <div class=\"avail\"><span class=\"blink\"><\/span> Live intake ; 24\/7 ; EN \/ ES<\/div>\n          <hr>\n          <a href=\"https:\/\/severeinjurylawyers.com\/contact-us\/\" class=\"formbtn\" data-soa-cta=\"\">Or request a free case review <span>\u2192<\/span><\/a>\n          <div class=\"reassure\">No fee unless we win ; se habla espa\u00f1ol. The firm responds to every inquiry within one business hour during business hours, and within 12 hours overnight.<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========== FINE PRINT ========== -->\n  <div class=\"soa-fine\">\n    <div class=\"wrap\">\n      <p><span class=\"rule-stamp\">Rule set last verified: July 2026.<\/span> Texas references: Civil Practice &amp; Remedies Code Chapter 33 (proportionate responsibility ; the 51% bar), Civil Practice &amp; Remedies Code \u00a716.003 (two-year limitations period), Texas Property Code Chapter 55 (hospital liens), Texas Insurance Code Chapter 1952 (PIP and UM\/UIM offer requirements).<\/p>\n      <p>Attorney advertising. This tool is educational and general in nature; it is not legal advice, it does not evaluate your case, and no output constitutes a prediction or guarantee of any result. Using this tool does not create an attorney-client relationship. Past results do not guarantee a similar outcome. J. Alexander Law Firm P.C., 12801 N Central Expy Suite 1100, Dallas, TX 75243.<\/p>\n      <p>Privacy: all calculations run locally in your browser. This tool sets no cookies, uses no storage, and transmits none of your answers.<\/p>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script id=\"jalex-soa-logic\" nowprocket data-no-optimize=\"1\" data-no-minify=\"1\" data-cfasync=\"false\">\n(function () {\n  'use strict';\n  \/* ---------- heartbeat: proves in the console that this script survived WordPress ---------- *\/\n  window.jalexSOA = window.jalexSOA || { version: '1.6.2', booted: false };\n  try { console.log('[JALEX SOA] script loaded v' + window.jalexSOA.version); } catch (e) {}\n\n  \/* ---------- entry-point delegation: gate works no matter when init runs ---------- *\/\n  document.addEventListener('change', function (e) {\n    var t = e.target;\n    if (t && t.classList && t.classList.contains('js-soa-consent')) {\n      var r = t.closest('.jalex-soa');\n      var b = r ? r.querySelector('.js-soa-start') : null;\n      if (b) { b.disabled = false; } \/* never leave a stale lock behind *\/\n    }\n  }, true);\n  document.addEventListener('click', function (e) {\n    var t = e.target && e.target.closest ? e.target.closest('.js-soa-start') : null;\n    if (t) {\n      var r = t.closest('.jalex-soa');\n      if (r && !r.dataset.jxInit) { boot(); } \/* self-heal: init on demand *\/\n    }\n  }, true);\n\n  function boot() {\n    var roots = document.querySelectorAll('.jalex-soa');\n    \/* count DOWN. TranslatePress corrupts ampersands that sit after an\n       unmatched less-than sign, so this script never uses one *\/\n    for (var i = roots.length - 1; i >= 0; i--) {\n      try { main(roots[i]); }\n      catch (err) { try { console.error('[JALEX SOA] init failed:', err); } catch (e2) {} }\n    }\n    window.jalexSOA.booted = true;\n  }\n\n  function main(root) {\n  if (!root || root.dataset.jxInit) { return; }\n  root.dataset.jxInit = '1';\n\n  \/* ---------- state (memory only; nothing persists) ---------- *\/\n  var S = { offer: 0, bills: 0, treatment: '', injuries: [], vehicle: '', fault: '', faultPct: 20, early: '', release: '' };\n  var TOTAL_STEPS = 6;\n\n  \/* ---------- analytics: sanitized events only, no payloads ---------- *\/\n  function track(ev, extra) {\n    try {\n      window.dataLayer = window.dataLayer || [];\n      var o = { event: ev };\n      if (extra) { o.soa_verdict = extra; } \/* verdict tier only; never inputs *\/\n      window.dataLayer.push(o);\n    } catch (e) {}\n  }\n\n  \/* ---------- helpers ---------- *\/\n  function idSafe(sel) { return sel.replace(\/#([A-Za-z0-9_-]+)\/g, '[id=\"$1\"]'); }\n  function $(sel, ctx) { return (ctx || root).querySelector(idSafe(sel)); }\n  function $all(sel, ctx) { return [].slice.call((ctx || root).querySelectorAll(idSafe(sel))); }\n  function fmt(n) { return '$' + Math.round(n).toLocaleString('en-US'); }\n  function parseMoney(v) {\n    var n = parseInt(String(v).replace(\/[^0-9]\/g, ''), 10);\n    return isNaN(n) ? 0 : Math.min(n, 100000000);\n  }\n\n  \/* currency inputs: live comma formatting *\/\n  $all('.soa-money input').forEach(function (inp) {\n    inp.addEventListener('input', function () {\n      var n = parseMoney(inp.value);\n      inp.value = n ? n.toLocaleString('en-US') : '';\n    });\n  });\n\n  \/* ---------- step engine ---------- *\/\n  var steps = $all('.soa-step');\n  var findings = $('#soaFindings');\n  var progress = $('#soaProgress');\n  var current = 0;\n\n  function show(step) {\n    current = step;\n    steps.forEach(function (s) {\n      s.classList.toggle('is-active', parseInt(s.getAttribute('data-step'), 10) === step);\n    });\n    findings.classList.remove('is-active');\n    progress.style.width = (step \/ TOTAL_STEPS * 100) + '%';\n    var active = steps.filter(function (s) { return parseInt(s.getAttribute('data-step'), 10) === step; })[0];\n    if (active) {\n      var focusable = active.querySelector('input, .soa-chip, button');\n      if (focusable) { if (window.innerWidth > 700) { try { focusable.focus({ preventScroll: true }); } catch (e) {} } }\n    }\n  }\n\n  \/* consent gate \u2014 resilient to delayed-JS plugins (WP Rocket et al.):\n     sync from the DOM at init so a check made BEFORE this script woke up\n     still enables the button, and delegate as a second net. *\/\n  var consent = $('.js-soa-consent');\n  var startBtn = $('.js-soa-start');\n  startBtn.disabled = false; \/* clear any stale lock from older markup\/cache *\/\n  startBtn.addEventListener('click', function () {\n    if (!consent.checked) {\n      \/* gate enforced here, not via a disabled attribute *\/\n      var box = consent.closest('.soa-consent');\n      if (box) { box.classList.remove('is-flash'); void box.offsetWidth; box.classList.add('is-flash'); }\n      try { consent.focus({ preventScroll: true }); } catch (e) {}\n      return;\n    }\n    track('soa_started'); show(1);\n  });\n  var diag = $('.soa-diag');\n  if (diag) { diag.style.display = 'none'; } \/* script alive + gate wired *\/\n\n  \/* back \/ next *\/\n  root.addEventListener('click', function (e) {\n    if (e.target.closest('[data-back]')) { e.preventDefault(); show(Math.max(current - 1, 0)); }\n    var next = e.target.closest('[data-next]');\n    if (next && !next.disabled) {\n      e.preventDefault();\n      if (current === 1) { S.offer = parseMoney($('#inOffer').value); }\n      if (current === 2) { S.bills = parseMoney($('#inBills').value); }\n      show(current + 1);\n    }\n  });\n\n  \/* chip groups (single-select by default; data-multi groups toggle) *\/\n  $all('.soa-chips').forEach(function (group) {\n    var field = group.getAttribute('data-field');\n    var multi = group.hasAttribute('data-multi');\n    group.addEventListener('click', function (e) {\n      var chip = e.target.closest('.soa-chip');\n      if (!chip) { return; }\n      if (multi) {\n        chip.classList.toggle('is-on');\n        chip.setAttribute('aria-pressed', chip.classList.contains('is-on') ? 'true' : 'false');\n        S[field] = $all('.soa-chip.is-on', group).map(function (c) { return c.getAttribute('data-val'); });\n      } else {\n        $all('.soa-chip', group).forEach(function (c) { c.classList.remove('is-on'); });\n        chip.classList.add('is-on');\n        S[field] = chip.getAttribute('data-val');\n      }\n      \/* fault slider reveal *\/\n      if (field === 'fault') {\n        $('#soaFaultBox').classList.toggle('is-open', S.fault === 'named');\n      }\n      \/* enable this step's continue button once every chip group in it is answered *\/\n      var step = group.closest('.soa-step');\n      var btn = step.querySelector('[data-next], #soaFinish');\n      if (btn) {\n        var groups = $all('.soa-chips', step);\n        btn.disabled = !groups.every(function (g) { return g.querySelector('.is-on'); });\n      }\n    });\n  });\n\n  \/* fault slider *\/\n  var range = $('#soaFaultRange');\n  var pctEl = $('#soaFaultPct');\n  function paintRange() {\n    S.faultPct = parseInt(range.value, 10);\n    pctEl.textContent = S.faultPct;\n    range.style.setProperty('--fill', S.faultPct + '%');\n  }\n  range.addEventListener('input', paintRange);\n  paintRange();\n\n  \/* ---------- future-care reference ranges (typical Texas figures; educational) ----------\n     lo\/hi are one-time exposure; annual items (TBI) are appended, never summed.\n     tier feeds the multiplier-method band (severity \u00d71.5\u2013\u00d75 that insurers themselves use). *\/\n  var CARE = {\n    soft:     { lo: 5000,  hi: 15000,  label: 'ongoing therapy',                   tier: 1 },\n    fracture: { lo: 25000, hi: 60000,  label: 'hardware revision or removal',      tier: 2 },\n    disc:     { lo: 10000, hi: 150000, label: 'injections or a lumbar fusion',     tier: 3 },\n    spinal:   { lo: 80000, hi: 150000, label: 'decompression or fusion surgery',   tier: 4, plus: true },\n    tbi:      { lo: 50000, hi: 0,      label: 'neurological care and therapy',     tier: 4, annual: true },\n    surgery:  { lo: 25000, hi: 150000, label: 'revision surgery or continued rehab', tier: 4 }\n  };\n  var SEVERE = { disc: 1, spinal: 1, tbi: 1, surgery: 1 };\n  var MULT_BASE = { 1: 1.5, 2: 2, 3: 3, 4: 4 };\n\n  \/* combine every selected injury into one arithmetic picture *\/\n  function careProfile() {\n    var sel = (S.injuries && S.injuries.length) ? S.injuries : ['soft'];\n    var lo = 0, hi = 0, plus = false, annual = 0, labels = [], maxTier = 1, severe = false;\n    sel.forEach(function (k) {\n      var c = CARE[k]; if (!c) { return; }\n      if (c.annual) { annual += c.lo; }\n      else { lo += c.lo; hi += c.hi; if (c.plus) { plus = true; } }\n      labels.push(c.label);\n      if (c.tier > maxTier) { maxTier = c.tier; }\n      if (SEVERE[k]) { severe = true; }\n    });\n    \/* multiplier band: base by worst injury, +0.25 per additional injury, capped at 5 *\/\n    var mLo = Math.min(MULT_BASE[maxTier] + Math.max(sel.length - 1, 0) * 0.25, 5);\n    var mHi = Math.min(mLo + 1, 5);\n    var range;\n    if (lo === 0 && annual > 0) { range = fmt(annual) + '+ per year in serious cases'; }\n    else {\n      range = fmt(lo) + '\\u2013' + fmt(hi) + (plus ? '+' : '');\n      if (annual > 0) { range += ', plus ' + fmt(annual) + '+ per year in serious TBI cases'; }\n    }\n    var label = 2 >= labels.length ? labels.join(' and ')\n      : labels.slice(0, 2).join(', ') + ', and ' + (labels.length - 2) + ' more';\n    return { lo: lo, hi: hi, annual: annual, range: range, label: label,\n             count: sel.length, severe: severe, mLo: mLo, mHi: mHi,\n             noun: sel.length > 1 ? 'injuries' : 'injury' };\n  }\n  function bandStr(c) {\n    var lo = c.mLo.toFixed(2).replace(\/\\.?0+$\/, ''), hi = c.mHi.toFixed(2).replace(\/\\.?0+$\/, '');\n    return lo === hi ? '\\u00d7' + lo : '\\u00d7' + lo + '\\u2013\\u00d7' + hi;\n  }\n\n  \/* ---------- findings ---------- *\/\n  function row(status, statusClass, title, bodyHTML, noteHTML) {\n    var d = document.createElement('div');\n    d.className = 'soa-row';\n    d.innerHTML =\n      '<span class=\"soa-row-status ' + statusClass + '\">' + status + '<\/span>' +\n      '<div><h3>' + title + '<\/h3><div class=\"soa-row-body\">' + bodyHTML + '<\/div>' +\n      (noteHTML ? '<div class=\"soa-row-note\">' + noteHTML + '<\/div>' : '') + '<\/div>';\n    return d;\n  }\n\n  function compute() {\n    var rows = [];\n    var stops = 0, flags = 0;\n    var care = careProfile();\n\n    \/* A \u2014 MMI gate *\/\n    if (S.treatment === 'treating' || S.treatment === 'surgery') {\n      stops++;\n      rows.push(row('STOP', 'st-stop', 'The treatment gate ; failed',\n        'You told us treatment is not finished' + (S.treatment === 'surgery' ? ' and a procedure is on the table' : '') + '. That means the single largest variable in this claim ; <b>the cost of your future care<\/b> ; is still unknown. No competent evaluation of ' + (S.offer ? '<span class=\"money\">' + fmt(S.offer) + '<\/span>' : 'this offer') + ' is possible yet, and that is precisely <b>why the offer exists now<\/b>. Early offers are a timing strategy, not a valuation. For ' + care.noun + ' like yours ; ' + care.label + ' ; combined future care can run <b>' + care.range + '<\/b> ; money that becomes yours to pay the moment a release is signed.'));\n    } else if (S.treatment === 'unsure') {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The treatment gate ; unclear',\n        'You don\\u2019t yet have a doctor\\u2019s read on whether you\\u2019ve plateaued. Until that\\u2019s answered, future care ; for ' + care.noun + ' like yours, potentially ' + care.label + ' at a combined <b>' + care.range + '<\/b> ; can\\u2019t be priced, and neither can this offer. The medical answer has to come before the legal one.'));\n    } else {\n      rows.push(row('CHECKED', '', 'The treatment gate ; passed',\n        'Your treatment has stabilized, which means the offer can at least be evaluated on a known medical picture. That is the minimum condition ; the remaining checks decide whether the number itself holds up.'));\n    }\n\n    \/* B \u2014 lowball signature *\/\n    if (S.offer > 0 && S.bills > 0) {\n      var pain = S.offer - S.bills;\n      var billsPct = Math.min(S.bills \/ S.offer, 1) * 100;\n      var painPct = Math.max(100 - billsPct, 0);\n      var barHTML =\n        '<div class=\"soa-bar-wrap\"><div class=\"soa-bar\">' +\n        '<div class=\"soa-bar-bills\" data-w=\"' + billsPct.toFixed(1) + '\"><\/div>' +\n        '<div class=\"soa-bar-pain\" data-w=\"' + painPct.toFixed(1) + '\"><\/div>' +\n        '<\/div><div class=\"soa-bar-legend\">' +\n        '<span><span class=\"sw sw-bills\"><\/span>Medical bills ; ' + fmt(S.bills) + '<\/span>' +\n        '<span><span class=\"sw sw-pain\"><\/span>Everything else ; ' + fmt(Math.max(pain, 0)) + '<\/span>' +\n        '<\/div><\/div>';\n      if (0 >= pain) {\n        stops++;\n        rows.push(row('STOP', 'st-stop', 'The lowball signature ; below your receipts',\n          'The offer of <span class=\"money\">' + fmt(S.offer) + '<\/span> does not even cover the <span class=\"money\">' + fmt(S.bills) + '<\/span> in medical bills you entered. Everything else ; your pain, lost time, and future risk ; is priced at <b>zero or less<\/b>. Under the multiplier method insurers themselves use, ' + care.noun + ' like yours typically carry a pain multiple around <b>' + bandStr(care) + '<\/b> of medical bills ; this offer implies less than \\u00d70.' + barHTML));\n      } else {\n        var ratio = pain \/ S.bills;\n        var impl = '\\u00d7' + ratio.toFixed(1);\n        var band = bandStr(care);\n        if (Math.max(0.5, care.mLo * 0.6) > ratio) {\n          flags++;\n          rows.push(row('FLAG', 'st-flag', 'The lowball signature ; priced at ' + impl + ' against a typical ' + band,\n            'After your <span class=\"money\">' + fmt(S.bills) + '<\/span> in bills, this offer leaves <span class=\"money\">' + fmt(pain) + '<\/span> for everything else ; an implied pain multiple of <b>' + impl + '<\/b>. Under the multiplier method insurers themselves use, ' + care.count + ' ' + care.noun + ' at your severity level typically land around <b>' + band + '<\/b> of medical bills' + (care.count > 1 ? ' ; and each additional documented injury pushes the band higher' : '') + '. That gap is the white sliver below ; the number they hope you won\\u2019t isolate.' + barHTML,\n            'Multiplier bands are negotiation reference points, not entitlements ; where your case lands depends on documentation, and that is exactly what a demand letter argues.'));\n        } else {\n          rows.push(row('CHECKED', '', 'The lowball signature ; ' + impl + ' implied, within reach of ' + band,\n            'After bills of <span class=\"money\">' + fmt(S.bills) + '<\/span>, the offer allocates <span class=\"money\">' + fmt(pain) + '<\/span> beyond your receipts ; an implied multiple of <b>' + impl + '<\/b> against a typical <b>' + band + '<\/b> for ' + care.noun + ' like yours. The structure isn\\u2019t an obvious receipts-only offer ; whether it fully prices ' + (care.count > 1 ? 'every one of your ' + care.count + ' injuries' : 'your injury') + ' is a different question, and it lives in the release review.' + barHTML));\n        }\n      }\n    } else {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The lowball signature ; incomplete inputs',\n        'Without both the offer amount and your medical bills, the pain-and-suffering math can\\u2019t run. Gather your billing statements ; the gap between those two numbers is the first thing any attorney computes.'));\n    }\n\n    \/* C \u2014 fault discount audit *\/\n    if (S.fault === 'named') {\n      if (S.faultPct > 50) {\n        stops++;\n        rows.push(row('STOP', 'st-stop', 'The fault audit ; they\\u2019re claiming you\\u2019re barred',\n          'They\\u2019ve asserted you were <b>' + S.faultPct + '% at fault<\/b>. Under Texas\\u2019s modified comparative fault rule (the 51% bar, Civ. Prac. &amp; Rem. Code ch. 33), a claimant found more than 50% responsible recovers <b>nothing<\/b> ; which makes any offer paired with that assertion internally contradictory. Understand this clearly: <b>that percentage is their number, not a court\\u2019s finding.<\/b> Adjusters routinely inflate fault, and it is negotiable evidence-by-evidence. Do not accept a fault percentage as fact before it has been challenged.'));\n      } else if (S.faultPct > 0) {\n        flags++;\n        var gross = S.offer > 0 ? (S.offer * S.faultPct \/ (100 - S.faultPct)) : 0;\n        rows.push(row('FLAG', 'st-flag', 'The fault audit ; their ' + S.faultPct + '% has a price tag',\n          'Under Texas proportionate responsibility, every percentage point of fault comes off your recovery. If ' + (S.offer ? '<span class=\"money\">' + fmt(S.offer) + '<\/span>' : 'the offer') + ' already reflects a ' + S.faultPct + '% reduction, their assertion is worth roughly <span class=\"money\">' + (gross ? fmt(gross) : 'a proportional amount') + '<\/span> of your money.' +\n          ' And here is the point: <b>that ' + S.faultPct + '% is unproven.<\/b> It is an adjuster\\u2019s opening position, not a finding ; fault percentages move when the evidence is actually worked.'));\n      } else {\n        rows.push(row('CHECKED', '', 'The fault audit ; nothing asserted',\n          'They named 0%, so no fault discount is baked into the number. Keep it that way ; avoid recorded statements and casual concessions that could change it.'));\n      }\n    } else if (S.fault === 'unsure') {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The fault audit ; watch for the quiet discount',\n        'They\\u2019ve hinted at shared blame without naming a number. That is often a discount being built in silence. Under Texas\\u2019s 51% bar, fault percentages have direct dollar value ; before any release is signed, force the question: <b>what percentage are you claiming, and on what evidence?<\/b>'));\n    } else {\n      rows.push(row('CHECKED', '', 'The fault audit ; clean',\n        'Fault isn\\u2019t disputed, so the offer shouldn\\u2019t carry a comparative-fault discount. One less place for the number to hide a reduction.'));\n    }\n\n    \/* C2 \u2014 coverage ceiling (defendant type) *\/\n    if (S.vehicle === 'commercial') {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The coverage ceiling ; a commercial defendant changes the math',\n        'An 18-wheeler or commercial vehicle means the usual policy ceiling does not apply: interstate carriers are federally required to carry at least <b>$750,000<\/b> in liability coverage, and $1,000,000+ policies are common. Two consequences. First, an offer here is <b>not constrained by a small personal-auto policy<\/b> ; the ceiling argument adjusters lean on is largely gone. Second, the carrier\\u2019s rapid-response team is likely working the crash <b>right now<\/b>: ECM\/EDR \"black box\" data, dashcam footage, and driver logs can be legally overwritten within days unless a preservation demand lands first. Every day before that letter goes out is evidence the offer never has to answer for.',\n        'Resolved commercial cases compare very differently to personal-auto cases ; see how built cases have resolved, below.'));\n    } else if (S.vehicle === 'rideshare') {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The coverage ceiling ; which policy is even in play?',\n        'Rideshare coverage depends on what the driver\\u2019s app was doing at the moment of the crash ; commercial policies that can reach <b>$1,000,000<\/b> may apply when a ride is in progress, while other periods fall to smaller coverage. Before any offer can be judged, the question is whether it\\u2019s coming from the <b>right policy at all<\/b>. Run the periods through the firm\\u2019s <a href=\"https:\/\/severeinjurylawyers.com\/rideshare-insurance-coverage-tool\/\" style=\"color:var(--gold);border-bottom:1px solid var(--gold);\">Uber &amp; Lyft coverage tool<\/a>, then get the app data preserved ; it, too, can disappear.'));\n    } else if (S.vehicle === 'personal') {\n      if (S.offer >= 25000 && 35000 >= S.offer) {\n        flags++;\n        rows.push(row('FLAG', 'st-flag', 'The coverage ceiling ; this looks like a limits number',\n          'Texas minimum liability coverage is <b>$30,000 per person<\/b> ; and your offer of <span class=\"money\">' + fmt(S.offer) + '<\/span> sits right at that ceiling. That pattern often means a <b>policy-limits tender<\/b>. Two cautions: demand written proof of the actual limits before treating the ceiling as real, and know that a limits offer paired with a broad release can extinguish your claims against <b>other sources<\/b> ; your own UM\/UIM and PIP coverage, or additional defendants. The policy being small does not mean the recovery has to be.'));\n      } else {\n        rows.push(row('CHECKED', '', 'The coverage ceiling ; know every policy in play',\n          'With a personal vehicle on the other side, the at-fault policy may be as small as Texas\\u2019s 30\/60\/25 minimums. If the injury outruns that policy, your own <b>UM\/UIM and PIP<\/b> coverage ; which Texas insurers must offer, and which is only validly rejected in writing ; may be the real recovery source. Most people have never checked.'));\n      }\n    } else if (S.vehicle === 'other') {\n      rows.push(row('CHECKED', '', 'The coverage ceiling ; identify the defendant first',\n        'Not knowing what hit you is worth resolving fast: a vehicle driven on the job can put an <b>employer\\u2019s policy<\/b> in play, which changes both the coverage and the offer math. Until every potential defendant and policy is identified, no offer can be measured against what\\u2019s actually available.'));\n    }\n\n    \/* D \u2014 release scope *\/\n    if (S.release === 'yes') {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The release ; the document that ends everything',\n        'You have the paperwork ; good, because <b>the release is the decision, not the number<\/b>. A standard Texas release extinguishes all claims, against all parties, <b>known and unknown<\/b>. If ' + (care.severe ? care.noun + ' like yours progress ; ' + care.label + ' can run a combined <b>' + care.range + '<\/b> ; ' : 'a late-appearing injury surfaces ; ') + 'that cost is yours the moment you sign. Read the scope clause closely: language limited to <b>claims against the at-fault driver and their insurer<\/b> is normal ; \\u201call claims arising from the incident\\u201d can silently waive your own UM\/UIM and PIP claims. Watch also for indemnification clauses that make you personally repay missed liens.',\n        'This is the single highest-value document to have an attorney read ; it takes minutes and it is free.'));\n    } else {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The release ; you haven\\u2019t seen the terms',\n        'You have a number but not the document. <b>Never evaluate an offer without the written release in hand<\/b> ; the scope of what you\\u2019re giving up, indemnification language, and lien handling all live in that paperwork, not in the dollar figure. Request it in writing before responding to anything.'));\n    }\n\n    \/* E \u2014 timing *\/\n    if (S.early === 'yes') {\n      flags++;\n      rows.push(row('FLAG', 'st-flag', 'The timing tell ; a fast offer',\n        'This offer arrived within roughly 30 days of the crash ; before most injuries are fully diagnosed and before your claim\\u2019s value can be known. Fast offers are made <b>because<\/b> the picture is incomplete, not despite it. Speed is their advantage; deliberation is yours. In most Texas injury cases you have two years to file suit ; you almost never need to decide this week.'));\n    } else {\n      rows.push(row('CHECKED', '', 'The timing tell ; not a rush job',\n        'The offer didn\\u2019t arrive in the first-month window where quick-settlement tactics live. Timing looks ordinary ; the substance checks above carry the weight.'));\n    }\n\n    \/* ---------- verdict ---------- *\/\n    var stampEl = $('#soaStamp');\n    var whyEl = $('#soaWhy');\n    var verdict, why, tier;\n    if (stops > 0) {\n      verdict = 'Do not sign yet';\n      tier = 'stop';\n      why = 'At least one <b>hard stop<\/b> came up: ' +\n        (S.treatment === 'treating' || S.treatment === 'surgery' ? 'your treatment isn\\u2019t finished, so the biggest number in this claim is still unknown. ' : '') +\n        (S.fault === 'named' && S.faultPct > 50 ? 'They\\u2019re asserting a fault percentage that would bar your recovery entirely ; a claim that must be challenged, not accepted. ' : '') +\n        (S.offer > 0 && S.bills > 0 && S.bills >= S.offer ? 'The offer doesn\\u2019t clear your medical bills. ' : '') +\n        'Nothing here says the case is bad ; it says this offer, today, cannot be responsibly accepted as-is. Signing converts an open question into a permanent answer.';\n    } else if (flags > 0) {\n      verdict = 'Caution ; gaps found';\n      tier = 'caution';\n      why = 'No hard stop, but <b>' + flags + (flags === 1 ? ' item' : ' items') + ' flagged above<\/b> deserve an answer before anyone signs ; and every one of them is the kind of thing a free attorney review resolves in a single conversation. The number may be workable; the open questions are what decide it.';\n    } else {\n      verdict = 'Structure looks sound ; verify the release';\n      tier = 'sound';\n      why = 'On what you entered, the offer\\u2019s <b>structure<\/b> passes the first-pass checks: treatment is stable, the math isn\\u2019t receipts-only, and no fault discount is hiding in it. What this tool cannot do is read the release ; the scope, indemnification, and lien language in that document are what actually end or protect your rights. Have it read before you sign. It costs nothing.';\n    }\n    return { rows: rows, verdict: verdict, tier: tier, why: why, stampEl: stampEl, whyEl: whyEl };\n  }\n\n  \/* ---------- hero + stats + verdict + net (recomputed live) ---------- *\/\n  function fmtK(n) {\n    if (n >= 1000000) { return '$' + (n \/ 1000000).toFixed(n % 1000000 ? 2 : 0).replace(\/\\.00$\/, '') + 'M'; }\n    return fmt(n);\n  }\n  function renderLive(result, restamp) {\n    \/* hero: what the offer prices your pain at *\/\n    var heroCard = $('#soaHeroCard');\n    var pain = S.offer - S.bills;\n    if (S.offer > 0 && S.bills > 0) {\n      $('#soaHeroK').textContent = 'What this offer prices your pain at';\n      $('#soaHeroSign').textContent = pain >= 0 ? '+' : '\\u2212';\n      $('#soaHeroNum').textContent = fmt(Math.abs(pain)).replace('$', '$');\n      heroCard.classList.toggle('is-neg', 0 >= pain);\n      $('#soaHeroSub').innerHTML = pain > 0\n        ? 'That\\u2019s everything beyond your <b>' + fmt(S.bills) + '<\/b> in medical bills ; the total this offer allocates to your pain, lost time, and future risk, combined.'\n        : 'This offer sits <b>' + fmt(Math.abs(pain)) + ' below your medical bills alone<\/b> ; your pain, lost time, and future risk are priced at less than zero.';\n    } else {\n      $('#soaHeroK').textContent = 'Gross offer on the table';\n      $('#soaHeroSign').textContent = '';\n      $('#soaHeroNum').textContent = S.offer > 0 ? fmt(S.offer) : '\\u2014';\n      heroCard.classList.remove('is-neg');\n      $('#soaHeroSub').innerHTML = 'Enter both the offer and your medical bills to see what the offer prices your pain at.';\n    }\n    heroCard.classList.remove('is-pop');\n    void heroCard.offsetWidth; \/* restart animation *\/\n    heroCard.classList.add('is-pop');\n\n    \/* stat strip *\/\n    $('#stGross').textContent = S.offer > 0 ? fmtK(S.offer) : '\\u2014';\n    $('#stBills').textContent = S.bills > 0 ? fmtK(S.bills) : '\\u2014';\n    var faultCost = (S.fault === 'named' && S.faultPct > 0 && S.offer > 0 && 50 >= S.faultPct)\n      ? S.offer * S.faultPct \/ (100 - S.faultPct) : 0;\n    $('#stFault').textContent = (S.fault === 'named' && S.faultPct > 50) ? 'BARRED*'\n      : (faultCost > 0 ? '\\u2212' + fmtK(faultCost) : '$0');\n    var cp = careProfile();\n    var bandS = bandStr(cp);\n    $('#stMult').innerHTML = (S.offer > 0 && S.bills > 0)\n      ? '\\u00d7' + (Math.max(S.offer - S.bills, 0) \/ S.bills).toFixed(1) + '<em>vs ' + bandS + '<\/em>'\n      : '\\u2014';\n    $('#stFee').textContent = S.offer > 0 ? '\\u2212' + fmtK(S.offer \/ 3) : '\\u2014';\n\n    \/* verdict stamp + why *\/\n    result.stampEl.textContent = result.verdict;\n    result.whyEl.innerHTML = result.why;\n    if (restamp) {\n      result.stampEl.classList.remove('is-stamped');\n      void result.stampEl.offsetWidth;\n      result.stampEl.classList.add('is-stamped');\n    }\n\n    \/* net reality panel *\/\n    var netBox = $('#soaNet');\n    if (S.offer > 0) {\n      $('#soaNetRows').innerHTML =\n        '<div class=\"soa-net-row\"><span>Gross offer on the table<\/span><span class=\"money\">' + fmt(S.offer) + '<\/span><\/div>' +\n        '<div class=\"soa-net-row\"><span>A typical one-third contingency fee would be<\/span><span>&minus; ' + fmt(S.offer \/ 3) + '<\/span><\/div>' +\n        '<div class=\"soa-net-row\"><span>Case expenses<\/span><span>&minus; varies<\/span><\/div>' +\n        '<div class=\"soa-net-row\"><span>Medical liens &amp; subrogation ; <b>before negotiation<\/b><\/span><span>&minus; often the largest variable<\/span><\/div>' +\n        '<div class=\"soa-net-row is-em\"><span>What lands in your pocket<\/span><span>decided by the lines above ; not the headline<\/span><\/div>';\n      netBox.hidden = false;\n    } else { netBox.hidden = true; }\n  }\n\n  function renderRows(rows, stagger) {\n    var ledger = $('#soaLedger');\n    ledger.innerHTML = '';\n    rows.forEach(function (r) { ledger.appendChild(r); });\n    if (stagger) {\n      var delay = 250;\n      $all('.soa-row', ledger).forEach(function (r) {\n        setTimeout(function () {\n          r.classList.add('is-in');\n          $all('[data-w]', r).forEach(function (seg) { seg.style.width = seg.getAttribute('data-w') + '%'; });\n        }, delay);\n        delay += 300;\n      });\n      return delay;\n    }\n    $all('.soa-row', ledger).forEach(function (r) {\n      r.classList.add('is-in');\n      $all('[data-w]', r).forEach(function (seg) {\n        seg.style.transition = 'none';\n        seg.style.width = seg.getAttribute('data-w') + '%';\n      });\n    });\n    return 0;\n  }\n\n  function analyze() {\n    var result = compute();\n    \/* sync scenario sliders to entered values *\/\n    var so = $('#scnOffer'), sf = $('#scnFault');\n    so.max = Math.max(500000, Math.ceil(S.offer * 2 \/ 2500) * 2500);\n    so.value = S.offer; sf.value = (S.fault === 'named') ? S.faultPct : 0;\n    paintScn();\n\n    findings.classList.add('is-active');\n    steps.forEach(function (s) { s.classList.remove('is-active'); });\n    progress.style.width = '100%';\n\n    var delay = renderRows(result.rows, true);\n    renderLive(result, false);\n    updateRail();\n    setTimeout(function () {\n      var v = $('#soaVerdict');\n      v.classList.add('is-in');\n      result.stampEl.classList.add('is-stamped');\n      track('soa_verdict_rendered', result.tier);\n    }, delay + 250);\n  }\n\n  \/* ---------- findings rail nav ---------- *\/\n  var rail = $('#soaLedger');\n  function railCardW() {\n    var c = rail.querySelector('.soa-row');\n    return c ? c.getBoundingClientRect().width + 10 : 320;\n  }\n  function updateRail() {\n    var total = rail.querySelectorAll('.soa-row').length;\n    $('#railTotal').textContent = (10 > total ? '0' : '') + total;\n    var at = Math.min(Math.round(rail.scrollLeft \/ railCardW()) + 1, total) || 1;\n    $('#railAt').textContent = (10 > at ? '0' : '') + at;\n  }\n  rail.addEventListener('scroll', function () { window.requestAnimationFrame(updateRail); }, { passive: true });\n  $('#railPrev').addEventListener('click', function () { rail.scrollBy({ left: -railCardW(), behavior: 'smooth' }); });\n  $('#railNext').addEventListener('click', function () { rail.scrollBy({ left: railCardW(), behavior: 'smooth' }); });\n\n  \/* ---------- scenario sliders: live recompute ---------- *\/\n  function paintScn() {\n    var so = $('#scnOffer'), sf = $('#scnFault');\n    so.style.setProperty('--fill', (so.value \/ so.max * 100) + '%');\n    sf.style.setProperty('--fill', sf.value + '%');\n    $('#scnOfferVal').textContent = fmtK(parseInt(so.value, 10) || 0);\n    $('#scnFaultVal').innerHTML = (parseInt(sf.value, 10) || 0) + '<em>%<\/em>';\n  }\n  var scnTick = false;\n  function onScenario() {\n    if (scnTick) { return; }\n    scnTick = true;\n    window.requestAnimationFrame(function () {\n      scnTick = false;\n      var so = $('#scnOffer'), sf = $('#scnFault');\n      S.offer = parseInt(so.value, 10) || 0;\n      var f = parseInt(sf.value, 10) || 0;\n      S.faultPct = f;\n      S.fault = f > 0 ? 'named' : (S.fault === 'named' ? 'none' : S.fault);\n      paintScn();\n      var result = compute();\n      var keep = rail.scrollLeft;\n      renderRows(result.rows, false);\n      rail.scrollLeft = keep;\n      renderLive(result, true);\n      updateRail();\n    });\n  }\n  $('#scnOffer').addEventListener('input', onScenario);\n  $('#scnFault').addEventListener('input', onScenario);\n\n  $('#soaFinish').addEventListener('click', function () {\n    if (this.disabled) { return; }\n    analyze();\n  });\n\n  \/* restart: clean slate (memory only, by design) *\/\n  $('#soaRestart').addEventListener('click', function () {\n    S = { offer: 0, bills: 0, treatment: '', injuries: [], vehicle: '', fault: '', faultPct: 20, early: '', release: '' };\n    $('#inOffer').value = ''; $('#inBills').value = '';\n    $all('.soa-chip').forEach(function (c) { c.classList.remove('is-on'); if (c.hasAttribute('aria-pressed')) { c.setAttribute('aria-pressed','false'); } });\n    $all('[data-next], #soaFinish').forEach(function (b) {\n      var step = b.closest('.soa-step');\n      if (step && step.querySelector('.soa-chips')) { b.disabled = true; }\n    });\n    $('#soaFaultBox').classList.remove('is-open');\n    range.value = 20; paintRange();\n    $('#soaVerdict').classList.remove('is-in');\n    $('#soaStamp').classList.remove('is-stamped');\n    show(1);\n  });\n\n  \/* CTA tracking (event name only; no data) *\/\n  $all('[data-soa-cta]').forEach(function (a) {\n    a.addEventListener('click', function () { track('soa_cta_clicked'); });\n  });\n\n  \/* ============================================================\n     v2 STUB \u2014 \"Paste your release\" AI review.\n     Requires the stateless API proxy discussed in planning\n     (no logging, no retention, client-side redaction) before\n     this section is enabled. Do not wire directly to any API\n     with a key in client code.\n  ============================================================ *\/\n  } \/* end main(root) *\/\n\n  \/* boot now (idempotent), again on DOM ready, and once more late\n     (covers delayed-JS plugins, builder re-mounts, lazy render) *\/\n  boot();\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', boot); }\n  setTimeout(boot, 800);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Tool script has not started. If this message stays visible after the page loads, the JavaScript was blocked ; usually a caching, security, or optimization plugin. Screenshot this box. Free ToolSettlement Offer Analyzer ; Texas Should you sign this offer? The checks an attorney runs on an offer ; run on your device. Nothing you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2555,"parent":1711,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"_seopress_titles_title":"Should I Sign This Settlement Offer? Free Texas Analyzer","_seopress_titles_desc":"Got a settlement offer after a car accident? Run the checks, a Texas attorney runs fault, lowball math, the release is free, private, and nothing is stored.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"_gspb_post_css":"","footnotes":""},"class_list":["post-2541","page","type-page","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/pages\/2541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/comments?post=2541"}],"version-history":[{"count":9,"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/pages\/2541\/revisions"}],"predecessor-version":[{"id":2577,"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/pages\/2541\/revisions\/2577"}],"up":[{"embeddable":true,"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/pages\/1711"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/media\/2555"}],"wp:attachment":[{"href":"https:\/\/severeinjurylawyers.com\/es\/wp-json\/wp\/v2\/media?parent=2541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}