/* nav-compact.css — migration-owned header presentation layer (R-navfix+).
   Locale-blind. Sections: compact tier (>=1200px, sealed-fit overflow only),
   pill single-line guard, ultra-tight pill query, wide-screen anchor (D). */
@media (min-width: 1200px) {
  .site-header[data-nav-compact="true"] .header-inner {
    padding-left: 24px;
    padding-right: 24px;
    gap: 12px;
  }
  .site-header[data-nav-compact="true"] .desktop-nav {
    position: static;
    left: auto;
    top: auto;
    visibility: visible;
    pointer-events: auto;
    font-size: 0.875rem;
    gap: 10px;
  }
  .site-header[data-nav-compact="true"] .mobile-tools {
    display: none;
  }
  /* Compact pill keeps words (dot + kicker + time); only the long title
     yields. Link is forced back to flex: the sealed continuum grid would
     otherwise starve kicker/time tracks to zero in tight leftovers. */
  .site-header[data-nav-compact="true"] .nav-gathering-link {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    /* Sealed continuum reserves a 38px beacon gutter for the status dot;
       the dot is hidden in compact, so reclaim the gutter for words. */
    padding-left: 8px;
    padding-right: 4px;
  }
  .site-header[data-nav-compact="true"] .nav-gathering-link .nav-gathering-title,
  .site-header[data-nav-compact="true"] .nav-gathering-link .status-dot {
    display: none; /* title→tooltip/aria; dot→space for kicker+time words */
  }
  .site-header[data-nav-compact="true"] .nav-gathering-link .nav-gathering-kicker {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
/* B: pill single-line guard (ALL modes, no viewport gate). Legacy fix for
   CJK vertical char-wrap in tight pills (production ja/ne symptom): time
   never wraps, tight containers clip instead of stacking characters.
   Words are never removed — title keeps its own ellipsis. */
.site-header .nav-gathering {
  overflow: hidden;
  container-type: inline-size; /* enables C below; flex sizing unaffected */
}
/* C: ultra-tight compact pills (<110px: es/it class) drop the date, keep
   the kicker words with ellipsis. Wider pills keep kicker+time. */
@container (max-width: 110px) {
  .site-header[data-nav-compact="true"] .nav-gathering-link time {
    display: none;
  }
}
.site-header .nav-gathering-link time {
  white-space: nowrap;
}
html:not(.continuum-large-text) body:not(.continuum-large-text) .site-header .nav-gathering-link .nav-gathering-kicker {
  white-space: nowrap; /* tight full-mode pills clip, never char-wrap */
}
.continuum-large-text .site-header .nav-gathering-link .nav-gathering-kicker {
  white-space: normal; /* large-text accommodation always wins */
}
/* D: wide-screen anchor. Sealed continuum caps header content at 1320px
   (padding:(100vw-1320px)/2), leaving tools mid-screen on wide monitors.
   Cap the centering gutter at 24px: seal behavior preserved below 1368px,
   full-bleed right-anchored tools above. Nav fit policy re-measures
   automatically (more room → same or more inline nav, never overflow:
   the sealed parked rule still guards). */
.site-header.continuum-header .header-inner {
  padding: 6px max(16px, min(24px, calc((100vw - 1320px) / 2)));
}

/* Height-changing header animation races native scroll anchoring and link focus.
   Keep compact-state layout atomic; opacity still supplies the visual transition. */
.site-header .nav-gathering{display:grid;grid-template-rows:1fr;transition:opacity 240ms ease}
.site-header .nav-gathering>*{overflow:hidden;min-height:0}
html[data-compact-nav] .site-header .nav-gathering{grid-template-rows:0fr;opacity:0;margin-block:0}
@media(prefers-reduced-motion:reduce){.site-header .nav-gathering{transition:none}}
/* Native disclosure focus must settle before a departure captures the reading
   point. Explicit JS smooth navigation remains available on this AI page. */
/* Filter lists also hand focus and Back to native instant scrolling. */
html:has(main .service-explorer){scroll-behavior:auto}
html:has(main #capabilities){scroll-behavior:auto}