/* ============================================================================
   TechBrot · 05 — LOCATIONS (state pillar pages)
   ----------------------------------------------------------------------------
   Premium, editorial visual layer for /find-an-accountant/[state]/ pages.
   Load order: 01-tokens → 02-base → 03-components → 04-pages → 05-locations
   ----------------------------------------------------------------------------
   EVERYTHING here is scoped under `.page--location` so it can never bleed onto
   service / hub / blog / legal page types. It builds only on tokens + classes
   from 01/02/03/04 — no new colours, no !important, no token guessing.

   Components already owned elsewhere and merely refined here:
     btn, tldr, ai-summary, faq, expert-review, final-cta, delivery-mode, editorial-break (03-components.css) · breadcrumb, why-grid, related-grid, hub-service-grid (04-pages.css)
   Components defined fresh here:
     location-hero (split) + coverage SVG map · state-toc (scrollspy) ·
     state-stats · state-glossary · state-scenarios · mission-block ·
     location-context-grid · state-ecosystem · state-pricing · city-coverage ·
     county-coverage · state-intake · operator-profile + operator-standards ·
     state-comparison · state-authority
   ============================================================================ */

/* ============================================================================
   0 · PAGE RHYTHM — deliberate two-tone editorial alternation
   ----------------------------------------------------------------------------
   Warm paper and page paper trade off so the eye gets a steady cadence.
   Two dark "punctuation" sections (advisory + final CTA) anchor the page.
   ============================================================================ */

.page--location .section--ny-stats, .page--location .section--ai-summary, .page--location .section--ny-delivery, .page--location .section--ny-scenarios, .page--location .section--ny-services, .page--location .section--ny-pricing, .page--location .section--ny-intake, .page--location .section--ny-why, .page--location .section--ny-authority, .page--location .section--ny-review {
  background: var(--bg-section-alt);
}

.page--location .section--tldr {
  background: var(--bg-page);
}

/* Hairline seam between two same-tone neighbours keeps the rhythm legible */

.page--location .section--ny-glossary, .page--location .section--ny-context, .page--location .section--ny-industries, .page--location .section--ny-ecosystem, .page--location .section--ny-cities, .page--location .section--ny-operators, .page--location .section--ny-comparison, .page--location .section--ny-related {
  background: var(--bg-page);
}

/* Tighten the gap where a full-bleed editorial image follows a section */

.page--location .section--editorial-break {
  padding-block: 0;
}

/* Lede a touch more generous on location pages */

.page--location .section__lede {
  font-size: var(--fs-18);
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 62ch;
  text-wrap: pretty;
}

/* ============================================================================
   1 · BREADCRUMB — calmer, roomier than the global default
   ============================================================================ */

/* ============================================================================
   2 · LOCATION HERO — split: editorial copy + coverage map
   ============================================================================ */

.page--location .section--location-hero {
  padding-block: var(--space-12) var(--space-16);
  border-block-end: 1px solid var(--border-hairline);
}

@media (min-width: 960px) {
  .page--location .section--location-hero {
    padding-block: var(--space-16) var(--space-20);
  }
}

.page--location .location-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
  max-width: none;
  align-items: center;
}

@media (min-width: 1024px) {
  .page--location .location-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: var(--space-16);
  }
}

.page--location .location-hero__copy {
  max-width: 40rem;
}

.page--location .location-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-block-end: var(--space-6);
  padding: var(--space-2) var(--space-4);
  font-family: var(--font-sans);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-secondary);
  background: var(--color-paper-warm);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-pill);
}

.page--location .location-hero__eyebrow::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
  flex-shrink: 0;
}

.page--location .location-hero__eyebrow span {
  display: inline-block;
}

.page--location .location-hero__heading {
  font-family: var(--font-serif);
  font-size: clamp(2.4rem, 4.6vw, 3.9rem);
  font-weight: var(--fw-regular);
  line-height: 1.04;
  letter-spacing: var(--ls-tight);
  color: var(--text-primary);
  margin-block-end: var(--space-6);
  text-wrap: balance;
}

.page--location .location-hero__heading br {
  display: none;
}

@media (min-width: 600px) {
  .page--location .location-hero__heading br {
    display: inline;
  }
}

.page--location .location-hero__subheading {
  font-size: var(--fs-17);
  line-height: 1.62;
  color: var(--text-body);
  margin-block-end: var(--space-8);
  max-width: 56ch;
  text-wrap: pretty;
}

@media (min-width: 720px) {
  .page--location .location-hero__subheading {
    font-size: var(--fs-18);
  }
}

.page--location .location-hero__subheading strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

.page--location .location-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-block-end: var(--space-8);
}

/* "Delivered by …" verification line */

.page--location .location-hero__assurance {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2) var(--space-3);
  max-width: 60ch;
  padding-block-start: var(--space-6);
  border-block-start: 1px solid var(--border-hairline);
  font-size: var(--fs-13);
  line-height: 1.55;
}

.page--location .location-hero__assurance-label {
  flex-shrink: 0;
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .location-hero__assurance-body {
  color: var(--text-secondary);
}

.page--location .location-hero__assurance-body a {
  color: var(--text-primary);
  text-decoration: underline;
  text-decoration-color: var(--border-hairline);
  text-underline-offset: 2px;
  transition: text-decoration-color var(--motion-base) var(--ease-out), color var(--motion-base) var(--ease-out);
}

.page--location .location-hero__assurance-body a:hover {
  color: var(--color-accent);
  text-decoration-color: var(--color-accent);
}

/* Four-fact coverage strip */

.page--location .location-hero__strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5) var(--space-6);
  margin-block-start: var(--space-8);
  padding-block-start: var(--space-6);
  border-block-start: 1px solid var(--border-hairline);
}

@media (min-width: 480px) {
  .page--location .location-hero__strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.page--location .location-hero__strip li {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.page--location .location-strip__label {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .location-strip__value {
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  line-height: 1.35;
  text-wrap: balance;
}

/* ----- Hero visual / coverage map frame ----- */

.page--location .location-hero__visual {
  position: relative;
  padding: var(--space-6);
  background: radial-gradient(120% 90% at 70% 12%, rgba(132, 30, 30, 0.04), transparent 60%), var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

@media (min-width: 1024px) {
  .page--location .location-hero__visual {
    padding: var(--space-8);
  }
}

.page--location .ny-state-svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

/* state masses */

.page--location .state-fill {
  fill: var(--color-paper-deep);
  stroke: var(--color-paper-edge);
  stroke-width: 1.5;
  stroke-linejoin: round;
}

.page--location .state-aux {
  fill: var(--color-paper-edge);
  stroke: var(--color-paper-edge);
  stroke-width: 1;
  stroke-linejoin: round;
}

/* city dots */

.page--location .state-dot {
  fill: var(--color-ink-mute);
}

.page--location .state-dot--major {
  fill: var(--color-accent);
}

.page--location .state-dot-pulse {
  fill: var(--color-accent);
  opacity: 0.22;
  transform-box: fill-box;
  transform-origin: center;
}

@media (prefers-reduced-motion: no-preference) {
  .page--location .state-dot-pulse {
    animation: ny-map-pulse 2600ms var(--ease-out) infinite;
  }
}

@keyframes ny-map-pulse {
  0% {
    opacity: 0.32;
    transform: scale(0.7);
  }
  70% {
    opacity: 0;
    transform: scale(2.4);
  }
  100% {
    opacity: 0;
    transform: scale(2.4);
  }
}

/* city labels — dark ink with a paper halo so they never clip or muddy */

.page--location .state-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: var(--fw-semibold);
  fill: var(--color-ink-soft);
  paint-order: stroke;
  stroke: var(--color-paper);
  stroke-width: 3.5px;
  stroke-linejoin: round;
}

.page--location .ny-label--end {
  text-anchor: end;
}

.page--location .state-label--major {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: var(--fw-semibold);
  fill: var(--color-ink);
  letter-spacing: -0.01em;
}

.page--location .state-sublabel {
  font-family: var(--font-sans);
  font-size: 9px;
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  fill: var(--color-ink-mute);
  paint-order: stroke;
  stroke: var(--color-paper);
  stroke-width: 3px;
}

/* corner badge */

.page--location .state-overlay-figure {
  font-family: var(--font-serif);
  font-size: 38px;
  font-weight: var(--fw-regular);
  fill: var(--color-accent);
  letter-spacing: var(--ls-tight);
}

.page--location .state-overlay-label {
  font-family: var(--font-sans);
  font-size: 9.5px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  fill: var(--color-ink-mute);
}

/* ============================================================================
   3 · ON-PAGE TOC — quiet rail of pills, NOT sticky, with scrollspy
   ============================================================================ */

.page--location .state-toc {
  padding-block: var(--space-5);
  border-block-end: 1px solid var(--border-hairline);
  background: var(--bg-page);
}

.page--location .state-toc .container {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-3) var(--space-5);
}

.page--location .state-toc__label {
  flex-shrink: 0;
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .state-toc__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.page--location .state-toc__list a {
  display: inline-flex;
  padding: var(--space-1) var(--space-3);
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--text-secondary);
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  transition: color var(--motion-base) var(--ease-out), background var(--motion-base) var(--ease-out), border-color var(--motion-base) var(--ease-out);
}

.page--location .state-toc__list a:hover {
  color: var(--text-primary);
  background: var(--color-paper-warm);
  border-color: var(--border-hairline);
}

.page--location .state-toc__list a[aria-current="true"] {
  color: var(--color-accent);
  background: rgba(132, 30, 30, 0.06);
  border-color: rgba(132, 30, 30, 0.18);
}

/* ============================================================================
   4 · STATE STATS — large serif figures on a hairline grid
   ============================================================================ */

.page--location .state-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--border-hairline);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-md);
  overflow: hidden;
}

@media (min-width: 600px) {
  .page--location .state-stats {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .page--location .state-stats {
    grid-template-columns: repeat(3, 1fr);
  }
}

.page--location .state-stat {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-8) var(--space-7);
  background: var(--bg-card);
}

.page--location .state-stat__figure {
  font-family: var(--font-serif);
  font-size: var(--fs-44);
  font-weight: var(--fw-regular);
  line-height: 0.95;
  letter-spacing: var(--ls-tight);
  color: var(--color-accent);
  font-variant-numeric: tabular-nums;
}

.page--location .state-stat__label {
  font-size: var(--fs-14);
  line-height: 1.55;
  color: var(--text-secondary);
  text-wrap: pretty;
}

/* ============================================================================
   5 · TL;DR — single editorial paragraph, centred, oversized
   ============================================================================ */

.page--location .section--tldr .tldr {
  text-align: center;
}

.page--location .tldr__eyebrow {
  color: var(--text-eyebrow);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}

.page--location .tldr__heading {
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-snug);
}

.page--location .tldr__body {
  text-align: left;
  font-size: var(--fs-18);
  line-height: 1.7;
  color: var(--text-body);
  text-wrap: pretty;
}

/* ============================================================================
   6 · AI SUMMARY — definitional Q&A, refined spacing
   ============================================================================ */

.page--location .ai-summary__list {
  border-block-start: 1px solid var(--border-hairline);
}

.page--location .ai-summary__item {
  padding-block: var(--space-8);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .ai-summary__question {
  position: relative;
  padding-inline-start: var(--space-6);
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  line-height: 1.25;
  color: var(--text-primary);
  margin-block-end: var(--space-4);
}

.page--location .ai-summary__question::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0.1em;
  width: 3px;
  height: 1.15em;
  background: var(--color-accent);
  border-radius: var(--radius-pill);
}

.page--location .ai-summary__answer {
  padding-inline-start: var(--space-6);
}

.page--location .ai-summary__answer p {
  font-size: var(--fs-16);
  line-height: 1.68;
  color: var(--text-body);
  text-wrap: pretty;
}

.page--location .ai-summary__answer strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

/* ============================================================================
   7 · STATE GLOSSARY — definitional cards, accent term
   ============================================================================ */

.page--location .state-glossary {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}

@media (min-width: 720px) {
  .page--location .state-glossary {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-5);
  }
}

.page--location .state-glossary__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);
}

.page--location .state-glossary__item:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.page--location .state-glossary__term {
  font-family: var(--font-serif);
  font-size: var(--fs-20);
  font-weight: var(--fw-regular);
  line-height: 1.2;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  padding-block-end: var(--space-3);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .state-glossary__definition {
  font-size: var(--fs-14);
  line-height: 1.62;
  color: var(--text-secondary);
  text-wrap: pretty;
}

.page--location .state-glossary__definition strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

.page--location .state-glossary__definition a {
  display: inline-block;
  margin-block-start: var(--space-2);
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  text-decoration: none;
}

.page--location .state-glossary__definition a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page--location .state-glossary__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  font-style: italic;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 80ch;
}

/* ============================================================================
   8 · DELIVERY MODES — refine the 03-components pattern for split layout
   ============================================================================ */

.page--location .delivery-modes {
  gap: var(--space-5);
}

@media (min-width: 960px) {
  .page--location .delivery-modes {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
  }
}

.page--location .delivery-mode {
  padding: var(--space-8);
}

.page--location .delivery-mode__lede {
  color: var(--text-body);
}

.page--location .delivery-modes__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  line-height: 1.65;
}

/* ============================================================================
   9 · LOCATION CONTEXT GRID — "why this state is different" cards
   ============================================================================ */

.page--location .location-context-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

@media (min-width: 768px) {
  .page--location .location-context-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
  }
}

.page--location .location-context-card {
  position: relative;
  padding: var(--space-8);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out);
}

.page--location .location-context-card:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-sm);
}

.page--location .location-context-card::before {
  content: "";
  position: absolute;
  top: 0;
  inset-inline-start: var(--space-8);
  width: 44px;
  height: 2px;
  background: var(--color-accent);
}

.page--location .location-context-card__header {
  margin-block-end: var(--space-5);
}

.page--location .location-context-card__category {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-end: var(--space-3);
}

.page--location .location-context-card__heading {
  font-family: var(--font-serif);
  font-size: var(--fs-24);
  font-weight: var(--fw-regular);
  line-height: 1.18;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  text-wrap: balance;
}

.page--location .location-context-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  font-size: var(--fs-15);
  line-height: 1.65;
  color: var(--text-body);
}

.page--location .location-context-card__body strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

.page--location .location-context-card__body a {
  font-weight: var(--fw-medium);
  color: var(--color-accent);
  text-decoration: none;
}

.page--location .location-context-card__body a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page--location .location-context-grid__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  font-style: italic;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 74ch;
}

/* ============================================================================
   10 · EDITORIAL BREAK — full-bleed warm image band
   ============================================================================ */

.page--location .editorial-break {
  margin-inline: auto;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.page--location .editorial-break img {
  width: 100%;
  aspect-ratio: 16 / 6;
  object-fit: cover;
}

@media (max-width: 720px) {
  .page--location .editorial-break img {
    aspect-ratio: 4 / 3;
  }
}

/* ============================================================================
   11 · STATE SCENARIOS — numbered editorial vignettes
   ============================================================================ */

.page--location .state-scenarios {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  counter-reset: scenario;
}

@media (min-width: 1024px) {
  .page--location .state-scenarios {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
  }
}

.page--location .state-scenario {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-8) var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  counter-increment: scenario;
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);
}

.page--location .state-scenario:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.page--location .state-scenario__tag {
  position: relative;
  padding-block-end: var(--space-4);
  border-block-end: 1px solid var(--border-hairline);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .state-scenario__tag::after {
  content: counter(scenario, decimal-leading-zero);
  position: absolute;
  top: -0.15em;
  inset-inline-end: 0;
  font-family: var(--font-serif);
  font-size: var(--fs-22);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-tight);
  color: var(--color-accent);
  -webkit-text-stroke: 0;
}

.page--location .state-scenario__heading {
  font-family: var(--font-serif);
  font-size: var(--fs-20);
  font-weight: var(--fw-regular);
  line-height: 1.25;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  text-wrap: balance;
}

.page--location .state-scenario__body {
  font-size: var(--fs-14);
  line-height: 1.62;
  color: var(--text-secondary);
  text-wrap: pretty;
}

.page--location .state-scenario__body strong {
  display: block;
  margin-block-end: var(--space-1);
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-primary);
}

.page--location .state-scenario__cta {
  margin-block-start: auto;
  padding-block-start: var(--space-5);
  border-block-start: 1px solid var(--border-hairline);
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .state-scenario__cta:hover {
  color: var(--color-accent);
}

.page--location .state-scenarios__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  font-style: italic;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 74ch;
}

/* ============================================================================
   12 · MISSION BLOCK — advisory, lives on the dark punctuation section
   ============================================================================ */

.page--location .section--ny-advisory {
  background: var(--color-surface-dark);
  color: var(--color-ink-inverted);
}

.page--location .mission-block, .page--reviews .mission-block, .page--about-team .mission-block, .page--home .mission-block {
  max-width: 64rem;
  margin-inline: auto;
  text-align: left;
}

.page--location .mission-block__eyebrow, .page--reviews .mission-block__eyebrow, .page--about-team .mission-block__eyebrow, .page--home .mission-block__eyebrow {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent-soft);
  margin-block-end: var(--space-5);
}

.page--location .mission-block__heading, .page--reviews .mission-block__heading, .page--about-team .mission-block__heading, .page--home .mission-block__heading {
  font-family: var(--font-serif);
  font-size: clamp(1.9rem, 4vw, 3rem);
  font-weight: var(--fw-regular);
  line-height: 1.12;
  letter-spacing: var(--ls-tight);
  color: var(--color-ink-inverted);
  margin-block-end: var(--space-6);
  text-wrap: balance;
}

.page--location .mission-block__body, .page--reviews .mission-block__body, .page--about-team .mission-block__body, .page--home .mission-block__body {
  font-size: var(--fs-18);
  line-height: 1.65;
  color: var(--color-ink-inverted-soft);
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: var(--space-8);
  text-wrap: pretty;
}

.page--location .mission-block__body a, .page--reviews .mission-block__body a, .page--about-team .mission-block__body a, .page--home .mission-block__body a {
  color: var(--color-ink-inverted);
  text-decoration: underline;
  text-decoration-color: var(--color-accent-soft);
  text-underline-offset: 3px;
  transition: text-decoration-color var(--motion-base) var(--ease-out);
}

.page--location .mission-block__body a:hover, .page--reviews .mission-block__body a:hover, .page--about-team .mission-block__body a:hover, .page--home .mission-block__body a:hover {
  text-decoration-color: var(--color-ink-inverted);
}

.page--location .mission-block__actions, .page--reviews .mission-block__actions, .page--about-team .mission-block__actions, .page--home .mission-block__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: left;
  gap: var(--space-3);
}

/* ============================================================================
   13 · INDUSTRIES — refine the why-grid for 6 editorial cards
   ============================================================================ */

.page--location .section--ny-industries .why-grid {
  gap: var(--space-5);
}

@media (min-width: 720px) {
  .page--location .section--ny-industries .why-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .page--location .section--ny-industries .why-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.page--location .section--ny-industries .why-card {
  padding: var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  border-block-start: 1px solid var(--border-hairline);
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);
}

.page--location .section--ny-industries .why-card:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.page--location .why-card__number {
  font-family: var(--font-serif);
  color: var(--color-accent);
  font-variant-numeric: tabular-nums;
}

.page--location .why-card__heading a {
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .why-card__heading a:hover {
  color: var(--color-accent);
}

.page--location .why-grid__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  font-style: italic;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 74ch;
}

.page--location .why-grid__note a {
  font-style: normal;
  color: var(--color-accent);
  text-decoration: none;
}

.page--location .why-grid__note a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* "Why TechBrot" reuse — keep the bordered-top stat-card look here */

.page--location .section--ny-why .why-card {
  padding: var(--space-6) 0;
  background: transparent;
  border: 0;
  border-block-start: 2px solid var(--color-ink);
  border-radius: 0;
}

.page--location .section--ny-why .why-card:hover {
  box-shadow: none;
  transform: none;
}

/* ============================================================================
   14 · SERVICES — re-own hub-service-tile so the <article> is the card
   ============================================================================ */

.page--location .hub-service-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

@media (min-width: 720px) {
  .page--location .hub-service-grid--six {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .page--location .hub-service-grid--six {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* neutralise the 04-pages li-as-card so we control the article instead */

.page--location .hub-service-tile {
  display: block;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none;
}

.page--location .hub-service-tile > article {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--space-8) var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);
}

.page--location .hub-service-tile > article:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.page--location .hub-service-tile__eyebrow {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
  margin-block-end: var(--space-3);
}

.page--location .hub-service-tile__heading {
  font-family: var(--font-serif);
  font-size: var(--fs-22);
  font-weight: var(--fw-regular);
  line-height: 1.2;
  letter-spacing: var(--ls-snug);
  margin-block-end: var(--space-3);
}

.page--location .hub-service-tile__heading a {
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .hub-service-tile__heading a:hover {
  color: var(--color-accent);
}

.page--location .hub-service-tile__body {
  font-size: var(--fs-14);
  line-height: 1.6;
  color: var(--text-secondary);
  margin-block-end: var(--space-5);
  text-wrap: pretty;
}

.page--location .hub-service-tile__body a {
  color: var(--text-primary);
  text-decoration: underline;
  text-decoration-color: var(--border-hairline);
  text-underline-offset: 2px;
}

.page--location .hub-service-tile__body a:hover {
  color: var(--color-accent);
  text-decoration-color: var(--color-accent);
}

.page--location .hub-service-tile__meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  margin-block-start: auto;
  padding-block: var(--space-5);
  border-block-start: 1px solid var(--border-hairline);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .hub-service-tile__meta > div {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.page--location .hub-service-tile__meta dt {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .hub-service-tile__meta dd {
  font-size: var(--fs-15);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}

.page--location .hub-service-tile__cta {
  display: inline-flex;
  align-items: center;
  margin-block-start: var(--space-5);
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .hub-service-tile__cta:hover {
  color: var(--color-accent);
}

.page--location .hub-service-grid__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  line-height: 1.75;
  color: var(--text-secondary);
}

.page--location .hub-service-grid__note a {
  color: var(--text-primary);
  font-weight: var(--fw-medium);
  text-decoration: underline;
  text-decoration-color: var(--border-hairline);
  text-underline-offset: 2px;
  white-space: nowrap;
}

.page--location .hub-service-grid__note a:hover {
  color: var(--color-accent);
  text-decoration-color: var(--color-accent);
}

/* ============================================================================
   15 · STATE ECOSYSTEM — cluster cards with linked spokes
   ============================================================================ */

.page--location .state-ecosystem {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

@media (min-width: 720px) {
  .page--location .state-ecosystem {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1100px) {
  .page--location .state-ecosystem {
    grid-template-columns: repeat(3, 1fr);
  }
}

.page--location .state-ecosystem__cluster {
  display: flex;
  flex-direction: column;
  padding: var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
}

.page--location .state-ecosystem__eyebrow {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-end: var(--space-3);
}

.page--location .state-ecosystem__heading {
  font-family: var(--font-serif);
  font-size: var(--fs-22);
  font-weight: var(--fw-regular);
  line-height: 1.2;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  margin-block-end: var(--space-3);
}

.page--location .state-ecosystem__lede {
  font-size: var(--fs-14);
  line-height: 1.6;
  color: var(--text-secondary);
  padding-block-end: var(--space-5);
  margin-block-end: var(--space-5);
  border-block-end: 1px solid var(--border-hairline);
  text-wrap: pretty;
}

.page--location .state-ecosystem__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.page--location .state-ecosystem__list li {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  padding-block: var(--space-3);
  border-block-end: 1px solid var(--border-hairline);
  font-size: var(--fs-14);
  line-height: 1.4;
}

.page--location .state-ecosystem__list li:last-child {
  border-block-end: none;
}

.page--location .state-ecosystem__list a {
  color: var(--text-body);
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .state-ecosystem__list a:hover {
  color: var(--color-accent);
}

.page--location .state-ecosystem__tag {
  margin-inline-start: auto;
  flex-shrink: 0;
  padding: 1px 8px;
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent);
  background: rgba(132, 30, 30, 0.07);
  border-radius: var(--radius-pill);
}

.page--location .state-ecosystem__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  font-style: italic;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 74ch;
}

/* ============================================================================
   16 · STATE PRICING — clean editorial table
   ============================================================================ */

.page--location .state-pricing {
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.page--location .state-pricing__table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-14);
}

.page--location .state-pricing__table thead th {
  padding: var(--space-4) var(--space-5);
  text-align: start;
  font-family: var(--font-sans);
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-ink-inverted-soft);
  background: var(--color-surface-dark);
  white-space: nowrap;
}

.page--location .state-pricing__table tbody tr {
  border-block-start: 1px solid var(--border-hairline);
  transition: background var(--motion-base) var(--ease-out);
}

.page--location .state-pricing__table tbody tr:nth-child(even) {
  background: var(--color-paper-warm);
}

.page--location .state-pricing__table tbody tr:hover {
  background: rgba(132, 30, 30, 0.04);
}

.page--location .state-pricing__table th[scope="row"], .page--location .state-pricing__table td {
  padding: var(--space-4) var(--space-5);
  text-align: start;
  vertical-align: top;
  line-height: 1.5;
}

.page--location .state-pricing__table th[scope="row"] {
  font-family: var(--font-serif);
  font-size: var(--fs-15);
  font-weight: var(--fw-regular);
  color: var(--text-primary);
  min-width: 12rem;
}

.page--location .state-pricing__table th[scope="row"] a {
  color: var(--text-primary);
  text-decoration: none;
  border-block-end: 1px solid var(--border-hairline);
  transition: color var(--motion-base) var(--ease-out), border-color var(--motion-base) var(--ease-out);
}

.page--location .state-pricing__table th[scope="row"] a:hover {
  color: var(--color-accent);
  border-block-end-color: var(--color-accent);
}

.page--location .state-pricing__table td strong {
  color: var(--color-accent);
  font-weight: var(--fw-semibold);
  font-variant-numeric: tabular-nums;
}

.page--location .state-pricing__table td:nth-child(2) {
  white-space: nowrap;
}

.page--location .state-pricing__table td:nth-child(3) {
  color: var(--text-secondary);
  white-space: nowrap;
}

.page--location .state-pricing__table td:last-child {
  color: var(--text-secondary);
  min-width: 16rem;
}

.page--location .state-pricing__note {
  padding: var(--space-5) var(--space-6);
  background: var(--bg-card);
  border-block-start: 1px solid var(--border-hairline);
  font-size: var(--fs-13);
  line-height: 1.6;
  color: var(--text-secondary);
}

.page--location .state-pricing__note a {
  color: var(--color-accent);
  font-weight: var(--fw-medium);
  text-decoration: none;
}

.page--location .state-pricing__note a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 860px) {
  .page--location .state-pricing {
    border-radius: var(--radius-md);
  }
}

@media (max-width: 860px) {
  .page--location .state-pricing__table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }
}

/* ============================================================================
   17 · CITIES — pills + county prose
   ============================================================================ */

.page--location .city-coverage-grid__heading, .page--location .county-coverage__heading {
  font-family: var(--font-sans);
  font-size: var(--fs-13);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
  margin-block-end: var(--space-5);
  padding-block-end: var(--space-3);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .county-coverage__heading {
  margin-block-start: var(--space-12);
}

.page--location .city-coverage-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.page--location .city-pill {
  display: inline-flex;
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-md);
  transition: background var(--motion-base) var(--ease-out), border-color var(--motion-base) var(--ease-out), transform var(--motion-base) var(--ease-out);
}

.page--location .city-pill:hover {
  background: var(--color-ink);
  border-color: var(--color-ink);
  transform: translateY(-1px);
}

.page--location .city-pill a {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-3) var(--space-5);
  font-size: var(--fs-15);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .city-pill:hover a {
  color: var(--color-ink-inverted);
}

.page--location .city-pill__county {
  font-size: var(--fs-11);
  font-weight: var(--fw-regular);
  color: var(--text-eyebrow);
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .city-pill:hover .city-pill__county {
  color: var(--color-ink-inverted-mute);
}

.page--location .county-coverage__body {
  font-size: var(--fs-15);
  line-height: 1.85;
  color: var(--text-secondary);
  max-width: 90ch;
  text-wrap: pretty;
}

.page--location .city-coverage-grid__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  font-style: italic;
  line-height: 1.6;
  color: var(--text-secondary);
}

.page--location .city-coverage-grid__note a {
  font-style: normal;
  color: var(--color-accent);
  text-decoration: none;
}

.page--location .city-coverage-grid__note a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ============================================================================
   18 · STATE INTAKE — call card + discovery brief form
   ============================================================================ */

.page--location .state-intake {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  align-items: start;
}

@media (min-width: 960px) {
  .page--location .state-intake {
    grid-template-columns: 0.85fr 1.15fr;
    gap: var(--space-6);
  }
}

.page--location .state-intake__call, .page--location .state-intake__form {
  padding: var(--space-8);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
}

.page--location .state-intake__call {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  background: var(--color-surface-dark);
  border-color: var(--color-surface-dark);
  color: var(--color-ink-inverted);
}

.page--location .state-intake__eyebrow {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent-soft);
}

.page--location .state-intake__call .state-intake__heading {
  color: var(--color-ink-inverted);
}

.page--location .state-intake__heading {
  font-family: var(--font-serif);
  font-size: var(--fs-24);
  font-weight: var(--fw-regular);
  line-height: 1.2;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
}

.page--location .state-intake__call .state-intake__body {
  color: var(--color-ink-inverted-soft);
}

.page--location .state-intake__body {
  font-size: var(--fs-15);
  line-height: 1.6;
  color: var(--text-secondary);
}

.page--location .state-intake__call .btn {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  margin-block-start: var(--space-2);
  line-height: 1.1;
}

.page--location .btn__label {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  opacity: 0.7;
}

.page--location .btn__value {
  font-family: var(--font-serif);
  font-size: var(--fs-22);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-snug);
  font-variant-numeric: tabular-nums;
}

.page--location .state-intake__assurance {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-block-start: auto;
  padding-block-start: var(--space-5);
  border-block-start: 1px solid rgba(250, 250, 247, 0.14);
}

.page--location .state-intake__assurance li {
  position: relative;
  padding-inline-start: var(--space-5);
  font-size: var(--fs-13);
  color: var(--color-ink-inverted-soft);
}

.page--location .state-intake__assurance li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0.6em;
  width: 9px;
  height: 1.5px;
  background: var(--color-accent-soft);
}

/* form */

.page--location .state-intake__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.page--location .state-intake__form .state-intake__eyebrow {
  color: var(--color-accent);
}

.page--location .state-intake__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.page--location .state-intake__field--row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}

@media (min-width: 560px) {
  .page--location .state-intake__field--row {
    grid-template-columns: 1fr 1fr;
  }
}

.page--location .state-intake__field--row > div {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.page--location .state-intake__form label {
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
}

.page--location .state-intake__form input[type="text"], .page--location .state-intake__form input[type="email"], .page--location .state-intake__form select {
  width: 100%;
  padding: var(--space-3) var(--space-4);
  font-size: var(--fs-15);
  color: var(--text-primary);
  background: var(--color-paper);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  transition: border-color var(--motion-base) var(--ease-out), box-shadow var(--motion-base) var(--ease-out);
}

.page--location .state-intake__form input::placeholder {
  color: var(--text-eyebrow);
}

.page--location .state-intake__form input:focus, .page--location .state-intake__form select:focus {
  outline: none;
  border-color: var(--color-focus);
  box-shadow: var(--shadow-focus);
}

.page--location .state-intake__form input[aria-invalid="true"], .page--location .state-intake__form select[aria-invalid="true"] {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(132, 30, 30, 0.16);
}

.page--location .state-intake__error {
  font-size: var(--fs-12);
  font-weight: var(--fw-medium);
  color: var(--color-accent);
}

.page--location .state-intake__field--consent label {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--fs-13);
  font-weight: var(--fw-regular);
  line-height: 1.5;
  color: var(--text-secondary);
  cursor: pointer;
}

.page--location .state-intake__field--consent input {
  margin-block-start: 0.2em;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--color-accent);
}

.page--location .state-intake__form .btn--submit {
  margin-block-start: var(--space-2);
  width: 100%;
  justify-content: center;
}

.page--location .state-intake__response {
  font-size: var(--fs-13);
  line-height: 1.5;
  color: var(--text-secondary);
}

.page--location .state-intake__status {
  font-size: var(--fs-14);
  font-weight: var(--fw-medium);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-sm);
}

.page--location .state-intake__status[data-state="success"] {
  color: var(--color-success);
  background: rgba(31, 111, 63, 0.08);
}

.page--location .state-intake__status[data-state="error"] {
  color: var(--color-accent);
  background: rgba(132, 30, 30, 0.07);
}

/* ============================================================================
   19 · OPERATORS — placeholder card + standards aside
   ============================================================================ */

.page--location .operator-profile-grid--split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  align-items: start;
}

@media (min-width: 960px) {
  .page--location .operator-profile-grid--split {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
  }
}

.page--location .operator-profile-card {
  display: flex;
  flex-direction: column;
  padding: var(--space-8);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
}

.page--location .operator-profile-card--placeholder {
  border-style: dashed;
  background: var(--color-paper-warm);
}

.page--location .operator-profile-card__header {
  padding-block-end: var(--space-5);
  margin-block-end: var(--space-5);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .operator-profile-card__status {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-end: var(--space-3);
}

.page--location .operator-profile-card__status::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
}

.page--location .operator-profile-card__name {
  font-family: var(--font-serif);
  font-size: var(--fs-24);
  font-weight: var(--fw-regular);
  line-height: 1.18;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  margin-block-end: var(--space-2);
}

.page--location .operator-profile-card__location {
  font-size: var(--fs-14);
  color: var(--text-secondary);
}

.page--location .operator-profile-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-block-end: var(--space-6);
  font-size: var(--fs-15);
  line-height: 1.65;
  color: var(--text-body);
}

.page--location .operator-profile-card__body strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

.page--location .operator-profile-card__body a {
  color: var(--color-accent);
  font-weight: var(--fw-medium);
  text-decoration: none;
}

.page--location .operator-profile-card__body a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page--location .operator-profile-card__meta {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-block-start: auto;
  padding-block-start: var(--space-5);
  border-block-start: 1px solid var(--border-hairline);
}

.page--location .operator-profile-card__meta li {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.page--location .operator-profile-card__meta-label {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .operator-profile-card__meta-value {
  font-size: var(--fs-14);
  color: var(--text-body);
}

/* standards aside */

.page--location .operator-standards {
  display: flex;
  flex-direction: column;
  padding: var(--space-8);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
}

.page--location .operator-standards__eyebrow {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-end: var(--space-3);
}

.page--location .operator-standards__heading {
  font-family: var(--font-serif);
  font-size: var(--fs-24);
  font-weight: var(--fw-regular);
  line-height: 1.2;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  margin-block-end: var(--space-3);
}

.page--location .operator-standards__lede {
  font-size: var(--fs-15);
  line-height: 1.6;
  color: var(--text-secondary);
  padding-block-end: var(--space-5);
  margin-block-end: var(--space-5);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .operator-standards__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.page--location .operator-standards__item {
  display: flex;
  gap: var(--space-4);
}

.page--location .operator-standards__num {
  flex-shrink: 0;
  font-family: var(--font-serif);
  font-size: var(--fs-18);
  font-weight: var(--fw-regular);
  color: var(--color-accent);
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
}

.page--location .operator-standards__term {
  font-size: var(--fs-15);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-block-end: var(--space-1);
}

.page--location .operator-standards__detail {
  font-size: var(--fs-14);
  line-height: 1.55;
  color: var(--text-secondary);
}

.page--location .operator-standards__cta {
  margin-block-start: var(--space-6);
  padding-block-start: var(--space-5);
  border-block-start: 1px solid var(--border-hairline);
  font-size: var(--fs-14);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .operator-standards__cta:hover {
  color: var(--color-accent);
}

.page--location .operator-profile-grid__note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  margin-block-start: var(--space-8);
  padding: var(--space-6) var(--space-8);
  background: var(--color-paper-warm);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
}

.page--location .operator-profile-grid__note p {
  flex: 1 1 24rem;
  font-size: var(--fs-15);
  line-height: 1.6;
  color: var(--text-body);
}

.page--location .operator-profile-grid__note strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

/* ============================================================================
   20 · STATE COMPARISON — 4-column honest-read matrix
   ============================================================================ */

.page--location .state-comparison {
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.page--location .state-comparison__table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-14);
}

.page--location .state-comparison__table thead th {
  padding: var(--space-4) var(--space-5);
  text-align: start;
  font-family: var(--font-sans);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-base);
  color: var(--color-ink-inverted);
  background: var(--color-surface-dark);
  vertical-align: bottom;
}

.page--location .state-comparison__table thead th:nth-child(2) {
  color: var(--color-accent-soft);
}

.page--location .state-comparison__table tbody tr {
  border-block-start: 1px solid var(--border-hairline);
}

.page--location .state-comparison__table th[scope="row"] {
  padding: var(--space-4) var(--space-5);
  text-align: start;
  vertical-align: top;
  font-family: var(--font-sans);
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  background: var(--color-paper-warm);
  min-width: 13rem;
}

.page--location .state-comparison__table td {
  padding: var(--space-4) var(--space-5);
  vertical-align: top;
  line-height: 1.5;
  color: var(--text-secondary);
  min-width: 11rem;
}

.page--location .state-comparison__table td strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

.page--location .state-comparison__table td[data-winner="us"] {
  background: rgba(132, 30, 30, 0.05);
  box-shadow: inset 3px 0 0 var(--color-accent);
  color: var(--text-body);
}

.page--location .state-comparison__table td[data-winner="them"] {
  background: var(--color-paper-warm);
}

.page--location .state-comparison__verdict {
  padding: var(--space-6) var(--space-6) 0;
  font-size: var(--fs-15);
  line-height: 1.65;
  color: var(--text-body);
}

.page--location .state-comparison__verdict strong {
  color: var(--text-primary);
}

.page--location .state-comparison__related {
  padding: var(--space-4) var(--space-6) var(--space-6);
  font-size: var(--fs-13);
  line-height: 1.7;
  color: var(--text-secondary);
}

.page--location .state-comparison__related a {
  color: var(--text-primary);
  font-weight: var(--fw-medium);
  text-decoration: underline;
  text-decoration-color: var(--border-hairline);
  text-underline-offset: 2px;
}

.page--location .state-comparison__related a:hover {
  color: var(--color-accent);
  text-decoration-color: var(--color-accent);
}

@media (max-width: 920px) {
  .page--location .state-comparison__table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ============================================================================
   21 · STATE AUTHORITY — verification sources
   ============================================================================ */

.page--location .state-authority {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-block-start: 1px solid var(--border-hairline);
}

.page--location .state-authority__item {
  display: grid;
  gap: var(--space-2);
  padding-block: var(--space-5);
  border-block-end: 1px solid var(--border-hairline);
}

@media (min-width: 720px) {
  .page--location .state-authority__item {
    grid-template-columns: 0.9fr 1.1fr;
    gap: var(--space-6);
    align-items: baseline;
  }
}

.page--location .state-authority__name {
  font-family: var(--font-serif);
  font-size: var(--fs-17);
  font-weight: var(--fw-regular);
  line-height: 1.3;
  color: var(--text-primary);
}

.page--location .state-authority__name a {
  color: var(--text-primary);
  text-decoration: none;
  border-block-end: 1px solid var(--border-hairline);
  transition: color var(--motion-base) var(--ease-out), border-color var(--motion-base) var(--ease-out);
}

.page--location .state-authority__name a:hover {
  color: var(--color-accent);
  border-block-end-color: var(--color-accent);
}

.page--location .state-authority__detail {
  font-size: var(--fs-14);
  line-height: 1.6;
  color: var(--text-secondary);
  text-wrap: pretty;
}

/* ============================================================================
   22 · FAQ — refine the 03-components accordion on location pages
   ============================================================================ */

.page--location .faq__list {
  border-block-start: 1px solid var(--border-hairline);
}

.page--location .faq__trigger {
  padding-block: var(--space-5);
  font-family: var(--font-serif);
  font-size: var(--fs-20);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  gap: var(--space-5);
}

.page--location .faq__answer p {
  font-size: var(--fs-16);
  line-height: 1.68;
  color: var(--text-body);
  text-wrap: pretty;
}

.page--location .faq__answer strong {
  color: var(--text-primary);
  font-weight: var(--fw-semibold);
}

/* ============================================================================
   23 · EXPERT REVIEW — refine credentials grid
   ============================================================================ */

.page--location .expert-review {
  padding: var(--space-10) var(--space-8);
}

@media (min-width: 720px) {
  .page--location .expert-review {
    padding: var(--space-12) var(--space-10);
  }
}

.page--location .expert-review__credentials {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-block-start: var(--space-8);
  border-block-start: 1px solid var(--border-hairline);
}

@media (min-width: 720px) {
  .page--location .expert-review__credentials {
    grid-template-columns: repeat(2, 1fr);
    gap: 0 var(--space-8);
  }
}

.page--location .expert-review__credential {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding-block: var(--space-5);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .expert-review__credential-label {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent);
}

.page--location .expert-review__credential-detail {
  font-size: var(--fs-14);
  line-height: 1.55;
  color: var(--text-secondary);
}

.page--location .expert-review__credential-detail a {
  color: var(--text-primary);
  text-decoration: underline;
  text-decoration-color: var(--border-hairline);
  text-underline-offset: 2px;
}

.page--location .expert-review__credential-detail a:hover {
  color: var(--color-accent);
  text-decoration-color: var(--color-accent);
}

.page--location .expert-review__updated {
  margin-block-start: var(--space-6);
  font-size: var(--fs-12);
  color: var(--text-secondary);
  font-variant-numeric: tabular-nums;
}

/* ============================================================================
   24 · RELATED STATES — refine the 04-pages related-grid
   ============================================================================ */

.page--location .section--ny-related .related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

@media (min-width: 640px) {
  .page--location .section--ny-related .related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .page--location .section--ny-related .related-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.page--location .related-card {
  padding: 0;
  background: none;
  border: 0;
}

.page--location .related-card > article {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);
}

.page--location .related-card > article:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.page--location .related-card__heading {
  font-family: var(--font-serif);
  font-size: var(--fs-20);
  font-weight: var(--fw-regular);
  line-height: 1.2;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  margin-block-end: var(--space-3);
}

.page--location .related-card__body {
  flex: 1;
  font-size: var(--fs-14);
  line-height: 1.6;
  color: var(--text-secondary);
  margin-block-end: var(--space-5);
  text-wrap: pretty;
}

.page--location .related-card__cta {
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--motion-base) var(--ease-out);
}

.page--location .related-card__cta:hover {
  color: var(--color-accent);
}

.page--location .related-grid__note {
  margin-block-start: var(--space-8);
  font-size: var(--fs-14);
  font-style: italic;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 74ch;
}

/* ============================================================================
   25 · FINAL CTA — refine the 03-components dark closer
   ============================================================================ */

.page--location .final-cta {
  max-width: 56rem;
  margin-inline: auto;
}

.page--location .final-cta__lede strong {
  color: var(--color-ink-inverted);
  font-weight: var(--fw-semibold);
}

.page--location .final-cta__disclaimer {
  max-width: 80ch;
  margin-inline: auto;
  color: var(--color-ink-inverted-mute);
}

/* ============================================================================
   26 · SHARED SECTION-HEADER tweak — eyebrow accent dot for location pages
   ============================================================================ */

.page--location .section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}

.page--location .section__header:not(.section__header--centered) .section__eyebrow::before {
  content: "";
  width: 16px;
  height: 1.5px;
  background: var(--color-accent);
}

/* ============================================================================
   TechBrot · E-E-A-T COMPONENTS  (append to 03-components.css)
   ----------------------------------------------------------------------------
   Styles four blocks added to the state pillars:
       1. Trust strip   (.trust-strip)        — proof pills below hero
       2. Outcomes bar  (.outcomes-bar)       — stat · context · location
       3. Team strip    (.team-strip)         — David + intake, inside #*-intake
       4. Review grid   (.review-grid)        — Clutch/Google reviews

   Scoped to .page--location to inherit the location design system and avoid
   any collision with global components. Visual language matches existing
   location cards exactly: --bg-card surfaces, hairline borders, --radius-sm, serif accent figures with tabular-nums, oxblood ::before accent edges, hover = border→ink + shadow + translateY(-2px), uppercase eyebrows.

   The credential strip (.proadvisor-credentials) is already styled elsewhere
   and is intentionally NOT duplicated here.
   ============================================================================ */

/* ============================================================================
   1 · TRUST STRIP — pure proof, single scannable row (below hero)
   Section sits on the warm alt background with hairline rules top & bottom, echoing .section--proof-strip so it reads as a structural band, not a card.
   ============================================================================ */

.page--location .section--trust-strip {
  padding-block: var(--space-6);
  background: var(--bg-section-alt);
  border-block-start: 1px solid var(--border-hairline);
  border-block-end: 1px solid var(--border-hairline);
}

.page--location .trust-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-4) var(--space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 720px) {
  .page--location .trust-strip {
    justify-content: space-between;
    gap: var(--space-6);
  }
}

.page--location .trust-strip__pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 44px;
}

/* dividers between pills on wider screens — quiet hairline ticks */

@media (min-width: 720px) {
  .page--location .trust-strip__pill:not(:last-child) {
    padding-inline-end: var(--space-6);
    border-inline-end: 1px solid var(--border-hairline);
  }
}

/* Google rating pill -------------------------------------------------------- */

.page--location .trust-strip__pill--rating a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  text-decoration: none;
  color: var(--text-primary);
  transition: opacity var(--motion-base) var(--ease-out);
}

.page--location .trust-strip__pill--rating a:hover {
  opacity: 0.7;
}

.page--location .trust-strip__stars {
  --rating-fill: var(--color-accent);
  position: relative;
  display: inline-block;
  font-size: var(--fs-15);
  line-height: 1;
  letter-spacing: 0.05em;
  color: var(--color-paper-edge);
  white-space: nowrap;
}

/* gold/oxblood fill driven by [data-rating] width set inline (e.g. 4.9 → 98%) */

.page--location .trust-strip__stars::before {
  content: "★★★★★";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: var(--rating-pct, 100%);
  overflow: hidden;
  color: var(--rating-fill);
  white-space: nowrap;
}

.page--location .trust-strip__rating-num {
  font-family: var(--font-serif);
  font-size: var(--fs-18);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-tight);
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}

.page--location .trust-strip__rating-meta {
  font-size: var(--fs-13);
  color: var(--text-secondary);
}

/* Volume figure pill -------------------------------------------------------- */

.page--location .trust-strip__pill .trust-strip__figure {
  font-family: var(--font-serif);
  font-size: var(--fs-22);
  font-weight: var(--fw-regular);
  line-height: 1;
  letter-spacing: var(--ls-tight);
  color: var(--color-accent);
  font-variant-numeric: tabular-nums;
}

.page--location .trust-strip__label {
  font-size: var(--fs-13);
  line-height: 1.35;
  color: var(--text-secondary);
  max-width: 22ch;
}

/* Intuit badge pill --------------------------------------------------------- */

.page--location .trust-strip__pill--badge img {
  display: block;
  height: 36px;
  width: auto;
}

/* Independence note pill ---------------------------------------------------- */

.page--location .trust-strip__note-text {
  font-size: var(--fs-12);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
  text-wrap: balance;
}

/* ============================================================================
   2 · OUTCOMES BAR — stat · context · location (after scenarios)
   Cards mirror the location-context-card idiom; on mobile they form a
   horizontal snap-scroll rail so 4 figures stay scannable without a wall.
   ============================================================================ */

.page--location .outcomes-bar {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(78%, 1fr);
  gap: var(--space-5);
  list-style: none;
  margin: 0;
  padding: 0 0 var(--space-3);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--color-paper-edge) transparent;
}

.page--location .outcomes-bar::-webkit-scrollbar {
  height: 6px;
}

.page--location .outcomes-bar::-webkit-scrollbar-thumb {
  background: var(--color-paper-edge);
  border-radius: var(--radius-pill);
}

@media (min-width: 720px) {
  .page--location .outcomes-bar {
    grid-auto-flow: row;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-columns: auto;
    overflow: visible;
  }
}

@media (min-width: 1024px) {
  .page--location .outcomes-bar {
    grid-template-columns: repeat(4, 1fr);
  }
}

.page--location .outcome-card, .page--reviews .outcome-card, .page--about-team .outcome-card, .page--home .outcome-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  scroll-snap-align: start;
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);
}

.page--location .outcome-card:hover, .page--reviews .outcome-card:hover, .page--about-team .outcome-card:hover, .page--home .outcome-card:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.page--location .outcome-card::before, .page--reviews .outcome-card::before, .page--about-team .outcome-card::before, .page--home .outcome-card::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: var(--space-7);
  width: 36px;
  height: 2px;
  background: var(--color-accent);
}

.page--location .outcome-card__figure, .page--reviews .outcome-card__figure, .page--about-team .outcome-card__figure, .page--home .outcome-card__figure {
  font-family: var(--font-serif);
  font-size: var(--fs-38);
  font-weight: var(--fw-regular);
  line-height: 0.95;
  letter-spacing: var(--ls-tight);
  color: var(--color-accent);
  font-variant-numeric: tabular-nums;
  margin-block-start: var(--space-2);
}

.page--location .outcome-card__detail, .page--reviews .outcome-card__detail, .page--about-team .outcome-card__detail, .page--home .outcome-card__detail {
  font-size: var(--fs-15);
  line-height: 1.45;
  color: var(--text-body);
  text-wrap: pretty;
}

.page--location .outcome-card__meta, .page--reviews .outcome-card__meta, .page--about-team .outcome-card__meta, .page--home .outcome-card__meta {
  margin-block-start: auto;
  padding-block-start: var(--space-3);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .outcomes-bar__note {
  margin-block-start: var(--space-5);
  font-size: var(--fs-13);
  color: var(--text-secondary);
}

/* ============================================================================
   3 · TEAM STRIP — named credentialed author + intake team (inside #*-intake)
   Two photo-left / credentials-right cards. David is the E-E-A-T anchor, so
   his card gets the oxblood accent edge; the intake card is quieter.
   Sits above the intake split with breathing room below.
   ============================================================================ */

.page--location .team-strip, .page--reviews .team-strip, .page--about-team .team-strip, .page--home .team-strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  margin-block-end: var(--space-10);
}

@media (min-width: 720px) {
  .page--location .team-strip, .page--reviews .team-strip, .page--about-team .team-strip, .page--home .team-strip {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
  }
}

.page--location .team-card, .page--reviews .team-card, .page--about-team .team-card, .page--home .team-card {
  position: relative;
  display: flex;
  gap: var(--space-5);
  align-items: flex-start;
  padding: var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out);
}

.page--location .team-card:hover, .page--reviews .team-card:hover, .page--about-team .team-card:hover, .page--home .team-card:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-sm);
}

/* lead-ProAdvisor card carries the accent edge (the authority signal) */

.page--location .team-card:first-child::before, .page--reviews .team-card:first-child::before, .page--about-team .team-card:first-child::before, .page--home .team-card:first-child::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: var(--space-7);
  width: 44px;
  height: 2px;
  background: var(--color-accent);
}

.page--location .team-card__photo, .page--reviews .team-card__photo, .page--about-team .team-card__photo, .page--home .team-card__photo {
  flex: 0 0 auto;
  width: 88px;
  height: 88px;
  border-radius: var(--radius-md);
  object-fit: cover;
  background: var(--color-paper-deep);
  filter: grayscale(1) contrast(1.02);
  transition: filter var(--motion-slow) var(--ease-out);
}

.page--location .team-card:hover .team-card__photo, .page--reviews .team-card:hover .team-card__photo, .page--about-team .team-card:hover .team-card__photo, .page--home .team-card:hover .team-card__photo {
  filter: grayscale(0);
}

@media (min-width: 480px) {
  .page--location .team-card__photo, .page--reviews .team-card__photo, .page--about-team .team-card__photo, .page--home .team-card__photo {
    width: 104px;
    height: 104px;
  }
}

.page--location .team-card__body, .page--reviews .team-card__body, .page--about-team .team-card__body, .page--home .team-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}

.page--location .team-card__name, .page--reviews .team-card__name, .page--about-team .team-card__name, .page--home .team-card__name {
  font-family: var(--font-serif);
  font-size: var(--fs-22);
  font-weight: var(--fw-regular);
  line-height: 1.1;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
}

.page--location .team-card__role, .page--reviews .team-card__role, .page--about-team .team-card__role, .page--home .team-card__role {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-end: var(--space-2);
}

.page--location .team-card__creds, .page--reviews .team-card__creds, .page--about-team .team-card__creds, .page--home .team-card__creds {
  font-size: var(--fs-13);
  line-height: 1.45;
  color: var(--text-secondary);
}

.page--location .team-card__line, .page--reviews .team-card__line, .page--about-team .team-card__line, .page--home .team-card__line {
  margin-block-start: var(--space-2);
  font-size: var(--fs-14);
  line-height: 1.55;
  color: var(--text-body);
  text-wrap: pretty;
}

.page--location .team-card__verify, .page--reviews .team-card__verify, .page--about-team .team-card__verify, .page--home .team-card__verify {
  margin-block-start: var(--space-3);
  align-self: flex-start;
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: var(--border-hairline);
  transition: text-decoration-color var(--motion-base) var(--ease-out);
}

.page--location .team-card__verify:hover, .page--reviews .team-card__verify:hover, .page--about-team .team-card__verify:hover, .page--home .team-card__verify:hover {
  text-decoration-color: var(--color-accent);
}

/* ============================================================================
   4 · REVIEW GRID — Clutch/Google reviews (between why & comparison)
   3-up on desktop, stacked on mobile. CSS stars (no images). Quote-mark
   accent in serif oxblood for editorial weight.
   ============================================================================ */

.page--location .review-grid, .page--reviews .review-grid, .page--about-team .review-grid, .page--home .review-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 640px) {
  .page--location .review-grid, .page--reviews .review-grid, .page--about-team .review-grid, .page--home .review-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .page--location .review-grid, .page--reviews .review-grid, .page--about-team .review-grid, .page--home .review-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
  }
}

.page--location .review-card, .page--reviews .review-card, .page--about-team .review-card, .page--home .review-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-8) var(--space-7) var(--space-7);
  background: var(--bg-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-sm);
  transition: border-color var(--motion-slow) var(--ease-out), box-shadow var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);
}

.page--location .review-card:hover, .page--reviews .review-card:hover, .page--about-team .review-card:hover, .page--home .review-card:hover {
  border-color: var(--text-primary);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

/* editorial opening quote mark */

.page--location .review-card::before, .page--reviews .review-card::before, .page--about-team .review-card::before, .page--home .review-card::before {
  content: "\201C";
  position: absolute;
  inset-block-start: calc(var(--space-4) * -0.1);
  inset-inline-start: var(--space-6);
  font-family: var(--font-serif);
  font-size: var(--fs-68);
  line-height: 1;
  color: var(--color-accent);
  opacity: 0.16;
  pointer-events: none;
}

.page--location .review-card__stars, .page--reviews .review-card__stars, .page--about-team .review-card__stars, .page--home .review-card__stars {
  font-size: var(--fs-15);
  line-height: 1;
  letter-spacing: 0.08em;
  color: var(--color-accent);
}

.page--location .review-card__quote, .page--reviews .review-card__quote, .page--about-team .review-card__quote, .page--home .review-card__quote {
  margin: 0;
  flex: 1 1 auto;
}

.page--location .review-card__quote p, .page--reviews .review-card__quote p, .page--about-team .review-card__quote p, .page--home .review-card__quote p {
  font-size: var(--fs-16);
  line-height: 1.6;
  color: var(--text-body);
  text-wrap: pretty;
}

.page--location .review-card__author, .page--reviews .review-card__author, .page--about-team .review-card__author, .page--home .review-card__author {
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
}

.page--location .review-card__source, .page--reviews .review-card__source, .page--about-team .review-card__source, .page--home .review-card__source {
  font-size: var(--fs-12);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

.page--location .review-grid__note, .page--reviews .review-grid__note, .page--about-team .review-grid__note, .page--home .review-grid__note {
  margin-block-start: var(--space-6);
  text-align: center;
}

.page--location .review-grid__note a, .page--reviews .review-grid__note a, .page--about-team .review-grid__note a, .page--home .review-grid__note a {
  font-size: var(--fs-14);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: var(--border-hairline);
  transition: text-decoration-color var(--motion-base) var(--ease-out);
}

.page--location .review-grid__note a:hover, .page--reviews .review-grid__note a:hover, .page--about-team .review-grid__note a:hover, .page--home .review-grid__note a:hover {
  text-decoration-color: var(--color-accent);
}

/* ============================================================================
   REDUCED MOTION — disable lifts/scroll-snap nicety
   ============================================================================ */

@media (prefers-reduced-motion: reduce) {
  .page--location .outcome-card, .page--reviews .outcome-card, .page--about-team .outcome-card, .page--home .outcome-card, .page--location .review-card, .page--reviews .review-card, .page--about-team .review-card, .page--home .review-card, .page--location .team-card, .page--reviews .team-card, .page--about-team .team-card, .page--home .team-card {
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page--location .outcome-card:hover, .page--reviews .outcome-card:hover, .page--about-team .outcome-card:hover, .page--home .outcome-card:hover, .page--location .review-card:hover, .page--reviews .review-card:hover, .page--about-team .review-card:hover, .page--home .review-card:hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page--location .outcomes-bar {
    scroll-snap-type: none;
  }
}

/* ============================================================================
   REVIEW GRID — TWO-CARD VARIANT (.section--review-grid--two)
   When only 2 genuine reviews exist, center them at a comfortable max-width
   instead of stretching a 3-col track. Never pad to 3 with fabricated cards.
   ============================================================================ */

@media (min-width: 1024px) {
  .page--location .section--review-grid--two .review-grid, .page--reviews .section--review-grid--two .review-grid, .page--about-team .section--review-grid--two .review-grid, .page--home .section--review-grid--two .review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 880px;
    margin-inline: auto;
  }
}

/* ============================================================================
   REVIEW BLOCK — ENRICHED VARIANT (.section--review-enriched)
   ----------------------------------------------------------------------------
   Left "overall" rail (Clutch score + editorial SVG + sub-rating bars) anchors
   two real review cards so the block reads composed, never sparse. Real Clutch
   data: 5.0 overall, 2 reviews, all sub-scores 5.0.
   ============================================================================ */

.page--location .review-layout, .page--reviews .review-layout, .page--about-team .review-layout, .page--home .review-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
  align-items: start;
}

@media (min-width: 980px) {
  .page--location .review-layout, .page--reviews .review-layout, .page--about-team .review-layout, .page--home .review-layout {
    grid-template-columns: minmax(260px, 320px) 1fr;
    gap: var(--space-8);
  }
}

/* ── OVERALL RAIL ─────────────────────────────────────────────────────────── */

.page--location .review-overall, .page--reviews .review-overall, .page--about-team .review-overall, .page--home .review-overall {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-5);
  padding: var(--space-8) var(--space-7);
  background: var(--color-surface-dark);
  color: var(--color-ink-inverted);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

@media (min-width: 980px) {
  .page--location .review-overall, .page--reviews .review-overall, .page--about-team .review-overall, .page--home .review-overall {
    position: sticky;
    top: calc(var(--header-height) + var(--space-5));
  }
}

.page--location .review-overall::before, .page--reviews .review-overall::before, .page--about-team .review-overall::before, .page--home .review-overall::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  height: 2px;
  background: var(--color-accent);
}

.page--location .review-overall__score, .page--reviews .review-overall__score, .page--about-team .review-overall__score, .page--home .review-overall__score {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}

.page--location .review-overall__num, .page--reviews .review-overall__num, .page--about-team .review-overall__num, .page--home .review-overall__num {
  font-family: var(--font-serif);
  font-size: var(--fs-68);
  font-weight: var(--fw-regular);
  line-height: 0.9;
  letter-spacing: var(--ls-tight);
  color: var(--color-ink-inverted);
  font-variant-numeric: tabular-nums;
}

.page--location .review-overall__stars, .page--reviews .review-overall__stars, .page--about-team .review-overall__stars, .page--home .review-overall__stars {
  position: relative;
  display: inline-block;
  font-size: var(--fs-18);
  line-height: 1;
  letter-spacing: 0.1em;
  color: rgba(250, 250, 247, 0.22);
  white-space: nowrap;
}

.page--location .review-overall__stars::before, .page--reviews .review-overall__stars::before, .page--about-team .review-overall__stars::before, .page--home .review-overall__stars::before {
  content: "★★★★★";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: var(--rating-pct, 100%);
  overflow: hidden;
  color: var(--color-accent-soft);
  white-space: nowrap;
}

.page--location .review-overall__meta, .page--reviews .review-overall__meta, .page--about-team .review-overall__meta, .page--home .review-overall__meta {
  font-size: var(--fs-12);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-ink-inverted-mute);
  text-wrap: balance;
}

/* editorial laurel + star mark */

.page--location .review-overall__mark, .page--reviews .review-overall__mark, .page--about-team .review-overall__mark, .page--home .review-overall__mark {
  width: 84px;
  height: 84px;
  color: var(--color-accent-soft);
  opacity: 0.9;
}

/* sub-rating bars */

.page--location .review-subscores, .page--reviews .review-subscores, .page--about-team .review-subscores, .page--home .review-subscores {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin: 0;
  padding-block-start: var(--space-5);
  border-block-start: 1px solid rgba(250, 250, 247, 0.12);
}

.page--location .review-subscore, .page--reviews .review-subscore, .page--about-team .review-subscore, .page--home .review-subscore {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-1);
}

.page--location .review-subscore dt, .page--reviews .review-subscore dt, .page--about-team .review-subscore dt, .page--home .review-subscore dt {
  font-size: var(--fs-12);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-ink-inverted-soft);
  text-align: start;
}

.page--location .review-subscore dd, .page--reviews .review-subscore dd, .page--about-team .review-subscore dd, .page--home .review-subscore dd {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
}

.page--location .review-subscore__bar, .page--reviews .review-subscore__bar, .page--about-team .review-subscore__bar, .page--home .review-subscore__bar {
  flex: 1 1 auto;
  height: 3px;
  border-radius: var(--radius-pill);
  background: rgba(250, 250, 247, 0.14);
  position: relative;
  overflow: hidden;
}

.page--location .review-subscore__bar::before, .page--reviews .review-subscore__bar::before, .page--about-team .review-subscore__bar::before, .page--home .review-subscore__bar::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: var(--score, 100%);
  background: var(--color-accent-soft);
  border-radius: inherit;
}

.page--location .review-subscore__val, .page--reviews .review-subscore__val, .page--about-team .review-subscore__val, .page--home .review-subscore__val {
  flex: 0 0 auto;
  font-size: var(--fs-13);
  font-weight: var(--fw-semibold);
  color: var(--color-ink-inverted);
  font-variant-numeric: tabular-nums;
}

.page--location .review-overall__cta, .page--reviews .review-overall__cta, .page--about-team .review-overall__cta, .page--home .review-overall__cta {
  margin-block-start: var(--space-2);
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  color: var(--color-ink-inverted);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(250, 250, 247, 0.3);
  transition: text-decoration-color var(--motion-base) var(--ease-out);
}

.page--location .review-overall__cta:hover, .page--reviews .review-overall__cta:hover, .page--about-team .review-overall__cta:hover, .page--home .review-overall__cta:hover {
  text-decoration-color: var(--color-accent-soft);
}

/* ── PAIRED CARDS (alongside the rail) ────────────────────────────────────── */

.page--location .review-grid--paired, .page--reviews .review-grid--paired, .page--about-team .review-grid--paired, .page--home .review-grid--paired {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

@media (min-width: 560px) {
  .page--location .review-grid--paired, .page--reviews .review-grid--paired, .page--about-team .review-grid--paired, .page--home .review-grid--paired {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 980px) {
  .page--location .section--review-enriched .review-grid--paired, .page--reviews .section--review-enriched .review-grid--paired, .page--about-team .section--review-enriched .review-grid--paired, .page--home .section--review-enriched .review-grid--paired {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* richer byline block on enriched cards */

.page--location .review-card__context, .page--reviews .review-card__context, .page--about-team .review-card__context, .page--home .review-card__context {
  font-size: var(--fs-14);
  line-height: 1.55;
  color: var(--text-secondary);
  text-wrap: pretty;
}

.page--location .review-card__byline, .page--reviews .review-card__byline, .page--about-team .review-card__byline, .page--home .review-card__byline {
  margin-block-start: auto;
  padding-block-start: var(--space-4);
  border-block-start: 1px solid var(--border-hairline);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.page--location .review-card__role, .page--reviews .review-card__role, .page--about-team .review-card__role, .page--home .review-card__role {
  font-size: var(--fs-13);
  color: var(--text-body);
}

.page--location .review-card__meta, .page--reviews .review-card__meta, .page--about-team .review-card__meta, .page--home .review-card__meta {
  font-size: var(--fs-12);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
  text-wrap: pretty;
}

/* ============================================================================
   SESSION 6 — review/team modifier completions + service-page reach
   ----------------------------------------------------------------------------
   Small additions so the now-global review/team components are fully realized
   on reviews, team, and home pages. No structural changes.
   ============================================================================ */

/* --full star/bar fills — make the modifier classes real (they were relying on
   the var() fallback). Explicit so star/bar fills are robust and self-documenting
   wherever inline styles were removed (pillars, reviews, team). */

.review-overall__stars--full {
  --rating-pct: 100%;
}

.review-subscore__bar--full {
  --score: 100%;
}

/* Firm-level team card with no portrait — an editorial monogram/checkmark mark
   instead of a photo. Matches the team-card__photo footprint exactly. */

.page--location .team-card__photo--mark, .page--reviews .team-card__photo--mark, .page--about-team .team-card__photo--mark, .page--home .team-card__photo--mark {
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--color-accent) 6%, var(--color-paper));
  border: 1px solid var(--border-hairline);
  color: var(--color-accent);
  filter: none;
}

.page--about-team .team-card__photo--mark svg, .page--reviews .team-card__photo--mark svg, .page--location .team-card__photo--mark svg, .page--home .team-card__photo--mark svg {
  width: 44%;
  height: 44%;
}

/* ============================================================================
   MERGED FROM 07-location-child.css (Session 6 consolidation)
   Child-page system: .page--location-child scoping + --_lc tokens + child-hero
   + child-cta + the final-cta light treatment. Loads after location pillar
   styles, preserving the original cascade order (was 05 → 07).
   ============================================================================ */

/* ============================================================================
   07-location-child.css  ·  TechBrot
   Ultra-premium section components for STATE CHILD pages (money hubs, service
   spokes, tax pages, city pages). Loads AFTER 05-locations.css.
   Adds new components only — never redefines tokens or pillar primitives.
   All values reference existing custom properties from 01-tokens.css
   (--ox, --paper, --ink, --sp-*, --fs-*, --radius-*, --shadow-*, fonts).
   Fallbacks are provided inline so the file is safe even if a token is renamed.
   ============================================================================ */

/* ---- shared child-page rhythm ------------------------------------------- */

.section--child-hero, .section--value-stack, .section--proof-band, .section--scope-split, .section--ny-tax-card, .section--process-rail, .section--mini-faq, .section--child-cta {
  --_accent: var(--ox, #841E1E);
  --_paper: var(--paper, #FAFAF7);
  --_ink: var(--ink, #1A1A1A);
  --_muted: color-mix(in srgb, var(--_ink) 62%, transparent);
  --_line: color-mix(in srgb, var(--_ink) 12%, transparent);
}

/* ============================================================================
   1 · CHILD HERO — editorial, asymmetric, calmer than the pillar map hero
   ============================================================================ */

.child-hero {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: clamp(2rem,4vw,4.5rem);
  align-items: end;
  padding-block: clamp(2.5rem,5vw,5rem);
}

.child-hero__eyebrow {
  font-family: var(--font-ui, "Inter", system-ui, sans-serif);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--_accent);
  font-weight: 600;
  margin: 0 0 1rem;
  display: flex;
  align-items: center;
  gap: .6rem;
}

.child-hero__eyebrow::before {
  content: "";
  width: 2rem;
  height: 1px;
  background: var(--_accent);
  display: inline-block;
}

.child-hero__title {
  font-family: var(--font-display, "Fraunces", Georgia, serif);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.02em;
  font-size: clamp(2.1rem, 4.6vw, 3.6rem);
  color: var(--_ink);
  margin: 0 0 1.25rem;
}

.child-hero__title em {
  font-style: italic;
  color: var(--_accent);
}

.child-hero__lede {
  font-size: clamp(1.05rem,1.4vw,1.22rem);
  line-height: 1.6;
  color: var(--_muted);
  max-width: 48ch;
  margin: 0 0 1.75rem;
}

.child-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
}

.child-hero__aside {
  border-left: 1px solid var(--_line);
  padding-left: clamp(1.25rem,2vw,2rem);
}

.child-hero__stat {
  margin: 0 0 1.4rem;
}

.child-hero__stat:last-child {
  margin-bottom: 0;
}

.child-hero__stat dt {
  font-family: var(--font-ui,"Inter",sans-serif);
  font-size: .74rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--_muted);
  margin: 0 0 .25rem;
}

.child-hero__stat dd {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.9rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

@media (max-width:820px) {
  .child-hero {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

@media (max-width:820px) {
  .child-hero__aside {
    border-left: 0;
    border-top: 1px solid var(--_line);
    padding: 1.5rem 0 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
  }
}

@media (max-width:820px) {
  .child-hero__stat {
    margin: 0;
  }
}

/* ============================================================================
   2 · VALUE STACK — what you get, premium bordered rows (not boxy cards)
   ============================================================================ */

.value-stack {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--_line);
}

.value-stack__row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(1rem,2.5vw,2.5rem);
  padding: clamp(1.4rem,2.4vw,2rem) 0;
  border-bottom: 1px solid var(--_line);
  align-items: start;
  transition: background .2s ease;
}

.value-stack__row:hover {
  background: color-mix(in srgb, var(--_accent) 3%, transparent);
}

.value-stack__num {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--_accent);
  font-variant-numeric: tabular-nums;
  padding-top: .15rem;
  min-width: 2.5rem;
}

.value-stack__title {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.22rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0 0 .4rem;
  line-height: 1.25;
}

.value-stack__body {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--_muted);
  margin: 0;
  max-width: 62ch;
}

.value-stack__body a {
  color: var(--_accent);
  text-underline-offset: 2px;
}

/* ============================================================================
   3 · PROOF BAND — outcome figures on a warm-ink panel
   ============================================================================ */

.section--proof-band {
  background: var(--_ink);
  color: var(--_paper);
}

.proof-band {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: clamp(1.25rem,3vw,3rem);
  padding-block: clamp(2rem,3.5vw,3rem);
}

.proof-band__item {
  text-align: left;
}

.proof-band__fig {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: clamp(2rem,3.4vw,2.9rem);
  font-weight: 600;
  line-height: 1;
  color: var(--_paper);
  margin: 0 0 .5rem;
  font-variant-numeric: tabular-nums;
}

.proof-band__fig span {
  color: color-mix(in srgb, var(--_accent) 60%, var(--_paper));
}

.proof-band__label {
  font-family: var(--font-ui,"Inter",sans-serif);
  font-size: .82rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--_paper) 72%, transparent);
  margin: 0;
}

@media (max-width:760px) {
  .proof-band {
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem 1.25rem;
  }
}

/* ============================================================================
   4 · SCOPE SPLIT — "what we do / what we don't" honest two-column
   ============================================================================ */

.scope-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.25rem,3vw,2.5rem);
}

.scope-split__col {
  padding: clamp(1.5rem,2.5vw,2rem);
  border-radius: var(--radius-lg, 14px);
  border: 1px solid var(--_line);
  background: var(--_paper);
}

.scope-split__col--do {
  border-top: 3px solid var(--_accent);
}

.scope-split__col--dont {
  border-top: 3px solid color-mix(in srgb, var(--_ink) 30%, transparent);
  background: color-mix(in srgb, var(--_ink) 2%, var(--_paper));
}

.scope-split__heading {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.18rem;
  font-weight: 600;
  margin: 0 0 1rem;
  color: var(--_ink);
  display: flex;
  align-items: center;
  gap: .5rem;
}

.scope-split__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .7rem;
}

.scope-split__list li {
  font-size: .97rem;
  line-height: 1.5;
  color: var(--_muted);
  padding-left: 1.6rem;
  position: relative;
}

.scope-split__col--do li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--_accent);
  font-weight: 700;
}

.scope-split__col--dont li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: color-mix(in srgb,var(--_ink) 45%,transparent);
}

.scope-split__list li a {
  color: var(--_accent);
}

@media (max-width:720px) {
  .scope-split {
    grid-template-columns: 1fr;
  }
}

/* ============================================================================
   5 · NY TAX CARD — the state-specific fact callout (premium, citeable)
   ============================================================================ */

.ny-tax-card {
  border: 1px solid var(--_line);
  border-radius: var(--radius-lg,14px);
  overflow: hidden;
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(0,0,0,.04));
}

.ny-tax-card__head {
  background: color-mix(in srgb, var(--_accent) 8%, var(--_paper));
  padding: clamp(1.1rem,2vw,1.5rem) clamp(1.25rem,2.5vw,1.75rem);
  border-bottom: 1px solid var(--_line);
}

.ny-tax-card__eyebrow {
  font-family: var(--font-ui,"Inter",sans-serif);
  font-size: .74rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--_accent);
  font-weight: 600;
  margin: 0 0 .35rem;
}

.ny-tax-card__title {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0;
}

.ny-tax-card__grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
}

.ny-tax-card__cell {
  padding: clamp(1.1rem,2vw,1.5rem);
  border-right: 1px solid var(--_line);
  border-bottom: 1px solid var(--_line);
}

.ny-tax-card__cell:nth-child(3n) {
  border-right: 0;
}

.ny-tax-card__fig {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.7rem;
  font-weight: 600;
  color: var(--_accent);
  margin: 0 0 .3rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.ny-tax-card__desc {
  font-size: .9rem;
  line-height: 1.45;
  color: var(--_muted);
  margin: 0;
}

@media (max-width:720px) {
  .ny-tax-card__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width:720px) {
  .ny-tax-card__cell {
    border-right: 0;
  }
}

@media (max-width:720px) {
  .ny-tax-card__cell:last-child {
    border-bottom: 0;
  }
}

/* ============================================================================
   6 · PROCESS RAIL — horizontal numbered engagement steps
   ============================================================================ */

.process-rail {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: clamp(1rem,2.5vw,2rem);
  counter-reset: step;
}

.process-rail__step {
  position: relative;
  padding-top: 2.75rem;
}

.process-rail__step::before {
  counter-increment: step;
  content: counter(step,decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 0;
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--_paper);
  background: var(--_accent);
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-variant-numeric: tabular-nums;
}

.process-rail__step::after {
  content: "";
  position: absolute;
  top: 1rem;
  left: 2.4rem;
  right: -1rem;
  height: 1px;
  background: var(--_line);
}

.process-rail__step:last-child::after {
  display: none;
}

.process-rail__title {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0 0 .4rem;
}

.process-rail__body {
  font-size: .95rem;
  line-height: 1.55;
  color: var(--_muted);
  margin: 0;
}

@media (max-width:820px) {
  .process-rail {
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem;
  }
}

@media (max-width:820px) {
  .process-rail__step::after {
    display: none;
  }
}

@media (max-width:460px) {
  .process-rail {
    grid-template-columns: 1fr;
  }
}

/* ============================================================================
   7 · CHILD CTA — calmer than pillar final-cta, single strong action
   ============================================================================ */

.section--child-cta {
  background: color-mix(in srgb, var(--_accent) 6%, var(--_paper));
}

.child-cta {
  text-align: center;
  max-width: 60ch;
  margin-inline: auto;
  padding-block: clamp(2rem,4vw,3.5rem);
}

.child-cta__heading {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: clamp(1.6rem,3vw,2.3rem);
  font-weight: 600;
  color: var(--_ink);
  margin: 0 0 1rem;
  line-height: 1.15;
}

.child-cta__lede {
  font-size: 1.08rem;
  line-height: 1.6;
  color: var(--_muted);
  margin: 0 0 1.75rem;
}

.child-cta__actions {
  display: flex;
  gap: .85rem;
  justify-content: center;
  flex-wrap: wrap;
}

.child-cta__disclaimer {
  font-size: .84rem;
  line-height: 1.5;
  color: var(--_muted);
  margin: 1.75rem auto 0;
  max-width: 70ch;
}

/* ---- reduced motion safety ---------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .value-stack__row {
    transition: none;
  }
}

/* ============================================================================
   8 · TAX-PAGE COMPONENTS (appended) — for state tax pages
   reference-table (dense facts), notice-list (NY notice types), term-callout
   ============================================================================ */

.section--reference-table, .section--notice-list, .section--term-callout {
  --_accent: var(--ox, #841E1E);
  --_paper: var(--paper, #FAFAF7);
  --_ink: var(--ink, #1A1A1A);
  --_muted: color-mix(in srgb, var(--_ink) 62%, transparent);
  --_line: color-mix(in srgb, var(--_ink) 12%, transparent);
}

/* 8a · REFERENCE TABLE — authoritative fact rows (rate/threshold/form) */

.reference-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--_line);
  border-radius: var(--radius-lg,14px);
  overflow: hidden;
  font-family: var(--font-ui,"Inter",system-ui,sans-serif);
}

.reference-table caption {
  text-align: left;
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0 0 .9rem;
  caption-side: top;
}

.reference-table th, .reference-table td {
  text-align: left;
  padding: .9rem 1.1rem;
  border-bottom: 1px solid var(--_line);
  vertical-align: top;
  font-size: .95rem;
  line-height: 1.5;
}

.reference-table thead th {
  background: color-mix(in srgb, var(--_accent) 8%, var(--_paper));
  color: var(--_ink);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.reference-table tbody th {
  font-weight: 600;
  color: var(--_ink);
  width: 34%;
  font-variant-numeric: tabular-nums;
}

.reference-table tbody td {
  color: var(--_muted);
}

.reference-table tbody tr:last-child th, .reference-table tbody tr:last-child td {
  border-bottom: 0;
}

.reference-table tbody tr:hover {
  background: color-mix(in srgb, var(--_accent) 3%, transparent);
}

.reference-table .reference-table__fig {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.05rem;
  color: var(--_accent);
  font-weight: 600;
}

@media (max-width:640px) {
  .reference-table, .reference-table tbody, .reference-table tr, .reference-table th, .reference-table td {
    display: block;
    width: 100%;
  }
}

@media (max-width:640px) {
  .reference-table thead {
    display: none;
  }
}

@media (max-width:640px) {
  .reference-table tbody tr {
    border-bottom: 1px solid var(--_line);
    padding: .5rem 0;
  }
}

@media (max-width:640px) {
  .reference-table tbody th {
    width: 100%;
    border-bottom: 0;
    padding-bottom: .2rem;
  }
}

@media (max-width:640px) {
  .reference-table tbody td {
    padding-top: .2rem;
  }
}

/* 8b · NOTICE LIST — NY notice/form types as scannable definition rows */

.notice-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid var(--_line);
}

.notice-list__item {
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: clamp(.75rem,2vw,2rem);
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--_line);
  align-items: baseline;
}

.notice-list__form {
  font-family: var(--font-ui,"Inter",sans-serif);
  font-weight: 600;
  color: var(--_accent);
  font-size: .92rem;
  letter-spacing: .01em;
}

.notice-list__desc {
  font-size: .97rem;
  line-height: 1.55;
  color: var(--_muted);
  margin: 0;
}

.notice-list__desc strong {
  color: var(--_ink);
}

@media (max-width:640px) {
  .notice-list__item {
    grid-template-columns: 1fr;
    gap: .2rem;
  }
}

/* 8c · TERM CALLOUT — definitional emphasis block (AI-citation friendly) */

.term-callout {
  border-left: 3px solid var(--_accent);
  background: color-mix(in srgb, var(--_accent) 4%, var(--_paper));
  padding: clamp(1.1rem,2vw,1.5rem) clamp(1.25rem,2.5vw,1.75rem);
  border-radius: 0 var(--radius-md,10px) var(--radius-md,10px) 0;
}

.term-callout__term {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0 0 .4rem;
}

.term-callout__def {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--_muted);
  margin: 0;
}

.term-callout__def strong {
  color: var(--_ink);
}

/* ============================================================================
   9 · CITY-PAGE COMPONENTS (appended) — for /cities/[city]/ pages
   area-grid (boroughs/neighborhoods), local-context (the un-clonable local band),
   local-industries (city verticals). The local-context band is what proves a
   city page is genuinely local — never ship a city page without real copy here.
   ============================================================================ */

.section--area-grid, .section--local-context, .section--local-industries {
  --_accent: var(--ox, #841E1E);
  --_paper: var(--paper, #FAFAF7);
  --_ink: var(--ink, #1A1A1A);
  --_muted: color-mix(in srgb, var(--_ink) 62%, transparent);
  --_line: color-mix(in srgb, var(--_ink) 12%, transparent);
}

/* 9a · AREA GRID — boroughs / neighborhoods / sub-areas served */

.area-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(150px,1fr));
  gap: clamp(.6rem,1.5vw,1rem);
  list-style: none;
  margin: 0;
  padding: 0;
}

.area-grid__item {
  border: 1px solid var(--_line);
  border-radius: var(--radius-md,10px);
  padding: clamp(.9rem,1.6vw,1.15rem) clamp(1rem,1.8vw,1.25rem);
  background: var(--_paper);
  transition: border-color .18s ease, transform .18s ease;
}

.area-grid__item:hover {
  border-color: color-mix(in srgb,var(--_accent) 40%,var(--_line));
  transform: translateY(-2px);
}

.area-grid__name {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0 0 .15rem;
}

.area-grid__note {
  font-family: var(--font-ui,"Inter",sans-serif);
  font-size: .82rem;
  color: var(--_muted);
  margin: 0;
  line-height: 1.4;
}

/* 9b · LOCAL CONTEXT — the genuinely-local band (un-clonable substance) */

.section--local-context {
  background: color-mix(in srgb, var(--_accent) 4%, var(--_paper));
}

.local-context {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem,2vw,1.5rem);
  max-width: 72ch;
}

.local-context__lead {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: clamp(1.15rem,1.6vw,1.35rem);
  line-height: 1.5;
  color: var(--_ink);
  font-weight: 500;
  margin: 0;
}

.local-context__lead em {
  font-style: italic;
  color: var(--_accent);
}

.local-context__body {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--_muted);
  margin: 0;
}

.local-context__body p {
  margin: 0 0 1rem;
}

.local-context__body p:last-child {
  margin-bottom: 0;
}

.local-context__body strong {
  color: var(--_ink);
}

.local-context__body a {
  color: var(--_accent);
  text-underline-offset: 2px;
}

/* 9c · LOCAL INDUSTRIES — city verticals as compact linked chips */

.local-industries {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.local-industries__chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--font-ui,"Inter",sans-serif);
  font-size: .92rem;
  font-weight: 500;
  padding: .55rem 1rem;
  border: 1px solid var(--_line);
  border-radius: 999px;
  background: var(--_paper);
  color: var(--_ink);
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease;
  min-height: 44px;
}

.local-industries__chip:hover {
  border-color: var(--_accent);
  background: color-mix(in srgb,var(--_accent) 5%,var(--_paper));
}

.local-industries__chip::before {
  content: "";
  width: .4rem;
  height: .4rem;
  border-radius: 50%;
  background: var(--_accent);
  flex: none;
}

/* ============================================================================
   10 · CONVERSION COMPONENTS (appended)
   call-assurance (BOFU trust row). NOTE: pricing pages use the SITE-WIDE
   pricing-summary-table / pricing-model-grid / engagement-standards-grid
   from 03-components.css — not a local pricing grid.
   ============================================================================ */

.section--call-assurance {
  --_accent: var(--ox, #841E1E);
  --_paper: var(--paper, #FAFAF7);
  --_ink: var(--ink, #1A1A1A);
  --_muted: color-mix(in srgb, var(--_ink) 62%, transparent);
  --_line: color-mix(in srgb, var(--_ink) 12%, transparent);
}

/* 10b · CALL ASSURANCE — BOFU trust row (what to expect on the call) */

.call-assurance {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: clamp(1rem,2.5vw,2rem);
}

.call-assurance__item {
  text-align: left;
  padding-left: 1.25rem;
  border-left: 2px solid var(--_accent);
}

.call-assurance__title {
  font-family: var(--font-display,"Fraunces",serif);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--_ink);
  margin: 0 0 .35rem;
}

.call-assurance__body {
  font-size: .93rem;
  line-height: 1.5;
  color: var(--_muted);
  margin: 0;
}

@media (max-width:720px) {
  .call-assurance {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

/* ============================================================================
   11 · LOCATION-CHILD SECTION BACKGROUNDS (appended)
   Premium light backgrounds for TL;DR and the closing CTA, scoped to
   .page--location-child so NATIONAL pages are never affected. Restores the warm
   light treatment on every location child page (hero/TL;DR/CTA) regardless of
   whether the page uses child-cta or a national-structure middle.
   Add `page--location-child` to the <main> of every location child page.
   ============================================================================ */

.page--location-child {
  --_lc-accent: var(--ox, #841E1E);
  --_lc-paper: var(--paper, #FAFAF7);
  --_lc-ink: var(--ink, #1A1A1A);
}

/* Pillar (page--location) reuses the same warm-accent tokens so the closing
   CTA can share the child-page treatment. Scoped to the final-cta consumers only. */

.page--location {
  --_lc-accent: var(--ox, #841E1E);
  --_lc-paper: var(--paper, #FAFAF7);
  --_lc-ink: var(--ink, #1A1A1A);
}

/* TL;DR — soft warm panel */

.page--location-child .section--tldr {
  background: color-mix(in srgb, var(--_lc-accent) 4%, var(--_lc-paper));
}

/* Closing CTA — light warm-accent treatment (child-cta and, if used, final-cta) */

.page--location-child .section--child-cta {
  background: color-mix(in srgb, var(--_lc-accent) 6%, var(--_lc-paper));
}

.page--location-child .section--final-cta, .page--location .section--final-cta {
  background: color-mix(in srgb, var(--_lc-accent) 6%, var(--_lc-paper));
}

.page--location-child .section--final-cta .final-cta__heading, .page--location-child .section--final-cta .final-cta__lede, .page--location-child .section--final-cta .section__eyebrow--inverted, .page--location .section--final-cta .final-cta__heading, .page--location .section--final-cta .final-cta__lede, .page--location .section--final-cta .section__eyebrow {
  color: var(--_lc-ink);
}

.page--location-child .section--final-cta .final-cta__disclaimer, .page--location .section--final-cta .final-cta__disclaimer {
  color: color-mix(in srgb, var(--_lc-ink) 62%, transparent);
}

/* ============================================================================
   MISSION-BLOCK — QUOTE VARIANT (.mission-block--quote)
   ----------------------------------------------------------------------------
   Editorial pull-quote treatment for operating-principle / philosophy blocks
   (e.g. the team page). Inherits mission-block base; styles the blockquote
   statement + attribution. Works on light bands (default) and dark (.section--dark).
   ============================================================================ */

.mission-block--quote {
  text-align: left;
}

.mission-block__statement {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 3.2vw, 2.125rem);
  font-weight: var(--fw-regular);
  line-height: 1.28;
  letter-spacing: var(--ls-snug);
  color: var(--text-primary);
  text-wrap: balance;
}

.mission-block__statement p {
  margin: 0;
}

.mission-block__attribution {
  margin-block-start: var(--space-6);
  font-family: var(--font-sans);
  font-size: var(--fs-13);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-eyebrow);
}

/* On dark bands, lift the quote + attribution to inverted ink */

.section--dark .mission-block__statement {
  color: var(--color-ink-inverted);
}

.section--dark .mission-block__attribution {
  color: var(--color-ink-inverted-mute);
}

/* strong/em inside the (dark-band) mission-block must lift to inverted ink —
   the global `strong{color:var(--text-primary)}` would otherwise render dark
   bold text invisibly against the dark surface. */

.page--location .mission-block__body strong, .page--reviews .mission-block__body strong, .page--about-team .mission-block__body strong, .page--home .mission-block__body strong, .section--dark .mission-block__body strong {
  color: var(--color-ink-inverted);
}

/* ============================================================================
   SERVICE-HERO EYEBROW TEXT — ensure the inner span carries the eyebrow look
   (parent .service-hero__eyebrow is styled; the -text span is the visible label)
   ============================================================================ */

.service-hero__eyebrow-text {
  display: inline-block;
}

