/*
 * Alix geographic programmatic page templates.
 * Depends on shared-header.css and shared-footer.css.
 * Every selector is scoped to .alix-pseo to avoid leaking into Webflow pages.
 */

/* Token fallbacks for documents served without Webflow JS. Webflow adds .w-mod-js
   at runtime and keeps its native tokens; these routes never load that script, so
   this block is what actually renders. Its specificity (0,1,1) beats the :root
   (0,1,0) token block in shared-header.css, so any value here that drifts from the
   canonical token wins silently. Keep every value below in sync with
   shared-header.css. webflow-shared.css registers the display face under the family
   name Make and the body face under Beausite Classic. Those are the only spellings
   that resolve; any other spelling of the display family matches no @font-face and
   falls back to serif, rendering every heading in Times. */
html:not(.w-mod-js) {
  --_alix-website-brand---navy: #0c2553;
  --_alix-website-brand---blue: #1170db;
  --_alix-website-brand---cta-blue: #043ca5;
  --_alix-website-brand---light-blue: #bce5ea;
  --_alix-website-brand---purple: #b6abfd;
  --_alix-website-brand---light-purple: #e2defe;
  --_alix-website-brand---tan: #f4f3f1;
  --_alix-website-brand---darker-tan: #e8e5e1;
  --_alix-website-brand---white: #ffffff;
  --_alix-website-brand---almost-black: #11100d;
  /* Both names are required. The same brand display face is registered under DIFFERENT
     family names on the two surfaces of this site: the Cloud shell registers `Make`, the
     Webflow Designer templates register `Make Way`. A stack naming only one falls back
     silently to Times on the other surface. Listing both resolves on either registration. */
  --_alix-website-brand---font-heading: Make, "Make Way", "Times New Roman", serif;
  --_alix-website-brand---font-body: "Beausite Classic", Arial, sans-serif;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
}

.alix-pseo,
.alix-pseo * {
  box-sizing: border-box;
}

.alix-pseo {
  overflow: clip;
  background: var(--_alix-website-brand---white);
  color: var(--_alix-website-brand---almost-black);
  font-family: var(--_alix-website-brand---font-body);
  /* px-capped: the shell sets 1rem to 10px at 1440 but 13.33px at 1920. */
  font-size: clamp(16px, 1.6rem, 18px);
  line-height: 1.6;
}

/* Specificity here is (0,1,0). :where() adds nothing, but `.alix-pseo` still counts.
   It therefore TIES `.alix-pseo__button` / `.alix-pseo__related-link` and loses only
   because it sits earlier in the file. Any new component colour rule must be placed
   BELOW this block or its colour will be silently overridden by `color: inherit`. */
.alix-pseo :where(a) {
  color: inherit;
  text-decoration-thickness: 1px;
  text-decoration-color: currentColor;
  text-underline-offset: 0.22em;
}

.alix-pseo__button,
.alix-pseo__related-link,
.alix-pseo__route-link,
.alix-pseo__card,
.alix-pseo__card a {
  text-decoration: none;
}

.alix-pseo__container {
  width: min(1120px, calc(100% - 48px));
  margin-inline: auto;
}

.alix-pseo__skip {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 2000;
  padding: 0.75rem 1rem;
  border-radius: 999px;
  background: var(--_alix-website-brand---navy);
  color: var(--_alix-website-brand---white);
  transform: translateY(-180%);
}

.alix-pseo__skip:focus {
  transform: translateY(0);
}

.alix-pseo__eyebrow {
  width: fit-content;
  margin: 0;
  color: var(--_alix-website-brand---navy);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: 1.3;
  text-transform: uppercase;
}

.alix-pseo__breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
  margin: 0 0 clamp(24px, 4vw, 40px);
  color: var(--_alix-website-brand---navy);
  font-size: clamp(13px, 0.84rem, 15px);
}

.alix-pseo__breadcrumbs a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.24em;
  /* The trail's own `/` separators and position already read as navigation;
     resting-state underlines just add clutter. Body-copy links keep theirs;
     this override is scoped to the breadcrumb nav only. */
  text-decoration-line: none;
}

.alix-pseo__breadcrumbs a:hover,
.alix-pseo__breadcrumbs a:focus-visible {
  text-decoration-line: underline;
}

.alix-pseo__hero {
  position: relative;
  margin: 0.75rem;
  padding: clamp(3rem, 6vw, 5.5rem) 0 clamp(3rem, 6vw, 5.75rem);
  /* px-capped, not rem: the shared shell's 1rem swings from 10px to 16px across
     breakpoints (see shared-header.css :root), so a rem-based top offset can't
     reliably clear the fixed header. Measured header bottom edge is 64-72px for
     every width from 901px up to the next breakpoint below; 90px keeps a ~24px
     visual gap under the worst of those (72px). A rem or vw only clamp overlaps
     the header by 1.5-9.5px across that range. */
  padding-top: clamp(90px, 6vw, 140px);
  overflow: hidden;
  border-radius: 16px;
  background: var(--_alix-website-brand---tan);
}

/* Decorative ring, anchored to the bottom-right corner. The top edge of the hero
   sits behind the fixed header at every width, so nothing anchored there is
   visible; keep hero decoration on the bottom and right edges only. */
.alix-pseo__hero::after {
  position: absolute;
  content: "";
  pointer-events: none;
  /* px, not rem: the shell rescales 1rem from 10px to 13.33px across widths, so
     rem offsets here move the ring far enough for `overflow: hidden` to slice it
     flat. These offsets keep a corner arc inside the hero at every width and keep
     the ring clear of the navy aside (aside right edge is 1280 at 1440). */
  right: -180px;
  bottom: -200px;
  width: 300px;
  height: 300px;
  border: 50px solid rgba(188, 229, 234, 0.6);
  border-radius: 50%;
}

.alix-pseo__hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.5fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}

.alix-pseo__title {
  /* The cap has to keep the H1 at least as wide as the deck beneath it, which
     runs 658px at 1440. A 14ch cap measures 377px there and makes the heading
     read as narrower than its own body copy. */
  max-width: 22ch;
  margin: 16px 0 24px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(40px, 4.2vw, 60px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.02;
  text-wrap: balance;
}

.alix-pseo__deck {
  max-width: 62ch;
  margin: 0;
  font-size: clamp(16px, 1.25vw, 19px);
  line-height: 1.45;
}

.alix-pseo__source-stamp {
  position: relative;
  padding: 24px;
  background: var(--_alix-website-brand---navy);
  color: var(--_alix-website-brand---white);
  border-radius: 12px;
}

.alix-pseo__source-stamp strong {
  display: block;
  margin: 8px 0 12px;
  color: var(--_alix-website-brand---white);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: 400;
  line-height: 1.15;
}

.alix-pseo__source-stamp span {
  display: block;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  line-height: 1.5;
}

.alix-pseo__source-stamp ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.alix-pseo__source-stamp li {
  position: relative;
  padding-left: 18px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  line-height: 1.45;
}

.alix-pseo__source-stamp li::before {
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  /* Lavender is reserved for the go.meetalix.com CTA. Light-blue is the
     surface token and reads clearly as a dot on navy. */
  background: var(--_alix-website-brand---light-blue);
  content: "";
}

/* Court and government links are quiet citations, never a second CTA.
   Lavender + pill is reserved for Alix's own conversion path. */
.alix-pseo__cite-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin-top: 16px;
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--_alix-website-brand---cta-blue);
  font-size: 16px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 0.22em;
}

.alix-pseo__cite-link::after {
  content: "\2192";
  text-decoration: none;
}

.alix-pseo__source-stamp a {
  color: var(--_alix-website-brand---light-blue);
  text-underline-offset: 0.2em;
}

.alix-pseo__route-strip {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - 48px));
  margin: 16px auto 0;
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-radius: 16px;
  background: var(--_alix-website-brand---white);
  box-shadow: 0 8px 24px rgba(12, 37, 83, 0.07);
}

@media (max-width: 1100px) and (min-width: 621px) {
  .alix-pseo__route-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.alix-pseo__route-link {
  min-width: 0;
  padding: 11px 14px;
  border: 0;
  border-radius: 999px;
  color: var(--_alix-website-brand---navy);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  text-transform: none;
}

.alix-pseo__route-link[aria-current="page"] {
  background: var(--_alix-website-brand---navy);
  color: var(--_alix-website-brand---white);
}

.alix-pseo__route-link[data-page-status="planned"] {
  color: rgba(12, 37, 83, 0.7);
}

.alix-pseo__section {
  /* Cost records can be evidence-dense; keep the modules distinct without
     turning every source or related-link block into a full viewport band. */
  padding: clamp(2.75rem, 4.5vw, 4.5rem) 0;
}

.alix-pseo__section--tan {
  background: var(--_alix-website-brand---tan);
}

.alix-pseo__section--navy {
  background: var(--_alix-website-brand---navy);
  color: var(--_alix-website-brand---white);
}

/* Two equal columns with the same 16px gutter every content grid below uses,
   so the lede starts on exactly the same axis as the second card / step column
   (x=728 at 1440). An asymmetric split moves that axis off every other grid on
   the page: 1.25fr/0.75fr puts it at 882, aligned to nothing. */
.alix-pseo__section-head {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: clamp(2rem, 3.5vw, 3.25rem);
  align-items: end;
}

.alix-pseo__heading {
  max-width: 20ch;
  margin: 10px 0 0;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(28px, 3.2vw, 44px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.08;
  text-wrap: balance;
}

.alix-pseo__section--navy .alix-pseo__heading,
.alix-pseo__section--navy .alix-pseo__eyebrow {
  color: var(--_alix-website-brand---light-blue);
}

.alix-pseo__section--navy p,
.alix-pseo__section--navy a,
.alix-pseo__section--navy .alix-pseo__step p,
.alix-pseo__cta-copy p {
  color: rgba(255, 255, 255, 0.78);
}

.alix-pseo__cta-copy strong {
  color: var(--_alix-website-brand---white);
}

.alix-pseo__lede {
  max-width: 62ch;
  margin: 0;
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.5;
}

.alix-pseo__lede :where(p, ul, ol) {
  margin: 0;
}

.alix-pseo__lede :where(ul, ol) {
  display: grid;
  gap: 12px;
  padding: 0;
  list-style: none;
}

.alix-pseo__lede li {
  padding: 16px 18px;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-radius: 10px;
  background: var(--_alix-website-brand---white);
}

.alix-pseo__lede li a {
  color: var(--_alix-website-brand---navy);
  font-weight: 700;
  text-decoration: none;
}

/* One column head. Used when the section carries document copy underneath it
   rather than a paired intro line, so the second column would be empty. */
.alix-pseo__section-head--stacked {
  grid-template-columns: minmax(0, 1fr);
}

/* Document copy that owns its own headings. It sits under the section head at
   container width, so its h2s start on the same left axis (x=153 at 1440) as
   every section heading on the page. The measure cap keeps line length
   readable without pushing the copy into a narrow column.
   Spacing is in px, not rem: the shell resolves 1rem to 10px at 1440 and
   13.33px at 1920, so rem margins here would not hold across widths. */
.alix-pseo__prose {
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.6;
}

/* The measure caps the running copy, not the region. Authored copy carries no
   class, so the cap lands on it while the modules below keep the full
   container width they are designed for. Headings are left out: each heading
   level sets its own tighter cap below, and an attribute selector here would
   outrank those rules and undo them. */
.alix-pseo__prose > :where(p, ul, ol, dl, blockquote, figure):not([class]) {
  max-width: 72ch;
}

.alix-pseo__prose > :first-child {
  margin-top: 0;
}

.alix-pseo__prose > :last-child {
  margin-bottom: 0;
}

.alix-pseo__prose h2 {
  max-width: 26ch;
  margin: 44px 0 12px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.12;
  text-wrap: balance;
}

/* A short accent above each section heading. In a guide this long the h2
   rhythm is what tells a reader where one part ends and the next begins. */
.alix-pseo__prose h2::before {
  display: block;
  width: 44px;
  height: 2px;
  margin-bottom: 16px;
  background: var(--_alix-website-brand---blue);
  content: "";
}

.alix-pseo__prose h3 {
  max-width: 34ch;
  margin: 30px 0 10px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(19px, 1.5vw, 23px);
  font-weight: 400;
  line-height: 1.2;
}

.alix-pseo__prose h4 {
  max-width: 48ch;
  margin: 24px 0 8px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-body);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
}

.alix-pseo__prose p {
  margin: 0 0 16px;
}

.alix-pseo__prose :where(ul, ol) {
  margin: 0 0 20px;
  padding-left: 22px;
}

.alix-pseo__prose li {
  margin-bottom: 8px;
}

.alix-pseo__prose li:last-child {
  margin-bottom: 0;
}

.alix-pseo__prose blockquote {
  margin: 24px 0;
  padding: 4px 0 4px 18px;
  border-left: 3px solid var(--_alix-website-brand---light-blue);
}

.alix-pseo__prose strong {
  color: var(--_alix-website-brand---navy);
  font-weight: 700;
}

.alix-pseo__prose a {
  color: var(--_alix-website-brand---navy);
  font-weight: 600;
}

/* Sized to its content, not to the 1120px container: the copy inside caps at
   600px, so a full-width band leaves ~458px of bare light-blue on the right. */
.alix-pseo__answer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  max-width: 720px;
  margin-bottom: 40px;
  padding: clamp(20px, 3vw, 32px);
  border-radius: 12px;
  background: var(--_alix-website-brand---light-blue);
  color: var(--_alix-website-brand---navy);
}

/* Holds an inline SVG, never a Unicode glyph. Position and target marks such as
   U+2316 have no glyph in most Windows and Android system fonts and render as
   tofu, so the mark has to travel with the document. */
.alix-pseo__answer-mark {
  display: block;
  flex: none;
  margin-top: 2px;
  color: var(--_alix-website-brand---navy);
  line-height: 0;
}

.alix-pseo__answer-mark svg {
  display: block;
  width: 20px;
  height: 20px;
}

.alix-pseo__answer p {
  max-width: none;
  margin: 0;
}

.alix-pseo__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

/* Same orphan guard `.alix-pseo__steps` carries. Under auto-fit a 4-item set
   renders 3 across and leaves the last card alone beside ~756px of empty white
   at 1440. Balance exactly-four to 2x2; any other count keeps auto-fit. */
.alix-pseo__cards:has(> :nth-child(4):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Every card in a set gets the same surface. The tan fill is what makes a card
   read as a card on a white section; one filled card beside bare text columns
   reads as a stuck "selected" state. Navy on tan is 13.4:1. */
.alix-pseo__card {
  display: flex;
  min-height: auto;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  padding: 24px;
  border-top: 6px solid var(--_alix-website-brand---blue);
  border-radius: 12px;
  background: var(--_alix-website-brand---tan);
  color: var(--_alix-website-brand---navy);
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.alix-pseo__card h3 {
  margin: 8px 0 12px;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.12;
}

.alix-pseo__card p {
  margin: 0;
}

/* A kicker, not a link. In link-blue these read as three clickable labels that
   are not clickable. Working-text on tan is 11.3:1. */
.alix-pseo__card strong {
  margin-top: 8px;
  color: #2f3136;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.alix-pseo__steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  counter-reset: alix-step;
}

/* A sequence is authored as an ordered list so the order holds without CSS.
   The numerals come from the counter below, so the native marker is removed
   and the list padding with it. Specificity (0,1,1) clears the prose list
   rule, which is (0,1,0). */
ol.alix-pseo__steps {
  margin: 0;
  padding: 0;
  list-style: none;
}

li.alix-pseo__step {
  list-style: none;
}

/* Under auto-fit a 4-item set renders 3 across and orphans the last card on its
   own row. Balance exactly-four to 2x2; any other count keeps auto-fit. */
.alix-pseo__steps:has(> :nth-child(4):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 32px block padding so the 1px divider has equal space above and below it.
   At 24px the divider sits closer to the row it opens than the row it closes. */
.alix-pseo__step {
  position: relative;
  min-height: auto;
  padding: 32px 24px;
  /* border-top only. With `gap: 16px` a border-right detaches from both
     neighbours and renders as a dangling line floating in the gutter, so the
     gap does the column separating and no side border is set. */
  border-top: 1px solid var(--_alix-website-brand---darker-tan);
  counter-increment: alix-step;
}

.alix-pseo__step::before {
  display: block;
  margin-bottom: 12px;
  color: rgba(12, 37, 83, 0.7);
  content: counter(alix-step, decimal-leading-zero);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
}

/* #bce5ea is a surface token: never text on tan/white. Navy on tan is 13.4:1. */
.alix-pseo__step h3 {
  margin: 0 0 12px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 400;
  line-height: 1.15;
}

.alix-pseo__section--navy .alix-pseo__step {
  border-color: rgba(255, 255, 255, 0.24);
}

.alix-pseo__section--navy .alix-pseo__step h3 {
  color: var(--_alix-website-brand---light-blue);
}

.alix-pseo__section--navy .alix-pseo__step::before {
  color: rgba(255, 255, 255, 0.7);
}

.alix-pseo__step p {
  margin: 0;
  color: #2f3136;
  font-size: 16px;
  line-height: 1.5;
}

/* Source rows are discrete tan cards, not a ruled list. No horizontal rules are
   used anywhere in this module; separation comes from the gap between cards. */
.alix-pseo__source-list {
  display: grid;
  /* Explicit track: an implicit `auto` track sizes to max-content here and leaves
     the cards short of the container. */
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  border-top: 0;
}

/* Two grid areas only: the source's name, and what a reader would go there for.
   Reference keys and tracking identifiers are not rendered in this row. */
.alix-pseo__source-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "name meta";
  gap: 6px 20px;
  padding: 16px 20px;
  border: 0;
  border-radius: 12px;
  background: var(--_alix-website-brand---tan);
  align-items: center;
}

.alix-pseo__source-item a {
  grid-area: name;
  color: var(--_alix-website-brand---navy);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  text-underline-offset: 0.2em;
}

.alix-pseo__source-item > span,
.alix-pseo__source-item time {
  grid-area: meta;
  align-self: center;
  color: rgba(12, 37, 83, 0.7);
  font-size: 13px;
  text-align: right;
}

/* ---------------------------------------------------------------------------
   Content modules.

   One treatment per content shape. Reference data, a sequence, a citation set
   and a question set are four different things to read, so each is drawn
   differently rather than sharing one paragraph slot. Sizes are px-capped: the
   shell resolves 1rem to 10px at 1440 and 13.33px at 1920, so a rem maximum in
   a clamp is not a maximum.
   ------------------------------------------------------------------------ */

/* Quiet trailing line: a caption, a retrieval date, a scope note. Never the
   place for anything a reader has to act on. #2f3136 on white is 12.6:1. */
.alix-pseo__note {
  margin: 12px 0 0;
  color: #2f3136;
  font-size: 14px;
  line-height: 1.5;
}

/* Label and value reference data, aligned on one axis so the terms can be
   scanned without reading the values. */
.alix-pseo__ledger-wrap {
  margin: 0;
}

.alix-pseo__ledger-head {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.6fr);
  gap: 8px 24px;
  margin: 0;
  padding: 13px 20px;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  background: var(--_alix-website-brand---darker-tan);
  color: var(--_alix-website-brand---navy);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.alix-pseo__ledger {
  margin: 0;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-radius: 12px;
  background: var(--_alix-website-brand---white);
}

.alix-pseo__ledger-head + .alix-pseo__ledger {
  border-radius: 0 0 12px 12px;
}

.alix-pseo__ledger-row {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.6fr);
  gap: 6px 24px;
  padding: 18px 20px;
  border-top: 1px solid var(--_alix-website-brand---darker-tan);
}

.alix-pseo__ledger-row:first-child {
  border-top: 0;
}

.alix-pseo__ledger dt {
  color: var(--_alix-website-brand---navy);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

.alix-pseo__ledger dd {
  margin: 0;
  color: #2f3136;
  font-size: 16px;
  line-height: 1.5;
}

.alix-pseo__ledger dd a {
  color: var(--_alix-website-brand---navy);
  font-weight: 600;
}

.alix-pseo__ledger-note {
  display: block;
  margin-top: 6px;
  color: rgba(12, 37, 83, 0.72);
  font-size: 14px;
  line-height: 1.45;
}

/* Narrow placement, one column per option. The label sits above its value
   because there is no room for two columns inside a comparison column. */
.alix-pseo__ledger--stacked {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.alix-pseo__ledger--stacked .alix-pseo__ledger-row {
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  padding: 14px 0;
}

.alix-pseo__ledger--stacked dt {
  color: #2f3136;
  font-size: 12px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

/* In-copy sequence. A vertical rail fits a reading measure, where the wide
   step grid used at section level would not. */
ol.alix-pseo__steprail {
  display: grid;
  margin: 0;
  padding: 0;
  counter-reset: alix-rail;
  list-style: none;
}

.alix-pseo__steprail li {
  position: relative;
  padding: 3px 0 26px 52px;
  counter-increment: alix-rail;
  color: inherit;
  line-height: 1.55;
}

/* Navy on #bce5ea is 10.4:1. The light blue is the surface here, never text. */
.alix-pseo__steprail li::before {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--_alix-website-brand---light-blue);
  color: var(--_alix-website-brand---navy);
  content: counter(alix-rail);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  place-items: center;
}

.alix-pseo__steprail li::after {
  position: absolute;
  top: 36px;
  bottom: 6px;
  left: 14.5px;
  width: 1px;
  background: var(--_alix-website-brand---darker-tan);
  content: "";
}

.alix-pseo__steprail li:last-child {
  padding-bottom: 0;
}

.alix-pseo__steprail li:last-child::after {
  display: none;
}

.alix-pseo__steprail li > p {
  margin: 0 0 8px;
}

/* Bold at the head of a step is the step's own title. Setting it on its own
   line separates the instruction from the explanation under it. */
.alix-pseo__steprail li > strong:first-child {
  display: block;
  margin-bottom: 4px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(18px, 1.4vw, 20px);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* Tasks to work through, marked rather than numbered, so they do not read as
   an ordered sequence. The mark is a data URI, not a glyph: check marks have
   no coverage in some Windows and Android system fonts. */
ul.alix-pseo__checklist {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.alix-pseo__checklist li {
  position: relative;
  padding: 16px 20px 16px 54px;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-radius: 12px;
  background: var(--_alix-website-brand---white);
  color: #2f3136;
  font-size: 16px;
  line-height: 1.5;
}

.alix-pseo__checklist li::before {
  position: absolute;
  top: 17px;
  left: 20px;
  width: 20px;
  height: 20px;
  border-radius: 6px;
  background: var(--_alix-website-brand---light-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%230c2553' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.3 4.6 8.9 10 3.1'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
  content: "";
}

/* Questions as a disclosure set. `details` and `summary` are operable by
   keyboard and report their open state without any script. */
.alix-pseo__faq {
  display: grid;
  gap: 12px;
}

.alix-pseo__faq-item {
  overflow: hidden;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-radius: 12px;
  background: var(--_alix-website-brand---white);
}

.alix-pseo__faq-item[open] {
  border-color: var(--_alix-website-brand---darker-tan);
  background: var(--_alix-website-brand---tan);
}

.alix-pseo__faq-question {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  padding: 18px 20px;
  align-items: center;
  color: var(--_alix-website-brand---navy);
  cursor: pointer;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(18px, 1.5vw, 21px);
  font-weight: 400;
  line-height: 1.25;
  list-style: none;
}

.alix-pseo__faq-question::-webkit-details-marker {
  display: none;
}

/* Drawn from two bars rather than a typographic sign, for the same reason the
   check mark is a data URI. */
.alix-pseo__faq-mark {
  position: relative;
  display: block;
  width: 16px;
  height: 16px;
}

.alix-pseo__faq-mark::before,
.alix-pseo__faq-mark::after {
  position: absolute;
  background: var(--_alix-website-brand---navy);
  content: "";
}

.alix-pseo__faq-mark::before {
  top: 7.5px;
  left: 0;
  width: 16px;
  height: 1.5px;
}

.alix-pseo__faq-mark::after {
  top: 0;
  left: 7.25px;
  width: 1.5px;
  height: 16px;
  transition: transform 160ms ease;
}

.alix-pseo__faq-item[open] .alix-pseo__faq-mark::after {
  transform: scaleY(0);
}

.alix-pseo__faq-answer {
  padding: 0 20px 20px;
  color: #2f3136;
  font-size: 16px;
  line-height: 1.6;
}

.alix-pseo__faq-answer :where(p, ul, ol) {
  margin: 0 0 12px;
}

.alix-pseo__faq-answer > :last-child {
  margin-bottom: 0;
}

.alix-pseo__faq-answer a {
  color: var(--_alix-website-brand---navy);
  font-weight: 600;
}

/* Where to go next, inside running copy. One line per destination, so a set of
   four does not turn into four cards in the middle of a paragraph run. */
ul.alix-pseo__linkrows {
  display: grid;
  max-width: 72ch;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.alix-pseo__linkrows a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  padding: 14px 18px;
  align-items: center;
  border-radius: 10px;
  background: var(--_alix-website-brand---tan);
  color: var(--_alix-website-brand---navy);
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
}

.alix-pseo__linkrows a:hover {
  background: var(--_alix-website-brand---darker-tan);
}

.alix-pseo__linkrow-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.alix-pseo__linkrow-title {
  font-weight: 600;
}

/* #2f3136 on tan is 11.3:1. */
.alix-pseo__linkrow-note {
  color: #2f3136;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}

.alix-pseo__linkrow-cue {
  width: 8px;
  height: 8px;
  border-top: 1.5px solid var(--_alix-website-brand---cta-blue);
  border-right: 1.5px solid var(--_alix-website-brand---cta-blue);
  transform: rotate(45deg);
}

/* A worked number, given the weight the number deserves. */
.alix-pseo__figures {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

.alix-pseo__figure {
  margin: 0;
  padding: 24px;
  border-top: 6px solid var(--_alix-website-brand---blue);
  border-radius: 12px;
  background: var(--_alix-website-brand---tan);
  color: var(--_alix-website-brand---navy);
}

.alix-pseo__figure figcaption {
  color: #2f3136;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.3;
  text-transform: uppercase;
}

.alix-pseo__figure-value {
  margin: 12px 0 0;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(32px, 3.4vw, 44px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.alix-pseo__figure-note {
  margin: 10px 0 0;
  color: #2f3136;
  font-size: 15px;
  line-height: 1.5;
}

/* Options side by side. Each column carries the same labels, so a reader can
   read across one row rather than reading three lists in full. */
.alix-pseo__compare {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}

.alix-pseo__compare-col {
  padding: 24px;
  border-top: 6px solid var(--_alix-website-brand---blue);
  border-radius: 12px;
  background: var(--_alix-website-brand---tan);
}

.alix-pseo__compare-col h3 {
  max-width: none;
  margin: 0;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.alix-pseo__compare-col .alix-pseo__ledger-row:first-child {
  border-top: 1px solid var(--_alix-website-brand---darker-tan);
  margin-top: 10px;
}

.alix-pseo__compare-col .alix-pseo__ledger-row:last-child {
  padding-bottom: 0;
}

/* Several paragraphs can share the short-answer band; only the first is the
   answer, the rest qualify it. */
.alix-pseo__answer-copy > :where(p, ul, ol) {
  margin: 0 0 12px;
}

.alix-pseo__answer-copy > :last-child {
  margin-bottom: 0;
}

.alix-pseo__button--section {
  margin-top: 32px;
}

/* Module rhythm inside a guide. Every module is a sibling of the section head
   in the container, so one rule sets the spacing between all of them. Scoped
   to the guide template so the hand-built cost documents keep their own
   spacing exactly as reviewed. */
[data-template="cms-guide"] .alix-pseo__section-head {
  margin-bottom: clamp(28px, 3vw, 40px);
}

[data-template="cms-guide"] .alix-pseo__container > * + * {
  margin-top: 32px;
}

[data-template="cms-guide"] .alix-pseo__section-head + * {
  margin-top: 0;
}

/* A caption belongs to the module above it, so it sits close to it. */
[data-template="cms-guide"] .alix-pseo__container > .alix-pseo__note {
  margin-top: 12px;
}

/* Tan-surfaced modules need to lift on a tan band or they read as loose text
   with no card around them. Scoped to the guide template so the hand-built
   cost documents keep the surfaces they were reviewed with. */
[data-template="cms-guide"] .alix-pseo__section--tan :is(
  .alix-pseo__source-item,
  .alix-pseo__related-link,
  .alix-pseo__figure,
  .alix-pseo__compare-col,
  .alix-pseo__card,
  .alix-pseo__linkrows a
) {
  background: var(--_alix-website-brand---white);
}

[data-template="cms-guide"] .alix-pseo__section--tan .alix-pseo__faq-item[open] {
  background: var(--_alix-website-brand---darker-tan);
}

[data-template="cms-guide"] .alix-pseo__section--tan .alix-pseo__linkrows a:hover {
  background: var(--_alix-website-brand---darker-tan);
}

.alix-pseo__prose > .alix-pseo__note {
  margin: -12px 0 20px;
}

/* Modules placed inside document copy need their own separation from the
   paragraphs above and below them. */
.alix-pseo__prose > :where(
  .alix-pseo__faq,
  .alix-pseo__ledger-wrap,
  .alix-pseo__steprail,
  .alix-pseo__linkrows,
  .alix-pseo__checklist,
  .alix-pseo__compare,
  .alix-pseo__figures,
  .alix-pseo__source-list
) {
  margin: 24px 0 32px;
}

/* The card sits on a white section and needs its own outline: without one the
   only visible structure is the 1px gap between the two panels, which reads as
   a stray hairline. The right panel is tinted so it reads as a deliberate
   detail rail rather than a column that ran out of content partway down. */
.alix-pseo__contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
  gap: 1px;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-radius: 12px;
  background: var(--_alix-website-brand---darker-tan);
}

.alix-pseo__contact-main,
.alix-pseo__contact-meta {
  padding: clamp(24px, 3vw, 40px);
  background: var(--_alix-website-brand---white);
}

/* Centred so the leftover height in the shorter panel sits evenly above and
   below the list instead of pooling under the last value. */
.alix-pseo__contact-meta {
  display: flex;
  align-items: center;
  background: var(--_alix-website-brand---tan);
}

.alix-pseo__contact-meta dl {
  width: 100%;
}

.alix-pseo__contact-name {
  margin: 10px 0 16px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 400;
  line-height: 1.1;
}

.alix-pseo__contact-meta dl {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 0;
}

.alix-pseo__contact-meta dt {
  margin-bottom: 6px;
  color: rgba(12, 37, 83, 0.7);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.alix-pseo__contact-meta dd {
  margin: 0 0 20px;
  color: var(--_alix-website-brand---navy);
  font-size: 16px;
  line-height: 1.4;
}

.alix-pseo__contact-meta dd:last-child {
  margin-bottom: 0;
}

.alix-pseo__related {
  background: var(--_alix-website-brand---tan);
}

.alix-pseo__related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
}

.alix-pseo__related-link {
  display: flex;
  min-height: 150px;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  padding: 20px;
  border-top: 0;
  border-radius: 12px;
  background: var(--_alix-website-brand---tan);
  color: var(--_alix-website-brand---navy);
}

/* Saturated blue on tan is 4.29:1 at 12px; navy-70% is 5.4:1. */
.alix-pseo__related-link span:first-child {
  color: rgba(12, 37, 83, 0.7);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.alix-pseo__related-link strong {
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.15;
}

.alix-pseo__related-link p {
  margin: 0;
  color: #2f3136;
  font-size: 14px;
  line-height: 1.45;
}

.alix-pseo__related-link span:last-child {
  color: var(--_alix-website-brand---cta-blue);
  font-size: 13px;
  font-weight: 600;
}

/* The related module sits on tan; lift the cards to white so they read. */
.alix-pseo__related .alix-pseo__related-link {
  background: var(--_alix-website-brand---white);
}

.alix-pseo__cta {
  display: grid;
  gap: 32px;
  min-height: 0;
  margin-top: clamp(40px, 4vw, 64px);
  overflow: hidden;
  border-radius: 16px;
  background: var(--_alix-website-brand---navy);
  color: var(--_alix-website-brand---white);
}

/* Empty slot with no content of its own, so it computes to 0x0. The CMS
   renderer still emits the element, so it is hidden explicitly here rather than
   left to collapse inside the CTA grid. */
.alix-pseo__cta-art {
  display: none;
}

/* Centred single measure rather than two columns. A two-column CTA leaves
   ~356px (32%) of bare navy on the right of a 1120px card; a centred measure
   has no empty side. This element carries all of the CTA panel's padding:
   `.alix-pseo__cta` itself is an unpadded grid, so every child of the CTA that
   should sit inside the padded column belongs inside this element. */
.alix-pseo__cta-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  max-width: 760px;
  margin-inline: auto;
  /* Equal top and bottom padding so the panel reads as deliberately proportioned
     rather than top-loaded with a dead band underneath. >= 24px at every width. */
  padding: clamp(28px, 3.6vw, 48px);
  text-align: center;
}

.alix-pseo__cta-copy > * {
  margin-top: 0;
  margin-bottom: 0;
}

/* Official Alix glyph, reused from the shared footer markup. It inherits white
   through `currentcolor`. No CSS filter is applied and none may be added:
   recolouring the mark is a brand violation. It must be emitted inside
   `.alix-pseo__cta-copy`; as a direct child of `.alix-pseo__cta` it becomes its
   own unpadded grid row flush against the panel edge. */
.alix-pseo__cta-mark {
  display: block;
  width: auto;
  height: clamp(36px, 3.4vw, 46px);
  margin-bottom: 8px;
  color: var(--_alix-website-brand---white);
}

.alix-pseo__cta-copy .alix-pseo__eyebrow {
  color: var(--_alix-website-brand---light-blue);
}

/* Closing heading. It must not compute smaller than the section heads, which
   reach 41px at 1440. px-capped clamp, no rem. */
.alix-pseo__cta-heading {
  max-width: 24ch;
  margin: 0;
  color: var(--_alix-website-brand---white);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

/* Matches the header's own .button-link geometry exactly (min-height 48px,
   padding 0 32px, border-radius 12px) so the two "Talk to an Expert" buttons on
   the page read as one component. */
.alix-pseo__button {
  display: inline-flex;
  width: fit-content;
  min-height: 48px;
  margin-top: 8px;
  align-items: center;
  padding: 0 32px;
  border-radius: 12px;
  background: var(--_alix-website-brand---purple);
  /* White on lavender is 2.05:1. Navy on lavender is 7.3:1. */
  color: var(--_alix-website-brand---navy);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-underline-offset: unset;
}

.alix-pseo__section--navy .alix-pseo__button {
  color: var(--_alix-website-brand---navy);
}

/* Dot sits AFTER the label (.button-link pattern), never before it. */
.alix-pseo__button::after {
  width: 6px;
  height: 6px;
  margin-left: 10px;
  border-radius: 50%;
  background: var(--_alix-website-brand---cta-blue);
  content: "";
}

/* Inherited site chrome, page-scoped correction. The footer's legal links ship
   at rgba(255,255,255,.5) on navy = 4.4:1, marginally under AA for normal
   text. .62 measures 5.6:1. */
.undecorated-text-link-translucent {
  color: rgba(255, 255, 255, 0.62);
}

.alix-pseo :is(a, summary):focus-visible {
  outline: 3px solid var(--_alix-website-brand---blue);
  outline-offset: 4px;
}

.alix-pseo__card:hover,
.alix-pseo__related-link:hover {
  transform: translateY(-3px);
  box-shadow: 0 1rem 2rem rgba(12, 37, 83, 0.12);
}

/* State cost v2 is isolated from the generic geographic templates. The same
   classes can be fed by any state record without changing the page structure. */
.state-cost-v2__hero {
  display: grid;
  min-height: 560px;
  margin: 12px;
  overflow: hidden;
  border-radius: 18px;
  background: var(--_alix-website-brand---tan);
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
}

.state-cost-v2__hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(96px, 8vw, 124px) clamp(36px, 6vw, 82px) clamp(44px, 5vw, 66px);
}

.state-cost-v2__hero .alix-pseo__breadcrumbs {
  margin-bottom: clamp(20px, 3vw, 32px);
}

.state-cost-v2__hero h1 {
  max-width: 15ch;
  margin: 12px 0 20px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(42px, 4.2vw, 62px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
  text-wrap: balance;
}

.state-cost-v2__hero-answer {
  max-width: 680px;
  margin: 0 0 16px;
  color: #2f3136;
  font-size: clamp(18px, 1.45vw, 21px);
  line-height: 1.5;
}

.state-cost-v2__hero-answer strong {
  color: var(--_alix-website-brand---navy);
}

.state-cost-v2__hero-note {
  max-width: 650px;
  margin: 0 0 18px;
  color: #2f3136;
  font-size: 16px;
  line-height: 1.5;
}

.state-cost-v2__updated {
  margin: 0;
  color: rgba(12, 37, 83, 0.72);
  font-size: 13px;
  line-height: 1.45;
}

.state-cost-v2__hero-media {
  min-height: 100%;
  overflow: hidden;
}

.state-cost-v2__hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% center;
}

/* A compact photographic hero for place-specific court pages. It keeps the
   image contextual without turning the right column into a full-height poster. */
.state-cost-v2__hero-media--compact {
  align-self: center;
  min-height: 0;
  height: auto;
  max-height: 420px;
  margin: 38px 38px 38px 0;
  aspect-ratio: 3 / 2;
  border-radius: 14px;
}

.state-cost-v2__hero-media--compact img {
  object-position: center;
}

.state-cost-v2__hero-media--court {
  overflow: visible;
  max-height: none;
  background: transparent;
}

.alix-court-hero {
  display: grid;
  gap: 10px;
  width: 100%;
  margin: 0;
}

.alix-court-hero__photos {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  height: auto;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  border-radius: 14px;
  background: #e8e5df;
}

.alix-court-hero--split .alix-court-hero__photos {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3px;
}

.state-cost-v2__hero-media .alix-court-hero__photos img {
  min-width: 0;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.alix-court-hero figcaption {
  color: rgba(16, 39, 79, 0.74);
  font-size: 12px;
  line-height: 1.45;
}

.alix-court-hero figcaption a {
  color: inherit;
  text-underline-offset: 0.18em;
}

.state-cost-v2__snapshot-section {
  padding-top: clamp(34px, 4vw, 48px);
  padding-bottom: clamp(34px, 4vw, 48px);
}

.state-cost-v2__snapshots {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.state-cost-v2__snapshot {
  min-height: 176px;
  padding: 24px;
  border-radius: 16px;
  background: var(--_alix-website-brand---tan);
}

.state-cost-v2__snapshot strong {
  display: block;
  margin-bottom: 16px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(34px, 3vw, 46px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1;
}

.state-cost-v2__snapshot h3 {
  margin: 0 0 8px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-body);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.35;
  word-spacing: 0.12em;
}

.state-cost-v2__snapshot p {
  margin: 0;
  color: #2f3136;
  font-size: 15px;
  line-height: 1.5;
}

.state-cost-v2__content-shell {
  display: grid;
  gap: clamp(32px, 5vw, 64px);
  padding-bottom: clamp(40px, 5vw, 64px);
  align-items: start;
  grid-template-columns: minmax(0, 1fr) 280px;
}

.state-cost-v2__content {
  min-width: 0;
}

.state-cost-v2__content-section {
  padding: clamp(28px, 3.5vw, 42px) 0;
}

.state-cost-v2__content-section:first-child {
  padding-top: 0;
}

.state-cost-v2__content-section > h2,
.state-cost-v2__service h2,
.state-cost-v2__related h2 {
  max-width: 21ch;
  margin: 10px 0 18px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(34px, 3.2vw, 46px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.04;
  text-wrap: balance;
}

.state-cost-v2__content-section > p:not(.alix-pseo__eyebrow):not(.alix-pseo__note) {
  max-width: 66ch;
  margin: 0 0 20px;
  color: #2f3136;
  font-size: 17px;
  line-height: 1.62;
}

.state-cost-v2__compensation-summary {
  max-width: 66ch;
  margin: 26px 0 30px;
  padding: 4px 0 4px 22px;
  border-left: 3px solid var(--_alix-website-brand---blue);
}

.state-cost-v2__compensation-summary p {
  margin: 0;
  color: #2f3136;
  font-size: 17px;
  line-height: 1.62;
}

.state-cost-v2__compensation-summary p + p {
  margin-top: 12px;
}

.state-cost-v2__compensation-summary a {
  color: var(--_alix-website-brand---navy);
  font-weight: 650;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.state-cost-v2__table-wrap {
  max-width: 100%;
  margin: 34px 0 18px;
  overflow-x: auto;
  border-radius: 18px;
  background: var(--_alix-website-brand---tan);
}

.state-cost-v2__table-wrap:focus-visible {
  outline: 3px solid var(--_alix-website-brand---blue);
  outline-offset: 3px;
}

.state-cost-v2__table-hint {
  display: none;
}

.state-cost-v2 table {
  width: 100%;
  min-width: 660px;
  border-spacing: 8px;
  color: #2f3136;
  font-size: 15px;
}

.state-cost-v2 caption {
  padding: 22px 20px 8px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 24px;
  text-align: left;
}

.state-cost-v2 th,
.state-cost-v2 td {
  padding: 14px 16px;
  border: 0;
  border-radius: 10px;
  background: var(--_alix-website-brand---white);
  text-align: left;
}

.state-cost-v2 thead th {
  background: transparent;
  color: rgba(12, 37, 83, 0.72);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.state-cost-v2 tbody th,
.state-cost-v2 tbody strong {
  color: var(--_alix-website-brand---navy);
}

.state-cost-v2__mortgage-example {
  display: grid;
  gap: 32px;
  margin-bottom: 24px;
  padding: clamp(28px, 4vw, 46px);
  border-radius: 22px;
  background: var(--_alix-website-brand---light-blue);
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
}

.state-cost-v2__mortgage-example h2 {
  margin: 12px 0 18px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(32px, 3vw, 44px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

.state-cost-v2__mortgage-example p {
  margin: 0;
  color: #2f3136;
  font-size: 16px;
  line-height: 1.58;
}

.state-cost-v2__mortgage-example dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.state-cost-v2__mortgage-example dl div {
  padding: 16px 18px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
}

.state-cost-v2__mortgage-example dt {
  color: #2f3136;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.state-cost-v2__mortgage-example dd {
  margin: 5px 0 0;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 27px;
  line-height: 1;
}

.state-cost-v2__cost-grid,
.state-cost-v2__example-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.state-cost-v2__cost-card,
.state-cost-v2__example-grid article {
  padding: 24px;
  border-radius: 16px;
  background: var(--_alix-website-brand---tan);
}

.state-cost-v2__cost-card h3,
.state-cost-v2__example-grid strong {
  display: block;
  margin: 0 0 12px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.15;
}

.state-cost-v2__cost-card p,
.state-cost-v2__example-grid p {
  margin: 0;
  color: #2f3136;
  font-size: 15px;
  line-height: 1.55;
}

.state-cost-v2__service {
  width: min(100%, 820px);
  margin: clamp(30px, 4vw, 46px) auto;
  padding: 28px 32px;
  border-radius: 18px;
  background: var(--_alix-website-brand---navy);
  color: var(--_alix-website-brand---white);
}

.state-cost-v2__service .state-cost-v2__service-mark {
  width: 42px;
  margin-bottom: 16px;
  color: var(--_alix-website-brand---white);
}

.state-cost-v2__service .alix-pseo__answer-mark,
.state-cost-v2__service .alix-pseo__answer-mark svg {
  width: 44px;
  height: 44px;
}

.state-cost-v2__service .alix-pseo__eyebrow {
  color: var(--_alix-website-brand---light-blue);
}

.state-cost-v2__service h2 {
  color: var(--_alix-website-brand---white);
}

.state-cost-v2__service > p:not(.alix-pseo__eyebrow) {
  max-width: 58ch;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 16px;
  line-height: 1.48;
}
.state-cost-v2__service .state-cost-v2__brand-mark{width:42px;height:auto;margin:0;color:#fff}
.state-cost-v2__service small{display:block;margin-top:10px;color:rgba(255,255,255,.62);font-size:12px}

.state-cost-v2__rail {
  position: sticky;
  top: 108px;
  min-height: 0;
}

.state-cost-v2__toc {
  border-radius: 16px;
}

.state-cost-v2__toc {
  display: grid;
  gap: 2px;
  padding: 18px;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  background: var(--_alix-website-brand---white);
  transition: opacity 180ms ease, visibility 180ms ease;
}

.state-cost-v2__toc strong {
  margin-bottom: 8px;
  color: var(--_alix-website-brand---navy);
  font-size: 15px;
}

.state-cost-v2__toc a {
  padding: 7px 0;
  color: rgba(12, 37, 83, 0.78);
  font-size: 14px;
  line-height: 1.35;
  text-decoration: none;
}

.state-cost-v2__toc a:hover {
  color: var(--_alix-website-brand---navy);
  text-decoration: underline;
}

.state-cost-v2__brand-mark {
  display: block;
  width: 42px;
  height: auto;
  margin-bottom: 26px;
  color: var(--_alix-website-brand---white);
}


.state-cost-v2__related {
  margin: 0 12px;
  padding: clamp(44px, 5vw, 66px) 0;
  border-radius: 24px;
  background: var(--_alix-website-brand---tan);
}

.state-cost-v2__related-grid {
  display: grid;
  gap: 16px;
  margin-top: 30px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.state-cost-v2__related-card {
  position: relative;
  display: flex;
  min-height: 310px;
  overflow: hidden;
  padding: 24px;
  align-items: end;
  border-radius: 22px;
  background-position: center;
  background-size: cover;
  color: var(--_alix-website-brand---white);
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.state-cost-v2__related-card::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(12, 37, 83, 0.04) 18%, rgba(12, 37, 83, 0.94));
  content: "";
}

.state-cost-v2__related-card > span {
  position: relative;
  z-index: 1;
}

.state-cost-v2__related-card strong {
  display: block;
  margin-bottom: 14px;
  color: var(--_alix-website-brand---white);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
}

.state-cost-v2__related-card em {
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
}

.state-cost-v2__related-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 34px rgba(12, 37, 83, 0.16);
}

/* City cost v2 inherits the state cost system and adds only the local court,
   filing, publication, and estimate modules supplied by each city record. */
.city-cost-v2__hero .state-cost-v2__hero-media img {
  object-position: 58% 10%;
}

.city-cost-v2 .state-cost-v2__content-shell {
  padding-bottom: 52px;
}

.city-cost-v2 .state-cost-v2__content-section {
  padding: 38px 0;
}

.city-cost-v2 .state-cost-v2__content-section:first-child {
  padding-top: 0;
}

.city-cost-v2 .state-cost-v2__service {
  margin: 40px 0;
}

@media (min-width: 981px) {
  .city-cost-v2__hero {
    height: min(660px, calc(100vh - 24px));
    min-height: 580px;
  }

  .city-cost-v2__hero .state-cost-v2__hero-media,
  .city-cost-v2__hero .state-cost-v2__hero-media img {
    height: 100%;
    min-height: 0;
  }

  .city-cost-v2__hero .state-cost-v2__hero-media img {
    object-position: 58% 10%;
  }
}

.city-cost-v2__court-panel {
  display: grid;
  gap: 0;
  margin: 30px 0 22px;
  overflow: hidden;
  border-radius: 22px;
  background: var(--_alix-website-brand---navy);
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.city-cost-v2__court-intro {
  padding: clamp(28px, 4vw, 44px);
  color: var(--_alix-website-brand---white);
}

.city-cost-v2__court-intro .alix-pseo__answer-mark {
  width: 42px;
  height: 42px;
  margin-bottom: 28px;
  color: var(--_alix-website-brand---light-blue);
}

.city-cost-v2__court-intro .alix-pseo__answer-mark svg {
  width: 42px;
  height: 42px;
}

.city-cost-v2__court-intro h3 {
  margin: 0 0 18px;
  color: var(--_alix-website-brand---white);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(28px, 2.7vw, 38px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.08;
}

.city-cost-v2__court-intro p {
  margin: 0 0 24px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 15px;
  line-height: 1.55;
}

.city-cost-v2__court-intro a {
  color: var(--_alix-website-brand---white);
  font-size: 14px;
  font-weight: 650;
  text-underline-offset: 4px;
}

.city-cost-v2__courthouses {
  display: grid;
  gap: 12px;
  padding: 18px;
  background: var(--_alix-website-brand---tan);
}

.city-cost-v2__courthouses article {
  display: flex;
  min-height: 180px;
  padding: 24px;
  border-radius: 16px;
  background: var(--_alix-website-brand---white);
  flex-direction: column;
  justify-content: center;
}

.city-cost-v2__courthouses article > p {
  margin: 0 0 12px;
  color: rgba(12, 37, 83, 0.66);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.07em;
  line-height: 1.3;
  text-transform: uppercase;
}

.city-cost-v2__courthouses h3 {
  margin: 0 0 12px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-body);
  font-size: 19px;
  font-weight: 650;
  line-height: 1.25;
  word-spacing: 0.08em;
}

.city-cost-v2__courthouses span {
  color: #2f3136;
  font-size: 14px;
  line-height: 1.5;
}

.city-cost-v2__filing-list {
  display: grid;
  gap: 12px;
  margin: 34px 0 0;
  padding: 0;
  counter-reset: local-filing;
  list-style: none;
}

.city-cost-v2__filing-list li {
  display: grid;
  gap: 18px;
  padding: 22px 24px;
  border-radius: 16px;
  background: var(--_alix-website-brand---tan);
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  counter-increment: local-filing;
}

.city-cost-v2__filing-list li::before {
  display: grid;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--_alix-website-brand---light-blue);
  color: var(--_alix-website-brand---navy);
  content: counter(local-filing, decimal-leading-zero);
  font-size: 12px;
  font-weight: 700;
  place-items: center;
}

.city-cost-v2__filing-list h3 {
  margin: 1px 0 7px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-body);
  font-size: 18px;
  font-weight: 650;
  line-height: 1.3;
  word-spacing: 0.08em;
}

.city-cost-v2__filing-list p {
  margin: 0;
  color: #2f3136;
  font-size: 15px;
  line-height: 1.52;
}

.city-cost-v2__publication {
  align-items: center;
  background: var(--_alix-website-brand---tan);
}

.city-cost-v2__publication-action {
  padding: 24px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.8);
}

.city-cost-v2__publication-action strong {
  display: block;
  margin-bottom: 14px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-body);
  font-size: 18px;
  font-weight: 650;
  line-height: 1.3;
}

.city-cost-v2__publication-action ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.city-cost-v2__publication-action li {
  position: relative;
  padding-left: 24px;
  color: #2f3136;
  font-size: 15px;
  line-height: 1.45;
}

.city-cost-v2__publication-action li::before {
  position: absolute;
  top: 5px;
  left: 0;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--_alix-website-brand---light-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%230c2553' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.3 4.6 8.9 10 3.1'/%3E%3C/svg%3E") center / 9px 9px no-repeat;
  content: "";
}

.city-cost-v2__estimate {
  display: grid;
  gap: 24px;
  padding: clamp(28px, 4vw, 42px);
  border-radius: 22px;
  background: var(--_alix-website-brand---tan);
}

.city-cost-v2__estimate dl {
  display: grid;
  gap: 12px;
  margin: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.city-cost-v2__estimate dl div {
  min-height: 130px;
  padding: 20px;
  border-radius: 14px;
  background: var(--_alix-website-brand---white);
}

.city-cost-v2__estimate dt {
  min-height: 38px;
  color: rgba(12, 37, 83, 0.7);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
}

.city-cost-v2__estimate dd {
  margin: 16px 0 0;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(25px, 2.2vw, 34px);
  line-height: 1;
}

.city-cost-v2__estimate > p {
  max-width: 72ch;
  margin: 0;
  color: #2f3136;
  font-size: 15px;
  line-height: 1.58;
}

.alix-source-disclosure summary::-webkit-details-marker {
  display: none;
}

/* Website-standard table treatment. This intentionally matches the shared
   production article table instead of creating page-type-specific cards. */
.state-cost-v2 .state-cost-v2__table-wrap {
  margin: 28px 0 18px;
  border-radius: 0;
  background: transparent;
}

.state-cost-v2 table {
  width:100%;
  min-width: 660px;
  border-collapse:collapse;
  border-spacing: 0;
  font-family: var(--_alix-website-brand---font-body);
  color:#111827;
  font-size:14px;
}

.state-cost-v2 caption {
  padding: 0 0 12px;
  font-family: var(--_alix-website-brand---font-body);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
}

.state-cost-v2 thead th {
  padding: 12px;
  border:1px solid #d1d5db;
  border-radius: 0;
  background:#f9fafb;
  color:#111827;
  font-size:14px;
  font-weight:600;
  letter-spacing:0;
  text-transform: none;
}

.state-cost-v2 tbody th,
.state-cost-v2 tbody td {
  padding:12px;
  border:1px solid #d1d5db;
  border-radius: 0;
  background:#fff;
  color:#111827;
  font-size:14px;
}

/* Questions are controls, not editorial headlines. Body type improves scan
   speed and keeps the plus icon from competing with an oversized serif line. */
.state-cost-v2 #faqs > h2 {
  max-width: 18ch;
  font-size: clamp(34px, 3.2vw, 44px);
}

.state-cost-v2 #faqs .alix-pseo__faq-question {
  padding: 18px 20px;
  font-family: var(--_alix-website-brand---font-body);
  font-size: clamp(16px, 1.35vw, 18px);
  font-weight: 600;
  line-height: 1.4;
}

.state-cost-v2 #faqs .alix-pseo__faq-answer {
  max-width: 72ch;
}

.state-cost-v2 .state-cost-v2__service h2 {
  max-width: 19ch;
  font-size: clamp(30px, 3vw, 38px);
}

.state-cost-v2 .state-cost-v2__service > p:not(.alix-pseo__eyebrow) {
  font-size: 16px;
  line-height: 1.48;
}

.state-cost-v2 .state-cost-v2__service .alix-pseo__button {
  min-width: 210px;
  margin-top: 8px;
  justify-content: center;
}

/* Sources remain available for trust and legal review, but do not interrupt
   the reader's journey unless they choose to open them. */
.alix-source-disclosure-section {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

.alix-source-disclosure {
  overflow: hidden;
  border-radius: 16px;
  background: var(--_alix-website-brand---tan);
}

.alix-source-disclosure summary {
  display: grid;
  gap: 18px;
  padding: 18px 20px;
  color: var(--_alix-website-brand---navy);
  cursor: pointer;
  grid-template-columns: minmax(0, 1fr) 20px;
  align-items: center;
  list-style: none;
}

.alix-source-disclosure summary:focus {
  outline: none;
}

.alix-source-disclosure summary:focus-visible {
  border-radius: 12px;
  box-shadow: inset 0 0 0 2px var(--_alix-website-brand---navy);
}

.alix-source-disclosure summary span:first-child {
  display: grid;
  gap: 3px;
}

.alix-source-disclosure summary strong {
  font-family: var(--_alix-website-brand---font-body);
  font-size: 16px;
  font-weight: 650;
}

.alix-source-disclosure summary small {
  color: rgba(12, 37, 83, 0.68);
  font-size: 13px;
  line-height: 1.4;
}

.alix-source-disclosure__mark {
  position: relative;
  width: 16px;
  height: 16px;
}

.alix-source-disclosure__mark::before,
.alix-source-disclosure__mark::after {
  position: absolute;
  top: 7px;
  left: 0;
  width: 16px;
  height: 1.5px;
  background: var(--_alix-website-brand---navy);
  content: "";
  transition: transform 160ms ease;
}

.alix-source-disclosure__mark::after {
  transform: rotate(90deg);
}

.alix-source-disclosure[open] .alix-source-disclosure__mark::after {
  transform: rotate(0deg);
}

.alix-source-disclosure__content {
  padding: 0 18px 18px;
}

.alix-source-disclosure__content > p {
  max-width: 70ch;
  margin: 0 2px 14px;
  color: #2f3136;
  font-size: 14px;
  line-height: 1.5;
}

.alix-source-disclosure .alix-pseo__source-list {
  gap: 8px;
  margin-top: 0;
}

.alix-source-disclosure .alix-pseo__source-item {
  padding: 12px 14px;
  background: var(--_alix-website-brand---white);
}

.alix-source-disclosure .alix-pseo__source-item a {
  font-size: 14px;
}

.alix-source-disclosure .alix-pseo__source-item > span {
  font-size: 12px;
}

@media (max-width: 1279px) {
  .state-cost-v2__content-shell {
    grid-template-columns: minmax(0, 1fr);
  }

  .state-cost-v2__rail {
    display: none;
  }
}

@media (max-width: 980px) {
  .state-cost-v2__hero {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .state-cost-v2__hero-copy {
    padding-bottom: 54px;
  }

  .state-cost-v2__hero-media {
    height: 420px;
  }

  .state-cost-v2__hero-media--compact {
    width: min(720px, calc(100% - 64px));
    height: auto;
    margin: 0 auto 34px;
  }

  .state-cost-v2__snapshots,
  .state-cost-v2__related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .state-cost-v2__related-card:last-child {
    grid-column: 1 / -1;
  }

  .state-cost-v2__mortgage-example {
    grid-template-columns: minmax(0, 1fr);
  }

  .city-cost-v2__court-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .city-cost-v2__estimate dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .state-cost-v2__hero {
    margin: 8px;
    border-radius: 16px;
  }

  .state-cost-v2__hero-copy {
    padding: 88px 22px 28px;
  }

  .state-cost-v2__hero .alix-pseo__breadcrumbs {
    margin-bottom: 22px;
  }

  .state-cost-v2__hero h1 {
    max-width: none;
    margin-bottom: 18px;
    font-size: clamp(38px, 10.8vw, 46px);
  }

  .state-cost-v2__hero-answer {
    font-size: 17px;
  }

  .state-cost-v2__hero-media {
    height: 280px;
  }

  .state-cost-v2__hero-media--compact {
    width: calc(100% - 32px);
    height: auto;
    margin: 0 16px 18px;
  }

  .state-cost-v2__snapshots,
  .state-cost-v2__cost-grid,
  .state-cost-v2__example-grid,
  .state-cost-v2__related-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .state-cost-v2__snapshot {
    min-height: 0;
    padding: 20px;
  }

  .state-cost-v2__snapshot strong {
    margin-bottom: 16px;
  }

  .state-cost-v2__content-section {
    padding: 30px 0;
  }

  .state-cost-v2__content-section > h2,
  .state-cost-v2__service h2,
  .state-cost-v2__related h2 {
    font-size: 34px;
  }

  .state-cost-v2__mortgage-example,
  .state-cost-v2__service {
    padding: 24px 20px;
    border-radius: 18px;
  }

  .state-cost-v2__related {
    margin: 0 8px;
    padding: 38px 0;
    border-radius: 20px;
  }

  .state-cost-v2__related-card,
  .state-cost-v2__related-card:last-child {
    min-height: 270px;
    grid-column: auto;
  }

  .city-cost-v2__court-intro,
  .city-cost-v2__estimate {
    padding: 26px 22px;
  }

  .city-cost-v2__courthouses {
    padding: 12px;
  }

  .city-cost-v2__courthouses article {
    min-height: 0;
    padding: 22px;
  }

  .city-cost-v2__filing-list li {
    gap: 14px;
    padding: 20px;
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .city-cost-v2__filing-list li::before {
    width: 38px;
    height: 38px;
  }

  .city-cost-v2__estimate dl {
    grid-template-columns: minmax(0, 1fr);
  }

  .city-cost-v2__estimate dl div,
  .city-cost-v2__estimate dt {
    min-height: 0;
  }

  .city-cost-v2 .state-cost-v2__content-shell {
    padding-bottom: 40px;
  }

  .city-cost-v2 .state-cost-v2__content-section {
    padding: 32px 0;
  }
}

/* California launch cluster -------------------------------------------------
   One visual system supports several intent-specific recipes. The data changes
   by page family; these rules deliberately keep spacing, evidence, CTA, and
   navigation behavior consistent across state and county records. */
.launch-page__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
  min-height: 590px;
  margin: 12px;
  padding: clamp(94px, 8vw, 124px) clamp(24px, 6vw, 82px) clamp(44px, 5vw, 64px);
  overflow: hidden;
  border-radius: 16px;
  background: var(--_alix-website-brand---tan);
}

.launch-page__hero-copy {
  z-index: 1;
  align-self: center;
  max-width: 720px;
}

.launch-page__hero h1 {
  max-width: 13ch;
  margin: 12px 0 18px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(48px, 5.2vw, 76px);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.launch-page__answer {
  max-width: 690px;
  margin: 0;
  color: #2f3136;
  font-size: clamp(18px, 1.35vw, 21px);
  line-height: 1.5;
}

.launch-page__note {
  max-width: 690px;
  margin: 20px 0 0;
  padding: 0;
  border-left: 0;
  color: #4b5260;
  font-size: 15px;
  line-height: 1.45;
}

.launch-page__hero .state-cost-v2__updated {
  margin-top: 14px;
  line-height: 1.4;
}

.launch-page__hero-media {
  position: relative;
  align-self: stretch;
  min-height: 380px;
  margin: 8px 0 0 clamp(20px, 4vw, 56px);
  overflow: hidden;
  border-radius: 180px 180px 18px 18px;
  background: var(--_alix-website-brand---light-blue);
}

.launch-page__hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.launch-page__content-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
  padding-block: clamp(48px, 6vw, 76px);
}

.launch-page__content {
  min-width: 0;
}

.launch-page__section {
  padding: 0 0 clamp(38px, 5vw, 58px);
  scroll-margin-top: 88px;
}

.launch-page__section + .launch-page__section {
  padding-top: clamp(38px, 5vw, 58px);
  border-top: 1px solid #dedbd7;
}

.launch-page__section > h2,
.launch-page__related h2 {
  max-width: 17ch;
  margin: 10px 0 20px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(36px, 3.8vw, 52px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.02;
}

.launch-page__body > :first-child { margin-top: 0; }
.launch-page__body > :last-child { margin-bottom: 0; }

.launch-page__body p {
  max-width: 760px;
  margin: 0 0 18px;
  color: #333740;
  font-size: 17px;
  line-height: 1.62;
}

.launch-page__card-grid,
.launch-page__comparison,
.launch-page__link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 24px 0;
}

.launch-page__comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.launch-page__link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.launch-page__card-grid article,
.launch-page__comparison article,
.launch-page__link-grid a {
  padding: 22px;
  border: 1px solid var(--_alix-website-brand---darker-tan);
  border-radius: 14px;
  background: var(--_alix-website-brand---tan);
  text-decoration: none;
}

.launch-page__link-grid a {
  background: var(--_alix-website-brand---white);
}

.launch-page__link-grid a:hover {
  border-color: var(--_alix-website-brand---light-blue);
  background: #f5fbfc;
}

.launch-page__card-grid h3,
.launch-page__comparison h3,
.launch-page__link-grid strong {
  display: block;
  margin: 0 0 8px;
  color: var(--_alix-website-brand---navy);
  font-size: 20px;
  line-height: 1.25;
}

.launch-page__card-grid p,
.launch-page__comparison li,
.launch-page__link-grid span {
  margin: 0;
  color: #4b5260;
  font-size: 15px;
  line-height: 1.55;
}

.launch-page__comparison ul {
  margin: 14px 0 0;
  padding-left: 20px;
}

.launch-page__steps,
.launch-page__checklist {
  display: grid;
  gap: 12px;
  margin: 24px 0;
  padding: 0;
  list-style: none;
  counter-reset: launch-step;
}

.launch-page__steps li {
  display: grid;
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
  gap: 18px;
  padding: 19px 22px;
  border-radius: 14px;
  background: var(--_alix-website-brand---tan);
  counter-increment: launch-step;
}

.launch-page__steps strong {
  color: var(--_alix-website-brand---navy);
  font-size: 17px;
}

.launch-page__steps strong::before {
  margin-right: 8px;
  color: var(--_alix-website-brand---blue);
  content: counter(launch-step, decimal-leading-zero);
  font-size: 12px;
}

.launch-page__steps span { color: #4b5260; font-size: 16px; line-height: 1.55; }

.launch-page__checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.launch-page__checklist li {
  position: relative;
  padding: 16px 18px 16px 44px;
  border: 1px solid #dedbd7;
  border-radius: 12px;
  color: #333740;
}
.launch-page__checklist li::before {
  position: absolute;
  top: 16px;
  left: 17px;
  color: var(--_alix-website-brand---blue);
  content: "✓";
  font-weight: 700;
}

.launch-page__form-list {
  display: grid;
  gap: 10px;
  margin: 24px 0;
}

.launch-page__form-list a {
  display: grid;
  grid-template-columns: 92px minmax(180px, 0.7fr) minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid #dedbd7;
  border-radius: 12px;
  text-decoration: none;
}

.launch-page__form-list strong { color: var(--_alix-website-brand---blue); font-size: 18px; }
.launch-page__form-list span { color: var(--_alix-website-brand---navy); font-weight: 600; }
.launch-page__form-list em { color: #59606c; font-size: 14px; font-style: normal; }

.launch-page__rail { position: sticky; top: 88px; }

.launch-page__related {
  margin: 0 12px 12px;
  padding: clamp(44px, 5vw, 64px) 0;
  border-radius: 18px;
  background: #f1f8f9;
}

.launch-page__related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.launch-page__related-grid a {
  display: flex;
  min-height: 124px;
  padding: 20px;
  border: 1px solid #d9ebed;
  border-radius: 14px;
  background: var(--_alix-website-brand---white);
  color: var(--_alix-website-brand---navy);
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
}

.launch-page__related-grid strong { font-size: 20px; line-height: 1.25; }
.launch-page__related-grid span { color: var(--_alix-website-brand---blue); font-size: 14px; font-weight: 600; }

@media (max-width: 960px) {
  .launch-page__hero { grid-template-columns: minmax(0, 1fr); }
  .launch-page__hero h1 { max-width: 15ch; }
  .launch-page__hero-media { min-height: 340px; margin: 32px 0 0; border-radius: 18px; }
  .launch-page__content-shell { grid-template-columns: minmax(0, 1fr); }
  .launch-page__rail { display: none; }
}

@media (max-width: 720px) {
  .launch-page__hero { min-height: 0; padding: 88px 18px 24px; }
  .launch-page__hero h1 { max-width: none; font-size: clamp(40px, 11.5vw, 50px); line-height: 1; }
  .launch-page__answer { font-size: 17px; line-height: 1.48; }
  .launch-page__note { margin-top: 16px; font-size: 14px; }
  .launch-page__hero .state-cost-v2__updated { margin-top: 12px; font-size: 12px; }
  .launch-page__hero-media { min-height: 250px; margin-top: 24px; }
  .launch-page__card-grid,
  .launch-page__comparison,
  .launch-page__link-grid,
  .launch-page__checklist,
  .launch-page__related-grid { grid-template-columns: minmax(0, 1fr); }
  .launch-page__steps li,
  .launch-page__form-list a { grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .launch-page__content-shell { padding-block: 42px; }
  .launch-page__section { padding-bottom: 34px; }
  .launch-page__section + .launch-page__section { padding-top: 34px; }
  .launch-page__section > h2,
  .launch-page__related h2 { font-size: 36px; line-height: 1.04; }
  .launch-page__body p { font-size: 16px; line-height: 1.58; }
  .launch-page__card-grid article,
  .launch-page__comparison article,
  .launch-page__link-grid a { padding: 19px; }
  .launch-page__steps li { padding: 18px; }
  .launch-page__checklist li { padding: 15px 16px 15px 42px; }
  .launch-page__checklist li::before { top: 15px; left: 16px; }
  .launch-page__form-list a { padding: 16px; }
  .launch-page__related { margin-inline: 8px; padding-block: 38px; }
}

/* California launch batch: one continuous editorial canvas.
   Content-specific diagrams remain, but chapters no longer become separate
   cards or themed islands. The generator limits every page to 5–7 sections. */
.cohesive-page__canvas,
.launch-page .cohesive-page__canvas {
  width: min(100% - 2rem, 1080px);
  padding-top: 0;
  padding-bottom: clamp(64px, 8vw, 104px);
  background: #fff;
}

.cohesive-page__intro {
  max-width: 820px;
  padding: clamp(56px, 7vw, 84px) 0 clamp(26px, 4vw, 42px);
}

.cohesive-page__intro h2 {
  max-width: 19ch;
  margin: 10px 0 20px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(38px, 4vw, 54px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.04;
  text-wrap: balance;
}

.cohesive-page__intro > p:not(.alix-pseo__eyebrow) {
  max-width: 68ch;
  margin: 0;
  color: #42454b;
  font-size: clamp(18px, 1.55vw, 20px);
  line-height: 1.62;
}

.cohesive-page__intro > p + p {
  margin-top: 14px;
}

.launch-page .cohesive-page__chapter,
.state-cost-v2 .cohesive-page__chapter,
.launch-page .cohesive-page__nested-guide {
  margin: 0;
  padding: clamp(52px, 7vw, 82px) 0;
  border: 0;
  border-top: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .cohesive-page__chapter + .cohesive-page__chapter,
.state-cost-v2 .cohesive-page__chapter + .cohesive-page__chapter {
  padding-top: clamp(52px, 7vw, 82px);
  border-top: 1px solid #d9dde3;
}

.launch-page .cohesive-page__chapter > .alix-pseo__eyebrow,
.launch-page .cohesive-page__nested-guide > .alix-pseo__eyebrow,
.state-cost-v2 .cohesive-page__chapter > .alix-pseo__eyebrow {
  color: var(--_alix-website-brand---navy);
}

.launch-page .cohesive-page__chapter > h2,
.launch-page .cohesive-page__nested-guide > h2,
.state-cost-v2 .cohesive-page__chapter > h2,
.launch-page .cohesive-page__chapter .launch-page__body p,
.launch-page .cohesive-page__nested-guide .launch-page__body p {
  color: #2f3136;
}

.launch-page .cohesive-page__chapter > h2,
.launch-page .cohesive-page__nested-guide > h2,
.state-cost-v2 .cohesive-page__chapter > h2 {
  max-width: 21ch;
  margin: 10px 0 22px;
  color: var(--_alix-website-brand---navy);
  font-size: clamp(36px, 3.8vw, 50px);
}

.cohesive-page__lead {
  max-width: 68ch;
  margin: 0 0 30px;
  color: #42454b;
  font-size: clamp(18px, 1.55vw, 20px);
  line-height: 1.62;
}

.state-cost-v2__snapshots.cohesive-page__facts,
.launch-page .cohesive-page__facts {
  gap: 0;
  margin: clamp(30px, 4vw, 44px) 0;
  border-top: 1px solid #cfd3da;
  border-bottom: 1px solid #cfd3da;
}

.state-cost-v2__snapshots.cohesive-page__facts .state-cost-v2__snapshot,
.launch-page .cohesive-page__facts .state-cost-v2__snapshot {
  min-height: 0;
  padding: 24px 24px 26px 0;
  border-right: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
}

.state-cost-v2__snapshots.cohesive-page__facts .state-cost-v2__snapshot + .state-cost-v2__snapshot,
.launch-page .cohesive-page__facts .state-cost-v2__snapshot + .state-cost-v2__snapshot {
  padding-left: 24px;
}

.state-cost-v2__snapshots.cohesive-page__facts .state-cost-v2__snapshot:last-child,
.launch-page .cohesive-page__facts .state-cost-v2__snapshot:last-child {
  border-right: 0;
}

.launch-page .cohesive-page__chapter .launch-page__card-grid,
.launch-page .cohesive-page__chapter .launch-page__choice-grid,
.launch-page .cohesive-page__chapter .launch-page__comparison,
.launch-page .cohesive-page__nested-guide .launch-page__card-grid {
  gap: 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
}

.launch-page .cohesive-page__chapter .launch-page__card-grid article,
.launch-page .cohesive-page__chapter .launch-page__choice-grid article,
.launch-page .cohesive-page__chapter .launch-page__comparison article,
.launch-page .cohesive-page__nested-guide .launch-page__card-grid article {
  min-height: 0;
  padding: 24px 24px 24px 0;
  border: 0;
  border-bottom: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .cohesive-page__chapter .launch-page__comparison h3,
.launch-page .cohesive-page__chapter .launch-page__comparison li,
.launch-page .cohesive-page__chapter .launch-page__steps strong,
.launch-page .cohesive-page__chapter .launch-page__steps span,
.launch-page .cohesive-page__chapter .launch-page__checklist li {
  color: #2f3136;
}

.launch-page .cohesive-page__chapter .launch-page__steps,
.launch-page .cohesive-page__chapter .launch-page__checklist {
  border-top-color: #cfd3da;
}

.launch-page .cohesive-page__chapter .launch-page__steps li,
.launch-page .cohesive-page__chapter .launch-page__checklist li {
  border-bottom-color: #cfd3da;
}

.launch-page .cohesive-page__chapter .launch-page__steps strong::before,
.launch-page .cohesive-page__chapter .launch-page__checklist li::before {
  color: var(--_alix-website-brand---blue);
}

.launch-page .cohesive-page__chapter--forms-desk,
.launch-page .cohesive-page__chapter--forms-continuation,
.launch-page .cohesive-page__chapter--dependency-grid,
.launch-page .cohesive-page__chapter--file-checklist {
  padding-inline: 0;
  background: transparent;
}

.cohesive-page__subsection {
  margin-top: clamp(44px, 6vw, 68px);
  padding-top: clamp(36px, 5vw, 52px);
  border-top: 1px solid #d9dde3;
}

.cohesive-page__subsection > h3 {
  max-width: 24ch;
  margin: 0 0 24px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 400;
  line-height: 1.08;
}

.launch-page .cohesive-page__nested-guide {
  padding-top: 0;
  border-top: 0;
}

.launch-page .cohesive-page__nested-guide > h2 {
  font-size: clamp(30px, 3vw, 40px);
}

.cohesive-page__closing .state-cost-v2__service,
.launch-page .cohesive-page__closing .state-cost-v2__service {
  width: 100%;
  margin: 0 0 clamp(52px, 7vw, 72px);
  padding: 0 0 clamp(40px, 5vw, 54px);
  border: 0;
  border-bottom: 0;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-mark {
  color: var(--_alix-website-brand---blue);
}

.cohesive-page__closing .state-cost-v2__service .alix-pseo__eyebrow,
.cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-title {
  color: var(--_alix-website-brand---navy);
}

.cohesive-page__closing .state-cost-v2__service > p:not(.alix-pseo__eyebrow):not(.state-cost-v2__service-title),
.cohesive-page__closing .state-cost-v2__service small {
  color: #555a63;
}

.cohesive-page__questions > h2 {
  max-width: 21ch;
  margin: 10px 0 28px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(36px, 3.8vw, 50px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.04;
}

.cohesive-page__sources {
  margin-top: clamp(42px, 6vw, 64px);
  padding-top: 0;
  border-top: 0;
}

@media (max-width: 720px) {
  .cohesive-page__canvas,
  .launch-page .cohesive-page__canvas {
    width: min(100% - 1.5rem, 1080px);
  }

  .state-cost-v2__snapshots.cohesive-page__facts,
  .launch-page .cohesive-page__facts {
    grid-template-columns: 1fr;
  }

  .state-cost-v2__snapshots.cohesive-page__facts .state-cost-v2__snapshot,
  .launch-page .cohesive-page__facts .state-cost-v2__snapshot,
  .state-cost-v2__snapshots.cohesive-page__facts .state-cost-v2__snapshot + .state-cost-v2__snapshot,
  .launch-page .cohesive-page__facts .state-cost-v2__snapshot + .state-cost-v2__snapshot {
    padding: 22px 0;
    border-right: 0;
    border-bottom: 1px solid #cfd3da;
  }

  .state-cost-v2__snapshots.cohesive-page__facts .state-cost-v2__snapshot:last-child,
  .launch-page .cohesive-page__facts .state-cost-v2__snapshot:last-child {
    border-bottom: 0;
  }

  .cohesive-page__closing .state-cost-v2__service,
  .launch-page .cohesive-page__closing .state-cost-v2__service {
    display: block;
  }

  .cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-mark {
    width: 34px;
    margin-bottom: 20px;
  }
}

/*
 * California Friday set: the approved cost-guide shell is the presentation
 * contract for every supporting route. The route copy can use lists, tables,
 * and comparisons, but those elements should read as one editorial document
 * instead of switching into a separate card system.
 */
.cost-template-page .state-cost-v2__content-shell.cohesive-page__canvas {
  align-items: start;
}

.cost-template-page .state-cost-v2__content-section.cohesive-page__chapter {
  display: block;
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.cost-template-page .state-cost-v2__content-section.cohesive-page__chapter:first-of-type {
  padding-top: 28px;
}

.cost-template-page .state-cost-v2__content-section.cohesive-page__chapter > .alix-pseo__eyebrow {
  color: #10274f;
}

.cost-template-page .state-cost-v2__content-section.cohesive-page__chapter > h2 {
  max-width: 21ch;
  margin: 8px 0 14px;
  color: #10274f;
  font-size: clamp(36px, 3.8vw, 50px);
}

.cost-template-page .state-cost-v2__content-section.cohesive-page__chapter .launch-page__body > p {
  max-width: 72ch;
  margin: 0 0 14px;
  color: #424853;
  font-size: 16px;
  line-height: 1.62;
}

.cost-template-page .state-cost-v2__content-section .launch-page__card-grid,
.cost-template-page .state-cost-v2__content-section .launch-page__choice-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 18px 0 0;
  border: 0;
  background: transparent;
}

.cost-template-page .state-cost-v2__content-section .launch-page__card-grid article,
.cost-template-page .state-cost-v2__content-section .launch-page__choice-grid article {
  min-height: 0;
  padding: 18px 0;
  border: 0;
  border-bottom: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.cost-template-page .state-cost-v2__content-section .launch-page__comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 20px 0;
  overflow: hidden;
  border: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
}

.cost-template-page .state-cost-v2__content-section .launch-page__comparison article {
  padding: 22px;
  border: 0;
  border-right: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.cost-template-page .state-cost-v2__content-section .launch-page__comparison article:last-child {
  border-right: 0;
}

.cost-template-page .state-cost-v2__content-section .launch-page__steps,
.cost-template-page .state-cost-v2__content-section .launch-page__checklist {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.cost-template-page .state-cost-v2__content-section .launch-page__steps li,
.cost-template-page .state-cost-v2__content-section .launch-page__checklist li {
  position: relative;
  display: grid;
  grid-template-columns: minmax(150px, 0.32fr) minmax(0, 1fr);
  gap: 22px;
  margin: 0;
  padding: 17px 0;
  border: 0;
  border-bottom: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.cost-template-page .state-cost-v2__content-section .launch-page__steps strong::before,
.cost-template-page .state-cost-v2__content-section .launch-page__checklist li::before {
  display: none;
  content: none;
}

.cost-template-page .state-cost-v2__content-section .launch-page__checklist li {
  display: block;
  padding: 17px 0 17px 26px;
  line-height: 1.55;
}

.cost-template-page .state-cost-v2__content-section .launch-page__checklist li::before {
  position: absolute;
  top: 25px;
  left: 1px;
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10274f;
  content: "";
}

.cost-template-page .state-cost-v2__content-section .launch-page__form-list,
.cost-template-page .state-cost-v2__content-section .launch-page__link-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 18px 0 0;
}

.cost-template-page .state-cost-v2__content-section .launch-page__form-list a,
.cost-template-page .state-cost-v2__content-section .launch-page__link-grid a {
  display: grid;
  grid-template-columns: minmax(170px, 0.34fr) minmax(0, 1fr);
  gap: 22px;
  padding: 17px 0;
  border: 0;
  border-bottom: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
}

.cost-template-page .state-cost-v2__table-wrap tbody th > span {
  display: block;
  margin-top: 5px;
  color: #424853;
  font-weight: 500;
  line-height: 1.4;
}

.cost-template-page .state-cost-v2__table-wrap tbody th > a {
  color: #10274f;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.cost-template-page .state-cost-v2__decision-cta {
  background: #10274f;
}

@media (max-width: 720px) {
  .cost-template-page .state-cost-v2__content-section.cohesive-page__chapter {
    padding: 18px 0;
  }

  .cost-template-page .state-cost-v2__content-section .launch-page__comparison {
    grid-template-columns: minmax(0, 1fr);
  }

  .cost-template-page .state-cost-v2__content-section .launch-page__comparison article {
    border-right: 0;
    border-bottom: 1px solid #d9dde3;
  }

  .cost-template-page .state-cost-v2__content-section .launch-page__comparison article:last-child {
    border-bottom: 0;
  }

  .cost-template-page .state-cost-v2__content-section .launch-page__steps li,
  .cost-template-page .state-cost-v2__content-section .launch-page__form-list a,
  .cost-template-page .state-cost-v2__content-section .launch-page__link-grid a {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }
}

/* Semantic page tools ----------------------------------------------------
   These components share the approved California Cost typography, spacing,
   and CTA tokens, but their shape follows the reader's actual task. */

.launch-page .launch-page__section--support-spectrum .launch-page__body,
.launch-page .launch-page__section--judgment-path .launch-page__body,
.launch-page .launch-page__section--workstream-handoff .launch-page__body,
.launch-page .launch-page__section--consultation-sheet .launch-page__body,
.launch-page .launch-page__section--case-file .launch-page__body,
.launch-page .launch-page__section--verification-path .launch-page__body {
  max-width: none;
}

.launch-page__support-spectrum {
  margin-top: 22px;
  padding: 26px;
  border-radius: 12px;
  background: linear-gradient(110deg, #f6f4ef 0%, #eef7f7 52%, #eeeafd 100%);
}

.launch-page__support-axis {
  position: relative;
  display: flex;
  margin-bottom: 26px;
  padding-top: 16px;
  justify-content: space-between;
  color: #59606b;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.launch-page__support-axis::before {
  position: absolute;
  top: 3px;
  right: 0;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, #aeb5bf, #75c8ca 52%, #7b68cf);
  content: "";
}

.launch-page__support-axis::after {
  position: absolute;
  top: -2px;
  right: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #7b68cf;
  content: "";
}

.launch-page__support-options {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.launch-page .launch-page__support-options article,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__support-options article {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.launch-page .launch-page__support-options article > p {
  margin: 0 0 9px;
  color: #59606b;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.launch-page .launch-page__support-options article h3 {
  margin: 0 0 10px;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(23px, 2.1vw, 30px);
  font-weight: 400;
  line-height: 1.08;
}

.launch-page .launch-page__support-options article > span {
  display: block;
  color: #424853;
  font-size: 15px;
  line-height: 1.55;
}

.launch-page .launch-page__support-options article.is-alix h3 {
  color: #4f3fb1;
}

.launch-page__judgment-path {
  position: relative;
  display: grid;
  gap: 26px;
  margin-top: 24px;
  padding-left: 34px;
}

.launch-page__judgment-path::before {
  position: absolute;
  top: 10px;
  bottom: 12px;
  left: 7px;
  width: 3px;
  border-radius: 99px;
  background: linear-gradient(#b8dfe1, #8f83db 58%, #10274f);
  content: "";
}

.launch-page .launch-page__judgment-path article,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__judgment-path article {
  position: relative;
  display: grid;
  min-height: 0;
  gap: 7px 28px;
  padding: 0;
  border: 0;
  background: transparent;
  grid-template-columns: minmax(160px, .34fr) minmax(0, 1fr);
}

.launch-page__judgment-path article::before {
  position: absolute;
  top: 6px;
  left: -33px;
  width: 15px;
  height: 15px;
  border: 4px solid #fff;
  border-radius: 50%;
  background: #7b68cf;
  box-shadow: 0 0 0 1px #8f83db;
  content: "";
}

.launch-page__judgment-path article > span {
  grid-column: 1;
  grid-row: 1 / 4;
  color: #4f3fb1;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
  line-height: 1.45;
  text-transform: uppercase;
}

.launch-page .launch-page__judgment-path article h3 {
  margin: 0;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(22px, 2vw, 29px);
  font-weight: 400;
  line-height: 1.12;
}

.launch-page .launch-page__judgment-path article p,
.launch-page .launch-page__judgment-path article strong {
  margin: 0;
  color: #424853;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.55;
}

.launch-page .launch-page__judgment-path article strong {
  color: #10274f;
  font-weight: 650;
}

.launch-page__workstream-handoff {
  display: grid;
  margin: 22px 0 18px;
  overflow: hidden;
  border-radius: 10px;
  background: #f4f3ef;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.launch-page .launch-page__workstream-handoff article,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__workstream-handoff article {
  min-width: 0;
  padding: 28px;
  border: 0;
  background: transparent;
}

.launch-page .launch-page__workstream-handoff article + article {
  background: #eeebfb;
}

.launch-page .launch-page__workstream-handoff article > p {
  margin: 0 0 9px;
  color: #4f3fb1;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.launch-page .launch-page__workstream-handoff h3 {
  margin: 0 0 14px;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(24px, 2.2vw, 31px);
  font-weight: 400;
  line-height: 1.08;
}

.launch-page .launch-page__workstream-handoff ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.launch-page .launch-page__workstream-handoff li {
  position: relative;
  padding-left: 17px;
  color: #424853;
  font-size: 15px;
  line-height: 1.45;
}

.launch-page .launch-page__workstream-handoff li::before {
  position: absolute;
  top: .6em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #7b68cf;
  content: "";
}

.launch-page .launch-page__section--navy-handoff .launch-page__workstream-handoff {
  background: rgba(255, 255, 255, .08);
}

.launch-page .launch-page__section--navy-handoff .launch-page__workstream-handoff article + article {
  background: rgba(174, 159, 255, .16);
}

.launch-page .launch-page__section--navy-handoff .launch-page__workstream-handoff article > p,
.launch-page .launch-page__section--navy-handoff .launch-page__workstream-handoff h3,
.launch-page .launch-page__section--navy-handoff .launch-page__workstream-handoff li {
  color: #fff;
}

.launch-page__consultation-sheet,
.launch-page__case-file {
  margin-top: 22px;
  padding: clamp(26px, 4vw, 38px);
  border-radius: 8px;
  background: #f4f0e8;
}

.launch-page__consultation-sheet > p,
.launch-page__case-file > p {
  max-width: 64ch;
  margin: 0 0 24px;
  color: #424853;
  font-size: 15px;
  line-height: 1.55;
}

.launch-page__consultation-sheet ol {
  display: grid;
  gap: 24px 30px;
  margin: 0;
  padding: 0;
  counter-reset: consultation;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
}

.launch-page__consultation-sheet li {
  position: relative;
  min-height: 56px;
  padding-left: 42px;
  counter-increment: consultation;
}

.launch-page__consultation-sheet li::before {
  position: absolute;
  top: 1px;
  left: 0;
  display: grid;
  width: 28px;
  height: 28px;
  border: 1px solid #a79bcf;
  color: #4f3fb1;
  content: counter(consultation, decimal-leading-zero);
  font-size: 10px;
  font-weight: 750;
  place-items: center;
}

.launch-page__consultation-sheet strong,
.launch-page__consultation-sheet span {
  display: block;
}

.launch-page__consultation-sheet strong {
  margin-bottom: 5px;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.15;
}

.launch-page__consultation-sheet span {
  color: #4d535d;
  font-size: 14px;
  line-height: 1.5;
}

.launch-page__case-file ul {
  display: grid;
  gap: 16px 30px;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
}

.launch-page__case-file li {
  position: relative;
  padding-left: 28px;
  color: #303640;
  font-size: 15px;
  line-height: 1.5;
}

.launch-page__case-file li::before {
  position: absolute;
  top: 3px;
  left: 0;
  width: 15px;
  height: 15px;
  border: 1.5px solid #7b68cf;
  content: "";
}

.launch-page__verification-path {
  display: grid;
  gap: 22px 34px;
  margin-top: 22px;
  padding: 30px;
  border-radius: 8px;
  background: #eef7f7;
  counter-reset: verification;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.launch-page__verification-path article {
  position: relative;
  min-height: 62px;
  padding-left: 42px;
  counter-increment: verification;
}

.launch-page__verification-path article::before {
  position: absolute;
  top: 0;
  left: 0;
  color: #4f3fb1;
  content: counter(verification, decimal-leading-zero);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 21px;
}

.launch-page__verification-path strong,
.launch-page__verification-path span {
  display: block;
}

.launch-page__verification-path strong {
  margin-bottom: 5px;
  color: #10274f;
  font-size: 15px;
}

.launch-page__verification-path span {
  color: #4d535d;
  font-size: 14px;
  line-height: 1.5;
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps,
.launch-page .launch-page__section--case-packet .launch-page__steps {
  position: relative;
  margin-top: 22px;
  margin-left: 8px;
  padding-left: 32px;
  border: 0;
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps::before,
.launch-page .launch-page__section--case-packet .launch-page__steps::before {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 7px;
  width: 2px;
  background: #b9afea;
  content: "";
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps li,
.launch-page .launch-page__section--case-packet .launch-page__steps li {
  position: relative;
  display: grid;
  gap: 6px;
  padding: 0 0 24px;
  border: 0;
  background: transparent;
  grid-template-columns: minmax(0, 1fr);
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps li::before,
.launch-page .launch-page__section--case-packet .launch-page__steps li::before {
  position: absolute;
  top: 5px;
  left: -31px;
  width: 14px;
  height: 14px;
  border: 4px solid #fff;
  border-radius: 50%;
  background: #7b68cf;
  box-shadow: 0 0 0 1px #8f83db;
  content: "";
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps strong::before,
.launch-page .launch-page__section--case-packet .launch-page__steps strong::before {
  display: none;
}

.launch-page .launch-page__section--dependency-grid .launch-page__card-grid {
  gap: 18px 30px;
  padding: 30px;
  border: 0;
  border-radius: 10px;
  background: #f4f2fd;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.launch-page .launch-page__section--dependency-grid .launch-page__card-grid article,
.launch-page .launch-page__section.cohesive-page__chapter.launch-page__section--dependency-grid .launch-page__card-grid article {
  min-height: 0;
  padding: 0 0 0 18px;
  border: 0;
  border-left: 3px solid #8f83db;
  background: transparent;
}

.launch-page .launch-page__section--data-table .state-cost-v2__table-wrap {
  margin-top: 22px;
  border: 1px solid #d9dde3;
  border-radius: 0;
}

@media (max-width: 760px) {
  .launch-page__support-options,
  .launch-page__workstream-handoff,
  .launch-page__consultation-sheet ol,
  .launch-page__case-file ul,
  .launch-page__verification-path,
  .launch-page .launch-page__section--dependency-grid .launch-page__card-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page__support-axis {
    gap: 20px;
  }

  .launch-page__support-options {
    gap: 24px;
  }

  .launch-page .launch-page__judgment-path article,
  .launch-page .launch-page__section.cohesive-page__chapter .launch-page__judgment-path article {
    gap: 6px;
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page__judgment-path article > span {
    grid-column: 1;
    grid-row: auto;
  }

  .launch-page__support-spectrum,
  .launch-page__consultation-sheet,
  .launch-page__case-file,
  .launch-page__verification-path {
    padding: 22px 20px;
  }
}

/* Approved California cost-page system applied to the seven supporting
   routes. The content stays intent-specific; spacing, tables, and conversion
   treatment now share one visual grammar. */
.launch-page .cohesive-page__canvas,
.launch-page .launch-page__content-shell.cohesive-page__canvas {
  width: min(100% - 2rem, 880px);
  padding-top: 28px;
  padding-bottom: 22px;
}

.launch-page .cohesive-page__intro {
  max-width: 820px;
  padding: 0 0 22px;
}

.launch-page .cohesive-page__intro h2 {
  margin: 8px 0 14px;
  font-size: clamp(36px, 3.8vw, 50px);
}

.launch-page .cohesive-page__intro > p:not(.alix-pseo__eyebrow) {
  font-size: 17px;
  line-height: 1.6;
}

.launch-page .launch-page__section.cohesive-page__chapter,
.launch-page .launch-page__section.cohesive-page__nested-guide,
.launch-page .launch-page__section.cohesive-page__chapter + .cohesive-page__chapter {
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__chapter:first-of-type {
  padding-top: 28px;
}

.launch-page .launch-page__section.cohesive-page__chapter > h2,
.launch-page .launch-page__section.cohesive-page__nested-guide > h2 {
  max-width: 21ch;
  margin: 8px 0 14px;
  color: #10274f;
  font-size: clamp(36px, 3.8vw, 50px);
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__body > p,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__body > p {
  max-width: 72ch;
  margin: 0 0 14px;
  color: #424853;
  font-size: 16px;
  line-height: 1.62;
}

.launch-page .launch-page__section--navy-process,
.launch-page .launch-page__section--navy-handoff,
.launch-page .launch-page__section--navy-check,
.launch-page .launch-page__section--forms-desk,
.launch-page .launch-page__section--forms-continuation,
.launch-page .launch-page__section--dependency-grid,
.launch-page .launch-page__section--file-checklist,
.launch-page .launch-page__section--legal-scope {
  display: block;
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__card-grid,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__choice-grid,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__card-grid {
  gap: 0;
  margin: 18px 0 0;
  border: 0;
  background: transparent;
  grid-template-columns: minmax(0, 1fr);
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__card-grid article,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__choice-grid article,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__card-grid article {
  padding: 18px 0;
  border: 0;
  border-bottom: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison {
  gap: 0;
  margin: 20px 0;
  overflow: hidden;
  border: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article {
  padding: 22px;
  border: 0;
  border-right: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article:last-child,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article:last-child {
  border-right: 0;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison h3,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison li,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__steps strong,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__steps span,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__checklist li {
  color: #2f3136;
}

.launch-page .state-cost-v2__decision-cta {
  margin: 22px 0 0;
  padding: 24px 26px;
  border-radius: 10px;
  background: #10274f;
}

.launch-page .state-cost-v2__decision-cta h3,
.launch-page .state-cost-v2__decision-cta p,
.launch-page .state-cost-v2__decision-cta small {
  color: #fff;
}

.launch-page .state-cost-v2__decision-cta p {
  color: rgba(255, 255, 255, 0.84);
}

.launch-page .state-cost-v2__decision-cta small {
  color: rgba(255, 255, 255, 0.66);
}

.launch-page .cohesive-page__closing .state-cost-v2__service.state-cost-v2__service--visual {
  margin-top: 0;
  margin-bottom: 22px;
}

.launch-page .cohesive-page__questions > h2 {
  margin-bottom: 18px;
}

.launch-page .cohesive-page__sources {
  margin-top: 22px;
}

@media (max-width: 720px) {
  .launch-page .cohesive-page__canvas,
  .launch-page .launch-page__content-shell.cohesive-page__canvas {
    width: min(100% - 1.5rem, 880px);
    padding-top: 22px;
  }

  .launch-page .launch-page__section.cohesive-page__chapter,
  .launch-page .launch-page__section.cohesive-page__nested-guide,
  .launch-page .launch-page__section.cohesive-page__chapter + .cohesive-page__chapter {
    padding: 18px 0;
  }

  .launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison,
  .launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison {
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article,
  .launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article {
    border-right: 0;
    border-bottom: 1px solid #d9dde3;
  }

  .launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article:last-child,
  .launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 900px) {
  .alix-pseo__hero-grid,
  .alix-pseo__section-head,
  .alix-pseo__contact,
  .alix-pseo__cta {
    grid-template-columns: 1fr;
  }

  .alix-pseo__section-head {
    row-gap: 20px;
  }

  .alix-pseo__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .alix-pseo__source-stamp {
    max-width: 480px;
  }
}

@media (max-width: 620px) {
  .alix-pseo__container {
    width: min(100% - 2rem, 75rem);
  }

  .alix-pseo__hero {
    margin: 0.5rem;
    padding: 3rem 0 3.25rem;
    /* Fixed px, matching the mobile header's measured 68.6px bottom edge at
       390x844 (`.header` at this tier is not fluid either), plus a ~24px gap. */
    padding-top: 88px;
  }

  .alix-pseo__hero::after {
    right: -140px;
    bottom: -170px;
    width: 220px;
    height: 220px;
    border-width: 35px;
  }

  /* No character cap on mobile: any narrow cap strands single short words on a
     line of their own at this width. */
  .alix-pseo__title {
    max-width: 100%;
    font-size: clamp(34px, 10vw, 41px);
    line-height: 1.04;
  }

  /* Full width and always visible: this card carries reader-facing value. */
  .alix-pseo__source-stamp {
    display: block;
    max-width: none;
    width: 100%;
  }

  /* 2 columns x 4 rows. Eight items fill every row, so there are zero empty
     cells; a wider track count at this width leaves blanks
     that read as a half-filled table. Every tab is visible without scrolling and
     the active pill is always on screen, which a horizontal scroller cannot
     guarantee. No overflow here, so no clipping and no scroll affordance. */
  .alix-pseo__route-strip {
    width: calc(100% - 2rem);
    margin-top: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    /* A 999px radius on a two-row bar reads as a blob; square it off. */
    border-radius: 16px;
  }

  /* Inactive tabs need a visible outline of their own. Without one, a 2x2 block
     of loose text beside a single heavy navy pill does not read as a tab set. */
  .alix-pseo__route-link {
    padding: 11px 10px;
    border: 1px solid var(--_alix-website-brand---darker-tan);
  }

  .alix-pseo__route-link[aria-current="page"] {
    border-color: var(--_alix-website-brand---navy);
  }

  .alix-pseo__cards,
  .alix-pseo__cards:has(> :nth-child(4):last-child),
  .alix-pseo__steps,
  .alix-pseo__steps:has(> :nth-child(4):last-child) {
    grid-template-columns: 1fr;
  }

  .alix-pseo__step {
    min-height: auto;
  }

  .alix-pseo__source-item {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "name"
      "meta";
    gap: 6px;
    align-items: start;
  }

  .alix-pseo__source-item > span,
  .alix-pseo__source-item time {
    align-self: start;
    text-align: left;
  }

  .alix-pseo__contact-meta dl {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

/* Narrow tier for the content modules. */
@media (max-width: 620px) {
  .alix-source-disclosure summary {
    padding: 16px;
  }

  .alix-source-disclosure__content {
    padding: 0 12px 12px;
  }

  .alix-pseo__ledger-head {
    display: none;
  }

  .alix-pseo__ledger-head + .alix-pseo__ledger {
    border-radius: 12px;
  }

  .alix-pseo__ledger-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 16px 18px;
  }

  .alix-pseo__ledger dt {
    color: #2f3136;
    font-size: 12px;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  .alix-pseo__compare,
  .alix-pseo__figures {
    grid-template-columns: minmax(0, 1fr);
  }

  .alix-pseo__faq-question {
    padding: 16px;
    font-size: 18px;
  }

  .alix-pseo__faq-answer {
    padding: 0 16px 16px;
  }

  .alix-pseo__steprail li {
    padding-left: 46px;
  }

  .alix-pseo__checklist li {
    padding: 14px 16px 14px 50px;
  }

  .alix-pseo__checklist li::before {
    left: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .alix-pseo__card,
  .alix-pseo__related-link {
    transition: none;
  }
}

/* Preserve the semantic comparison table on mobile and make the interaction
   explicit. A single source of truth here prevents later media queries from
   switching the same element between table and card layouts. */
@media (max-width: 620px) {
  .state-cost-v2 .state-cost-v2__table-wrap {
    margin-bottom: 8px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
  }

  .state-cost-v2 table {
    display: table;
    width: 100%;
    min-width: 660px;
  }

  .state-cost-v2 thead { position: static; display: table-header-group; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; clip-path: none; }
  .state-cost-v2 tbody { display: table-row-group; }
  .state-cost-v2 tr { display: table-row; }
  .state-cost-v2 th,
  .state-cost-v2 td { display: table-cell; width: auto; padding: 12px; border: 1px solid #d1d5db; background: #fff; }
  .state-cost-v2 thead th { background: #f9fafb; }
  .state-cost-v2 tbody tr:nth-child(2),
  .state-cost-v2 tbody tr:nth-child(2) > * { background: #fff; }
  .state-cost-v2 tbody th { font-size: 14px; }
  .state-cost-v2 tbody td::before { display: none; content: none; }

  .state-cost-v2__table-hint {
    display: block;
    margin: 0 0 18px;
    color: #59606c;
    font-size: 12px;
    line-height: 1.4;
  }
}

/* Intent-led California launch system --------------------------------------
   Shared governance stays consistent, but each page family gets a visual
   instrument that belongs to its subject: forms, eligibility, timing, legal
   scope, or local court tools. */
.launch-page .launch-page__hero {
  min-height: 640px;
  align-items: stretch;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
}

.launch-page__hero-visual {
  position: relative;
  min-width: 0;
  align-self: stretch;
  overflow: hidden;
}

.launch-page__hero-visual--photo {
  min-height: 440px;
  margin-left: clamp(24px, 4vw, 58px);
  border-radius: 22px 160px 22px 22px;
  background: #dceff1;
}

.launch-page__hero-visual--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.launch-page__hero-visual--lawyer {
  border-radius: 22px;
}

[data-template="state-probate-lawyer"] .launch-page__hero-visual--lawyer img {
  object-position: 50% 35%;
}

[data-template="county-probate-lawyer"] .launch-page__hero-visual--lawyer {
  border-radius: 150px 22px 22px 22px;
}

[data-template="county-probate-lawyer"] .launch-page__hero-visual--lawyer img {
  object-position: 50% 30%;
}

[data-template="state-probate-forms"] .launch-page__hero {
  background: #f7f8fa;
}

.launch-page__hero-visual--forms {
  align-self: center;
  padding: 34px;
  border: 1px solid #d9dde4;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 24px 50px rgba(12, 37, 83, 0.1);
  transform: rotate(1.4deg);
}

.launch-page__hero-visual--forms::before {
  position: absolute;
  z-index: -1;
  inset: 18px -16px -18px 22px;
  border: 1px solid #d9dde4;
  border-radius: 16px;
  background: #eef1f5;
  content: "";
  transform: rotate(-3deg);
}

.launch-page__hero-visual--forms > p,
.launch-page__hero-visual--timeline > p,
.launch-page__hero-visual--county > p,
.launch-page__hero-visual--tools > p {
  margin: 0 0 22px;
  color: rgba(12, 37, 83, 0.62);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.launch-page__hero-visual--forms > div {
  display: grid;
  gap: 4px 16px;
  padding: 17px 0;
  border-top: 1px solid #dfe3e8;
  grid-template-columns: 76px minmax(0, 1fr);
}

.launch-page__hero-visual--forms > div span {
  color: var(--_alix-website-brand---blue);
  font-size: 18px;
  font-weight: 750;
  grid-row: 1 / 3;
}

.launch-page__hero-visual--forms > div strong {
  color: var(--_alix-website-brand---navy);
  font-size: 17px;
}

.launch-page__hero-visual--forms > div small {
  color: #667085;
  font-size: 13px;
}

.launch-page__hero-visual--forms > em {
  display: block;
  margin-top: 18px;
  color: #667085;
  font-size: 12px;
  font-style: normal;
}

[data-template="state-small-estate"] .launch-page__hero {
  background: #eef8f8;
}

.launch-page__hero-visual--eligibility {
  display: flex;
  min-height: 440px;
  padding: clamp(32px, 5vw, 58px);
  align-self: center;
  border-radius: 180px 180px 20px 20px;
  background: var(--_alix-website-brand---navy);
  color: #fff;
  flex-direction: column;
  justify-content: center;
}

.launch-page__hero-visual--eligibility > p {
  margin: 0 0 18px;
  color: var(--_alix-website-brand---light-blue);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.launch-page__hero-visual--eligibility > strong {
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(58px, 6vw, 88px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.9;
}

.launch-page__hero-visual--eligibility > span {
  max-width: 32ch;
  margin-top: 18px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 15px;
  line-height: 1.45;
}

.launch-page__hero-visual--eligibility dl {
  display: grid;
  gap: 12px;
  margin: 34px 0 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.launch-page__hero-visual--eligibility dl div {
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
}

.launch-page__hero-visual--eligibility dt {
  color: rgba(255, 255, 255, 0.6);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.launch-page__hero-visual--eligibility dd {
  margin: 5px 0 0;
  font-size: 17px;
  font-weight: 700;
}

[data-template="state-probate-timeline"] .launch-page__hero {
  background: #f4f2fd;
}

.launch-page__hero-visual--timeline {
  align-self: center;
  padding: 38px 40px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 56px rgba(42, 35, 92, 0.1);
}

.launch-page__hero-visual--timeline ol {
  position: relative;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.launch-page__hero-visual--timeline ol::before {
  position: absolute;
  top: 10px;
  bottom: 12px;
  left: 5px;
  width: 1px;
  background: #b8afea;
  content: "";
}

.launch-page__hero-visual--timeline li {
  position: relative;
  display: grid;
  gap: 3px;
  padding: 0 0 24px 30px;
}

.launch-page__hero-visual--timeline li:last-child {
  padding-bottom: 0;
}

.launch-page__hero-visual--timeline li::before {
  position: absolute;
  top: 6px;
  left: 0;
  width: 11px;
  height: 11px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--_alix-website-brand---purple);
  box-shadow: 0 0 0 1px #9a8ee6;
  content: "";
}

.launch-page__hero-visual--timeline span {
  color: #756b9b;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.launch-page__hero-visual--timeline strong {
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 20px;
  font-weight: 400;
}

[data-template="county-probate-guide"] .launch-page__hero,
[data-template="county-probate-court"] .launch-page__hero {
  background: #edf4f7;
}

.launch-page__hero-visual--county {
  align-self: center;
  padding: 42px;
  border-radius: 18px;
  background: var(--_alix-website-brand---navy);
  color: #fff;
}

.launch-page__hero-visual--county > p {
  color: var(--_alix-website-brand---light-blue);
}

.launch-page__hero-visual--county > strong {
  display: block;
  margin-bottom: 30px;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(34px, 3.5vw, 50px);
  font-weight: 400;
  line-height: 1;
}

.launch-page__hero-visual--county ol {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  list-style: none;
}

.launch-page__hero-visual--county li {
  display: grid;
  gap: 16px;
  padding: 17px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
  grid-template-columns: 30px minmax(0, 1fr);
}

.launch-page__hero-visual--county li span {
  color: var(--_alix-website-brand---light-blue);
  font-size: 11px;
  font-weight: 700;
}

.launch-page__hero-visual--tools {
  align-self: center;
  padding: 34px;
  border: 1px solid #d4e0e6;
  border-radius: 18px;
  background: #fff;
}

.launch-page__hero-visual--tools a {
  display: grid;
  gap: 4px;
  padding: 18px 0;
  border-top: 1px solid #dce5e9;
  color: var(--_alix-website-brand---navy);
  text-decoration: none;
}

.launch-page__hero-visual--tools a::after {
  position: absolute;
  right: 34px;
  color: var(--_alix-website-brand---blue);
  content: "↗";
  font-size: 17px;
}

.launch-page__hero-visual--tools a strong {
  font-size: 18px;
}

.launch-page__hero-visual--tools a span {
  color: #667085;
  font-size: 13px;
}

.launch-page .launch-page__signal-section {
  padding: clamp(48px, 5vw, 68px) 0;
}

.launch-page .launch-page__signal-section .alix-pseo__section-head {
  margin-bottom: 34px;
  align-items: start;
}

.launch-page .launch-page__signal-section .alix-pseo__heading {
  max-width: 18ch;
  font-size: clamp(34px, 3vw, 46px);
}

.launch-page .launch-page__signals {
  gap: 0;
  border-top: 1px solid #d9dde3;
  border-bottom: 1px solid #d9dde3;
}

.launch-page .launch-page__signals .state-cost-v2__snapshot {
  min-height: 0;
  padding: 26px 28px 28px;
  border-right: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
}

.launch-page .launch-page__signals .state-cost-v2__snapshot:last-child {
  border-right: 0;
}

.launch-page .launch-page__signals .state-cost-v2__snapshot strong {
  margin-bottom: 18px;
  font-size: clamp(34px, 3.2vw, 48px);
}

.launch-page__plain-summary {
  padding: clamp(54px, 7vw, 88px) 0;
  background: #fff;
}

.launch-page__plain-summary-copy {
  max-width: 780px;
}

.launch-page__plain-summary h2 {
  max-width: 18ch;
  margin: 0 0 24px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.04;
}

.launch-page__plain-summary p {
  max-width: 70ch;
  margin: 0;
  color: #42454b;
  font-size: clamp(18px, 1.7vw, 21px);
  line-height: 1.55;
}

.launch-page__plain-summary p + p {
  margin-top: 16px;
}

[data-template="state-probate-forms"] .launch-page__signals .state-cost-v2__snapshot strong {
  color: var(--_alix-website-brand---blue);
  font-family: var(--_alix-website-brand---font-body);
  font-size: 24px;
  font-weight: 750;
  letter-spacing: 0;
}

[data-template="state-probate-timeline"] .launch-page__signals {
  border-color: #cec7ed;
}

[data-template="state-small-estate"] .launch-page__signals .state-cost-v2__snapshot:first-child {
  background: #eef8f8;
}

.launch-page .launch-page__content-shell {
  width: min(100% - 2rem, 1040px);
  padding-block: clamp(52px, 7vw, 88px);
  grid-template-columns: minmax(0, 1fr);
}

[data-template="state-probate-forms"] .launch-page__content-shell,
[data-template="county-probate-court"] .launch-page__content-shell {
  width: min(100% - 2rem, 1160px);
}

.launch-page .launch-page__section {
  padding-bottom: clamp(46px, 6vw, 72px);
}

.launch-page .launch-page__section + .launch-page__section {
  padding-top: clamp(46px, 6vw, 72px);
}

.launch-page .launch-page__section > h2 {
  max-width: 19ch;
  font-size: clamp(38px, 4vw, 54px);
}

.launch-page .state-cost-v2__service {
  display: grid;
  width: 100%;
  margin: 10px 0 clamp(54px, 7vw, 80px);
  padding: 28px 30px;
  align-items: center;
  column-gap: 24px;
  border-radius: 14px;
  grid-template-columns: 48px minmax(0, 1fr) auto;
}

.launch-page .state-cost-v2__service .state-cost-v2__service-mark {
  width: 38px;
  margin: 0;
  grid-column: 1;
  grid-row: 1 / 5;
}

.launch-page .state-cost-v2__service .alix-pseo__eyebrow,
.launch-page .state-cost-v2__service h2,
.launch-page .state-cost-v2__service > p:not(.alix-pseo__eyebrow) {
  grid-column: 2;
}

.launch-page .state-cost-v2__service h2 {
  max-width: none;
  margin: 4px 0 6px;
  font-size: 32px;
}

.launch-page .state-cost-v2__service > p:not(.alix-pseo__eyebrow) {
  margin: 0;
}

.launch-page .state-cost-v2__service .alix-pseo__button {
  min-width: 184px;
  grid-column: 3;
  grid-row: 1 / 4;
}

.launch-page .state-cost-v2__service small {
  margin: 7px 0 0;
  grid-column: 2;
}

.launch-page__questions .alix-pseo__faq {
  gap: 0;
  border-top: 1px solid #cfd3da;
}

.launch-page__questions .alix-pseo__faq-item,
.launch-page__questions .alix-pseo__faq-item[open] {
  border: 0;
  border-bottom: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
}

.launch-page__questions .alix-pseo__faq-question {
  padding: 22px 48px 22px 0;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 23px;
  font-weight: 400;
  line-height: 1.25;
}

.launch-page__questions .alix-pseo__faq-mark {
  right: 2px;
}

.launch-page__questions .alix-pseo__faq-answer {
  max-width: 760px;
  padding: 0 48px 22px 0;
  color: #4e5561;
  font-size: 16px;
  line-height: 1.6;
}

@media (max-width: 960px) {
  .launch-page .launch-page__hero {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page__hero-visual {
    min-height: 360px;
    margin: 34px 0 0;
  }

  .launch-page__hero-visual--forms,
  .launch-page__hero-visual--timeline,
  .launch-page__hero-visual--county,
  .launch-page__hero-visual--tools {
    min-height: 0;
  }
}

@media (max-width: 720px) {
  .launch-page .launch-page__hero {
    padding: 88px 18px 20px;
  }

  .launch-page .launch-page__hero h1 {
    font-size: clamp(40px, 11vw, 48px);
  }

  .launch-page__hero-visual {
    min-height: 280px;
    margin-top: 26px;
  }

  .launch-page__hero-visual--photo,
  [data-template="county-probate-lawyer"] .launch-page__hero-visual--lawyer {
    margin-left: 0;
    border-radius: 16px;
  }

  .launch-page__hero-visual--forms {
    min-height: 0;
    padding: 24px 20px;
    transform: none;
  }

  .launch-page__hero-visual--forms::before {
    display: none;
  }

  .launch-page__hero-visual--forms > div {
    grid-template-columns: 66px minmax(0, 1fr);
  }

  .launch-page__hero-visual--eligibility {
    min-height: 360px;
    padding: 44px 28px 30px;
    border-radius: 130px 130px 16px 16px;
  }

  .launch-page__hero-visual--timeline,
  .launch-page__hero-visual--county,
  .launch-page__hero-visual--tools {
    min-height: 0;
    padding: 26px 22px;
  }

  .launch-page .launch-page__signal-section .alix-pseo__section-head {
    margin-bottom: 26px;
  }

  .launch-page .launch-page__signals {
    border: 0;
  }

  .launch-page .launch-page__signals .state-cost-v2__snapshot,
  .launch-page .launch-page__signals .state-cost-v2__snapshot:last-child {
    padding: 22px 0;
    border-right: 0;
    border-bottom: 1px solid #d9dde3;
  }

  [data-template="state-small-estate"] .launch-page__signals .state-cost-v2__snapshot:first-child {
    padding-inline: 18px;
  }

  .launch-page .launch-page__content-shell {
    padding-block: 48px;
  }

  .launch-page .launch-page__section > h2 {
    font-size: 36px;
  }

  .launch-page .state-cost-v2__service {
    padding: 24px 22px;
    grid-template-columns: 36px minmax(0, 1fr);
  }

  .launch-page .state-cost-v2__service .state-cost-v2__service-mark {
    width: 30px;
  }

  .launch-page .state-cost-v2__service .alix-pseo__eyebrow,
  .launch-page .state-cost-v2__service h2,
  .launch-page .state-cost-v2__service > p:not(.alix-pseo__eyebrow),
  .launch-page .state-cost-v2__service small,
  .launch-page .state-cost-v2__service .alix-pseo__button {
    grid-column: 2;
  }

  .launch-page .state-cost-v2__service .alix-pseo__button {
    min-width: 0;
    margin-top: 18px;
    grid-row: auto;
  }

  .launch-page .state-cost-v2__service h2 {
    font-size: 29px;
  }

  .launch-page__questions .alix-pseo__faq-question {
    padding: 19px 42px 19px 0;
    font-size: 20px;
  }

  .launch-page__questions .alix-pseo__faq-answer {
    padding: 0 0 19px;
  }
}

.state-cost-v2__content-shell--solo {
  width: min(100% - 2rem, 1200px);
  grid-template-columns: minmax(0, 1fr) 280px;
}

.state-cost-v2__content-shell--solo .state-cost-v2__content {
  width: 100%;
}

.state-cost-v2__decision-cta {
  display: grid;
  gap: 14px;
  margin: 20px 0 0;
  padding: 24px 26px;
  border: 0;
  border-radius: 10px;
  background: #10274f;
  color: #fff;
}

.state-cost-v2__decision-cta h3,
.state-cost-v2__decision-cta p,
.state-cost-v2__decision-cta small {
  margin: 0;
}

.state-cost-v2__decision-cta h3 {
  color: #fff;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(25px, 2.4vw, 32px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.08;
}

.state-cost-v2__decision-cta p {
  color: rgba(255, 255, 255, 0.84);
  font-size: 15px;
  line-height: 1.6;
}

.state-cost-v2__decision-cta .alix-pseo__button {
  width: fit-content;
  margin-top: 4px;
}

.state-cost-v2__decision-cta .alix-pseo__button:hover,
.state-cost-v2__decision-cta .alix-pseo__button:focus-visible {
  background: var(--_alix-website-brand---light-blue);
  color: #10274f;
}

.state-cost-v2__decision-cta small {
  color: rgba(255, 255, 255, 0.66);
  font-size: 12px;
}

.state-cost-v2__decision-cta--compact {
  position: sticky;
  top: 104px;
  margin-top: clamp(52px, 7vw, 82px);
  padding: 26px 22px;
  background: #10274f;
  color: #fff;
}

.state-cost-v2__decision-cta--compact h3 {
  color: #fff;
  font-size: 27px;
}

.state-cost-v2__decision-cta--compact p {
  color: rgba(255, 255, 255, 0.84);
}

.state-cost-v2__decision-cta--compact small {
  color: rgba(255, 255, 255, 0.66);
}

.city-cost-v2__hero-ledger {
  display: flex;
  padding: clamp(34px, 5vw, 58px);
  align-self: stretch;
  border-radius: 150px 150px 20px 20px;
  background: var(--_alix-website-brand---navy);
  color: #fff;
  flex-direction: column;
  justify-content: center;
}

.city-cost-v2__hero-ledger > p {
  margin: 0 0 22px;
  color: var(--_alix-website-brand---light-blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.city-cost-v2__hero-ledger dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.city-cost-v2__hero-ledger dl div {
  display: grid;
  gap: 16px;
  padding: 18px 0;
  align-items: baseline;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  grid-template-columns: minmax(0, 1fr) auto;
}

.city-cost-v2__hero-ledger dt {
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
}

.city-cost-v2__hero-ledger dd {
  margin: 0;
  color: #fff;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(22px, 2.4vw, 32px);
  text-align: right;
}

.city-cost-v2__hero-ledger > small {
  margin-top: 22px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 12px;
}

.state-cost-v2__content-shell--solo #faqs .alix-pseo__faq {
  gap: 0;
  border-top: 1px solid #cfd3da;
}

.state-cost-v2__content-shell--solo #faqs .alix-pseo__faq-item,
.state-cost-v2__content-shell--solo #faqs .alix-pseo__faq-item[open] {
  border: 0;
  border-bottom: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
}

.state-cost-v2__content-shell--solo #faqs .alix-pseo__faq-question {
  padding: 22px 48px 22px 0;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 23px;
  font-weight: 400;
}

.state-cost-v2__content-shell--solo #faqs .alix-pseo__faq-answer {
  max-width: 760px;
  padding: 0 48px 22px 0;
  color: #4e5561;
  font-size: 16px;
  line-height: 1.6;
}

@media (max-width: 720px) {
  .city-cost-v2__hero-ledger {
    min-height: 360px;
    padding: 44px 24px 28px;
    border-radius: 120px 120px 16px 16px;
  }

  .city-cost-v2__hero-ledger dl div {
    gap: 4px;
    grid-template-columns: minmax(0, 1fr);
  }

  .city-cost-v2__hero-ledger dd {
    text-align: left;
  }

  .state-cost-v2__content-shell--solo #faqs .alix-pseo__faq-question {
    padding: 19px 42px 19px 0;
    font-size: 20px;
  }

  .state-cost-v2__content-shell--solo #faqs .alix-pseo__faq-answer {
    padding: 0 0 19px;
  }
}

/* Editorial content modules: use rules and information hierarchy in place of
   a repeated dashboard-card pattern. */
.launch-page .launch-page__card-grid {
  gap: 24px;
}

.launch-page .launch-page__card-grid article {
  padding: 20px 0 0;
  border: 0;
  border-top: 2px solid var(--_alix-website-brand---navy);
  border-radius: 0;
  background: transparent;
}

.launch-page .launch-page__steps {
  gap: 0;
  border-top: 1px solid #cfd3da;
}

.launch-page .launch-page__steps li {
  padding: 20px 0;
  border-bottom: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
  grid-template-columns: minmax(190px, 0.38fr) minmax(0, 1fr);
}

.launch-page .launch-page__checklist {
  gap: 0 28px;
  border-top: 1px solid #cfd3da;
}

.launch-page .launch-page__checklist li {
  padding: 17px 8px 17px 34px;
  border: 0;
  border-bottom: 1px solid #cfd3da;
  border-radius: 0;
}

.launch-page .launch-page__checklist li::before {
  top: 17px;
  left: 5px;
}

[data-template="state-small-estate"] .launch-page__card-grid {
  grid-template-columns: minmax(0, 1fr);
}

[data-template="state-small-estate"] .launch-page__card-grid article {
  display: grid;
  gap: 24px;
  align-items: start;
  grid-template-columns: 210px minmax(0, 1fr);
}

[data-template="state-small-estate"] .launch-page__card-grid article h3 {
  margin: 0;
}

[data-template="state-probate-lawyer"] .launch-page__card-grid article,
[data-template="county-probate-lawyer"] .launch-page__card-grid article {
  border-top-color: var(--_alix-website-brand---purple);
}

@media (max-width: 720px) {
  .launch-page .launch-page__steps li,
  [data-template="state-small-estate"] .launch-page__card-grid article {
    gap: 8px;
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page .launch-page__checklist {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Intent-led actions: each template exposes the visitor's next task before
   the first explanatory section. These are page actions, not a repeated sales
   treatment, so official tools and in-page decisions can sit beside Alix. */
.launch-page__hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.launch-page__hero-action {
  display: inline-flex;
  min-height: 46px;
  padding: 12px 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--_alix-website-brand---navy);
  border-radius: 999px;
  color: var(--_alix-website-brand---navy);
  font-size: 14px;
  font-weight: 650;
  font-family: inherit;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.launch-page__hero-action:hover,
.launch-page__hero-action:focus-visible {
  background: #e5fbfb;
  color: var(--_alix-website-brand---navy);
  transform: translateY(-1px);
}

.launch-page__hero-action--primary {
  border-color: var(--_alix-website-brand---navy);
  background: var(--_alix-website-brand---navy);
  color: #fff;
}

.launch-page__hero-action--primary:hover,
.launch-page__hero-action--primary:focus-visible {
  background: var(--_alix-website-brand---purple);
  color: var(--_alix-website-brand---navy);
}

.launch-page__choice-grid {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid #cfd3da;
  border-radius: 18px;
  background: #cfd3da;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.launch-page__choice-grid article {
  min-width: 0;
  padding: 26px 24px;
  background: #fff;
}

.launch-page__choice-grid article.is-alix {
  background: #effcfc;
}

.launch-page__choice-grid article > p {
  margin: 0 0 12px;
  color: #5c6370;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.launch-page__choice-grid article h3 {
  margin: 0 0 12px;
  font-size: clamp(24px, 2.4vw, 34px);
}

.launch-page__choice-grid article span {
  display: block;
  color: #4e5561;
  font-size: 16px;
  line-height: 1.6;
}

.launch-page__text-action {
  display: inline-flex;
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  color: var(--_alix-website-brand---navy);
  font-weight: 700;
  text-decoration: none;
}

.state-cost-v2__service .state-cost-v2__service-title,
.launch-page .state-cost-v2__service .state-cost-v2__service-title {
  margin: 0;
  color: #fff;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(28px, 3.2vw, 42px);
  font-weight: 400;
  line-height: 1.03;
}

.alix-pseo__consultation-button {
  border: 0;
  cursor: pointer;
  font-family: inherit;
}

.launch-page__sticky-cta {
  position: fixed;
  z-index: 40;
  right: 24px;
  bottom: 24px;
  display: grid;
  width: min(340px, calc(100vw - 48px));
  gap: 12px;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 20px;
  background: var(--_alix-website-brand---navy);
  box-shadow: 0 20px 55px rgba(12, 32, 69, .24);
  color: #fff;
  opacity: 0;
  pointer-events: none;
  transform: translateY(18px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.launch-page__sticky-cta.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.launch-page__sticky-cta > p {
  margin: 0;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 27px;
  line-height: 1.04;
}

.launch-page__sticky-cta > span {
  color: rgba(255, 255, 255, .76);
  font-size: 14px;
  line-height: 1.5;
}

.launch-page__sticky-cta .alix-pseo__button {
  justify-self: start;
}

@media (max-width: 720px) {
  .launch-page__hero-actions {
    display: grid;
    margin-top: 20px;
  }

  .launch-page__hero-action {
    width: 100%;
  }

  .launch-page__choice-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .state-cost-v2__service .state-cost-v2__service-title,
  .launch-page .state-cost-v2__service .state-cost-v2__service-title {
    font-size: 30px;
  }
}

@media (max-width: 1279px) {
  .launch-page__sticky-cta {
    display: none;
  }
}

/* Research-to-interface layer ---------------------------------------------
   The page family owns the section sequence. Shared components provide the
   grammar, while these layouts give each query a different working surface. */
.launch-page__hero-visual--handoff {
  display: grid;
  align-self: center;
  gap: 12px;
  padding: clamp(28px, 4vw, 44px);
  border-radius: 20px;
  background: var(--_alix-website-brand---navy);
  color: #fff;
  box-shadow: 0 28px 62px rgba(12, 37, 83, 0.18);
}

.launch-page__hero-visual--handoff > p {
  margin: 0 0 8px;
  color: var(--_alix-website-brand---light-blue);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.launch-page__handoff-track {
  display: grid;
  gap: 7px;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
}

.launch-page__handoff-track span,
.launch-page__handoff-result span {
  color: rgba(255, 255, 255, 0.64);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.launch-page__handoff-track strong {
  color: #fff;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(19px, 2vw, 25px);
  font-weight: 400;
  line-height: 1.15;
}

.launch-page__handoff-result {
  display: grid;
  gap: 6px;
  margin-top: 4px;
  padding: 20px;
  border-radius: 12px;
  background: var(--_alix-website-brand---purple);
  color: var(--_alix-website-brand---navy);
}

.launch-page__handoff-result span {
  color: rgba(12, 37, 83, 0.66);
}

.launch-page__handoff-result strong {
  font-size: 17px;
  line-height: 1.35;
}

.launch-page__hero-visual--local-handoff {
  border-radius: 150px 20px 20px 20px;
}

.launch-page .launch-page__section[data-section-layout] {
  position: relative;
}

.launch-page .launch-page__section--decision .launch-page__card-grid,
.launch-page .launch-page__section--decision .launch-page__choice-grid {
  margin-top: 34px;
}

.launch-page .launch-page__section--decision .launch-page__card-grid article {
  min-height: 190px;
  padding: 24px 0 0;
}

.launch-page .launch-page__section--decision .launch-page__card-grid article:nth-child(2) {
  border-top-color: var(--_alix-website-brand---blue);
}

.launch-page .launch-page__section--decision .launch-page__card-grid article:nth-child(3) {
  border-top-color: #8e82dc;
}

.launch-page .launch-page__section--navy-process,
.launch-page .launch-page__section--navy-handoff,
.launch-page .launch-page__section--navy-check {
  margin: clamp(8px, 2vw, 20px) 0;
  padding: clamp(34px, 5vw, 58px);
  border: 0;
  border-radius: 22px;
  background: var(--_alix-website-brand---navy);
  color: #fff;
}

.launch-page .launch-page__section--navy-process + .launch-page__section,
.launch-page .launch-page__section--navy-handoff + .launch-page__section,
.launch-page .launch-page__section--navy-check + .launch-page__section {
  border-top: 0;
}

.launch-page .launch-page__section--navy-process > .alix-pseo__eyebrow,
.launch-page .launch-page__section--navy-handoff > .alix-pseo__eyebrow,
.launch-page .launch-page__section--navy-check > .alix-pseo__eyebrow {
  color: var(--_alix-website-brand---light-blue);
}

.launch-page .launch-page__section--navy-process > h2,
.launch-page .launch-page__section--navy-handoff > h2,
.launch-page .launch-page__section--navy-check > h2,
.launch-page .launch-page__section--navy-process .launch-page__body p,
.launch-page .launch-page__section--navy-handoff .launch-page__body p,
.launch-page .launch-page__section--navy-check .launch-page__body p {
  color: #fff;
}

.launch-page .launch-page__section--navy-process .launch-page__steps {
  border-top-color: rgba(255, 255, 255, 0.24);
}

.launch-page .launch-page__section--navy-process .launch-page__steps li {
  border-bottom-color: rgba(255, 255, 255, 0.24);
}

.launch-page .launch-page__section--navy-process .launch-page__steps strong,
.launch-page .launch-page__section--navy-process .launch-page__steps span {
  color: #fff;
}

.launch-page .launch-page__section--navy-process .launch-page__steps strong::before {
  color: var(--_alix-website-brand---light-blue);
}

.launch-page .launch-page__section--navy-handoff .launch-page__comparison {
  gap: 14px;
  background: transparent;
}

.launch-page .launch-page__section--navy-handoff .launch-page__comparison article {
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.07);
}

.launch-page .launch-page__section--navy-handoff .launch-page__comparison h3,
.launch-page .launch-page__section--navy-handoff .launch-page__comparison li {
  color: #fff;
}

.launch-page__section-action {
  display: flex;
  margin-top: 28px;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.launch-page__section-action .alix-pseo__button {
  margin-top: 0;
}

.launch-page__section-action span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
}

.launch-page .launch-page__section--navy-check .launch-page__checklist {
  border-top-color: rgba(255, 255, 255, 0.24);
}

.launch-page .launch-page__section--navy-check .launch-page__checklist li {
  border-bottom-color: rgba(255, 255, 255, 0.24);
  color: #fff;
}

.launch-page .launch-page__section--navy-check .launch-page__checklist li::before {
  color: var(--_alix-website-brand---light-blue);
}

.launch-page .launch-page__section--forms-desk,
.launch-page .launch-page__section--forms-continuation {
  padding: clamp(32px, 5vw, 54px);
  border: 1px solid #d9dde4;
  border-radius: 18px;
  background: #f8f9fb;
}

.launch-page .launch-page__section--forms-continuation {
  margin-top: 18px;
  border-color: #d5e8eb;
  background: #eef8f8;
}

.launch-page .launch-page__section--forms-desk + .launch-page__section--forms-continuation {
  padding-top: clamp(32px, 5vw, 54px);
  border-top: 1px solid #d5e8eb;
}

.launch-page .launch-page__section--forms-desk .launch-page__form-list a,
.launch-page .launch-page__section--forms-continuation .launch-page__form-list a {
  border: 0;
  border-top: 1px solid #d9dde4;
  border-radius: 0;
  background: #fff;
}

.launch-page .launch-page__section--forms-continuation .launch-page__form-list a {
  background: rgba(255, 255, 255, 0.7);
}

.launch-page .launch-page__section--route-ledger .launch-page__card-grid {
  gap: 0;
  border-top: 1px solid #cfd3da;
}

.launch-page .launch-page__section--route-ledger .launch-page__card-grid article {
  min-height: 0;
  padding: 24px 0;
  border-top: 0;
  border-bottom: 1px solid #cfd3da;
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps {
  position: relative;
  margin-left: 18px;
  border-top: 0;
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps::before {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 7px;
  width: 2px;
  background: #c9c1ef;
  content: "";
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps li {
  position: relative;
  padding: 18px 0 24px 42px;
  border-bottom: 0;
}

.launch-page .launch-page__section--timeline-rail .launch-page__steps li::before {
  position: absolute;
  z-index: 1;
  top: 24px;
  left: 1px;
  width: 14px;
  height: 14px;
  border: 4px solid #fff;
  border-radius: 50%;
  background: var(--_alix-website-brand---purple);
  box-shadow: 0 0 0 1px #9488df;
  content: "";
}

.launch-page .launch-page__section--dependency-grid {
  padding: clamp(32px, 5vw, 52px);
  border-radius: 20px;
  background: #f4f2fd;
}

.launch-page .launch-page__section--dependency-grid .launch-page__card-grid article {
  padding: 22px;
  border: 1px solid #d5cff4;
  border-radius: 12px;
  background: #fff;
}

.launch-page .launch-page__section--tools-desk .launch-page__link-grid {
  gap: 1px;
  overflow: hidden;
  border: 1px solid #d4e0e6;
  border-radius: 18px;
  background: #d4e0e6;
}

.launch-page .launch-page__section--tools-desk .launch-page__link-grid a {
  min-height: 150px;
  padding: 24px;
  border: 0;
  border-radius: 0;
}

.launch-page .launch-page__section--legal-scope {
  display: grid;
  gap: 18px 54px;
  align-items: start;
  grid-template-columns: minmax(230px, 0.38fr) minmax(0, 1fr);
}

.launch-page .launch-page__section--legal-scope > .alix-pseo__eyebrow,
.launch-page .launch-page__section--legal-scope > h2 {
  grid-column: 1;
}

.launch-page .launch-page__section--legal-scope > h2 {
  margin-top: 0;
}

.launch-page .launch-page__section--legal-scope > .launch-page__body {
  grid-column: 2;
  grid-row: 1 / 3;
}

.launch-page .launch-page__section--file-checklist {
  padding: clamp(32px, 5vw, 54px);
  border-radius: 20px;
  background: var(--_alix-website-brand---tan);
}

.launch-page .launch-page__section--file-checklist .launch-page__steps,
.launch-page .launch-page__section--file-checklist .launch-page__checklist {
  border-top-color: #c8c5c0;
}

.launch-page .launch-page__section--handoff .launch-page__comparison {
  gap: 1px;
  overflow: hidden;
  border: 1px solid #cfd3da;
  border-radius: 18px;
  background: #cfd3da;
}

.launch-page .launch-page__section--handoff .launch-page__comparison article {
  padding: 28px;
  border: 0;
  border-radius: 0;
  background: #fff;
}

@media (max-width: 960px) {
  .launch-page__hero-visual--local-handoff {
    border-radius: 20px 120px 20px 20px;
  }

  .launch-page .launch-page__section--legal-scope {
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page .launch-page__section--legal-scope > .alix-pseo__eyebrow,
  .launch-page .launch-page__section--legal-scope > h2,
  .launch-page .launch-page__section--legal-scope > .launch-page__body {
    grid-column: 1;
    grid-row: auto;
  }
}

@media (max-width: 720px) {
  .launch-page__hero-visual--handoff {
    padding: 24px;
  }

  .launch-page__hero-visual--local-handoff {
    border-radius: 18px 88px 18px 18px;
  }

  .launch-page .launch-page__section--navy-process,
  .launch-page .launch-page__section--navy-handoff,
  .launch-page .launch-page__section--navy-check,
  .launch-page .launch-page__section--forms-desk,
  .launch-page .launch-page__section--forms-continuation,
  .launch-page .launch-page__section--dependency-grid,
  .launch-page .launch-page__section--file-checklist {
    padding: 26px 20px;
    border-radius: 16px;
  }

  .launch-page .launch-page__section--timeline-rail .launch-page__steps li {
    padding-left: 34px;
  }

  .launch-page .launch-page__section--tools-desk .launch-page__link-grid a {
    min-height: 0;
  }
}

/* Final cohesion guard: this intentionally follows every page-specific
   treatment so new research modules cannot turn chapters back into islands. */
.launch-page .launch-page__section.cohesive-page__chapter,
.launch-page .launch-page__section.cohesive-page__nested-guide,
.state-cost-v2 .state-cost-v2__content-section.cohesive-page__chapter {
  margin: 0;
  padding: clamp(52px, 7vw, 82px) 0;
  border: 0;
  border-top: 0;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__nested-guide {
  padding-top: 0;
  border-top: 0;
}

.state-cost-v2 .state-cost-v2__content-section.cohesive-page__chapter,
.state-cost-v2 .cohesive-page__chapter + .cohesive-page__chapter {
  padding-top: clamp(30px, 3.5vw, 44px);
  padding-bottom: clamp(30px, 3.5vw, 44px);
}

.state-cost-v2 .state-cost-v2__content-section.cohesive-page__chapter > h2 {
  margin-bottom: 16px;
}

.state-cost-v2 .state-cost-v2__content-section .cohesive-page__lead {
  margin-bottom: 22px;
}

.launch-page .launch-page__section.cohesive-page__chapter > .alix-pseo__eyebrow,
.launch-page .launch-page__section.cohesive-page__nested-guide > .alix-pseo__eyebrow {
  color: var(--_alix-website-brand---navy);
}

.launch-page .launch-page__section.cohesive-page__chapter > h2,
.launch-page .launch-page__section.cohesive-page__nested-guide > h2,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__body p,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__body p,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison h3,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison li,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__steps strong,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__steps span,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__checklist li {
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__card-grid,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__choice-grid,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__card-grid {
  gap: 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__card-grid,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__card-grid {
  grid-template-columns: minmax(0, 1fr);
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__card-grid article,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__choice-grid article,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__card-grid article {
  min-height: 0;
  padding: 24px 24px 24px 0;
  border: 0;
  border-bottom: 1px solid #cfd3da;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.cohesive-page__comparison-table {
  width: 100%;
  min-width: 700px;
  border-collapse: collapse;
  color: #2f3136;
  font-size: 15px;
  line-height: 1.5;
}

.cohesive-page__comparison-table caption {
  padding: 22px 20px 12px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 24px;
  text-align: left;
}

.cohesive-page__comparison-table th,
.cohesive-page__comparison-table td {
  padding: 18px 16px;
  border: 0;
  border-bottom: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  text-align: left;
  vertical-align: top;
}

.cohesive-page__comparison-table thead th {
  color: rgba(12, 37, 83, 0.72);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.cohesive-page__comparison-table tbody th {
  width: 23%;
  color: var(--_alix-website-brand---navy);
  font-weight: 700;
}

/* Cost-page editorial tools: useful interaction without card or callout UI. */
.state-cost-v2 .cohesive-page__prose {
  max-width: 820px;
}

.state-cost-v2 .cohesive-page__prose > * + * {
  margin-top: 16px;
}

.state-cost-v2 .state-cost-v2__calculator {
  display: grid;
  gap: 20px 32px;
  align-items: end;
  margin: 36px 0 44px;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid #10274f;
  border-radius: 4px;
  background: #faf9ff;
  grid-template-columns: minmax(250px, 1fr) minmax(250px, 1fr);
}

.state-cost-v2 .state-cost-v2__calculator-heading {
  grid-column: 1 / -1;
}

.state-cost-v2 .state-cost-v2__calculator-heading h3 {
  margin: 0 0 8px;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(27px, 2.5vw, 36px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.08;
}

.state-cost-v2 .state-cost-v2__calculator-heading p {
  max-width: 640px;
  margin: 0;
  color: #555b63;
  font-size: 15px;
  line-height: 1.5;
}

.state-cost-v2 .state-cost-v2__calculator label {
  display: block;
  margin-bottom: 8px;
  color: var(--_alix-website-brand---navy);
  font-size: 14px;
  font-weight: 700;
}

.state-cost-v2 .state-cost-v2__calculator-input {
  display: flex;
  gap: 8px;
  align-items: baseline;
  border-bottom: 1px solid var(--_alix-website-brand---navy);
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 28px;
}

.state-cost-v2 .state-cost-v2__calculator-input input {
  width: 100%;
  padding: 6px 0 10px;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--_alix-website-brand---navy);
  font: inherit;
}

.state-cost-v2 .state-cost-v2__calculator-input:focus-within {
  border-bottom-width: 2px;
}

.state-cost-v2 .state-cost-v2__calculator-choice {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0;
  padding-bottom: 10px;
  font-weight: 500;
}

.state-cost-v2 .state-cost-v2__calculator-choice input {
  width: 18px;
  height: 18px;
  accent-color: var(--_alix-website-brand---navy);
}

.state-cost-v2 .state-cost-v2__calculator-button {
  justify-self: start;
  padding: 13px 18px;
  border: 1px solid var(--_alix-website-brand---navy);
  border-radius: 0;
  background: var(--_alix-website-brand---navy);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.state-cost-v2 .state-cost-v2__calculator-button:hover {
  background: #1a3768;
}

.state-cost-v2 .state-cost-v2__calculator-button:focus-visible {
  outline: 3px solid rgba(16, 39, 79, 0.24);
  outline-offset: 3px;
}

.state-cost-v2 .state-cost-v2__calculator-note,
.state-cost-v2 .state-cost-v2__calculator-result {
  margin: 0;
  color: #555b63;
  font-size: 14px;
  line-height: 1.55;
}

.state-cost-v2 .state-cost-v2__calculator-result {
  display: grid;
  gap: 8px;
  grid-column: 1 / -1;
  padding: clamp(20px, 2.5vw, 28px);
  border: 1px solid #c7bffb;
  border-radius: 3px;
  background: #eae6ff;
  color: #10274f;
}

.state-cost-v2 .state-cost-v2__calculator-result-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.state-cost-v2 .state-cost-v2__calculator-result-total {
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1;
}

.state-cost-v2 .state-cost-v2__calculator-result-breakdown {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
  padding-top: 6px;
  font-size: 16px;
}

.state-cost-v2 .state-cost-v2__calculator-result-breakdown strong {
  margin-left: 4px;
}

.state-cost-v2 .state-cost-v2__calculator-result-context {
  color: #4e5460;
  font-size: 13px;
  line-height: 1.5;
}

.state-cost-v2 .state-cost-v2__calculator-result.is-updated {
  animation: state-cost-result-update 800ms ease-out;
}

.state-cost-v2 .state-cost-v2__calculator-result.is-error {
  border-color: #a83d3d;
  background: #fff2f0;
}

@keyframes state-cost-result-update {
  0% {
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(16, 39, 79, 0.18);
    transform: translateY(-2px);
  }
  100% {
    background: #eae6ff;
    box-shadow: 0 0 0 0 rgba(16, 39, 79, 0);
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .state-cost-v2 .state-cost-v2__calculator-result.is-updated {
    animation: none;
  }
}

.state-cost-v2 .state-cost-v2__table-wrap {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.state-cost-v2 .state-cost-v2__table-wrap table,
.state-cost-v2 .state-cost-v2__table-wrap th,
.state-cost-v2 .state-cost-v2__table-wrap td {
  border-radius: 0;
  background: transparent;
}

.state-cost-v2 .cohesive-page__subsection {
  margin-top: 24px;
  padding-top: 8px;
  border-top: 0;
}

.state-cost-v2 .state-cost-v2__recommended-row th,
.state-cost-v2 .state-cost-v2__recommended-row td {
  background: #f1edff;
}

.state-cost-v2 .state-cost-v2__recommended-row th span {
  display: block;
  margin-top: 5px;
  color: #5e4da8;
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.state-cost-v2 .cohesive-page__subsection h3 {
  margin: 28px 0 8px;
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 400;
}

.state-cost-v2 .cohesive-page__plain-list {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.state-cost-v2 .cohesive-page__plain-list li {
  position: relative;
  padding: 12px 0 12px 22px;
  border-bottom: 1px solid #e1e4e8;
}

.state-cost-v2 .cohesive-page__plain-list li::before {
  position: absolute;
  top: 19px;
  left: 2px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #7bbecb;
  content: "";
}

.state-cost-v2 .cohesive-page__editorial-list {
  margin: 34px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: cost-stage;
}

.state-cost-v2 .cohesive-page__editorial-list li {
  display: grid;
  gap: 12px 36px;
  padding: 22px 0;
  border-bottom: 1px solid #d9dde3;
  counter-increment: cost-stage;
  grid-template-columns: minmax(180px, 0.34fr) minmax(0, 1fr);
}

.state-cost-v2 .cohesive-page__editorial-list h3,
.state-cost-v2 .cohesive-page__editorial-list p {
  margin: 0;
}

.state-cost-v2 .cohesive-page__editorial-list h3 {
  color: var(--_alix-website-brand---navy);
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 21px;
  font-weight: 400;
}

.state-cost-v2 .cohesive-page__editorial-list h3::before {
  margin-right: 10px;
  color: #7bbecb;
  content: "0" counter(cost-stage);
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
}

@media (max-width: 720px) {
  .launch-page .launch-page__section.cohesive-page__chapter {
    padding: 48px 0;
    border-radius: 0;
  }

  .state-cost-v2 .state-cost-v2__content-section.cohesive-page__chapter {
    padding: 28px 0;
    border-radius: 0;
  }

  .state-cost-v2 .state-cost-v2__calculator {
    grid-template-columns: minmax(0, 1fr);
  }

  .state-cost-v2 .state-cost-v2__calculator-result {
    grid-column: 1;
  }

  .state-cost-v2 .cohesive-page__editorial-list li {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 980px) {
  .state-cost-v2__content-shell--solo {
    width: min(100% - 2rem, 880px);
    grid-template-columns: minmax(0, 1fr);
  }

  .state-cost-v2__decision-cta--compact {
    display: none;
  }
}

/* California batch density and conversion treatment. One spacing source per
   chapter prevents adjacent top and bottom padding from creating blank bands. */
.state-cost-v2 .state-cost-v2__content-section.cohesive-page__chapter,
.state-cost-v2 .cohesive-page__chapter + .cohesive-page__chapter {
  padding-top: 22px;
  padding-bottom: 22px;
}

.state-cost-v2 .state-cost-v2__content-section.cohesive-page__chapter:first-child {
  padding-top: 28px;
}

.state-cost-v2 .cohesive-page__lead {
  margin-bottom: 18px;
}

.state-cost-v2 .cohesive-page__editorial-list {
  margin-top: 22px;
}

.state-cost-v2 .cohesive-page__plain-list {
  margin-top: 12px;
}

.state-cost-v2 .state-cost-v2__recommended-row th,
.state-cost-v2 .state-cost-v2__recommended-row td {
  background: transparent;
}

.state-cost-v2 .state-cost-v2__recommended-row th span {
  color: #10274f;
}

.state-cost-v2__content-shell--solo {
  padding-bottom: 22px;
}

.cohesive-page__closing .state-cost-v2__service.state-cost-v2__service--visual,
.launch-page .cohesive-page__closing .state-cost-v2__service.state-cost-v2__service--visual {
  display: grid;
  width: 100%;
  min-height: 360px;
  margin: 8px 0 28px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  background: #f4f3f1;
  color: #10274f;
  grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.08fr);
}

.state-cost-v2__service-visual {
  min-height: 360px;
  overflow: hidden;
}

.state-cost-v2__service-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.state-cost-v2__service-copy {
  display: flex;
  padding: clamp(34px, 5vw, 54px);
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
}

.cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy .state-cost-v2__service-title,
.launch-page .cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy .state-cost-v2__service-title {
  max-width: 15ch;
  margin: 0 0 18px;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(36px, 4vw, 50px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.02;
  text-wrap: balance;
}

.cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy > p:not(.state-cost-v2__service-title),
.launch-page .cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy > p:not(.state-cost-v2__service-title) {
  max-width: 40ch;
  margin: 0 0 22px;
  color: #424853;
  font-size: 16px;
  line-height: 1.55;
}

.state-cost-v2__service-copy .alix-pseo__button {
  background: #b6abfd;
  color: #10274f;
}

.state-cost-v2__service-copy .alix-pseo__button:hover,
.state-cost-v2__service-copy .alix-pseo__button:focus-visible {
  background: var(--_alix-website-brand---light-blue);
  color: #10274f;
}

.cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy small,
.launch-page .cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy small {
  margin-top: 10px;
  color: #656b75;
}

.cohesive-page__closing .cohesive-page__questions > h2 {
  margin-bottom: 20px;
}

.cohesive-page__sources {
  margin-top: 26px;
}

@media (max-width: 720px) {
  .state-cost-v2 .state-cost-v2__content-section.cohesive-page__chapter,
  .state-cost-v2 .cohesive-page__chapter + .cohesive-page__chapter {
    padding-top: 18px;
    padding-bottom: 18px;
  }

  .cohesive-page__closing .state-cost-v2__service.state-cost-v2__service--visual,
  .launch-page .cohesive-page__closing .state-cost-v2__service.state-cost-v2__service--visual {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .state-cost-v2__service-visual {
    min-height: 250px;
  }

  .state-cost-v2__service-copy {
    padding: 28px 24px 30px;
  }

  .cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy .state-cost-v2__service-title,
  .launch-page .cohesive-page__closing .state-cost-v2__service .state-cost-v2__service-copy .state-cost-v2__service-title {
    font-size: clamp(32px, 10vw, 40px);
  }
}

/* Final supporting-route guard. Keep this at EOF so older experimental
   launch layouts cannot override the approved cost-page rhythm. */
.launch-page .launch-page__content-shell.cohesive-page__canvas {
  display: grid;
  width: min(100% - 2rem, 1200px);
  gap: clamp(32px, 5vw, 64px);
  padding: clamp(36px, 5vw, 60px) 0 clamp(40px, 5vw, 64px);
  align-items: start;
  grid-template-columns: minmax(0, 1fr) 280px;
}

.launch-page .launch-page__content-shell.cohesive-page__canvas .state-cost-v2__content {
  width: 100%;
  min-width: 0;
}

.launch-page .launch-page__content-shell.cohesive-page__canvas .launch-page__section.state-cost-v2__content-section.cohesive-page__chapter {
  display: block;
  margin: 0;
  padding: clamp(28px, 3.5vw, 42px) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__content-shell.cohesive-page__canvas .launch-page__section.state-cost-v2__content-section.cohesive-page__chapter:first-child {
  padding-top: 0;
}

.launch-page .launch-page__cost-summary {
  margin: 0 0 clamp(28px, 4vw, 42px);
}

.launch-page .launch-page__cost-summary h2 {
  max-width: 21ch;
  margin: 0 0 8px;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(34px, 3.2vw, 46px);
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.04;
  text-wrap: balance;
}

.launch-page .launch-page__cost-summary .cohesive-page__lead {
  max-width: 66ch;
  margin: 0 0 20px;
  color: #2f3136;
  font-size: 17px;
  line-height: 1.62;
}

.launch-page .launch-page__section-heading {
  margin: 0 0 18px;
}

.launch-page .launch-page__section-heading > h2,
.launch-page .launch-page__section-heading > h3 {
  max-width: 21ch;
  margin: 8px 0 0;
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: clamp(30px, 2.8vw, 40px);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.06;
  text-wrap: balance;
}

.launch-page .launch-page__content-shell .launch-page__choice-grid {
  display: block;
  margin: 24px 0 0;
  border-top: 1px solid #cfd5df;
}

.launch-page .launch-page__content-shell .launch-page__choice-grid article {
  display: grid;
  min-height: 0;
  gap: 18px;
  padding: 18px 0;
  border: 0;
  border-bottom: 1px solid #cfd5df;
  border-radius: 0;
  background: transparent;
  grid-template-columns: 86px minmax(170px, 220px) minmax(0, 1fr);
  align-items: start;
}

.launch-page .launch-page__content-shell .launch-page__choice-grid article > p,
.launch-page .launch-page__content-shell .launch-page__choice-grid article > h3,
.launch-page .launch-page__content-shell .launch-page__choice-grid article > span {
  margin: 0;
}

.launch-page .launch-page__content-shell .launch-page__choice-grid article > h3 {
  color: #10274f;
  font-family: var(--_alix-website-brand---font-heading);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.18;
}

.launch-page .launch-page__content-shell .launch-page__choice-grid article > span {
  color: #424853;
  font-size: 15px;
  line-height: 1.55;
}

.launch-page .launch-page__content-shell > .state-cost-v2__decision-cta--compact {
  position: sticky;
  top: 104px;
  margin-top: clamp(52px, 7vw, 82px);
  padding: 26px 22px;
}

@media (max-width: 900px) {
  .launch-page .launch-page__content-shell.cohesive-page__canvas {
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page .launch-page__content-shell > .state-cost-v2__decision-cta--compact {
    position: static;
    margin-top: 0;
  }

  .launch-page .launch-page__content-shell .launch-page__choice-grid article {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
}

.launch-page .cohesive-page__intro {
  max-width: 820px;
  padding: 0 0 22px;
}

.launch-page .cohesive-page__intro h2 {
  margin: 8px 0 14px;
  font-size: clamp(36px, 3.8vw, 50px);
}

.launch-page .cohesive-page__intro > p:not(.alix-pseo__eyebrow) {
  font-size: 17px;
  line-height: 1.6;
}

.launch-page .launch-page__section.cohesive-page__chapter,
.launch-page .launch-page__section.cohesive-page__chapter + .cohesive-page__chapter,
.launch-page .launch-page__section.cohesive-page__nested-guide,
.launch-page .launch-page__section--navy-process,
.launch-page .launch-page__section--navy-handoff,
.launch-page .launch-page__section--navy-check,
.launch-page .launch-page__section--forms-desk,
.launch-page .launch-page__section--forms-continuation,
.launch-page .launch-page__section--dependency-grid,
.launch-page .launch-page__section--file-checklist,
.launch-page .launch-page__section--legal-scope {
  display: block;
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__chapter:first-of-type {
  padding-top: 28px;
}

.launch-page .launch-page__section.cohesive-page__chapter > .alix-pseo__eyebrow,
.launch-page .launch-page__section.cohesive-page__nested-guide > .alix-pseo__eyebrow {
  color: #10274f;
}

.launch-page .launch-page__section.cohesive-page__chapter > h2,
.launch-page .launch-page__section.cohesive-page__nested-guide > h2 {
  max-width: 21ch;
  margin: 8px 0 14px;
  color: #10274f;
  font-size: clamp(36px, 3.8vw, 50px);
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__body > p,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__body > p {
  max-width: 72ch;
  margin: 0 0 14px;
  color: #424853;
  font-size: 16px;
  line-height: 1.62;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__card-grid,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__choice-grid,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__card-grid {
  gap: 0;
  margin: 18px 0 0;
  border: 0;
  background: transparent;
  grid-template-columns: minmax(0, 1fr);
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__card-grid article,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__choice-grid article,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__card-grid article {
  min-height: 0;
  padding: 18px 0;
  border: 0;
  border-bottom: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison {
  gap: 0;
  margin: 20px 0;
  overflow: hidden;
  border: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article {
  padding: 22px;
  border: 0;
  border-right: 1px solid #d9dde3;
  border-radius: 0;
  background: transparent;
  color: #2f3136;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article:last-child,
.launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article:last-child {
  border-right: 0;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison h3,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison li,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__steps strong,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__steps span,
.launch-page .launch-page__section.cohesive-page__chapter .launch-page__checklist li {
  color: #2f3136;
}

.launch-page .state-cost-v2__decision-cta {
  margin: 22px 0 0;
  padding: 24px 26px;
  border-radius: 10px;
  background: #10274f;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__body .state-cost-v2__decision-cta h3 {
  color: #fff;
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__body .state-cost-v2__decision-cta p {
  color: rgba(255, 255, 255, 0.84);
}

.launch-page .launch-page__section.cohesive-page__chapter .launch-page__body .state-cost-v2__decision-cta small {
  color: rgba(255, 255, 255, 0.66);
}

.launch-page .cohesive-page__closing .state-cost-v2__service.state-cost-v2__service--visual {
  margin: 0 0 22px;
}

.launch-page .cohesive-page__questions > h2 {
  margin-bottom: 18px;
}

.launch-page .cohesive-page__sources {
  margin-top: 22px;
}

@media (max-width: 720px) {
  .launch-page .launch-page__content-shell.cohesive-page__canvas {
    width: min(100% - 1.5rem, 880px);
    padding-top: 22px;
  }

  .launch-page .launch-page__section.cohesive-page__chapter,
  .launch-page .launch-page__section.cohesive-page__chapter + .cohesive-page__chapter,
  .launch-page .launch-page__section.cohesive-page__nested-guide {
    padding: 18px 0;
  }

  .launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison,
  .launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison {
    grid-template-columns: minmax(0, 1fr);
  }

  .launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article,
  .launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article {
    border-right: 0;
    border-bottom: 1px solid #d9dde3;
  }

  .launch-page .launch-page__section.cohesive-page__chapter .launch-page__comparison article:last-child,
  .launch-page .launch-page__section.cohesive-page__nested-guide .launch-page__comparison article:last-child {
    border-bottom: 0;
  }
}
