/* ZEODEC navigation quality gate #81 — shared across homepage and product pages. */
.nav-toggle[hidden] { display: none !important; }
/* Use one offset per target: scroll-padding + scroll-margin otherwise stack. */
html { scroll-padding-top: 0; }
body.zeodec-nav-ready #about,
body.zeodec-nav-ready #products,
body.zeodec-nav-ready #contact { scroll-margin-top: 32px; }
@media (max-width: 800px) {
  body.zeodec-nav-ready .site-header .header-inner {
    min-height: 76px;
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
  }
  body.zeodec-nav-ready .site-header .brand-cluster { min-width: 0; gap: 0; }
  body.zeodec-nav-ready .site-header .brand-logo { width: min(42vw, 155px); }
  body.zeodec-nav-ready .site-header .brand-meta,
  body.zeodec-nav-ready .site-header .header-bars { display: none !important; }
  body.zeodec-nav-ready .site-header .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 8px;
    color: #fff;
    background: transparent;
    font: inherit;
    cursor: pointer;
  }
  body.zeodec-nav-ready .site-header .nav-toggle:focus-visible,
  body.zeodec-nav-ready .site-header .nav a:focus-visible { outline: 3px solid #48c4ae; outline-offset: 3px; }
  body.zeodec-nav-ready .site-header .nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    max-height: calc(100dvh - 80px);
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 110;
    margin: 0;
    padding: 10px 16px 18px;
    flex-direction: column;
    align-items: stretch;
    background: #080808;
    border: 1px solid rgba(255,255,255,.24);
    box-shadow: 0 14px 25px rgba(0,0,0,.35);
  }
  body.zeodec-nav-ready .site-header .nav.is-open { display: flex; }
  body.zeodec-nav-ready .site-header .nav a {
    width: 100%;
    min-height: 48px;
    height: auto;
    justify-content: flex-start;
    padding: 12px 14px;
    white-space: normal;
    border: 0;
    font-size: 15px;
  }
  html { scroll-padding-top: 0; }
  /* About/Products sections already have 82px top padding. Avoid adding header offset twice. */
  body.zeodec-nav-ready #about,
  body.zeodec-nav-ready #products,
  body.zeodec-nav-ready #contact { scroll-margin-top: 8px !important; }
}
@media (min-width: 801px) { .nav-toggle { display: none; } }

/* Product-specific anchors: account for compact sticky header on small screens. */
@media (max-width: 800px) {
  /* ClaimPrism anchors sit before sections that already add generous top padding.
     Landing at the section boundary aligns headings with the homepage. */
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target {
    scroll-margin-top: 8px;
  }
  body.zeodec-nav-ready.arrm-page #how-it-works {
    scroll-margin-top: 92px;
  }
  /* Order Resolution intentionally uses a non-sticky header on mobile. */
  body.zeodec-nav-ready.order-resolution-page #workflow { scroll-margin-top: 16px; }
}

/* ClaimPrism mobile: anchor points precede sections with large inherited top padding.
   Match the homepage's heading placement after an anchor jump without affecting
   desktop or the homepage. */
@media (max-width: 800px) {
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target + .section {
    padding-top: 16px;
  }
  /* Keep the sticky header clear when jumping to the zero-height anchor. */
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target {
    scroll-margin-top: 84px;
  }
}

/* The ClaimPrism zero-height anchor must scroll behind the sticky header.
   Previous section's bottom divider otherwise appears as a horizontal strip. */
@media (max-width: 800px) {
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target {
    scroll-margin-top: 0;
  }
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target + .section {
    padding-top: 22px;
  }
}

/* Remove the preceding section's decorative divider only on ClaimPrism mobile
   where it peeks out below the sticky header at Workflow/Plans/Pricing anchors.
   The header separator and desktop section separators remain unchanged. */
@media (max-width: 800px) {
  body.claimprism-page .section:has(+ .cp-anchor-target)::after {
    display: none;
  }
}

/* Final mobile ClaimPrism landing: keep the previous section divider hidden,
   but position the section label below the 76px sticky header. */
@media (max-width: 800px) {
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target {
    scroll-margin-top: 76px;
  }
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target + .section {
    padding-top: 22px;
  }
}

/* Fine-tune mobile ClaimPrism landing: shift 12px upward so the preceding
   divider is tucked behind the sticky header while section labels remain visible. */
@media (max-width: 800px) {
  body.zeodec-nav-ready.claimprism-page .cp-anchor-target {
    scroll-margin-top: 64px;
  }
}

/* Desktop header quality: restore breathing room around original brand accents
   and make primary navigation labels legible without changing mobile. */
@media (min-width: 1100px) {
  body.zeodec-nav-ready .site-header .brand-cluster {
    gap: 14px;
    padding-left: 18px;
  }
  body.zeodec-nav-ready .site-header .brand-logo { width: 210px; }
  body.zeodec-nav-ready .site-header .brand-meta {
    padding-left: 12px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1.45;
  }
  /* LOCKED: approved desktop diagonal bars; do not clip or reposition.
     See docs/DESKTOP-HEADER-BARS-LOCKED.md. */
  /* Position the actual colored stroke endpoints at the header's black edges.
     Top strokes begin at group top + bar offset; bottom strokes extend below
     their group because of the negative rotation. Do not clip the header. */
  body.zeodec-nav-ready .site-header .header-bars-top { top: -4px; }
  body.zeodec-nav-ready .site-header .header-bars-bottom { bottom: -31px; }
  body.zeodec-nav-ready .site-header .nav a {
    min-width: 96px;
    padding: 0 16px;
    font-size: 15px;
    font-weight: 550;
    line-height: 1.35;
  }
}

/* ClaimPrism workflow: readable lifecycle step indices on desktop and mobile. */
body.zeodec-nav-ready .cp-life-step > span {
  color: #AEB5BC;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .035em;
}

/* ClaimPrism visual QA — 2026-10-14: four narrowly scoped desktop details. */
@media (min-width: 1100px) {
  body.claimprism-page .cp-life-step > span,
  body.claimprism-page .cp-feature-list > div > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1;
    padding: 0;
  }

  body.claimprism-page .cp-price-featured {
    border-color: rgba(255,255,255,.22);
  }

  body.claimprism-page .cp-path span {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
  }
}

/* ARRM desktop anchor QA: the How It Works label must clear the sticky header.
   Keep the section's existing padding; offset only its scroll landing. */
@media (min-width: 801px) {
  body.zeodec-nav-ready.arrm-page #how-it-works {
    scroll-margin-top: 48px;
  }
}

/* Order Resolution workflow: improve small description legibility only. */
body.order-resolution-page .or-flow small {
  color: #aeb5bf;
  font-weight: 500;
}
