/* donglipumps.com AI-site craft floor — local 2026-11-12 (Asia/Shanghai).
   Written from measurements on this tree's local preview (not copied from
   the pump-site award floors). Covers: 12px type floor on measured chrome,
   logo and axis contrast, nav CTA hover/label contrast, wide-table
   containment, insights crop-mark overflow, pump-selection card width,
   CJK wrapping. Does not change copy meaning, 2008 foundingDate, taxID,
   W-446 PREP_ONLY wording, pages.dev noindex worker, or redirects.
*/

:root {
  --ai-type-floor: 0.75rem;
  --ai-logo-accent: #9f6d00; /* same hue as #f1a500; 4.505:1 on #ffffff */
  --ai-axis: #4d6168;        /* ~5.88:1 on #f2f4ef; was #61747b at 4.42:1 */
}

/* ---- Type floor (measured 9.6–11.84px on home, hubs, library, explorer) ---- */
.home-eyebrow,
.home-source-note,
.home-index-number,
.home-product-number,
.home-list-number,
.home-product-count,
.home-catalog-entry .home-product-count,
.ds-eyebrow,
.ds-titlebar,
.ds-titlebar a,
.ds-titlebar span,
.ds-titlebar-sub,
.ds-index-n,
.ds-index-count,
.ds-stats dt,
.pit-pre,
.pit-sub,
.contact-kicker,
.contact-section-label,
.contact-channel-label,
.pump-3d-corner,
.pump-3d-axis,
.pump-3d-tool-label,
.pump-3d-boundary,
.pump-3d-status,
.pump-3d-sources,
.pump-3d-sources p,
.atlas-explode,
.atlas-n,
.atlas-sku,
.atlas-tab-n,
.atlas-tab-c,
.atlas-side-h,
.atlas-cap,
.pc-meta,
.pc-sec-meta,
.pc-sec-meta a,
.pc-atlas-n,
.pc-atlas-c,
.parts-cat-n,
.parts-cat-count,
.valve-kicker,
.part-eyebrow,
.pb-k,
.finder-eyebrow,
.finder-source-number,
.library-eyebrow,
.library-search-hint,
.library-steps p,
.library-steps li > span,
.manual-number,
.manual-source,
.manual-meta,
.explorer .eyebrow,
.anatomy-credit,
.app-toc-h,
.app-supply-label,
.app-xl-h,
.app-xl-c,
.app-xl-n,
.insight-len,
.insight-lang,
.insight-sheet-tb,
.insight-sheet-tb span,
.crumbs,
.crumbs a,
.crumbs span,
.muted {
  font-size: var(--ai-type-floor) !important;
}

/* Honesty / status notes a touch larger than the floor, still ≥12px. */
.home-source-note,
.pump-3d-boundary {
  font-size: 0.82rem !important;
}

@media (max-width: 480px) {
  .valve-kicker,
  .valve-size,
  .ds-titlebar {
    font-size: var(--ai-type-floor) !important;
  }
}
.valve-size span { font-size: 0.75em; } /* relative to a ≥12px parent, not .6em of a small kicker */

/* ---- Contrast ---- */
.brand .b-accent { color: var(--ai-logo-accent); }
.pump-3d-axis, span.pump-3d-axis { color: var(--ai-axis) !important; }

/* Nav CTA: later datasheet rules recolour .site-header nav a and
   can make the hover label nearly invisible. Pin readable pairs. */
.site-header nav a.nav-cta,
.site-header nav .nav-cta {
  color: #221703;
  background: #f1a500;
}
.site-header nav a.nav-cta:hover,
.site-header nav .nav-cta:hover,
.site-header nav a.nav-cta:focus {
  background: #203b40;
  color: #fff;
}
.site-header nav a.nav-cta:focus-visible {
  outline: 3px solid #8d530f;
  outline-offset: 3px;
}

/* ---- CJK wrapping ---- */
:lang(zh) {
  line-break: strict;
  overflow-wrap: break-word;
}

/* ---- Wide tables must not expand the page ---- */
.pm-scroll,
.tm-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
  min-width: 0;
  width: 100%;
  contain: inline-size;
}
@media (max-width: 800px) {
  .pm-scroll,
  .tm-scroll {
    max-width: calc(100vw - 2.5rem);
  }
}

/* Insights crop marks sat 7px outside the sheet and, with the
   coverage table, pushed the document past the 390px viewport. */
@media (max-width: 600px) {
  .insight-sheet::before,
  .insight-sheet::after,
  .insight-crop::before,
  .insight-crop::after {
    left: 0;
    right: auto;
    top: 0;
    bottom: auto;
  }
  .insight-sheet::after {
    left: auto;
    right: 0;
    top: auto;
    bottom: 0;
  }
  .insight-crop::before {
    left: auto;
    right: 0;
    top: 0;
  }
  .insight-crop::after {
    left: 0;
    top: auto;
    bottom: 0;
  }
}

/* Pump-selection evidence cards were wider than the 390px viewport. */
.secondary-summary-card,
.source-conflict-card {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-wrap: anywhere;
}

/* Liner review-step band (same ds-stats column overflow as measured
   on the sibling pump site; applied here only if the markup is present). */
.lrs-steps.ds-stats,
dl.lrs-steps {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-columns: auto;
  width: 100%;
  max-width: 100%;
}
.lrs-steps > div { min-width: 0; padding-right: 1.1rem; }
.lrs-steps dd {
  font-size: clamp(1.05rem, 1.5vw, 1.28rem);
  line-height: 1.35;
  letter-spacing: -0.02em;
  overflow-wrap: anywhere;
}
@media (max-width: 900px) {
  .lrs-steps.ds-stats,
  dl.lrs-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tap-size floor on measured small chrome controls. */
.atlas-explode,
.home-hero-top > a,
.intro-note a,
.anatomy-credit a {
  min-height: 44px;
}

.selection-unit {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-width: 6.5rem;
  gap: 0.15rem;
}
.selection-unit label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #203b40;
  line-height: 1.3;
}
.selection-unit select { min-height: 44px; }

/* Leftover unclassed chrome measured after the first floor (11–11.84px). */
.ds-hero span,
.ds-hero small,
.ds-hero dt,
.ds-hero h4,
.ds-stats dt,
.home-hero span,
.home-hero small,
.home-hero h4,
.home-atlas h4,
.contact-hero span,
.valve-facts dt,
.parts-counts dt,
.library-register > p,
.library-register summary,
.library-register span,
.insight-head span,
.explorer span,
code {
  font-size: var(--ai-type-floor) !important;
}

@media (max-width: 800px) {
  html, body { overflow-x: clip; }
}
