/* Product-story styling is scoped so the existing site and forms retain their behavior. */
.product-page {
  --product-ink: #10263c;
  --product-muted: #465d73;
  --product-blue: #075dbb;
  --product-line: #d9e4ee;
  --content-width: 1320px;
  background: #fff;
  color: var(--product-ink);
  font-size: 1rem;
  line-height: 1.65;
  overflow-x: clip;
}
.product-page :is(h1, h2, h3, p, a, li) { overflow-wrap: anywhere; }
.product-page :is(h1, h2, h3) { text-wrap: balance; }
.product-page a:focus-visible,
.product-page button:focus-visible,
.product-page summary:focus-visible { outline: 3px solid #0764c3; outline-offset: 5px; }
.product-page [id] { scroll-margin-top: 8rem; }
.product-page .utility-bar { min-height: 2.75rem; background: #091d32; font-size: .875rem; }
.product-page .utility-bar p span { margin-inline: .55rem; color: #8facc6; }
.product-page .site-header { gap: 1.1rem; }
.product-page .site-nav { gap: 1.1rem; }
.product-page .site-nav a { color: var(--product-muted); }
.product-page .site-nav a.is-active { color: var(--product-blue); }
.product-page .brand-company-logo { max-width: min(15rem, 48vw); height: auto; max-height: 3.25rem; object-fit: contain; transform: none; }
.product-page :is(.nav-cta, .button) { gap: .75rem; background: var(--product-blue); color: #fff; border-radius: .45rem; box-shadow: none; text-align: center; }
.product-page :is(.nav-cta, .button):hover { background: #034992; box-shadow: none; }
.product-skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 100; padding: .7rem 1rem; color: #fff; background: #10263c; transform: translateY(-200%); }
.product-skip-link:focus { transform: translateY(0); }
.product-hero,
.product-band,
.product-section,
.product-close,
.product-section-nav {
  padding-inline: max(var(--page-gutter), calc((100vw - var(--content-width)) / 2 + var(--page-gutter)));
}
.product-hero { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(3rem, 6vw, 5.5rem); background: linear-gradient(110deg, #fff 40%, #eff6fc); }
.product-eyebrow { margin: 0 0 1rem; font-size: .875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--product-blue); }
.product-hero h1 { margin: 0; font-size: clamp(2.6rem, 4.45vw, 4.3rem); line-height: 1.08; letter-spacing: -.055em; }
.product-hero h1 span { color: var(--product-blue); }
.product-lead { margin-top: 1.6rem; max-width: 36rem; font-size: clamp(1.125rem, 1.6vw, 1.3rem); line-height: 1.55; }
.product-hero-detail { margin-top: 1rem; max-width: 37rem; color: var(--product-muted); }
.product-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.5rem; margin-top: 1.75rem; }
.product-secondary-link { font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.product-secondary-link span { padding-left: .35rem; }
.product-facts { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; list-style: none; padding: 0; margin: 1.5rem 0 .6rem; font-size: .875rem; font-weight: 500; }
.product-facts li::before { content: ""; display: inline-block; width: .45rem; height: .45rem; margin-right: .5rem; border-radius: 50%; background: #087263; vertical-align: middle; }
.product-availability { color: var(--product-muted); font-size: .875rem; }
.product-catalog-card { padding: clamp(1.5rem, 3vw, 2.5rem); background: #fff; border: 1px solid var(--product-line); border-radius: .8rem; box-shadow: 0 24px 60px #0a213810; }
.product-catalog-card img { width: min(100%, 26rem); height: auto; margin-bottom: 2rem; }
.product-catalog-card h2 { font-size: 1.7rem; line-height: 1.2; letter-spacing: -.035em; margin: 0; }
.product-catalog-card ul { padding-left: 1.2rem; margin: 1.3rem 0; color: var(--product-muted); }
.product-catalog-card li { margin-top: .5rem; }
.product-page .product-availability { margin-top: .75rem; }
.product-trace { margin: 0; padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid #203c57; border-radius: .8rem; background: #0a2138; color: #fff; box-shadow: 0 24px 60px #0a21381c; }
.product-trace .product-eyebrow { color: #90caff; font-size: .8125rem; }
.product-trace h2 { margin: 0; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.2; letter-spacing: -.025em; }
.product-trace-steps { display: grid; gap: .75rem; padding: 0; margin: 1.65rem 0 1.25rem; list-style: none; }
.product-trace-steps li { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: start; gap: .8rem; padding: 1rem; border: 1px solid #35516a; border-radius: .45rem; background: #112d47; }
.trace-index { color: #91caff; font-size: .875rem; font-weight: 700; border-top: 2px solid #5284b2; padding-top: .3rem; }
.product-trace-steps h3 { margin: 0; font-size: 1rem; font-weight: 500; }
.product-trace-steps p { margin-top: .25rem; font-size: .875rem; line-height: 1.5; color: #c1d3e3; }
.trace-label { padding: .2rem .5rem; border: 1px solid #476681; border-radius: .25rem; color: #cce2f5; font-size: .75rem; }
.product-trace figcaption { color: #b7cbdf; font-size: .8125rem; }
.product-band { padding-block: 1.5rem; background: #f4f8fb; border-block: 1px solid var(--product-line); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .8rem 2rem; }
.product-band p { color: var(--product-muted); font-size: .875rem; }
.product-band ul { display: flex; flex-wrap: wrap; gap: .6rem 2rem; list-style: none; padding: 0; margin: 0; font-weight: 700; }
.product-section-nav { display: flex; flex-wrap: wrap; gap: .2rem 2rem; padding-block: 1rem; border-bottom: 1px solid var(--product-line); }
.product-section-nav a { padding-block: .5rem; color: var(--product-muted); text-decoration: none; font-size: .875rem; font-weight: 700; }
.product-section-nav a:hover { color: var(--product-blue); text-decoration: underline; text-underline-offset: .3em; }
.product-section { padding-block: clamp(3.25rem, 6vw, 5.5rem); }
.product-section h2,
.product-close h2 { font-size: clamp(2rem, 3.1vw, 3rem); letter-spacing: -.04em; line-height: 1.15; margin: 0; max-width: 24ch; }
.product-section-intro { margin-bottom: 2.5rem; max-width: 48rem; }
.product-section-intro > p:last-child { margin-top: 1rem; color: var(--product-muted); }
.product-outcomes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.product-outcomes article { border-top: 2px solid var(--product-blue); padding-top: 1.25rem; }
.product-outcomes h3 { margin: 0 0 .65rem; font-size: 1.35rem; line-height: 1.3; letter-spacing: -.025em; }
.product-outcomes p { color: var(--product-muted); }
.product-workflow { background: #f4f8fb; }
.product-workflow-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.product-workflow-grid .product-section-intro { margin: 0; }
.product-step-list { list-style: none; padding: 0; margin: 0; }
.product-step-list > li { display: grid; grid-template-columns: 2.8rem minmax(0, 1fr); gap: 1rem; padding-block: 1.5rem; border-bottom: 1px solid var(--product-line); }
.product-step-list > li:first-child { padding-top: 0; }
.product-step-number { font-size: 1.4rem; color: var(--product-blue); font-weight: 700; line-height: 1.5; }
.product-step-list h3 { font-size: 1.2rem; line-height: 1.35; margin: 0 0 .5rem; }
.product-step-list p { color: var(--product-muted); }
.product-step-meta { display: block; margin-top: .6rem; color: #34536e; font-size: .875rem; }
.product-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--product-line); border-left: 1px solid var(--product-line); }
.product-feature-grid article { padding: 1.6rem; border-bottom: 1px solid var(--product-line); border-right: 1px solid var(--product-line); }
.product-feature-grid h3 { font-size: 1.125rem; line-height: 1.35; margin: 0 0 .75rem; }
.product-feature-grid p { color: var(--product-muted); }
.product-feature-grid .product-feature-label { font-size: .875rem; color: var(--product-blue); margin-bottom: 1rem; font-weight: 700; }
.product-local { background: #0a2138; color: #fff; }
.product-local .product-eyebrow { color: #91caff; }
.product-local .product-section-intro > p:last-child { color: #c7d7e6; }
.product-local-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; }
.product-local ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.4rem; }
.product-local li { border-left: 2px solid #75baff; padding-left: 1.2rem; }
.product-local li strong { display: block; font-size: 1.125rem; font-weight: 500; }
.product-local li p { color: #c7d7e6; margin-top: .4rem; }
.product-role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.product-role-grid article { padding: 1.6rem; background: #f4f8fb; border-radius: .5rem; }
.product-role-grid h3 { margin: 0 0 .8rem; font-size: 1.3rem; line-height: 1.3; }
.product-role-grid p { color: var(--product-muted); }
.product-role-grid ul { margin: 1.1rem 0 0; padding-left: 1.1rem; }
.product-role-grid li { margin-top: .4rem; }
.product-fit-note { margin-top: 1.3rem; padding-left: 1rem; border-left: 3px solid var(--product-line); color: var(--product-muted); font-size: .875rem; }
.product-faq { background: #f4f8fb; }
.product-faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.35fr); gap: 3rem; }
.product-faq details { border-bottom: 1px solid #c5d5e2; }
.product-faq details:first-child { border-top: 1px solid #c5d5e2; }
.product-faq summary { padding: 1.25rem .25rem; cursor: pointer; font-weight: 700; line-height: 1.5; }
.product-faq details p { padding: 0 .25rem 1.3rem; color: var(--product-muted); }
.product-faq details a { color: var(--product-blue); text-underline-offset: .2em; }
.product-close { padding-block: clamp(3rem, 6vw, 5rem); display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.product-close p { margin-top: 1rem; color: var(--product-muted); max-width: 40rem; }
.product-close .product-actions { margin: 0; flex-shrink: 0; }
.product-page main { padding-bottom: 0; }
.product-page .footer { background: #071a2d; }
.product-page .footer a:focus-visible { outline-color: #90caff; }
.product-page .footer-column h3 { font-size: 1rem; }
.product-page .footer-disclaimer { font-size: .875rem; }
@media (max-width: 1120px) {
  .product-page .site-header { flex-wrap: wrap; padding-block: 1rem; }
  .product-page .site-nav { order: 4; width: 100%; justify-content: flex-start; margin-left: 0; }
  .product-page .nav-cta { margin-left: auto; }
  .product-hero { gap: 2rem; }
  .trace-label { display: none; }
  .product-trace-steps li { grid-template-columns: 1.5rem minmax(0, 1fr); }
  .product-close { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 920px) {
  .product-page .site-header { position: relative; }
  .product-page .nav-cta { margin-left: 0; order: 3; }
  .product-hero,
  .product-workflow-grid,
  .product-local-grid,
  .product-faq-grid { grid-template-columns: minmax(0, 1fr); }
  .product-hero-copy { max-width: 44rem; }
  .product-trace { max-width: 44rem; width: 100%; }
  .product-hero h1 { font-size: clamp(2.6rem, 6.8vw, 4.3rem); }
  .product-role-grid,
  .product-outcomes { grid-template-columns: minmax(0, 1fr); }
  .product-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-page [id] { scroll-margin-top: 1.5rem; }
}
@media (max-width: 540px) {
  .product-feature-grid { grid-template-columns: minmax(0, 1fr); }
  .product-actions { align-items: flex-start; flex-direction: column; }
  .product-actions .button { width: 100%; }
  .product-close .product-actions { width: 100%; }
  .product-trace { padding: 1.1rem; }
  .product-trace-steps li { padding: .8rem; }
  .product-page .site-header { gap: .8rem; }
  .product-page .nav-cta { min-height: 2.75rem; padding: .55rem .9rem; font-size: .875rem; }
  .product-page .utility-bar { text-align: left; align-items: flex-start; }
  .product-section-nav { column-gap: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.product-page) { scroll-behavior: auto; }
  .product-page *, .product-page *::before, .product-page *::after { transition: none !important; animation: none !important; }
}
