/* Zobi Research hub, refinement layer. Load after /resources/research-hub.css.
   Scoped to .rh, no layout or content removal, no new animation. */

/* 1. Breadcrumb: one centre line for link, slash and current page (span or plain text). */
.rh .rh-crumbs ol{align-items:center;line-height:1;gap:0 8px}
.rh .rh-crumbs li{display:inline-flex;align-items:center;gap:8px;min-height:32px}
.rh .rh-crumbs li+li::before{margin-right:0;line-height:1}
.rh .rh-crumbs a{display:inline-flex;align-items:center;min-height:32px;padding:0}
.rh .rh-crumbs [aria-current="page"]{color:var(--ink)}
.rh .rh-crumbs a:focus-visible{outline-offset:2px}

/* 2. Header brand: wordmark and Research label share a true centre. */
/* Base hides the label at <=420px; this media query keeps that rule winning. */
@media (min-width:421px){
  /* Match the lowercase wordmark's optical centre, not the SVG canvas centre. */
  .rh .rh-brand-sub{display:inline-flex;align-items:center;height:16px;line-height:1;padding-top:0;text-box-trim:none;transform:translateY(2px)}
}
.rh .rh-nav a:focus-visible,.rh .rh-nav-phone a:focus-visible{outline-offset:2px}
@media (max-width:759px){
  .rh .rh-header-cta{min-height:44px}
}

/* 3. Whole-word wrapping and calmer rag. */
.rh :where(h1,h2,h3,.rh-feature-title,.rh-tool-title,.rh-row-title,.rh-companion-title,.rh-benchmark-feature strong){overflow-wrap:break-word;hyphens:manual;text-wrap:balance}
.rh :where(p,.rh-feature-desc,.rh-tool-desc,.rh-row-desc,.rh-companion-desc){overflow-wrap:break-word;hyphens:manual;text-wrap:pretty}
.rh .rh-go{white-space:nowrap}

/* 4. Focus that is never clipped. The feature card clips overflow, so its links draw focus inside. */
.rh .rh-feature-main:focus-visible{outline-offset:-6px;border-radius:12px}
.rh .rh-companion:focus-visible{outline-offset:4px}
.rh .rh-feature:has(:focus-visible){border-color:var(--line-strong)}
.rh .rh-row:focus-visible{outline-offset:2px;background:rgba(255,255,255,.6)}
.rh .rh-row:focus-visible .rh-row-title,
.rh .rh-tool:focus-visible .rh-tool-title,
.rh .rh-companion:focus-visible .rh-companion-title,
.rh .rh-feature-main:focus-visible .rh-feature-title,
.rh .rh-benchmark-feature:focus-visible strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.rh .rh-tool:focus-visible,.rh .rh-benchmark-feature:focus-visible{outline-offset:4px}

/* 5. Search and filters: stronger focus, selection shown by a check and weight, legible counts. */
.rh .rh-search input:focus{box-shadow:0 0 0 1px var(--ink),0 0 0 4px rgba(14,14,16,.12)}
.rh .rh-filter button:focus-visible{outline-offset:2px}
.rh .rh-filter button[aria-pressed="true"]{font-weight:600}
.rh .rh-filter button[aria-pressed="true"]::before{content:"";flex:none;width:5px;height:9px;margin:0 1px 2px 1px;border:solid currentColor;border-width:0 1.75px 1.75px 0;transform:rotate(45deg)}
.rh .rh-count{min-width:1.9em;padding:2px 6px;border-radius:999px;font-size:11.5px;line-height:1.2;text-align:center;opacity:1;color:var(--muted);background:rgba(14,14,16,.06)}
.rh .rh-filter button[aria-pressed="true"] .rh-count{color:#fff;background:rgba(255,255,255,.18)}
.rh .rh-count:empty{display:none}
.rh .rh-status{font-size:12px;color:var(--muted)}
.rh .rh-clear{min-height:40px;text-underline-offset:4px}

/* 6. Rhythm: topic labels sit with the first row title; benchmark row aligns on the text baseline. */
@media (min-width:900px){
  .rh .rh-group h3{padding-top:20px;line-height:1.3}
}
@media (min-width:601px){
  .rh .rh-benchmark-feature{align-items:baseline;grid-template-columns:110px minmax(0,1fr) auto}
}
.rh .rh-benchmark-feature strong{font-weight:600}
.rh .rh-benchmark-feature p{max-width:60ch}

html:has(body.rh){scroll-padding-top:var(--rh-header-offset,74px)}@media(max-width:759px){html:has(body.rh){scroll-padding-top:var(--rh-header-offset,120px)}}
.rh{--faint:#62626a}.rh .rh-search input::placeholder{color:#696971}.rh .rh-row:hover{padding-left:0;padding-right:0}@media(max-width:759px){.rh .rh-clear,.rh .rh-filter button{min-height:44px}}
