@font-face {
  font-family: 'Geist Home Narrative';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/google/geist-variable-latin.woff2') format('woff2');
}

/* Narrative typography belongs to the billboards and catalog row headings.
   The split hero is an explicit exception: retain its original heavy type,
   fit metrics, copy, diagrams and controls. Catalog cards stay unchanged. */
main.nx-home .nx[data-home-catalog-stream] {
  --home-narrative-font: 'Geist Home Narrative', var(--font-heading), sans-serif;
}

main.nx-home .nx[data-home-catalog-stream] #rows .row-head h2 {
  font-family: var(--home-narrative-font);
  font-weight: 650;
  letter-spacing: -0.025em;
}

main.nx-home .nx[data-home-catalog-stream] .inter .in > :first-child :is(.k, h2, p) {
  font-family: var(--home-narrative-font);
}

main.nx-home .nx[data-home-catalog-stream] .inter .in > :first-child h2 {
  font-weight: 400;
  letter-spacing: -0.035em;
}

main.nx-home .nx[data-home-catalog-stream] .inter .in > :first-child h2 strong {
  font-weight: 800;
}

main.nx-home .nx[data-home-catalog-stream] .inter .in > :first-child p {
  font-weight: 450;
  letter-spacing: -0.01em;
}

/* Marketing actions adopt the shared material without changing the locked
   home hero typography, card controls, or catalog interaction geometry. */
main.nx-home:not(.nx-system) .nx :is(.half > .cta, [data-home-billboard] .cta) > .btn:not(.ghost) {
  --btn-fill-hover: var(--tacet-orange-on-light);
  border-radius: var(--button-radius);
  box-shadow: var(--button-rest-shadow);
  transition:
    color var(--duration-fast) var(--ease-standard),
    transform var(--duration-normal) var(--ease-decelerate),
    box-shadow var(--duration-normal) var(--ease-standard);
}

/* Override only these actions' legacy .nx pseudo-element reset. */
main.nx-home:not(.nx-system)
  .nx
  :is(.half > .cta, [data-home-billboard] .cta)
  > .btn:not(.ghost)::before {
  content: '' !important;
  display: block !important;
}

@media (hover: hover) and (pointer: fine) {
  main.nx-home:not(.nx-system)
    .nx
    :is(.half > .cta, [data-home-billboard] .cta)
    > .btn:not(.ghost):hover {
    color: var(--beige-50);
    transform: translateY(-2px);
    box-shadow: var(--button-hover-shadow);
  }
}

main.nx-home:not(.nx-system)
  .nx
  :is(.half > .cta, [data-home-billboard] .cta)
  > .btn:not(.ghost):active {
  transform: translateY(0);
  box-shadow: var(--button-press-shadow);
}

@media (prefers-reduced-motion: reduce) {
  main.nx-home:not(.nx-system)
    .nx
    :is(.half > .cta, [data-home-billboard] .cta)
    > .btn:not(.ghost) {
    transition: none;
    transform: none;
  }
}

html.dark
  main.nx-home:not(.nx-system)
  .nx
  :is(.half > .cta, [data-home-billboard] .cta)
  > .btn:not(.ghost):hover {
  color: var(--ink-deep);
}
