/* claimscout landing pages - distinct visual identity per tort.
 * One stylesheet, palette swapped via [data-palette="..."] on <html>.
 * Avoid em dashes in any visible string. Periods, commas, parens only.
 */

:root {
  --bg:        #ffffff;
  --bg-soft:   #f5f7fb;
  --bg-card:   #ffffff;
  --fg:        #0f172a;
  --fg-dim:    #475569;
  --fg-muted:  #94a3b8;
  --border:    #e5e7eb;
  --accent:    #047857;
  --accent-d:  #065f46;
  --urgent:    #b91c1c;
  --urgent-bg: #fef2f2;
  --warn:      #b45309;
  --info:      #1e40af;
  --hero-bg:   linear-gradient(180deg, #ffffff, #f8fafc);
}

/* ---- per-tort palettes ---- */

[data-palette="medical"] {
  --accent:    #0369a1;
  --accent-d:  #075985;
  --hero-bg:   linear-gradient(180deg, #ffffff, #ecfeff);
  --bg-soft:   #f0f9ff;
}

[data-palette="trauma_informed"] {
  --accent:    #6d28d9;
  --accent-d:  #581c87;
  --hero-bg:   linear-gradient(180deg, #fafafa, #faf5ff);
  --bg-soft:   #f5f3ff;
  --fg-dim:    #525252;
}

[data-palette="military"] {
  --accent:    #4d5a3a;
  --accent-d:  #3a4530;
  --hero-bg:   linear-gradient(180deg, #fdfdf6, #f1f3e0);
  --bg-soft:   #f5f5dc;
  --fg:        #1a2e0e;
}

[data-palette="beauty_inverted"] {
  --accent:    #be185d;
  --accent-d:  #9d174d;
  --hero-bg:   linear-gradient(180deg, #ffffff, #fdf2f8);
  --bg-soft:   #fdf2f8;
}

[data-palette="tech"] {
  --accent:    #18181b;
  --accent-d:  #000000;
  --hero-bg:   linear-gradient(180deg, #ffffff, #f4f4f5);
  --bg-soft:   #f4f4f5;
}

[data-palette="education"] {
  --accent:    #b45309;
  --accent-d:  #92400e;
  --hero-bg:   linear-gradient(180deg, #ffffff, #fffbeb);
  --bg-soft:   #fef3c7;
}

[data-palette="alert"] {
  --accent:    #b91c1c;
  --accent-d:  #7f1d1d;
  --hero-bg:   linear-gradient(180deg, #ffffff, #fef2f2);
  --bg-soft:   #fee2e2;
}

/* ---- base ---- */

* { box-sizing: border-box; }

html, body {
  margin: 0; padding: 0;
  background: var(--bg); color: var(--fg);
  font: 16px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
        "Helvetica Neue", Arial, sans-serif;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { color: var(--fg); line-height: 1.18; letter-spacing: -0.01em; }
h1 { font-size: clamp(28px, 4vw, 44px); font-weight: 800; margin: 12px 0; }
h2 { font-size: 22px; font-weight: 700; margin: 28px 0 14px; }
h3 { font-size: 17px; font-weight: 700; margin: 14px 0 8px; }

.muted { color: var(--fg-muted); }

/* ============================================================
 * Inline emphasis. Old-internet direct-response styling, modernized.
 * Use sparingly: one .hl per paragraph max, two per H1.
 * ============================================================ */

/* Yellow Sharpie highlight, the most-converting visual emphasis on the
 * web. Reserve for emotional/financial triggers. */
.hl {
  background: linear-gradient(180deg, transparent 60%, #fef08a 60%);
  padding: 0 2px;
}
[data-palette="trauma_informed"] .hl {
  /* trauma-informed pages get a softer, less alarming highlight */
  background: linear-gradient(180deg, transparent 60%, #ddd6fe 60%);
}

/* Money in green, bold, with optional starburst on real numbers. */
.hl-money {
  color: #047857;
  font-weight: 800;
  white-space: nowrap;
}

/* Urgency / danger / disease names. Use for one or two phrases per page. */
.hl-warn {
  color: #b91c1c;
  font-weight: 700;
}

/* Case name / brand small-caps. For "MDL 3094", "PACT Act", etc. */
.hl-mark {
  font-variant: small-caps;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-bottom: 2px solid var(--fg);
}

/* Black bold + thin underline. Use for company names being sued. */
.hl-target {
  font-weight: 800;
  border-bottom: 1px solid currentColor;
}
/* When hl-target is an anchor link (jumps to the matching defendant card),
 * override default link styling so it keeps the same visual weight as the
 * span version. The .section a / .hero a / .pullquote a global rules would
 * otherwise paint it blue. */
a.hl-target,
.section a.hl-target,
.hero a.hl-target,
.pullquote a.hl-target {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s;
}
a.hl-target:hover,
.section a.hl-target:hover,
.hero a.hl-target:hover {
  background: var(--bg-soft);
  border-radius: 2px;
  text-decoration: none;
}

/* Big drop-cap on opening narrative paragraph. Old-school newspaper feel. */
.dropcap::first-letter {
  float: left;
  font-family: Georgia, "Iowan Old Style", "Charter", serif;
  font-size: 3.6em;
  line-height: 0.9;
  font-weight: 700;
  margin: 6px 8px 0 0;
  color: var(--accent);
}

/* Old-school divider rule. Insert between hero and narrative. */
.divider-rule {
  display: flex; align-items: center; gap: 14px;
  text-align: center; color: var(--fg-muted);
  font-size: 11px; letter-spacing: 0.3em;
  text-transform: uppercase; font-weight: 700;
  margin: 32px auto;
  max-width: 760px;
}
.divider-rule::before,
.divider-rule::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}

/* Pull-quote box with thick accent bar (web 1.0 styled). */
.pullquote {
  border-left: 6px solid var(--accent);
  padding: 12px 0 12px 20px;
  margin: 22px 0;
  background: var(--bg-soft);
  border-radius: 0 8px 8px 0;
  font-size: 17px;
  line-height: 1.6;
  color: var(--fg);
}
.pullquote strong { color: var(--accent-d); }

/* Drop shadow on the big numbers in live signals (more punch). */
.signal-num { text-shadow: 1px 1px 0 rgba(0,0,0,0.06); }

/* Underlined links, web 1.0 trustworthy. Only inside narrative + FAQ. */
.section a, .faq a, .pullquote a {
  color: #1d4ed8;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.section a:hover, .faq a:hover { color: #1e3a8a; }

/* "FREE" inline stamp. Old-internet flash. */
.stamp-free {
  display: inline-block;
  background: #fbbf24; color: #18181b;
  padding: 2px 10px; border-radius: 3px;
  font-weight: 800; font-size: 0.85em;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transform: rotate(-2deg);
  border: 2px solid #18181b;
  box-shadow: 2px 2px 0 #18181b;
}

/* ---- per-tort typography ---- */

/* Camp Lejeune: serif everywhere, government-document feel. */
[data-palette="military"] h1,
[data-palette="military"] h2,
[data-palette="military"] .narrative {
  font-family: Georgia, "Iowan Old Style", "Charter", "Times New Roman", serif;
}
[data-palette="military"] .kicker {
  font-family: Georgia, serif;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0.02em;
}

/* Hair relaxer: editorial sans, newspaper-magazine. Sober, not pink-magazine. */
[data-palette="beauty_inverted"] h1,
[data-palette="beauty_inverted"] h2 {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* Tech (Google): mono accent on H1 to feel official-engineered. */
[data-palette="tech"] .kicker {
  font-family: "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
}
[data-palette="tech"] .pullquote {
  font-family: "SF Mono", Menlo, Consolas, monospace;
  font-size: 14px;
}

/* Education (PowerSchool): friendly approachable; bigger H1, school-vibes. */
[data-palette="education"] h1 {
  font-weight: 800;
  letter-spacing: -0.015em;
}

/* Alert (Data breach): condensed, urgent, news-flash feel. */
[data-palette="alert"] h1 {
  font-family: "Helvetica Neue Condensed", "Arial Narrow", sans-serif;
  font-weight: 800;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  font-size: clamp(28px, 5vw, 50px);
}

/* ---- top free-strip + header ---- */

.free-strip {
  background: var(--accent); color: #fff;
  text-align: center; font-weight: 700; font-size: 13px;
  padding: 8px 16px; letter-spacing: 0.02em;
}
.lp-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 22px; max-width: 1200px; margin: 0 auto;
  border-bottom: 1px solid var(--border);
}
.lp-brand { font-weight: 800; color: var(--fg); font-size: 17px; }
.lp-meta { color: var(--fg-muted); font-size: 13px; }

/* ---- hero ---- */

.hero { background: var(--hero-bg); }
.hero-grid {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 36px;
  max-width: 1200px; margin: 0 auto;
  padding: 36px 22px 56px;
}
@media (max-width: 880px) {
  .hero-grid { grid-template-columns: 1fr; gap: 22px; }
}

.kicker {
  display: inline-block;
  background: var(--accent); color: #fff;
  text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 11px; font-weight: 700;
  padding: 4px 10px; border-radius: 4px;
  margin-bottom: 12px;
}

.hero-copy .sub {
  font-size: 17px; color: var(--fg-dim);
  max-width: 560px; line-height: 1.6;
}

/* live signals */
.live-signals {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px; margin: 22px 0;
}
.signal {
  background: #ffffff; border: 1px solid var(--border);
  border-radius: 8px; padding: 10px 14px;
  display: flex; flex-direction: column;
}
.signal.urgent { border-color: var(--urgent); background: var(--urgent-bg); }
.signal-num   { font-size: 22px; font-weight: 800; color: var(--accent); }
.signal.urgent .signal-num { color: var(--urgent); }
.signal-label { font-size: 12px; color: var(--fg-dim); margin-top: 2px; }

/* founder note */
.founder {
  display: flex; gap: 14px; margin-top: 22px;
  padding: 14px; background: #ffffff; border-radius: 10px;
  border: 1px solid var(--border);
  max-width: 560px;
}
.founder-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--accent); color: #fff;
  display: grid; place-items: center;
  font-weight: 800; font-size: 18px;
  flex-shrink: 0;
}
.founder-note strong { font-size: 13px; }
.founder-note p { margin: 2px 0 0; font-size: 14px; color: var(--fg-dim); }

/* ---- quiz ---- */

.quiz {
  background: #ffffff; border: 1px solid var(--border);
  border-radius: 12px; padding: 22px;
  align-self: start;
  box-shadow: 0 4px 20px rgba(15,23,42,0.06);
}
.quiz h2 { margin: 0 0 14px; font-size: 19px; }
.quiz fieldset.q { border: 0; padding: 0; margin: 0; }
.quiz legend {
  font-size: 14px; font-weight: 600; color: var(--fg);
  padding: 0; margin-bottom: 12px; line-height: 1.45;
}
.q-options { display: grid; gap: 8px; }
.q-opt {
  appearance: none; background: var(--bg-soft); color: var(--fg);
  border: 1px solid var(--border); border-radius: 8px;
  padding: 12px 14px; font: inherit;
  cursor: pointer; text-align: left; transition: all 0.12s;
}
.q-opt:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
.q-opt:active { transform: translateY(1px); }

.final-form input,
.final-form select {
  width: 100%; padding: 11px 12px; margin-bottom: 8px;
  border: 1px solid var(--border); border-radius: 8px;
  font: inherit; background: #ffffff; color: var(--fg);
}
.final-form input:focus,
.final-form select:focus {
  outline: 2px solid var(--accent); outline-offset: 1px;
}
.consent {
  display: flex; gap: 10px; align-items: flex-start;
  font-size: 12px; color: var(--fg-dim);
  margin: 14px 0; line-height: 1.5;
}
.consent input { margin-top: 3px; }

.submit {
  appearance: none; width: 100%;
  background: var(--accent); color: #fff;
  border: none; border-radius: 8px;
  padding: 14px; font: inherit; font-weight: 700; font-size: 15px;
  cursor: pointer;
}
.submit:hover { background: var(--accent-d); }
.submit:disabled { background: var(--fg-muted); cursor: not-allowed; }

.alt-cta {
  display: inline-block; margin-top: 12px;
  color: var(--accent); font-weight: 600;
}

.dq, .success {
  text-align: left;
}
.success p { color: var(--fg); }

/* ---- sections ---- */

.section {
  max-width: 1200px; margin: 0 auto; padding: 36px 22px;
}
.section.ads { background: var(--bg-soft); border-radius: 12px; }
.narrative {
  font-size: 16px; color: var(--fg-dim);
  max-width: 760px; line-height: 1.7;
}

/* ---- competitor ad scroller ---- */

.ad-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px; margin-top: 16px;
}
.ad-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: 10px; overflow: hidden;
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit;
  transition: transform 0.1s, box-shadow 0.1s;
}
.ad-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(15,23,42,0.08);
  text-decoration: none;
}
.ad-card img {
  width: 100%; height: 200px; object-fit: cover; display: block;
}
.ad-meta {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 12px; border-top: 1px solid var(--border);
  font-size: 12px; color: var(--fg-dim);
}
.ad-meta strong { color: var(--fg); font-size: 13px; }
.ad-body {
  padding: 8px 12px 14px; margin: 0;
  font-size: 13px; color: var(--fg-dim); line-height: 1.5;
}

/* ---- settlement card ---- */
.settlement-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: 10px; padding: 22px;
  max-width: 760px;
}
.settlement-card dl {
  display: grid; grid-template-columns: max-content 1fr;
  gap: 8px 22px; margin: 14px 0;
}
.settlement-card dt { font-weight: 600; color: var(--fg-dim); }
.settlement-card dd { margin: 0; }

/* ---- FAQ ---- */
.faq details {
  border-bottom: 1px solid var(--border);
  padding: 14px 0;
}
.faq summary {
  font-weight: 600; cursor: pointer; list-style: none;
  display: flex; justify-content: space-between; align-items: center;
}
.faq summary::after { content: "+"; font-size: 22px; color: var(--fg-muted); }
.faq details[open] summary::after { content: "-"; }
.faq details p { margin: 8px 0 0; color: var(--fg-dim); font-size: 15px; line-height: 1.6; }

/* ---- footer ---- */
.lp-footer { background: var(--bg-soft); margin-top: 56px; padding: 36px 0 18px; }
.lp-footer-cols {
  max-width: 1200px; margin: 0 auto; padding: 0 22px;
  display: grid; grid-template-columns: 2fr 1fr; gap: 22px;
}
.lp-footer-cols a { display: block; color: var(--fg-dim); margin-bottom: 6px; font-size: 14px; }
.lp-fineprint {
  max-width: 1200px; margin: 22px auto 0; padding: 18px 22px 0;
  border-top: 1px solid var(--border);
  color: var(--fg-muted); font-size: 12px; line-height: 1.6;
}
@media (max-width: 720px) { .lp-footer-cols { grid-template-columns: 1fr; } }

/* ============================================================
 * Data-rich LP sections: stats bar, evidence, timeline, eligibility.
 * Rendered conditionally in lp.html (only when the page config supplies
 * the data). Themed via the same palette vars, so each tort inherits its
 * accent. Avoid em dashes in visible strings (handled in lp.py).
 * ============================================================ */

/* Key-stats bar (the overwhelming numbers, full-bleed band). */
.lp-stats-section { background: var(--bg-soft); border-block: 1px solid var(--border); }
.lp-stats-grid {
  max-width: 1200px; margin: 0 auto; padding: 28px 22px;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 18px;
}
.lp-stat {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 10px; padding: 18px 16px; text-align: center;
}
.lp-stat-num {
  display: block; font-size: clamp(26px, 3.4vw, 38px);
  font-weight: 800; color: var(--accent); line-height: 1.1;
  letter-spacing: -0.02em;
}
.lp-stat-label {
  display: block; margin-top: 8px;
  font-size: 13px; color: var(--fg-dim); line-height: 1.45;
}

/* The evidence: cited findings, accent-barred cards. */
.lp-evidence-list { list-style: none; padding: 0; margin: 18px 0 0; max-width: 820px; }
.lp-evidence-list li {
  border-left: 4px solid var(--accent);
  background: var(--bg-soft); border-radius: 0 8px 8px 0;
  padding: 14px 18px; margin-bottom: 12px;
}
.lp-evidence-list strong { display: block; color: var(--fg); font-size: 15px; margin-bottom: 4px; }
.lp-evidence-list span   { display: block; color: var(--fg-dim); font-size: 14px; line-height: 1.6; }
.lp-evidence-list cite {
  display: block; margin-top: 6px; font-style: normal;
  font-size: 12px; color: var(--fg-muted); letter-spacing: 0.01em;
}

/* Litigation timeline: vertical dotted rail with dated nodes. */
.lp-timeline { list-style: none; padding: 0; margin: 18px 0 0; max-width: 820px; }
.lp-timeline li {
  position: relative; padding: 0 0 18px 26px;
  border-left: 2px solid var(--border); margin-left: 6px;
}
.lp-timeline li:last-child { border-left-color: transparent; padding-bottom: 0; }
.lp-timeline li::before {
  content: ''; position: absolute; left: -7px; top: 3px;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--accent); border: 2px solid var(--bg);
}
.lp-timeline-date {
  display: block; font-size: 12px; font-weight: 700;
  color: var(--accent-d); text-transform: uppercase; letter-spacing: 0.04em;
}
.lp-timeline-event { display: block; color: var(--fg-dim); font-size: 15px; line-height: 1.6; margin-top: 2px; }

/* Eligibility: three columns (qualify / borderline / excluded). */
.lp-elig-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px; margin-top: 18px;
}
.lp-elig-col {
  border: 1px solid var(--border); border-radius: 10px;
  padding: 16px 18px; background: var(--bg-card);
}
.lp-elig-col h3 { margin: 0 0 10px; font-size: 15px; }
.lp-elig-col ul { margin: 0; padding-left: 18px; }
.lp-elig-col li { font-size: 14px; color: var(--fg-dim); line-height: 1.55; margin-bottom: 7px; }
.lp-elig-yes   { border-top: 3px solid var(--accent); }
.lp-elig-yes h3   { color: var(--accent-d); }
.lp-elig-maybe { border-top: 3px solid var(--warn); }
.lp-elig-maybe h3 { color: var(--warn); }
.lp-elig-no    { border-top: 3px solid var(--fg-muted); }
.lp-elig-no h3    { color: var(--fg-dim); }

@media (max-width: 720px) { .lp-timeline li { padding-left: 22px; } }

/* ============================================================
 * Deep LP sections — the funnel content blocks that turn this
 * from a 22 KB widget page into an industry-standard mass-tort LP.
 *
 *   recent updates | injuries covered | products named | defendants
 *   mid-page CTA   | compensation table | how it works | SOL urgency
 *   attorney trust | sticky mobile CTA
 *
 * All themed via the same palette variables.
 * ============================================================ */

/* ---- Recent updates (freshness signal) ---- */
.lp-updates-list { list-style: none; padding: 0; margin: 18px 0 0; max-width: 820px; }
.lp-updates-list li {
  display: grid; grid-template-columns: 110px 1fr; gap: 6px 18px;
  padding: 14px 0; border-bottom: 1px dotted var(--border);
}
.lp-updates-list li:last-child { border-bottom: 0; }
.lp-update-date {
  grid-row: span 2; font-size: 12px; font-weight: 700;
  color: var(--accent-d); text-transform: uppercase; letter-spacing: 0.05em;
  padding-top: 2px;
}
.lp-update-headline { font-size: 15px; color: var(--fg); font-weight: 600; }
.lp-update-detail { font-size: 14px; color: var(--fg-dim); line-height: 1.55; }
@media (max-width: 720px) {
  .lp-updates-list li { grid-template-columns: 1fr; }
  .lp-update-date { grid-row: auto; }
}

/* ---- Injuries / conditions covered (deep cards) ---- */
.lp-injury-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px; margin-top: 18px;
}
.lp-injury {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 10px; padding: 18px 20px;
  border-top: 3px solid var(--accent);
}
.lp-injury-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.lp-injury h3 { margin: 0; font-size: 17px; color: var(--fg); }
.lp-injury-pri {
  font-size: 10px; font-weight: 700; letter-spacing: 0.06em;
  padding: 3px 8px; border-radius: 999px; text-transform: uppercase;
  background: var(--bg-soft); color: var(--fg-dim);
}
.lp-injury-pri-primary { background: var(--accent); color: #fff; }
.lp-injury-pri-secondary { background: var(--warn); color: #fff; }
.lp-injury-desc { font-size: 14px; color: var(--fg-dim); line-height: 1.6; margin: 0 0 10px; }
.lp-injury-link { font-size: 13px; color: var(--fg); margin: 8px 0 0; line-height: 1.55;
                  padding-top: 8px; border-top: 1px solid var(--border); }
.lp-injury-link strong { color: var(--accent-d); }

/* ---- Products named (by manufacturer) ---- */
.lp-product-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px; margin-top: 18px;
}
.lp-product-group {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 10px; padding: 16px 18px;
}
.lp-product-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.lp-product-group h3 { margin: 0; font-size: 16px; color: var(--fg); }
.lp-product-parent { font-size: 12px; color: var(--fg-muted); font-style: italic; }
.lp-product-list { margin: 8px 0 0; padding-left: 20px; }
.lp-product-list li { font-size: 14px; color: var(--fg-dim); line-height: 1.55; margin-bottom: 4px; }
.lp-product-note { margin: 10px 0 0; font-size: 12px; color: var(--fg-muted); line-height: 1.55; }
.lp-products-foot { margin: 16px 0 0; font-size: 12px; }

/* ---- Defendants ---- */
.lp-def-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px; margin-top: 18px;
}
.lp-def {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 10px; padding: 16px 18px;
  scroll-margin-top: 24px; /* anchor jump from hero links lands with breathing room */
  transition: box-shadow 0.25s, border-color 0.25s;
}
.lp-def:target {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);
  animation: lp-def-flash 1.6s ease-out;
}
@keyframes lp-def-flash {
  0%   { box-shadow: 0 0 0 8px color-mix(in srgb, var(--accent) 45%, transparent); }
  100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent); }
}
.lp-def h3 { margin: 0 0 2px; font-size: 16px; color: var(--fg); }
.lp-def-parent { font-size: 12px; color: var(--fg-muted); font-style: italic; display: block; margin-bottom: 8px; }
.lp-def-profile { font-size: 14px; color: var(--fg-dim); line-height: 1.6; margin: 0 0 8px; }
.lp-def-brands { font-size: 13px; color: var(--fg); margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--border); }
.lp-def-brands strong { color: var(--accent-d); }

/* ---- Mid-page CTA ---- */
.lp-midcta-section { padding: 14px 22px; }
.lp-midcta {
  max-width: 1200px; margin: 0 auto;
  background: var(--accent); color: #fff;
  border-radius: 12px; padding: 22px 26px;
  display: flex; justify-content: space-between; align-items: center; gap: 22px;
  flex-wrap: wrap;
}
.lp-midcta-copy { flex: 1; min-width: 240px; }
.lp-midcta-copy h3 { margin: 0 0 4px; color: #fff; font-size: 20px; line-height: 1.25; }
.lp-midcta-copy p { margin: 0; color: rgba(255,255,255,0.92); font-size: 15px; line-height: 1.55; }
.lp-midcta-btn {
  background: #fff; color: var(--accent-d);
  padding: 13px 24px; border-radius: 8px;
  font-weight: 700; font-size: 15px;
  white-space: nowrap; text-decoration: none;
}
.lp-midcta-btn:hover { background: #f8fafc; text-decoration: none; }

/* ---- Compensation tier table ---- */
.lp-comp-wrap { overflow-x: auto; margin-top: 18px; }
.lp-comp-table {
  width: 100%; border-collapse: collapse; background: var(--bg-card);
  border: 1px solid var(--border); border-radius: 10px; overflow: hidden;
  min-width: 640px;
}
.lp-comp-table thead { background: var(--bg-soft); }
.lp-comp-table th {
  text-align: left; padding: 12px 16px;
  font-size: 12px; font-weight: 700; color: var(--accent-d);
  text-transform: uppercase; letter-spacing: 0.05em;
  border-bottom: 2px solid var(--border);
}
.lp-comp-table td {
  padding: 14px 16px; border-top: 1px solid var(--border);
  font-size: 14px; line-height: 1.55; color: var(--fg-dim);
  vertical-align: top;
}
.lp-comp-dx { color: var(--fg); width: 28%; }
.lp-comp-payout { color: var(--accent-d); font-weight: 700; white-space: nowrap; width: 28%; }
.lp-comp-caveat { margin: 14px 0 0; font-size: 13px; color: var(--fg-muted); font-style: italic; line-height: 1.55; max-width: 820px; }

/* ---- How it works (numbered process) ---- */
.lp-how-steps { list-style: none; counter-reset: lp-how; padding: 0; margin: 20px 0 0; }
.lp-how-step {
  display: grid; grid-template-columns: 56px 1fr; gap: 16px;
  padding: 18px 0; border-bottom: 1px solid var(--border);
}
.lp-how-step:last-child { border-bottom: 0; }
.lp-how-num {
  display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--accent); color: #fff;
  font-weight: 800; font-size: 18px; line-height: 1;
}
.lp-how-body h3 { margin: 4px 0 4px; font-size: 16px; color: var(--fg); }
.lp-how-body p { margin: 0; font-size: 14px; color: var(--fg-dim); line-height: 1.6; }
.lp-how-timing {
  display: inline-block; margin-top: 6px;
  font-size: 12px; color: var(--fg-muted); font-style: italic;
}

/* ---- Statute of limitations urgency block ---- */
.lp-sol-card {
  background: var(--urgent-bg); border: 1px solid var(--urgent);
  border-left: 5px solid var(--urgent);
  border-radius: 10px; padding: 22px 26px;
  max-width: 820px;
}
.lp-sol-card h2 { margin: 0 0 8px; color: var(--urgent); font-size: 19px; }
.lp-sol-card p { margin: 0 0 10px; font-size: 15px; color: var(--fg); line-height: 1.6; }
.lp-sol-bullets { margin: 10px 0 8px; padding-left: 20px; }
.lp-sol-bullets li { font-size: 14px; color: var(--fg-dim); line-height: 1.55; margin-bottom: 6px; }
.lp-sol-warning {
  margin-top: 12px; padding: 10px 14px;
  background: rgba(185, 28, 28, 0.08); border-radius: 6px;
  color: var(--urgent); font-weight: 600; font-size: 14px;
}

/* ---- Attorney network trust ---- */
.lp-attorney-card {
  background: var(--bg-card); border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  border-radius: 10px; padding: 22px 26px;
  max-width: 820px;
}
.lp-attorney-lead { margin: 0 0 12px; font-size: 16px; color: var(--fg); line-height: 1.6; }
.lp-attorney-bullets { margin: 12px 0; padding-left: 20px; }
.lp-attorney-bullets li { font-size: 14px; color: var(--fg-dim); line-height: 1.6; margin-bottom: 8px; }
.lp-attorney-bullets li strong { color: var(--fg); }
.lp-attorney-disclaimer { margin: 14px 0 0; font-size: 12px; line-height: 1.55; padding-top: 12px; border-top: 1px solid var(--border); }

/* ---- Sticky mobile CTA ---- */
.lp-sticky-cta {
  display: none;
  position: fixed; left: 12px; right: 12px; bottom: 12px;
  background: var(--accent); color: #fff;
  text-align: center; padding: 14px 16px;
  border-radius: 10px; font-weight: 700; font-size: 15px;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.25);
  z-index: 50; text-decoration: none;
}
.lp-sticky-cta:hover { background: var(--accent-d); text-decoration: none; }
@media (max-width: 720px) { .lp-sticky-cta { display: block; } }
@media (max-width: 720px) { footer.lp-footer { padding-bottom: 96px; } }
