/* Suite website: small overrides on top of ceperia + onecivic */

/* Top bar (Sulu "topbar"): compact strip, nav right-aligned, hairline dividers with air on both sides. */
.topbar--suite {
  border-bottom: 1px solid var(--page-divider, var(--divider));
  background: color-mix(in srgb, var(--page-bg, var(--bg)) 94%, black);
}

.topbar-inner {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-block: 0.4rem;
  padding-inline: 1.25rem;
  min-height: 0;
}

.topbar-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  column-gap: 1.75rem;
  row-gap: 0.25rem;
}

/* Hairline centered in the flex gap (not on the text edge). */
.topbar-nav > * {
  position: relative;
}

.topbar-nav > * + *::before {
  content: '';
  position: absolute;
  left: calc(-0.875rem - 0.5px);
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 0.85em;
  background: color-mix(in srgb, var(--muted) 38%, var(--page-divider, var(--divider)));
  pointer-events: none;
}

.topbar-nav > a {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--muted);
  text-decoration: none;
  padding: 0.1rem 0;
  line-height: 1.35;
}

.topbar-nav > a:hover,
.topbar-nav > a:focus-visible {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.topbar-group {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
}

.topbar-group-label {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text);
  white-space: nowrap;
}

.topbar-group a {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--muted);
  text-decoration: none;
  padding: 0.1rem 0;
  line-height: 1.35;
}

.topbar-group a:hover,
.topbar-group a:focus-visible {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Footer: four columns — wider brand column | three Sulu roots (same row top alignment). */
.footer--suite .footer-grid--suite {
  grid-template-columns: minmax(0, 1.38fr) repeat(3, minmax(0, 1fr));
  gap: 1.75rem 2rem;
  align-items: start;
}

.footer--suite .footer-nav-columns {
  display: contents;
}

.footer--suite .footer-mobile {
  display: none;
}

/* Ceperia: .footer .footer-section + .footer-section { margin-top: 1.25rem } — with display:contents,
   flat nav columns are direct grid children; reset only those, not blocks inside .footer-nav-column. */
.footer--suite .footer-nav-columns > .footer-section + .footer-section {
  margin-top: 0;
}

.footer--suite .footer-nav-column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.footer--suite .footer-grid--suite > .footer-section + .footer-section {
  margin-top: 0;
}

.footer--suite .footer-suite-meta {
  margin: 0;
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  padding-top: clamp(1.25rem, 2.2vw, 1.75rem);
  border-top: 1px solid var(--divider, #e2e8f0);
  font-size: clamp(0.72rem, 0.66rem + 0.2vw, 0.8125rem);
  line-height: 1.45;
  /* Ceperia global `p { max-width: 72ch }` — full container width for the rule line. */
  max-width: none;
  width: 100%;
  box-sizing: border-box;
}

.footer-brand-col .footer-store-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 0.85rem;
  align-items: center;
}

.footer-brand-col .footer-apps__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-top: 1.15rem;
}

.footer-brand-col .footer-apps__eyebrow {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--faint, #64748b);
}

.footer-brand-col .footer-apps__status {
  margin: 0;
}

.footer-brand-col .footer-apps__status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--border, #cbd5e1);
  background: var(--surface-2, #f1f5f9);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--muted, #334155);
}

.footer-brand-col .footer-apps__hint {
  margin: 0.45rem 0 0;
  max-width: 22rem;
  font-size: var(--text-xs, 0.75rem);
  line-height: 1.45;
  color: var(--muted);
}

.footer-brand-col .footer-apps--soon .footer-store-badges {
  opacity: 0.62;
}

.footer-brand-col .footer-store-badge--soon {
  display: inline-block;
  line-height: 0;
  cursor: not-allowed;
  user-select: none;
}

.footer-brand-col .footer-store-badge {
  display: inline-block;
  line-height: 0;
  text-decoration: none;
}

.footer-brand-col .footer-store-badge:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary-2) 70%, transparent);
  outline-offset: 3px;
  border-radius: 0.35rem;
}

.footer-brand-col .footer-store-badge__img {
  height: 2.5rem;
  width: auto;
  max-width: 100%;
  display: block;
}

.footer-nav-columns .footer-section {
  min-width: 0;
}

/* Group title: plain text, not a link. */
.footer-nav-columns .footer-col-heading {
  margin: 0 0 0.05rem;
  color: var(--text);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: var(--text-sm);
}

.footer-nav-columns .footer-col-heading + .footer-links {
  margin-top: 0.65rem;
}

.footer-nav-columns .footer-links {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.footer-nav-columns .footer-links a {
  font-size: var(--text-sm);
  font-weight: 500;
}

.footer-nav-columns .footer-links-subgroup {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.footer-nav-columns .footer-links-subgroup + .footer-links-subgroup,
.footer-nav-columns .footer-links-subgroup + a,
.footer-nav-columns .footer-links > a + .footer-links-subgroup {
  margin-top: 0.65rem;
}

.footer-nav-columns .footer-links-subgroup__label {
  font-weight: 650;
  font-size: var(--text-sm);
  color: var(--text);
  text-decoration: none;
}

.footer-nav-columns .footer-links-subgroup__label:hover,
.footer-nav-columns .footer-links-subgroup__label:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 760px) {
  .footer--suite .footer-grid--suite {
    grid-template-columns: 1fr;
  }

  /*
   * display:contents promotes .footer-section / .footer-nav-column to grid children — hide them
   * explicitly on mobile (display:none on the wrapper alone is not always enough).
   */
  .footer--suite .footer-grid--suite > .footer-section,
  .footer--suite .footer-grid--suite > .footer-nav-column {
    display: none !important;
  }

  .footer--suite .footer-nav-columns {
    display: none !important;
  }

  .footer--suite .footer-mobile {
    display: block !important;
    margin-top: 1.25rem;
  }

  .footer--suite .footer-acc[open] .footer-acc__lead {
    transform: rotate(90deg);
  }

  .footer--suite .footer-acc__lead {
    transition: transform 0.15s ease;
  }

  .footer--suite .footer-mobile-flat {
    border-top: 1px solid var(--divider);
    padding: 1rem 0.1rem;
  }

  .footer--suite .footer-mobile-flat a {
    font-weight: 650;
    color: var(--text);
    text-decoration: none;
  }

  .footer--suite .footer-mobile-subheading {
    display: block;
    margin-top: 0.85rem;
    margin-bottom: 0.15rem;
    font-weight: 650;
    font-size: var(--text-sm);
    color: var(--text);
  }

  .footer--suite .footer-mobile-subheading:first-child {
    margin-top: 0;
  }
}

/* Main header: wordmark left; nav + menu toggle grouped on the right (same container edge as top bar). */
body.page-onecivic .site-header {
  background: var(--page-bg, var(--bg, #f8fafc));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: box-shadow var(--transition, 160ms ease);
}

body.page-onecivic .site-header.is-scrolled {
  box-shadow: 0 1px 0 var(--page-divider, var(--divider, #e2e8f0));
}

.site-header .header-inner {
  justify-content: flex-start;
}

@media (max-width: 820px) {
  .site-header .header-inner {
    padding-block: 0.85rem;
  }
}

@media (min-width: 821px) {
  .site-header .header-inner {
    padding-block: clamp(1.15rem, 1.75vw, 1.4rem);
  }

  body.page-onecivic--corporate .site-header .header-inner {
    padding-block: clamp(0.9rem, 1.4vw, 1.15rem);
  }

  body.page-onecivic--corporate .site-header .header-inner .brand,
  body.page-onecivic--corporate .site-header .nav.nav--suite,
  body.page-onecivic--corporate .site-header .header-trailing {
    padding-block: 0;
  }
}

.site-header .header-inner .brand {
  margin-inline-end: auto;
}

/* Main nav: a bit more air between top-level items (reference feels tighter on plain .nav gap). */
.site-header .nav.nav--suite {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
}

@media (min-width: 921px) {
  .site-header .nav.nav--suite {
    gap: 1.15rem;
  }
}

/* Sulu mega panels: match screenshot — roomier link stack inside compact mega */
.site-header .mega-panel[id^="mega-sulu-"] .mega-links {
  gap: 0.35rem;
}

.site-header .mega-panel[id^="mega-sulu-"] .mega-link {
  padding: 0.6rem 0.35rem 0.62rem;
}

.site-header .mega-panel[id^="mega-sulu-"] .mega-link strong {
  font-weight: 650;
}

/* Primary nav (suite): 1px underscore — mega buttons + plain top-level links (no submenu). */
.site-header .nav.nav--suite > button[data-mega-trigger]::before {
  height: 1px;
}

.site-header .nav.nav--suite > button[data-mega-trigger] {
  padding-top: 0.4rem;
  padding-inline: 0.65rem;
  padding-bottom: 0.28rem;
}

.site-header .nav.nav--suite > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  align-self: center;
  padding: 0.4rem 0.65rem 0.28rem;
}

.site-header .nav.nav--suite > a::before {
  content: "";
  position: absolute;
  left: 0;
  right: clamp(0.85rem, 1.5vw, 1.5rem);
  bottom: 0;
  height: 1px;
  background: currentColor;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition, 160ms ease);
}

.site-header .nav.nav--suite > a:hover::before,
.site-header .nav.nav--suite > a[aria-current="page"]::before {
  opacity: 1;
  right: 0.3rem;
}

.site-header .nav.nav--suite > a:hover,
.site-header .nav.nav--suite > a[aria-current="page"] {
  color: var(--text);
  font-weight: 700;
}

.site-header .nav.nav--suite > button[data-mega-trigger].nav-mega-trigger--active {
  color: var(--text);
  font-weight: 700;
}

.site-header .nav.nav--suite > button[data-mega-trigger].nav-mega-trigger--active::before {
  opacity: 1;
  right: 0.3rem;
}

body.page-onecivic--corporate .site-header .nav.nav--suite > a:hover,
body.page-onecivic--corporate .site-header .nav.nav--suite > a[aria-current="page"] {
  color: var(--text, #0f172a);
  font-weight: 700;
}

body.page-onecivic--corporate .site-header .nav.nav--suite > button[data-mega-trigger].nav-mega-trigger--active {
  color: var(--text, #0f172a);
}

/* Mobile drawer: mirror hover background when this branch or link is current */
.drawer .drawer-item--active,
.drawer .drawer-item[aria-current="page"] {
  background: color-mix(in srgb, var(--surface-2, #f1f5f9) 70%, transparent);
}

/* Flat drawer: list semantics (no nested flat expansion) */
.drawer-list > li > .drawer-item {
  width: 100%;
  text-align: left;
}

/* Mobile drawer header: wordmark instead of language switch (OneCivic marketing). */
.drawer-header .brand--onecivic-drawer {
  --brand-logo-height: clamp(1.65rem, 5vw, 2rem);
  min-height: 0;
  margin-inline-end: auto;
  max-width: min(62vw, 10.5rem);
}

.drawer-header .brand--onecivic-drawer .brand-logo--onecivic {
  max-width: 100%;
}

.site-header .brand {
  gap: 0;
}

/* OneCivic wordmark — inline SVG + sr-only text fallback; uses OneCivic display stack. */
.brand--onecivic {
  --brand-font: "Plus Jakarta Sans", "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --brand-font-weight: 700;
  --brand-logo-height: clamp(2rem, 6.2vw, 2.35rem);
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: var(--brand-logo-height);
  font-family: var(--brand-font);
  font-weight: var(--brand-font-weight);
  color: var(--text);
}

@media (min-width: 821px) {
  .brand--onecivic {
    --brand-logo-height: clamp(1.55rem, 1.15rem + 0.85vw, 1.85rem);
  }
}

.brand--onecivic .brand-logo--onecivic {
  display: block;
  height: var(--brand-logo-height);
  width: auto;
  max-width: min(52vw, 11.5rem);
  overflow: visible;
}

.brand--onecivic .brand-logo__wordmark {
  fill: currentColor;
  font-family: var(--brand-font);
  font-size: 24px;
  font-weight: var(--brand-font-weight, 700);
  letter-spacing: -0.03em;
}

.brand--onecivic .brand-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  font-family: var(--brand-font);
  font-weight: var(--brand-font-weight, 700);
  letter-spacing: -0.03em;
}

.brand--onecivic-footer {
  --brand-logo-height: clamp(1.15rem, 0.95rem + 0.75vw, 1.45rem);
}

.brand--onecivic-footer .brand-logo--onecivic {
  max-width: min(46vw, 9.5rem);
}

/* Legacy text-only rules — kept for pages without SVG partial. */
.site-header .brand-text {
  font-size: clamp(1.35rem, 4.8vw, 1.65rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  white-space: nowrap;
  color: var(--text);
}

@media (min-width: 821px) {
  .site-header .brand-text {
    font-size: clamp(1.05rem, 0.65rem + 1.05vw, 1.5rem);
  }
}

/* Footer column 1: same wordmark style as header; Ceperia `.footer strong` is small caps — reset here. */
.footer--suite .footer-brand-col .brand {
  display: flex;
  align-items: center;
  font-family: var(--font-display);
}

.footer--suite .footer-brand-col .brand strong {
  display: block;
  margin: 0;
  padding: 0;
  font-size: clamp(0.926rem, 0.733rem + 1.04vw, 1.428rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
  text-transform: none;
  color: var(--text);
}

/* Pilot / portal blocks (Phase 3) */
.portal-notice {
  margin: 0;
  padding: 1.25rem 1.35rem;
  border-radius: var(--radius-lg, 0.5rem);
  border: 1px solid var(--border);
  background: var(--surface-2);
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(10, 10, 10, 0.05));
}

.portal-notice__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -0.02em;
  font-size: 1.02rem;
  color: var(--text);
}

.portal-notice__body {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--muted);
}

.portal-notice-wrap {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.portal-teaser-card__cta {
  margin: 0.75rem 0 0;
}

.portal-page-header {
  padding-top: 2.25rem;
  padding-bottom: 1.5rem;
}

.portal-rich-section .dg-body :where(h1, h2, h3) {
  font-family: var(--font-display);
  color: var(--text);
}

.portal-rich-section .dg-body > :first-child {
  margin-top: 0;
}

.portal-search-results {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.portal-search-results a {
  font-weight: 600;
  font-size: var(--text-base);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.portal-search-results a:hover {
  color: var(--primary);
}

a.skip-link.sr-only:focus {
  position: fixed;
  left: 0.75rem;
  top: 0.75rem;
  z-index: 100;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.65rem 1rem;
  clip: auto;
  overflow: visible;
  white-space: nowrap;
  background: var(--surface);
  color: var(--text);
  border: 2px solid var(--primary);
  border-radius: var(--radius-md, 0.375rem);
  box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.12));
}

/* --- Landing: city mobility & food delivery (one-pager, conditional sections in Twig) --- */
.page-landing-mobility #main-content {
  display: block;
  width: 100%;
  max-width: none;
  padding-inline: 0;
}

.page-landing-mobility .lm-page {
  overflow-x: hidden;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/*
 * Same horizontal band as the header: repeat ceperia `.container` here so inner strips
 * always match `.site-header .container` / `.header-inner` edges (some shared rules use ch-based max-widths).
 */
.page-landing-mobility .lm-page .container {
  width: min(calc(100% - 2rem), var(--content, 1180px));
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
  container-type: inline-size;
}

.page-landing-mobility .lm-hero.lm-hero {
  min-height: min(85svh, 36rem);
  padding-top: clamp(2.5rem, 5vw, 4rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
}

/* Hero — 01 (ride & food): full-width band; vertical height follows copy (no viewport min-height). */
.page-landing-mobility .lm-hero--mobility.lm-hero {
  width: 100%;
  max-width: none;
  min-height: 0;
  height: auto;
  overflow: hidden;
  --lm-hero-01-pad-y: clamp(2.5rem, 5vw, 4rem);
  --lm-hero-01-pad-top: var(--lm-hero-01-pad-y);
  --lm-hero-01-pad-bottom: var(--lm-hero-01-pad-y);
  padding-top: var(--lm-hero-01-pad-top);
  padding-bottom: var(--lm-hero-01-pad-bottom);
}

/* Hero — 02: reorderable copy + image columns (ghost text buttons). */
.page-landing-mobility .lm-hero-02 {
  padding: clamp(2.5rem, 5vw, 4rem) 0;
}

.page-landing-mobility .lm-hero-02__shell {
  width: 100%;
}

.page-landing-mobility .lm-hero-02__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: center;
}

@media (min-width: 768px) {
  .page-landing-mobility .lm-hero-02__grid:has(.lm-hero-02__cell--copy):has(.lm-hero-02__cell--media) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

.page-landing-mobility .lm-hero-02__cell {
  min-width: 0;
}

.page-landing-mobility .lm-hero-02__cell--copy {
  padding-bottom: clamp(0.35rem, 1.25vh, 0.85rem);
}

.page-landing-mobility .lm-hero-02__title {
  font-size: clamp(1.85rem, 1.2rem + 2.5vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  margin: 0 0 1rem;
  max-width: 28ch;
  color: var(--text);
}

.page-landing-mobility .lm-hero-02__sub {
  margin: 0;
  max-width: 52ch;
  font-size: clamp(0.9375rem, 0.88rem + 0.35vw, 1.0625rem);
  line-height: 1.55;
  color: var(--muted);
}

.page-landing-mobility .lm-hero-02__hooks {
  list-style: none;
  margin: clamp(1.25rem, 2vw, 1.5rem) 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(0.85rem, 1.55vw, 1.05rem);
  max-width: min(36rem, 100%);
}

.page-landing-mobility .lm-hero-02__hooks li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: var(--text-sm, 0.875rem);
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
}

.page-landing-mobility .lm-hero-02__hooks .oc-hero__hook-icon {
  color: var(--success, #22c55e);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__hooks li {
  color: color-mix(in srgb, var(--inverse, #f8fafc) 92%, #94a3b8);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__hooks .oc-hero__hook-icon {
  color: var(--primary-2, #60a5fa);
}

.page-landing-mobility button.lm-hero-02__link {
  font: inherit;
  appearance: none;
}

.page-landing-mobility .lm-hero-02__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.65rem 1.65rem;
  border-radius: 0.65rem;
  font-size: var(--text-sm);
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;
  cursor: pointer;
  box-shadow: none;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.page-landing-mobility .lm-hero-02__link--primary {
  background: #0f172a;
  color: #fff;
  border: 1px solid #0f172a;
}

.page-landing-mobility .lm-hero-02__link--primary:hover {
  background: color-mix(in srgb, #0f172a 88%, #fff);
  border-color: color-mix(in srgb, #0f172a 88%, #fff);
  color: #fff;
  filter: none;
}

.page-landing-mobility .lm-hero-02__link--primary:active {
  background: color-mix(in srgb, #0f172a 82%, #fff);
  border-color: color-mix(in srgb, #0f172a 82%, #fff);
}

.page-landing-mobility .lm-hero-02__link--secondary {
  background: transparent;
  color: var(--text);
  border: 1px solid color-mix(in srgb, var(--text) 22%, var(--border));
  font-weight: 600;
}

.page-landing-mobility .lm-hero-02__link--secondary:hover {
  background: color-mix(in srgb, var(--surface-2) 75%, transparent);
  border-color: color-mix(in srgb, var(--text) 35%, var(--border));
  color: var(--text);
  filter: none;
}

.page-landing-mobility .lm-hero-02__link--secondary:active {
  background: color-mix(in srgb, var(--surface-3) 80%, transparent);
}

.page-landing-mobility .lm-hero-02__link:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 55%, transparent);
  outline-offset: 3px;
}

.page-landing-mobility .lm-hero-02__cell--media {
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-landing-mobility .lm-hero-02__figure {
  margin: 0;
  max-width: 100%;
}

.page-landing-mobility .lm-hero-02__img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
  border-radius: clamp(1rem, 1.2vw, 1.25rem);
  object-fit: contain;
  object-position: center center;
}

.page-landing-mobility .lm-hero-02.lm-section--bleed {
  padding-block: clamp(2.5rem, 5vw, 4rem);
}

.page-landing-mobility .lm-hero-02.lm-section--bleed.lm-hero-02--in-flow {
  padding-block: clamp(2.5rem, 5vw, 4rem);
}

.page-landing-mobility .lm-hero-02.lm-section--bleed .lm-hero-02__cell--media,
.page-landing-mobility .lm-hero-02.lm-section--bleed .lm-hero-02__figure {
  background: transparent;
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__title {
  color: var(--inverse, #f8fafc);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__sub {
  color: color-mix(in srgb, var(--inverse, #f8fafc) 80%, #94a3b8);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__link--primary {
  background: #fff;
  color: #0f172a;
  border-color: #fff;
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__link--primary:hover {
  background: color-mix(in srgb, #fff 92%, #0f172a);
  border-color: color-mix(in srgb, #fff 92%, #0f172a);
  color: #0f172a;
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__link--primary:active {
  background: color-mix(in srgb, #fff 86%, #0f172a);
  border-color: color-mix(in srgb, #fff 86%, #0f172a);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__link--secondary {
  background: transparent;
  color: var(--inverse, #f8fafc);
  border-color: color-mix(in srgb, #fff 32%, transparent);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__link--secondary:hover {
  background: color-mix(in srgb, #fff 10%, transparent);
  border-color: color-mix(in srgb, #fff 45%, transparent);
  color: var(--inverse, #f8fafc);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__link--secondary:active {
  background: color-mix(in srgb, #fff 16%, transparent);
}

.page-landing-mobility .lm-hero-02.lm-section--inverse .lm-hero-02__link:focus-visible {
  outline-color: color-mix(in srgb, #fff 70%, transparent);
}

/* In-flow heroes (not page entry): match section headline + eyebrow rhythm. */
.page-landing-mobility .lm-hero-02--in-flow {
  padding-block: 0;
}

.page-landing-mobility .lm-hero-02--in-flow .lm-hero-02__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--lm-section-headline-size);
  line-height: var(--lm-section-headline-line-height);
  letter-spacing: var(--lm-section-headline-letter-spacing);
  max-width: none;
}

.page-landing-mobility .lm-hero-02--in-flow .lm-hero-02__sub {
  font-size: var(--text-sm);
  line-height: 1.65;
}

.page-landing-mobility .lm-hero-02--in-flow .lm-hero-02__grid {
  gap: var(--lm-two-col-inner-gap);
}

/* In-flow illustrations (e.g. rollout map): flush with page --bg — PNG needs transparent or exact #f8fafc. */
.page-landing-mobility .lm-hero-02--in-flow .lm-hero-02__cell--media,
.page-landing-mobility .lm-hero-02--in-flow .lm-hero-02__figure {
  background: var(--bg);
}

.page-landing-mobility .lm-hero-02--in-flow .lm-hero-02__img {
  border-radius: 0;
}

/* In-flow Hero — 02: same copy + media grid as page-entry hero (no mobile background overlay). */
  min-height: 0;
  padding-block: 0;
}

.page-landing-mobility .lm-hero--mobility.lm-hero--in-flow {
  --lm-hero-01-pad-top: 0;
  --lm-hero-01-pad-bottom: 0;
}

.page-landing-mobility .lm-hero-03--in-flow {
  --lm-hero-03-pad-top: 0;
  --lm-hero-03-pad-bottom: 0;
  padding-block: 0;
  border-block: 0;
}

.page-landing-mobility .lm-hero-03--in-flow.lm-hero-03--dark {
  background: transparent;
  color: inherit;
}

.page-landing-mobility .lm-hero-03--in-flow.lm-hero-03--dark .lm-hero-03__title,
.page-landing-mobility .lm-hero-03--in-flow.lm-hero-03--dark .lm-hero-03__hooks li {
  color: var(--text);
}

.page-landing-mobility .lm-hero-03--in-flow.lm-hero-03--dark .lm-hero-03__lead,
.page-landing-mobility .lm-hero-03--in-flow.lm-hero-03--dark .lm-hero-03__lead :is(p, li, span, em, i) {
  color: var(--muted);
}

.page-landing-mobility .lm-hero-03--in-flow .lm-hero-03__title {
  font-size: var(--lm-section-headline-size);
  line-height: var(--lm-section-headline-line-height);
  letter-spacing: var(--lm-section-headline-letter-spacing);
  max-width: none;
}

.page-landing-mobility .lm-hero-03--in-flow .lm-hero-03__lead {
  font-size: var(--text-sm);
  line-height: 1.65;
  max-width: none;
}

/* Hero — 03: full-width horizontal band (closing stripe); content + scaled visual in container. */
.page-landing-mobility .lm-hero-03 {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none;
  margin: 0;
  min-height: 0;
  --lm-hero-03-pad-top: clamp(2.75rem, 5vw, 4.5rem);
  --lm-hero-03-pad-bottom: clamp(2.5rem, 5vw, 3.5rem);
  padding-block: var(--lm-hero-03-pad-top) var(--lm-hero-03-pad-bottom);
  overflow: hidden;
}

.page-landing-mobility .lm-hero-03.lm-hero-03--dark {
  background: color-mix(in srgb, #030d1f 88%, var(--primary) 12%);
  color: #f8fafc;
  border-block: 1px solid color-mix(in srgb, #fff 6%, transparent);
}

.page-landing-mobility .lm-hero-03.lm-hero-03--custom-bg {
  color: var(--text);
}

/* Illustration (desktop): right-aligned inside `.container`. Mobile uses full-bleed section ::before. */
@media (min-width: 701px) {
  .page-landing-mobility .lm-hero-03.lm-hero-03--has-visual .lm-hero-03__inner::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(-1 * var(--lm-hero-03-pad-top, 0px));
    bottom: calc(-1 * var(--lm-hero-03-pad-bottom, 0px));
    z-index: 0;
    pointer-events: none;
    background-image: var(--lm-hero-03-visual-url, url("../images/hero-onecivic.svg"));
    background-repeat: no-repeat;
    background-position: right 42%;
    background-size: auto min(104%, 42rem);
  }
}

@media (min-width: 1200px) {
  .page-landing-mobility .lm-hero-03.lm-hero-03--has-visual .lm-hero-03__inner::before {
    background-position: right 38%;
    background-size: auto min(100%, 42rem);
  }
}

.page-landing-mobility .lm-hero-03.lm-hero-03--dark.lm-hero-03--has-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(
      100deg,
      color-mix(in srgb, var(--primary) 92%, transparent) 0%,
      color-mix(in srgb, var(--primary) 70%, transparent) 36%,
      color-mix(in srgb, var(--primary) 28%, transparent) 55%,
      transparent 70%
    ),
    radial-gradient(ellipse 80% 55% at 20% 12%, color-mix(in srgb, var(--primary-2) 14%, transparent) 0%, transparent 52%),
    radial-gradient(ellipse 55% 50% at 88% 48%, color-mix(in srgb, var(--primary-2) 10%, transparent) 0%, transparent 55%);
}

.page-landing-mobility .lm-hero-03__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  box-sizing: border-box;
  isolation: isolate;
}

.page-landing-mobility .lm-hero-03__copy {
  position: relative;
  z-index: 1;
  max-width: min(36rem, 100%);
  min-width: 0;
  /* Vertical rhythm: eyebrow → headline → subline → hooks → actions. */
  --lm-hero-03-headline-gap: clamp(1.15rem, 2.2vw, 1.55rem);
  --lm-hero-03-lead-after-gap: clamp(1.5rem, 2.8vw, 2.15rem);
  --lm-hero-03-hook-gap: clamp(0.85rem, 1.55vw, 1.05rem);
  --lm-hero-03-actions-gap: clamp(1.65rem, 3vw, 2.25rem);
}

.page-landing-mobility .lm-hero-03__eyebrow {
  margin: 0 0 0.65rem;
}

.page-landing-mobility .lm-hero-03__title {
  margin: 0 0 var(--lm-hero-03-headline-gap, clamp(1.15rem, 2.2vw, 1.55rem));
  font-family: var(--font-display, inherit);
  font-size: clamp(1.85rem, 1.15rem + 2.6vw, 3rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.035em;
  max-width: 20ch;
}

.page-landing-mobility .lm-hero-03--dark .lm-hero-03__title,
.page-landing-mobility .lm-hero-03--dark .lm-hero-03__hooks li {
  color: #f8fafc;
}

.page-landing-mobility .lm-hero-03--custom-bg .lm-hero-03__title {
  color: var(--text);
}

.page-landing-mobility .lm-hero-03__lead {
  margin: 0 0 var(--lm-hero-03-lead-after-gap, clamp(1.5rem, 2.8vw, 2.15rem));
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  line-height: 1.55;
  max-width: 44ch;
}

/* Subline → CTAs (no hooks): one clear beat, not double margin. */
.page-landing-mobility .lm-hero-03__lead:has(+ .lm-hero-03__ctas) {
  margin-bottom: var(--lm-hero-03-actions-gap, clamp(1.65rem, 3vw, 2.25rem));
}

.page-landing-mobility .lm-hero-03__lead + .lm-hero-03__ctas {
  margin-top: 0;
}

.page-landing-mobility .lm-hero-03.lm-hero-03--dark .lm-hero-03__lead,
.page-landing-mobility .lm-hero-03.lm-hero-03--dark .lm-hero-03__lead :is(p, li, span, em, i) {
  color: color-mix(in srgb, #f8fafc 82%, #94a3b8);
  max-width: none;
}

.page-landing-mobility .lm-hero-03.lm-hero-03--dark .lm-hero-03__lead :is(strong, b) {
  color: #f8fafc;
  font-weight: 650;
}

.page-landing-mobility .lm-hero-03.lm-hero-03--custom-bg .lm-hero-03__lead,
.page-landing-mobility .lm-hero-03.lm-hero-03--custom-bg .lm-hero-03__lead :is(p, li, span, em, i) {
  color: var(--muted);
  max-width: none;
}

.page-landing-mobility .lm-hero-03__hooks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--lm-hero-03-hook-gap, clamp(0.85rem, 1.55vw, 1.05rem));
  max-width: min(36rem, 100%);
}

.page-landing-mobility .lm-hero-03__hooks li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: var(--text-sm, 0.875rem);
  font-weight: 600;
  line-height: 1.35;
}

.page-landing-mobility .lm-hero-03--custom-bg .lm-hero-03__hooks li {
  color: var(--text);
}

.page-landing-mobility .lm-hero-03--dark .lm-hero-03__hooks .oc-hero__hook-icon {
  color: var(--primary-2, #60a5fa);
}

.page-landing-mobility .lm-hero-03--custom-bg .lm-hero-03__hooks .oc-hero__hook-icon {
  color: var(--success, #22c55e);
}

.page-landing-mobility .lm-hero-03__ctas {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem 1rem;
  margin-top: var(--lm-hero-03-actions-gap, clamp(1.65rem, 3vw, 2.25rem));
}

.page-landing-mobility .lm-hero-03__ctas > .btn,
.page-landing-mobility .lm-hero-03__ctas > .lm-hero-02__link {
  width: auto;
  flex: 0 1 auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  cursor: pointer;
}

/* Scroll CTAs without href are <button> — ceperia .btn has no cursor */
.page-landing-mobility [data-hero-scroll] {
  cursor: pointer;
}

.page-landing-mobility .lm-hero-03__btn--primary {
  background: #fff !important;
  color: #0f172a !important;
  border: 1px solid #fff !important;
  border-radius: 0.5rem;
  font-weight: 700;
}

.page-landing-mobility .lm-hero-03__btn--primary:hover {
  filter: brightness(0.96);
}

.page-landing-mobility .lm-hero-03__btn--secondary {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid color-mix(in srgb, #fff 52%, transparent) !important;
  border-radius: 0.5rem;
  font-weight: 600;
}

.page-landing-mobility .lm-hero-03__btn--secondary:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.62) !important;
}

.page-landing-mobility .lm-hero-03__strap {
  margin: 1rem 0 0;
  max-width: min(36rem, 100%);
  font-size: clamp(0.82rem, 0.78rem + 0.15vw, 0.9rem);
  line-height: 1.5;
}

.page-landing-mobility .lm-hero-03.lm-hero-03--dark .lm-hero-03__strap,
.page-landing-mobility .lm-hero-03.lm-hero-03--dark .lm-hero-03__strap :is(p, span, em, i) {
  color: color-mix(in srgb, #f8fafc 74%, #94a3b8);
  max-width: none;
}

.page-landing-mobility .lm-hero-03.lm-hero-03--dark .lm-hero-03__strap :is(strong, b) {
  color: #f8fafc;
  font-weight: 650;
}

.page-landing-mobility .lm-hero-03.lm-hero-03--custom-bg .lm-hero-03__strap,
.page-landing-mobility .lm-hero-03.lm-hero-03--custom-bg .lm-hero-03__strap :is(p, span, em, i) {
  color: var(--muted);
  max-width: none;
}

@media (max-width: 700px) {
  /* Mobile: full-bleed illustration + directional scrim (readable copy, visible art). */
  .page-landing-mobility .lm-hero-03.lm-hero-03--has-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: var(--lm-hero-03-visual-url, url("../images/hero-onecivic.svg"));
    background-repeat: no-repeat;
    background-position: 56% 22%;
    background-size: auto 170%;
  }

  .page-landing-mobility .lm-hero-03.lm-hero-03--dark.lm-hero-03--has-visual::after {
    content: none;
  }

  .page-landing-mobility .lm-hero-03.lm-hero-03--has-visual .lm-hero-03__inner::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    top: calc(-1 * var(--lm-hero-03-pad-top, 0px));
    bottom: calc(-1 * var(--lm-hero-03-pad-bottom, 0px));
    z-index: 0;
    pointer-events: none;
    background: var(--lm-mobile-hero-scrim-light);
    border: none;
    border-radius: 0;
    box-shadow: none;
  }

  .page-landing-mobility .lm-hero-03.lm-hero-03--dark.lm-hero-03--has-visual .lm-hero-03__inner::after {
    background: var(--lm-mobile-hero-scrim-dark);
  }

  .page-landing-mobility .lm-hero-03 .lm-hero-03__copy {
    max-width: 100%;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }

  .page-landing-mobility .lm-hero-03.lm-hero-03--dark.lm-hero-03--has-visual :is(
    .lm-hero-03__title,
    .lm-hero-03__lead,
    .lm-hero-03__hooks li
  ) {
    text-shadow: 0 1px 2px rgba(2, 6, 23, 0.35);
  }

  .page-landing-mobility .lm-hero-03.lm-hero-03--dark.lm-hero-03--has-visual .lm-hero-03__strap,
  .page-landing-mobility .lm-hero-03.lm-hero-03--dark.lm-hero-03--has-visual .lm-hero-03__strap * {
    color: color-mix(in srgb, #f8fafc 82%, #94a3b8);
  }

  .page-landing-mobility .lm-hero-03.lm-hero-03--dark.lm-hero-03--has-visual .lm-hero-03__strap :is(strong, b) {
    color: #f8fafc;
  }

  .page-landing-mobility .lm-hero-03__title {
    max-width: 100%;
  }

  .page-landing-mobility .lm-hero-03__ctas {
    flex-direction: column;
    align-items: stretch;
  }

  .page-landing-mobility .lm-hero-03__ctas > .btn,
  .page-landing-mobility .lm-hero-03__ctas > .lm-hero-02__link {
    width: 100%;
  }
}

/* Mobility hero: full-bleed background image + opaque copy panel (text not on raw image). */
.page-landing-mobility .lm-hero--mobility.oc-hero {
  --lm-hero-fallback: url("../images/hero--ride--delivery.png");
  --lm-hero-bg-shift: var(--lm-hero-header-offset, 4.75rem);
  position: relative;
  background: var(--bg);
  color: var(--text);
}

/* Hero — 01: default dark band (empty section_bg in CMS). */
.page-landing-mobility .lm-hero--mobility--dark.oc-hero {
  background: color-mix(in srgb, #030d1f 88%, var(--primary) 12%);
  border-block: 1px solid color-mix(in srgb, #fff 6%, transparent);
}

.page-landing-mobility .lm-hero--mobility--custom-bg.oc-hero {
  color: var(--text);
}

.page-landing-mobility .lm-hero--mobility--custom-bg:not(.lm-hero--mobility--has-visual).oc-hero::before {
  content: none;
}

.page-landing-mobility .lm-hero--mobility--custom-bg .lm-hero__copy-panel {
  background: transparent;
  border: none;
  box-shadow: none;
}

.page-landing-mobility .lm-hero--mobility--inverse .lm-hero__title,
.page-landing-mobility .lm-hero--mobility--inverse .oc-hero__lead,
.page-landing-mobility .lm-hero--mobility--inverse .lm-hero__sub {
  color: #f8fafc;
  text-shadow: 0 1px 2px rgba(2, 6, 23, 0.28);
}

.page-landing-mobility .lm-hero--mobility--inverse .lm-hero__micro {
  color: color-mix(in srgb, #f8fafc 74%, #94a3b8);
}

/*
 * Full-bleed hero art: extend into header band for top breathing room; keep the circle
 * motif in the safe middle (~60% zone). Test crops at mobile / tablet / desktop.
 */
.page-landing-mobility .lm-hero--mobility.oc-hero::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(-1 * var(--lm-hero-bg-shift));
  bottom: calc(-1 * var(--lm-hero-01-pad-bottom, 1.75rem));
  z-index: 0;
  pointer-events: none;
  background-image: var(--lm-hero-visual-url, var(--lm-hero-fallback));
  background-repeat: no-repeat;
  background-position: center 46%;
  background-size: cover;
}

@media (min-width: 768px) {
  .page-landing-mobility .lm-hero--mobility.oc-hero::before {
    top: calc(-1 * var(--lm-hero-bg-shift));
    bottom: calc(-1 * var(--lm-hero-01-pad-bottom, 1.75rem));
    border-radius: 0;
    background-position: center 50%;
  }
}

@media (min-width: 1200px) {
  .page-landing-mobility .lm-hero--mobility.oc-hero::before {
    background-position: center 48%;
  }
}

/* Mobile: full-bleed background (same layer as desktop), copy card on top. */
@media (max-width: 767px) {
  .page-landing-mobility .lm-hero--mobility.lm-hero {
    --lm-hero-01-pad-y: clamp(0.85rem, 2.5vw, 1.15rem);
    --lm-hero-01-pad-top: var(--lm-hero-01-pad-y);
    --lm-hero-01-pad-bottom: var(--lm-hero-01-pad-y);
    padding-top: var(--lm-hero-01-pad-top);
    padding-bottom: var(--lm-hero-01-pad-bottom);
  }

  .page-landing-mobility .lm-hero--mobility.oc-hero::before {
    top: calc(-1 * var(--lm-hero-bg-shift));
    bottom: calc(-1 * var(--lm-hero-01-pad-bottom, 1.15rem));
    height: auto;
    left: 0;
    right: 0;
    border-radius: 0;
    background-position: center 50%;
    background-size: cover;
  }

  .page-landing-mobility .lm-hero--mobility .lm-hero__shell {
    min-height: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  .page-landing-mobility .lm-hero--mobility .lm-hero__grid {
    gap: clamp(1rem, 3vw, 1.35rem);
  }

  /* Dark Hero — 01 mobile: copy card floats above artwork (soft scrim + elevated surface). */
  .page-landing-mobility .lm-hero--mobility--dark .lm-hero__copy-column {
    position: relative;
    isolation: isolate;
    width: 100%;
  }

  .page-landing-mobility .lm-hero--mobility--dark .lm-hero__copy-column::before {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    top: calc(-1 * var(--lm-hero-01-pad-y, 1rem));
    bottom: calc(-1 * var(--lm-hero-01-pad-y, 1rem));
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(
      165deg,
      color-mix(in srgb, #030d1f 72%, transparent) 0%,
      color-mix(in srgb, #030d1f 48%, transparent) 42%,
      color-mix(in srgb, #030d1f 22%, transparent) 72%,
      transparent 100%
    );
  }

  .page-landing-mobility .lm-hero--mobility--dark .lm-hero__copy-panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
    padding-block: clamp(1.35rem, 4.2vw, 1.65rem);
    padding-inline: clamp(1.2rem, 4vw, 1.5rem);
    border-radius: clamp(1.15rem, 3vw, 1.4rem);
    border: 1px solid color-mix(in srgb, #fff 72%, var(--border));
    background: color-mix(in srgb, var(--surface) 94%, #fff);
    box-shadow:
      0 0 0 1px color-mix(in srgb, #fff 35%, transparent),
      0 2px 4px rgba(2, 6, 23, 0.05),
      0 14px 32px rgba(2, 6, 23, 0.12),
      0 28px 56px rgba(2, 6, 23, 0.1);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
  }

  .page-landing-mobility .lm-hero--mobility--dark.lm-hero--mobility-centered .lm-hero__copy-panel {
    text-align: center;
  }

  .page-landing-mobility .lm-hero--mobility--dark .lm-hero__title {
    letter-spacing: -0.03em;
  }

  .page-landing-mobility .lm-hero--mobility--dark .lm-hero__sub {
    color: color-mix(in srgb, var(--text) 88%, var(--muted));
  }

  .page-landing-mobility .lm-hero--mobility--dark .lm-hero__ctas {
    margin-top: clamp(1.05rem, 3.2vw, 1.25rem);
  }

  .page-landing-mobility .lm-hero--mobility--custom-bg .lm-hero__copy-panel {
    padding-block: clamp(1.15rem, 3.2vw, 1.35rem);
    padding-inline: clamp(1rem, 3.2vw, 1.2rem);
  }

  .page-landing-mobility .lm-hero--mobility .lm-hero__title {
    font-size: clamp(1.4rem, 1.05rem + 3.5vw, 1.75rem);
    margin-bottom: 0.6rem;
    max-width: 100%;
  }

  .page-landing-mobility .lm-hero--mobility .lm-hero__sub {
    font-size: 0.9375rem;
    line-height: 1.45;
    max-width: 100%;
  }

  .page-landing-mobility .lm-hero--mobility .lm-hero__ctas {
    margin-top: 0.95rem;
    gap: 0.5rem;
  }

  .page-landing-mobility .lm-hero--mobility .lm-hero__ctas .btn {
    min-height: 2.75rem;
    padding-block: 0.65rem;
    font-size: 0.875rem;
  }

  .page-landing-mobility .lm-hero--mobility .lm-hero__micro {
    margin-top: 0.6rem;
    font-size: 0.75rem;
  }
}

.page-landing-mobility .lm-hero--mobility.oc-hero::after {
  display: none;
  content: none;
}

.page-landing-mobility .lm-hero--mobility .lm-hero__title,
.page-landing-mobility .lm-hero--mobility .oc-hero__lead,
.page-landing-mobility .lm-hero--mobility .lm-hero__sub {
  color: var(--text);
  text-shadow: none;
}

.page-landing-mobility .lm-hero--mobility .lm-hero__micro {
  color: var(--muted);
}

.page-landing-mobility .lm-hero__shell {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: none;
  min-height: inherit;
  margin: 0;
  box-sizing: border-box;
}

.page-landing-mobility .lm-hero--mobility .lm-hero__shell {
  align-items: flex-start;
  min-height: 0;
  padding-top: clamp(0.35rem, 1.5vh, 1rem);
}

.page-landing-mobility .lm-hero__grid {
  display: grid;
  width: 100%;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  grid-template-columns: 1fr;
  align-items: center;
}

.page-landing-mobility .lm-hero--mobility .lm-hero__grid {
  align-items: start;
}

.page-landing-mobility .lm-hero__copy-column {
  order: 1;
  min-width: 0;
}

.page-landing-mobility .lm-hero__copy-panel {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  width: 100%;
  max-width: 100%;
  padding: clamp(1.5rem, 2.8vw, 2rem);
  border-radius: clamp(1rem, 1.2vw, 1.25rem);
  box-sizing: border-box;
}

.page-landing-mobility .lm-hero--mobility--dark .lm-hero__copy-panel {
  background: color-mix(in srgb, var(--surface) 97%, transparent);
  border: 1px solid color-mix(in srgb, var(--border) 90%, transparent);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 16px 40px rgba(15, 23, 42, 0.1);
}

@media (min-width: 960px) {
  .page-landing-mobility .lm-hero__grid {
    grid-template-columns: minmax(0, var(--lm-hero-copy-width)) minmax(17.5rem, 22rem);
    justify-content: space-between;
    gap: clamp(2rem, 5vw, 4rem);
  }

  .page-landing-mobility .lm-hero__grid--no-rail {
    grid-template-columns: minmax(0, var(--lm-hero-copy-width));
    justify-content: center;
  }

  .page-landing-mobility .lm-hero__copy-column {
    order: unset;
    width: 100%;
    max-width: 100%;
  }

  .page-landing-mobility .lm-hero__copy-panel {
    max-width: none;
    padding: clamp(1.75rem, 2.5vw, 2.35rem);
  }
}

.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered {
  --lm-hero-copy-width: min(calc(44rem * 1.1), 100%);
}

.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__shell {
  align-items: center;
  justify-content: center;
  padding-top: 0;
}

.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__grid {
  align-items: center;
}

.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__copy-panel {
  align-items: center;
  text-align: center;
}

.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__title,
.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__sub {
  margin-inline: auto;
}

.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__micro {
  text-align: center;
  max-width: 52ch;
  margin-inline: auto;
}

.page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__ctas {
  align-items: center;
  justify-content: center;
}

/* Hero — 01 desktop: align copy to top of min-height hero (same section top padding as Hero — 02). */
@media (min-width: 768px) {
  .page-landing-mobility .lm-hero--mobility.lm-hero--mobility-centered .lm-hero__shell {
    align-items: flex-start;
  }
}

.page-landing-mobility .lm-hero .trust-eyebrow {
  margin-inline: 0;
  margin-bottom: 0.5rem;
  text-shadow: none;
}

.page-landing-mobility .lm-hero__title {
  font-size: clamp(1.85rem, 1.2rem + 2.5vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  margin: 0 0 1rem;
  max-width: 28ch;
}

.page-landing-mobility .lm-hero__sub {
  max-width: 52ch;
  margin-inline: 0;
  color: var(--muted);
}

/*
 * Hero CTAs (all landing / partner guide heroes): mobile = full-width stack;
 * desktop = 4-column grid, each CTA spans 2 columns (~half container per button).
 */
.page-landing-mobility .lm-hero__ctas,
.page-landing-mobility .lm-hero-02__ctas,
.page-landing-mobility .oc-hero__actions {
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 1rem;
  row-gap: 0.85rem;
  align-items: stretch;
  justify-items: stretch;
  width: 100%;
  max-width: 100%;
  margin-top: clamp(1.5rem, 2.5vw, 1.85rem);
  box-sizing: border-box;
}

.page-landing-mobility :is(.lm-hero__ctas, .lm-hero-02__ctas, .oc-hero__actions) > :is(.btn, .lm-hero-02__link) {
  width: 100%;
  min-width: 0;
  justify-self: stretch;
  justify-content: center;
  text-align: center;
  white-space: normal;
  box-sizing: border-box;
  border-radius: 0.65rem;
}

.page-landing-mobility .lm-hero__ctas .btn {
  min-height: 3rem;
  font-weight: 700;
  cursor: pointer;
}

/* Hero — 01 default dark: dark CTA on white copy card (overrides .oc-hero white primary invert). */
.page-landing-mobility .lm-hero--mobility--dark .lm-hero__ctas .btn-dark.btn-hero {
  background: #0f172a;
  color: #fff;
  border-color: #0f172a;
}

.page-landing-mobility .lm-hero--mobility--dark .lm-hero__ctas .btn-dark.btn-hero:hover {
  background: color-mix(in srgb, #0f172a 88%, #fff);
  border-color: color-mix(in srgb, #0f172a 88%, #fff);
  filter: none;
}

.page-landing-mobility .lm-hero--mobility--dark .lm-hero__ctas .btn-dark.btn-hero:active {
  background: color-mix(in srgb, #0f172a 82%, #fff);
  border-color: color-mix(in srgb, #0f172a 82%, #fff);
}

.page-landing-mobility .lm-hero--mobility--dark .lm-hero__ctas .btn-secondary.btn-hero {
  background: transparent;
  color: var(--text);
  border-color: color-mix(in srgb, var(--text) 22%, var(--border));
}

.page-landing-mobility .lm-hero--mobility--dark .lm-hero__ctas .btn-secondary.btn-hero:hover {
  background: color-mix(in srgb, var(--surface-2) 75%, transparent);
  color: var(--text);
  border-color: color-mix(in srgb, var(--text) 35%, var(--border));
  filter: none;
}

.page-landing-mobility .lm-hero--mobility--dark .lm-hero__ctas .btn-secondary.btn-hero:active {
  background: color-mix(in srgb, var(--surface-3) 80%, transparent);
}

@media (min-width: 901px) {
  .page-landing-mobility :is(.lm-hero__ctas, .lm-hero-02__ctas, .oc-hero__actions) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .page-landing-mobility :is(.lm-hero__ctas, .lm-hero-02__ctas, .oc-hero__actions) > :is(.btn, .lm-hero-02__link):only-child {
    grid-column: 1 / span 2;
  }

  .page-landing-mobility :is(.lm-hero__ctas, .lm-hero-02__ctas, .oc-hero__actions) > :is(.btn, .lm-hero-02__link):nth-child(1):nth-last-child(2) {
    grid-column: 1 / span 2;
  }

  .page-landing-mobility :is(.lm-hero__ctas, .lm-hero-02__ctas, .oc-hero__actions) > :is(.btn, .lm-hero-02__link):nth-child(2):nth-last-child(1) {
    grid-column: 3 / span 2;
  }

  .page-landing-mobility .lm-hero__ctas .btn {
    min-height: 3.1rem;
    padding-inline: 1.65rem;
  }
}

.page-landing-mobility .lm-hero__micro {
  margin: 1rem 0 0.15rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--muted);
  max-width: 42ch;
  margin-inline: 0;
}

/* Shared section headline scale (platform, paths, two-col, hover stack, how-it-works, FAQ). */
.page-landing-mobility {
  /* Fallback until JS measures .site-header (topbar + main bar). */
  --lm-hero-header-offset: 4.75rem;
  --lm-hero-copy-width: 58%;
  --lm-section-headline-size: clamp(1.65rem, 1.2rem + 1.5vw, 2.25rem);
  --lm-section-headline-line-height: 1.12;
  --lm-section-headline-letter-spacing: -0.03em;
  /* List / stack item headlines — one step below section scale (reusable via var()). */
  --lm-item-headline-size: clamp(1.35rem, 1.05rem + 0.85vw, 1.65rem);
  --lm-item-headline-line-height: 1.18;
  --lm-item-headline-letter-spacing: -0.025em;
  --lm-item-headline-padding-y: clamp(0.85rem, 1.5vw, 1.1rem);
  /* Copy ↔ image and content ↔ items in two-column layouts. */
  --lm-two-col-inner-gap: clamp(1rem, 2vw, 1.5rem);
  /* Eyebrow scale + surface colors (reusable). */
  --lm-eyebrow-size-hero: clamp(0.8rem, 0.74rem + 0.22vw, 0.92rem);
  --lm-eyebrow-size-section: 0.7rem;
  --lm-eyebrow-tracking-hero: 0.11em;
  --lm-eyebrow-tracking-section: 0.15em;
  --lm-eyebrow-color-on-light: color-mix(in srgb, var(--muted) 90%, var(--text));
  --lm-eyebrow-color-on-dark: rgba(255, 255, 255, 0.78);
  --lm-accent-icon-color: var(--primary-2, #60a5fa);
  /* Mobile hero scrim: strong on copy (left), ~35% on illustration (right). */
  --lm-mobile-hero-scrim-light: linear-gradient(
    100deg,
    color-mix(in srgb, var(--surface) 92%, transparent) 0%,
    color-mix(in srgb, var(--surface) 76%, transparent) 36%,
    color-mix(in srgb, var(--surface) 38%, transparent) 54%,
    color-mix(in srgb, var(--surface) 16%, transparent) 66%,
    transparent 76%
  );
  --lm-mobile-hero-scrim-dark: linear-gradient(
    100deg,
    color-mix(in srgb, #030d1f 92%, transparent) 0%,
    color-mix(in srgb, #030d1f 76%, transparent) 36%,
    color-mix(in srgb, #030d1f 38%, transparent) 54%,
    color-mix(in srgb, #030d1f 16%, transparent) 66%,
    transparent 76%
  );
}

.page-landing-mobility:has(.topbar--suite) {
  --lm-hero-header-offset: 6.75rem;
}

.page-landing-mobility :is(
  .lm-platform__headline,
  .lm-paths__headline,
  .lm-section__title,
  .lm-how__title,
  .oc-muni-section-title,
  .lm-two-col-panels__headline,
  .lm-two-col-checklist__headline
) {
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: var(--lm-section-headline-letter-spacing);
  font-size: var(--lm-section-headline-size);
  line-height: var(--lm-section-headline-line-height);
  color: var(--text);
}

.page-landing-mobility :is(
  .lm-hover-stack__headline,
  .lm-item-headline
) {
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: var(--lm-item-headline-letter-spacing);
  font-size: var(--lm-item-headline-size);
  line-height: var(--lm-item-headline-line-height);
  color: var(--text);
}

/* Eyebrows — unified label scale (hero entry vs sections / in-flow heroes). */
.page-landing-mobility :is(.trust-eyebrow, [class$='__eyebrow']) {
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--lm-eyebrow-color-on-light);
}

.page-landing-mobility :is(
  .lm-hero:not(.lm-hero--in-flow),
  .lm-hero-02:not(.lm-hero-02--in-flow),
  .lm-hero-03:not(.lm-hero-03--in-flow)
) :is(.trust-eyebrow, [class$='__eyebrow']) {
  font-size: var(--lm-eyebrow-size-hero);
  letter-spacing: var(--lm-eyebrow-tracking-hero);
}

.page-landing-mobility :is(
  .lm-section:not(.lm-hero):not(.lm-hero-02):not(.lm-hero-03),
  .lm-hero--in-flow,
  .lm-hero-02--in-flow,
  .lm-hero-03--in-flow
) :is(.trust-eyebrow, [class$='__eyebrow']:not(.lm-hover-stack__eyebrow):not(.lm-click-stack__eyebrow)) {
  font-size: var(--lm-eyebrow-size-section);
  letter-spacing: var(--lm-eyebrow-tracking-section);
}

.page-landing-mobility :is(
  .lm-section--inverse,
  .lm-hero-03--dark:not(.lm-hero-03--in-flow)
) :is(.trust-eyebrow, [class$='__eyebrow']:not(.lm-hover-stack__eyebrow):not(.lm-click-stack__eyebrow)) {
  color: var(--lm-eyebrow-color-on-dark);
}

.page-landing-mobility .lm-hover-stack__eyebrow,
.page-landing-mobility .lm-click-stack__eyebrow {
  color: var(--lm-accent-icon-color);
}

.page-landing-mobility :is(
  .lm-platform__intro,
  .lm-paths__intro,
  .lm-two-col-panels__sub,
  .lm-two-col-checklist__sub,
  .lm-how__subtitle,
  .lm-hover-stack__sub
) {
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--muted);
}

/* Below hero: use full container width, left-aligned (override shared .oc-muni-* centering). */
.page-landing-mobility .oc-muni-section-title {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
  max-width: none;
}

.page-landing-mobility .oc-muni-section-intro {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
  max-width: none;
}

/* Dark closing stripe — keep headlines/subcopy light (do not use --text on dark band). */
.page-landing-mobility .pg-closing-stripe .pg-closing__headline,
.page-landing-mobility .pg-closing-stripe .oc-muni-section-title {
  color: #fff;
}

/* Mediakit / partner guide pinned closing — same scale as lm-closing-stripe__headline */
.page-landing-mobility .pg-closing-stripe .pg-closing__headline {
  font-family: var(--font-display, inherit);
  font-weight: 800;
  font-size: var(--lm-section-headline-size);
  line-height: var(--lm-section-headline-line-height);
  letter-spacing: var(--lm-section-headline-letter-spacing);
}

.page-landing-mobility .lm-section__inner.lm-narrow,
.page-landing-mobility .lm-section__inner.lm-narrow-left {
  max-width: none;
  margin-inline: 0;
}

.page-landing-mobility .lm-paths__intro {
  text-align: left;
}

.page-landing-mobility .lm-paths__headline {
  text-align: left;
}

/* Section lead copy: exactly half the `.container` width (not viewport / not grid column). */
.page-landing-mobility .lm-platform__header,
.page-landing-mobility .lm-paths__section-head,
.page-landing-mobility .lm-how__header,
.page-landing-mobility .lm-closing-stripe__copy,
.page-landing-mobility .lm-faq .lm-section__title--left {
  max-width: 50%;
  max-width: 50cqi;
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-platform__header,
  .page-landing-mobility .lm-paths__section-head,
  .page-landing-mobility .lm-how__header,
  .page-landing-mobility .lm-closing-stripe__copy,
  .page-landing-mobility .lm-faq .lm-section__title--left {
    max-width: 100%;
  }

  .page-landing-mobility .lm-hero__title {
    max-width: 100%;
  }

  .page-landing-mobility .lm-hero__sub,
  .page-landing-mobility .lm-hero__micro {
    max-width: 100%;
  }
}

.page-landing-mobility .lm-section {
  padding: clamp(2.5rem, 5vw, 3.75rem) 0;
  scroll-margin-top: var(--lm-hero-header-offset, 4.75rem);
}

.page-landing-mobility .lm-section__title {
  text-align: left;
  margin: 0 0 1rem;
}

.page-landing-mobility .lm-section__title--left {
  text-align: left;
  margin-bottom: 1.25rem;
}

.page-landing-mobility .lm-prose {
  margin: 0 0 1rem;
  font-size: var(--text-sm);
  line-height: 1.7;
  color: var(--muted);
}

.page-landing-mobility .lm-prose:last-child {
  margin-bottom: 0;
}

.page-landing-mobility .lm-prose--center {
  text-align: center;
}

.page-landing-mobility .lm-how__header {
  text-align: left;
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.page-landing-mobility .lm-how__header .trust-eyebrow {
  margin-inline: 0;
  margin-bottom: 0.65rem;
}

.page-landing-mobility .lm-how__title {
  margin-bottom: 0.5rem;
}

.page-landing-mobility .lm-how__subtitle {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--muted);
}

.page-landing-mobility .lm-how--single .lm-how__single-flow {
  margin-top: 0.5rem;
  width: 100%;
  max-width: 100%;
}

.page-landing-mobility .lm-how--single .lm-step-flow {
  width: 100%;
}


.page-landing-mobility .lm-how__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 2.5rem;
  margin-top: 0.5rem;
  text-align: left;
}

@media (max-width: 800px) {
  .page-landing-mobility .lm-how__grid {
    grid-template-columns: 1fr;
  }
}

.page-landing-mobility .lm-how__grid--one-lane {
  grid-template-columns: 1fr;
  max-width: min(40rem, 100%);
}

.page-landing-mobility .lm-how__lane {
  position: relative;
  padding-top: 0.25rem;
}

@media (min-width: 801px) {
  .page-landing-mobility .lm-how__grid:not(.lm-how__grid--one-lane) .lm-how__lane:first-child {
    padding-right: clamp(1rem, 2.5vw, 2.25rem);
    border-right: 1px solid var(--border);
  }

  .page-landing-mobility .lm-how__grid:not(.lm-how__grid--one-lane) .lm-how__lane:last-child {
    padding-left: clamp(1rem, 2.5vw, 2.25rem);
  }
}

.page-landing-mobility .lm-how__lane-label {
  margin: 0 0 1.25rem;
  font-size: clamp(0.88rem, 0.78rem + 0.55vw, 1.14rem);
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.25;
  color: var(--lane-accent, var(--muted));
}

.page-landing-mobility .lm-step-flow {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}

.page-landing-mobility .lm-step-flow__item {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem 1.15rem;
  align-items: flex-start;
  padding-bottom: 2.7rem;
}

.page-landing-mobility .lm-step-flow__item:last-child {
  padding-bottom: 0;
}

.page-landing-mobility .lm-step-flow__connector {
  position: absolute;
  left: 1.5625rem;
  top: 3.7rem;
  bottom: -0.5rem;
  width: 0;
  border-left: 2px dotted color-mix(in srgb, var(--muted) 45%, var(--border));
  transform: translateX(-50%);
  pointer-events: none;
}

.page-landing-mobility .lm-how__single-flow,
.page-landing-mobility .lm-how__lane,
.page-landing-mobility .lm-step-flow {
  --lane-accent: #94a3b8;
}

.page-landing-mobility .lm-step-flow__icon-wrap {
  position: relative;
  box-sizing: border-box;
  width: 3.125rem;
  height: 3.125rem;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--lane-accent);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem;
}

.page-landing-mobility .lm-step-flow__icon {
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 0;
  object-fit: contain;
  background: transparent;
  box-sizing: border-box;
  border: none;
  padding: 0;
  display: block;
}

.page-landing-mobility .lm-step-flow__icon--number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-width: 0;
  max-width: 100%;
  padding: 0;
  font-size: clamp(0.98rem, 0.88rem + 0.35vw, 1.14rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--lane-accent, var(--muted));
}

.page-landing-mobility .lm-step-flow__title {
  display: block;
  font-size: var(--text-sm);
  font-weight: 750;
  color: var(--text);
  margin: 0 0 0.25rem;
}

.page-landing-mobility .lm-step-flow__body {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.6;
  color: var(--muted);
}

.page-landing-mobility .lm-paths > .container {
  display: block;
}

.page-landing-mobility .lm-paths__section-head {
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.page-landing-mobility .lm-paths__eyebrow {
  margin: 0 0 0.5rem;
}

.page-landing-mobility .lm-paths__headline {
  margin: 0;
}

.page-landing-mobility .lm-paths__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.35rem, 2.8vw, 2.35rem);
  margin-top: 0;
  align-items: stretch;
}

.page-landing-mobility .lm-paths__grid--cols-1 {
  grid-template-columns: minmax(0, 1fr);
}

.page-landing-mobility .lm-paths__grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 900px) {
  .page-landing-mobility .lm-paths__grid,
  .page-landing-mobility .lm-paths__grid--cols-1,
  .page-landing-mobility .lm-paths__grid--cols-2 {
    grid-template-columns: 1fr;
  }
}

.page-landing-mobility .lm-path-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 0.75rem);
  padding: clamp(1.35rem, 2.4vw, 2rem);
  background: var(--bg);
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(10, 10, 10, 0.06));
  height: 100%;
  display: flex;
  flex-direction: column;
}

.page-landing-mobility .lm-path-card__inner {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  flex: 1;
  min-height: 0;
}

/* Icon above headline: masked SVG tint (see .lm-paths --lm-path-icon-*). */
.page-landing-mobility .lm-path-card__icon:not(.lm-path-card__icon--mask) {
  flex-shrink: 0;
  width: auto;
  height: auto;
  margin: 0 0 0.2rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  display: block;
  align-self: center;
  overflow: visible;
}

.page-landing-mobility .lm-path-card__icon-img {
  width: var(--lm-path-icon-size, clamp(2.73375rem, 6.1965vw, 4.19175rem));
  height: var(--lm-path-icon-size, clamp(2.73375rem, 6.1965vw, 4.19175rem));
  object-fit: contain;
  display: block;
}

.page-landing-mobility .lm-path-card__title {
  margin: 0;
  font-size: clamp(1.28rem, 1.05rem + 0.55vw, 1.45rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
  text-align: center;
}

.page-landing-mobility .lm-path-card__body {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.55;
  color: var(--muted);
  text-align: center;
}

.page-landing-mobility .lm-path-card__body:has(+ .lm-path-card__checklist) {
  padding-bottom: clamp(1.25rem, 3vw, 2rem);
}

.page-landing-mobility .lm-path-card__body + .lm-path-card__checklist {
  border-top: 1px solid var(--border);
  padding-top: clamp(1.25rem, 3vw, 2rem);
  margin-top: 0;
}

.page-landing-mobility .lm-path-card__checklist {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.page-landing-mobility .lm-path-card__checklist li {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--muted);
}

.page-landing-mobility .lm-path-card__checklist li::before {
  content: "✓";
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.12em;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  background: var(--primary, #3b82f6);
}

.page-landing-mobility .lm-path-card__cta {
  margin-top: auto;
  padding-top: 0.65rem;
}

.page-landing-mobility .lm-path-card__btn {
  width: 100%;
  justify-content: center;
  text-align: center;
  border-radius: 0.65rem;
  font-weight: 700;
  padding-top: 0.62rem;
  padding-bottom: 0.62rem;
}

/* Feature showcase: icon + copy left, large mobile mockup right (overflow crop at card bottom). */
.page-landing-mobility .lm-feature-showcase {
  padding-block: clamp(1.5rem, 3vw, 2.5rem);
  --lm-feature-card-media-h: clamp(16rem, 48vw, 22rem);
  --lm-feature-img-max-w: min(100%, 11.5rem);
  --lm-feature-img-max-h: var(--lm-feature-card-media-h);
}

.page-landing-mobility .lm-feature-showcase__inner {
  width: 100%;
  max-width: min(100%, var(--content, 1180px));
  margin-inline: auto;
  box-sizing: border-box;
}

.page-landing-mobility .lm-feature-showcase__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
  width: 100%;
  max-width: 87.5rem;
  margin-inline: auto;
}

@media (min-width: 992px) {
  .page-landing-mobility .lm-feature-showcase__row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
  }

  .page-landing-mobility .lm-feature-showcase__grid--has-media {
    grid-template-columns: 1fr;
    gap: clamp(1rem, 2vw, 1.25rem);
  }

  .page-landing-mobility .lm-feature-showcase__row > .lm-feature-showcase__card:only-child {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 36rem;
    margin-inline: auto;
    --lm-feature-card-media-h: clamp(18rem, 38vw, 26rem);
    --lm-feature-img-max-w: min(100%, 14rem);
  }

  .page-landing-mobility .lm-feature-showcase__card {
    max-width: 100%;
  }

  .page-landing-mobility .lm-feature-showcase__card {
    padding: clamp(0.6rem, 1.2vw, 0.9rem);
  }
}

.page-landing-mobility .lm-feature-showcase__card {
  --lm-feature-card-pad-y: clamp(0.9rem, 1.8vw, 1.5rem);
  --lm-feature-card-pad-x: clamp(0.9rem, 1.8vw, 1.5rem);
  --lm-feature-img-bleed-bottom: clamp(2.25rem, 6vw, 3.75rem);
  background: color-mix(in srgb, var(--surface-2, #f8fafc) 92%, #fff);
  border: 1px solid color-mix(in srgb, var(--border, #e2e8f0) 85%, transparent);
  border-radius: clamp(1rem, 1.2vw, 1.25rem);
  padding: var(--lm-feature-card-pad-y) var(--lm-feature-card-pad-x);
  overflow: hidden;
}

.page-landing-mobility .lm-feature-showcase__card--inverse {
  border-color: color-mix(in srgb, #fff 12%, transparent);
}

.page-landing-mobility .lm-section--inverse.lm-feature-showcase .lm-feature-showcase__card {
  border-color: color-mix(in srgb, #fff 12%, transparent);
}

.page-landing-mobility .lm-feature-showcase__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  align-items: start;
}

@media (min-width: 640px) {
  .page-landing-mobility .lm-feature-showcase {
    --lm-feature-card-media-h: clamp(18rem, 32vw, 26rem);
    --lm-feature-img-max-w: 100%;
  }

  .page-landing-mobility .lm-feature-showcase__grid--has-media {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(0.75rem, 1.6vw, 1.25rem);
    align-items: stretch;
  }
}

.page-landing-mobility .lm-feature-showcase__grid:not(.lm-feature-showcase__grid--has-media) .lm-feature-showcase__copy {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
}

.page-landing-mobility .lm-feature-showcase__grid:not(.lm-feature-showcase__grid--has-media) .lm-feature-showcase__sub {
  max-width: none;
}

.page-landing-mobility .lm-feature-showcase__copy {
  min-width: 0;
  text-align: left;
  padding-inline-start: clamp(0.2rem, 0.45vw, 0.4rem);
}

/* Icons: match How it works ring (1px slate border, white fill) + platform light-blue tint */
.page-landing-mobility .lm-feature-showcase {
  --lm-feature-icon-color: #60a5fa;
  --lm-feature-icon-border: #94a3b8;
  --lm-feature-icon-ring: 3.125rem;
  --lm-feature-icon-inner: 1.55rem;
}

.page-landing-mobility .lm-section--inverse.lm-feature-showcase,
.page-landing-mobility .lm-feature-showcase__card--inverse {
  --lm-feature-icon-border: color-mix(in srgb, #fff 40%, #94a3b8);
}

.page-landing-mobility .lm-feature-showcase__icon-wrap {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--lm-feature-icon-ring);
  height: var(--lm-feature-icon-ring);
  margin: 0 0 0.75rem;
  padding: 0.55rem;
  border-radius: 50%;
  border: 1px solid var(--lm-feature-icon-border);
  background: #fff;
}

.page-landing-mobility .lm-feature-showcase__card--inverse .lm-feature-showcase__icon-wrap {
  background: color-mix(in srgb, #fff 10%, transparent);
}

.page-landing-mobility .lm-feature-showcase__icon {
  width: var(--lm-feature-icon-inner);
  height: var(--lm-feature-icon-inner);
  max-width: 100%;
  max-height: 100%;
  display: block;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  object-fit: contain;
  object-position: center center;
  background: transparent;
  box-sizing: border-box;
  /* Monochrome CMS icons → platform light blue (#60a5fa) */
  filter: brightness(0) saturate(100%) invert(71%) sepia(37%) saturate(1123%) hue-rotate(185deg) brightness(101%) contrast(96%);
}

.page-landing-mobility .lm-feature-showcase__card .lm-platform__title {
  margin: 0 0 0.5rem;
}

.page-landing-mobility .lm-feature-showcase__sub {
  margin: 0;
  font-size: var(--text-sm, 0.9375rem);
  line-height: 1.65;
  color: var(--muted, #64748b);
  max-width: 36rem;
}

.page-landing-mobility .lm-feature-showcase__highlights {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.page-landing-mobility .lm-feature-showcase__highlight {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  font-size: var(--text-sm, 0.875rem);
  line-height: 1.45;
  color: var(--muted, #64748b);
}

.page-landing-mobility .lm-feature-showcase__highlight-icon {
  flex-shrink: 0;
  margin-top: 0.1em;
  width: 1.15rem;
  height: 1.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-landing-mobility .lm-feature-showcase__highlight-icon::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  background: var(--lm-feature-icon-color, #60a5fa);
}

.page-landing-mobility .lm-section--inverse.lm-feature-showcase .lm-feature-showcase__sub,
.page-landing-mobility .lm-section--inverse.lm-feature-showcase .lm-platform__body,
.page-landing-mobility .lm-feature-showcase__card--inverse .lm-feature-showcase__sub,
.page-landing-mobility .lm-feature-showcase__card--inverse .lm-platform__body,
.page-landing-mobility .lm-feature-showcase__card--inverse .lm-platform__title {
  color: color-mix(in srgb, #fff 82%, var(--muted));
}

.page-landing-mobility .lm-section--inverse.lm-feature-showcase .lm-feature-showcase__highlight,
.page-landing-mobility .lm-feature-showcase__card--inverse .lm-feature-showcase__highlight {
  color: color-mix(in srgb, #fff 78%, var(--muted));
}

.page-landing-mobility .lm-section--inverse.lm-feature-showcase .lm-feature-showcase__highlight-icon::before,
.page-landing-mobility .lm-feature-showcase__card--inverse .lm-feature-showcase__highlight-icon::before {
  background: #60a5fa;
}

.page-landing-mobility .lm-feature-showcase__link-wrap {
  margin: 1.1rem 0 0;
}

.page-landing-mobility .lm-feature-showcase__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: var(--text-sm, 0.9375rem);
  font-weight: 600;
  color: var(--primary, #2563eb);
  text-decoration: none;
}

.page-landing-mobility .lm-feature-showcase__link:hover {
  text-decoration: underline;
}

.page-landing-mobility .lm-feature-showcase__link:focus-visible {
  outline: 2px solid var(--primary, #2563eb);
  outline-offset: 3px;
  border-radius: 0.2rem;
}

.page-landing-mobility .lm-section--inverse.lm-feature-showcase .lm-feature-showcase__link,
.page-landing-mobility .lm-feature-showcase__card--inverse .lm-feature-showcase__link {
  color: color-mix(in srgb, #fff 92%, var(--primary-soft));
}

.page-landing-mobility .lm-feature-showcase__link-icon {
  font-size: 1.1em;
  line-height: 1;
}

.page-landing-mobility .lm-feature-showcase__media {
  min-width: 0;
  max-width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
}

@media (min-width: 640px) {
  .page-landing-mobility .lm-feature-showcase__media {
    /* Match copy column height without growing the grid row (bottom crop). */
    height: 0;
    min-height: 100%;
    align-self: stretch;
    align-items: flex-start;
    justify-content: center;
    margin-block-end: calc(-1 * var(--lm-feature-card-pad-y));
    margin-inline-end: calc(-0.35 * var(--lm-feature-card-pad-x));
  }
}

.page-landing-mobility .lm-feature-showcase__img-btn {
  display: block;
  width: auto;
  max-width: min(100%, var(--lm-feature-img-max-w));
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
  text-align: center;
  border-radius: clamp(0.75rem, 1vw, 1rem);
}

@media (min-width: 640px) {
  .page-landing-mobility .lm-feature-showcase__img-btn {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    border-radius: 0;
  }
}

.page-landing-mobility .lm-feature-showcase__img-btn:focus-visible {
  outline: 2px solid var(--primary, #2563eb);
  outline-offset: 3px;
}

.page-landing-mobility .lm-feature-showcase__img {
  display: block;
  width: auto;
  max-width: min(100%, var(--lm-feature-img-max-w));
  max-height: min(var(--lm-feature-img-max-h), 72vh);
  height: auto;
  margin-inline: auto;
  border-radius: clamp(0.75rem, 1vw, 1rem);
  object-fit: contain;
  object-position: top center;
  pointer-events: none;
}

@media (min-width: 640px) {
  .page-landing-mobility .lm-feature-showcase__img {
    flex-shrink: 0;
    width: auto;
    max-width: min(100%, var(--lm-feature-img-max-w));
    height: calc(100% + var(--lm-feature-img-bleed-bottom));
    max-height: none;
    border-radius: 0;
    object-fit: contain;
    object-position: top center;
  }
}

/* Feature showcase image lightbox (click thumbnail → near full-viewport overlay). */
.lm-feature-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: clamp(0.75rem, 2.5vw, 2rem);
  background: color-mix(in srgb, #0f172a 88%, transparent);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease, visibility 0.22s ease;
}

.lm-feature-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.lm-feature-lightbox__dialog {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(96vw, 1400px);
  max-height: min(92vh, 920px);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.lm-feature-lightbox__figure {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  max-height: min(92vh, 920px);
}

.lm-feature-lightbox__img {
  display: block;
  max-width: min(96vw, 1400px);
  max-height: min(92vh, 920px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: clamp(0.5rem, 0.8vw, 0.85rem);
  box-shadow: 0 24px 64px color-mix(in srgb, #000 42%, transparent);
}

.lm-feature-lightbox__close {
  position: fixed;
  top: clamp(0.65rem, 2vw, 1.25rem);
  right: clamp(0.65rem, 2vw, 1.25rem);
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, #fff 22%, transparent);
  border-radius: 50%;
  background: color-mix(in srgb, #0f172a 55%, transparent);
  color: #f8fafc;
  font-size: 1.65rem;
  line-height: 1;
  cursor: pointer;
}

.lm-feature-lightbox__close:hover {
  background: color-mix(in srgb, #0f172a 72%, transparent);
}

.lm-feature-lightbox__close:focus-visible {
  outline: 2px solid #60a5fa;
  outline-offset: 2px;
}

html.lm-feature-lightbox-open {
  overflow: hidden;
}

/* Closing stripe: dark banner, copy left / CTA right on desktop. */
.page-landing-mobility .lm-closing-stripe {
  background: color-mix(in srgb, #030d1f 88%, var(--primary) 12%);
  color: #f8fafc;
  padding-block: clamp(2rem, 4vw, 2.85rem);
  border-block: 1px solid color-mix(in srgb, #fff 8%, transparent);
}

.page-landing-mobility .lm-closing-stripe__inner {
  width: 100%;
  box-sizing: border-box;
}

.page-landing-mobility .lm-closing-stripe__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.35rem;
  align-items: center;
}

@media (min-width: 768px) {
  .page-landing-mobility .lm-closing-stripe__grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    gap: 2rem 2.75rem;
  }
}

.page-landing-mobility .lm-closing-stripe__copy {
  min-width: 0;
}

.page-landing-mobility .lm-closing-stripe__headline {
  margin: 0 0 0.65rem;
  font-family: var(--font-display, inherit);
  font-size: var(--lm-section-headline-size);
  font-weight: 800;
  line-height: var(--lm-section-headline-line-height);
  letter-spacing: var(--lm-section-headline-letter-spacing);
  color: #fff;
}

.page-landing-mobility .lm-closing-stripe__sub {
  margin: 0;
  font-size: var(--text-sm, 0.9375rem);
  line-height: 1.65;
  color: color-mix(in srgb, #fff 86%, #94a3b8);
}

.page-landing-mobility .lm-closing-stripe__action {
  display: flex;
  justify-content: stretch;
}

@media (min-width: 768px) {
  .page-landing-mobility .lm-closing-stripe__action {
    justify-content: flex-end;
    align-self: center;
  }
}

.page-landing-mobility .lm-closing-stripe__btn {
  width: 100%;
  justify-content: center;
  text-align: center;
  background: #fff !important;
  color: #0f172a !important;
  border-color: #fff !important;
  border-radius: 0.5rem;
  font-weight: 700;
}

.page-landing-mobility .lm-closing-stripe__btn:hover {
  filter: brightness(0.96);
}

.page-landing-mobility .lm-closing-stripe__btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 80%, #fff);
  outline-offset: 3px;
}

@media (min-width: 768px) {
  .page-landing-mobility .lm-closing-stripe__btn {
    width: auto;
    min-width: 11rem;
  }
}

/* Optional full-bleed background on paths / platform (set in template). */
.page-landing-mobility .lm-section.lm-section--bleed {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: 0;
  padding-block: clamp(2.5rem, 5vw, 3.75rem);
}

.page-landing-mobility .lm-section--inverse .lm-paths__headline,
.page-landing-mobility .lm-section--inverse .lm-platform__headline {
  color: var(--inverse, #f8fafc);
}

.page-landing-mobility .lm-section--inverse .lm-platform__intro {
  color: color-mix(in srgb, var(--inverse, #f8fafc) 80%, #94a3b8);
}

.page-landing-mobility .lm-section--inverse .lm-path-card {
  background: color-mix(in srgb, #fff 7%, transparent);
  border-color: rgba(255, 255, 255, 0.16);
}

.page-landing-mobility .lm-section--inverse .lm-path-card__title {
  color: var(--inverse, #f8fafc);
}

.page-landing-mobility .lm-section--inverse .lm-path-card__body,
.page-landing-mobility .lm-section--inverse .lm-path-card__checklist li {
  color: color-mix(in srgb, var(--inverse, #f8fafc) 76%, #94a3b8);
}

.page-landing-mobility .lm-section--inverse .lm-path-card__body + .lm-path-card__checklist {
  border-top-color: rgba(255, 255, 255, 0.16);
}

.page-landing-mobility .lm-section--inverse .lm-path-card__btn {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* Choose your path: section background keeps light header copy; cards stay on a light surface. */
.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card {
  background: var(--surface, var(--bg, #ffffff));
  border-color: var(--border);
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(10, 10, 10, 0.06));
  color: var(--text);
}

.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card__title {
  color: var(--text);
}

.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card__body,
.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card__checklist li {
  color: var(--muted);
}

.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card__body + .lm-path-card__checklist {
  border-top-color: var(--border);
}

.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card__checklist li::before {
  color: #fff;
  background: var(--primary, #3b82f6);
}

.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card__icon--mask {
  background-color: var(--lm-path-icon-color, #60a5fa);
}

.page-landing-mobility .lm-paths.lm-section--bleed .lm-path-card__btn {
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(10, 10, 10, 0.06));
}

.page-landing-mobility .lm-section--inverse .lm-platform__title {
  color: var(--inverse, #f8fafc);
}

.page-landing-mobility .lm-section--inverse .lm-platform__body {
  color: color-mix(in srgb, var(--inverse, #f8fafc) 76%, #94a3b8);
}

.page-landing-mobility .lm-section--inverse :is(
  .lm-paths__headline,
  .lm-section__title,
  .lm-how__title,
  .oc-muni-section-title,
  .lm-two-col-panels__headline,
  .lm-two-col-text-rows__headline,
  .lm-headline-subline-rows__headline,
  .lm-closing-stripe__headline,
  .lm-hero-02__title,
  .lm-step-flow__title,
  .lm-how__lane-label
) {
  color: var(--inverse, #f8fafc);
}

.page-landing-mobility .lm-section--inverse :is(
  .lm-paths__intro,
  .lm-two-col-panels__sub,
  .lm-how__subtitle,
  .lm-two-col-text-rows__body,
  .lm-headline-subline-rows__subline,
  .lm-closing-stripe__sub,
  .lm-copy-html__subline,
  .lm-copy-html__body,
  .lm-step-flow__body,
  .lm-hero-02__sub,
  .lm-faq__q,
  .lm-faq__a
) {
  color: color-mix(in srgb, var(--inverse, #f8fafc) 80%, #94a3b8);
}

.page-landing-mobility .lm-section--inverse .lm-copy-html__body :is(h1, h2, h3, h4, strong, b) {
  color: var(--inverse, #f8fafc);
}

.page-landing-mobility .lm-section--inverse .lm-faq__item {
  border-color: color-mix(in srgb, #fff 16%, transparent);
}

.page-landing-mobility .lm-section--inverse :is(
  .btn-primary.lm-path-card__btn,
  .btn-primary.lm-two-col-panels__btn
) {
  background: #fff;
  color: #0f172a;
  border-color: #fff;
}

.page-landing-mobility .lm-section--inverse :is(
  .btn-primary.lm-path-card__btn,
  .btn-primary.lm-two-col-panels__btn
):hover {
  background: color-mix(in srgb, #fff 92%, #0f172a);
  border-color: color-mix(in srgb, #fff 92%, #0f172a);
  color: #0f172a;
}

.page-landing-mobility .lm-closing-stripe.lm-section--bleed:not(.lm-section--inverse) {
  color: var(--text);
  border-block-color: var(--border);
}

.page-landing-mobility .lm-closing-stripe.lm-section--bleed:not(.lm-section--inverse) :is(
  .lm-closing-stripe__headline,
  .lm-closing-stripe__sub
) {
  color: var(--text);
}

.page-landing-mobility .lm-closing-stripe.lm-section--bleed:not(.lm-section--inverse) .lm-closing-stripe__sub {
  color: var(--muted);
}

.page-landing-mobility .lm-closing-stripe.lm-section--bleed:not(.lm-section--inverse) .lm-closing-stripe__btn {
  background: #0f172a !important;
  color: #fff !important;
  border-color: #0f172a !important;
}

/* Platform layers (former “Final CTA” area): icon + title + copy grid. */
.page-landing-mobility .lm-platform__header {
  text-align: left;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.page-landing-mobility .lm-platform__eyebrow {
  margin: 0 0 0.5rem;
}

.page-landing-mobility .lm-platform__headline {
  margin: 0 0 0.65rem;
}

.page-landing-mobility .lm-platform__intro {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--muted);
}

.page-landing-mobility .lm-copy-html__inner {
  width: 100%;
  max-width: none;
}

.page-landing-mobility .lm-copy-html__header {
  text-align: left;
  width: 100%;
  max-width: none;
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
}

.page-landing-mobility .lm-copy-html__header :is(.lm-platform__eyebrow, .lm-platform__headline, .lm-platform__intro, .lm-copy-html__subline) {
  max-width: none;
}

.page-landing-mobility .lm-copy-html__body {
  width: 100%;
  max-width: none;
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--text);
}

/* Ceperia global `p { max-width: 72ch }` — full container width in copy block. */
.page-landing-mobility .lm-copy-html__body :is(p, li, ul, ol, blockquote) {
  max-width: none;
}

.page-landing-mobility .lm-copy-html__body > :first-child {
  margin-top: 0;
}

.page-landing-mobility .lm-copy-html__body > :last-child {
  margin-bottom: 0;
}

.page-landing-mobility .lm-copy-html__body p + p {
  margin-top: 0.85rem;
}

.page-landing-mobility .lm-copy-html__body a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-landing-mobility .lm-copy-html__body ul,
.page-landing-mobility .lm-copy-html__body ol {
  margin: 0.85rem 0 0;
  padding-left: 1.25rem;
}

/* Section intro (wide): without background — keep normal top padding from `.lm-section`; no bottom padding. */
.page-landing-mobility .lm-section.lm-section-intro-wide:not(.lm-section--bleed) {
  padding-bottom: 0;
}

/* With valid hex background (`lm-section--bleed`): normal top/bottom from `.lm-section.lm-section--bleed`. */

.page-landing-mobility .lm-section-intro-wide__header {
  text-align: left;
  max-width: 75%;
  max-width: 75cqi;
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-section-intro-wide__header {
    max-width: 100%;
  }
}

.page-landing-mobility .lm-platform__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem);
}

@media (max-width: 900px) {
  .page-landing-mobility .lm-platform__grid {
    grid-template-columns: 1fr;
  }
}

/* Landing mobility: large SVG icons tinted via CSS mask (default #60a5fa; override with --lm-*-icon-color on section). */
.page-landing-mobility .lm-platform {
  --lm-platform-icon-size-base: clamp(2.73375rem, 6.1965vw, 4.19175rem);
  --lm-platform-icon-size: var(--lm-platform-icon-size-base);
  --lm-platform-icon-color: var(--lm-accent-icon-color);
}

.page-landing-mobility .lm-platform--items-split {
  --lm-platform-icon-size: calc(var(--lm-platform-icon-size-base) * 0.7);
}

.page-landing-mobility .lm-platform--items-split .lm-platform__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}

@media (max-width: 1100px) {
  .page-landing-mobility .lm-platform--items-split .lm-platform__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .page-landing-mobility .lm-platform--items-split .lm-platform__grid {
    grid-template-columns: 1fr;
  }
}

.page-landing-mobility .lm-platform__item--split {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: clamp(0.65rem, 1.5vw, 0.85rem);
  row-gap: 0.35rem;
  align-items: start;
}

.page-landing-mobility .lm-platform--items-split .lm-platform__icon--mask {
  margin: 0;
  background-color: var(--lm-accent-icon-color);
}

.page-landing-mobility .lm-platform__item-copy {
  min-width: 0;
}

.page-landing-mobility .lm-platform__item--stacked .lm-platform__item-copy {
  display: contents;
}

.page-landing-mobility .lm-section--inverse.lm-platform {
  --lm-platform-icon-color: color-mix(in srgb, var(--inverse, #f8fafc) 52%, #60a5fa);
}

.page-landing-mobility .lm-paths {
  --lm-path-icon-size-base: clamp(2.73375rem, 6.1965vw, 4.19175rem);
  --lm-path-icon-size: var(--lm-path-icon-size-base);
  --lm-path-icon-color: var(--lm-accent-icon-color);
}

.page-landing-mobility .lm-section--inverse.lm-paths:not(.lm-section--bleed) {
  --lm-path-icon-color: color-mix(in srgb, var(--inverse, #f8fafc) 52%, #60a5fa);
}

.page-landing-mobility .lm-platform__icon--mask {
  width: var(--lm-platform-icon-size);
  height: var(--lm-platform-icon-size);
  margin: 0 0 0.75rem;
  display: block;
  flex-shrink: 0;
  background-color: var(--lm-platform-icon-color);
  -webkit-mask-image: var(--lm-platform-icon-mask);
  mask-image: var(--lm-platform-icon-mask);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: left center;
  mask-position: left center;
}

.page-landing-mobility .lm-path-card__icon--mask {
  flex-shrink: 0;
  align-self: center;
  width: var(--lm-path-icon-size);
  height: var(--lm-path-icon-size);
  margin: 0 0 0.75rem;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background-color: var(--lm-path-icon-color);
  -webkit-mask-image: var(--lm-path-card-icon-mask);
  mask-image: var(--lm-path-card-icon-mask);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center center;
  mask-position: center center;
}

.page-landing-mobility .lm-platform__title {
  margin: 0 0 0.35rem;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
}

.page-landing-mobility .lm-platform__body {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.55;
  color: var(--muted);
}

/* Two columns — headline left, text right; stacked rows with top border (FAQ-style dividers). */
.page-landing-mobility .lm-two-col-text-rows__header {
  text-align: left;
  max-width: min(75%, 52rem);
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.page-landing-mobility .lm-two-col-text-rows__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.page-landing-mobility .lm-two-col-text-rows__row {
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 3vw, 2.25rem);
  align-items: start;
  padding-block: clamp(1.25rem, 2.5vw, 1.65rem);
  border-top: 1px solid var(--border);
}

.page-landing-mobility .lm-two-col-text-rows__headline {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--lm-item-headline-size);
  line-height: var(--lm-item-headline-line-height);
  letter-spacing: var(--lm-item-headline-letter-spacing);
  font-weight: 800;
  color: var(--text);
}

.page-landing-mobility .lm-two-col-text-rows__body {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--muted);
}

.page-landing-mobility .lm-two-col-text-rows__body :is(p, li, span, em, i) {
  color: inherit;
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-two-col-text-rows__header {
    max-width: 100%;
  }

  .page-landing-mobility .lm-two-col-text-rows__row {
    grid-template-columns: 1fr;
    gap: 0.65rem;
    padding-block: clamp(1.1rem, 3vw, 1.35rem);
  }
}

/* Headline + subline rows: stacked items with top border per block. */
.page-landing-mobility .lm-headline-subline-rows__header {
  text-align: left;
  max-width: min(75%, 52rem);
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.page-landing-mobility .lm-headline-subline-rows__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.page-landing-mobility .lm-headline-subline-rows__item {
  padding-block: clamp(1.25rem, 2.5vw, 1.65rem);
  border-top: 1px solid var(--border);
}

.page-landing-mobility .lm-headline-subline-rows__headline {
  margin: 0 0 0.5rem;
  font-family: var(--font-display);
  font-size: var(--lm-item-headline-size);
  line-height: var(--lm-item-headline-line-height);
  letter-spacing: var(--lm-item-headline-letter-spacing);
  font-weight: 800;
  color: var(--text);
}

.page-landing-mobility .lm-headline-subline-rows__subline {
  margin: 0;
  max-width: min(52rem, 100%);
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--muted);
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-headline-subline-rows__header {
    max-width: 100%;
  }

  .page-landing-mobility .lm-headline-subline-rows__item {
    padding-block: clamp(1.1rem, 3vw, 1.35rem);
  }
}

/* FAQ: divider rows, chevron, smooth max-height panel (see data-faq-accordion in website.js). */
.page-landing-mobility .lm-faq .lm-section__inner {
  max-width: 100%;
}

.page-landing-mobility .lm-faq__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--border);
}

.page-landing-mobility .lm-faq__item {
  border-bottom: 1px solid var(--border);
  background: transparent;
}

.page-landing-mobility .lm-faq__item:last-child {
  border-bottom: 0;
}

.page-landing-mobility .lm-faq__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1rem, 3vw, 1.5rem);
  width: 100%;
  margin: 0;
  padding: clamp(1.1rem, 2.5vw, 1.35rem) clamp(0.65rem, 1.5vw, 1rem) clamp(1.1rem, 2.5vw, 1.35rem) 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.page-landing-mobility .lm-faq__trigger:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 55%, transparent);
  outline-offset: 3px;
  border-radius: 0.25rem;
}

.page-landing-mobility .lm-faq__q {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 700;
  font-size: clamp(0.9375rem, 0.88rem + 0.35vw, 1.0625rem);
  line-height: 1.35;
  letter-spacing: -0.01em;
}

.page-landing-mobility .lm-faq__chevron {
  flex: 0 0 auto;
  width: 0.55rem;
  height: 0.55rem;
  margin-top: 0.15rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.28s cubic-bezier(0.33, 1, 0.68, 1);
  opacity: 0.85;
}

.page-landing-mobility .lm-faq__item.is-open .lm-faq__chevron {
  transform: rotate(-135deg);
  margin-top: 0.35rem;
}

.page-landing-mobility .lm-faq__panel {
  overflow: hidden;
  will-change: max-height, opacity;
  transition:
    max-height 0.5s cubic-bezier(0.33, 1, 0.68, 1),
    opacity 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.page-landing-mobility .lm-faq__panel.is-collapsed {
  max-height: 0 !important;
  opacity: 0 !important;
  pointer-events: none;
}

.page-landing-mobility .lm-faq__item.is-open .lm-faq__panel:not(.is-collapsed) {
  opacity: 1;
}

.page-landing-mobility .lm-faq__a {
  padding: 0 0 clamp(1.1rem, 2.5vw, 1.35rem);
  font-size: clamp(0.875rem, 0.84rem + 0.25vw, 0.9375rem);
  line-height: 1.65;
  font-weight: 400;
  color: var(--text);
}

@media (prefers-reduced-motion: reduce) {
  .page-landing-mobility .lm-faq__panel,
  .page-landing-mobility .lm-faq__chevron {
    transition: none;
  }
}

/* Two column panels: left / right promo blocks (copy + image, or image-only full column). */
.page-landing-mobility .lm-two-col-panels__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4.5vw, 3.5rem);
  align-items: center;
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-two-col-panels__grid {
    display: flex;
    flex-direction: column;
    gap: clamp(1.75rem, 3vw, 2.5rem);
  }

  /* Panels with copy before image-only columns. */
  .page-landing-mobility .lm-two-col-panels__panel:not(.lm-two-col-panels__panel--image-only) {
    order: 1;
  }

  .page-landing-mobility .lm-two-col-panels__panel--image-only {
    order: 2;
  }

  /* Within each panel: always text, then image (ignore desktop left/right). */
  .page-landing-mobility .lm-two-col-panels__panel:has(.lm-two-col-panels__copy):has(.lm-two-col-panels__media) {
    display: flex;
    flex-direction: column;
  }

  .page-landing-mobility .lm-two-col-panels__copy {
    order: 1;
  }

  .page-landing-mobility .lm-two-col-panels__media {
    order: 2;
  }
}

.page-landing-mobility .lm-two-col-panels__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  min-height: clamp(16rem, 28vw, 22rem);
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  gap: var(--lm-two-col-inner-gap);
}

.page-landing-mobility .lm-two-col-panels__panel--image-only {
  justify-content: stretch;
  align-items: center;
  padding: 0;
  gap: 0;
}

.page-landing-mobility .lm-two-col-panels__copy {
  flex: 0 0 auto;
  padding: 0;
  max-width: 100%;
  text-align: left;
}

.page-landing-mobility .lm-two-col-panels__eyebrow {
  margin: 0 0 0.5rem;
}

.page-landing-mobility .lm-two-col-panels__headline {
  margin: 0 0 0.65rem;
}

.page-landing-mobility .lm-two-col-panels__sub {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.65;
  color: var(--muted);
}

.page-landing-mobility .lm-two-col-panels__cta {
  margin-top: 1.15rem;
  margin-bottom: 0;
}

.page-landing-mobility .lm-two-col-panels__media {
  flex: 0 0 auto;
  width: 90%;
  max-width: 90%;
  margin-inline: auto;
  overflow: hidden;
  border-radius: clamp(1rem, 1.2vw, 1.25rem);
}

.page-landing-mobility .lm-two-col-panels__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.page-landing-mobility .lm-two-col-panels__panel--image-only .lm-two-col-panels__media {
  flex: 1 1 auto;
  display: flex;
  min-height: 100%;
  margin-top: 0;
  border-radius: clamp(1rem, 1.2vw, 1.25rem);
}

.page-landing-mobility .lm-two-col-panels__panel--image-only .lm-two-col-panels__media img {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: clamp(14.4rem, 25.2vw, 19.8rem);
  aspect-ratio: auto;
  object-fit: cover;
}

/* Desktop: copy + image side by side; right column panel shows image on the left. */
@media (min-width: 768px) {
  .page-landing-mobility .lm-two-col-panels__panel:not(.lm-two-col-panels__panel--image-only):has(.lm-two-col-panels__copy):has(.lm-two-col-panels__media) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--lm-two-col-inner-gap);
  }

  .page-landing-mobility .lm-two-col-panels__panel--left .lm-two-col-panels__copy {
    order: 1;
  }

  .page-landing-mobility .lm-two-col-panels__panel--left .lm-two-col-panels__media {
    order: 2;
  }

  .page-landing-mobility .lm-two-col-panels__panel--right .lm-two-col-panels__copy {
    order: 2;
  }

  .page-landing-mobility .lm-two-col-panels__panel--right .lm-two-col-panels__media {
    order: 1;
  }
}

/* Two columns — reorderable Content / Items blocks (first = left, second = right). */
.page-landing-mobility .lm-two-col-row__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(3rem, 5.5vw, 5rem);
  align-items: start;
}

.page-landing-mobility .lm-two-col-row--has-items {
  --lm-item-headline-padding-y: clamp(1rem, 1.65vw, 1.25rem);
}

.page-landing-mobility .lm-two-col-row--has-items .lm-two-col-row__grid--2 {
  gap: var(--lm-two-col-inner-gap);
}

.page-landing-mobility .lm-two-col-row--has-items .lm-hover-stack__slideout-inner {
  padding-bottom: 0.35rem;
}

.page-landing-mobility .lm-two-col-row__grid--1 {
  grid-template-columns: 1fr;
  max-width: min(50%, 36rem);
}

.page-landing-mobility .lm-two-col-row__column {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
  align-self: start;
}

.page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel--image-only {
  min-height: clamp(16rem, 28vw, 22rem);
}

.page-landing-mobility .lm-two-col-row__column .lm-two-col-panels__panel {
  justify-content: flex-start;
}

@media (min-width: 768px) {
  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel:not(.lm-two-col-panels__panel--image-only) {
    min-height: auto;
  }
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-two-col-row__grid,
  .page-landing-mobility .lm-two-col-row__grid--2 {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
  }

  /* Content column (text + image) before items list, regardless of desktop column order. */
  .page-landing-mobility .lm-two-col-row__column--content {
    order: 1;
  }

  .page-landing-mobility .lm-two-col-row__column--items {
    order: 2;
  }

  /* Same stack as two_column_panels: copy on top, image below. */
  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel:has(.lm-two-col-panels__copy):has(.lm-two-col-panels__media) {
    display: flex;
    flex-direction: column;
    grid-template-columns: unset;
  }

  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__copy {
    order: 1;
  }

  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__media {
    order: 2;
  }

  .page-landing-mobility .lm-two-col-row__grid--1 {
    max-width: 100%;
  }
}

/* Desktop: reorderable row content columns use same copy/image sides as two_column_panels. */
@media (min-width: 768px) {
  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel:not(.lm-two-col-panels__panel--image-only):has(.lm-two-col-panels__copy):has(.lm-two-col-panels__media) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: var(--lm-two-col-inner-gap);
  }

  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel--left .lm-two-col-panels__copy {
    order: 1;
  }

  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel--left .lm-two-col-panels__media {
    order: 2;
  }

  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel--right .lm-two-col-panels__copy {
    order: 2;
  }

  .page-landing-mobility .lm-two-col-row__column--content .lm-two-col-panels__panel--right .lm-two-col-panels__media {
    order: 1;
  }
}

/* Two columns — copy + checklist (blue check bullets, screenshot-style rows). */
.page-landing-mobility .lm-two-col-checklist__copy {
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.page-landing-mobility .lm-two-col-checklist__eyebrow {
  margin: 0 0 0.5rem;
}

.page-landing-mobility .lm-two-col-checklist__headline {
  margin: 0 0 0.65rem;
}

.page-landing-mobility .lm-two-col-checklist__sub {
  margin: 0;
  max-width: 38rem;
}

.page-landing-mobility .lm-two-col-checklist__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.page-landing-mobility .lm-two-col-checklist__item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  font-size: var(--text-sm, 0.9375rem);
  line-height: 1.5;
  color: var(--text, #0f172a);
}

.page-landing-mobility .lm-two-col-checklist__icon {
  flex-shrink: 0;
  margin-top: 0.2em;
  font-size: 1.05rem;
  line-height: 1;
  color: var(--primary-2, #60a5fa);
}

.page-landing-mobility .lm-two-col-checklist__label {
  font-weight: 700;
}

.page-landing-mobility .lm-two-col-checklist__desc {
  font-weight: 400;
  color: var(--muted, #64748b);
}

.page-landing-mobility .lm-two-col-checklist__text .lm-two-col-checklist__desc {
  margin-inline-start: 0.35em;
}

.page-landing-mobility .lm-two-col-checklist__list--richtext ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.page-landing-mobility .lm-two-col-checklist__list--richtext li {
  position: relative;
  margin: 0;
  padding: 0 0 0 1.65rem;
  font-size: var(--text-sm, 0.9375rem);
  line-height: 1.5;
  color: var(--text, #0f172a);
}

.page-landing-mobility .lm-two-col-checklist__list--richtext li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0.05em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  background: #3b82f6;
}

.page-landing-mobility .lm-two-col-checklist__list--richtext li strong {
  font-weight: 700;
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-two-col-row__column--checklist {
    order: 1;
  }

  .page-landing-mobility .lm-two-col-row__column--content:has(.lm-two-col-panels__panel--image-only) {
    order: 2;
  }
}

/* Items column: stacked rows with bottom border; slideout on hover / focus / tap. */
.page-landing-mobility .lm-two-col-row__column--items {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
}

.page-landing-mobility .lm-hover-stack__column {
  min-width: 0;
}

.page-landing-mobility .lm-hover-stack__item {
  border-bottom: 1px solid var(--border, #e2e8f0);
}

.page-landing-mobility .lm-hover-stack__item:last-child {
  border-bottom: 0;
}

.page-landing-mobility .lm-hover-stack__item--interactive {
  position: relative;
}

.page-landing-mobility .lm-hover-stack__trigger {
  padding: var(--lm-item-headline-padding-y) 0;
  cursor: default;
}

.page-landing-mobility .lm-hover-stack__item--interactive .lm-hover-stack__trigger {
  cursor: pointer;
}

.page-landing-mobility .lm-hover-stack__headline {
  margin: 0;
  transition: color 0.2s ease;
}

.page-landing-mobility .lm-hover-stack__item--interactive.is-open .lm-hover-stack__headline {
  color: var(--primary, #2563eb);
}

@media (hover: hover) and (pointer: fine) {
  .page-landing-mobility .lm-hover-stack__item--interactive:hover .lm-hover-stack__headline {
    color: var(--primary, #2563eb);
  }
}

.page-landing-mobility .lm-hover-stack__slideout {
  overflow: hidden;
  will-change: max-height, opacity;
  transition:
    max-height 0.5s cubic-bezier(0.33, 1, 0.68, 1),
    opacity 0.4s cubic-bezier(0.33, 1, 0.68, 1),
    visibility 0s linear 0.5s;
}

.page-landing-mobility .lm-hover-stack__slideout.is-collapsed {
  max-height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.page-landing-mobility .lm-hover-stack__slideout.is-collapsed .lm-hover-stack__slideout-inner {
  margin: 0;
  padding: 0;
  min-height: 0;
}

.page-landing-mobility .lm-hover-stack__item.is-open .lm-hover-stack__slideout:not(.is-collapsed) {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.page-landing-mobility .lm-hover-stack__slideout-inner {
  padding-bottom: 0.15rem;
}

.page-landing-mobility .lm-hover-stack__eyebrow {
  margin: 0 0 0.45rem;
  font-size: var(--lm-eyebrow-size-section);
  letter-spacing: var(--lm-eyebrow-tracking-section);
}

.page-landing-mobility .lm-hover-stack__sub {
  margin: 0 0 1rem;
  max-width: 42rem;
}

.page-landing-mobility .lm-hover-stack__cta {
  margin: 0 0 1.15rem;
}

.page-landing-mobility .lm-hover-stack__link {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--primary, #2563eb);
  text-decoration: none;
}

.page-landing-mobility .lm-hover-stack__link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-landing-mobility .lm-hover-stack__link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--primary, #2563eb) 12%, transparent);
  font-size: 0.95rem;
  line-height: 1;
}

.page-landing-mobility .lm-hover-stack__media {
  margin-bottom: clamp(1rem, 2vw, 1.35rem);
  border-radius: var(--radius-lg, 0.75rem);
  overflow: hidden;
}

.page-landing-mobility .lm-hover-stack__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

@media (prefers-reduced-motion: reduce) {
  .page-landing-mobility .lm-hover-stack__slideout {
    transition-duration: 0.01ms;
  }
}

/* Two columns — click stack (click to expand + opposite-column preview image). */
.page-landing-mobility .lm-click-stack {
  /* Fixed icon column so slideout highlights line up with headline/subline */
  --lm-click-stack-thumb-col: var(--lm-click-stack-icon-ring);
  --lm-click-stack-copy-col: minmax(0, 1fr);
  --lm-click-stack-row-gap: clamp(1rem, 2vw, 1.35rem);
  --lm-click-stack-item-gap: clamp(0.65rem, 1.2vw, 0.85rem);
  --lm-click-stack-pad-x: clamp(0.85rem, 1.4vw, 1.1rem);
  --lm-click-stack-trigger-gap: clamp(0.4rem, 1vw, 0.65rem);
  --lm-click-stack-arrow-size: 1.75rem;
  --lm-click-stack-icon-color: #60a5fa;
  --lm-click-stack-icon-border: #94a3b8;
  --lm-click-stack-icon-ring: 3.75rem;
  --lm-click-stack-icon-inner: 1.86rem;
}

.page-landing-mobility .lm-click-stack__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: start;
}

/* Items column 60% / preview column 40%; both columns vertically centered. */
@media (min-width: 768px) {
  .page-landing-mobility .lm-click-stack--has-preview .lm-click-stack__grid {
    align-items: center;
  }

  .page-landing-mobility .lm-click-stack--has-preview .lm-click-stack__column--items {
    justify-content: center;
    align-self: center;
  }

  .page-landing-mobility .lm-click-stack--has-preview .lm-click-stack__column--preview-slot,
  .page-landing-mobility .lm-click-stack--has-preview .lm-click-stack__column--stacked {
    align-self: center;
    justify-content: center;
  }

  .page-landing-mobility .lm-click-stack--has-preview.lm-click-stack--preview-right .lm-click-stack__grid {
    grid-template-columns: minmax(0, 6fr) minmax(0, 4fr);
  }

  .page-landing-mobility .lm-click-stack--has-preview.lm-click-stack--preview-left .lm-click-stack__grid {
    grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
  }
}

.page-landing-mobility .lm-click-stack--preview-left .lm-click-stack__column--items {
  order: 2;
}

.page-landing-mobility .lm-click-stack--preview-left .lm-click-stack__column--preview-slot,
.page-landing-mobility .lm-click-stack--preview-left .lm-click-stack__column--stacked {
  order: 1;
}

.page-landing-mobility .lm-click-stack--preview-right .lm-click-stack__column--items {
  order: 1;
}

.page-landing-mobility .lm-click-stack--preview-right .lm-click-stack__column--preview-slot,
.page-landing-mobility .lm-click-stack--preview-right .lm-click-stack__column--stacked {
  order: 2;
}

.page-landing-mobility .lm-click-stack__column--stacked {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__column--items {
  display: flex;
  flex-direction: column;
  gap: var(--lm-click-stack-item-gap);
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__column--preview-slot,
.page-landing-mobility .lm-click-stack__column--content {
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__item {
  border: 1px solid color-mix(in srgb, var(--border, #e2e8f0) 90%, transparent);
  border-radius: clamp(0.75rem, 1vw, 1rem);
  background: color-mix(in srgb, var(--surface-2, #f8fafc) 55%, #fff);
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.page-landing-mobility .lm-click-stack__item--interactive {
  position: relative;
}

.page-landing-mobility .lm-click-stack__item.is-active {
  border-color: color-mix(in srgb, var(--primary, #2563eb) 45%, var(--border, #e2e8f0));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary, #2563eb) 12%, transparent);
  background: color-mix(in srgb, var(--primary, #2563eb) 4%, #fff);
}

.page-landing-mobility .lm-click-stack__trigger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--lm-click-stack-trigger-gap);
  align-items: center;
  width: 100%;
  margin: 0;
  padding: clamp(0.85rem, 1.6vw, 1.15rem) var(--lm-click-stack-pad-x);
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
}

.page-landing-mobility .lm-click-stack__trigger:focus-visible {
  outline: 2px solid var(--primary, #2563eb);
  outline-offset: 2px;
  border-radius: 0.35rem;
}

.page-landing-mobility .lm-click-stack__row {
  display: grid;
  grid-template-columns: var(--lm-click-stack-thumb-col) var(--lm-click-stack-copy-col);
  gap: var(--lm-click-stack-row-gap);
  align-items: start;
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__row--no-thumb {
  grid-template-columns: minmax(0, 1fr);
}

.page-landing-mobility .lm-click-stack__row--no-thumb .lm-click-stack__thumb-spacer {
  display: none;
}

.page-landing-mobility .lm-click-stack__thumb-spacer {
  display: block;
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  align-self: center;
  width: var(--lm-click-stack-arrow-size);
  height: var(--lm-click-stack-arrow-size);
  color: var(--muted, #64748b);
  font-size: 1.45rem;
  line-height: 1;
  transition: transform 0.28s ease, color 0.2s ease;
}

.page-landing-mobility .lm-click-stack__item.is-active .lm-click-stack__arrow {
  transform: rotate(180deg);
  color: var(--primary, #2563eb);
}

.page-landing-mobility .lm-click-stack__thumb {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--lm-click-stack-icon-ring);
  max-width: 100%;
  height: var(--lm-click-stack-icon-ring);
  padding: 0.55rem;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--lm-click-stack-icon-color) 40%, var(--lm-click-stack-icon-border));
  background: #fff;
  overflow: hidden;
}

.page-landing-mobility .lm-click-stack__thumb img {
  display: block;
  width: var(--lm-click-stack-icon-inner);
  height: var(--lm-click-stack-icon-inner);
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  object-position: center center;
  background: transparent;
  filter: brightness(0) saturate(100%) invert(71%) sepia(37%) saturate(1123%) hue-rotate(185deg) brightness(101%) contrast(96%);
}

.page-landing-mobility .lm-click-stack__titles {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__headline {
  display: block;
  font-size: clamp(1rem, 1.6vw, 1.125rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--text, #0f172a);
  transition: color 0.2s ease;
}

.page-landing-mobility .lm-click-stack__subline {
  display: block;
  font-size: var(--text-sm, 0.875rem);
  line-height: 1.5;
  color: var(--muted, #64748b);
}

.page-landing-mobility .lm-click-stack__item.is-active .lm-click-stack__headline {
  color: var(--primary, #2563eb);
}

.page-landing-mobility .lm-click-stack__slideout {
  overflow: hidden;
  will-change: max-height, opacity;
  transition:
    max-height 0.45s cubic-bezier(0.33, 1, 0.68, 1),
    opacity 0.35s cubic-bezier(0.33, 1, 0.68, 1),
    visibility 0s linear 0.45s;
}

.page-landing-mobility .lm-click-stack__slideout.is-collapsed {
  max-height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.page-landing-mobility .lm-click-stack__slideout-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--lm-click-stack-arrow-size);
  gap: var(--lm-click-stack-trigger-gap);
  align-items: start;
  padding: 0 var(--lm-click-stack-pad-x) clamp(0.85rem, 1.6vw, 1.15rem);
}

.page-landing-mobility .lm-click-stack__slideout-row {
  display: grid;
  grid-template-columns: var(--lm-click-stack-thumb-col) var(--lm-click-stack-copy-col);
  gap: var(--lm-click-stack-row-gap);
  align-items: start;
  grid-column: 1;
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__slideout-row--no-thumb {
  grid-template-columns: minmax(0, 1fr);
}

.page-landing-mobility .lm-click-stack__slideout-row--no-thumb .lm-click-stack__thumb-spacer {
  display: none;
}

.page-landing-mobility .lm-click-stack__arrow-spacer {
  display: block;
  grid-column: 2;
  width: var(--lm-click-stack-arrow-size);
  min-height: 1px;
}

.page-landing-mobility .lm-click-stack__slideout-row .lm-click-stack__thumb-spacer {
  width: var(--lm-click-stack-icon-ring);
  max-width: 100%;
  justify-self: start;
}

.page-landing-mobility .lm-click-stack__slideout-copy {
  min-width: 0;
}

.page-landing-mobility .lm-click-stack__eyebrow {
  margin: 0 0 0.45rem;
  font-size: var(--lm-eyebrow-size-section);
  letter-spacing: var(--lm-eyebrow-tracking-section);
}

.page-landing-mobility .lm-click-stack__body {
  margin: 0 0 0.85rem;
  font-size: var(--text-sm, 0.9375rem);
  line-height: 1.65;
  color: var(--muted, #64748b);
}

.page-landing-mobility .lm-click-stack__highlights {
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
  padding-inline-start: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.page-landing-mobility .lm-click-stack__highlight {
  display: flex;
  align-items: flex-start;
  gap: 0.28rem;
  margin: 0;
  padding: 0;
  padding-inline-start: 0;
  font-size: var(--text-sm, 0.875rem);
  line-height: 1.45;
  color: var(--muted, #64748b);
}

.page-landing-mobility .lm-click-stack__highlight-icon {
  flex-shrink: 0;
  margin: 0.1em 0 0;
  padding: 0;
  font-size: 1.05em;
  line-height: 1;
  color: #60a5fa;
}

.page-landing-mobility .lm-click-stack__cta {
  margin: 0;
}

.page-landing-mobility .lm-click-stack__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: var(--text-sm, 0.9375rem);
  font-weight: 600;
  color: var(--primary, #2563eb);
  text-decoration: none;
}

.page-landing-mobility .lm-click-stack__link:hover {
  text-decoration: underline;
}

.page-landing-mobility .lm-click-stack__preview {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(14rem, 32vw, 22rem);
}

.page-landing-mobility .lm-click-stack__preview-pane {
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}

.page-landing-mobility .lm-click-stack__preview-pane.is-active {
  opacity: 1;
  visibility: visible;
}

.page-landing-mobility .lm-click-stack__preview-pane:not(.is-active) {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.page-landing-mobility .lm-click-stack__preview-pane.is-active {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.page-landing-mobility .lm-click-stack__preview-pane img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(72vh, 28rem);
  margin-inline: auto;
  object-fit: contain;
  object-position: center center;
}

@media (min-width: 768px) {
  .page-landing-mobility .lm-click-stack--has-preview .lm-click-stack__preview-slot {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
  }

  .page-landing-mobility .lm-click-stack__preview {
    min-height: 0;
    width: 100%;
  }

  .page-landing-mobility .lm-click-stack__preview-pane img {
    width: auto;
    max-width: min(100%, 160%);
    max-height: min(85vh, 44.8rem);
  }

  .page-landing-mobility .lm-click-stack--has-preview .lm-click-stack__preview-pane.is-active {
    min-height: 0;
  }
}

@media (max-width: 767px) {
  .page-landing-mobility .lm-click-stack {
    --lm-click-stack-trigger-gap: 0.35rem;
    --lm-click-stack-row-gap: 0.4rem;
  }

  .page-landing-mobility .lm-click-stack__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .page-landing-mobility .lm-click-stack__column--stacked {
    order: 2;
  }

  .page-landing-mobility .lm-click-stack__column--items {
    order: 1;
  }

  .page-landing-mobility .lm-click-stack__preview-slot,
  .page-landing-mobility .lm-click-stack__preview-slot .lm-click-stack__preview {
    order: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-landing-mobility .lm-click-stack__slideout,
  .page-landing-mobility .lm-click-stack__preview-pane,
  .page-landing-mobility .lm-click-stack__arrow {
    transition-duration: 0.01ms;
  }
}

/* Partner portal shell: all eyebrows — brand accent blue */
.partner-landing-guide .page-landing-mobility :is(.trust-eyebrow, [class$='__eyebrow']),
.partner-guide-page :is(.trust-eyebrow, .mk-section__eyebrow, [class$='__eyebrow']),
.partner-mediakit-page :is(.trust-eyebrow, .mk-section__eyebrow, [class$='__eyebrow']) {
  color: var(--primary-2, #60a5fa);
}

/* Partner shell: standard top inset from .main-content only (not marketing hero/section padding). */
.partner-landing-guide .page-landing-mobility > :is(.lm-hero-02, .lm-hero.lm-hero--mobility) {
  padding-top: 0;
}

.partner-landing-guide .page-landing-mobility .lm-hero-02 {
  padding: 0 0 clamp(1.25rem, 2vw, 1.75rem);
  background-color: var(--surface-2, #f8fafc);
}

.partner-landing-guide .page-landing-mobility .lm-hero-02__img {
  border-radius: 0;
  background-color: var(--surface-2, #f8fafc);
}

.partner-landing-guide .page-landing-mobility .lm-section {
  padding: clamp(1.25rem, 2vw, 1.75rem) 0;
}

.partner-landing-guide .page-landing-mobility > :is(.lm-hero-02, .lm-hero.lm-hero--mobility).lm-section {
  padding-top: 0;
}

.partner-landing-guide .lm-page.page-landing-mobility > :first-child:not(:is(.lm-hero-02, .lm-hero--mobility)) {
  padding-top: 0;
}

@media (max-width: 767px) {
  .partner-landing-guide .page-landing-mobility .lm-hero.lm-hero--mobility {
    padding-top: 0;
  }

  .partner-landing-guide .page-landing-mobility .lm-hero--mobility .lm-hero__shell {
    padding-top: 0;
  }
}

/* Partner shell: section .container — no padding (closing stripe inner is the exception). */
.partner-landing-guide .lm-page .container:not(.lm-closing-stripe__inner) {
  width: 100%;
  padding: 0;
  box-sizing: border-box;
}

/* Partner shell: click stack — plain icons (no border/background), larger + nudged up. */
.partner-landing-guide .page-landing-mobility .lm-click-stack {
  --lm-click-stack-icon-ring: 5rem;
  --lm-click-stack-icon-inner: 2.85rem;
}

.partner-landing-guide .page-landing-mobility .lm-click-stack__thumb {
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  align-self: start;
  margin-top: -0.4rem;
}

.partner-landing-guide .page-landing-mobility .lm-click-stack__thumb img {
  filter: none !important;
  width: var(--lm-click-stack-icon-inner);
  height: var(--lm-click-stack-icon-inner);
}

.partner-landing-guide .page-landing-mobility .lm-click-stack__highlight-icon {
  color: var(--muted, #64748b);
}

/* Partner shell: closing stripe band = same width as other section containers */
.partner-landing-guide .page-landing-mobility .lm-closing-stripe {
  padding-block: 0;
  background: transparent;
  border: none;
}

.partner-landing-guide .page-landing-mobility .lm-closing-stripe__inner {
  background: color-mix(in srgb, #030d1f 88%, var(--primary, #0f172a) 12%);
  border: 1px solid color-mix(in srgb, #fff 8%, transparent);
  border-radius: 0.5rem;
  padding: clamp(2rem, 5vw, 3rem);
  overflow: hidden;
}

/* Contact page styles: see onecivic.css (body.page-contact). */

